@sbb-esta/lyne-elements 4.3.1 → 4.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1020) hide show
  1. package/autocomplete/autocomplete-base-element.js +32 -21
  2. package/autocomplete/autocomplete.component.js +12 -12
  3. package/carousel/carousel/carousel.component.js +15 -15
  4. package/carousel/carousel-item/carousel-item.component.js +1 -1
  5. package/chip/chip/chip.component.js +36 -38
  6. package/chip/chip-group/chip-group.component.js +13 -17
  7. package/core/datetime/date-adapter.js +51 -17
  8. package/core/datetime/native-date-adapter.js +61 -86
  9. package/core/datetime/temporal-date-adapter.js +139 -0
  10. package/core/styles/core/mediaqueries.scss +1 -1
  11. package/core/styles/core.scss +15 -1
  12. package/core/styles/mixins/image.scss +7 -1
  13. package/core/styles/mixins/table.scss +24 -19
  14. package/core.css +26 -0
  15. package/custom-elements.json +1675 -762
  16. package/development/autocomplete/autocomplete-base-element.d.ts +11 -2
  17. package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  18. package/development/autocomplete/autocomplete-base-element.js +30 -8
  19. package/development/autocomplete/autocomplete.component.d.ts +0 -1
  20. package/development/autocomplete/autocomplete.component.d.ts.map +1 -1
  21. package/development/autocomplete/autocomplete.component.js +9 -7
  22. package/development/carousel/carousel/carousel.component.js +3 -5
  23. package/development/carousel/carousel-item/carousel-item.component.js +5 -1
  24. package/development/chip/chip/chip.component.d.ts.map +1 -1
  25. package/development/chip/chip/chip.component.js +28 -48
  26. package/development/chip/chip-group/chip-group.component.d.ts.map +1 -1
  27. package/development/chip/chip-group/chip-group.component.js +22 -28
  28. package/development/core/a11y/focus-trap-controller.js +1 -4
  29. package/development/core/base-elements/action-base-element.js +1 -4
  30. package/development/core/controllers/inert-controller.js +1 -3
  31. package/development/core/controllers/overlay-position-controller.js +1 -20
  32. package/development/core/datetime/date-adapter.d.ts +11 -3
  33. package/development/core/datetime/date-adapter.d.ts.map +1 -1
  34. package/development/core/datetime/date-adapter.js +39 -1
  35. package/development/core/datetime/native-date-adapter.d.ts +1 -5
  36. package/development/core/datetime/native-date-adapter.d.ts.map +1 -1
  37. package/development/core/datetime/native-date-adapter.js +8 -39
  38. package/{core/datetime/native-date-adapter.d.ts → development/core/datetime/temporal-date-adapter.d.ts} +23 -28
  39. package/development/core/datetime/temporal-date-adapter.d.ts.map +1 -0
  40. package/development/core/datetime/temporal-date-adapter.js +144 -0
  41. package/development/core/decorators/id-reference.js +1 -5
  42. package/development/datepicker/datepicker-toggle/datepicker-toggle.component.js +1 -5
  43. package/development/form-field/form-field/form-field.component.js +1 -4
  44. package/development/image/image.component.d.ts +0 -1
  45. package/development/image/image.component.d.ts.map +1 -1
  46. package/development/image/image.component.js +1 -15
  47. package/development/radio-button/common.js +1 -1
  48. package/development/radio-button/radio-button/radio-button.component.js +4 -3
  49. package/development/{radio-button-common-B3kVD7QV.js → radio-button-common-4_yg7r8b.js} +3 -2
  50. package/development/radio-button.js +1 -1
  51. package/development/select/select.component.d.ts.map +1 -1
  52. package/development/select/select.component.js +2 -2
  53. package/development/tabs/common.js +3 -2
  54. package/development/tabs/tab-group/tab-group.component.d.ts +6 -0
  55. package/development/tabs/tab-group/tab-group.component.d.ts.map +1 -1
  56. package/development/tabs/tab-group/tab-group.component.js +73 -5
  57. package/development/tabs/tab-label/tab-label.component.js +1 -7
  58. package/development/tag/tag-group/tag-group.component.js +1 -3
  59. package/development/toggle/toggle/toggle.component.js +1 -4
  60. package/image/image.component.js +30 -36
  61. package/index.d.ts +155 -156
  62. package/index.js +155 -155
  63. package/off-brand-theme.css +60 -59
  64. package/package.json +19 -19
  65. package/radio-button/common.js +1 -1
  66. package/radio-button/radio-button/radio-button.component.js +10 -10
  67. package/{radio-button-common-1Yg7p8dc.js → radio-button-common-Bf2b18jm.js} +1 -1
  68. package/radio-button.js +1 -1
  69. package/safety-theme.css +60 -59
  70. package/select/select.component.js +1 -1
  71. package/standard-theme.css +60 -59
  72. package/table.css +26 -58
  73. package/tabs/common.js +1 -1
  74. package/tabs/tab-group/tab-group.component.js +61 -47
  75. package/accordion/accordion.component.d.ts +0 -38
  76. package/accordion/accordion.component.d.ts.map +0 -1
  77. package/accordion.d.ts +0 -5
  78. package/accordion.d.ts.map +0 -1
  79. package/action-group/action-group.component.d.ts +0 -46
  80. package/action-group/action-group.component.d.ts.map +0 -1
  81. package/action-group.d.ts +0 -5
  82. package/action-group.d.ts.map +0 -1
  83. package/alert/alert/alert.component.d.ts +0 -51
  84. package/alert/alert/alert.component.d.ts.map +0 -1
  85. package/alert/alert-group/alert-group.component.d.ts +0 -39
  86. package/alert/alert-group/alert-group.component.d.ts.map +0 -1
  87. package/alert/alert-group.d.ts +0 -5
  88. package/alert/alert-group.d.ts.map +0 -1
  89. package/alert/alert.d.ts +0 -5
  90. package/alert/alert.d.ts.map +0 -1
  91. package/alert.d.ts +0 -6
  92. package/alert.d.ts.map +0 -1
  93. package/autocomplete/autocomplete-base-element.d.ts +0 -123
  94. package/autocomplete/autocomplete-base-element.d.ts.map +0 -1
  95. package/autocomplete/autocomplete.component.d.ts +0 -31
  96. package/autocomplete/autocomplete.component.d.ts.map +0 -1
  97. package/autocomplete.d.ts +0 -6
  98. package/autocomplete.d.ts.map +0 -1
  99. package/breadcrumb/breadcrumb/breadcrumb.component.d.ts +0 -20
  100. package/breadcrumb/breadcrumb/breadcrumb.component.d.ts.map +0 -1
  101. package/breadcrumb/breadcrumb-group/breadcrumb-group.component.d.ts +0 -50
  102. package/breadcrumb/breadcrumb-group/breadcrumb-group.component.d.ts.map +0 -1
  103. package/breadcrumb/breadcrumb-group.d.ts +0 -5
  104. package/breadcrumb/breadcrumb-group.d.ts.map +0 -1
  105. package/breadcrumb/breadcrumb.d.ts +0 -5
  106. package/breadcrumb/breadcrumb.d.ts.map +0 -1
  107. package/breadcrumb.d.ts +0 -6
  108. package/breadcrumb.d.ts.map +0 -1
  109. package/button/accent-button/accent-button.component.d.ts +0 -20
  110. package/button/accent-button/accent-button.component.d.ts.map +0 -1
  111. package/button/accent-button-link/accent-button-link.component.d.ts +0 -20
  112. package/button/accent-button-link/accent-button-link.component.d.ts.map +0 -1
  113. package/button/accent-button-link.d.ts +0 -5
  114. package/button/accent-button-link.d.ts.map +0 -1
  115. package/button/accent-button-static/accent-button-static.component.d.ts +0 -20
  116. package/button/accent-button-static/accent-button-static.component.d.ts.map +0 -1
  117. package/button/accent-button-static.d.ts +0 -5
  118. package/button/accent-button-static.d.ts.map +0 -1
  119. package/button/accent-button.d.ts +0 -5
  120. package/button/accent-button.d.ts.map +0 -1
  121. package/button/button/button.component.d.ts +0 -20
  122. package/button/button/button.component.d.ts.map +0 -1
  123. package/button/button-link/button-link.component.d.ts +0 -20
  124. package/button/button-link/button-link.component.d.ts.map +0 -1
  125. package/button/button-link.d.ts +0 -5
  126. package/button/button-link.d.ts.map +0 -1
  127. package/button/button-static/button-static.component.d.ts +0 -20
  128. package/button/button-static/button-static.component.d.ts.map +0 -1
  129. package/button/button-static.d.ts +0 -5
  130. package/button/button-static.d.ts.map +0 -1
  131. package/button/button.d.ts +0 -5
  132. package/button/button.d.ts.map +0 -1
  133. package/button/common/button-common.d.ts +0 -11
  134. package/button/common/button-common.d.ts.map +0 -1
  135. package/button/common.d.ts +0 -5
  136. package/button/common.d.ts.map +0 -1
  137. package/button/mini-button/mini-button.component.d.ts +0 -21
  138. package/button/mini-button/mini-button.component.d.ts.map +0 -1
  139. package/button/mini-button-group/mini-button-group.component.d.ts +0 -31
  140. package/button/mini-button-group/mini-button-group.component.d.ts.map +0 -1
  141. package/button/mini-button-group.d.ts +0 -5
  142. package/button/mini-button-group.d.ts.map +0 -1
  143. package/button/mini-button-link/mini-button-link.component.d.ts +0 -21
  144. package/button/mini-button-link/mini-button-link.component.d.ts.map +0 -1
  145. package/button/mini-button-link.d.ts +0 -5
  146. package/button/mini-button-link.d.ts.map +0 -1
  147. package/button/mini-button.d.ts +0 -5
  148. package/button/mini-button.d.ts.map +0 -1
  149. package/button/secondary-button/secondary-button.component.d.ts +0 -20
  150. package/button/secondary-button/secondary-button.component.d.ts.map +0 -1
  151. package/button/secondary-button-link/secondary-button-link.component.d.ts +0 -20
  152. package/button/secondary-button-link/secondary-button-link.component.d.ts.map +0 -1
  153. package/button/secondary-button-link.d.ts +0 -5
  154. package/button/secondary-button-link.d.ts.map +0 -1
  155. package/button/secondary-button-static/secondary-button-static.component.d.ts +0 -20
  156. package/button/secondary-button-static/secondary-button-static.component.d.ts.map +0 -1
  157. package/button/secondary-button-static.d.ts +0 -5
  158. package/button/secondary-button-static.d.ts.map +0 -1
  159. package/button/secondary-button.d.ts +0 -5
  160. package/button/secondary-button.d.ts.map +0 -1
  161. package/button/transparent-button/transparent-button.component.d.ts +0 -20
  162. package/button/transparent-button/transparent-button.component.d.ts.map +0 -1
  163. package/button/transparent-button-link/transparent-button-link.component.d.ts +0 -20
  164. package/button/transparent-button-link/transparent-button-link.component.d.ts.map +0 -1
  165. package/button/transparent-button-link.d.ts +0 -5
  166. package/button/transparent-button-link.d.ts.map +0 -1
  167. package/button/transparent-button-static/transparent-button-static.component.d.ts +0 -20
  168. package/button/transparent-button-static/transparent-button-static.component.d.ts.map +0 -1
  169. package/button/transparent-button-static.d.ts +0 -5
  170. package/button/transparent-button-static.d.ts.map +0 -1
  171. package/button/transparent-button.d.ts +0 -5
  172. package/button/transparent-button.d.ts.map +0 -1
  173. package/button.d.ts +0 -20
  174. package/button.d.ts.map +0 -1
  175. package/calendar/calendar.component.d.ts +0 -310
  176. package/calendar/calendar.component.d.ts.map +0 -1
  177. package/calendar.d.ts +0 -5
  178. package/calendar.d.ts.map +0 -1
  179. package/card/card/card.component.d.ts +0 -22
  180. package/card/card/card.component.d.ts.map +0 -1
  181. package/card/card-badge/card-badge.component.d.ts +0 -23
  182. package/card/card-badge/card-badge.component.d.ts.map +0 -1
  183. package/card/card-badge.d.ts +0 -5
  184. package/card/card-badge.d.ts.map +0 -1
  185. package/card/card-button/card-button.component.d.ts +0 -18
  186. package/card/card-button/card-button.component.d.ts.map +0 -1
  187. package/card/card-button.d.ts +0 -5
  188. package/card/card-button.d.ts.map +0 -1
  189. package/card/card-link/card-link.component.d.ts +0 -18
  190. package/card/card-link/card-link.component.d.ts.map +0 -1
  191. package/card/card-link.d.ts +0 -5
  192. package/card/card-link.d.ts.map +0 -1
  193. package/card/card.d.ts +0 -5
  194. package/card/card.d.ts.map +0 -1
  195. package/card/common/card-action-common.d.ts +0 -8
  196. package/card/common/card-action-common.d.ts.map +0 -1
  197. package/card/common.d.ts +0 -5
  198. package/card/common.d.ts.map +0 -1
  199. package/card.d.ts +0 -9
  200. package/card.d.ts.map +0 -1
  201. package/carousel/carousel/carousel.component.d.ts +0 -34
  202. package/carousel/carousel/carousel.component.d.ts.map +0 -1
  203. package/carousel/carousel-item/carousel-item.component.d.ts +0 -29
  204. package/carousel/carousel-item/carousel-item.component.d.ts.map +0 -1
  205. package/carousel/carousel-item.d.ts +0 -5
  206. package/carousel/carousel-item.d.ts.map +0 -1
  207. package/carousel/carousel-list/carousel-list.component.d.ts +0 -35
  208. package/carousel/carousel-list/carousel-list.component.d.ts.map +0 -1
  209. package/carousel/carousel-list.d.ts +0 -5
  210. package/carousel/carousel-list.d.ts.map +0 -1
  211. package/carousel/carousel.d.ts +0 -5
  212. package/carousel/carousel.d.ts.map +0 -1
  213. package/carousel.d.ts +0 -7
  214. package/carousel.d.ts.map +0 -1
  215. package/checkbox/checkbox/checkbox.component.d.ts +0 -33
  216. package/checkbox/checkbox/checkbox.component.d.ts.map +0 -1
  217. package/checkbox/checkbox-group/checkbox-group.component.d.ts +0 -39
  218. package/checkbox/checkbox-group/checkbox-group.component.d.ts.map +0 -1
  219. package/checkbox/checkbox-group.d.ts +0 -5
  220. package/checkbox/checkbox-group.d.ts.map +0 -1
  221. package/checkbox/checkbox-panel/checkbox-panel.component.d.ts +0 -27
  222. package/checkbox/checkbox-panel/checkbox-panel.component.d.ts.map +0 -1
  223. package/checkbox/checkbox-panel.d.ts +0 -5
  224. package/checkbox/checkbox-panel.d.ts.map +0 -1
  225. package/checkbox/checkbox.d.ts +0 -5
  226. package/checkbox/checkbox.d.ts.map +0 -1
  227. package/checkbox/common/checkbox-common.d.ts +0 -12
  228. package/checkbox/common/checkbox-common.d.ts.map +0 -1
  229. package/checkbox/common.d.ts +0 -5
  230. package/checkbox/common.d.ts.map +0 -1
  231. package/checkbox.d.ts +0 -8
  232. package/checkbox.d.ts.map +0 -1
  233. package/chip/chip/chip.component.d.ts +0 -30
  234. package/chip/chip/chip.component.d.ts.map +0 -1
  235. package/chip/chip-group/chip-group.component.d.ts +0 -102
  236. package/chip/chip-group/chip-group.component.d.ts.map +0 -1
  237. package/chip/chip-group.d.ts +0 -5
  238. package/chip/chip-group.d.ts.map +0 -1
  239. package/chip/chip.d.ts +0 -5
  240. package/chip/chip.d.ts.map +0 -1
  241. package/chip-label/chip-label.component.d.ts +0 -20
  242. package/chip-label/chip-label.component.d.ts.map +0 -1
  243. package/chip-label.d.ts +0 -5
  244. package/chip-label.d.ts.map +0 -1
  245. package/chip.d.ts +0 -6
  246. package/chip.d.ts.map +0 -1
  247. package/clock/clock.component.d.ts +0 -77
  248. package/clock/clock.component.d.ts.map +0 -1
  249. package/clock.d.ts +0 -5
  250. package/clock.d.ts.map +0 -1
  251. package/container/container/container.component.d.ts +0 -27
  252. package/container/container/container.component.d.ts.map +0 -1
  253. package/container/container.d.ts +0 -5
  254. package/container/container.d.ts.map +0 -1
  255. package/container/sticky-bar/sticky-bar.component.d.ts +0 -58
  256. package/container/sticky-bar/sticky-bar.component.d.ts.map +0 -1
  257. package/container/sticky-bar.d.ts +0 -5
  258. package/container/sticky-bar.d.ts.map +0 -1
  259. package/container.d.ts +0 -6
  260. package/container.d.ts.map +0 -1
  261. package/core/a11y/arrow-navigation.d.ts +0 -32
  262. package/core/a11y/arrow-navigation.d.ts.map +0 -1
  263. package/core/a11y/fake-event-detection.d.ts +0 -5
  264. package/core/a11y/fake-event-detection.d.ts.map +0 -1
  265. package/core/a11y/focus-trap-controller.d.ts +0 -35
  266. package/core/a11y/focus-trap-controller.d.ts.map +0 -1
  267. package/core/a11y/focus-visible-within-controller.d.ts +0 -11
  268. package/core/a11y/focus-visible-within-controller.d.ts.map +0 -1
  269. package/core/a11y/focus.d.ts +0 -2
  270. package/core/a11y/focus.d.ts.map +0 -1
  271. package/core/a11y/input-modality-detector.d.ts +0 -58
  272. package/core/a11y/input-modality-detector.d.ts.map +0 -1
  273. package/core/a11y/interactivity-checker.d.ts +0 -52
  274. package/core/a11y/interactivity-checker.d.ts.map +0 -1
  275. package/core/a11y/live-announcer.d.ts +0 -62
  276. package/core/a11y/live-announcer.d.ts.map +0 -1
  277. package/core/a11y.d.ts +0 -12
  278. package/core/a11y.d.ts.map +0 -1
  279. package/core/base-elements/action-base-element.d.ts +0 -15
  280. package/core/base-elements/action-base-element.d.ts.map +0 -1
  281. package/core/base-elements/button-base-element.d.ts +0 -66
  282. package/core/base-elements/button-base-element.d.ts.map +0 -1
  283. package/core/base-elements/link-base-element.d.ts +0 -34
  284. package/core/base-elements/link-base-element.d.ts.map +0 -1
  285. package/core/base-elements/open-close-base-element.d.ts +0 -41
  286. package/core/base-elements/open-close-base-element.d.ts.map +0 -1
  287. package/core/base-elements.d.ts +0 -8
  288. package/core/base-elements.d.ts.map +0 -1
  289. package/core/config/config.d.ts +0 -40
  290. package/core/config/config.d.ts.map +0 -1
  291. package/core/config.d.ts +0 -5
  292. package/core/config.d.ts.map +0 -1
  293. package/core/controllers/escapable-overlay-controller.d.ts +0 -14
  294. package/core/controllers/escapable-overlay-controller.d.ts.map +0 -1
  295. package/core/controllers/id-reference-controller.d.ts +0 -21
  296. package/core/controllers/id-reference-controller.d.ts.map +0 -1
  297. package/core/controllers/inert-controller.d.ts +0 -27
  298. package/core/controllers/inert-controller.d.ts.map +0 -1
  299. package/core/controllers/language-controller.d.ts +0 -32
  300. package/core/controllers/language-controller.d.ts.map +0 -1
  301. package/core/controllers/media-matchers-controller.d.ts +0 -65
  302. package/core/controllers/media-matchers-controller.d.ts.map +0 -1
  303. package/core/controllers/overlay-position-controller.d.ts +0 -61
  304. package/core/controllers/overlay-position-controller.d.ts.map +0 -1
  305. package/core/controllers/property-watcher-controller.d.ts +0 -16
  306. package/core/controllers/property-watcher-controller.d.ts.map +0 -1
  307. package/core/controllers/slot-state-controller.d.ts +0 -45
  308. package/core/controllers/slot-state-controller.d.ts.map +0 -1
  309. package/core/controllers.d.ts +0 -12
  310. package/core/controllers.d.ts.map +0 -1
  311. package/core/datetime/date-adapter.d.ts +0 -173
  312. package/core/datetime/date-adapter.d.ts.map +0 -1
  313. package/core/datetime/native-date-adapter.d.ts.map +0 -1
  314. package/core/datetime.d.ts +0 -6
  315. package/core/datetime.d.ts.map +0 -1
  316. package/core/decorators/base.d.ts +0 -14
  317. package/core/decorators/base.d.ts.map +0 -1
  318. package/core/decorators/force-type.d.ts +0 -8
  319. package/core/decorators/force-type.d.ts.map +0 -1
  320. package/core/decorators/get-override.d.ts +0 -7
  321. package/core/decorators/get-override.d.ts.map +0 -1
  322. package/core/decorators/handle-distinct-change.d.ts +0 -8
  323. package/core/decorators/handle-distinct-change.d.ts.map +0 -1
  324. package/core/decorators/host-attributes.d.ts +0 -21
  325. package/core/decorators/host-attributes.d.ts.map +0 -1
  326. package/core/decorators/id-reference.d.ts +0 -11
  327. package/core/decorators/id-reference.d.ts.map +0 -1
  328. package/core/decorators/omit-empty-converter.d.ts +0 -8
  329. package/core/decorators/omit-empty-converter.d.ts.map +0 -1
  330. package/core/decorators/plain-date.d.ts +0 -23
  331. package/core/decorators/plain-date.d.ts.map +0 -1
  332. package/core/decorators.d.ts +0 -11
  333. package/core/decorators.d.ts.map +0 -1
  334. package/core/dom/animation.d.ts +0 -2
  335. package/core/dom/animation.d.ts.map +0 -1
  336. package/core/dom/contains-pierce-shadow-dom.d.ts +0 -3
  337. package/core/dom/contains-pierce-shadow-dom.d.ts.map +0 -1
  338. package/core/dom/lean-context.d.ts +0 -5
  339. package/core/dom/lean-context.d.ts.map +0 -1
  340. package/core/dom/platform.d.ts +0 -28
  341. package/core/dom/platform.d.ts.map +0 -1
  342. package/core/dom/queue-dom-content-loaded.d.ts +0 -5
  343. package/core/dom/queue-dom-content-loaded.d.ts.map +0 -1
  344. package/core/dom/scroll.d.ts +0 -14
  345. package/core/dom/scroll.d.ts.map +0 -1
  346. package/core/dom/set-or-remove-attribute.d.ts +0 -8
  347. package/core/dom/set-or-remove-attribute.d.ts.map +0 -1
  348. package/core/dom.d.ts +0 -11
  349. package/core/dom.d.ts.map +0 -1
  350. package/core/eventing/composed-path-has-attribute.d.ts +0 -10
  351. package/core/eventing/composed-path-has-attribute.d.ts.map +0 -1
  352. package/core/eventing/event-target.d.ts +0 -3
  353. package/core/eventing/event-target.d.ts.map +0 -1
  354. package/core/eventing/form-element-handlers.d.ts +0 -6
  355. package/core/eventing/form-element-handlers.d.ts.map +0 -1
  356. package/core/eventing/forward-event.d.ts +0 -6
  357. package/core/eventing/forward-event.d.ts.map +0 -1
  358. package/core/eventing/is-event-prevented.d.ts +0 -3
  359. package/core/eventing/is-event-prevented.d.ts.map +0 -1
  360. package/core/eventing/throttle.d.ts +0 -2
  361. package/core/eventing/throttle.d.ts.map +0 -1
  362. package/core/eventing.d.ts +0 -10
  363. package/core/eventing.d.ts.map +0 -1
  364. package/core/i18n/i18n.d.ts +0 -103
  365. package/core/i18n/i18n.d.ts.map +0 -1
  366. package/core/i18n.d.ts +0 -5
  367. package/core/i18n.d.ts.map +0 -1
  368. package/core/images.d.ts +0 -7
  369. package/core/images.d.ts.map +0 -1
  370. package/core/interfaces/overlay-close-details.d.ts +0 -6
  371. package/core/interfaces/overlay-close-details.d.ts.map +0 -1
  372. package/core/interfaces/paginator-page.d.ts +0 -7
  373. package/core/interfaces/paginator-page.d.ts.map +0 -1
  374. package/core/interfaces/types.d.ts +0 -9
  375. package/core/interfaces/types.d.ts.map +0 -1
  376. package/core/interfaces.d.ts +0 -7
  377. package/core/interfaces.d.ts.map +0 -1
  378. package/core/mixins/animation-complete-mixin.d.ts +0 -13
  379. package/core/mixins/animation-complete-mixin.d.ts.map +0 -1
  380. package/core/mixins/constructor.d.ts +0 -8
  381. package/core/mixins/constructor.d.ts.map +0 -1
  382. package/core/mixins/disabled-mixin.d.ts +0 -20
  383. package/core/mixins/disabled-mixin.d.ts.map +0 -1
  384. package/core/mixins/element-internals-mixin.d.ts +0 -49
  385. package/core/mixins/element-internals-mixin.d.ts.map +0 -1
  386. package/core/mixins/form-associated-checkbox-mixin.d.ts +0 -20
  387. package/core/mixins/form-associated-checkbox-mixin.d.ts.map +0 -1
  388. package/core/mixins/form-associated-input-mixin.d.ts +0 -32
  389. package/core/mixins/form-associated-input-mixin.d.ts.map +0 -1
  390. package/core/mixins/form-associated-mixin.d.ts +0 -53
  391. package/core/mixins/form-associated-mixin.d.ts.map +0 -1
  392. package/core/mixins/form-associated-radio-button-mixin.d.ts +0 -28
  393. package/core/mixins/form-associated-radio-button-mixin.d.ts.map +0 -1
  394. package/core/mixins/hydration-mixin.d.ts +0 -23
  395. package/core/mixins/hydration-mixin.d.ts.map +0 -1
  396. package/core/mixins/named-slot-list-mixin.d.ts +0 -36
  397. package/core/mixins/named-slot-list-mixin.d.ts.map +0 -1
  398. package/core/mixins/negative-mixin.d.ts +0 -10
  399. package/core/mixins/negative-mixin.d.ts.map +0 -1
  400. package/core/mixins/panel-mixin.d.ts +0 -21
  401. package/core/mixins/panel-mixin.d.ts.map +0 -1
  402. package/core/mixins/readonly-mixin.d.ts +0 -10
  403. package/core/mixins/readonly-mixin.d.ts.map +0 -1
  404. package/core/mixins/required-mixin.d.ts +0 -12
  405. package/core/mixins/required-mixin.d.ts.map +0 -1
  406. package/core/mixins/selection-panel-mixin.d.ts +0 -17
  407. package/core/mixins/selection-panel-mixin.d.ts.map +0 -1
  408. package/core/mixins/update-scheduler-mixin.d.ts +0 -13
  409. package/core/mixins/update-scheduler-mixin.d.ts.map +0 -1
  410. package/core/mixins.d.ts +0 -20
  411. package/core/mixins.d.ts.map +0 -1
  412. package/core/overlay/overlay-option-panel.d.ts +0 -12
  413. package/core/overlay/overlay-option-panel.d.ts.map +0 -1
  414. package/core/overlay/overlay-outside-pointer-event-listener.d.ts +0 -26
  415. package/core/overlay/overlay-outside-pointer-event-listener.d.ts.map +0 -1
  416. package/core/overlay/overlay-trigger-attributes.d.ts +0 -18
  417. package/core/overlay/overlay-trigger-attributes.d.ts.map +0 -1
  418. package/core/overlay/overlay.d.ts +0 -7
  419. package/core/overlay/overlay.d.ts.map +0 -1
  420. package/core/overlay/position.d.ts +0 -63
  421. package/core/overlay/position.d.ts.map +0 -1
  422. package/core/overlay.d.ts +0 -9
  423. package/core/overlay.d.ts.map +0 -1
  424. package/core/styles.d.ts +0 -4
  425. package/core/styles.d.ts.map +0 -1
  426. package/core/testing/event-spy.d.ts +0 -22
  427. package/core/testing/event-spy.d.ts.map +0 -1
  428. package/core/testing/mocha-extensions.d.ts +0 -10
  429. package/core/testing/mocha-extensions.d.ts.map +0 -1
  430. package/core/testing/wait-for-condition.d.ts +0 -2
  431. package/core/testing/wait-for-condition.d.ts.map +0 -1
  432. package/core/testing/wait-for-image-ready.d.ts +0 -3
  433. package/core/testing/wait-for-image-ready.d.ts.map +0 -1
  434. package/core/testing/wait-for-render.d.ts +0 -17
  435. package/core/testing/wait-for-render.d.ts.map +0 -1
  436. package/core/testing.d.ts +0 -9
  437. package/core/testing.d.ts.map +0 -1
  438. package/date-input/date-input.component.d.ts +0 -88
  439. package/date-input/date-input.component.d.ts.map +0 -1
  440. package/date-input.d.ts +0 -5
  441. package/date-input.d.ts.map +0 -1
  442. package/datepicker/common/datepicker-button.d.ts +0 -42
  443. package/datepicker/common/datepicker-button.d.ts.map +0 -1
  444. package/datepicker/common.d.ts +0 -5
  445. package/datepicker/common.d.ts.map +0 -1
  446. package/datepicker/datepicker/datepicker.component.d.ts +0 -41
  447. package/datepicker/datepicker/datepicker.component.d.ts.map +0 -1
  448. package/datepicker/datepicker-next-day/datepicker-next-day.component.d.ts +0 -19
  449. package/datepicker/datepicker-next-day/datepicker-next-day.component.d.ts.map +0 -1
  450. package/datepicker/datepicker-next-day.d.ts +0 -5
  451. package/datepicker/datepicker-next-day.d.ts.map +0 -1
  452. package/datepicker/datepicker-previous-day/datepicker-previous-day.component.d.ts +0 -19
  453. package/datepicker/datepicker-previous-day/datepicker-previous-day.component.d.ts.map +0 -1
  454. package/datepicker/datepicker-previous-day.d.ts +0 -5
  455. package/datepicker/datepicker-previous-day.d.ts.map +0 -1
  456. package/datepicker/datepicker-toggle/datepicker-toggle.component.d.ts +0 -21
  457. package/datepicker/datepicker-toggle/datepicker-toggle.component.d.ts.map +0 -1
  458. package/datepicker/datepicker-toggle.d.ts +0 -5
  459. package/datepicker/datepicker-toggle.d.ts.map +0 -1
  460. package/datepicker/datepicker.d.ts +0 -5
  461. package/datepicker/datepicker.d.ts.map +0 -1
  462. package/datepicker.d.ts +0 -9
  463. package/datepicker.d.ts.map +0 -1
  464. package/dialog/dialog/dialog.component.d.ts +0 -51
  465. package/dialog/dialog/dialog.component.d.ts.map +0 -1
  466. package/dialog/dialog-actions/dialog-actions.component.d.ts +0 -17
  467. package/dialog/dialog-actions/dialog-actions.component.d.ts.map +0 -1
  468. package/dialog/dialog-actions.d.ts +0 -5
  469. package/dialog/dialog-actions.d.ts.map +0 -1
  470. package/dialog/dialog-close-button/dialog-close-button.component.d.ts +0 -22
  471. package/dialog/dialog-close-button/dialog-close-button.component.d.ts.map +0 -1
  472. package/dialog/dialog-close-button.d.ts +0 -5
  473. package/dialog/dialog-close-button.d.ts.map +0 -1
  474. package/dialog/dialog-content/dialog-content.component.d.ts +0 -17
  475. package/dialog/dialog-content/dialog-content.component.d.ts.map +0 -1
  476. package/dialog/dialog-content.d.ts +0 -5
  477. package/dialog/dialog-content.d.ts.map +0 -1
  478. package/dialog/dialog-title/dialog-title.component.d.ts +0 -19
  479. package/dialog/dialog-title/dialog-title.component.d.ts.map +0 -1
  480. package/dialog/dialog-title.d.ts +0 -5
  481. package/dialog/dialog-title.d.ts.map +0 -1
  482. package/dialog/dialog.d.ts +0 -5
  483. package/dialog/dialog.d.ts.map +0 -1
  484. package/dialog.d.ts +0 -9
  485. package/dialog.d.ts.map +0 -1
  486. package/divider/divider.component.d.ts +0 -21
  487. package/divider/divider.component.d.ts.map +0 -1
  488. package/divider.d.ts +0 -5
  489. package/divider.d.ts.map +0 -1
  490. package/expansion-panel/expansion-panel/expansion-panel.component.d.ts +0 -64
  491. package/expansion-panel/expansion-panel/expansion-panel.component.d.ts.map +0 -1
  492. package/expansion-panel/expansion-panel-content/expansion-panel-content.component.d.ts +0 -22
  493. package/expansion-panel/expansion-panel-content/expansion-panel-content.component.d.ts.map +0 -1
  494. package/expansion-panel/expansion-panel-content.d.ts +0 -5
  495. package/expansion-panel/expansion-panel-content.d.ts.map +0 -1
  496. package/expansion-panel/expansion-panel-header/expansion-panel-header.component.d.ts +0 -36
  497. package/expansion-panel/expansion-panel-header/expansion-panel-header.component.d.ts.map +0 -1
  498. package/expansion-panel/expansion-panel-header.d.ts +0 -5
  499. package/expansion-panel/expansion-panel-header.d.ts.map +0 -1
  500. package/expansion-panel/expansion-panel.d.ts +0 -5
  501. package/expansion-panel/expansion-panel.d.ts.map +0 -1
  502. package/expansion-panel.d.ts +0 -7
  503. package/expansion-panel.d.ts.map +0 -1
  504. package/file-selector/common/file-selector-common.d.ts +0 -25
  505. package/file-selector/common/file-selector-common.d.ts.map +0 -1
  506. package/file-selector/common.d.ts +0 -5
  507. package/file-selector/common.d.ts.map +0 -1
  508. package/file-selector/file-selector/file-selector.component.d.ts +0 -21
  509. package/file-selector/file-selector/file-selector.component.d.ts.map +0 -1
  510. package/file-selector/file-selector-dropzone/file-selector-dropzone.component.d.ts +0 -23
  511. package/file-selector/file-selector-dropzone/file-selector-dropzone.component.d.ts.map +0 -1
  512. package/file-selector/file-selector-dropzone.d.ts +0 -5
  513. package/file-selector/file-selector-dropzone.d.ts.map +0 -1
  514. package/file-selector/file-selector.d.ts +0 -5
  515. package/file-selector/file-selector.d.ts.map +0 -1
  516. package/file-selector.d.ts +0 -7
  517. package/file-selector.d.ts.map +0 -1
  518. package/flip-card/flip-card/flip-card.component.d.ts +0 -47
  519. package/flip-card/flip-card/flip-card.component.d.ts.map +0 -1
  520. package/flip-card/flip-card-details/flip-card-details.component.d.ts +0 -21
  521. package/flip-card/flip-card-details/flip-card-details.component.d.ts.map +0 -1
  522. package/flip-card/flip-card-details.d.ts +0 -5
  523. package/flip-card/flip-card-details.d.ts.map +0 -1
  524. package/flip-card/flip-card-summary/flip-card-summary.component.d.ts +0 -21
  525. package/flip-card/flip-card-summary/flip-card-summary.component.d.ts.map +0 -1
  526. package/flip-card/flip-card-summary.d.ts +0 -5
  527. package/flip-card/flip-card-summary.d.ts.map +0 -1
  528. package/flip-card/flip-card.d.ts +0 -5
  529. package/flip-card/flip-card.d.ts.map +0 -1
  530. package/flip-card.d.ts +0 -7
  531. package/flip-card.d.ts.map +0 -1
  532. package/footer/footer.component.d.ts +0 -34
  533. package/footer/footer.component.d.ts.map +0 -1
  534. package/footer.d.ts +0 -5
  535. package/footer.d.ts.map +0 -1
  536. package/form-field/error/error.component.d.ts +0 -20
  537. package/form-field/error/error.component.d.ts.map +0 -1
  538. package/form-field/error.d.ts +0 -5
  539. package/form-field/error.d.ts.map +0 -1
  540. package/form-field/form-field/form-field.component.d.ts +0 -125
  541. package/form-field/form-field/form-field.component.d.ts.map +0 -1
  542. package/form-field/form-field-clear/form-field-clear.component.d.ts +0 -23
  543. package/form-field/form-field-clear/form-field-clear.component.d.ts.map +0 -1
  544. package/form-field/form-field-clear.d.ts +0 -5
  545. package/form-field/form-field-clear.d.ts.map +0 -1
  546. package/form-field/form-field.d.ts +0 -5
  547. package/form-field/form-field.d.ts.map +0 -1
  548. package/form-field.d.ts +0 -7
  549. package/form-field.d.ts.map +0 -1
  550. package/header/common/header-action-common.d.ts +0 -10
  551. package/header/common/header-action-common.d.ts.map +0 -1
  552. package/header/common.d.ts +0 -5
  553. package/header/common.d.ts.map +0 -1
  554. package/header/header/header.component.d.ts +0 -65
  555. package/header/header/header.component.d.ts.map +0 -1
  556. package/header/header-button/header-button.component.d.ts +0 -17
  557. package/header/header-button/header-button.component.d.ts.map +0 -1
  558. package/header/header-button.d.ts +0 -5
  559. package/header/header-button.d.ts.map +0 -1
  560. package/header/header-environment/header-environment.component.d.ts +0 -24
  561. package/header/header-environment/header-environment.component.d.ts.map +0 -1
  562. package/header/header-environment.d.ts +0 -5
  563. package/header/header-environment.d.ts.map +0 -1
  564. package/header/header-link/header-link.component.d.ts +0 -17
  565. package/header/header-link/header-link.component.d.ts.map +0 -1
  566. package/header/header-link.d.ts +0 -5
  567. package/header/header-link.d.ts.map +0 -1
  568. package/header/header.d.ts +0 -5
  569. package/header/header.d.ts.map +0 -1
  570. package/header.d.ts +0 -8
  571. package/header.d.ts.map +0 -1
  572. package/icon/icon-base.d.ts +0 -29
  573. package/icon/icon-base.d.ts.map +0 -1
  574. package/icon/icon-name-mixin.d.ts +0 -12
  575. package/icon/icon-name-mixin.d.ts.map +0 -1
  576. package/icon/icon-request.d.ts +0 -3
  577. package/icon/icon-request.d.ts.map +0 -1
  578. package/icon/icon-validate.d.ts +0 -12
  579. package/icon/icon-validate.d.ts.map +0 -1
  580. package/icon/icon.component.d.ts +0 -36
  581. package/icon/icon.component.d.ts.map +0 -1
  582. package/icon-sidebar/icon-sidebar/icon-sidebar.component.d.ts +0 -25
  583. package/icon-sidebar/icon-sidebar/icon-sidebar.component.d.ts.map +0 -1
  584. package/icon-sidebar/icon-sidebar-button/icon-sidebar-button.component.d.ts +0 -22
  585. package/icon-sidebar/icon-sidebar-button/icon-sidebar-button.component.d.ts.map +0 -1
  586. package/icon-sidebar/icon-sidebar-button.d.ts +0 -5
  587. package/icon-sidebar/icon-sidebar-button.d.ts.map +0 -1
  588. package/icon-sidebar/icon-sidebar-container/icon-sidebar-container.component.d.ts +0 -23
  589. package/icon-sidebar/icon-sidebar-container/icon-sidebar-container.component.d.ts.map +0 -1
  590. package/icon-sidebar/icon-sidebar-container.d.ts +0 -5
  591. package/icon-sidebar/icon-sidebar-container.d.ts.map +0 -1
  592. package/icon-sidebar/icon-sidebar-content/icon-sidebar-content.component.d.ts +0 -17
  593. package/icon-sidebar/icon-sidebar-content/icon-sidebar-content.component.d.ts.map +0 -1
  594. package/icon-sidebar/icon-sidebar-content.d.ts +0 -5
  595. package/icon-sidebar/icon-sidebar-content.d.ts.map +0 -1
  596. package/icon-sidebar/icon-sidebar-link/icon-sidebar-link.component.d.ts +0 -22
  597. package/icon-sidebar/icon-sidebar-link/icon-sidebar-link.component.d.ts.map +0 -1
  598. package/icon-sidebar/icon-sidebar-link.d.ts +0 -5
  599. package/icon-sidebar/icon-sidebar-link.d.ts.map +0 -1
  600. package/icon-sidebar/icon-sidebar.d.ts +0 -5
  601. package/icon-sidebar/icon-sidebar.d.ts.map +0 -1
  602. package/icon-sidebar.d.ts +0 -9
  603. package/icon-sidebar.d.ts.map +0 -1
  604. package/icon.d.ts +0 -9
  605. package/icon.d.ts.map +0 -1
  606. package/image/image.component.d.ts +0 -215
  607. package/image/image.component.d.ts.map +0 -1
  608. package/image.d.ts +0 -5
  609. package/image.d.ts.map +0 -1
  610. package/journey-header/journey-header.component.d.ts +0 -32
  611. package/journey-header/journey-header.component.d.ts.map +0 -1
  612. package/journey-header.d.ts +0 -5
  613. package/journey-header.d.ts.map +0 -1
  614. package/lead-container/lead-container.component.d.ts +0 -21
  615. package/lead-container/lead-container.component.d.ts.map +0 -1
  616. package/lead-container.d.ts +0 -5
  617. package/lead-container.d.ts.map +0 -1
  618. package/link/block-link/block-link.component.d.ts +0 -17
  619. package/link/block-link/block-link.component.d.ts.map +0 -1
  620. package/link/block-link-button/block-link-button.component.d.ts +0 -17
  621. package/link/block-link-button/block-link-button.component.d.ts.map +0 -1
  622. package/link/block-link-button.d.ts +0 -5
  623. package/link/block-link-button.d.ts.map +0 -1
  624. package/link/block-link-static/block-link-static.component.d.ts +0 -17
  625. package/link/block-link-static/block-link-static.component.d.ts.map +0 -1
  626. package/link/block-link-static.d.ts +0 -5
  627. package/link/block-link-static.d.ts.map +0 -1
  628. package/link/block-link.d.ts +0 -5
  629. package/link/block-link.d.ts.map +0 -1
  630. package/link/common/block-link-common.d.ts +0 -10
  631. package/link/common/block-link-common.d.ts.map +0 -1
  632. package/link/common/inline-link-common.d.ts +0 -8
  633. package/link/common/inline-link-common.d.ts.map +0 -1
  634. package/link/common/link-common.d.ts +0 -10
  635. package/link/common/link-common.d.ts.map +0 -1
  636. package/link/common.d.ts +0 -7
  637. package/link/common.d.ts.map +0 -1
  638. package/link/link/link.component.d.ts +0 -16
  639. package/link/link/link.component.d.ts.map +0 -1
  640. package/link/link-button/link-button.component.d.ts +0 -16
  641. package/link/link-button/link-button.component.d.ts.map +0 -1
  642. package/link/link-button.d.ts +0 -5
  643. package/link/link-button.d.ts.map +0 -1
  644. package/link/link-static/link-static.component.d.ts +0 -16
  645. package/link/link-static/link-static.component.d.ts.map +0 -1
  646. package/link/link-static.d.ts +0 -5
  647. package/link/link-static.d.ts.map +0 -1
  648. package/link/link.d.ts +0 -5
  649. package/link/link.d.ts.map +0 -1
  650. package/link-list/common/link-list-base.d.ts +0 -28
  651. package/link-list/common/link-list-base.d.ts.map +0 -1
  652. package/link-list/common.d.ts +0 -5
  653. package/link-list/common.d.ts.map +0 -1
  654. package/link-list/link-list/link-list.component.d.ts +0 -22
  655. package/link-list/link-list/link-list.component.d.ts.map +0 -1
  656. package/link-list/link-list-anchor/link-list-anchor.component.d.ts +0 -17
  657. package/link-list/link-list-anchor/link-list-anchor.component.d.ts.map +0 -1
  658. package/link-list/link-list-anchor.d.ts +0 -5
  659. package/link-list/link-list-anchor.d.ts.map +0 -1
  660. package/link-list/link-list.d.ts +0 -5
  661. package/link-list/link-list.d.ts.map +0 -1
  662. package/link-list.d.ts +0 -7
  663. package/link-list.d.ts.map +0 -1
  664. package/link.d.ts +0 -11
  665. package/link.d.ts.map +0 -1
  666. package/loading-indicator/loading-indicator.component.d.ts +0 -22
  667. package/loading-indicator/loading-indicator.component.d.ts.map +0 -1
  668. package/loading-indicator-circle/loading-indicator-circle.component.d.ts +0 -20
  669. package/loading-indicator-circle/loading-indicator-circle.component.d.ts.map +0 -1
  670. package/loading-indicator-circle.d.ts +0 -5
  671. package/loading-indicator-circle.d.ts.map +0 -1
  672. package/loading-indicator.d.ts +0 -5
  673. package/loading-indicator.d.ts.map +0 -1
  674. package/logo/logo.component.d.ts +0 -23
  675. package/logo/logo.component.d.ts.map +0 -1
  676. package/logo.d.ts +0 -5
  677. package/logo.d.ts.map +0 -1
  678. package/map-container/map-container.component.d.ts +0 -47
  679. package/map-container/map-container.component.d.ts.map +0 -1
  680. package/map-container.d.ts +0 -5
  681. package/map-container.d.ts.map +0 -1
  682. package/menu/common/menu-action-common.d.ts +0 -8
  683. package/menu/common/menu-action-common.d.ts.map +0 -1
  684. package/menu/common.d.ts +0 -5
  685. package/menu/common.d.ts.map +0 -1
  686. package/menu/menu/menu.component.d.ts +0 -79
  687. package/menu/menu/menu.component.d.ts.map +0 -1
  688. package/menu/menu-button/menu-button.component.d.ts +0 -20
  689. package/menu/menu-button/menu-button.component.d.ts.map +0 -1
  690. package/menu/menu-button.d.ts +0 -5
  691. package/menu/menu-button.d.ts.map +0 -1
  692. package/menu/menu-link/menu-link.component.d.ts +0 -20
  693. package/menu/menu-link/menu-link.component.d.ts.map +0 -1
  694. package/menu/menu-link.d.ts +0 -5
  695. package/menu/menu-link.d.ts.map +0 -1
  696. package/menu/menu.d.ts +0 -5
  697. package/menu/menu.d.ts.map +0 -1
  698. package/menu.d.ts +0 -8
  699. package/menu.d.ts.map +0 -1
  700. package/message/message.component.d.ts +0 -21
  701. package/message/message.component.d.ts.map +0 -1
  702. package/message.d.ts +0 -5
  703. package/message.d.ts.map +0 -1
  704. package/mini-calendar/mini-calendar/mini-calendar.component.d.ts +0 -35
  705. package/mini-calendar/mini-calendar/mini-calendar.component.d.ts.map +0 -1
  706. package/mini-calendar/mini-calendar-day/mini-calendar-day.component.d.ts +0 -23
  707. package/mini-calendar/mini-calendar-day/mini-calendar-day.component.d.ts.map +0 -1
  708. package/mini-calendar/mini-calendar-day.d.ts +0 -5
  709. package/mini-calendar/mini-calendar-day.d.ts.map +0 -1
  710. package/mini-calendar/mini-calendar-month/mini-calendar-month.component.d.ts +0 -25
  711. package/mini-calendar/mini-calendar-month/mini-calendar-month.component.d.ts.map +0 -1
  712. package/mini-calendar/mini-calendar-month.d.ts +0 -5
  713. package/mini-calendar/mini-calendar-month.d.ts.map +0 -1
  714. package/mini-calendar/mini-calendar.d.ts +0 -5
  715. package/mini-calendar/mini-calendar.d.ts.map +0 -1
  716. package/mini-calendar.d.ts +0 -7
  717. package/mini-calendar.d.ts.map +0 -1
  718. package/navigation/common/navigation-action-common.d.ts +0 -13
  719. package/navigation/common/navigation-action-common.d.ts.map +0 -1
  720. package/navigation/common.d.ts +0 -5
  721. package/navigation/common.d.ts.map +0 -1
  722. package/navigation/navigation/navigation.component.d.ts +0 -73
  723. package/navigation/navigation/navigation.component.d.ts.map +0 -1
  724. package/navigation/navigation-button/navigation-button.component.d.ts +0 -16
  725. package/navigation/navigation-button/navigation-button.component.d.ts.map +0 -1
  726. package/navigation/navigation-button.d.ts +0 -5
  727. package/navigation/navigation-button.d.ts.map +0 -1
  728. package/navigation/navigation-link/navigation-link.component.d.ts +0 -16
  729. package/navigation/navigation-link/navigation-link.component.d.ts.map +0 -1
  730. package/navigation/navigation-link.d.ts +0 -5
  731. package/navigation/navigation-link.d.ts.map +0 -1
  732. package/navigation/navigation-list/navigation-list.component.d.ts +0 -28
  733. package/navigation/navigation-list/navigation-list.component.d.ts.map +0 -1
  734. package/navigation/navigation-list.d.ts +0 -5
  735. package/navigation/navigation-list.d.ts.map +0 -1
  736. package/navigation/navigation-marker/navigation-marker.component.d.ts +0 -37
  737. package/navigation/navigation-marker/navigation-marker.component.d.ts.map +0 -1
  738. package/navigation/navigation-marker.d.ts +0 -5
  739. package/navigation/navigation-marker.d.ts.map +0 -1
  740. package/navigation/navigation-section/navigation-section.component.d.ts +0 -77
  741. package/navigation/navigation-section/navigation-section.component.d.ts.map +0 -1
  742. package/navigation/navigation-section.d.ts +0 -5
  743. package/navigation/navigation-section.d.ts.map +0 -1
  744. package/navigation/navigation.d.ts +0 -5
  745. package/navigation/navigation.d.ts.map +0 -1
  746. package/navigation.d.ts +0 -11
  747. package/navigation.d.ts.map +0 -1
  748. package/notification/notification.component.d.ts +0 -60
  749. package/notification/notification.component.d.ts.map +0 -1
  750. package/notification.d.ts +0 -5
  751. package/notification.d.ts.map +0 -1
  752. package/option/optgroup/optgroup-base-element.d.ts +0 -22
  753. package/option/optgroup/optgroup-base-element.d.ts.map +0 -1
  754. package/option/optgroup/optgroup.component.d.ts +0 -21
  755. package/option/optgroup/optgroup.component.d.ts.map +0 -1
  756. package/option/optgroup.d.ts +0 -6
  757. package/option/optgroup.d.ts.map +0 -1
  758. package/option/option/option-base-element.d.ts +0 -63
  759. package/option/option/option-base-element.d.ts.map +0 -1
  760. package/option/option/option.component.d.ts +0 -45
  761. package/option/option/option.component.d.ts.map +0 -1
  762. package/option/option-hint/option-hint.component.d.ts +0 -18
  763. package/option/option-hint/option-hint.component.d.ts.map +0 -1
  764. package/option/option-hint.d.ts +0 -5
  765. package/option/option-hint.d.ts.map +0 -1
  766. package/option/option.d.ts +0 -6
  767. package/option/option.d.ts.map +0 -1
  768. package/option.d.ts +0 -7
  769. package/option.d.ts.map +0 -1
  770. package/overlay/overlay-base-element.d.ts +0 -93
  771. package/overlay/overlay-base-element.d.ts.map +0 -1
  772. package/overlay/overlay.component.d.ts +0 -43
  773. package/overlay/overlay.component.d.ts.map +0 -1
  774. package/overlay.d.ts +0 -6
  775. package/overlay.d.ts.map +0 -1
  776. package/paginator/common/paginator-common.d.ts +0 -35
  777. package/paginator/common/paginator-common.d.ts.map +0 -1
  778. package/paginator/common.d.ts +0 -5
  779. package/paginator/common.d.ts.map +0 -1
  780. package/paginator/compact-paginator/compact-paginator.component.d.ts +0 -18
  781. package/paginator/compact-paginator/compact-paginator.component.d.ts.map +0 -1
  782. package/paginator/compact-paginator.d.ts +0 -5
  783. package/paginator/compact-paginator.d.ts.map +0 -1
  784. package/paginator/paginator/paginator.component.d.ts +0 -45
  785. package/paginator/paginator/paginator.component.d.ts.map +0 -1
  786. package/paginator/paginator.d.ts +0 -5
  787. package/paginator/paginator.d.ts.map +0 -1
  788. package/paginator.d.ts +0 -7
  789. package/paginator.d.ts.map +0 -1
  790. package/popover/popover.component.d.ts +0 -109
  791. package/popover/popover.component.d.ts.map +0 -1
  792. package/popover.d.ts +0 -5
  793. package/popover.d.ts.map +0 -1
  794. package/radio-button/common/radio-button-common.d.ts +0 -14
  795. package/radio-button/common/radio-button-common.d.ts.map +0 -1
  796. package/radio-button/common.d.ts +0 -5
  797. package/radio-button/common.d.ts.map +0 -1
  798. package/radio-button/radio-button/radio-button.component.d.ts +0 -35
  799. package/radio-button/radio-button/radio-button.component.d.ts.map +0 -1
  800. package/radio-button/radio-button-group/radio-button-group.component.d.ts +0 -78
  801. package/radio-button/radio-button-group/radio-button-group.component.d.ts.map +0 -1
  802. package/radio-button/radio-button-group.d.ts +0 -5
  803. package/radio-button/radio-button-group.d.ts.map +0 -1
  804. package/radio-button/radio-button-panel/radio-button-panel.component.d.ts +0 -44
  805. package/radio-button/radio-button-panel/radio-button-panel.component.d.ts.map +0 -1
  806. package/radio-button/radio-button-panel.d.ts +0 -5
  807. package/radio-button/radio-button-panel.d.ts.map +0 -1
  808. package/radio-button/radio-button.d.ts +0 -5
  809. package/radio-button/radio-button.d.ts.map +0 -1
  810. package/radio-button.d.ts +0 -8
  811. package/radio-button.d.ts.map +0 -1
  812. package/screen-reader-only/screen-reader-only.component.d.ts +0 -16
  813. package/screen-reader-only/screen-reader-only.component.d.ts.map +0 -1
  814. package/screen-reader-only.d.ts +0 -5
  815. package/screen-reader-only.d.ts.map +0 -1
  816. package/select/select.component.d.ts +0 -171
  817. package/select/select.component.d.ts.map +0 -1
  818. package/select.d.ts +0 -5
  819. package/select.d.ts.map +0 -1
  820. package/selection-action-panel/selection-action-panel.component.d.ts +0 -22
  821. package/selection-action-panel/selection-action-panel.component.d.ts.map +0 -1
  822. package/selection-action-panel.d.ts +0 -5
  823. package/selection-action-panel.d.ts.map +0 -1
  824. package/selection-expansion-panel/selection-expansion-panel.component.d.ts +0 -45
  825. package/selection-expansion-panel/selection-expansion-panel.component.d.ts.map +0 -1
  826. package/selection-expansion-panel.d.ts +0 -5
  827. package/selection-expansion-panel.d.ts.map +0 -1
  828. package/sidebar/common.d.ts +0 -4
  829. package/sidebar/common.d.ts.map +0 -1
  830. package/sidebar/sidebar/sidebar.component.d.ts +0 -66
  831. package/sidebar/sidebar/sidebar.component.d.ts.map +0 -1
  832. package/sidebar/sidebar-close-button/sidebar-close-button.component.d.ts +0 -23
  833. package/sidebar/sidebar-close-button/sidebar-close-button.component.d.ts.map +0 -1
  834. package/sidebar/sidebar-close-button.d.ts +0 -5
  835. package/sidebar/sidebar-close-button.d.ts.map +0 -1
  836. package/sidebar/sidebar-container/sidebar-container.component.d.ts +0 -34
  837. package/sidebar/sidebar-container/sidebar-container.component.d.ts.map +0 -1
  838. package/sidebar/sidebar-container.d.ts +0 -5
  839. package/sidebar/sidebar-container.d.ts.map +0 -1
  840. package/sidebar/sidebar-content/sidebar-content.component.d.ts +0 -18
  841. package/sidebar/sidebar-content/sidebar-content.component.d.ts.map +0 -1
  842. package/sidebar/sidebar-content.d.ts +0 -5
  843. package/sidebar/sidebar-content.d.ts.map +0 -1
  844. package/sidebar/sidebar-title/sidebar-title.component.d.ts +0 -20
  845. package/sidebar/sidebar-title/sidebar-title.component.d.ts.map +0 -1
  846. package/sidebar/sidebar-title.d.ts +0 -5
  847. package/sidebar/sidebar-title.d.ts.map +0 -1
  848. package/sidebar/sidebar.d.ts +0 -5
  849. package/sidebar/sidebar.d.ts.map +0 -1
  850. package/sidebar.d.ts +0 -10
  851. package/sidebar.d.ts.map +0 -1
  852. package/signet/signet.component.d.ts +0 -22
  853. package/signet/signet.component.d.ts.map +0 -1
  854. package/signet.d.ts +0 -5
  855. package/signet.d.ts.map +0 -1
  856. package/skiplink-list/skiplink-list.component.d.ts +0 -33
  857. package/skiplink-list/skiplink-list.component.d.ts.map +0 -1
  858. package/skiplink-list.d.ts +0 -5
  859. package/skiplink-list.d.ts.map +0 -1
  860. package/slider/slider.component.d.ts +0 -79
  861. package/slider/slider.component.d.ts.map +0 -1
  862. package/slider.d.ts +0 -5
  863. package/slider.d.ts.map +0 -1
  864. package/status/status.component.d.ts +0 -31
  865. package/status/status.component.d.ts.map +0 -1
  866. package/status.d.ts +0 -5
  867. package/status.d.ts.map +0 -1
  868. package/stepper/step/step.component.d.ts +0 -75
  869. package/stepper/step/step.component.d.ts.map +0 -1
  870. package/stepper/step-label/step-label.component.d.ts +0 -56
  871. package/stepper/step-label/step-label.component.d.ts.map +0 -1
  872. package/stepper/step-label.d.ts +0 -5
  873. package/stepper/step-label.d.ts.map +0 -1
  874. package/stepper/step.d.ts +0 -5
  875. package/stepper/step.d.ts.map +0 -1
  876. package/stepper/stepper/stepper.component.d.ts +0 -96
  877. package/stepper/stepper/stepper.component.d.ts.map +0 -1
  878. package/stepper/stepper.d.ts +0 -5
  879. package/stepper/stepper.d.ts.map +0 -1
  880. package/stepper.d.ts +0 -7
  881. package/stepper.d.ts.map +0 -1
  882. package/table/table-wrapper/table-wrapper.component.d.ts +0 -31
  883. package/table/table-wrapper/table-wrapper.component.d.ts.map +0 -1
  884. package/table/table-wrapper.d.ts +0 -5
  885. package/table/table-wrapper.d.ts.map +0 -1
  886. package/table.d.ts +0 -5
  887. package/table.d.ts.map +0 -1
  888. package/tabs/common.d.ts +0 -4
  889. package/tabs/common.d.ts.map +0 -1
  890. package/tabs/tab/tab.component.d.ts +0 -36
  891. package/tabs/tab/tab.component.d.ts.map +0 -1
  892. package/tabs/tab-group/tab-group.component.d.ts +0 -76
  893. package/tabs/tab-group/tab-group.component.d.ts.map +0 -1
  894. package/tabs/tab-group.d.ts +0 -5
  895. package/tabs/tab-group.d.ts.map +0 -1
  896. package/tabs/tab-label/tab-label.component.d.ts +0 -51
  897. package/tabs/tab-label/tab-label.component.d.ts.map +0 -1
  898. package/tabs/tab-label.d.ts +0 -5
  899. package/tabs/tab-label.d.ts.map +0 -1
  900. package/tabs/tab-nav-bar/tab-nav-bar.component.d.ts +0 -30
  901. package/tabs/tab-nav-bar/tab-nav-bar.component.d.ts.map +0 -1
  902. package/tabs/tab-nav-bar.d.ts +0 -5
  903. package/tabs/tab-nav-bar.d.ts.map +0 -1
  904. package/tabs/tab.d.ts +0 -5
  905. package/tabs/tab.d.ts.map +0 -1
  906. package/tabs.d.ts +0 -8
  907. package/tabs.d.ts.map +0 -1
  908. package/tag/tag/tag.component.d.ts +0 -58
  909. package/tag/tag/tag.component.d.ts.map +0 -1
  910. package/tag/tag-group/tag-group.component.d.ts +0 -50
  911. package/tag/tag-group/tag-group.component.d.ts.map +0 -1
  912. package/tag/tag-group.d.ts +0 -5
  913. package/tag/tag-group.d.ts.map +0 -1
  914. package/tag/tag.d.ts +0 -5
  915. package/tag/tag.d.ts.map +0 -1
  916. package/tag.d.ts +0 -6
  917. package/tag.d.ts.map +0 -1
  918. package/teaser/teaser.component.d.ts +0 -26
  919. package/teaser/teaser.component.d.ts.map +0 -1
  920. package/teaser-hero/teaser-hero.component.d.ts +0 -23
  921. package/teaser-hero/teaser-hero.component.d.ts.map +0 -1
  922. package/teaser-hero.d.ts +0 -5
  923. package/teaser-hero.d.ts.map +0 -1
  924. package/teaser-product/common/teaser-product-common.d.ts +0 -9
  925. package/teaser-product/common/teaser-product-common.d.ts.map +0 -1
  926. package/teaser-product/common.d.ts +0 -5
  927. package/teaser-product/common.d.ts.map +0 -1
  928. package/teaser-product/teaser-product/teaser-product.component.d.ts +0 -23
  929. package/teaser-product/teaser-product/teaser-product.component.d.ts.map +0 -1
  930. package/teaser-product/teaser-product-static/teaser-product-static.component.d.ts +0 -22
  931. package/teaser-product/teaser-product-static/teaser-product-static.component.d.ts.map +0 -1
  932. package/teaser-product/teaser-product-static.d.ts +0 -5
  933. package/teaser-product/teaser-product-static.d.ts.map +0 -1
  934. package/teaser-product/teaser-product.d.ts +0 -5
  935. package/teaser-product/teaser-product.d.ts.map +0 -1
  936. package/teaser-product.d.ts +0 -7
  937. package/teaser-product.d.ts.map +0 -1
  938. package/teaser.d.ts +0 -5
  939. package/teaser.d.ts.map +0 -1
  940. package/time-input/time-input.component.d.ts +0 -49
  941. package/time-input/time-input.component.d.ts.map +0 -1
  942. package/time-input.d.ts +0 -5
  943. package/time-input.d.ts.map +0 -1
  944. package/timetable-form/timetable-form/timetable-form.component.d.ts +0 -17
  945. package/timetable-form/timetable-form/timetable-form.component.d.ts.map +0 -1
  946. package/timetable-form/timetable-form-details/timetable-form-details.component.d.ts +0 -16
  947. package/timetable-form/timetable-form-details/timetable-form-details.component.d.ts.map +0 -1
  948. package/timetable-form/timetable-form-details.d.ts +0 -5
  949. package/timetable-form/timetable-form-details.d.ts.map +0 -1
  950. package/timetable-form/timetable-form-field/timetable-form-field.component.d.ts +0 -18
  951. package/timetable-form/timetable-form-field/timetable-form-field.component.d.ts.map +0 -1
  952. package/timetable-form/timetable-form-field.d.ts +0 -5
  953. package/timetable-form/timetable-form-field.d.ts.map +0 -1
  954. package/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.d.ts +0 -24
  955. package/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.d.ts.map +0 -1
  956. package/timetable-form/timetable-form-swap-button.d.ts +0 -5
  957. package/timetable-form/timetable-form-swap-button.d.ts.map +0 -1
  958. package/timetable-form/timetable-form.d.ts +0 -5
  959. package/timetable-form/timetable-form.d.ts.map +0 -1
  960. package/timetable-form.d.ts +0 -8
  961. package/timetable-form.d.ts.map +0 -1
  962. package/timetable-occupancy/timetable-occupancy.component.d.ts +0 -22
  963. package/timetable-occupancy/timetable-occupancy.component.d.ts.map +0 -1
  964. package/timetable-occupancy-icon/timetable-occupancy-icon.component.d.ts +0 -28
  965. package/timetable-occupancy-icon/timetable-occupancy-icon.component.d.ts.map +0 -1
  966. package/timetable-occupancy-icon.d.ts +0 -5
  967. package/timetable-occupancy-icon.d.ts.map +0 -1
  968. package/timetable-occupancy.d.ts +0 -5
  969. package/timetable-occupancy.d.ts.map +0 -1
  970. package/title/title-base.d.ts +0 -18
  971. package/title/title-base.d.ts.map +0 -1
  972. package/title/title.component.d.ts +0 -20
  973. package/title/title.component.d.ts.map +0 -1
  974. package/title.d.ts +0 -6
  975. package/title.d.ts.map +0 -1
  976. package/toast/toast.component.d.ts +0 -73
  977. package/toast/toast.component.d.ts.map +0 -1
  978. package/toast.d.ts +0 -5
  979. package/toast.d.ts.map +0 -1
  980. package/toggle/toggle/toggle.component.d.ts +0 -72
  981. package/toggle/toggle/toggle.component.d.ts.map +0 -1
  982. package/toggle/toggle-option/toggle-option.component.d.ts +0 -35
  983. package/toggle/toggle-option/toggle-option.component.d.ts.map +0 -1
  984. package/toggle/toggle-option.d.ts +0 -5
  985. package/toggle/toggle-option.d.ts.map +0 -1
  986. package/toggle/toggle.d.ts +0 -5
  987. package/toggle/toggle.d.ts.map +0 -1
  988. package/toggle-check/toggle-check.component.d.ts +0 -33
  989. package/toggle-check/toggle-check.component.d.ts.map +0 -1
  990. package/toggle-check.d.ts +0 -5
  991. package/toggle-check.d.ts.map +0 -1
  992. package/toggle.d.ts +0 -6
  993. package/toggle.d.ts.map +0 -1
  994. package/tooltip/tooltip.component.d.ts +0 -96
  995. package/tooltip/tooltip.component.d.ts.map +0 -1
  996. package/tooltip.d.ts +0 -5
  997. package/tooltip.d.ts.map +0 -1
  998. package/train/train/train.component.d.ts +0 -42
  999. package/train/train/train.component.d.ts.map +0 -1
  1000. package/train/train-blocked-passage/train-blocked-passage.component.d.ts +0 -14
  1001. package/train/train-blocked-passage/train-blocked-passage.component.d.ts.map +0 -1
  1002. package/train/train-blocked-passage.d.ts +0 -5
  1003. package/train/train-blocked-passage.d.ts.map +0 -1
  1004. package/train/train-formation/train-formation.component.d.ts +0 -29
  1005. package/train/train-formation/train-formation.component.d.ts.map +0 -1
  1006. package/train/train-formation.d.ts +0 -5
  1007. package/train/train-formation.d.ts.map +0 -1
  1008. package/train/train-wagon/train-wagon.component.d.ts +0 -44
  1009. package/train/train-wagon/train-wagon.component.d.ts.map +0 -1
  1010. package/train/train-wagon.d.ts +0 -5
  1011. package/train/train-wagon.d.ts.map +0 -1
  1012. package/train/train.d.ts +0 -5
  1013. package/train/train.d.ts.map +0 -1
  1014. package/train.d.ts +0 -8
  1015. package/train.d.ts.map +0 -1
  1016. package/visual-checkbox/visual-checkbox.component.d.ts +0 -26
  1017. package/visual-checkbox/visual-checkbox.component.d.ts.map +0 -1
  1018. package/visual-checkbox.d.ts +0 -5
  1019. package/visual-checkbox.d.ts.map +0 -1
  1020. /package/core/styles/{node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables.scss → core/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables.scss} +0 -0
@@ -1,19 +1,5 @@
1
1
  import { isServer } from "lit";
2
2
  const cssAnchorPositionSupported = !isServer && CSS.supports("anchor-name", "--test");
3
- const physicalSupportedPositions = [
4
- "top",
5
- "bottom",
6
- "left",
7
- "right",
8
- "top span-left",
9
- "top span-right",
10
- "bottom span-left",
11
- "bottom span-right",
12
- "left span-top",
13
- "left span-bottom",
14
- "right span-top",
15
- "right span-bottom"
16
- ];
17
3
  const logicalSupportedPositions = [
18
4
  "block-start",
19
5
  "block-end",
@@ -42,7 +28,6 @@ const rtlPositionMapping = {
42
28
  "inline-end span-block-start": "inline-start span-block-start",
43
29
  "inline-end span-block-end": "inline-start span-block-end"
44
30
  };
45
- const supportedPositions = [...physicalSupportedPositions, ...logicalSupportedPositions];
46
31
  let nextId = 0;
47
32
  class SbbOverlayPositionController {
48
33
  /** Get the current position. (e.g. block-end, block-start, etc.) */
@@ -290,10 +275,6 @@ class SbbOverlayPositionController {
290
275
  this._overlayStyles.getPropertyValue("--sbb-overlay-position-area") || "block-end",
291
276
  ...this._overlayStyles.getPropertyValue("--sbb-overlay-position-try-fallbacks").split(",").map((f) => f.trim()).filter((f) => !!f)
292
277
  ];
293
- if (positions.some((p) => !supportedPositions.includes(p))) {
294
- const unsupportedPositions = positions.filter((p) => !supportedPositions.includes(p)).sort().join(", ");
295
- throw new Error(`Unsupported position-try-fallbacks ${unsupportedPositions} (Supported: ${supportedPositions.join(", ")})`);
296
- }
297
278
  this._positions = positions;
298
279
  if (this._lastPosition && !this._positions.includes(this._lastPosition)) {
299
280
  this._lastPosition = void 0;
@@ -303,4 +284,4 @@ class SbbOverlayPositionController {
303
284
  export {
304
285
  SbbOverlayPositionController
305
286
  };
306
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1wb3NpdGlvbi1jb250cm9sbGVyLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9jb250cm9sbGVycy9vdmVybGF5LXBvc2l0aW9uLWNvbnRyb2xsZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNTZXJ2ZXIsIHR5cGUgUmVhY3RpdmVDb250cm9sbGVyLCB0eXBlIFJlYWN0aXZlQ29udHJvbGxlckhvc3QgfSBmcm9tICdsaXQnO1xuXG5pbXBvcnQgdHlwZSB7IFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpblR5cGUgfSBmcm9tICcuLi9taXhpbnMudHMnO1xuXG5jb25zdCBjc3NBbmNob3JQb3NpdGlvblN1cHBvcnRlZCA9ICFpc1NlcnZlciAmJiBDU1Muc3VwcG9ydHMoJ2FuY2hvci1uYW1lJywgJy0tdGVzdCcpO1xuXG5jb25zdCBwaHlzaWNhbFN1cHBvcnRlZFBvc2l0aW9ucyA9IFtcbiAgJ3RvcCcsXG4gICdib3R0b20nLFxuICAnbGVmdCcsXG4gICdyaWdodCcsXG4gICd0b3Agc3Bhbi1sZWZ0JyxcbiAgJ3RvcCBzcGFuLXJpZ2h0JyxcbiAgJ2JvdHRvbSBzcGFuLWxlZnQnLFxuICAnYm90dG9tIHNwYW4tcmlnaHQnLFxuICAnbGVmdCBzcGFuLXRvcCcsXG4gICdsZWZ0IHNwYW4tYm90dG9tJyxcbiAgJ3JpZ2h0IHNwYW4tdG9wJyxcbiAgJ3JpZ2h0IHNwYW4tYm90dG9tJyxcbl07XG5cbi8vIE5vdGU6IGlmIHlvdSBhZGQgbmV3IGxvZ2ljYWwgc3VwcG9ydGVkIHBvc2l0aW9ucywgdXBkYXRlIGFsc28gdGhlICdydGxQb3NpdGlvbk1hcHBpbmcnXG5jb25zdCBsb2dpY2FsU3VwcG9ydGVkUG9zaXRpb25zID0gW1xuICAnYmxvY2stc3RhcnQnLFxuICAnYmxvY2stZW5kJyxcbiAgJ2lubGluZS1zdGFydCcsXG4gICdpbmxpbmUtZW5kJyxcbiAgJ2Jsb2NrLXN0YXJ0IHNwYW4taW5saW5lLXN0YXJ0JyxcbiAgJ2Jsb2NrLXN0YXJ0IHNwYW4taW5saW5lLWVuZCcsXG4gICdibG9jay1lbmQgc3Bhbi1pbmxpbmUtc3RhcnQnLFxuICAnYmxvY2stZW5kIHNwYW4taW5saW5lLWVuZCcsXG4gICdpbmxpbmUtc3RhcnQgc3Bhbi1ibG9jay1zdGFydCcsXG4gICdpbmxpbmUtc3RhcnQgc3Bhbi1ibG9jay1lbmQnLFxuICAnaW5saW5lLWVuZCBzcGFuLWJsb2NrLXN0YXJ0JyxcbiAgJ2lubGluZS1lbmQgc3Bhbi1ibG9jay1lbmQnLFxuXTtcblxuY29uc3QgcnRsUG9zaXRpb25NYXBwaW5nOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuICAnYmxvY2stc3RhcnQnOiAnYmxvY2stc3RhcnQnLFxuICAnYmxvY2stZW5kJzogJ2Jsb2NrLWVuZCcsXG4gICdpbmxpbmUtc3RhcnQnOiAnaW5saW5lLWVuZCcsXG4gICdpbmxpbmUtZW5kJzogJ2lubGluZS1zdGFydCcsXG4gICdibG9jay1zdGFydCBzcGFuLWlubGluZS1zdGFydCc6ICdibG9jay1zdGFydCBzcGFuLWlubGluZS1lbmQnLFxuICAnYmxvY2stc3RhcnQgc3Bhbi1pbmxpbmUtZW5kJzogJ2Jsb2NrLXN0YXJ0IHNwYW4taW5saW5lLXN0YXJ0JyxcbiAgJ2Jsb2NrLWVuZCBzcGFuLWlubGluZS1zdGFydCc6ICdibG9jay1lbmQgc3Bhbi1pbmxpbmUtZW5kJyxcbiAgJ2Jsb2NrLWVuZCBzcGFuLWlubGluZS1lbmQnOiAnYmxvY2stZW5kIHNwYW4taW5saW5lLXN0YXJ0JyxcbiAgJ2lubGluZS1zdGFydCBzcGFuLWJsb2NrLXN0YXJ0JzogJ2lubGluZS1lbmQgc3Bhbi1ibG9jay1zdGFydCcsXG4gICdpbmxpbmUtc3RhcnQgc3Bhbi1ibG9jay1lbmQnOiAnaW5saW5lLWVuZCBzcGFuLWJsb2NrLWVuZCcsXG4gICdpbmxpbmUtZW5kIHNwYW4tYmxvY2stc3RhcnQnOiAnaW5saW5lLXN0YXJ0IHNwYW4tYmxvY2stc3RhcnQnLFxuICAnaW5saW5lLWVuZCBzcGFuLWJsb2NrLWVuZCc6ICdpbmxpbmUtc3RhcnQgc3Bhbi1ibG9jay1lbmQnLFxufTtcblxuY29uc3Qgc3VwcG9ydGVkUG9zaXRpb25zID0gWy4uLnBoeXNpY2FsU3VwcG9ydGVkUG9zaXRpb25zLCAuLi5sb2dpY2FsU3VwcG9ydGVkUG9zaXRpb25zXTtcbmxldCBuZXh0SWQgPSAwO1xuXG4vKipcbiAqIENvbnRyb2xsZXIgZm9yIG1hbmFnaW5nIG92ZXJsYXlzIHBvc2l0aW9uaW5nLiBBbHNvIGFjdHMgYXMgYSBwb2x5ZmlsbCB3aGVuIG5hdGl2ZVxuICogQ1NTIEFuY2hvciBQb3NpdGlvbmluZyBpcyBub3Qgc3VwcG9ydGVkIChlbm91Z2gpLlxuICogQXBwbGllcyB1bmlxdWUgYW5jaG9yIG5hbWVzIHdoZW4gdXNpbmcgbmF0aXZlIENTUyBBbmNob3IgUG9zaXRpb25pbmdcbiAqIG9yIGNhbGN1bGF0ZXMgYW5kIGFwcGxpZXMgY29ycmVjdCBwb3NpdGlvbnMgaW4gcG9seWZpbGwgbW9kZS5cbiAqXG4gKiBBbHNvLCB0aGUgY29udHJvbGxlciBzZXRzIHRoZSAnZGF0YS1wb3NpdGlvbicgYXR0cmlidXRlIG9uIHRoZSBvdmVybGF5IGVsZW1lbnQuXG4gKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGFwcGx5IHNwZWNpZmljIHN0eWxlcyBiYXNlZCBvbiB0aGUgY3VycmVudCBwb3NpdGlvbiBvZiB0aGUgb3ZlcmxheS5cbiAqXG4gKiAjIyMgSW1wbGVtZW50YXRpb25cbiAqIERlZmluZSBhbmQgYXBwbHkgdGhlIGZvbGxvd2luZyBDU1MgdmFyaWFibGVzIG9uIHRoZSBvdmVybGF5IGVsZW1lbnQ6XG4gKiBgYGBzY3NzXG4gKiAgIC0tc2JiLW92ZXJsYXktcG9zaXRpb24tYXJlYTogYmxvY2stZW5kOyAvLyBEZWZhdWx0XG4gKiAgIC0tc2JiLW92ZXJsYXktcG9zaXRpb24tdHJ5LWZhbGxiYWNrczogYmxvY2stc3RhcnQsIGlubGluZS1lbmQsIGlubGluZS1zdGFydDsgLy8gRmFsbGJhY2tzXG4gKlxuICogICBwb3NpdGlvbi1hcmVhOiB2YXIoLS1zYmItb3ZlcmxheS1wb3NpdGlvbi1hcmVhKTtcbiAqICAgcG9zaXRpb24tdHJ5LWZhbGxiYWNrczogdmFyKC0tc2JiLW92ZXJsYXktcG9zaXRpb24tdHJ5LWZhbGxiYWNrcyk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIFNiYk92ZXJsYXlQb3NpdGlvbkNvbnRyb2xsZXIgaW1wbGVtZW50cyBSZWFjdGl2ZUNvbnRyb2xsZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IF9yZXNpemVPYnNlcnZlciA9ICFpc1NlcnZlclxuICAgID8gbmV3IFJlc2l6ZU9ic2VydmVyKCgpID0+IHRoaXMuX3JlcXVlc3RDYWxjdWxhdGVQb3NpdGlvbigpKVxuICAgIDogbnVsbCE7XG4gIHByaXZhdGUgcmVhZG9ubHkgX292ZXJsYXk6IFJlYWN0aXZlQ29udHJvbGxlckhvc3QgJiBIVE1MRWxlbWVudCAmIFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpblR5cGU7XG4gIHByaXZhdGUgX2Fib3J0Q29udHJvbGxlcj86IEFib3J0Q29udHJvbGxlcjtcbiAgcHJpdmF0ZSBfYW5jaG9yPzogSFRNTEVsZW1lbnQ7XG4gIHByaXZhdGUgX292ZXJsYXlTdHlsZXM/OiBDU1NTdHlsZURlY2xhcmF0aW9uO1xuICBwcml2YXRlIF9mcmFtZT86IFJldHVyblR5cGU8dHlwZW9mIHJlcXVlc3RBbmltYXRpb25GcmFtZT47XG4gIHByaXZhdGUgX2FuY2hvck5hbWUgPSBgLS1zYmItb3ZlcmxheS1hbmNob3ItJHsrK25leHRJZH1gO1xuICBwcml2YXRlIF9wb3NpdGlvbnM6IHN0cmluZ1tdID0gW107XG4gIHByaXZhdGUgX2xhc3RQb3NpdGlvbj86IHN0cmluZztcblxuICAvKiogR2V0IHRoZSBjdXJyZW50IHBvc2l0aW9uLiAoZS5nLiBibG9jay1lbmQsIGJsb2NrLXN0YXJ0LCBldGMuKSAqL1xuICBwdWJsaWMgZ2V0IGN1cnJlbnRQb3NpdGlvbigpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLl91c2VQb2x5ZmlsbCkge1xuICAgICAgcmV0dXJuIHRoaXMuX2xhc3RQb3NpdGlvbiA/PyB0aGlzLl9wb3NpdGlvbnNbMF0gPz8gJyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX292ZXJsYXlTdHlsZXMgPz89IGdldENvbXB1dGVkU3R5bGUodGhpcy5fb3ZlcmxheSk7XG4gICAgICByZXR1cm4gdGhpcy5fb3ZlcmxheVN0eWxlcy5nZXRQcm9wZXJ0eVZhbHVlKCdwb3NpdGlvbi1hcmVhJyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIGhvc3Q6IFJlYWN0aXZlQ29udHJvbGxlckhvc3QgJiBIVE1MRWxlbWVudCAmIFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpblR5cGUsXG4gICAgcHJpdmF0ZSBfdXNlUG9seWZpbGwgPSAhY3NzQW5jaG9yUG9zaXRpb25TdXBwb3J0ZWQsXG4gICkge1xuICAgIGhvc3QuYWRkQ29udHJvbGxlcih0aGlzKTtcbiAgICB0aGlzLl9vdmVybGF5ID0gaG9zdDtcbiAgfVxuXG4gIHB1YmxpYyBob3N0Q29ubmVjdGVkKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fdXNlUG9seWZpbGwpIHtcbiAgICAgIHRoaXMuX292ZXJsYXkuc3R5bGUuc2V0UHJvcGVydHkoJ3Bvc2l0aW9uLWFuY2hvcicsIHRoaXMuX2FuY2hvck5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBSZXNldCB0aGUgJ3Bvc2l0aW9uLWFyZWEnIHZhbHVlIHRvIGF2b2lkIGFueSB1bndhbnRlZCBzaWRlIGVmZmVjdCB3aGVuIHVzaW5nIHRoZSBwb2x5ZmlsbC5cbiAgICAgIHRoaXMuX292ZXJsYXkuc3R5bGUuc2V0UHJvcGVydHkoJ3Bvc2l0aW9uLWFyZWEnLCAnaW5pdGlhbCcpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBob3N0VXBkYXRlKCk6IHZvaWQge1xuICAgIGlmIChpc1NlcnZlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9yZWFkUG9zaXRpb25zRnJvbUNzcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbm5lY3RzIHRoZSBvdmVybGF5IHRvIHRoZSBnaXZlbiB0cmlnZ2VyIGVsZW1lbnQgYW5kIGRldGVybWluZXMgdGhlIG9wdGltYWwgcG9zaXRpb24uXG4gICAqIFVzdWFsbHksIHRoaXMgaXMgY2FsbGVkIHdoZW4gdGhlIG92ZXJsYXkgaXMgb3BlbmVkLlxuICAgKiBAcGFyYW0gYW5jaG9yIFRoZSBhbmNob3IgZWxlbWVudC5cbiAgICovXG4gIHB1YmxpYyBjb25uZWN0KGFuY2hvcjogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fYW5jaG9yKSB7XG4gICAgICB0aGlzLmRpc2Nvbm5lY3QoKTtcbiAgICB9XG4gICAgdGhpcy5fYW5jaG9yID0gYW5jaG9yO1xuXG4gICAgaWYgKCF0aGlzLl91c2VQb2x5ZmlsbCkge1xuICAgICAgdGhpcy5fYW5jaG9yLnN0eWxlLnNldFByb3BlcnR5KCdhbmNob3ItbmFtZScsIHRoaXMuX2FuY2hvck5hbWUhKTtcbiAgICB9XG5cbiAgICB0aGlzLl9yZWFkUG9zaXRpb25zRnJvbUNzcygpO1xuICAgIHRoaXMuX2NhbGN1bGF0ZVBvc2l0aW9uKCk7XG4gICAgdGhpcy5fYWJvcnRDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHRoaXMuX2Fib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcblxuICAgIC8vIFdlIG5lZWQgdG8gdXNlIGNhcHR1cmUgaGVyZSB0byByZWFjdCB0byBhbGwgc2Nyb2xsIGV2ZW50cy5cbiAgICAvLyBJZiBjYXB0dXJlIHdhcyBub3QgdXNlZCwgdGhlbiBzY3JvbGwgZXZlbnRzIGluc2lkZSBzZXBhcmF0ZSBzY3JvbGxcbiAgICAvLyBjb250YWluZXJzIHdvdWxkIG5vdCBiZSBjYXVnaHQuXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgKCkgPT4gdGhpcy5fcmVxdWVzdENhbGN1bGF0ZVBvc2l0aW9uKCksIHtcbiAgICAgIGNhcHR1cmU6IHRydWUsXG4gICAgICBwYXNzaXZlOiB0cnVlLFxuICAgICAgc2lnbmFsOiB0aGlzLl9hYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCAoKSA9PiB0aGlzLl9yZXF1ZXN0Q2FsY3VsYXRlUG9zaXRpb24oKSwge1xuICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICAgIHNpZ25hbDogdGhpcy5fYWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgICB0aGlzLl9yZXNpemVPYnNlcnZlci5vYnNlcnZlKGFuY2hvciwgeyBib3g6ICdib3JkZXItYm94JyB9KTtcbiAgICB0aGlzLl9yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMuX292ZXJsYXksIHsgYm94OiAnYm9yZGVyLWJveCcgfSk7XG4gIH1cblxuICBwdWJsaWMgZGlzY29ubmVjdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9hbmNob3I/LnN0eWxlLnJlbW92ZVByb3BlcnR5KCdhbmNob3ItbmFtZScpO1xuICAgIHRoaXMuX2FuY2hvciA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLl9hYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVxdWVzdENhbGN1bGF0ZVBvc2l0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuX2ZyYW1lID8/PSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgdGhpcy5fY2FsY3VsYXRlUG9zaXRpb24oKTtcbiAgICAgIHRoaXMuX2ZyYW1lID0gdW5kZWZpbmVkO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2FsY3VsYXRlUG9zaXRpb24oKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9hbmNob3IpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fdXNlUG9seWZpbGwpIHtcbiAgICAgIGNvbnN0IHBvc2l0aW9uID0gdGhpcy5fZ2V0T3B0aW1hbFBvc2l0aW9uKHRoaXMuX3Bvc2l0aW9ucyk7XG4gICAgICB0aGlzLl9hcHBseU92ZXJsYXlQb3NpdGlvbihwb3NpdGlvbi5wb3NpdGlvbiwgcG9zaXRpb24ubGVmdCwgcG9zaXRpb24udG9wKTtcbiAgICB9XG5cbiAgICB0aGlzLl9vdmVybGF5LnNldEF0dHJpYnV0ZSgnZGF0YS1wb3NpdGlvbicsIHRoaXMuY3VycmVudFBvc2l0aW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGVzIHRoZSBvcHRpbWFsIHBvc2l0aW9uIHRoYXQgZml0cyB0aGUgb3ZlcmxheS5cbiAgICogQHBhcmFtIHBvc2l0aW9ucyBUaGUgbGlzdCBvZiBwb3NpdGlvbnMgdG8gY2hlY2suXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIF9nZXRPcHRpbWFsUG9zaXRpb24ocG9zaXRpb25zOiBzdHJpbmdbXSk6IHtcbiAgICBsZWZ0OiBudW1iZXI7XG4gICAgdG9wOiBudW1iZXI7XG4gICAgcG9zaXRpb246IHN0cmluZztcbiAgICBmaXRzPzogYm9vbGVhbjtcbiAgfSB7XG4gICAgY29uc3QgeyBvZmZzZXRIZWlnaHQ6IG92ZXJsYXlIZWlnaHQsIG9mZnNldFdpZHRoOiBvdmVybGF5V2lkdGggfSA9IHRoaXMuX292ZXJsYXk7XG4gICAgY29uc3QgeyBpbm5lckhlaWdodDogdmlld3BvcnRIZWlnaHQsIGlubmVyV2lkdGg6IHZpZXdwb3J0V2lkdGggfSA9IHdpbmRvdztcbiAgICBjb25zdCB7XG4gICAgICB0b3A6IHRyaWdnZXJPZmZzZXRUb3AsXG4gICAgICBsZWZ0OiB0cmlnZ2VyT2Zmc2V0TGVmdCxcbiAgICAgIGhlaWdodDogdHJpZ2dlckhlaWdodCxcbiAgICAgIHdpZHRoOiB0cmlnZ2VyV2lkdGgsXG4gICAgfSA9IHRoaXMuX2FuY2hvciEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICBjb25zdCBpc1J0bCA9IHRoaXMuX292ZXJsYXkubWF0Y2hlcygnOmRpcihydGwpJyk7XG4gICAgY29uc3QgdG9wU3BhY2UgPSB0cmlnZ2VyT2Zmc2V0VG9wO1xuICAgIGNvbnN0IGJvdHRvbVNwYWNlID0gdmlld3BvcnRIZWlnaHQgLSB0cmlnZ2VySGVpZ2h0IC0gdHJpZ2dlck9mZnNldFRvcDtcbiAgICBjb25zdCBsZWZ0U3BhY2UgPSB0cmlnZ2VyT2Zmc2V0TGVmdDtcbiAgICBjb25zdCByaWdodFNwYWNlID0gdmlld3BvcnRXaWR0aCAtIHRyaWdnZXJXaWR0aCAtIHRyaWdnZXJPZmZzZXRMZWZ0O1xuXG4gICAgLy8gVGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgb3ZlcmxheSBhbmQgdGhlIHRyaWdnZXIgd2lkdGgvaGVpZ2h0LlxuICAgIGNvbnN0IG92ZXJsYXlXaWR0aE5ldCA9IG92ZXJsYXlXaWR0aCAtIHRyaWdnZXJXaWR0aDtcbiAgICBjb25zdCBvdmVybGF5SGVpZ2h0TmV0ID0gb3ZlcmxheUhlaWdodCAtIHRyaWdnZXJIZWlnaHQ7XG5cbiAgICAvLyBUaGUgYW1vdW50IHRoYXQgd291bGQgZXhjZWVkIHRoZSB0cmlnZ2VyIGlmIHRoZSBvdmVybGF5IHdlcmUgY2VudGVyZWQgb24gaXQuXG4gICAgY29uc3Qgb3ZlcmxheVdpZHRoT3ZlcmxhcCA9IG92ZXJsYXlXaWR0aE5ldCAvIDI7XG4gICAgY29uc3Qgb3ZlcmxheUhlaWdodE92ZXJsYXAgPSBvdmVybGF5SGVpZ2h0TmV0IC8gMjtcblxuICAgIHRoaXMuX292ZXJsYXkuc3R5bGUuc2V0UHJvcGVydHkoXG4gICAgICAnLS1zYmItb3ZlcmxheS1jb250cm9sbGVyLXRyaWdnZXItaGVpZ2h0JyxcbiAgICAgIGAke3RyaWdnZXJIZWlnaHR9cHhgLFxuICAgICk7XG4gICAgdGhpcy5fb3ZlcmxheS5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zYmItb3ZlcmxheS1jb250cm9sbGVyLXRyaWdnZXItd2lkdGgnLCBgJHt0cmlnZ2VyV2lkdGh9cHhgKTtcblxuICAgIGxldCByZXN1bHQ6IFJldHVyblR5cGU8dHlwZW9mIHRoaXMuX2dldE9wdGltYWxQb3NpdGlvbj4gPSB7IGxlZnQ6IDAsIHRvcDogMCwgcG9zaXRpb246ICcnIH07XG4gICAgbGV0IGZpcnN0UG9zaXRpb246IFJldHVyblR5cGU8dHlwZW9mIHRoaXMuX2dldE9wdGltYWxQb3NpdGlvbj4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgZm9yIChjb25zdCBwb3NpdGlvbiBvZiBwb3NpdGlvbnMpIHtcbiAgICAgIC8vIElmIHJ0bCBpcyBlbmFibGVkLCB3ZSBtYXAgdGhlIGxvZ2ljYWwgcG9zaXRpb24gdG8gdGhlaXIgUlRMIGVxdWl2YWxlbnQuIChlLmcuICdpbmxpbmUtc3RhcnQnIC0+ICdpbmxpbmUtZW5kJylcbiAgICAgIGNvbnN0IHBoeXNpY2FsUG9zaXRpb24gPVxuICAgICAgICBpc1J0bCAmJiBsb2dpY2FsU3VwcG9ydGVkUG9zaXRpb25zLmluY2x1ZGVzKHBvc2l0aW9uKVxuICAgICAgICAgID8gcnRsUG9zaXRpb25NYXBwaW5nW3Bvc2l0aW9uXVxuICAgICAgICAgIDogcG9zaXRpb247XG5cbiAgICAgIHN3aXRjaCAocGh5c2ljYWxQb3NpdGlvbikge1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICBjYXNlICdib3R0b20nOlxuICAgICAgICBjYXNlICdibG9jay1lbmQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgLSBvdmVybGF5V2lkdGhPdmVybGFwLFxuICAgICAgICAgICAgdG9wOiB0cmlnZ2VyT2Zmc2V0VG9wICsgdHJpZ2dlckhlaWdodCxcbiAgICAgICAgICAgIGZpdHM6XG4gICAgICAgICAgICAgIG92ZXJsYXlIZWlnaHQgPD0gYm90dG9tU3BhY2UgJiZcbiAgICAgICAgICAgICAgb3ZlcmxheVdpZHRoT3ZlcmxhcCA8PSBsZWZ0U3BhY2UgJiZcbiAgICAgICAgICAgICAgb3ZlcmxheVdpZHRoT3ZlcmxhcCA8PSByaWdodFNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgIGNhc2UgJ2Jsb2NrLXN0YXJ0JzpcbiAgICAgICAgICByZXN1bHQgPSB7XG4gICAgICAgICAgICBwb3NpdGlvbixcbiAgICAgICAgICAgIGxlZnQ6IHRyaWdnZXJPZmZzZXRMZWZ0IC0gb3ZlcmxheVdpZHRoT3ZlcmxhcCxcbiAgICAgICAgICAgIHRvcDogdHJpZ2dlck9mZnNldFRvcCAtIG92ZXJsYXlIZWlnaHQsXG4gICAgICAgICAgICBmaXRzOlxuICAgICAgICAgICAgICBvdmVybGF5SGVpZ2h0IDw9IHRvcFNwYWNlICYmXG4gICAgICAgICAgICAgIG92ZXJsYXlXaWR0aE92ZXJsYXAgPD0gbGVmdFNwYWNlICYmXG4gICAgICAgICAgICAgIG92ZXJsYXlXaWR0aE92ZXJsYXAgPD0gcmlnaHRTcGFjZSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgIGNhc2UgJ2lubGluZS1lbmQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgKyB0cmlnZ2VyV2lkdGgsXG4gICAgICAgICAgICB0b3A6IHRyaWdnZXJPZmZzZXRUb3AgLSBvdmVybGF5SGVpZ2h0T3ZlcmxhcCxcbiAgICAgICAgICAgIGZpdHM6XG4gICAgICAgICAgICAgIG92ZXJsYXlXaWR0aCA8PSByaWdodFNwYWNlICYmXG4gICAgICAgICAgICAgIG92ZXJsYXlIZWlnaHRPdmVybGFwIDw9IHRvcFNwYWNlICYmXG4gICAgICAgICAgICAgIG92ZXJsYXlIZWlnaHRPdmVybGFwIDw9IGJvdHRvbVNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICBjYXNlICdpbmxpbmUtc3RhcnQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgLSBvdmVybGF5V2lkdGgsXG4gICAgICAgICAgICB0b3A6IHRyaWdnZXJPZmZzZXRUb3AgLSBvdmVybGF5SGVpZ2h0T3ZlcmxhcCxcbiAgICAgICAgICAgIGZpdHM6XG4gICAgICAgICAgICAgIG92ZXJsYXlXaWR0aCA8PSBsZWZ0U3BhY2UgJiZcbiAgICAgICAgICAgICAgb3ZlcmxheUhlaWdodE92ZXJsYXAgPD0gdG9wU3BhY2UgJiZcbiAgICAgICAgICAgICAgb3ZlcmxheUhlaWdodE92ZXJsYXAgPD0gYm90dG9tU3BhY2UsXG4gICAgICAgICAgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAndG9wIHNwYW4tbGVmdCc6XG4gICAgICAgIGNhc2UgJ2Jsb2NrLXN0YXJ0IHNwYW4taW5saW5lLXN0YXJ0JzpcbiAgICAgICAgICByZXN1bHQgPSB7XG4gICAgICAgICAgICBwb3NpdGlvbixcbiAgICAgICAgICAgIGxlZnQ6IHRyaWdnZXJPZmZzZXRMZWZ0IC0gb3ZlcmxheVdpZHRoTmV0LFxuICAgICAgICAgICAgdG9wOiB0cmlnZ2VyT2Zmc2V0VG9wIC0gb3ZlcmxheUhlaWdodCxcbiAgICAgICAgICAgIGZpdHM6IG92ZXJsYXlIZWlnaHQgPD0gdG9wU3BhY2UgJiYgb3ZlcmxheVdpZHRoTmV0IDw9IGxlZnRTcGFjZSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICd0b3Agc3Bhbi1yaWdodCc6XG4gICAgICAgIGNhc2UgJ2Jsb2NrLXN0YXJ0IHNwYW4taW5saW5lLWVuZCc6XG4gICAgICAgICAgcmVzdWx0ID0ge1xuICAgICAgICAgICAgcG9zaXRpb24sXG4gICAgICAgICAgICBsZWZ0OiB0cmlnZ2VyT2Zmc2V0TGVmdCxcbiAgICAgICAgICAgIHRvcDogdHJpZ2dlck9mZnNldFRvcCAtIG92ZXJsYXlIZWlnaHQsXG4gICAgICAgICAgICBmaXRzOiBvdmVybGF5SGVpZ2h0IDw9IHRvcFNwYWNlICYmIG92ZXJsYXlXaWR0aE5ldCA8PSByaWdodFNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2JvdHRvbSBzcGFuLWxlZnQnOlxuICAgICAgICBjYXNlICdibG9jay1lbmQgc3Bhbi1pbmxpbmUtc3RhcnQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgLSBvdmVybGF5V2lkdGhOZXQsXG4gICAgICAgICAgICB0b3A6IHRyaWdnZXJPZmZzZXRUb3AgKyB0cmlnZ2VySGVpZ2h0LFxuICAgICAgICAgICAgZml0czogb3ZlcmxheUhlaWdodCA8PSBib3R0b21TcGFjZSAmJiBvdmVybGF5V2lkdGhOZXQgPD0gbGVmdFNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2JvdHRvbSBzcGFuLXJpZ2h0JzpcbiAgICAgICAgY2FzZSAnYmxvY2stZW5kIHNwYW4taW5saW5lLWVuZCc6XG4gICAgICAgICAgcmVzdWx0ID0ge1xuICAgICAgICAgICAgcG9zaXRpb24sXG4gICAgICAgICAgICBsZWZ0OiB0cmlnZ2VyT2Zmc2V0TGVmdCxcbiAgICAgICAgICAgIHRvcDogdHJpZ2dlck9mZnNldFRvcCArIHRyaWdnZXJIZWlnaHQsXG4gICAgICAgICAgICBmaXRzOiBvdmVybGF5SGVpZ2h0IDw9IGJvdHRvbVNwYWNlICYmIG92ZXJsYXlXaWR0aE5ldCA8PSByaWdodFNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2xlZnQgc3Bhbi10b3AnOlxuICAgICAgICBjYXNlICdpbmxpbmUtc3RhcnQgc3Bhbi1ibG9jay1zdGFydCc6XG4gICAgICAgICAgcmVzdWx0ID0ge1xuICAgICAgICAgICAgcG9zaXRpb24sXG4gICAgICAgICAgICBsZWZ0OiB0cmlnZ2VyT2Zmc2V0TGVmdCAtIG92ZXJsYXlXaWR0aCxcbiAgICAgICAgICAgIHRvcDogdHJpZ2dlck9mZnNldFRvcCArIHRyaWdnZXJIZWlnaHQgLSBvdmVybGF5SGVpZ2h0LFxuICAgICAgICAgICAgZml0czogb3ZlcmxheVdpZHRoIDw9IGxlZnRTcGFjZSAmJiBvdmVybGF5SGVpZ2h0TmV0IDw9IHRvcFNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2xlZnQgc3Bhbi1ib3R0b20nOlxuICAgICAgICBjYXNlICdpbmxpbmUtc3RhcnQgc3Bhbi1ibG9jay1lbmQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgLSBvdmVybGF5V2lkdGgsXG4gICAgICAgICAgICB0b3A6IHRyaWdnZXJPZmZzZXRUb3AsXG4gICAgICAgICAgICBmaXRzOiBvdmVybGF5V2lkdGggPD0gbGVmdFNwYWNlICYmIG92ZXJsYXlIZWlnaHROZXQgPD0gYm90dG9tU3BhY2UsXG4gICAgICAgICAgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAncmlnaHQgc3Bhbi10b3AnOlxuICAgICAgICBjYXNlICdpbmxpbmUtZW5kIHNwYW4tYmxvY2stc3RhcnQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgKyB0cmlnZ2VyV2lkdGgsXG4gICAgICAgICAgICB0b3A6IHRyaWdnZXJPZmZzZXRUb3AgKyB0cmlnZ2VySGVpZ2h0IC0gb3ZlcmxheUhlaWdodCxcbiAgICAgICAgICAgIGZpdHM6IG92ZXJsYXlXaWR0aCA8PSByaWdodFNwYWNlICYmIG92ZXJsYXlIZWlnaHROZXQgPD0gdG9wU3BhY2UsXG4gICAgICAgICAgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAncmlnaHQgc3Bhbi1ib3R0b20nOlxuICAgICAgICBjYXNlICdpbmxpbmUtZW5kIHNwYW4tYmxvY2stZW5kJzpcbiAgICAgICAgICByZXN1bHQgPSB7XG4gICAgICAgICAgICBwb3NpdGlvbixcbiAgICAgICAgICAgIGxlZnQ6IHRyaWdnZXJPZmZzZXRMZWZ0ICsgdHJpZ2dlcldpZHRoLFxuICAgICAgICAgICAgdG9wOiB0cmlnZ2VyT2Zmc2V0VG9wLFxuICAgICAgICAgICAgZml0czogb3ZlcmxheVdpZHRoIDw9IHJpZ2h0U3BhY2UgJiYgb3ZlcmxheUhlaWdodE5ldCA8PSBib3R0b21TcGFjZSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgaWYgKHJlc3VsdC5maXRzKSB7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgICBmaXJzdFBvc2l0aW9uID8/PSByZXN1bHQ7XG4gICAgfVxuXG4gICAgLy8gSWYgbm8gcG9zaXRpb24gZml0cywgd2UgcmV0dXJuIHRoZSBmaXJzdCBvbmUuXG4gICAgcmV0dXJuIGZpcnN0UG9zaXRpb24hO1xuICB9XG5cbiAgcHJpdmF0ZSBfYXBwbHlPdmVybGF5UG9zaXRpb24ocG9zaXRpb246IHN0cmluZywgbGVmdDogbnVtYmVyLCB0b3A6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuX2xhc3RQb3NpdGlvbiA9IHBvc2l0aW9uO1xuICAgIHRoaXMuX292ZXJsYXkuc3R5bGUubGVmdCA9IGAke2xlZnR9cHhgO1xuICAgIHRoaXMuX292ZXJsYXkuc3R5bGUudG9wID0gYCR7dG9wfXB4YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBPbmx5IHVzZWQgaW4gcG9seWZpbGwgbW9kZS5cbiAgICogUmVhZHMgdGhlIGxpc3Qgb2YgdGhlIGNvbmZpZ3VyZWQgcG9zaXRpb25zIGZyb20gdGhlIENTUyB2YXJpYWJsZXMuXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIF9yZWFkUG9zaXRpb25zRnJvbUNzcygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3VzZVBvbHlmaWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX292ZXJsYXlTdHlsZXMgPz89IGdldENvbXB1dGVkU3R5bGUodGhpcy5fb3ZlcmxheSk7XG4gICAgY29uc3QgcG9zaXRpb25zID0gW1xuICAgICAgdGhpcy5fb3ZlcmxheVN0eWxlcy5nZXRQcm9wZXJ0eVZhbHVlKCctLXNiYi1vdmVybGF5LXBvc2l0aW9uLWFyZWEnKSB8fCAnYmxvY2stZW5kJyxcbiAgICAgIC4uLnRoaXMuX292ZXJsYXlTdHlsZXNcbiAgICAgICAgLmdldFByb3BlcnR5VmFsdWUoJy0tc2JiLW92ZXJsYXktcG9zaXRpb24tdHJ5LWZhbGxiYWNrcycpXG4gICAgICAgIC5zcGxpdCgnLCcpXG4gICAgICAgIC5tYXAoKGYpID0+IGYudHJpbSgpKVxuICAgICAgICAuZmlsdGVyKChmKSA9PiAhIWYpLFxuICAgIF07XG5cbiAgICBpZiAoaW1wb3J0Lm1ldGEuZW52LkRFViAmJiBwb3NpdGlvbnMuc29tZSgocCkgPT4gIXN1cHBvcnRlZFBvc2l0aW9ucy5pbmNsdWRlcyhwKSkpIHtcbiAgICAgIGNvbnN0IHVuc3VwcG9ydGVkUG9zaXRpb25zID0gcG9zaXRpb25zXG4gICAgICAgIC5maWx0ZXIoKHApID0+ICFzdXBwb3J0ZWRQb3NpdGlvbnMuaW5jbHVkZXMocCkpXG4gICAgICAgIC5zb3J0KClcbiAgICAgICAgLmpvaW4oJywgJyk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBVbnN1cHBvcnRlZCBwb3NpdGlvbi10cnktZmFsbGJhY2tzICR7dW5zdXBwb3J0ZWRQb3NpdGlvbnN9IChTdXBwb3J0ZWQ6ICR7c3VwcG9ydGVkUG9zaXRpb25zLmpvaW4oJywgJyl9KWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuX3Bvc2l0aW9ucyA9IHBvc2l0aW9ucztcbiAgICBpZiAodGhpcy5fbGFzdFBvc2l0aW9uICYmICF0aGlzLl9wb3NpdGlvbnMuaW5jbHVkZXModGhpcy5fbGFzdFBvc2l0aW9uKSkge1xuICAgICAgdGhpcy5fbGFzdFBvc2l0aW9uID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFJQSxNQUFNLDZCQUE2QixDQUFDLFlBQVksSUFBSSxTQUFTLGVBQWUsUUFBUTtBQUVwRixNQUFNLDZCQUE2QjtBQUFBLEVBQ2pDO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7O0FBSUYsTUFBTSw0QkFBNEI7QUFBQSxFQUNoQztBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBOztBQUdGLE1BQU0scUJBQWdEO0FBQUEsRUFDcEQsZUFBZTtBQUFBLEVBQ2YsYUFBYTtBQUFBLEVBQ2IsZ0JBQWdCO0FBQUEsRUFDaEIsY0FBYztBQUFBLEVBQ2QsaUNBQWlDO0FBQUEsRUFDakMsK0JBQStCO0FBQUEsRUFDL0IsK0JBQStCO0FBQUEsRUFDL0IsNkJBQTZCO0FBQUEsRUFDN0IsaUNBQWlDO0FBQUEsRUFDakMsK0JBQStCO0FBQUEsRUFDL0IsK0JBQStCO0FBQUEsRUFDL0IsNkJBQTZCOztBQUcvQixNQUFNLHFCQUFxQixDQUFDLEdBQUcsNEJBQTRCLEdBQUcseUJBQXlCO0FBQ3ZGLElBQUksU0FBUztNQXFCQSw2QkFBNEI7QUFBQTtBQUFBLEVBY3ZDLElBQVcsa0JBQWU7QUFDeEIsUUFBSSxLQUFLLGNB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
287
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1wb3NpdGlvbi1jb250cm9sbGVyLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9jb250cm9sbGVycy9vdmVybGF5LXBvc2l0aW9uLWNvbnRyb2xsZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNTZXJ2ZXIsIHR5cGUgUmVhY3RpdmVDb250cm9sbGVyLCB0eXBlIFJlYWN0aXZlQ29udHJvbGxlckhvc3QgfSBmcm9tICdsaXQnO1xuXG5pbXBvcnQgdHlwZSB7IFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpblR5cGUgfSBmcm9tICcuLi9taXhpbnMudHMnO1xuXG5jb25zdCBjc3NBbmNob3JQb3NpdGlvblN1cHBvcnRlZCA9ICFpc1NlcnZlciAmJiBDU1Muc3VwcG9ydHMoJ2FuY2hvci1uYW1lJywgJy0tdGVzdCcpO1xuXG5jb25zdCBwaHlzaWNhbFN1cHBvcnRlZFBvc2l0aW9ucyA9IFtcbiAgJ3RvcCcsXG4gICdib3R0b20nLFxuICAnbGVmdCcsXG4gICdyaWdodCcsXG4gICd0b3Agc3Bhbi1sZWZ0JyxcbiAgJ3RvcCBzcGFuLXJpZ2h0JyxcbiAgJ2JvdHRvbSBzcGFuLWxlZnQnLFxuICAnYm90dG9tIHNwYW4tcmlnaHQnLFxuICAnbGVmdCBzcGFuLXRvcCcsXG4gICdsZWZ0IHNwYW4tYm90dG9tJyxcbiAgJ3JpZ2h0IHNwYW4tdG9wJyxcbiAgJ3JpZ2h0IHNwYW4tYm90dG9tJyxcbl07XG5cbi8vIE5vdGU6IGlmIHlvdSBhZGQgbmV3IGxvZ2ljYWwgc3VwcG9ydGVkIHBvc2l0aW9ucywgdXBkYXRlIGFsc28gdGhlICdydGxQb3NpdGlvbk1hcHBpbmcnXG5jb25zdCBsb2dpY2FsU3VwcG9ydGVkUG9zaXRpb25zID0gW1xuICAnYmxvY2stc3RhcnQnLFxuICAnYmxvY2stZW5kJyxcbiAgJ2lubGluZS1zdGFydCcsXG4gICdpbmxpbmUtZW5kJyxcbiAgJ2Jsb2NrLXN0YXJ0IHNwYW4taW5saW5lLXN0YXJ0JyxcbiAgJ2Jsb2NrLXN0YXJ0IHNwYW4taW5saW5lLWVuZCcsXG4gICdibG9jay1lbmQgc3Bhbi1pbmxpbmUtc3RhcnQnLFxuICAnYmxvY2stZW5kIHNwYW4taW5saW5lLWVuZCcsXG4gICdpbmxpbmUtc3RhcnQgc3Bhbi1ibG9jay1zdGFydCcsXG4gICdpbmxpbmUtc3RhcnQgc3Bhbi1ibG9jay1lbmQnLFxuICAnaW5saW5lLWVuZCBzcGFuLWJsb2NrLXN0YXJ0JyxcbiAgJ2lubGluZS1lbmQgc3Bhbi1ibG9jay1lbmQnLFxuXTtcblxuY29uc3QgcnRsUG9zaXRpb25NYXBwaW5nOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuICAnYmxvY2stc3RhcnQnOiAnYmxvY2stc3RhcnQnLFxuICAnYmxvY2stZW5kJzogJ2Jsb2NrLWVuZCcsXG4gICdpbmxpbmUtc3RhcnQnOiAnaW5saW5lLWVuZCcsXG4gICdpbmxpbmUtZW5kJzogJ2lubGluZS1zdGFydCcsXG4gICdibG9jay1zdGFydCBzcGFuLWlubGluZS1zdGFydCc6ICdibG9jay1zdGFydCBzcGFuLWlubGluZS1lbmQnLFxuICAnYmxvY2stc3RhcnQgc3Bhbi1pbmxpbmUtZW5kJzogJ2Jsb2NrLXN0YXJ0IHNwYW4taW5saW5lLXN0YXJ0JyxcbiAgJ2Jsb2NrLWVuZCBzcGFuLWlubGluZS1zdGFydCc6ICdibG9jay1lbmQgc3Bhbi1pbmxpbmUtZW5kJyxcbiAgJ2Jsb2NrLWVuZCBzcGFuLWlubGluZS1lbmQnOiAnYmxvY2stZW5kIHNwYW4taW5saW5lLXN0YXJ0JyxcbiAgJ2lubGluZS1zdGFydCBzcGFuLWJsb2NrLXN0YXJ0JzogJ2lubGluZS1lbmQgc3Bhbi1ibG9jay1zdGFydCcsXG4gICdpbmxpbmUtc3RhcnQgc3Bhbi1ibG9jay1lbmQnOiAnaW5saW5lLWVuZCBzcGFuLWJsb2NrLWVuZCcsXG4gICdpbmxpbmUtZW5kIHNwYW4tYmxvY2stc3RhcnQnOiAnaW5saW5lLXN0YXJ0IHNwYW4tYmxvY2stc3RhcnQnLFxuICAnaW5saW5lLWVuZCBzcGFuLWJsb2NrLWVuZCc6ICdpbmxpbmUtc3RhcnQgc3Bhbi1ibG9jay1lbmQnLFxufTtcblxuY29uc3Qgc3VwcG9ydGVkUG9zaXRpb25zID0gWy4uLnBoeXNpY2FsU3VwcG9ydGVkUG9zaXRpb25zLCAuLi5sb2dpY2FsU3VwcG9ydGVkUG9zaXRpb25zXTtcbmxldCBuZXh0SWQgPSAwO1xuXG4vKipcbiAqIENvbnRyb2xsZXIgZm9yIG1hbmFnaW5nIG92ZXJsYXlzIHBvc2l0aW9uaW5nLiBBbHNvIGFjdHMgYXMgYSBwb2x5ZmlsbCB3aGVuIG5hdGl2ZVxuICogQ1NTIEFuY2hvciBQb3NpdGlvbmluZyBpcyBub3Qgc3VwcG9ydGVkIChlbm91Z2gpLlxuICogQXBwbGllcyB1bmlxdWUgYW5jaG9yIG5hbWVzIHdoZW4gdXNpbmcgbmF0aXZlIENTUyBBbmNob3IgUG9zaXRpb25pbmdcbiAqIG9yIGNhbGN1bGF0ZXMgYW5kIGFwcGxpZXMgY29ycmVjdCBwb3NpdGlvbnMgaW4gcG9seWZpbGwgbW9kZS5cbiAqXG4gKiBBbHNvLCB0aGUgY29udHJvbGxlciBzZXRzIHRoZSAnZGF0YS1wb3NpdGlvbicgYXR0cmlidXRlIG9uIHRoZSBvdmVybGF5IGVsZW1lbnQuXG4gKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGFwcGx5IHNwZWNpZmljIHN0eWxlcyBiYXNlZCBvbiB0aGUgY3VycmVudCBwb3NpdGlvbiBvZiB0aGUgb3ZlcmxheS5cbiAqXG4gKiAjIyMgSW1wbGVtZW50YXRpb25cbiAqIERlZmluZSBhbmQgYXBwbHkgdGhlIGZvbGxvd2luZyBDU1MgdmFyaWFibGVzIG9uIHRoZSBvdmVybGF5IGVsZW1lbnQ6XG4gKiBgYGBzY3NzXG4gKiAgIC0tc2JiLW92ZXJsYXktcG9zaXRpb24tYXJlYTogYmxvY2stZW5kOyAvLyBEZWZhdWx0XG4gKiAgIC0tc2JiLW92ZXJsYXktcG9zaXRpb24tdHJ5LWZhbGxiYWNrczogYmxvY2stc3RhcnQsIGlubGluZS1lbmQsIGlubGluZS1zdGFydDsgLy8gRmFsbGJhY2tzXG4gKlxuICogICBwb3NpdGlvbi1hcmVhOiB2YXIoLS1zYmItb3ZlcmxheS1wb3NpdGlvbi1hcmVhKTtcbiAqICAgcG9zaXRpb24tdHJ5LWZhbGxiYWNrczogdmFyKC0tc2JiLW92ZXJsYXktcG9zaXRpb24tdHJ5LWZhbGxiYWNrcyk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIFNiYk92ZXJsYXlQb3NpdGlvbkNvbnRyb2xsZXIgaW1wbGVtZW50cyBSZWFjdGl2ZUNvbnRyb2xsZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IF9yZXNpemVPYnNlcnZlciA9ICFpc1NlcnZlclxuICAgID8gbmV3IFJlc2l6ZU9ic2VydmVyKCgpID0+IHRoaXMuX3JlcXVlc3RDYWxjdWxhdGVQb3NpdGlvbigpKVxuICAgIDogbnVsbCE7XG4gIHByaXZhdGUgcmVhZG9ubHkgX292ZXJsYXk6IFJlYWN0aXZlQ29udHJvbGxlckhvc3QgJiBIVE1MRWxlbWVudCAmIFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpblR5cGU7XG4gIHByaXZhdGUgX2Fib3J0Q29udHJvbGxlcj86IEFib3J0Q29udHJvbGxlcjtcbiAgcHJpdmF0ZSBfYW5jaG9yPzogSFRNTEVsZW1lbnQ7XG4gIHByaXZhdGUgX292ZXJsYXlTdHlsZXM/OiBDU1NTdHlsZURlY2xhcmF0aW9uO1xuICBwcml2YXRlIF9mcmFtZT86IFJldHVyblR5cGU8dHlwZW9mIHJlcXVlc3RBbmltYXRpb25GcmFtZT47XG4gIHByaXZhdGUgX2FuY2hvck5hbWUgPSBgLS1zYmItb3ZlcmxheS1hbmNob3ItJHsrK25leHRJZH1gO1xuICBwcml2YXRlIF9wb3NpdGlvbnM6IHN0cmluZ1tdID0gW107XG4gIHByaXZhdGUgX2xhc3RQb3NpdGlvbj86IHN0cmluZztcblxuICAvKiogR2V0IHRoZSBjdXJyZW50IHBvc2l0aW9uLiAoZS5nLiBibG9jay1lbmQsIGJsb2NrLXN0YXJ0LCBldGMuKSAqL1xuICBwdWJsaWMgZ2V0IGN1cnJlbnRQb3NpdGlvbigpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLl91c2VQb2x5ZmlsbCkge1xuICAgICAgcmV0dXJuIHRoaXMuX2xhc3RQb3NpdGlvbiA/PyB0aGlzLl9wb3NpdGlvbnNbMF0gPz8gJyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX292ZXJsYXlTdHlsZXMgPz89IGdldENvbXB1dGVkU3R5bGUodGhpcy5fb3ZlcmxheSk7XG4gICAgICByZXR1cm4gdGhpcy5fb3ZlcmxheVN0eWxlcy5nZXRQcm9wZXJ0eVZhbHVlKCdwb3NpdGlvbi1hcmVhJyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIGhvc3Q6IFJlYWN0aXZlQ29udHJvbGxlckhvc3QgJiBIVE1MRWxlbWVudCAmIFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpblR5cGUsXG4gICAgcHJpdmF0ZSBfdXNlUG9seWZpbGwgPSAhY3NzQW5jaG9yUG9zaXRpb25TdXBwb3J0ZWQsXG4gICkge1xuICAgIGhvc3QuYWRkQ29udHJvbGxlcih0aGlzKTtcbiAgICB0aGlzLl9vdmVybGF5ID0gaG9zdDtcbiAgfVxuXG4gIHB1YmxpYyBob3N0Q29ubmVjdGVkKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fdXNlUG9seWZpbGwpIHtcbiAgICAgIHRoaXMuX292ZXJsYXkuc3R5bGUuc2V0UHJvcGVydHkoJ3Bvc2l0aW9uLWFuY2hvcicsIHRoaXMuX2FuY2hvck5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBSZXNldCB0aGUgJ3Bvc2l0aW9uLWFyZWEnIHZhbHVlIHRvIGF2b2lkIGFueSB1bndhbnRlZCBzaWRlIGVmZmVjdCB3aGVuIHVzaW5nIHRoZSBwb2x5ZmlsbC5cbiAgICAgIHRoaXMuX292ZXJsYXkuc3R5bGUuc2V0UHJvcGVydHkoJ3Bvc2l0aW9uLWFyZWEnLCAnaW5pdGlhbCcpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBob3N0VXBkYXRlKCk6IHZvaWQge1xuICAgIGlmIChpc1NlcnZlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9yZWFkUG9zaXRpb25zRnJvbUNzcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbm5lY3RzIHRoZSBvdmVybGF5IHRvIHRoZSBnaXZlbiB0cmlnZ2VyIGVsZW1lbnQgYW5kIGRldGVybWluZXMgdGhlIG9wdGltYWwgcG9zaXRpb24uXG4gICAqIFVzdWFsbHksIHRoaXMgaXMgY2FsbGVkIHdoZW4gdGhlIG92ZXJsYXkgaXMgb3BlbmVkLlxuICAgKiBAcGFyYW0gYW5jaG9yIFRoZSBhbmNob3IgZWxlbWVudC5cbiAgICovXG4gIHB1YmxpYyBjb25uZWN0KGFuY2hvcjogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fYW5jaG9yKSB7XG4gICAgICB0aGlzLmRpc2Nvbm5lY3QoKTtcbiAgICB9XG4gICAgdGhpcy5fYW5jaG9yID0gYW5jaG9yO1xuXG4gICAgaWYgKCF0aGlzLl91c2VQb2x5ZmlsbCkge1xuICAgICAgdGhpcy5fYW5jaG9yLnN0eWxlLnNldFByb3BlcnR5KCdhbmNob3ItbmFtZScsIHRoaXMuX2FuY2hvck5hbWUhKTtcbiAgICB9XG5cbiAgICB0aGlzLl9yZWFkUG9zaXRpb25zRnJvbUNzcygpO1xuICAgIHRoaXMuX2NhbGN1bGF0ZVBvc2l0aW9uKCk7XG4gICAgdGhpcy5fYWJvcnRDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHRoaXMuX2Fib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcblxuICAgIC8vIFdlIG5lZWQgdG8gdXNlIGNhcHR1cmUgaGVyZSB0byByZWFjdCB0byBhbGwgc2Nyb2xsIGV2ZW50cy5cbiAgICAvLyBJZiBjYXB0dXJlIHdhcyBub3QgdXNlZCwgdGhlbiBzY3JvbGwgZXZlbnRzIGluc2lkZSBzZXBhcmF0ZSBzY3JvbGxcbiAgICAvLyBjb250YWluZXJzIHdvdWxkIG5vdCBiZSBjYXVnaHQuXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgKCkgPT4gdGhpcy5fcmVxdWVzdENhbGN1bGF0ZVBvc2l0aW9uKCksIHtcbiAgICAgIGNhcHR1cmU6IHRydWUsXG4gICAgICBwYXNzaXZlOiB0cnVlLFxuICAgICAgc2lnbmFsOiB0aGlzLl9hYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCAoKSA9PiB0aGlzLl9yZXF1ZXN0Q2FsY3VsYXRlUG9zaXRpb24oKSwge1xuICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICAgIHNpZ25hbDogdGhpcy5fYWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgICB0aGlzLl9yZXNpemVPYnNlcnZlci5vYnNlcnZlKGFuY2hvciwgeyBib3g6ICdib3JkZXItYm94JyB9KTtcbiAgICB0aGlzLl9yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMuX292ZXJsYXksIHsgYm94OiAnYm9yZGVyLWJveCcgfSk7XG4gIH1cblxuICBwdWJsaWMgZGlzY29ubmVjdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9hbmNob3I/LnN0eWxlLnJlbW92ZVByb3BlcnR5KCdhbmNob3ItbmFtZScpO1xuICAgIHRoaXMuX2FuY2hvciA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLl9hYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVxdWVzdENhbGN1bGF0ZVBvc2l0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuX2ZyYW1lID8/PSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgdGhpcy5fY2FsY3VsYXRlUG9zaXRpb24oKTtcbiAgICAgIHRoaXMuX2ZyYW1lID0gdW5kZWZpbmVkO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2FsY3VsYXRlUG9zaXRpb24oKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9hbmNob3IpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fdXNlUG9seWZpbGwpIHtcbiAgICAgIGNvbnN0IHBvc2l0aW9uID0gdGhpcy5fZ2V0T3B0aW1hbFBvc2l0aW9uKHRoaXMuX3Bvc2l0aW9ucyk7XG4gICAgICB0aGlzLl9hcHBseU92ZXJsYXlQb3NpdGlvbihwb3NpdGlvbi5wb3NpdGlvbiwgcG9zaXRpb24ubGVmdCwgcG9zaXRpb24udG9wKTtcbiAgICB9XG5cbiAgICB0aGlzLl9vdmVybGF5LnNldEF0dHJpYnV0ZSgnZGF0YS1wb3NpdGlvbicsIHRoaXMuY3VycmVudFBvc2l0aW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGVzIHRoZSBvcHRpbWFsIHBvc2l0aW9uIHRoYXQgZml0cyB0aGUgb3ZlcmxheS5cbiAgICogQHBhcmFtIHBvc2l0aW9ucyBUaGUgbGlzdCBvZiBwb3NpdGlvbnMgdG8gY2hlY2suXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIF9nZXRPcHRpbWFsUG9zaXRpb24ocG9zaXRpb25zOiBzdHJpbmdbXSk6IHtcbiAgICBsZWZ0OiBudW1iZXI7XG4gICAgdG9wOiBudW1iZXI7XG4gICAgcG9zaXRpb246IHN0cmluZztcbiAgICBmaXRzPzogYm9vbGVhbjtcbiAgfSB7XG4gICAgY29uc3QgeyBvZmZzZXRIZWlnaHQ6IG92ZXJsYXlIZWlnaHQsIG9mZnNldFdpZHRoOiBvdmVybGF5V2lkdGggfSA9IHRoaXMuX292ZXJsYXk7XG4gICAgY29uc3QgeyBpbm5lckhlaWdodDogdmlld3BvcnRIZWlnaHQsIGlubmVyV2lkdGg6IHZpZXdwb3J0V2lkdGggfSA9IHdpbmRvdztcbiAgICBjb25zdCB7XG4gICAgICB0b3A6IHRyaWdnZXJPZmZzZXRUb3AsXG4gICAgICBsZWZ0OiB0cmlnZ2VyT2Zmc2V0TGVmdCxcbiAgICAgIGhlaWdodDogdHJpZ2dlckhlaWdodCxcbiAgICAgIHdpZHRoOiB0cmlnZ2VyV2lkdGgsXG4gICAgfSA9IHRoaXMuX2FuY2hvciEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICBjb25zdCBpc1J0bCA9IHRoaXMuX292ZXJsYXkubWF0Y2hlcygnOmRpcihydGwpJyk7XG4gICAgY29uc3QgdG9wU3BhY2UgPSB0cmlnZ2VyT2Zmc2V0VG9wO1xuICAgIGNvbnN0IGJvdHRvbVNwYWNlID0gdmlld3BvcnRIZWlnaHQgLSB0cmlnZ2VySGVpZ2h0IC0gdHJpZ2dlck9mZnNldFRvcDtcbiAgICBjb25zdCBsZWZ0U3BhY2UgPSB0cmlnZ2VyT2Zmc2V0TGVmdDtcbiAgICBjb25zdCByaWdodFNwYWNlID0gdmlld3BvcnRXaWR0aCAtIHRyaWdnZXJXaWR0aCAtIHRyaWdnZXJPZmZzZXRMZWZ0O1xuXG4gICAgLy8gVGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgb3ZlcmxheSBhbmQgdGhlIHRyaWdnZXIgd2lkdGgvaGVpZ2h0LlxuICAgIGNvbnN0IG92ZXJsYXlXaWR0aE5ldCA9IG92ZXJsYXlXaWR0aCAtIHRyaWdnZXJXaWR0aDtcbiAgICBjb25zdCBvdmVybGF5SGVpZ2h0TmV0ID0gb3ZlcmxheUhlaWdodCAtIHRyaWdnZXJIZWlnaHQ7XG5cbiAgICAvLyBUaGUgYW1vdW50IHRoYXQgd291bGQgZXhjZWVkIHRoZSB0cmlnZ2VyIGlmIHRoZSBvdmVybGF5IHdlcmUgY2VudGVyZWQgb24gaXQuXG4gICAgY29uc3Qgb3ZlcmxheVdpZHRoT3ZlcmxhcCA9IG92ZXJsYXlXaWR0aE5ldCAvIDI7XG4gICAgY29uc3Qgb3ZlcmxheUhlaWdodE92ZXJsYXAgPSBvdmVybGF5SGVpZ2h0TmV0IC8gMjtcblxuICAgIHRoaXMuX292ZXJsYXkuc3R5bGUuc2V0UHJvcGVydHkoXG4gICAgICAnLS1zYmItb3ZlcmxheS1jb250cm9sbGVyLXRyaWdnZXItaGVpZ2h0JyxcbiAgICAgIGAke3RyaWdnZXJIZWlnaHR9cHhgLFxuICAgICk7XG4gICAgdGhpcy5fb3ZlcmxheS5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zYmItb3ZlcmxheS1jb250cm9sbGVyLXRyaWdnZXItd2lkdGgnLCBgJHt0cmlnZ2VyV2lkdGh9cHhgKTtcblxuICAgIGxldCByZXN1bHQ6IFJldHVyblR5cGU8dHlwZW9mIHRoaXMuX2dldE9wdGltYWxQb3NpdGlvbj4gPSB7IGxlZnQ6IDAsIHRvcDogMCwgcG9zaXRpb246ICcnIH07XG4gICAgbGV0IGZpcnN0UG9zaXRpb246IFJldHVyblR5cGU8dHlwZW9mIHRoaXMuX2dldE9wdGltYWxQb3NpdGlvbj4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgZm9yIChjb25zdCBwb3NpdGlvbiBvZiBwb3NpdGlvbnMpIHtcbiAgICAgIC8vIElmIHJ0bCBpcyBlbmFibGVkLCB3ZSBtYXAgdGhlIGxvZ2ljYWwgcG9zaXRpb24gdG8gdGhlaXIgUlRMIGVxdWl2YWxlbnQuIChlLmcuICdpbmxpbmUtc3RhcnQnIC0+ICdpbmxpbmUtZW5kJylcbiAgICAgIGNvbnN0IHBoeXNpY2FsUG9zaXRpb24gPVxuICAgICAgICBpc1J0bCAmJiBsb2dpY2FsU3VwcG9ydGVkUG9zaXRpb25zLmluY2x1ZGVzKHBvc2l0aW9uKVxuICAgICAgICAgID8gcnRsUG9zaXRpb25NYXBwaW5nW3Bvc2l0aW9uXVxuICAgICAgICAgIDogcG9zaXRpb247XG5cbiAgICAgIHN3aXRjaCAocGh5c2ljYWxQb3NpdGlvbikge1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICBjYXNlICdib3R0b20nOlxuICAgICAgICBjYXNlICdibG9jay1lbmQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgLSBvdmVybGF5V2lkdGhPdmVybGFwLFxuICAgICAgICAgICAgdG9wOiB0cmlnZ2VyT2Zmc2V0VG9wICsgdHJpZ2dlckhlaWdodCxcbiAgICAgICAgICAgIGZpdHM6XG4gICAgICAgICAgICAgIG92ZXJsYXlIZWlnaHQgPD0gYm90dG9tU3BhY2UgJiZcbiAgICAgICAgICAgICAgb3ZlcmxheVdpZHRoT3ZlcmxhcCA8PSBsZWZ0U3BhY2UgJiZcbiAgICAgICAgICAgICAgb3ZlcmxheVdpZHRoT3ZlcmxhcCA8PSByaWdodFNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgIGNhc2UgJ2Jsb2NrLXN0YXJ0JzpcbiAgICAgICAgICByZXN1bHQgPSB7XG4gICAgICAgICAgICBwb3NpdGlvbixcbiAgICAgICAgICAgIGxlZnQ6IHRyaWdnZXJPZmZzZXRMZWZ0IC0gb3ZlcmxheVdpZHRoT3ZlcmxhcCxcbiAgICAgICAgICAgIHRvcDogdHJpZ2dlck9mZnNldFRvcCAtIG92ZXJsYXlIZWlnaHQsXG4gICAgICAgICAgICBmaXRzOlxuICAgICAgICAgICAgICBvdmVybGF5SGVpZ2h0IDw9IHRvcFNwYWNlICYmXG4gICAgICAgICAgICAgIG92ZXJsYXlXaWR0aE92ZXJsYXAgPD0gbGVmdFNwYWNlICYmXG4gICAgICAgICAgICAgIG92ZXJsYXlXaWR0aE92ZXJsYXAgPD0gcmlnaHRTcGFjZSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgIGNhc2UgJ2lubGluZS1lbmQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgKyB0cmlnZ2VyV2lkdGgsXG4gICAgICAgICAgICB0b3A6IHRyaWdnZXJPZmZzZXRUb3AgLSBvdmVybGF5SGVpZ2h0T3ZlcmxhcCxcbiAgICAgICAgICAgIGZpdHM6XG4gICAgICAgICAgICAgIG92ZXJsYXlXaWR0aCA8PSByaWdodFNwYWNlICYmXG4gICAgICAgICAgICAgIG92ZXJsYXlIZWlnaHRPdmVybGFwIDw9IHRvcFNwYWNlICYmXG4gICAgICAgICAgICAgIG92ZXJsYXlIZWlnaHRPdmVybGFwIDw9IGJvdHRvbVNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICBjYXNlICdpbmxpbmUtc3RhcnQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgLSBvdmVybGF5V2lkdGgsXG4gICAgICAgICAgICB0b3A6IHRyaWdnZXJPZmZzZXRUb3AgLSBvdmVybGF5SGVpZ2h0T3ZlcmxhcCxcbiAgICAgICAgICAgIGZpdHM6XG4gICAgICAgICAgICAgIG92ZXJsYXlXaWR0aCA8PSBsZWZ0U3BhY2UgJiZcbiAgICAgICAgICAgICAgb3ZlcmxheUhlaWdodE92ZXJsYXAgPD0gdG9wU3BhY2UgJiZcbiAgICAgICAgICAgICAgb3ZlcmxheUhlaWdodE92ZXJsYXAgPD0gYm90dG9tU3BhY2UsXG4gICAgICAgICAgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAndG9wIHNwYW4tbGVmdCc6XG4gICAgICAgIGNhc2UgJ2Jsb2NrLXN0YXJ0IHNwYW4taW5saW5lLXN0YXJ0JzpcbiAgICAgICAgICByZXN1bHQgPSB7XG4gICAgICAgICAgICBwb3NpdGlvbixcbiAgICAgICAgICAgIGxlZnQ6IHRyaWdnZXJPZmZzZXRMZWZ0IC0gb3ZlcmxheVdpZHRoTmV0LFxuICAgICAgICAgICAgdG9wOiB0cmlnZ2VyT2Zmc2V0VG9wIC0gb3ZlcmxheUhlaWdodCxcbiAgICAgICAgICAgIGZpdHM6IG92ZXJsYXlIZWlnaHQgPD0gdG9wU3BhY2UgJiYgb3ZlcmxheVdpZHRoTmV0IDw9IGxlZnRTcGFjZSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICd0b3Agc3Bhbi1yaWdodCc6XG4gICAgICAgIGNhc2UgJ2Jsb2NrLXN0YXJ0IHNwYW4taW5saW5lLWVuZCc6XG4gICAgICAgICAgcmVzdWx0ID0ge1xuICAgICAgICAgICAgcG9zaXRpb24sXG4gICAgICAgICAgICBsZWZ0OiB0cmlnZ2VyT2Zmc2V0TGVmdCxcbiAgICAgICAgICAgIHRvcDogdHJpZ2dlck9mZnNldFRvcCAtIG92ZXJsYXlIZWlnaHQsXG4gICAgICAgICAgICBmaXRzOiBvdmVybGF5SGVpZ2h0IDw9IHRvcFNwYWNlICYmIG92ZXJsYXlXaWR0aE5ldCA8PSByaWdodFNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2JvdHRvbSBzcGFuLWxlZnQnOlxuICAgICAgICBjYXNlICdibG9jay1lbmQgc3Bhbi1pbmxpbmUtc3RhcnQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgLSBvdmVybGF5V2lkdGhOZXQsXG4gICAgICAgICAgICB0b3A6IHRyaWdnZXJPZmZzZXRUb3AgKyB0cmlnZ2VySGVpZ2h0LFxuICAgICAgICAgICAgZml0czogb3ZlcmxheUhlaWdodCA8PSBib3R0b21TcGFjZSAmJiBvdmVybGF5V2lkdGhOZXQgPD0gbGVmdFNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2JvdHRvbSBzcGFuLXJpZ2h0JzpcbiAgICAgICAgY2FzZSAnYmxvY2stZW5kIHNwYW4taW5saW5lLWVuZCc6XG4gICAgICAgICAgcmVzdWx0ID0ge1xuICAgICAgICAgICAgcG9zaXRpb24sXG4gICAgICAgICAgICBsZWZ0OiB0cmlnZ2VyT2Zmc2V0TGVmdCxcbiAgICAgICAgICAgIHRvcDogdHJpZ2dlck9mZnNldFRvcCArIHRyaWdnZXJIZWlnaHQsXG4gICAgICAgICAgICBmaXRzOiBvdmVybGF5SGVpZ2h0IDw9IGJvdHRvbVNwYWNlICYmIG92ZXJsYXlXaWR0aE5ldCA8PSByaWdodFNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2xlZnQgc3Bhbi10b3AnOlxuICAgICAgICBjYXNlICdpbmxpbmUtc3RhcnQgc3Bhbi1ibG9jay1zdGFydCc6XG4gICAgICAgICAgcmVzdWx0ID0ge1xuICAgICAgICAgICAgcG9zaXRpb24sXG4gICAgICAgICAgICBsZWZ0OiB0cmlnZ2VyT2Zmc2V0TGVmdCAtIG92ZXJsYXlXaWR0aCxcbiAgICAgICAgICAgIHRvcDogdHJpZ2dlck9mZnNldFRvcCArIHRyaWdnZXJIZWlnaHQgLSBvdmVybGF5SGVpZ2h0LFxuICAgICAgICAgICAgZml0czogb3ZlcmxheVdpZHRoIDw9IGxlZnRTcGFjZSAmJiBvdmVybGF5SGVpZ2h0TmV0IDw9IHRvcFNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2xlZnQgc3Bhbi1ib3R0b20nOlxuICAgICAgICBjYXNlICdpbmxpbmUtc3RhcnQgc3Bhbi1ibG9jay1lbmQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgLSBvdmVybGF5V2lkdGgsXG4gICAgICAgICAgICB0b3A6IHRyaWdnZXJPZmZzZXRUb3AsXG4gICAgICAgICAgICBmaXRzOiBvdmVybGF5V2lkdGggPD0gbGVmdFNwYWNlICYmIG92ZXJsYXlIZWlnaHROZXQgPD0gYm90dG9tU3BhY2UsXG4gICAgICAgICAgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAncmlnaHQgc3Bhbi10b3AnOlxuICAgICAgICBjYXNlICdpbmxpbmUtZW5kIHNwYW4tYmxvY2stc3RhcnQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgKyB0cmlnZ2VyV2lkdGgsXG4gICAgICAgICAgICB0b3A6IHRyaWdnZXJPZmZzZXRUb3AgKyB0cmlnZ2VySGVpZ2h0IC0gb3ZlcmxheUhlaWdodCxcbiAgICAgICAgICAgIGZpdHM6IG92ZXJsYXlXaWR0aCA8PSByaWdodFNwYWNlICYmIG92ZXJsYXlIZWlnaHROZXQgPD0gdG9wU3BhY2UsXG4gICAgICAgICAgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAncmlnaHQgc3Bhbi1ib3R0b20nOlxuICAgICAgICBjYXNlICdpbmxpbmUtZW5kIHNwYW4tYmxvY2stZW5kJzpcbiAgICAgICAgICByZXN1bHQgPSB7XG4gICAgICAgICAgICBwb3NpdGlvbixcbiAgICAgICAgICAgIGxlZnQ6IHRyaWdnZXJPZmZzZXRMZWZ0ICsgdHJpZ2dlcldpZHRoLFxuICAgICAgICAgICAgdG9wOiB0cmlnZ2VyT2Zmc2V0VG9wLFxuICAgICAgICAgICAgZml0czogb3ZlcmxheVdpZHRoIDw9IHJpZ2h0U3BhY2UgJiYgb3ZlcmxheUhlaWdodE5ldCA8PSBib3R0b21TcGFjZSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgaWYgKHJlc3VsdC5maXRzKSB7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgICBmaXJzdFBvc2l0aW9uID8/PSByZXN1bHQ7XG4gICAgfVxuXG4gICAgLy8gSWYgbm8gcG9zaXRpb24gZml0cywgd2UgcmV0dXJuIHRoZSBmaXJzdCBvbmUuXG4gICAgcmV0dXJuIGZpcnN0UG9zaXRpb24hO1xuICB9XG5cbiAgcHJpdmF0ZSBfYXBwbHlPdmVybGF5UG9zaXRpb24ocG9zaXRpb246IHN0cmluZywgbGVmdDogbnVtYmVyLCB0b3A6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuX2xhc3RQb3NpdGlvbiA9IHBvc2l0aW9uO1xuICAgIHRoaXMuX292ZXJsYXkuc3R5bGUubGVmdCA9IGAke2xlZnR9cHhgO1xuICAgIHRoaXMuX292ZXJsYXkuc3R5bGUudG9wID0gYCR7dG9wfXB4YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBPbmx5IHVzZWQgaW4gcG9seWZpbGwgbW9kZS5cbiAgICogUmVhZHMgdGhlIGxpc3Qgb2YgdGhlIGNvbmZpZ3VyZWQgcG9zaXRpb25zIGZyb20gdGhlIENTUyB2YXJpYWJsZXMuXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIF9yZWFkUG9zaXRpb25zRnJvbUNzcygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3VzZVBvbHlmaWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX292ZXJsYXlTdHlsZXMgPz89IGdldENvbXB1dGVkU3R5bGUodGhpcy5fb3ZlcmxheSk7XG4gICAgY29uc3QgcG9zaXRpb25zID0gW1xuICAgICAgdGhpcy5fb3ZlcmxheVN0eWxlcy5nZXRQcm9wZXJ0eVZhbHVlKCctLXNiYi1vdmVybGF5LXBvc2l0aW9uLWFyZWEnKSB8fCAnYmxvY2stZW5kJyxcbiAgICAgIC4uLnRoaXMuX292ZXJsYXlTdHlsZXNcbiAgICAgICAgLmdldFByb3BlcnR5VmFsdWUoJy0tc2JiLW92ZXJsYXktcG9zaXRpb24tdHJ5LWZhbGxiYWNrcycpXG4gICAgICAgIC5zcGxpdCgnLCcpXG4gICAgICAgIC5tYXAoKGYpID0+IGYudHJpbSgpKVxuICAgICAgICAuZmlsdGVyKChmKSA9PiAhIWYpLFxuICAgIF07XG5cbiAgICBpZiAoaW1wb3J0Lm1ldGEuZW52LkRFViAmJiBwb3NpdGlvbnMuc29tZSgocCkgPT4gIXN1cHBvcnRlZFBvc2l0aW9ucy5pbmNsdWRlcyhwKSkpIHtcbiAgICAgIGNvbnN0IHVuc3VwcG9ydGVkUG9zaXRpb25zID0gcG9zaXRpb25zXG4gICAgICAgIC5maWx0ZXIoKHApID0+ICFzdXBwb3J0ZWRQb3NpdGlvbnMuaW5jbHVkZXMocCkpXG4gICAgICAgIC5zb3J0KClcbiAgICAgICAgLmpvaW4oJywgJyk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBVbnN1cHBvcnRlZCBwb3NpdGlvbi10cnktZmFsbGJhY2tzICR7dW5zdXBwb3J0ZWRQb3NpdGlvbnN9IChTdXBwb3J0ZWQ6ICR7c3VwcG9ydGVkUG9zaXRpb25zLmpvaW4oJywgJyl9KWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuX3Bvc2l0aW9ucyA9IHBvc2l0aW9ucztcbiAgICBpZiAodGhpcy5fbGFzdFBvc2l0aW9uICYmICF0aGlzLl9wb3NpdGlvbnMuaW5jbHVkZXModGhpcy5fbGFzdFBvc2l0aW9uKSkge1xuICAgICAgdGhpcy5fbGFzdFBvc2l0aW9uID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFJQSxNQUFNLDZCQUE2QixDQUFDLFlBQVksSUFBSSxTQUFTLGVBQWUsUUFBUTtBQWtCcEYsTUFBTSw0QkFBNEI7QUFBQSxFQUNoQztBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBOztBQUdGLE1BQU0scUJBQWdEO0FBQUEsRUFDcEQsZUFBZTtBQUFBLEVBQ2YsYUFBYTtBQUFBLEVBQ2IsZ0JBQWdCO0FBQUEsRUFDaEIsY0FBYztBQUFBLEVBQ2QsaUNBQWlDO0FBQUEsRUFDakMsK0JBQStCO0FBQUEsRUFDL0IsK0JBQStCO0FBQUEsRUFDL0IsNkJBQTZCO0FBQUEsRUFDN0IsaUNBQWlDO0FBQUEsRUFDakMsK0JBQStCO0FBQUEsRUFDL0IsK0JBQStCO0FBQUEsRUFDL0IsNkJBQTZCOztBQUkvQixJQUFJLFNBQVM7TUFxQkEsNkJBQTRCO0FBQUE7QUFBQSxFQWN2QyxJQUFXLGtCQUFlO0FBQ3hCLFFBQUksS0FBSyxjQUFjO0FBQ3JCLGFBQU8sS0FBSyxpQkFBaUIsS0FBSyxXQUFXLENBQUMsS0FBSztBQUFBLElBQ3JELE9BQU87QUFDTCxXQUFLLG1CQUFtQixpQkFBaUIsS0FBSyxRQUFRO0FBQ3RELGFBQU8sS0FBSyxlQUFlLGlCQUFpQixlQUFlO0FBQUEsSUFDN0Q7QUFBQSxFQUNGO0FBQUEsRUFFQSxZQUNFLE1BQ1EsZUFBZSxDQUFDLDRCQUEw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
@@ -11,6 +11,14 @@ export declare const ISO8601_FORMAT_DATE: RegExp;
11
11
  * Adapted from https://github.com/angular/components/blob/main/src/material/core/datetime/date-adapter.ts
12
12
  */
13
13
  export declare abstract class DateAdapter<T = any> {
14
+ private readonly _cutoffYearOffset;
15
+ /**
16
+ * @param cutoffYearOffset The threshold on whether a two-digit year
17
+ * should be treated as belonging to 2000 or 1900. e.g. with 15 (default)
18
+ * the current year plus 15 will be treated as belonging to 2000, and the rest to 1900.
19
+ * So e.g. with the current year 2025, 40 will be treated as 2040, while 41 will be treated as 1941.
20
+ */
21
+ constructor(cutoffYearOffset?: number);
14
22
  /**
15
23
  * Get the year as a number.
16
24
  * @param date
@@ -67,9 +75,9 @@ export declare abstract class DateAdapter<T = any> {
67
75
  * Creates a new date, given day, month and year; without date's overflow.
68
76
  * @param year
69
77
  * @param month The month of the date (1-indexed, 1 = January). Must be an integer 1 - 12.
70
- * @param date
78
+ * @param day
71
79
  */
72
- abstract createDate(year: number, month: number, date: number): T;
80
+ abstract createDate(year: number, month: number, day: number): T;
73
81
  /**
74
82
  * Attempts to deserialize a value to a valid date object. This is different from parsing in that
75
83
  * deserialize should only accept non-ambiguous, locale-independent formats (e.g. a ISO 8601
@@ -109,7 +117,7 @@ export declare abstract class DateAdapter<T = any> {
109
117
  * Get the given string as Date.
110
118
  * @param value The date in the format DD.MM.YYYY.
111
119
  */
112
- abstract parse(value: string | null | undefined): T | null;
120
+ parse(value: string | null | undefined): T | null;
113
121
  /**
114
122
  * Format the given date as string.
115
123
  * @param date The date to format.
@@ -1 +1 @@
1
- {"version":3,"file":"date-adapter.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/datetime/date-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"date-adapter.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/datetime/date-adapter.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,15 @@ const YEARS_PER_PAGE = 24;
6
6
  const FORMAT_DATE = /(0?[1-9]|[12][0-9]|3[01])[.,\\/\-\s](0?[1-9]|1[0-2])[.,\\/\-\s]([0-9]{1,4}$)?/;
7
7
  const ISO8601_FORMAT_DATE = /^([0-9]{4})-(0[1-9]|1[0-2])-(0[1-9]|[1-3][0-9])$/;
8
8
  class DateAdapter {
9
+ /**
10
+ * @param cutoffYearOffset The threshold on whether a two-digit year
11
+ * should be treated as belonging to 2000 or 1900. e.g. with 15 (default)
12
+ * the current year plus 15 will be treated as belonging to 2000, and the rest to 1900.
13
+ * So e.g. with the current year 2025, 40 will be treated as 2040, while 41 will be treated as 1941.
14
+ */
15
+ constructor(cutoffYearOffset = 15) {
16
+ this._cutoffYearOffset = cutoffYearOffset;
17
+ }
9
18
  /**
10
19
  * Attempts to deserialize a value to a valid date object. This is different from parsing in that
11
20
  * deserialize should only accept non-ambiguous, locale-independent formats (e.g. a ISO 8601
@@ -20,6 +29,35 @@ class DateAdapter {
20
29
  }
21
30
  return this.invalid();
22
31
  }
32
+ /**
33
+ * Get the given string as Date.
34
+ * @param value The date in the format DD.MM.YYYY.
35
+ */
36
+ parse(value) {
37
+ if (!value) {
38
+ return null;
39
+ }
40
+ let date = null;
41
+ const isoMatch = value.match(ISO8601_FORMAT_DATE);
42
+ try {
43
+ date = isoMatch ? this.createDate(+isoMatch[1], +isoMatch[2], +isoMatch[3]) : null;
44
+ } catch {
45
+ }
46
+ if (this.isValid(date)) {
47
+ return date;
48
+ }
49
+ const strippedValue = value.replace(/\D/g, " ").trim();
50
+ const match = strippedValue?.match(FORMAT_DATE);
51
+ if (!match || match.index !== 0 || match.length <= 2 || match.some((e) => e === void 0) || !this.isValid(this.createDate(+match[3], +match[2], +match[1]))) {
52
+ return null;
53
+ }
54
+ let year = +match[3];
55
+ if (typeof year === "number" && year < 100 && year >= 0) {
56
+ const shift = this.getYear(this.today()) - 2e3 + this._cutoffYearOffset;
57
+ year = year <= shift ? 2e3 + year : 1900 + year;
58
+ }
59
+ return this.createDate(year, +match[2], +match[1]);
60
+ }
23
61
  /**
24
62
  * Format the given date as string.
25
63
  * @param date The date to format.
@@ -126,4 +164,4 @@ export {
126
164
  YEARS_PER_PAGE,
127
165
  YEARS_PER_ROW
128
166
  };
129
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1hZGFwdGVyLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9kYXRldGltZS9kYXRlLWFkYXB0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IERBWVNfUEVSX1JPVzogbnVtYmVyID0gNztcbmV4cG9ydCBjb25zdCBNT05USFNfUEVSX1JPVzogbnVtYmVyID0gNDtcbmV4cG9ydCBjb25zdCBZRUFSU19QRVJfUk9XOiBudW1iZXIgPSA0O1xuZXhwb3J0IGNvbnN0IE1PTlRIU19QRVJfUEFHRTogbnVtYmVyID0gMTI7XG5leHBvcnQgY29uc3QgWUVBUlNfUEVSX1BBR0U6IG51bWJlciA9IDI0O1xuZXhwb3J0IGNvbnN0IEZPUk1BVF9EQVRFID1cbiAgLygwP1sxLTldfFsxMl1bMC05XXwzWzAxXSlbLixcXFxcL1xcLVxcc10oMD9bMS05XXwxWzAtMl0pWy4sXFxcXC9cXC1cXHNdKFswLTldezEsNH0kKT8vO1xuZXhwb3J0IGNvbnN0IElTTzg2MDFfRk9STUFUX0RBVEUgPSAvXihbMC05XXs0fSktKDBbMS05XXwxWzAtMl0pLSgwWzEtOV18WzEtM11bMC05XSkkLztcblxuLyoqXG4gKiBBYnN0cmFjdCBkYXRlIGZ1bmN0aW9uYWxpdHkuXG4gKlxuICogQWRhcHRlZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvYmxvYi9tYWluL3NyYy9tYXRlcmlhbC9jb3JlL2RhdGV0aW1lL2RhdGUtYWRhcHRlci50c1xuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGF0ZUFkYXB0ZXI8VCA9IGFueT4ge1xuICAvKipcbiAgICogR2V0IHRoZSB5ZWFyIGFzIGEgbnVtYmVyLlxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldFllYXIoZGF0ZTogVCk6IG51bWJlcjtcblxuICAvKipcbiAgICogR2V0IHRoZSBtb250aCBhcyBhIG51bWJlci5cbiAgICogQXR0ZW50aW9uOiBUaGlzIHJldHVybnMgMS0xMiBhbmQgbWl0aWdhdGVzIHRoZSBkZWZhdWx0IEphdmFTY3JpcHQgRGF0ZSBiZWhhdmlvci5cbiAgICogQHBhcmFtIGRhdGVcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRNb250aChkYXRlOiBUKTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGRheSBvZiB0aGUgbW9udGggYXMgYSBudW1iZXIuXG4gICAqIEBwYXJhbSBkYXRlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0RGF0ZShkYXRlOiBUKTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIERheSBvZiB0aGUgd2VlayBhcyBhIG51bWJlci5cbiAgICogQHBhcmFtIGRhdGVcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXREYXlPZldlZWsoZGF0ZTogVCk6IG51bWJlcjtcblxuICAvKiogR2V0IHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsgKDA6IHN1bmRheTsgMTogbW9uZGF5OyBldGMuKS4gKi9cbiAgcHVibGljIGFic3RyYWN0IGdldEZpcnN0RGF5T2ZXZWVrKCk6IG51bWJlcjtcblxuICAvKipcbiAgICogR2V0IHRoZSBudW1iZXIgb2YgZGF5cyBpbiBhIG1vbnRoLlxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldE51bURheXNJbk1vbnRoKGRhdGU6IFQpOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEdldCBhIGxpc3Qgb2YgYWxsIHRoZSBtb250aHMgaW4gYSBnaXZlbiBzdHlsZS5cbiAgICogQHBhcmFtIHN0eWxlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0TW9udGhOYW1lcyhzdHlsZTogJ2xvbmcnIHwgJ3Nob3J0JyB8ICduYXJyb3cnKTogc3RyaW5nW107XG5cbiAgLyoqIEdldCBhIHN0cmluZyBhcnJheSB3aXRoIGxlbmd0aCA9IDMxLCBmaWxsZWQgd2l0aCB0aGUgZGF5cyBpbiBhIG1vbnRoLCBzdGFydGluZyBmcm9tIDEuICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXREYXRlTmFtZXMoKTogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEdldCBhIGxpc3Qgb2YgYWxsIHRoZSB3ZWVrIGRheXMgaW4gYSBnaXZlbiBzdHlsZS5cbiAgICogQHBhcmFtIHN0eWxlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0RGF5T2ZXZWVrTmFtZXMoc3R5bGU6ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93Jyk6IHN0cmluZ1tdO1xuXG4gIC8qKiBDcmVhdGVzIHRvZGF5J3MgZGF0ZS4gKi9cbiAgcHVibGljIGFic3RyYWN0IHRvZGF5KCk6IFQ7XG5cbiAgLyoqXG4gICAqIENoZWNrcyB3aGV0aGVyIGEgZ2l2ZW4gYGRhdGVgIGlzIHZhbGlkLlxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGlzVmFsaWQoZGF0ZTogVCB8IG51bGwgfCB1bmRlZmluZWQpOiBkYXRlIGlzIFQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBieSBjbG9uaW5nIHRoZSBnaXZlbiBvbmUuXG4gICAqIEBwYXJhbSBkYXRlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgY2xvbmUoZGF0ZTogVCk6IFQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSwgZ2l2ZW4gZGF5LCBtb250aCBhbmQgeWVhcjsgd2l0aG91dCBkYXRlJ3Mgb3ZlcmZsb3cuXG4gICAqIEBwYXJhbSB5ZWFyXG4gICAqIEBwYXJhbSBtb250aCBUaGUgbW9udGggb2YgdGhlIGRhdGUgKDEtaW5kZXhlZCwgMSA9IEphbnVhcnkpLiBNdXN0IGJlIGFuIGludGVnZXIgMSAtIDEyLlxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGNyZWF0ZURhdGUoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyLCBkYXRlOiBudW1iZXIpOiBUO1xuXG4gIC8qKlxuICAgKiBBdHRlbXB0cyB0byBkZXNlcmlhbGl6ZSBhIHZhbHVlIHRvIGEgdmFsaWQgZGF0ZSBvYmplY3QuIFRoaXMgaXMgZGlmZmVyZW50IGZyb20gcGFyc2luZyBpbiB0aGF0XG4gICAqIGRlc2VyaWFsaXplIHNob3VsZCBvbmx5IGFjY2VwdCBub24tYW1iaWd1b3VzLCBsb2NhbGUtaW5kZXBlbmRlbnQgZm9ybWF0cyAoZS5nLiBhIElTTyA4NjAxXG4gICAqIHN0cmluZykuIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGRvZXMgbm90IGFsbG93IGFueSBkZXNlcmlhbGl6YXRpb24sIGl0IHNpbXBseSBjaGVja3MgdGhhdFxuICAgKiB0aGUgZ2l2ZW4gdmFsdWUgaXMgYWxyZWFkeSBhIHZhbGlkIGRhdGUgb2JqZWN0IG9yIG51bGwuXG4gICAqIEBwYXJhbSB2YWx1ZSBFaXRoZXIgYSBkYXRlIG9iamVjdCwgSVNPIHN0cmluZyBvciBhbiBlbXB0eSB2YWx1ZS5cbiAgICogQHJldHVybnMgVGhlIGRhdGUgaWYgdGhlIGlucHV0IGlzIHZhbGlkLCBgbnVsbGAgb3RoZXJ3aXNlLlxuICAgKi9cbiAgcHVibGljIGRlc2VyaWFsaXplKHZhbHVlOiBUIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IFQgfCBudWxsIHtcbiAgICBpZiAoXG4gICAgICB2YWx1ZSA9PSBudWxsIHx8XG4gICAgICAodGhpcy5pc0RhdGVJbnN0YW5jZSh2YWx1ZSkgJiYgdGhpcy5pc1ZhbGlkKHZhbHVlIGFzIFQgfCBudWxsIHwgdW5kZWZpbmVkKSlcbiAgICApIHtcbiAgICAgIHJldHVybiB2YWx1ZSBhcyBUIHwgbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaW52YWxpZCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgeWVhcnNgIHRvIHRoZSBwcm92aWRlZCBgZGF0ZWAuXG4gICAqIEBwYXJhbSBkYXRlIFRoZSBzdGFydGluZyBkYXRlLlxuICAgKiBAcGFyYW0geWVhcnMgVGhlIG51bWJlciBvZiB5ZWFycyB0byBhZGQuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgYWRkQ2FsZW5kYXJZZWFycyhkYXRlOiBULCB5ZWFyczogbnVtYmVyKTogVDtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBkYXRlIGFkZGluZyB0aGUgbnVtYmVyIG9mIHByb3ZpZGVkIGBtb250aHNgIHRvIHRoZSBwcm92aWRlZCBgZGF0ZWAuXG4gICAqIElmIHRoZSBjYWxjdWxhdGVkIG1vbnRoIGhhcyBmZXdlciBkYXlzIHRoYW4gdGhlIG9yaWdpbmFsIG9uZSwgdGhlIGRhdGUgaXMgc2V0IHRvIHRoZSBsYXN0IGRheSBvZiB0aGUgbW9udGguXG4gICAqIEUuZy4gd2l0aCBgZGF0ZWAgPSBuZXcgRGF0ZSgyMDIyLCAwLCAzMSkgYW5kIGBtb250aHNgID0gMSwgaXQgcmV0dXJucyBuZXcgRGF0ZSgyMDIyLCAxLCAyOCkuXG4gICAqIEBwYXJhbSBkYXRlIFRoZSBzdGFydGluZyBkYXRlLlxuICAgKiBAcGFyYW0gbW9udGhzIFRoZSBudW1iZXIgb2YgbW9udGhzIHRvIGFkZC5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBhZGRDYWxlbmRhck1vbnRocyhkYXRlOiBULCBtb250aHM6IG51bWJlcik6IFQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBieSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgZGF5c2AgdG8gdGhlIHByb3ZpZGVkIGBkYXRlYC5cbiAgICogQHBhcmFtIGRhdGUgVGhlIHN0YXJ0aW5nIGRhdGUuXG4gICAqIEBwYXJhbSBkYXlzIFRoZSBudW1iZXIgb2YgZGF5cyB0byBhZGQuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgYWRkQ2FsZW5kYXJEYXlzKGRhdGU6IFQsIGRheXM6IG51bWJlcik6IFQ7XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZGF0ZSBpbiB0aGUgbG9jYWwgZm9ybWF0LlxuICAgKiBAcGFyYW0gZGF0ZSBUaGUgZGF0ZSB0byBmb3JtYXRcbiAgICogQHJldHVybnMgVGhlIGBkYXRlYCBpbiB0aGUgbG9jYWwgZm9ybWF0IGFzIHN0cmluZy5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRBY2Nlc3NpYmlsaXR5Rm9ybWF0RGF0ZShkYXRlOiBUIHwgc3RyaW5nKTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGdpdmVuIHN0cmluZyBhcyBEYXRlLlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIGRhdGUgaW4gdGhlIGZvcm1hdCBERC5NTS5ZWVlZLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHBhcnNlKHZhbHVlOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogVCB8IG51bGw7XG5cbiAgLyoqXG4gICAqIEZvcm1hdCB0aGUgZ2l2ZW4gZGF0ZSBhcyBzdHJpbmcuXG4gICAqIEBwYXJhbSBkYXRlIFRoZSBkYXRlIHRvIGZvcm1hdC5cbiAgICogQHBhcmFtIG9wdGlvbnMgb3B0aW9ucyBvYmplY3Qgd2l0aCB3ZWVrZGF5U3R5bGUgYXMgcHJvcGVydHlcbiAgICovXG4gIHB1YmxpYyBmb3JtYXQoXG4gICAgZGF0ZTogVCB8IG51bGwgfCB1bmRlZmluZWQsXG4gICAgb3B0aW9ucz86IHsgd2Vla2RheVN0eWxlPzogJ2xvbmcnIHwgJ3Nob3J0JyB8ICduYXJyb3cnIHwgJ25vbmUnIH0sXG4gICk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQoZGF0ZSkpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZSA9IG5ldyBEYXRlKHRoaXMudG9Jc284NjAxKGRhdGUhKSArICdUMDA6MDA6MDAnKTtcbiAgICBjb25zdCBkYXRlRm9ybWF0dGVyID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoJ2RlLUNIJywge1xuICAgICAgZGF5OiAnMi1kaWdpdCcsXG4gICAgICBtb250aDogJzItZGlnaXQnLFxuICAgICAgeWVhcjogJ251bWVyaWMnLFxuICAgIH0pO1xuXG4gICAgaWYgKG9wdGlvbnM/LndlZWtkYXlTdHlsZSA9PT0gJ25vbmUnKSB7XG4gICAgICByZXR1cm4gZGF0ZUZvcm1hdHRlci5mb3JtYXQodmFsdWUpO1xuICAgIH1cblxuICAgIGNvbnN0IHdlZWtkYXlTdHlsZSA9IG9wdGlvbnM/LndlZWtkYXlTdHlsZSA/PyAnc2hvcnQnO1xuICAgIGxldCB3ZWVrZGF5ID0gdGhpcy5nZXREYXlPZldlZWtOYW1lcyh3ZWVrZGF5U3R5bGUpW3RoaXMuZ2V0RGF5T2ZXZWVrKGRhdGUhKV07XG4gICAgd2Vla2RheSA9IHdlZWtkYXkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB3ZWVrZGF5LnN1YnN0cmluZygxKTtcbiAgICAvLyBXZSBoYXZlIHRoZSBzcGVjaWFsIHJlcXVpcmVtZW50IGZvciBkYXRlIGZvcm1hdHMgYXQgU0JCLCB3aGVyZSB0aGUgc2hvcnQgZm9ybVxuICAgIC8vIGZvciB3ZWVrZGF5cyBzaG91bGQgYmUgdHdvIGNoYXJhY3RlcnMgaW4gbGVuZ3RoLlxuICAgIGlmICh3ZWVrZGF5U3R5bGUgPT09ICdzaG9ydCcpIHtcbiAgICAgIHdlZWtkYXkgPSB3ZWVrZGF5LnN1YnN0cmluZygwLCAyKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYCR7d2Vla2RheX0sICR7ZGF0ZUZvcm1hdHRlci5mb3JtYXQodmFsdWUpfWA7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIGBvYmpgIGlzIGEgRGF0ZS5cbiAgICogQHBhcmFtIG9iaiBUaGUgb2JqZWN0IHRvIGNoZWNrLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGlzRGF0ZUluc3RhbmNlKG9iajogYW55KTogYm9vbGVhbjtcblxuICAvKipcbiAgICogR2V0cyBkYXRlIGluc3RhbmNlIHRoYXQgaXMgbm90IHZhbGlkLlxuICAgKiBAcmV0dXJucyBBbiBpbnZhbGlkIGRhdGUuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgaW52YWxpZCgpOiBUO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGdpdmVuIGRhdGUgYXMgSVNPIFN0cmluZy5cbiAgICogQHBhcmFtIGRhdGUgVGhlIGRhdGUgdG8gY29udmVydCB0byBJU08gU3RyaW5nLlxuICAgKi9cbiAgcHVibGljIHRvSXNvODYwMShkYXRlOiBUKTogc3RyaW5nIHtcbiAgICBjb25zdCBwYWQgPSAodmFsdWU6IG51bWJlciwgbGVuZ3RoID0gMik6IHN0cmluZyA9PiBgJHt2YWx1ZX1gLnBhZFN0YXJ0KGxlbmd0aCwgJzAnKTtcbiAgICByZXR1cm4gYCR7cGFkKHRoaXMuZ2V0WWVhcihkYXRlKSwgNCl9LSR7cGFkKHRoaXMuZ2V0TW9udGgoZGF0ZSkpfS0ke3BhZCh0aGlzLmdldERhdGUoZGF0ZSkpfWA7XG4gIH1cblxuICAvKipcbiAgICogR2l2ZW4gYSBwb3RlbnRpYWwgZGF0ZSBvYmplY3QsIHJldHVybnMgdGhhdCBzYW1lIGRhdGUgb2JqZWN0IGlmIGl0IGlzXG4gICAqIGEgdmFsaWQgZGF0ZSwgb3IgYG51bGxgIGlmIGl0J3Mgbm90IGEgdmFsaWQgZGF0ZS5cbiAgICogQHBhcmFtIHZhbHVlIFRoZSBvYmplY3QgdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIEEgZGF0ZSBvciBgbnVsbGAuXG4gICAqL1xuICBwdWJsaWMgZ2V0VmFsaWREYXRlT3JOdWxsKHZhbHVlOiB1bmtub3duKTogVCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmlzRGF0ZUluc3RhbmNlKHZhbHVlKSAmJiB0aGlzLmlzVmFsaWQodmFsdWUgYXMgVCkgPyAodmFsdWUgYXMgVCkgOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZXMgdGhlIGRheSBvZiB0aGUgd2VlayBvZiB0aGUgZmlyc3QgZGF5IG9mIHRoZSBtb250aCwgYW5kIHRoZW4gaXRzIG9mZnNldCBmcm9tIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAqL1xuICBwdWJsaWMgZ2V0Rmlyc3RXZWVrT2Zmc2V0KGRhdGU6IFQpOiBudW1iZXIge1xuICAgIGNvbnN0IGZpcnN0T2ZNb250aCA9IHRoaXMuY3JlYXRlRGF0ZSh0aGlzLmdldFllYXIoZGF0ZSksIHRoaXMuZ2V0TW9udGgoZGF0ZSksIDEpITtcbiAgICByZXR1cm4gKFxuICAgICAgKERBWVNfUEVSX1JPVyArIHRoaXMuZ2V0RGF5T2ZXZWVrKGZpcnN0T2ZNb250aCkgLSB0aGlzLmdldEZpcnN0RGF5T2ZXZWVrKCkpICUgREFZU19QRVJfUk9XXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb21wYXJlcyB0d28gZGF0ZXMuXG4gICAqIEBwYXJhbSBmaXJzdCBUaGUgZmlyc3QgZGF0ZSB0byBjb21wYXJlLlxuICAgKiBAcGFyYW0gc2Vjb25kIFRoZSBzZWNvbmQgZGF0ZSB0byBjb21wYXJlLlxuICAgKiBAcmV0dXJucyAwIGlmIHRoZSBkYXRlcyBhcmUgZXF1YWwsIGEgbnVtYmVyIGxlc3MgdGhhbiAwIGlmIHRoZSBmaXJzdCBkYXRlIGlzIGVhcmxpZXIsXG4gICAqICAgICBhIG51bWJlciBncmVhdGVyIHRoYW4gMCBpZiB0aGUgZmlyc3QgZGF0ZSBpcyBsYXRlci5cbiAgICovXG4gIHB1YmxpYyBjb21wYXJlRGF0ZShmaXJzdDogVCwgc2Vjb25kOiBUKTogbnVtYmVyIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5nZXRZZWFyKGZpcnN0KSAtIHRoaXMuZ2V0WWVhcihzZWNvbmQpIHx8XG4gICAgICB0aGlzLmdldE1vbnRoKGZpcnN0KSAtIHRoaXMuZ2V0TW9udGgoc2Vjb25kKSB8fFxuICAgICAgdGhpcy5nZXREYXRlKGZpcnN0KSAtIHRoaXMuZ2V0RGF0ZShzZWNvbmQpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdHdvIGRhdGVzIGFyZSBlcXVhbC5cbiAgICogQHBhcmFtIGZpcnN0IFRoZSBmaXJzdCBkYXRlIHRvIGNoZWNrLlxuICAgKiBAcGFyYW0gc2Vjb25kIFRoZSBzZWNvbmQgZGF0ZSB0byBjaGVjay5cbiAgICogQHJldHVybnMgV2hldGhlciB0aGUgdHdvIGRhdGVzIGFyZSBlcXVhbC5cbiAgICogICAgIE51bGwgZGF0ZXMgYXJlIGNvbnNpZGVyZWQgZXF1YWwgdG8gb3RoZXIgbnVsbCBkYXRlcy5cbiAgICovXG4gIHB1YmxpYyBzYW1lRGF0ZShmaXJzdDogVCB8IG51bGwsIHNlY29uZDogVCB8IG51bGwpOiBib29sZWFuIHtcbiAgICBpZiAoZmlyc3QgJiYgc2Vjb25kKSB7XG4gICAgICBjb25zdCBmaXJzdFZhbGlkID0gdGhpcy5pc1ZhbGlkKGZpcnN0KTtcbiAgICAgIGNvbnN0IHNlY29uZFZhbGlkID0gdGhpcy5pc1ZhbGlkKHNlY29uZCk7XG4gICAgICBpZiAoZmlyc3RWYWxpZCAmJiBzZWNvbmRWYWxpZCkge1xuICAgICAgICByZXR1cm4gIXRoaXMuY29tcGFyZURhdGUoZmlyc3QsIHNlY29uZCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmlyc3RWYWxpZCA9PSBzZWNvbmRWYWxpZDtcbiAgICB9XG4gICAgcmV0dXJuIGZpcnN0ID09IHNlY29uZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGFtcCB0aGUgZ2l2ZW4gZGF0ZSBiZXR3ZWVuIG1pbiBhbmQgbWF4IGRhdGVzLlxuICAgKiBAcGFyYW0gZGF0ZSBUaGUgZGF0ZSB0byBjbGFtcC5cbiAgICogQHBhcmFtIG1pbiBUaGUgbWluaW11bSB2YWx1ZSB0byBhbGxvdy4gSWYgbnVsbCBvciBvbWl0dGVkIG5vIG1pbiBpcyBlbmZvcmNlZC5cbiAgICogQHBhcmFtIG1heCBUaGUgbWF4aW11bSB2YWx1ZSB0byBhbGxvdy4gSWYgbnVsbCBvciBvbWl0dGVkIG5vIG1heCBpcyBlbmZvcmNlZC5cbiAgICogQHJldHVybnMgYG1pbmAgaWYgYGRhdGVgIGlzIGxlc3MgdGhhbiBgbWluYCwgYG1heGAgaWYgZGF0ZSBpcyBncmVhdGVyIHRoYW4gYG1heGAsXG4gICAqICAgICBvdGhlcndpc2UgYGRhdGVgLlxuICAgKi9cbiAgcHVibGljIGNsYW1wRGF0ZShkYXRlOiBULCBtaW4/OiBUIHwgbnVsbCwgbWF4PzogVCB8IG51bGwpOiBUIHtcbiAgICBpZiAobWluICYmIHRoaXMuY29tcGFyZURhdGUoZGF0ZSwgbWluKSA8IDApIHtcbiAgICAgIHJldHVybiBtaW47XG4gICAgfVxuICAgIGlmIChtYXggJiYgdGhpcy5jb21wYXJlRGF0ZShkYXRlLCBtYXgpID4gMCkge1xuICAgICAgcmV0dXJuIG1heDtcbiAgICB9XG4gICAgcmV0dXJuIGRhdGU7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBTyxNQUFNLGVBQXVCO0FBQzdCLE1BQU0saUJBQXlCO0FBQy9CLE1BQU0sZ0JBQXdCO0FBQzlCLE1BQU0sa0JBQTBCO0FBQ2hDLE1BQU0saUJBQXlCO0FBQy9CLE1BQU0sY0FDWDtBQUNLLE1BQU0sc0JBQXNCO01BT2IsWUFBVztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQWlGeEIsWUFBWSxPQUFvQztBQUNyRCxRQUNFLFNBQVMsUUFDUixLQUFLLGVBQWUsS0FBSyxLQUFLLEtBQUssUUFBUSxLQUE2QixHQUN6RTtBQUNBLGFBQU87QUFBQSxJQUNUO0FBQ0EsV0FBTyxLQUFLLFFBQUE7QUFBQSxFQUNkO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBMkNPLE9BQ0wsTUFDQSxTQUFpRTtBQUVqRSxRQUFJLENBQUMsS0FBSyxRQUFRLElBQUksR0FBRztBQUN2QixhQUFPO0FBQUEsSUFDVDtBQUVBLFVBQU0sUUFBUSxvQkFBSSxLQUFLLEtBQUssVUFBVSxJQUFLLElBQUksV0FBVztBQUMxRCxVQUFNLGdCQUFnQixJQUFJLEtBQUssZUFBZSxTQUFTO0FBQUEsTUFDckQsS0FBSztBQUFBLE1BQ0wsT0FBTztBQUFBLE1BQ1AsTUFBTTtBQUFBLElBQUEsQ0FDUDtBQUVELFFBQUksU0FBUyxpQkFBaUIsUUFBUTtBQUNwQyxhQUFPLGNBQWMsT0FBTyxLQUFLO0FBQUEsSUFDbkM7QUFFQSxVQUFNLGVBQWUsU0FBUyxnQkFBZ0I7QUFDOUMsUUFBSSxVQUFVLEtBQUssa0JBQWtCLFlBQVksRUFBRSxLQUFLLGFBQWEsSUFBSyxDQUFDO0FBQzNFLGNBQVUsUUFBUSxPQUFPLENBQUMsRUFBRSxnQkFBZ0IsUUFBUSxVQUFVLENBQUM7QUFHL0QsUUFBSSxpQkFBaUIsU0FBUztBQUM1QixnQkFBVSxRQUFRLFVBQVUsR0FBRyxDQUFDO0FBQUEsSUFDbEM7QUFFQSxXQUFPLEdBQUcsT0FBTyxLQUFLLGNBQWMsT0FBTyxLQUFLLENBQUM7QUFBQSxFQUNuRDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFrQk8sVUFBVSxNQUFPO0FBQ3RCLFVBQU0sTUFBTSxDQUFDLE9BQWUsU0FBUyxNQUFjLEdBQUcsS0FBSyxHQUFHLFNBQVMsUUFBUSxHQUFHO0FBQ2xGLFdBQU8sR0FBRyxJQUFJLEtBQUssUUFBUSxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksSUFBSSxLQUFLLFNBQVMsSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLEtBQUssUUFBUSxJQUFJLENBQUMsQ0FBQztBQUFBLEVBQzdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRTyxtQkFBbUIsT0FBYztBQUN0QyxXQUFPLEtBQUssZUFBZSxLQUFLLEtBQUssS0FBSyxRQUFRLEtBQVUsSUFBSyxRQUFjO0FBQUEsRUFDakY7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtPLG1CQUFtQixNQUFPO0FBQy9CLFVBQU0sZUFBZSxLQUFLLFdBQVcsS0FBSyxRQUFRLElBQUksR0FBRyxLQUFLLFNBQVMsSUFBSSxHQUFHLENBQUM7QUFDL0UsWUFDRyxlQUFlLEtBQUssYUFBYSxZQUFZLElBQUksS0FBSyx1QkFBdUI7QUFBQSxFQUVsRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFTTyxZQUFZLE9BQVUsUUFBUztBQUNwQyxXQUNFLEtBQUssUUFBUSxLQUFLLElBQUksS0FBSyxRQUFRLE1BQU0sS0FDekMsS0FBSyxTQUFTLEtBQUssSUFBSSxLQUFLLFNBQVMsTUFBTSxLQUMzQyxLQUFLLFFBQVEsS0FBSyxJQUFJLEtBQUssUUFBUSxNQUFNO0FBQUEsRUFFN0M7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBU08sU0FBUyxPQUFpQixRQUFnQjtBQUMvQyxRQUFJLFNBQVMsUUFBUTtBQUNuQixZQUFNLGFBQWEsS0FBSyxRQUFRLEtBQUs7QUFDckMsWUFBTSxjQUFjLEtBQUssUUFBUSxNQUFNO0FBQ3ZDLFVBQUksY0FBYyxhQUFhO0FBQzdCLGVBQU8sQ0FBQyxLQUFLLFlBQVksT0FBTyxNQUFNO0FBQUEsTUFDeEM7QUFDQSxhQUFPLGNBQWM7QUFBQSxJQUN2QjtBQUNBLFdBQU8sU0FBUztBQUFBLEVBQ2xCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBVU8sVUFBVSxNQUFTLEtBQWdCLEtBQWM7QUFDdEQsUUFBSSxPQUFPLEtBQUssWUFBWSxNQUFNLEdBQUcsSUFBSSxHQUFHO0FBQzFDLGFBQU87QUFBQSxJQUNUO0FBQ0EsUUFBSSxPQUFPLEtBQUssWUFBWSxNQUFNLEdBQUcsSUFBSSxHQUFHO0FBQzFDLGFBQU87QUFBQSxJQUNUO0FBQ0EsV0FBTztBQUFBLEVBQ1Q7QUFDRDsifQ==
167
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1hZGFwdGVyLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9kYXRldGltZS9kYXRlLWFkYXB0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IERBWVNfUEVSX1JPVzogbnVtYmVyID0gNztcbmV4cG9ydCBjb25zdCBNT05USFNfUEVSX1JPVzogbnVtYmVyID0gNDtcbmV4cG9ydCBjb25zdCBZRUFSU19QRVJfUk9XOiBudW1iZXIgPSA0O1xuZXhwb3J0IGNvbnN0IE1PTlRIU19QRVJfUEFHRTogbnVtYmVyID0gMTI7XG5leHBvcnQgY29uc3QgWUVBUlNfUEVSX1BBR0U6IG51bWJlciA9IDI0O1xuZXhwb3J0IGNvbnN0IEZPUk1BVF9EQVRFID1cbiAgLygwP1sxLTldfFsxMl1bMC05XXwzWzAxXSlbLixcXFxcL1xcLVxcc10oMD9bMS05XXwxWzAtMl0pWy4sXFxcXC9cXC1cXHNdKFswLTldezEsNH0kKT8vO1xuZXhwb3J0IGNvbnN0IElTTzg2MDFfRk9STUFUX0RBVEUgPSAvXihbMC05XXs0fSktKDBbMS05XXwxWzAtMl0pLSgwWzEtOV18WzEtM11bMC05XSkkLztcblxuLyoqXG4gKiBBYnN0cmFjdCBkYXRlIGZ1bmN0aW9uYWxpdHkuXG4gKlxuICogQWRhcHRlZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvYmxvYi9tYWluL3NyYy9tYXRlcmlhbC9jb3JlL2RhdGV0aW1lL2RhdGUtYWRhcHRlci50c1xuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGF0ZUFkYXB0ZXI8VCA9IGFueT4ge1xuICBwcml2YXRlIHJlYWRvbmx5IF9jdXRvZmZZZWFyT2Zmc2V0OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBjdXRvZmZZZWFyT2Zmc2V0IFRoZSB0aHJlc2hvbGQgb24gd2hldGhlciBhIHR3by1kaWdpdCB5ZWFyXG4gICAqIHNob3VsZCBiZSB0cmVhdGVkIGFzIGJlbG9uZ2luZyB0byAyMDAwIG9yIDE5MDAuIGUuZy4gd2l0aCAxNSAoZGVmYXVsdClcbiAgICogdGhlIGN1cnJlbnQgeWVhciBwbHVzIDE1IHdpbGwgYmUgdHJlYXRlZCBhcyBiZWxvbmdpbmcgdG8gMjAwMCwgYW5kIHRoZSByZXN0IHRvIDE5MDAuXG4gICAqIFNvIGUuZy4gd2l0aCB0aGUgY3VycmVudCB5ZWFyIDIwMjUsIDQwIHdpbGwgYmUgdHJlYXRlZCBhcyAyMDQwLCB3aGlsZSA0MSB3aWxsIGJlIHRyZWF0ZWQgYXMgMTk0MS5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihjdXRvZmZZZWFyT2Zmc2V0OiBudW1iZXIgPSAxNSkge1xuICAgIHRoaXMuX2N1dG9mZlllYXJPZmZzZXQgPSBjdXRvZmZZZWFyT2Zmc2V0O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgeWVhciBhcyBhIG51bWJlci5cbiAgICogQHBhcmFtIGRhdGVcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRZZWFyKGRhdGU6IFQpOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbW9udGggYXMgYSBudW1iZXIuXG4gICAqIEF0dGVudGlvbjogVGhpcyByZXR1cm5zIDEtMTIgYW5kIG1pdGlnYXRlcyB0aGUgZGVmYXVsdCBKYXZhU2NyaXB0IERhdGUgYmVoYXZpb3IuXG4gICAqIEBwYXJhbSBkYXRlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0TW9udGgoZGF0ZTogVCk6IG51bWJlcjtcblxuICAvKipcbiAgICogR2V0IHRoZSBkYXkgb2YgdGhlIG1vbnRoIGFzIGEgbnVtYmVyLlxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldERhdGUoZGF0ZTogVCk6IG51bWJlcjtcblxuICAvKipcbiAgICogR2V0IHRoZSBEYXkgb2YgdGhlIHdlZWsgYXMgYSBudW1iZXIuXG4gICAqIEBwYXJhbSBkYXRlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0RGF5T2ZXZWVrKGRhdGU6IFQpOiBudW1iZXI7XG5cbiAgLyoqIEdldCB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrICgwOiBzdW5kYXk7IDE6IG1vbmRheTsgZXRjLikuICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRGaXJzdERheU9mV2VlaygpOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbnVtYmVyIG9mIGRheXMgaW4gYSBtb250aC5cbiAgICogQHBhcmFtIGRhdGVcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXROdW1EYXlzSW5Nb250aChkYXRlOiBUKTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBHZXQgYSBsaXN0IG9mIGFsbCB0aGUgbW9udGhzIGluIGEgZ2l2ZW4gc3R5bGUuXG4gICAqIEBwYXJhbSBzdHlsZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldE1vbnRoTmFtZXMoc3R5bGU6ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93Jyk6IHN0cmluZ1tdO1xuXG4gIC8qKiBHZXQgYSBzdHJpbmcgYXJyYXkgd2l0aCBsZW5ndGggPSAzMSwgZmlsbGVkIHdpdGggdGhlIGRheXMgaW4gYSBtb250aCwgc3RhcnRpbmcgZnJvbSAxLiAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0RGF0ZU5hbWVzKCk6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBHZXQgYSBsaXN0IG9mIGFsbCB0aGUgd2VlayBkYXlzIGluIGEgZ2l2ZW4gc3R5bGUuXG4gICAqIEBwYXJhbSBzdHlsZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldERheU9mV2Vla05hbWVzKHN0eWxlOiAnbG9uZycgfCAnc2hvcnQnIHwgJ25hcnJvdycpOiBzdHJpbmdbXTtcblxuICAvKiogQ3JlYXRlcyB0b2RheSdzIGRhdGUuICovXG4gIHB1YmxpYyBhYnN0cmFjdCB0b2RheSgpOiBUO1xuXG4gIC8qKlxuICAgKiBDaGVja3Mgd2hldGhlciBhIGdpdmVuIGBkYXRlYCBpcyB2YWxpZC5cbiAgICogQHBhcmFtIGRhdGVcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBpc1ZhbGlkKGRhdGU6IFQgfCBudWxsIHwgdW5kZWZpbmVkKTogZGF0ZSBpcyBUO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGRhdGUgYnkgY2xvbmluZyB0aGUgZ2l2ZW4gb25lLlxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGNsb25lKGRhdGU6IFQpOiBUO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGRhdGUsIGdpdmVuIGRheSwgbW9udGggYW5kIHllYXI7IHdpdGhvdXQgZGF0ZSdzIG92ZXJmbG93LlxuICAgKiBAcGFyYW0geWVhclxuICAgKiBAcGFyYW0gbW9udGggVGhlIG1vbnRoIG9mIHRoZSBkYXRlICgxLWluZGV4ZWQsIDEgPSBKYW51YXJ5KS4gTXVzdCBiZSBhbiBpbnRlZ2VyIDEgLSAxMi5cbiAgICogQHBhcmFtIGRheVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGNyZWF0ZURhdGUoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyLCBkYXk6IG51bWJlcik6IFQ7XG5cbiAgLyoqXG4gICAqIEF0dGVtcHRzIHRvIGRlc2VyaWFsaXplIGEgdmFsdWUgdG8gYSB2YWxpZCBkYXRlIG9iamVjdC4gVGhpcyBpcyBkaWZmZXJlbnQgZnJvbSBwYXJzaW5nIGluIHRoYXRcbiAgICogZGVzZXJpYWxpemUgc2hvdWxkIG9ubHkgYWNjZXB0IG5vbi1hbWJpZ3VvdXMsIGxvY2FsZS1pbmRlcGVuZGVudCBmb3JtYXRzIChlLmcuIGEgSVNPIDg2MDFcbiAgICogc3RyaW5nKS4gVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gZG9lcyBub3QgYWxsb3cgYW55IGRlc2VyaWFsaXphdGlvbiwgaXQgc2ltcGx5IGNoZWNrcyB0aGF0XG4gICAqIHRoZSBnaXZlbiB2YWx1ZSBpcyBhbHJlYWR5IGEgdmFsaWQgZGF0ZSBvYmplY3Qgb3IgbnVsbC5cbiAgICogQHBhcmFtIHZhbHVlIEVpdGhlciBhIGRhdGUgb2JqZWN0LCBJU08gc3RyaW5nIG9yIGFuIGVtcHR5IHZhbHVlLlxuICAgKiBAcmV0dXJucyBUaGUgZGF0ZSBpZiB0aGUgaW5wdXQgaXMgdmFsaWQsIGBudWxsYCBvdGhlcndpc2UuXG4gICAqL1xuICBwdWJsaWMgZGVzZXJpYWxpemUodmFsdWU6IFQgfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogVCB8IG51bGwge1xuICAgIGlmIChcbiAgICAgIHZhbHVlID09IG51bGwgfHxcbiAgICAgICh0aGlzLmlzRGF0ZUluc3RhbmNlKHZhbHVlKSAmJiB0aGlzLmlzVmFsaWQodmFsdWUgYXMgVCB8IG51bGwgfCB1bmRlZmluZWQpKVxuICAgICkge1xuICAgICAgcmV0dXJuIHZhbHVlIGFzIFQgfCBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5pbnZhbGlkKCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBkYXRlIGFkZGluZyB0aGUgbnVtYmVyIG9mIHByb3ZpZGVkIGB5ZWFyc2AgdG8gdGhlIHByb3ZpZGVkIGBkYXRlYC5cbiAgICogQHBhcmFtIGRhdGUgVGhlIHN0YXJ0aW5nIGRhdGUuXG4gICAqIEBwYXJhbSB5ZWFycyBUaGUgbnVtYmVyIG9mIHllYXJzIHRvIGFkZC5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBhZGRDYWxlbmRhclllYXJzKGRhdGU6IFQsIHllYXJzOiBudW1iZXIpOiBUO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGRhdGUgYWRkaW5nIHRoZSBudW1iZXIgb2YgcHJvdmlkZWQgYG1vbnRoc2AgdG8gdGhlIHByb3ZpZGVkIGBkYXRlYC5cbiAgICogSWYgdGhlIGNhbGN1bGF0ZWQgbW9udGggaGFzIGZld2VyIGRheXMgdGhhbiB0aGUgb3JpZ2luYWwgb25lLCB0aGUgZGF0ZSBpcyBzZXQgdG8gdGhlIGxhc3QgZGF5IG9mIHRoZSBtb250aC5cbiAgICogRS5nLiB3aXRoIGBkYXRlYCA9IG5ldyBEYXRlKDIwMjIsIDAsIDMxKSBhbmQgYG1vbnRoc2AgPSAxLCBpdCByZXR1cm5zIG5ldyBEYXRlKDIwMjIsIDEsIDI4KS5cbiAgICogQHBhcmFtIGRhdGUgVGhlIHN0YXJ0aW5nIGRhdGUuXG4gICAqIEBwYXJhbSBtb250aHMgVGhlIG51bWJlciBvZiBtb250aHMgdG8gYWRkLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGFkZENhbGVuZGFyTW9udGhzKGRhdGU6IFQsIG1vbnRoczogbnVtYmVyKTogVDtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBkYXRlIGJ5IGFkZGluZyB0aGUgbnVtYmVyIG9mIHByb3ZpZGVkIGBkYXlzYCB0byB0aGUgcHJvdmlkZWQgYGRhdGVgLlxuICAgKiBAcGFyYW0gZGF0ZSBUaGUgc3RhcnRpbmcgZGF0ZS5cbiAgICogQHBhcmFtIGRheXMgVGhlIG51bWJlciBvZiBkYXlzIHRvIGFkZC5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBhZGRDYWxlbmRhckRheXMoZGF0ZTogVCwgZGF5czogbnVtYmVyKTogVDtcblxuICAvKipcbiAgICogR2V0IHRoZSBkYXRlIGluIHRoZSBsb2NhbCBmb3JtYXQuXG4gICAqIEBwYXJhbSBkYXRlIFRoZSBkYXRlIHRvIGZvcm1hdFxuICAgKiBAcmV0dXJucyBUaGUgYGRhdGVgIGluIHRoZSBsb2NhbCBmb3JtYXQgYXMgc3RyaW5nLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldEFjY2Vzc2liaWxpdHlGb3JtYXREYXRlKGRhdGU6IFQgfCBzdHJpbmcpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZ2l2ZW4gc3RyaW5nIGFzIERhdGUuXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgZGF0ZSBpbiB0aGUgZm9ybWF0IERELk1NLllZWVkuXG4gICAqL1xuICBwdWJsaWMgcGFyc2UodmFsdWU6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBUIHwgbnVsbCB7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgbGV0IGRhdGU6IFQgfCBudWxsID0gbnVsbDtcbiAgICBjb25zdCBpc29NYXRjaCA9IHZhbHVlLm1hdGNoKElTTzg2MDFfRk9STUFUX0RBVEUpO1xuICAgIHRyeSB7XG4gICAgICBkYXRlID0gaXNvTWF0Y2ggPyB0aGlzLmNyZWF0ZURhdGUoK2lzb01hdGNoWzFdLCAraXNvTWF0Y2hbMl0sICtpc29NYXRjaFszXSkgOiBudWxsO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLyogZW1wdHkgKi9cbiAgICB9XG4gICAgaWYgKHRoaXMuaXNWYWxpZChkYXRlKSkge1xuICAgICAgcmV0dXJuIGRhdGU7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RyaXBwZWRWYWx1ZSA9IHZhbHVlLnJlcGxhY2UoL1xcRC9nLCAnICcpLnRyaW0oKTtcblxuICAgIGNvbnN0IG1hdGNoOiBSZWdFeHBNYXRjaEFycmF5IHwgbnVsbCB8IHVuZGVmaW5lZCA9IHN0cmlwcGVkVmFsdWU/Lm1hdGNoKEZPUk1BVF9EQVRFKTtcbiAgICBpZiAoXG4gICAgICAhbWF0Y2ggfHxcbiAgICAgIG1hdGNoLmluZGV4ICE9PSAwIHx8XG4gICAgICBtYXRjaC5sZW5ndGggPD0gMiB8fFxuICAgICAgbWF0Y2guc29tZSgoZSkgPT4gZSA9PT0gdW5kZWZpbmVkKSB8fFxuICAgICAgIXRoaXMuaXNWYWxpZCh0aGlzLmNyZWF0ZURhdGUoK21hdGNoWzNdLCArbWF0Y2hbMl0sICttYXRjaFsxXSkpXG4gICAgKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBsZXQgeWVhciA9ICttYXRjaFszXTtcblxuICAgIGlmICh0eXBlb2YgeWVhciA9PT0gJ251bWJlcicgJiYgeWVhciA8IDEwMCAmJiB5ZWFyID49IDApIHtcbiAgICAgIGNvbnN0IHNoaWZ0ID0gdGhpcy5nZXRZZWFyKHRoaXMudG9kYXkoKSkgLSAyMDAwICsgdGhpcy5fY3V0b2ZmWWVhck9mZnNldDtcbiAgICAgIHllYXIgPSB5ZWFyIDw9IHNoaWZ0ID8gMjAwMCArIHllYXIgOiAxOTAwICsgeWVhcjtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jcmVhdGVEYXRlKHllYXIsICttYXRjaFsyXSwgK21hdGNoWzFdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGb3JtYXQgdGhlIGdpdmVuIGRhdGUgYXMgc3RyaW5nLlxuICAgKiBAcGFyYW0gZGF0ZSBUaGUgZGF0ZSB0byBmb3JtYXQuXG4gICAqIEBwYXJhbSBvcHRpb25zIG9wdGlvbnMgb2JqZWN0IHdpdGggd2Vla2RheVN0eWxlIGFzIHByb3BlcnR5XG4gICAqL1xuICBwdWJsaWMgZm9ybWF0KFxuICAgIGRhdGU6IFQgfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgIG9wdGlvbnM/OiB7IHdlZWtkYXlTdHlsZT86ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93JyB8ICdub25lJyB9LFxuICApOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKGRhdGUpKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWUgPSBuZXcgRGF0ZSh0aGlzLnRvSXNvODYwMShkYXRlISkgKyAnVDAwOjAwOjAwJyk7XG4gICAgY29uc3QgZGF0ZUZvcm1hdHRlciA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCdkZS1DSCcsIHtcbiAgICAgIGRheTogJzItZGlnaXQnLFxuICAgICAgbW9udGg6ICcyLWRpZ2l0JyxcbiAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICB9KTtcblxuICAgIGlmIChvcHRpb25zPy53ZWVrZGF5U3R5bGUgPT09ICdub25lJykge1xuICAgICAgcmV0dXJuIGRhdGVGb3JtYXR0ZXIuZm9ybWF0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBjb25zdCB3ZWVrZGF5U3R5bGUgPSBvcHRpb25zPy53ZWVrZGF5U3R5bGUgPz8gJ3Nob3J0JztcbiAgICBsZXQgd2Vla2RheSA9IHRoaXMuZ2V0RGF5T2ZXZWVrTmFtZXMod2Vla2RheVN0eWxlKVt0aGlzLmdldERheU9mV2VlayhkYXRlISldO1xuICAgIHdlZWtkYXkgPSB3ZWVrZGF5LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgd2Vla2RheS5zdWJzdHJpbmcoMSk7XG4gICAgLy8gV2UgaGF2ZSB0aGUgc3BlY2lhbCByZXF1aXJlbWVudCBmb3IgZGF0ZSBmb3JtYXRzIGF0IFNCQiwgd2hlcmUgdGhlIHNob3J0IGZvcm1cbiAgICAvLyBmb3Igd2Vla2RheXMgc2hvdWxkIGJlIHR3byBjaGFyYWN0ZXJzIGluIGxlbmd0aC5cbiAgICBpZiAod2Vla2RheVN0eWxlID09PSAnc2hvcnQnKSB7XG4gICAgICB3ZWVrZGF5ID0gd2Vla2RheS5zdWJzdHJpbmcoMCwgMik7XG4gICAgfVxuXG4gICAgcmV0dXJuIGAke3dlZWtkYXl9LCAke2RhdGVGb3JtYXR0ZXIuZm9ybWF0KHZhbHVlKX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBgb2JqYCBpcyBhIERhdGUuXG4gICAqIEBwYXJhbSBvYmogVGhlIG9iamVjdCB0byBjaGVjay5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBpc0RhdGVJbnN0YW5jZShvYmo6IGFueSk6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEdldHMgZGF0ZSBpbnN0YW5jZSB0aGF0IGlzIG5vdCB2YWxpZC5cbiAgICogQHJldHVybnMgQW4gaW52YWxpZCBkYXRlLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGludmFsaWQoKTogVDtcblxuICAvKipcbiAgICogR2V0IHRoZSBnaXZlbiBkYXRlIGFzIElTTyBTdHJpbmcuXG4gICAqIEBwYXJhbSBkYXRlIFRoZSBkYXRlIHRvIGNvbnZlcnQgdG8gSVNPIFN0cmluZy5cbiAgICovXG4gIHB1YmxpYyB0b0lzbzg2MDEoZGF0ZTogVCk6IHN0cmluZyB7XG4gICAgY29uc3QgcGFkID0gKHZhbHVlOiBudW1iZXIsIGxlbmd0aCA9IDIpOiBzdHJpbmcgPT4gYCR7dmFsdWV9YC5wYWRTdGFydChsZW5ndGgsICcwJyk7XG4gICAgcmV0dXJuIGAke3BhZCh0aGlzLmdldFllYXIoZGF0ZSksIDQpfS0ke3BhZCh0aGlzLmdldE1vbnRoKGRhdGUpKX0tJHtwYWQodGhpcy5nZXREYXRlKGRhdGUpKX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIEdpdmVuIGEgcG90ZW50aWFsIGRhdGUgb2JqZWN0LCByZXR1cm5zIHRoYXQgc2FtZSBkYXRlIG9iamVjdCBpZiBpdCBpc1xuICAgKiBhIHZhbGlkIGRhdGUsIG9yIGBudWxsYCBpZiBpdCdzIG5vdCBhIHZhbGlkIGRhdGUuXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgb2JqZWN0IHRvIGNoZWNrLlxuICAgKiBAcmV0dXJucyBBIGRhdGUgb3IgYG51bGxgLlxuICAgKi9cbiAgcHVibGljIGdldFZhbGlkRGF0ZU9yTnVsbCh2YWx1ZTogdW5rbm93bik6IFQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5pc0RhdGVJbnN0YW5jZSh2YWx1ZSkgJiYgdGhpcy5pc1ZhbGlkKHZhbHVlIGFzIFQpID8gKHZhbHVlIGFzIFQpIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGVzIHRoZSBkYXkgb2YgdGhlIHdlZWsgb2YgdGhlIGZpcnN0IGRheSBvZiB0aGUgbW9udGgsIGFuZCB0aGVuIGl0cyBvZmZzZXQgZnJvbSB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgKi9cbiAgcHVibGljIGdldEZpcnN0V2Vla09mZnNldChkYXRlOiBUKTogbnVtYmVyIHtcbiAgICBjb25zdCBmaXJzdE9mTW9udGggPSB0aGlzLmNyZWF0ZURhdGUodGhpcy5nZXRZZWFyKGRhdGUpLCB0aGlzLmdldE1vbnRoKGRhdGUpLCAxKSE7XG4gICAgcmV0dXJuIChcbiAgICAgIChEQVlTX1BFUl9ST1cgKyB0aGlzLmdldERheU9mV2VlayhmaXJzdE9mTW9udGgpIC0gdGhpcy5nZXRGaXJzdERheU9mV2VlaygpKSAlIERBWVNfUEVSX1JPV1xuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ29tcGFyZXMgdHdvIGRhdGVzLlxuICAgKiBAcGFyYW0gZmlyc3QgVGhlIGZpcnN0IGRhdGUgdG8gY29tcGFyZS5cbiAgICogQHBhcmFtIHNlY29uZCBUaGUgc2Vjb25kIGRhdGUgdG8gY29tcGFyZS5cbiAgICogQHJldHVybnMgMCBpZiB0aGUgZGF0ZXMgYXJlIGVxdWFsLCBhIG51bWJlciBsZXNzIHRoYW4gMCBpZiB0aGUgZmlyc3QgZGF0ZSBpcyBlYXJsaWVyLFxuICAgKiAgICAgYSBudW1iZXIgZ3JlYXRlciB0aGFuIDAgaWYgdGhlIGZpcnN0IGRhdGUgaXMgbGF0ZXIuXG4gICAqL1xuICBwdWJsaWMgY29tcGFyZURhdGUoZmlyc3Q6IFQsIHNlY29uZDogVCk6IG51bWJlciB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuZ2V0WWVhcihmaXJzdCkgLSB0aGlzLmdldFllYXIoc2Vjb25kKSB8fFxuICAgICAgdGhpcy5nZXRNb250aChmaXJzdCkgLSB0aGlzLmdldE1vbnRoKHNlY29uZCkgfHxcbiAgICAgIHRoaXMuZ2V0RGF0ZShmaXJzdCkgLSB0aGlzLmdldERhdGUoc2Vjb25kKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHR3byBkYXRlcyBhcmUgZXF1YWwuXG4gICAqIEBwYXJhbSBmaXJzdCBUaGUgZmlyc3QgZGF0ZSB0byBjaGVjay5cbiAgICogQHBhcmFtIHNlY29uZCBUaGUgc2Vjb25kIGRhdGUgdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIHR3byBkYXRlcyBhcmUgZXF1YWwuXG4gICAqICAgICBOdWxsIGRhdGVzIGFyZSBjb25zaWRlcmVkIGVxdWFsIHRvIG90aGVyIG51bGwgZGF0ZXMuXG4gICAqL1xuICBwdWJsaWMgc2FtZURhdGUoZmlyc3Q6IFQgfCBudWxsLCBzZWNvbmQ6IFQgfCBudWxsKTogYm9vbGVhbiB7XG4gICAgaWYgKGZpcnN0ICYmIHNlY29uZCkge1xuICAgICAgY29uc3QgZmlyc3RWYWxpZCA9IHRoaXMuaXNWYWxpZChmaXJzdCk7XG4gICAgICBjb25zdCBzZWNvbmRWYWxpZCA9IHRoaXMuaXNWYWxpZChzZWNvbmQpO1xuICAgICAgaWYgKGZpcnN0VmFsaWQgJiYgc2Vjb25kVmFsaWQpIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmNvbXBhcmVEYXRlKGZpcnN0LCBzZWNvbmQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZpcnN0VmFsaWQgPT0gc2Vjb25kVmFsaWQ7XG4gICAgfVxuICAgIHJldHVybiBmaXJzdCA9PSBzZWNvbmQ7XG4gIH1cblxuICAvKipcbiAgICogQ2xhbXAgdGhlIGdpdmVuIGRhdGUgYmV0d2VlbiBtaW4gYW5kIG1heCBkYXRlcy5cbiAgICogQHBhcmFtIGRhdGUgVGhlIGRhdGUgdG8gY2xhbXAuXG4gICAqIEBwYXJhbSBtaW4gVGhlIG1pbmltdW0gdmFsdWUgdG8gYWxsb3cuIElmIG51bGwgb3Igb21pdHRlZCBubyBtaW4gaXMgZW5mb3JjZWQuXG4gICAqIEBwYXJhbSBtYXggVGhlIG1heGltdW0gdmFsdWUgdG8gYWxsb3cuIElmIG51bGwgb3Igb21pdHRlZCBubyBtYXggaXMgZW5mb3JjZWQuXG4gICAqIEByZXR1cm5zIGBtaW5gIGlmIGBkYXRlYCBpcyBsZXNzIHRoYW4gYG1pbmAsIGBtYXhgIGlmIGRhdGUgaXMgZ3JlYXRlciB0aGFuIGBtYXhgLFxuICAgKiAgICAgb3RoZXJ3aXNlIGBkYXRlYC5cbiAgICovXG4gIHB1YmxpYyBjbGFtcERhdGUoZGF0ZTogVCwgbWluPzogVCB8IG51bGwsIG1heD86IFQgfCBudWxsKTogVCB7XG4gICAgaWYgKG1pbiAmJiB0aGlzLmNvbXBhcmVEYXRlKGRhdGUsIG1pbikgPCAwKSB7XG4gICAgICByZXR1cm4gbWluO1xuICAgIH1cbiAgICBpZiAobWF4ICYmIHRoaXMuY29tcGFyZURhdGUoZGF0ZSwgbWF4KSA+IDApIHtcbiAgICAgIHJldHVybiBtYXg7XG4gICAgfVxuICAgIHJldHVybiBkYXRlO1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQU8sTUFBTSxlQUF1QjtBQUM3QixNQUFNLGlCQUF5QjtBQUMvQixNQUFNLGdC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
@@ -1,7 +1,5 @@
1
1
  import { DateAdapter } from './date-adapter.ts';
2
2
  export declare class NativeDateAdapter extends DateAdapter<Date> {
3
- private readonly _cutoffYearOffset;
4
- constructor(cutoffYearOffset?: number);
5
3
  /** Gets the year of the input date. */
6
4
  getYear(date: Date): number;
7
5
  /** Gets the month of the input date. */
@@ -33,7 +31,7 @@ export declare class NativeDateAdapter extends DateAdapter<Date> {
33
31
  /** Creates today's date. */
34
32
  today(): Date;
35
33
  /** Creates a new date, given day, month and year; the method doesn't allow date's overflow. */
36
- createDate(year: number, month: number, date: number): Date;
34
+ createDate(year: number, month: number, day: number): Date;
37
35
  /** Checks whether the given `obj` is a Date. */
38
36
  isDateInstance(obj: any): boolean;
39
37
  /** Checks whether the given `date` is a valid Date. */
@@ -56,8 +54,6 @@ export declare class NativeDateAdapter extends DateAdapter<Date> {
56
54
  addCalendarDays(date: Date, days: number): Date;
57
55
  /** Creates a Date from a valid input (Date or ISO string). */
58
56
  deserialize(date: Date | string | null | undefined): Date | null;
59
- /** Returns the right format for the `valueAsDate` property. */
60
- parse(value: string | null | undefined): Date | null;
61
57
  invalid(): Date;
62
58
  /**
63
59
  * Creates an array with the given length and fills it by mapping with the provided function.
@@ -1 +1 @@
1
- {"version":3,"file":"native-date-adapter.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/datetime/native-date-adapter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAoC,MAAM,mBAAmB,CAAC;AAUlF,qBAAa,iBAAkB,SAAQ,WAAW,CAAC,IAAI,CAAC;IACtD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;gBAExB,gBAAgB,GAAE,MAAW;IAKhD,uCAAuC;IAChC,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAIlC,wCAAwC;IACjC,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAInC,sCAAsC;IAC/B,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAIlC,kDAAkD;IAC3C,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAIvC,yCAAyC;IAClC,0BAA0B,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM;IAS9D;;;;OAIG;IACI,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,EAAE;IAKlE,iGAAiG;IAC1F,YAAY,IAAI,MAAM,EAAE;IAK/B;;;;OAIG;IACI,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,EAAE;IAKtE,+EAA+E;IACxE,iBAAiB,IAAI,MAAM;IAIlC,6EAA6E;IACtE,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAI5C,4BAA4B;IACrB,KAAK,IAAI,IAAI;IAIpB,+FAA+F;IACxF,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAmBlE,gDAAgD;IACzC,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO;IAIxC,uDAAuD;IAChD,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,IAAI,IAAI;IAI3D,mDAAmD;IAC5C,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAI9B;;;;OAIG;IACI,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAIxD;;;;OAIG;IACI,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAQ1D,yFAAyF;IAClF,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAKtD,8DAA8D;IAC9C,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI;IAahF,+DAA+D;IACxD,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI;IAuC3C,OAAO,IAAI,IAAI;IAI/B;;;;OAIG;IACH,OAAO,CAAC,MAAM;IAId,gEAAgE;IAChE,OAAO,CAAC,uBAAuB;CAShC;AAED,eAAO,MAAM,kBAAkB,mBAA0B,CAAC"}
1
+ {"version":3,"file":"native-date-adapter.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/datetime/native-date-adapter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAUhD,qBAAa,iBAAkB,SAAQ,WAAW,CAAC,IAAI,CAAC;IACtD,uCAAuC;IAChC,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAIlC,wCAAwC;IACjC,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAInC,sCAAsC;IAC/B,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAIlC,kDAAkD;IAC3C,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAIvC,yCAAyC;IAClC,0BAA0B,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM;IAS9D;;;;OAIG;IACI,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,EAAE;IAKlE,iGAAiG;IAC1F,YAAY,IAAI,MAAM,EAAE;IAK/B;;;;OAIG;IACI,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,EAAE;IAKtE,+EAA+E;IACxE,iBAAiB,IAAI,MAAM;IAIlC,6EAA6E;IACtE,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAI5C,4BAA4B;IACrB,KAAK,IAAI,IAAI;IAIpB,+FAA+F;IACxF,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAiBjE,gDAAgD;IACzC,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO;IAIxC,uDAAuD;IAChD,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,IAAI,IAAI;IAI3D,mDAAmD;IAC5C,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAI9B;;;;OAIG;IACI,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAIxD;;;;OAIG;IACI,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAQ1D,yFAAyF;IAClF,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAKtD,8DAA8D;IAC9C,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI;IAahE,OAAO,IAAI,IAAI;IAI/B;;;;OAIG;IACH,OAAO,CAAC,MAAM;IAId,gEAAgE;IAChE,OAAO,CAAC,uBAAuB;CAShC;AAED,eAAO,MAAM,kBAAkB,mBAA0B,CAAC"}
@@ -1,11 +1,7 @@
1
1
  import { SbbLanguageController } from "../controllers.js";
2
- import { DateAdapter, ISO8601_FORMAT_DATE, FORMAT_DATE } from "./date-adapter.js";
2
+ import { DateAdapter } from "./date-adapter.js";
3
3
  const ISO_8601_REGEX = /^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|(?:(?:\+|-)\d{2}:\d{2}))?)?$/;
4
4
  class NativeDateAdapter extends DateAdapter {
5
- constructor(cutoffYearOffset = 15) {
6
- super();
7
- this._cutoffYearOffset = cutoffYearOffset;
8
- }
9
5
  /** Gets the year of the input date. */
10
6
  getYear(date) {
11
7
  return date.getFullYear();
@@ -67,16 +63,15 @@ class NativeDateAdapter extends DateAdapter {
67
63
  return new Date((/* @__PURE__ */ new Date()).setHours(0, 0, 0, 0));
68
64
  }
69
65
  /** Creates a new date, given day, month and year; the method doesn't allow date's overflow. */
70
- createDate(year, month, date) {
66
+ createDate(year, month, day) {
71
67
  if (month < 1 || month > 12) {
72
- throw Error(`Invalid month index "${month}". Month index has to be between 1 and 12.`);
73
- }
74
- if (date < 1) {
75
- throw Error(`Invalid date "${date}". Date has to be greater than 0.`);
68
+ throw Error(`Invalid month "${month}". Month has to be between 1 and 12.`);
69
+ } else if (day < 1) {
70
+ throw Error(`Invalid day "${day}". Day has to be greater than 0.`);
76
71
  }
77
- const result = this._createDateWithOverflow(year, month - 1, date);
72
+ const result = this._createDateWithOverflow(year, month - 1, day);
78
73
  if (result.getMonth() + 1 !== month) {
79
- throw Error(`Invalid date "${date}" for month with index "${month}".`);
74
+ throw Error(`Invalid day "${day}" for month "${month}".`);
80
75
  }
81
76
  return result;
82
77
  }
@@ -127,32 +122,6 @@ class NativeDateAdapter extends DateAdapter {
127
122
  }
128
123
  return super.deserialize(date);
129
124
  }
130
- /** Returns the right format for the `valueAsDate` property. */
131
- parse(value) {
132
- if (!value) {
133
- return null;
134
- }
135
- let date = null;
136
- const isoMatch = value.match(ISO8601_FORMAT_DATE);
137
- try {
138
- date = isoMatch ? this.createDate(+isoMatch[1], +isoMatch[2], +isoMatch[3]) : null;
139
- } catch {
140
- }
141
- if (this.isValid(date)) {
142
- return date;
143
- }
144
- const strippedValue = value.replace(/\D/g, " ").trim();
145
- const match = strippedValue?.match(FORMAT_DATE);
146
- if (!match || match.index !== 0 || match.length <= 2 || match.some((e) => e === void 0) || !this.isValid(this.createDate(+match[3], +match[2], +match[1]))) {
147
- return null;
148
- }
149
- let year = +match[3];
150
- if (typeof year === "number" && year < 100 && year >= 0) {
151
- const shift = this.today().getFullYear() - 2e3 + this._cutoffYearOffset;
152
- year = year <= shift ? 2e3 + year : 1900 + year;
153
- }
154
- return new Date(year, +match[2] - 1, +match[1]);
155
- }
156
125
  invalid() {
157
126
  return /* @__PURE__ */ new Date(NaN);
158
127
  }
@@ -178,4 +147,4 @@ export {
178
147
  NativeDateAdapter,
179
148
  defaultDateAdapter
180
149
  };
181
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlLWRhdGUtYWRhcHRlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvZGF0ZXRpbWUvbmF0aXZlLWRhdGUtYWRhcHRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIgfSBmcm9tICcuLi9jb250cm9sbGVycy50cyc7XG5cbmltcG9ydCB7IERhdGVBZGFwdGVyLCBGT1JNQVRfREFURSwgSVNPODYwMV9GT1JNQVRfREFURSB9IGZyb20gJy4vZGF0ZS1hZGFwdGVyLnRzJztcblxuLyoqXG4gKiBNYXRjaGVzIHN0cmluZ3MgdGhhdCBoYXZlIHRoZSBmb3JtIG9mIGEgdmFsaWQgUkZDIDMzMzkgc3RyaW5nXG4gKiAoaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzMzMzkpLiBOb3RlIHRoYXQgdGhlIHN0cmluZyBtYXkgbm90IGFjdHVhbGx5IGJlIGEgdmFsaWQgZGF0ZVxuICogYmVjYXVzZSB0aGUgcmVnZXggd2lsbCBtYXRjaCBzdHJpbmdzIGFuIHdpdGhvdXQgb2YgYm91bmRzIG1vbnRoLCBkYXRlLCBldGMuXG4gKi9cbmNvbnN0IElTT184NjAxX1JFR0VYID1cbiAgL15cXGR7NH0tXFxkezJ9LVxcZHsyfSg/OlRcXGR7Mn06XFxkezJ9OlxcZHsyfSg/OlxcLlxcZCspPyg/Olp8KD86KD86XFwrfC0pXFxkezJ9OlxcZHsyfSkpPyk/JC87XG5cbmV4cG9ydCBjbGFzcyBOYXRpdmVEYXRlQWRhcHRlciBleHRlbmRzIERhdGVBZGFwdGVyPERhdGU+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfY3V0b2ZmWWVhck9mZnNldDogbnVtYmVyO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihjdXRvZmZZZWFyT2Zmc2V0OiBudW1iZXIgPSAxNSkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5fY3V0b2ZmWWVhck9mZnNldCA9IGN1dG9mZlllYXJPZmZzZXQ7XG4gIH1cblxuICAvKiogR2V0cyB0aGUgeWVhciBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldFllYXIoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUuZ2V0RnVsbFllYXIoKTtcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSBtb250aCBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldE1vbnRoKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiBkYXRlLmdldE1vbnRoKCkgKyAxO1xuICB9XG5cbiAgLyoqIEdldHMgdGhlIGRheSBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldERhdGUoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUuZ2V0RGF0ZSgpO1xuICB9XG5cbiAgLyoqIEdldHMgdGhlIGRheSBvZiB0aGUgd2VlayBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldERheU9mV2VlayhkYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZGF0ZS5nZXREYXkoKTtcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSBkYXRlIGluIHRoZSBsb2NhbCBmb3JtYXQuICovXG4gIHB1YmxpYyBnZXRBY2Nlc3NpYmlsaXR5Rm9ybWF0RGF0ZShkYXRlOiBEYXRlIHwgc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBvcHRpb25zOiBJbnRsLkRhdGVUaW1lRm9ybWF0T3B0aW9ucyA9IHtcbiAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICAgIG1vbnRoOiAnbG9uZycsXG4gICAgICBkYXk6ICdudW1lcmljJyxcbiAgICB9O1xuICAgIHJldHVybiBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChTYmJMYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudCwgb3B0aW9ucykuZm9ybWF0KG5ldyBEYXRlKGRhdGUpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIHN0cmluZ3Mgd2l0aCBsZW5ndGggPSAxMiwgZmlsbGVkIHdpdGggdGhlIG5hbWUgb2YgdGhlIG1vbnRocyBzdGFydGluZyBmcm9tIEphbnVhcnksIGluIHRoZSBkb2N1bWVudCBsYW5ndWFnZS5cbiAgICogQHBhcmFtIHN0eWxlIFNlZSBgbW9udGhgIGluIGBEYXRlVGltZUZvcm1hdE9wdGlvbnNgOiBgbG9uZ2AgZm9yIGZ1bGwgbmFtZSwgYHNob3J0YCBmb3Igc2hvcnQgbmFtZSwgYG5hcnJvd2AgZm9yIHNpbmdsZSBsZXR0ZXIsXG4gICAqIEUuZy4sIHdpdGggSmFudWFyeSBpbiBlbi1nYjogYGxvbmdgIHJldHVybnMgXCJKYW51YXJ5XCIsIGBzaG9ydGAgcmV0dXJucyBcIkphblwiLCBgbmFycm93YCByZXR1cm5zIFwiSlwiLlxuICAgKi9cbiAgcHVibGljIGdldE1vbnRoTmFtZXMoc3R5bGU6ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93Jyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChTYmJMYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudCwgeyBtb250aDogc3R5bGUgfSk7XG4gICAgcmV0dXJuIHRoaXMuX3JhbmdlKDEyLCAoaSkgPT4gZm9ybWF0dGVyLmZvcm1hdChuZXcgRGF0ZSgyMDE3LCBpLCAxKSkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBzdHJpbmcgYXJyYXkgd2l0aCBsZW5ndGggPSAzMSwgZmlsbGVkIHdpdGggdGhlIGRheXMgaW4gYSBtb250aCwgc3RhcnRpbmcgZnJvbSAxLiAqL1xuICBwdWJsaWMgZ2V0RGF0ZU5hbWVzKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChTYmJMYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudCwgeyBkYXk6ICdudW1lcmljJyB9KTtcbiAgICByZXR1cm4gdGhpcy5fcmFuZ2UoMzEsIChpKSA9PiBmb3JtYXR0ZXIuZm9ybWF0KG5ldyBEYXRlKDIwMTcsIDAsIGkgKyAxKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBzdHJpbmcgYXJyYXkgd2l0aCBsZW5ndGggPSA3LCBmaWxsZWQgd2l0aCB0aGUgbmFtZSBvZiB0aGUgZGF5cyBpbiBhIHdlZWsgc3RhcnRpbmcgZnJvbSBTdW5kYXksIGluIHRoZSBkb2N1bWVudCBsYW5ndWFnZS5cbiAgICogQHBhcmFtIHN0eWxlIFNlZSBgd2Vla2RheWAgaW4gYERhdGVUaW1lRm9ybWF0T3B0aW9uc2AgLSAnbG9uZycgZm9yIGZ1bGwgbmFtZSwgJ3Nob3J0JyBmb3Igc2hvcnQgbmFtZSwgJ25hcnJvdycgZm9yIHNpbmdsZSBsZXR0ZXI7XG4gICAqIEUuZy4sIHdpdGggTW9uZGF5IGluIGVuLWdiOiBgbG9uZ2AgcmV0dXJucyBcIk1vbmRheVwiLCBgc2hvcnRgIHJldHVybnMgXCJNb25cIiwgYG5hcnJvd2AgcmV0dXJucyBcIk1cIi5cbiAgICovXG4gIHB1YmxpYyBnZXREYXlPZldlZWtOYW1lcyhzdHlsZTogJ2xvbmcnIHwgJ3Nob3J0JyB8ICduYXJyb3cnKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGZvcm1hdHRlciA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFNiYkxhbmd1YWdlQ29udHJvbGxlci5jdXJyZW50LCB7IHdlZWtkYXk6IHN0eWxlIH0pO1xuICAgIHJldHVybiB0aGlzLl9yYW5nZSg3LCAoaSkgPT4gZm9ybWF0dGVyLmZvcm1hdChuZXcgRGF0ZSgyMDE3LCAwLCBpICsgMSkpKTtcbiAgfVxuXG4gIC8qKiBEZWZpbmVzIHdoaWNoIGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsgKDA6IHN1bmRheTsgMTogbW9uZGF5OyBldGMuKS4gKi9cbiAgcHVibGljIGdldEZpcnN0RGF5T2ZXZWVrKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIDE7XG4gIH1cblxuICAvKiogQ2FsY3VsYXRlcyB0aGUgbnVtYmVyIG9mIGRheXMgaW4gYSBtb250aCBnaXZlbiB0aGUgeWVhciBhbmQgdGhlIG1vbnRoLiAqL1xuICBwdWJsaWMgZ2V0TnVtRGF5c0luTW9udGgoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RGF0ZSh0aGlzLl9jcmVhdGVEYXRlV2l0aE92ZXJmbG93KHRoaXMuZ2V0WWVhcihkYXRlKSwgdGhpcy5nZXRNb250aChkYXRlKSwgMCkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgdG9kYXkncyBkYXRlLiAqL1xuICBwdWJsaWMgdG9kYXkoKTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKG5ldyBEYXRlKCkuc2V0SG91cnMoMCwgMCwgMCwgMCkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBuZXcgZGF0ZSwgZ2l2ZW4gZGF5LCBtb250aCBhbmQgeWVhcjsgdGhlIG1ldGhvZCBkb2Vzbid0IGFsbG93IGRhdGUncyBvdmVyZmxvdy4gKi9cbiAgcHVibGljIGNyZWF0ZURhdGUoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyLCBkYXRlOiBudW1iZXIpOiBEYXRlIHtcbiAgICAvLyBDaGVjayBmb3IgaW52YWxpZCBtb250aCBhbmQgZGF0ZSAoZXhjZXB0IHVwcGVyIGJvdW5kIG9uIGRhdGUgd2hpY2ggd2UgaGF2ZSB0byBjaGVjayBhZnRlciBjcmVhdGluZyB0aGUgRGF0ZSkuXG4gICAgaWYgKG1vbnRoIDwgMSB8fCBtb250aCA+IDEyKSB7XG4gICAgICB0aHJvdyBFcnJvcihgSW52YWxpZCBtb250aCBpbmRleCBcIiR7bW9udGh9XCIuIE1vbnRoIGluZGV4IGhhcyB0byBiZSBiZXR3ZWVuIDEgYW5kIDEyLmApO1xuICAgIH1cblxuICAgIGlmIChkYXRlIDwgMSkge1xuICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgZGF0ZSBcIiR7ZGF0ZX1cIi4gRGF0ZSBoYXMgdG8gYmUgZ3JlYXRlciB0aGFuIDAuYCk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fY3JlYXRlRGF0ZVdpdGhPdmVyZmxvdyh5ZWFyLCBtb250aCAtIDEsIGRhdGUpO1xuICAgIC8vIENoZWNrIHRoYXQgdGhlIGRhdGUgd2Fzbid0IGFib3ZlIHRoZSB1cHBlciBib3VuZCBmb3IgdGhlIG1vbnRoLCBjYXVzaW5nIHRoZSBtb250aCB0byBvdmVyZmxvd1xuICAgIGlmIChyZXN1bHQuZ2V0TW9udGgoKSArIDEgIT09IG1vbnRoKSB7XG4gICAgICB0aHJvdyBFcnJvcihgSW52YWxpZCBkYXRlIFwiJHtkYXRlfVwiIGZvciBtb250aCB3aXRoIGluZGV4IFwiJHttb250aH1cIi5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBgb2JqYCBpcyBhIERhdGUuICovXG4gIHB1YmxpYyBpc0RhdGVJbnN0YW5jZShvYmo6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBvYmogaW5zdGFuY2VvZiBEYXRlO1xuICB9XG5cbiAgLyoqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBgZGF0ZWAgaXMgYSB2YWxpZCBEYXRlLiAqL1xuICBwdWJsaWMgaXNWYWxpZChkYXRlOiBEYXRlIHwgbnVsbCB8IHVuZGVmaW5lZCk6IGRhdGUgaXMgRGF0ZSB7XG4gICAgcmV0dXJuICEhZGF0ZSAmJiAhaXNOYU4oZGF0ZS52YWx1ZU9mKCkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBuZXcgZGF0ZSBieSBjbG9uaW5nIHRoZSBnaXZlbiBvbmUuICovXG4gIHB1YmxpYyBjbG9uZShkYXRlOiBEYXRlKTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUudmFsdWVPZigpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGRhdGUgYWRkaW5nIHRoZSBudW1iZXIgb2YgcHJvdmlkZWQgYHllYXJzYCB0byB0aGUgcHJvdmlkZWQgYGRhdGVgLlxuICAgKiBAcGFyYW0gZGF0ZSBUaGUgc3RhcnRpbmcgZGF0ZS5cbiAgICogQHBhcmFtIHllYXJzIFRoZSBudW1iZXIgb2YgeWVhcnMgdG8gYWRkLlxuICAgKi9cbiAgcHVibGljIGFkZENhbGVuZGFyWWVhcnMoZGF0ZTogRGF0ZSwgeWVhcnM6IG51bWJlcik6IERhdGUge1xuICAgIHJldHVybiB0aGlzLmFkZENhbGVuZGFyTW9udGhzKGRhdGUsIHllYXJzICogMTIpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgbW9udGhzYCB0byB0aGUgcHJvdmlkZWQgYGRhdGVgLlxuICAgKiBJZiB0aGUgY2FsY3VsYXRlZCBtb250aCBoYXMgZmV3ZXIgZGF5cyB0aGFuIHRoZSBvcmlnaW5hbCBvbmUsIHRoZSBkYXRlIGlzIHNldCB0byB0aGUgbGFzdCBkYXkgb2YgdGhlIG1vbnRoLlxuICAgKiBFLmcuLCB3aXRoIGBkYXRlYCA9IG5ldyBEYXRlKDIwMjIsIDAsIDMxKSBhbmQgYG1vbnRoc2AgPSAxLCBpdCByZXR1cm5zIG5ldyBEYXRlKDIwMjIsIDEsIDI4KS5cbiAgICovXG4gIHB1YmxpYyBhZGRDYWxlbmRhck1vbnRocyhkYXRlOiBEYXRlLCBtb250aHM6IG51bWJlcik6IERhdGUge1xuICAgIGNvbnN0IHRhcmdldE1vbnRoID0gZGF0ZS5nZXRNb250aCgpICsgbW9udGhzO1xuICAgIGNvbnN0IGRhdGVXaXRoQ29ycmVjdE1vbnRoID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCB0YXJnZXRNb250aCwgMSwgMCwgMCwgMCwgMCk7XG4gICAgY29uc3QgZGF5c0luTW9udGggPSB0aGlzLmdldE51bURheXNJbk1vbnRoKGRhdGVXaXRoQ29ycmVjdE1vbnRoKTtcbiAgICAvLyBBZGFwdCB0aGUgbGFzdCBkYXkgb2YgbW9udGggZm9yIHNob3J0ZXIgbW9udGhzXG4gICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMuY2xvbmUoZGF0ZSkuc2V0TW9udGgodGFyZ2V0TW9udGgsIE1hdGgubWluKGRheXNJbk1vbnRoLCBkYXRlLmdldERhdGUoKSkpKTtcbiAgfVxuXG4gIC8qKiBDcmVhdGVzIGEgbmV3IGRhdGUgYnkgYWRkaW5nIHRoZSBudW1iZXIgb2YgcHJvdmlkZWQgYGRheXNgIHRvIHRoZSBwcm92aWRlZCBgZGF0ZWAuICovXG4gIHB1YmxpYyBhZGRDYWxlbmRhckRheXMoZGF0ZTogRGF0ZSwgZGF5czogbnVtYmVyKTogRGF0ZSB7XG4gICAgY29uc3QgdGFyZ2V0RGF5ID0gZGF0ZS5nZXREYXRlKCkgKyBkYXlzO1xuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSwgdGFyZ2V0RGF5LCAwLCAwLCAwLCAwKTtcbiAgfVxuXG4gIC8qKiBDcmVhdGVzIGEgRGF0ZSBmcm9tIGEgdmFsaWQgaW5wdXQgKERhdGUgb3IgSVNPIHN0cmluZykuICovXG4gIHB1YmxpYyBvdmVycmlkZSBkZXNlcmlhbGl6ZShkYXRlOiBEYXRlIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IERhdGUgfCBudWxsIHtcbiAgICBpZiAodHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAoIWRhdGUpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9IGVsc2UgaWYgKElTT184NjAxX1JFR0VYLnRlc3QoZGF0ZSkpIHtcbiAgICAgICAgLy8gVGhlIGBEYXRlYCBjb25zdHJ1Y3RvciBhY2NlcHRzIGZvcm1hdHMgb3RoZXIgdGhhbiBJU08gODYwMSwgc28gd2UgbmVlZCB0byBtYWtlIHN1cmUgdGhlXG4gICAgICAgIC8vIHN0cmluZyBpcyB0aGUgcmlnaHQgZm9ybWF0IGZpcnN0LlxuICAgICAgICByZXR1cm4gdGhpcy5nZXRWYWxpZERhdGVPck51bGwobmV3IERhdGUoZGF0ZS5pbmNsdWRlcygnVCcpID8gZGF0ZSA6IGRhdGUgKyAnVDAwOjAwOjAwJykpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gc3VwZXIuZGVzZXJpYWxpemUoZGF0ZSk7XG4gIH1cblxuICAvKiogUmV0dXJucyB0aGUgcmlnaHQgZm9ybWF0IGZvciB0aGUgYHZhbHVlQXNEYXRlYCBwcm9wZXJ0eS4gKi9cbiAgcHVibGljIHBhcnNlKHZhbHVlOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogRGF0ZSB8IG51bGwge1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGxldCBkYXRlOiBEYXRlIHwgbnVsbCA9IG51bGw7XG4gICAgY29uc3QgaXNvTWF0Y2ggPSB2YWx1ZS5tYXRjaChJU084NjAxX0ZPUk1BVF9EQVRFKTtcbiAgICB0cnkge1xuICAgICAgZGF0ZSA9IGlzb01hdGNoID8gdGhpcy5jcmVhdGVEYXRlKCtpc29NYXRjaFsxXSwgK2lzb01hdGNoWzJdLCAraXNvTWF0Y2hbM10pIDogbnVsbDtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8qIGVtcHR5ICovXG4gICAgfVxuICAgIGlmICh0aGlzLmlzVmFsaWQoZGF0ZSkpIHtcbiAgICAgIHJldHVybiBkYXRlO1xuICAgIH1cblxuICAgIGNvbnN0IHN0cmlwcGVkVmFsdWUgPSB2YWx1ZS5yZXBsYWNlKC9cXEQvZywgJyAnKS50cmltKCk7XG5cbiAgICBjb25zdCBtYXRjaDogUmVnRXhwTWF0Y2hBcnJheSB8IG51bGwgfCB1bmRlZmluZWQgPSBzdHJpcHBlZFZhbHVlPy5tYXRjaChGT1JNQVRfREFURSk7XG4gICAgaWYgKFxuICAgICAgIW1hdGNoIHx8XG4gICAgICBtYXRjaC5pbmRleCAhPT0gMCB8fFxuICAgICAgbWF0Y2gubGVuZ3RoIDw9IDIgfHxcbiAgICAgIG1hdGNoLnNvbWUoKGUpID0+IGUgPT09IHVuZGVmaW5lZCkgfHxcbiAgICAgICF0aGlzLmlzVmFsaWQodGhpcy5jcmVhdGVEYXRlKCttYXRjaFszXSwgK21hdGNoWzJdLCArbWF0Y2hbMV0pKVxuICAgICkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgbGV0IHllYXIgPSArbWF0Y2hbM107XG5cbiAgICBpZiAodHlwZW9mIHllYXIgPT09ICdudW1iZXInICYmIHllYXIgPCAxMDAgJiYgeWVhciA+PSAwKSB7XG4gICAgICBjb25zdCBzaGlmdCA9IHRoaXMudG9kYXkoKS5nZXRGdWxsWWVhcigpIC0gMjAwMCArIHRoaXMuX2N1dG9mZlllYXJPZmZzZXQ7XG4gICAgICB5ZWFyID0geWVhciA8PSBzaGlmdCA/IDIwMDAgKyB5ZWFyIDogMTkwMCArIHllYXI7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBEYXRlKHllYXIsICttYXRjaFsyXSAtIDEsICttYXRjaFsxXSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgaW52YWxpZCgpOiBEYXRlIHtcbiAgICByZXR1cm4gbmV3IERhdGUoTmFOKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGFycmF5IHdpdGggdGhlIGdpdmVuIGxlbmd0aCBhbmQgZmlsbHMgaXQgYnkgbWFwcGluZyB3aXRoIHRoZSBwcm92aWRlZCBmdW5jdGlvbi5cbiAgICogQHBhcmFtIGxlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBhcnJheSB0byBiZSBjcmVhdGVkLlxuICAgKiBAcGFyYW0gdmFsdWVGdW5jdGlvbiBUaGUgZnVuY3Rpb24gb2YgYXJyYXkncyBpbmRleCB1c2VkIHRvIGZpbGwgdGhlIGFycmF5LlxuICAgKi9cbiAgcHJpdmF0ZSBfcmFuZ2U8VD4obGVuZ3RoOiBudW1iZXIsIHZhbHVlRnVuY3Rpb246IChpbmRleDogbnVtYmVyKSA9PiBUKTogVFtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aCB9KS5tYXAoKF8sIGkpID0+IHZhbHVlRnVuY3Rpb24oaSkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBkYXRlIGJ1dCBhbGxvd3MgdGhlIG1vbnRoIGFuZCBkYXRlIHRvIG92ZXJmbG93LiAqL1xuICBwcml2YXRlIF9jcmVhdGVEYXRlV2l0aE92ZXJmbG93KHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlciwgZGF0ZTogbnVtYmVyKTogRGF0ZSB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IERhdGUoeWVhciwgbW9udGgsIGRhdGUpO1xuICAgIC8vIFdlIG5lZWQgdG8gY29ycmVjdCBmb3IgdGhlIGZhY3QgdGhhdCBKUyBuYXRpdmUgRGF0ZSB0cmVhdHMgeWVhcnMgaW4gcmFuZ2UgWzAsIDk5XSBhc1xuICAgIC8vIGFiYnJldmlhdGlvbnMgZm9yIDE5eHguXG4gICAgaWYgKHllYXIgPj0gMCAmJiB5ZWFyIDwgMTAwKSB7XG4gICAgICByZXN1bHQuc2V0RnVsbFllYXIodGhpcy5nZXRZZWFyKHJlc3VsdCkgLSAxOTAwKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgZGVmYXVsdERhdGVBZGFwdGVyID0gbmV3IE5hdGl2ZURhdGVBZGFwdGVyKCk7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFTQSxNQUFNLGlCQUNKO0FBRUksTUFBTywwQkFBMEIsWUFBaUI7QUFBQSxFQUd0RCxZQUFtQixtQkFBMkIsSUFBRTtBQUM5QyxVQUFBO0FBQ0EsU0FBSyxvQkFBb0I7QUFBQSxFQUMzQjtBQUFBO0FBQUEsRUFHTyxRQUFRLE1BQVU7QUFDdkIsV0FBTyxLQUFLLFlBQUE7QUFBQSxFQUNkO0FBQUE7QUFBQSxFQUdPLFNBQVMsTUFBVTtBQUN4QixXQUFPLEtBQUssYUFBYTtBQUFBLEVBQzNCO0FBQUE7QUFBQSxFQUdPLFFBQVEsTUFBVTtBQUN2QixXQUFPLEtBQUssUUFBQTtBQUFBLEVBQ2Q7QUFBQTtBQUFBLEVBR08sYUFBYSxNQUFVO0FBQzVCLFdBQU8sS0FBSyxPQUFBO0FBQUEsRUFDZDtBQUFBO0FBQUEsRUFHTywyQkFBMkIsTUFBbUI7QUFDbkQsVUFBTSxVQUFzQztBQUFBLE1BQzFDLE1BQU07QUFBQSxNQUNOLE9BQU87QUFBQSxNQUNQLEtBQUs7QUFBQSxJQUFBO0FBRVAsV0FBTyxJQUFJLEtBQUssZUFBZSxzQkFBc0IsU0FBUyxPQUFPLEVBQUUsT0FBTyxJQUFJLEtBQUssSUFBSSxDQUFDO0FBQUEsRUFDOUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPTyxjQUFjLE9BQWtDO0FB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
150
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlLWRhdGUtYWRhcHRlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvZGF0ZXRpbWUvbmF0aXZlLWRhdGUtYWRhcHRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIgfSBmcm9tICcuLi9jb250cm9sbGVycy50cyc7XG5cbmltcG9ydCB7IERhdGVBZGFwdGVyIH0gZnJvbSAnLi9kYXRlLWFkYXB0ZXIudHMnO1xuXG4vKipcbiAqIE1hdGNoZXMgc3RyaW5ncyB0aGF0IGhhdmUgdGhlIGZvcm0gb2YgYSB2YWxpZCBSRkMgMzMzOSBzdHJpbmdcbiAqIChodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMzMzOSkuIE5vdGUgdGhhdCB0aGUgc3RyaW5nIG1heSBub3QgYWN0dWFsbHkgYmUgYSB2YWxpZCBkYXRlXG4gKiBiZWNhdXNlIHRoZSByZWdleCB3aWxsIG1hdGNoIHN0cmluZ3MgYW4gd2l0aG91dCBvZiBib3VuZHMgbW9udGgsIGRhdGUsIGV0Yy5cbiAqL1xuY29uc3QgSVNPXzg2MDFfUkVHRVggPVxuICAvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9KD86VFxcZHsyfTpcXGR7Mn06XFxkezJ9KD86XFwuXFxkKyk/KD86WnwoPzooPzpcXCt8LSlcXGR7Mn06XFxkezJ9KSk/KT8kLztcblxuZXhwb3J0IGNsYXNzIE5hdGl2ZURhdGVBZGFwdGVyIGV4dGVuZHMgRGF0ZUFkYXB0ZXI8RGF0ZT4ge1xuICAvKiogR2V0cyB0aGUgeWVhciBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldFllYXIoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUuZ2V0RnVsbFllYXIoKTtcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSBtb250aCBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldE1vbnRoKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiBkYXRlLmdldE1vbnRoKCkgKyAxO1xuICB9XG5cbiAgLyoqIEdldHMgdGhlIGRheSBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldERhdGUoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUuZ2V0RGF0ZSgpO1xuICB9XG5cbiAgLyoqIEdldHMgdGhlIGRheSBvZiB0aGUgd2VlayBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldERheU9mV2VlayhkYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZGF0ZS5nZXREYXkoKTtcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSBkYXRlIGluIHRoZSBsb2NhbCBmb3JtYXQuICovXG4gIHB1YmxpYyBnZXRBY2Nlc3NpYmlsaXR5Rm9ybWF0RGF0ZShkYXRlOiBEYXRlIHwgc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBvcHRpb25zOiBJbnRsLkRhdGVUaW1lRm9ybWF0T3B0aW9ucyA9IHtcbiAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICAgIG1vbnRoOiAnbG9uZycsXG4gICAgICBkYXk6ICdudW1lcmljJyxcbiAgICB9O1xuICAgIHJldHVybiBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChTYmJMYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudCwgb3B0aW9ucykuZm9ybWF0KG5ldyBEYXRlKGRhdGUpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIHN0cmluZ3Mgd2l0aCBsZW5ndGggPSAxMiwgZmlsbGVkIHdpdGggdGhlIG5hbWUgb2YgdGhlIG1vbnRocyBzdGFydGluZyBmcm9tIEphbnVhcnksIGluIHRoZSBkb2N1bWVudCBsYW5ndWFnZS5cbiAgICogQHBhcmFtIHN0eWxlIFNlZSBgbW9udGhgIGluIGBEYXRlVGltZUZvcm1hdE9wdGlvbnNgOiBgbG9uZ2AgZm9yIGZ1bGwgbmFtZSwgYHNob3J0YCBmb3Igc2hvcnQgbmFtZSwgYG5hcnJvd2AgZm9yIHNpbmdsZSBsZXR0ZXIsXG4gICAqIEUuZy4sIHdpdGggSmFudWFyeSBpbiBlbi1nYjogYGxvbmdgIHJldHVybnMgXCJKYW51YXJ5XCIsIGBzaG9ydGAgcmV0dXJucyBcIkphblwiLCBgbmFycm93YCByZXR1cm5zIFwiSlwiLlxuICAgKi9cbiAgcHVibGljIGdldE1vbnRoTmFtZXMoc3R5bGU6ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93Jyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChTYmJMYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudCwgeyBtb250aDogc3R5bGUgfSk7XG4gICAgcmV0dXJuIHRoaXMuX3JhbmdlKDEyLCAoaSkgPT4gZm9ybWF0dGVyLmZvcm1hdChuZXcgRGF0ZSgyMDE3LCBpLCAxKSkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBzdHJpbmcgYXJyYXkgd2l0aCBsZW5ndGggPSAzMSwgZmlsbGVkIHdpdGggdGhlIGRheXMgaW4gYSBtb250aCwgc3RhcnRpbmcgZnJvbSAxLiAqL1xuICBwdWJsaWMgZ2V0RGF0ZU5hbWVzKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChTYmJMYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudCwgeyBkYXk6ICdudW1lcmljJyB9KTtcbiAgICByZXR1cm4gdGhpcy5fcmFuZ2UoMzEsIChpKSA9PiBmb3JtYXR0ZXIuZm9ybWF0KG5ldyBEYXRlKDIwMTcsIDAsIGkgKyAxKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBzdHJpbmcgYXJyYXkgd2l0aCBsZW5ndGggPSA3LCBmaWxsZWQgd2l0aCB0aGUgbmFtZSBvZiB0aGUgZGF5cyBpbiBhIHdlZWsgc3RhcnRpbmcgZnJvbSBTdW5kYXksIGluIHRoZSBkb2N1bWVudCBsYW5ndWFnZS5cbiAgICogQHBhcmFtIHN0eWxlIFNlZSBgd2Vla2RheWAgaW4gYERhdGVUaW1lRm9ybWF0T3B0aW9uc2AgLSAnbG9uZycgZm9yIGZ1bGwgbmFtZSwgJ3Nob3J0JyBmb3Igc2hvcnQgbmFtZSwgJ25hcnJvdycgZm9yIHNpbmdsZSBsZXR0ZXI7XG4gICAqIEUuZy4sIHdpdGggTW9uZGF5IGluIGVuLWdiOiBgbG9uZ2AgcmV0dXJucyBcIk1vbmRheVwiLCBgc2hvcnRgIHJldHVybnMgXCJNb25cIiwgYG5hcnJvd2AgcmV0dXJucyBcIk1cIi5cbiAgICovXG4gIHB1YmxpYyBnZXREYXlPZldlZWtOYW1lcyhzdHlsZTogJ2xvbmcnIHwgJ3Nob3J0JyB8ICduYXJyb3cnKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGZvcm1hdHRlciA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFNiYkxhbmd1YWdlQ29udHJvbGxlci5jdXJyZW50LCB7IHdlZWtkYXk6IHN0eWxlIH0pO1xuICAgIHJldHVybiB0aGlzLl9yYW5nZSg3LCAoaSkgPT4gZm9ybWF0dGVyLmZvcm1hdChuZXcgRGF0ZSgyMDE3LCAwLCBpICsgMSkpKTtcbiAgfVxuXG4gIC8qKiBEZWZpbmVzIHdoaWNoIGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsgKDA6IHN1bmRheTsgMTogbW9uZGF5OyBldGMuKS4gKi9cbiAgcHVibGljIGdldEZpcnN0RGF5T2ZXZWVrKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIDE7XG4gIH1cblxuICAvKiogQ2FsY3VsYXRlcyB0aGUgbnVtYmVyIG9mIGRheXMgaW4gYSBtb250aCBnaXZlbiB0aGUgeWVhciBhbmQgdGhlIG1vbnRoLiAqL1xuICBwdWJsaWMgZ2V0TnVtRGF5c0luTW9udGgoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RGF0ZSh0aGlzLl9jcmVhdGVEYXRlV2l0aE92ZXJmbG93KHRoaXMuZ2V0WWVhcihkYXRlKSwgdGhpcy5nZXRNb250aChkYXRlKSwgMCkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgdG9kYXkncyBkYXRlLiAqL1xuICBwdWJsaWMgdG9kYXkoKTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKG5ldyBEYXRlKCkuc2V0SG91cnMoMCwgMCwgMCwgMCkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBuZXcgZGF0ZSwgZ2l2ZW4gZGF5LCBtb250aCBhbmQgeWVhcjsgdGhlIG1ldGhvZCBkb2Vzbid0IGFsbG93IGRhdGUncyBvdmVyZmxvdy4gKi9cbiAgcHVibGljIGNyZWF0ZURhdGUoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyLCBkYXk6IG51bWJlcik6IERhdGUge1xuICAgIC8vIENoZWNrIGZvciBpbnZhbGlkIG1vbnRoIGFuZCBkYXRlIChleGNlcHQgdXBwZXIgYm91bmQgb24gZGF0ZSB3aGljaCB3ZSBoYXZlIHRvIGNoZWNrIGFmdGVyIGNyZWF0aW5nIHRoZSBEYXRlKS5cbiAgICBpZiAobW9udGggPCAxIHx8IG1vbnRoID4gMTIpIHtcbiAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIG1vbnRoIFwiJHttb250aH1cIi4gTW9udGggaGFzIHRvIGJlIGJldHdlZW4gMSBhbmQgMTIuYCk7XG4gICAgfSBlbHNlIGlmIChkYXkgPCAxKSB7XG4gICAgICB0aHJvdyBFcnJvcihgSW52YWxpZCBkYXkgXCIke2RheX1cIi4gRGF5IGhhcyB0byBiZSBncmVhdGVyIHRoYW4gMC5gKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9jcmVhdGVEYXRlV2l0aE92ZXJmbG93KHllYXIsIG1vbnRoIC0gMSwgZGF5KTtcbiAgICAvLyBDaGVjayB0aGF0IHRoZSBkYXRlIHdhc24ndCBhYm92ZSB0aGUgdXBwZXIgYm91bmQgZm9yIHRoZSBtb250aCwgY2F1c2luZyB0aGUgbW9udGggdG8gb3ZlcmZsb3dcbiAgICBpZiAocmVzdWx0LmdldE1vbnRoKCkgKyAxICE9PSBtb250aCkge1xuICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgZGF5IFwiJHtkYXl9XCIgZm9yIG1vbnRoIFwiJHttb250aH1cIi5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBgb2JqYCBpcyBhIERhdGUuICovXG4gIHB1YmxpYyBpc0RhdGVJbnN0YW5jZShvYmo6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBvYmogaW5zdGFuY2VvZiBEYXRlO1xuICB9XG5cbiAgLyoqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBgZGF0ZWAgaXMgYSB2YWxpZCBEYXRlLiAqL1xuICBwdWJsaWMgaXNWYWxpZChkYXRlOiBEYXRlIHwgbnVsbCB8IHVuZGVmaW5lZCk6IGRhdGUgaXMgRGF0ZSB7XG4gICAgcmV0dXJuICEhZGF0ZSAmJiAhaXNOYU4oZGF0ZS52YWx1ZU9mKCkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBuZXcgZGF0ZSBieSBjbG9uaW5nIHRoZSBnaXZlbiBvbmUuICovXG4gIHB1YmxpYyBjbG9uZShkYXRlOiBEYXRlKTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUudmFsdWVPZigpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGRhdGUgYWRkaW5nIHRoZSBudW1iZXIgb2YgcHJvdmlkZWQgYHllYXJzYCB0byB0aGUgcHJvdmlkZWQgYGRhdGVgLlxuICAgKiBAcGFyYW0gZGF0ZSBUaGUgc3RhcnRpbmcgZGF0ZS5cbiAgICogQHBhcmFtIHllYXJzIFRoZSBudW1iZXIgb2YgeWVhcnMgdG8gYWRkLlxuICAgKi9cbiAgcHVibGljIGFkZENhbGVuZGFyWWVhcnMoZGF0ZTogRGF0ZSwgeWVhcnM6IG51bWJlcik6IERhdGUge1xuICAgIHJldHVybiB0aGlzLmFkZENhbGVuZGFyTW9udGhzKGRhdGUsIHllYXJzICogMTIpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgbW9udGhzYCB0byB0aGUgcHJvdmlkZWQgYGRhdGVgLlxuICAgKiBJZiB0aGUgY2FsY3VsYXRlZCBtb250aCBoYXMgZmV3ZXIgZGF5cyB0aGFuIHRoZSBvcmlnaW5hbCBvbmUsIHRoZSBkYXRlIGlzIHNldCB0byB0aGUgbGFzdCBkYXkgb2YgdGhlIG1vbnRoLlxuICAgKiBFLmcuLCB3aXRoIGBkYXRlYCA9IG5ldyBEYXRlKDIwMjIsIDAsIDMxKSBhbmQgYG1vbnRoc2AgPSAxLCBpdCByZXR1cm5zIG5ldyBEYXRlKDIwMjIsIDEsIDI4KS5cbiAgICovXG4gIHB1YmxpYyBhZGRDYWxlbmRhck1vbnRocyhkYXRlOiBEYXRlLCBtb250aHM6IG51bWJlcik6IERhdGUge1xuICAgIGNvbnN0IHRhcmdldE1vbnRoID0gZGF0ZS5nZXRNb250aCgpICsgbW9udGhzO1xuICAgIGNvbnN0IGRhdGVXaXRoQ29ycmVjdE1vbnRoID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCB0YXJnZXRNb250aCwgMSwgMCwgMCwgMCwgMCk7XG4gICAgY29uc3QgZGF5c0luTW9udGggPSB0aGlzLmdldE51bURheXNJbk1vbnRoKGRhdGVXaXRoQ29ycmVjdE1vbnRoKTtcbiAgICAvLyBBZGFwdCB0aGUgbGFzdCBkYXkgb2YgbW9udGggZm9yIHNob3J0ZXIgbW9udGhzXG4gICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMuY2xvbmUoZGF0ZSkuc2V0TW9udGgodGFyZ2V0TW9udGgsIE1hdGgubWluKGRheXNJbk1vbnRoLCBkYXRlLmdldERhdGUoKSkpKTtcbiAgfVxuXG4gIC8qKiBDcmVhdGVzIGEgbmV3IGRhdGUgYnkgYWRkaW5nIHRoZSBudW1iZXIgb2YgcHJvdmlkZWQgYGRheXNgIHRvIHRoZSBwcm92aWRlZCBgZGF0ZWAuICovXG4gIHB1YmxpYyBhZGRDYWxlbmRhckRheXMoZGF0ZTogRGF0ZSwgZGF5czogbnVtYmVyKTogRGF0ZSB7XG4gICAgY29uc3QgdGFyZ2V0RGF5ID0gZGF0ZS5nZXREYXRlKCkgKyBkYXlzO1xuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSwgdGFyZ2V0RGF5LCAwLCAwLCAwLCAwKTtcbiAgfVxuXG4gIC8qKiBDcmVhdGVzIGEgRGF0ZSBmcm9tIGEgdmFsaWQgaW5wdXQgKERhdGUgb3IgSVNPIHN0cmluZykuICovXG4gIHB1YmxpYyBvdmVycmlkZSBkZXNlcmlhbGl6ZShkYXRlOiBEYXRlIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IERhdGUgfCBudWxsIHtcbiAgICBpZiAodHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAoIWRhdGUpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9IGVsc2UgaWYgKElTT184NjAxX1JFR0VYLnRlc3QoZGF0ZSkpIHtcbiAgICAgICAgLy8gVGhlIGBEYXRlYCBjb25zdHJ1Y3RvciBhY2NlcHRzIGZvcm1hdHMgb3RoZXIgdGhhbiBJU08gODYwMSwgc28gd2UgbmVlZCB0byBtYWtlIHN1cmUgdGhlXG4gICAgICAgIC8vIHN0cmluZyBpcyB0aGUgcmlnaHQgZm9ybWF0IGZpcnN0LlxuICAgICAgICByZXR1cm4gdGhpcy5nZXRWYWxpZERhdGVPck51bGwobmV3IERhdGUoZGF0ZS5pbmNsdWRlcygnVCcpID8gZGF0ZSA6IGRhdGUgKyAnVDAwOjAwOjAwJykpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gc3VwZXIuZGVzZXJpYWxpemUoZGF0ZSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgaW52YWxpZCgpOiBEYXRlIHtcbiAgICByZXR1cm4gbmV3IERhdGUoTmFOKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGFycmF5IHdpdGggdGhlIGdpdmVuIGxlbmd0aCBhbmQgZmlsbHMgaXQgYnkgbWFwcGluZyB3aXRoIHRoZSBwcm92aWRlZCBmdW5jdGlvbi5cbiAgICogQHBhcmFtIGxlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBhcnJheSB0byBiZSBjcmVhdGVkLlxuICAgKiBAcGFyYW0gdmFsdWVGdW5jdGlvbiBUaGUgZnVuY3Rpb24gb2YgYXJyYXkncyBpbmRleCB1c2VkIHRvIGZpbGwgdGhlIGFycmF5LlxuICAgKi9cbiAgcHJpdmF0ZSBfcmFuZ2U8VD4obGVuZ3RoOiBudW1iZXIsIHZhbHVlRnVuY3Rpb246IChpbmRleDogbnVtYmVyKSA9PiBUKTogVFtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aCB9KS5tYXAoKF8sIGkpID0+IHZhbHVlRnVuY3Rpb24oaSkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBkYXRlIGJ1dCBhbGxvd3MgdGhlIG1vbnRoIGFuZCBkYXRlIHRvIG92ZXJmbG93LiAqL1xuICBwcml2YXRlIF9jcmVhdGVEYXRlV2l0aE92ZXJmbG93KHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlciwgZGF0ZTogbnVtYmVyKTogRGF0ZSB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IERhdGUoeWVhciwgbW9udGgsIGRhdGUpO1xuICAgIC8vIFdlIG5lZWQgdG8gY29ycmVjdCBmb3IgdGhlIGZhY3QgdGhhdCBKUyBuYXRpdmUgRGF0ZSB0cmVhdHMgeWVhcnMgaW4gcmFuZ2UgWzAsIDk5XSBhc1xuICAgIC8vIGFiYnJldmlhdGlvbnMgZm9yIDE5eHguXG4gICAgaWYgKHllYXIgPj0gMCAmJiB5ZWFyIDwgMTAwKSB7XG4gICAgICByZXN1bHQuc2V0RnVsbFllYXIodGhpcy5nZXRZZWFyKHJlc3VsdCkgLSAxOTAwKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgZGVmYXVsdERhdGVBZGFwdGVyID0gbmV3IE5hdGl2ZURhdGVBZGFwdGVyKCk7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFTQSxNQUFNLGlCQUNKO0FBRUksTUFBTywwQkFBMEIsWUFBaUI7QUFBQTtBQUFBLEVBRS9DLFFBQVEsTUFBVTtBQUN2QixXQUFPLEtBQUssWUFBQTtBQUFBLEVBQ2Q7QUFBQTtBQUFBLEVBR08sU0FBUyxNQUFVO0FBQ3hCLFdBQU8sS0FBSyxhQUFhO0FBQUEsRUFDM0I7QUFBQTtBQUFBLEVBR08sUUFB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
@@ -1,17 +1,15 @@
1
1
  import { DateAdapter } from './date-adapter.ts';
2
- export declare class NativeDateAdapter extends DateAdapter<Date> {
3
- private readonly _cutoffYearOffset;
4
- constructor(cutoffYearOffset?: number);
2
+ export declare class TemporalDateAdapter extends DateAdapter<Temporal.PlainDate> {
5
3
  /** Gets the year of the input date. */
6
- getYear(date: Date): number;
4
+ getYear(date: Temporal.PlainDate): number;
7
5
  /** Gets the month of the input date. */
8
- getMonth(date: Date): number;
6
+ getMonth(date: Temporal.PlainDate): number;
9
7
  /** Gets the day of the input date. */
10
- getDate(date: Date): number;
8
+ getDate(date: Temporal.PlainDate): number;
11
9
  /** Gets the day of the week of the input date. */
12
- getDayOfWeek(date: Date): number;
10
+ getDayOfWeek(date: Temporal.PlainDate): number;
13
11
  /** Gets the date in the local format. */
14
- getAccessibilityFormatDate(date: Date | string): string;
12
+ getAccessibilityFormatDate(date: Temporal.PlainDate | string): string;
15
13
  /**
16
14
  * Creates an array of strings with length = 12, filled with the name of the months starting from January, in the document language.
17
15
  * @param style See `month` in `DateTimeFormatOptions`: `long` for full name, `short` for short name, `narrow` for single letter,
@@ -29,44 +27,41 @@ export declare class NativeDateAdapter extends DateAdapter<Date> {
29
27
  /** Defines which is the first day of the week (0: sunday; 1: monday; etc.). */
30
28
  getFirstDayOfWeek(): number;
31
29
  /** Calculates the number of days in a month given the year and the month. */
32
- getNumDaysInMonth(date: Date): number;
30
+ getNumDaysInMonth(date: Temporal.PlainDate): number;
33
31
  /** Creates today's date. */
34
- today(): Date;
32
+ today(): Temporal.PlainDate;
35
33
  /** Creates a new date, given day, month and year; the method doesn't allow date's overflow. */
36
- createDate(year: number, month: number, date: number): Date;
37
- /** Checks whether the given `obj` is a Date. */
34
+ createDate(year: number, month: number, day: number): Temporal.PlainDate;
35
+ /** Checks whether the given `obj` is a Temporal.PlainDate. */
38
36
  isDateInstance(obj: any): boolean;
39
- /** Checks whether the given `date` is a valid Date. */
40
- isValid(date: Date | null | undefined): date is Date;
37
+ /** Checks whether the given `date` is a valid Temporal.PlainDate. */
38
+ isValid(date: Temporal.PlainDate | null | undefined): date is Temporal.PlainDate;
41
39
  /** Creates a new date by cloning the given one. */
42
- clone(date: Date): Date;
40
+ clone(date: Temporal.PlainDate): Temporal.PlainDate;
43
41
  /**
44
42
  * Creates a new date adding the number of provided `years` to the provided `date`.
45
43
  * @param date The starting date.
46
44
  * @param years The number of years to add.
47
45
  */
48
- addCalendarYears(date: Date, years: number): Date;
46
+ addCalendarYears(date: Temporal.PlainDate, years: number): Temporal.PlainDate;
49
47
  /**
50
48
  * Creates a new date adding the number of provided `months` to the provided `date`.
51
49
  * If the calculated month has fewer days than the original one, the date is set to the last day of the month.
52
- * E.g., with `date` = new Date(2022, 0, 31) and `months` = 1, it returns new Date(2022, 1, 28).
50
+ * E.g., with `date` = new Temporal.PlainDate(2022, 0, 31) and `months` = 1, it returns new Temporal.PlainDate(2022, 1, 28).
53
51
  */
54
- addCalendarMonths(date: Date, months: number): Date;
52
+ addCalendarMonths(date: Temporal.PlainDate, months: number): Temporal.PlainDate;
55
53
  /** Creates a new date by adding the number of provided `days` to the provided `date`. */
56
- addCalendarDays(date: Date, days: number): Date;
57
- /** Creates a Date from a valid input (Date or ISO string). */
58
- deserialize(date: Date | string | null | undefined): Date | null;
59
- /** Returns the right format for the `valueAsDate` property. */
60
- parse(value: string | null | undefined): Date | null;
61
- invalid(): Date;
54
+ addCalendarDays(date: Temporal.PlainDate, days: number): Temporal.PlainDate;
55
+ /** Creates a Temporal.PlainDate from a valid input (Temporal.PlainDate or ISO string). */
56
+ deserialize(date: Temporal.PlainDate | string | null | undefined): Temporal.PlainDate | null;
57
+ invalid(): Temporal.PlainDate;
58
+ toIso8601(date: Temporal.PlainDate): string;
62
59
  /**
63
60
  * Creates an array with the given length and fills it by mapping with the provided function.
64
61
  * @param length The length of the array to be created.
65
62
  * @param valueFunction The function of array's index used to fill the array.
66
63
  */
67
64
  private _range;
68
- /** Creates a date but allows the month and date to overflow. */
69
- private _createDateWithOverflow;
70
65
  }
71
- export declare const defaultDateAdapter: NativeDateAdapter;
72
- //# sourceMappingURL=native-date-adapter.d.ts.map
66
+ export declare const temporalDateAdapter: TemporalDateAdapter;
67
+ //# sourceMappingURL=temporal-date-adapter.d.ts.map