@sbb-esta/lyne-elements 1.2.1 → 1.3.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 (231) hide show
  1. package/button/common/button-common.d.ts.map +1 -1
  2. package/button/common.js +20 -20
  3. package/button/mini-button/mini-button.d.ts +0 -1
  4. package/button/mini-button/mini-button.d.ts.map +1 -1
  5. package/button/mini-button.js +16 -18
  6. package/calendar/calendar.d.ts.map +1 -1
  7. package/calendar.js +22 -20
  8. package/checkbox/checkbox/checkbox.d.ts +0 -1
  9. package/checkbox/checkbox/checkbox.d.ts.map +1 -1
  10. package/checkbox/checkbox-group/checkbox-group.d.ts +0 -1
  11. package/checkbox/checkbox-group/checkbox-group.d.ts.map +1 -1
  12. package/checkbox/checkbox-group.js +5 -3
  13. package/checkbox/checkbox-panel/checkbox-panel.d.ts +0 -1
  14. package/checkbox/checkbox-panel/checkbox-panel.d.ts.map +1 -1
  15. package/checkbox/checkbox-panel.js +12 -11
  16. package/checkbox/checkbox.js +12 -11
  17. package/core/datetime/date-adapter.d.ts +23 -13
  18. package/core/datetime/date-adapter.d.ts.map +1 -1
  19. package/core/datetime/native-date-adapter.d.ts +0 -1
  20. package/core/datetime/native-date-adapter.d.ts.map +1 -1
  21. package/core/datetime.js +23 -23
  22. package/core/decorators/host-attributes.d.ts +1 -1
  23. package/core/decorators/slot-state.d.ts +18 -0
  24. package/core/decorators/slot-state.d.ts.map +1 -0
  25. package/core/decorators.d.ts +1 -0
  26. package/core/decorators.d.ts.map +1 -1
  27. package/core/decorators.js +15 -9
  28. package/core/styles/mixins/buttons.scss +15 -48
  29. package/custom-elements.json +463 -302
  30. package/datepicker/common/datepicker-button.d.ts +5 -5
  31. package/datepicker/common/datepicker-button.d.ts.map +1 -1
  32. package/datepicker/common.js +21 -20
  33. package/datepicker/datepicker/datepicker.d.ts +55 -38
  34. package/datepicker/datepicker/datepicker.d.ts.map +1 -1
  35. package/datepicker/datepicker-next-day/datepicker-next-day.d.ts +1 -1
  36. package/datepicker/datepicker-next-day/datepicker-next-day.d.ts.map +1 -1
  37. package/datepicker/datepicker-next-day.js +16 -16
  38. package/datepicker/datepicker-previous-day/datepicker-previous-day.d.ts +1 -1
  39. package/datepicker/datepicker-previous-day/datepicker-previous-day.d.ts.map +1 -1
  40. package/datepicker/datepicker-previous-day.js +14 -14
  41. package/datepicker/datepicker-toggle/datepicker-toggle.d.ts +1 -1
  42. package/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
  43. package/datepicker/datepicker-toggle.js +25 -23
  44. package/datepicker/datepicker.js +147 -181
  45. package/development/button/common/button-common.d.ts.map +1 -1
  46. package/development/button/common.js +30 -25
  47. package/development/button/mini-button/mini-button.d.ts +0 -1
  48. package/development/button/mini-button/mini-button.d.ts.map +1 -1
  49. package/development/button/mini-button.js +17 -55
  50. package/development/calendar/calendar.d.ts.map +1 -1
  51. package/development/calendar.js +4 -2
  52. package/development/checkbox/checkbox/checkbox.d.ts +0 -1
  53. package/development/checkbox/checkbox/checkbox.d.ts.map +1 -1
  54. package/development/checkbox/checkbox-group/checkbox-group.d.ts +0 -1
  55. package/development/checkbox/checkbox-group/checkbox-group.d.ts.map +1 -1
  56. package/development/checkbox/checkbox-group.js +6 -5
  57. package/development/checkbox/checkbox-panel/checkbox-panel.d.ts +0 -1
  58. package/development/checkbox/checkbox-panel/checkbox-panel.d.ts.map +1 -1
  59. package/development/checkbox/checkbox-panel.js +5 -5
  60. package/development/checkbox/checkbox.js +5 -5
  61. package/development/core/datetime/date-adapter.d.ts +23 -13
  62. package/development/core/datetime/date-adapter.d.ts.map +1 -1
  63. package/development/core/datetime/native-date-adapter.d.ts +0 -1
  64. package/development/core/datetime/native-date-adapter.d.ts.map +1 -1
  65. package/development/core/datetime.js +28 -26
  66. package/development/core/decorators/host-attributes.d.ts +1 -1
  67. package/development/core/decorators/slot-state.d.ts +18 -0
  68. package/development/core/decorators/slot-state.d.ts.map +1 -0
  69. package/development/core/decorators.d.ts +1 -0
  70. package/development/core/decorators.d.ts.map +1 -1
  71. package/development/core/decorators.js +11 -2
  72. package/development/datepicker/common/datepicker-button.d.ts +5 -5
  73. package/development/datepicker/common/datepicker-button.d.ts.map +1 -1
  74. package/development/datepicker/common.js +10 -9
  75. package/development/datepicker/datepicker/datepicker.d.ts +55 -38
  76. package/development/datepicker/datepicker/datepicker.d.ts.map +1 -1
  77. package/development/datepicker/datepicker-next-day/datepicker-next-day.d.ts +1 -1
  78. package/development/datepicker/datepicker-next-day/datepicker-next-day.d.ts.map +1 -1
  79. package/development/datepicker/datepicker-next-day.js +14 -54
  80. package/development/datepicker/datepicker-previous-day/datepicker-previous-day.d.ts +1 -1
  81. package/development/datepicker/datepicker-previous-day/datepicker-previous-day.d.ts.map +1 -1
  82. package/development/datepicker/datepicker-previous-day.js +14 -54
  83. package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts +1 -1
  84. package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
  85. package/development/datepicker/datepicker-toggle.js +16 -10
  86. package/development/datepicker/datepicker.js +134 -159
  87. package/development/dialog/dialog.js +1 -1
  88. package/development/file-selector/file-selector.d.ts +0 -1
  89. package/development/file-selector/file-selector.d.ts.map +1 -1
  90. package/development/file-selector.js +6 -5
  91. package/development/form-field/form-field/form-field.d.ts +1 -2
  92. package/development/form-field/form-field/form-field.d.ts.map +1 -1
  93. package/development/form-field/form-field-clear/form-field-clear.d.ts.map +1 -1
  94. package/development/form-field/form-field-clear.js +15 -51
  95. package/development/form-field/form-field.js +8 -7
  96. package/development/link/common/link-common.d.ts.map +1 -1
  97. package/development/link/common.js +6 -7
  98. package/development/link-list/link-list.d.ts +0 -1
  99. package/development/link-list/link-list.d.ts.map +1 -1
  100. package/development/link-list.js +5 -5
  101. package/development/map-container.js +5 -2
  102. package/development/navigation/navigation-list/navigation-list.d.ts +0 -1
  103. package/development/navigation/navigation-list/navigation-list.d.ts.map +1 -1
  104. package/development/navigation/navigation-list.js +5 -5
  105. package/development/navigation/navigation-section/navigation-section.d.ts +0 -1
  106. package/development/navigation/navigation-section/navigation-section.d.ts.map +1 -1
  107. package/development/navigation/navigation-section.js +6 -6
  108. package/development/notification/notification.d.ts +5 -16
  109. package/development/notification/notification.d.ts.map +1 -1
  110. package/development/notification.js +8 -9
  111. package/development/option/option/option.d.ts.map +1 -1
  112. package/development/option/option.js +5 -5
  113. package/development/popover/popover/popover.d.ts +3 -1
  114. package/development/popover/popover/popover.d.ts.map +1 -1
  115. package/development/popover/popover-trigger.js +14 -49
  116. package/development/popover/popover.js +11 -4
  117. package/development/radio-button/radio-button/radio-button.d.ts +0 -1
  118. package/development/radio-button/radio-button/radio-button.d.ts.map +1 -1
  119. package/development/radio-button/radio-button-group/radio-button-group.d.ts +0 -1
  120. package/development/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  121. package/development/radio-button/radio-button-group.js +6 -6
  122. package/development/radio-button/radio-button-panel/radio-button-panel.d.ts +0 -1
  123. package/development/radio-button/radio-button-panel/radio-button-panel.d.ts.map +1 -1
  124. package/development/radio-button/radio-button-panel.js +4 -7
  125. package/development/radio-button/radio-button.js +4 -7
  126. package/development/selection-expansion-panel/selection-expansion-panel.d.ts +0 -1
  127. package/development/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
  128. package/development/selection-expansion-panel.js +6 -5
  129. package/development/skiplink-list/skiplink-list.d.ts +0 -1
  130. package/development/skiplink-list/skiplink-list.d.ts.map +1 -1
  131. package/development/skiplink-list.js +5 -5
  132. package/development/status/status.d.ts +0 -1
  133. package/development/status/status.d.ts.map +1 -1
  134. package/development/status.js +5 -5
  135. package/development/stepper/stepper/stepper.d.ts +3 -1
  136. package/development/stepper/stepper/stepper.d.ts.map +1 -1
  137. package/development/stepper/stepper.js +3 -2
  138. package/development/tabs/tab-group/tab-group.d.ts +3 -1
  139. package/development/tabs/tab-group/tab-group.d.ts.map +1 -1
  140. package/development/tabs/tab-group.js +3 -2
  141. package/development/tabs/tab-label/tab-label.d.ts +0 -1
  142. package/development/tabs/tab-label/tab-label.d.ts.map +1 -1
  143. package/development/tabs/tab-label.js +5 -5
  144. package/development/tag/tag/tag.d.ts +0 -1
  145. package/development/tag/tag/tag.d.ts.map +1 -1
  146. package/development/tag/tag.js +6 -5
  147. package/development/teaser/teaser.d.ts +0 -1
  148. package/development/teaser/teaser.d.ts.map +1 -1
  149. package/development/teaser.js +5 -5
  150. package/development/toast/toast.d.ts +1 -2
  151. package/development/toast/toast.d.ts.map +1 -1
  152. package/development/toast.js +10 -8
  153. package/development/toggle/toggle-option/toggle-option.d.ts +0 -1
  154. package/development/toggle/toggle-option/toggle-option.d.ts.map +1 -1
  155. package/development/toggle/toggle-option.js +6 -6
  156. package/development/toggle-check/toggle-check.d.ts +0 -1
  157. package/development/toggle-check/toggle-check.d.ts.map +1 -1
  158. package/development/toggle-check.js +5 -5
  159. package/dialog/dialog.js +1 -1
  160. package/file-selector/file-selector.d.ts +0 -1
  161. package/file-selector/file-selector.d.ts.map +1 -1
  162. package/file-selector.js +17 -15
  163. package/form-field/form-field/form-field.d.ts +1 -2
  164. package/form-field/form-field/form-field.d.ts.map +1 -1
  165. package/form-field/form-field-clear/form-field-clear.d.ts.map +1 -1
  166. package/form-field/form-field-clear.js +17 -18
  167. package/form-field/form-field.js +16 -14
  168. package/link/common/link-common.d.ts.map +1 -1
  169. package/link/common.js +9 -9
  170. package/link-list/link-list.d.ts +0 -1
  171. package/link-list/link-list.d.ts.map +1 -1
  172. package/link-list.js +8 -7
  173. package/map-container.js +1 -1
  174. package/navigation/navigation-list/navigation-list.d.ts +0 -1
  175. package/navigation/navigation-list/navigation-list.d.ts.map +1 -1
  176. package/navigation/navigation-list.js +9 -8
  177. package/navigation/navigation-section/navigation-section.d.ts +0 -1
  178. package/navigation/navigation-section/navigation-section.d.ts.map +1 -1
  179. package/navigation/navigation-section.js +10 -9
  180. package/notification/notification.d.ts +5 -16
  181. package/notification/notification.d.ts.map +1 -1
  182. package/notification.js +9 -9
  183. package/option/option/option.d.ts.map +1 -1
  184. package/option/option.js +6 -5
  185. package/package.json +1 -1
  186. package/popover/popover/popover.d.ts +3 -1
  187. package/popover/popover/popover.d.ts.map +1 -1
  188. package/popover/popover-trigger.js +13 -13
  189. package/popover/popover.js +55 -48
  190. package/radio-button/radio-button/radio-button.d.ts +0 -1
  191. package/radio-button/radio-button/radio-button.d.ts.map +1 -1
  192. package/radio-button/radio-button-group/radio-button-group.d.ts +0 -1
  193. package/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  194. package/radio-button/radio-button-group.js +7 -6
  195. package/radio-button/radio-button-panel/radio-button-panel.d.ts +0 -1
  196. package/radio-button/radio-button-panel/radio-button-panel.d.ts.map +1 -1
  197. package/radio-button/radio-button-panel.js +12 -14
  198. package/radio-button/radio-button.js +7 -9
  199. package/selection-expansion-panel/selection-expansion-panel.d.ts +0 -1
  200. package/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
  201. package/selection-expansion-panel.js +15 -13
  202. package/skiplink-list/skiplink-list.d.ts +0 -1
  203. package/skiplink-list/skiplink-list.d.ts.map +1 -1
  204. package/skiplink-list.js +4 -3
  205. package/status/status.d.ts +0 -1
  206. package/status/status.d.ts.map +1 -1
  207. package/status.js +9 -8
  208. package/stepper/stepper/stepper.d.ts +3 -1
  209. package/stepper/stepper/stepper.d.ts.map +1 -1
  210. package/stepper/stepper.js +7 -6
  211. package/tabs/tab-group/tab-group.d.ts +3 -1
  212. package/tabs/tab-group/tab-group.d.ts.map +1 -1
  213. package/tabs/tab-group.js +14 -13
  214. package/tabs/tab-label/tab-label.d.ts +0 -1
  215. package/tabs/tab-label/tab-label.d.ts.map +1 -1
  216. package/tabs/tab-label.js +4 -3
  217. package/tag/tag/tag.d.ts +0 -1
  218. package/tag/tag/tag.d.ts.map +1 -1
  219. package/tag/tag.js +6 -4
  220. package/teaser/teaser.d.ts +0 -1
  221. package/teaser/teaser.d.ts.map +1 -1
  222. package/teaser.js +4 -3
  223. package/toast/toast.d.ts +1 -2
  224. package/toast/toast.d.ts.map +1 -1
  225. package/toast.js +15 -12
  226. package/toggle/toggle-option/toggle-option.d.ts +0 -1
  227. package/toggle/toggle-option/toggle-option.d.ts.map +1 -1
  228. package/toggle/toggle-option.js +12 -11
  229. package/toggle-check/toggle-check.d.ts +0 -1
  230. package/toggle-check/toggle-check.d.ts.map +1 -1
  231. package/toggle-check.js +4 -3
@@ -1,6 +1,6 @@
1
1
  import { LitElement, html, nothing } from "lit";
2
2
  import { customElement } from "lit/decorators.js";
3
- import { SbbSlotStateController } from "../core/controllers.js";
3
+ import { slotState } from "../core/decorators.js";
4
4
  import { EventEmitter } from "../core/eventing.js";
5
5
  import { SbbPanelMixin, SbbUpdateSchedulerMixin, panelCommonStyle } from "../core/mixins.js";
6
6
  import { SbbCheckboxCommonElementMixin, checkboxCommonStyle } from "./common.js";
@@ -20,13 +20,12 @@ let SbbCheckboxPanelElement = class extends SbbPanelMixin(
20
20
  SbbCheckboxCommonElementMixin(SbbUpdateSchedulerMixin(LitElement))
21
21
  ) {
22
22
  constructor() {
23
- super();
23
+ super(...arguments);
24
24
  this.stateChange = new EventEmitter(
25
25
  this,
26
26
  SbbCheckboxPanelElement.events.stateChange,
27
27
  { bubbles: true }
28
28
  );
29
- new SbbSlotStateController(this);
30
29
  }
31
30
  async willUpdate(changedProperties) {
32
31
  super.willUpdate(changedProperties);
@@ -78,9 +77,10 @@ SbbCheckboxPanelElement.events = {
78
77
  panelConnected: "panelConnected"
79
78
  };
80
79
  SbbCheckboxPanelElement = __decorateClass([
81
- customElement("sbb-checkbox-panel")
80
+ customElement("sbb-checkbox-panel"),
81
+ slotState()
82
82
  ], SbbCheckboxPanelElement);
83
83
  export {
84
84
  SbbCheckboxPanelElement
85
85
  };
86
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtcGFuZWwuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jaGVja2JveC9jaGVja2JveC1wYW5lbC9jaGVja2JveC1wYW5lbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBMaXRFbGVtZW50LFxuICBub3RoaW5nLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgU2JiU2xvdFN0YXRlQ29udHJvbGxlciB9IGZyb20gJy4uLy4uL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnLi4vLi4vY29yZS9ldmVudGluZy5qcyc7XG5pbXBvcnQgdHlwZSB7XG4gIFNiYkNoZWNrZWRTdGF0ZUNoYW5nZSxcbiAgU2JiRGlzYWJsZWRTdGF0ZUNoYW5nZSxcbiAgU2JiU3RhdGVDaGFuZ2UsXG59IGZyb20gJy4uLy4uL2NvcmUvaW50ZXJmYWNlcy90eXBlcy5qcyc7XG5pbXBvcnQgeyBwYW5lbENvbW1vblN0eWxlLCBTYmJQYW5lbE1peGluLCBTYmJVcGRhdGVTY2hlZHVsZXJNaXhpbiB9IGZyb20gJy4uLy4uL2NvcmUvbWl4aW5zLmpzJztcbmltcG9ydCB7IGNoZWNrYm94Q29tbW9uU3R5bGUsIFNiYkNoZWNrYm94Q29tbW9uRWxlbWVudE1peGluIH0gZnJvbSAnLi4vY29tbW9uLmpzJztcblxuaW1wb3J0ICcuLi8uLi9zY3JlZW4tcmVhZGVyLW9ubHkuanMnO1xuaW1wb3J0ICcuLi8uLi92aXN1YWwtY2hlY2tib3guanMnO1xuXG5leHBvcnQgdHlwZSBTYmJDaGVja2JveFBhbmVsU3RhdGVDaGFuZ2UgPSBFeHRyYWN0PFxuICBTYmJTdGF0ZUNoYW5nZSxcbiAgU2JiRGlzYWJsZWRTdGF0ZUNoYW5nZSB8IFNiYkNoZWNrZWRTdGF0ZUNoYW5nZVxuPjtcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhIGNoZWNrYm94IGVuaGFuY2VkIHdpdGggc2VsZWN0aW9uIHBhbmVsIGRlc2lnbi5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBjb250ZW50IHRvIHRoZSBgc2JiLWNoZWNrYm94YC5cbiAqIEBzbG90IHN1YnRleHQgLSBTbG90IHVzZWQgdG8gcmVuZGVyIGEgc3VidGV4dCB1bmRlciB0aGUgbGFiZWwgKG9ubHkgdmlzaWJsZSB3aXRoaW4gYSBzZWxlY3Rpb24gcGFuZWwpLlxuICogQHNsb3Qgc3VmZml4IC0gU2xvdCB1c2VkIHRvIHJlbmRlciBhZGRpdGlvbmFsIGNvbnRlbnQgYWZ0ZXIgdGhlIGxhYmVsIChvbmx5IHZpc2libGUgd2l0aGluIGEgc2VsZWN0aW9uIHBhbmVsKS5cbiAqIEBzbG90IGJhZGdlIC0gVXNlIHRoaXMgc2xvdCB0byBwcm92aWRlIGEgYHNiYi1jYXJkLWJhZGdlYCAob3B0aW9uYWwpLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gZGlkQ2hhbmdlIC0gRGVwcmVjYXRlZC4gdXNlZCBmb3IgUmVhY3QuIFdpbGwgcHJvYmFibHkgYmUgcmVtb3ZlZCBvbmNlIFJlYWN0IDE5IGlzIGF2YWlsYWJsZS5cbiAqIEBldmVudCB7RXZlbnR9IGNoYW5nZSAtIEV2ZW50IGZpcmVkIG9uIGNoYW5nZS5cbiAqIEBldmVudCB7SW5wdXRFdmVudH0gaW5wdXQgLSBFdmVudCBmaXJlZCBvbiBpbnB1dC5cbiAqL1xuQGN1c3RvbUVsZW1lbnQoJ3NiYi1jaGVja2JveC1wYW5lbCcpXG5leHBvcnQgY2xhc3MgU2JiQ2hlY2tib3hQYW5lbEVsZW1lbnQgZXh0ZW5kcyBTYmJQYW5lbE1peGluKFxuICBTYmJDaGVja2JveENvbW1vbkVsZW1lbnRNaXhpbihTYmJVcGRhdGVTY2hlZHVsZXJNaXhpbihMaXRFbGVtZW50KSksXG4pIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW2NoZWNrYm94Q29tbW9uU3R5bGUsIHBhbmVsQ29tbW9uU3R5bGVdO1xuXG4gIC8vIEZJWE1FIHVzaW5nIC4uLnN1cGVyLmV2ZW50cyByZXF1aXJlczogaHR0cHM6Ly9naXRodWIuY29tL3NiYi1kZXNpZ24tc3lzdGVtcy9seW5lLWNvbXBvbmVudHMvaXNzdWVzLzI2MDBcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHMgPSB7XG4gICAgZGlkQ2hhbmdlOiAnZGlkQ2hhbmdlJyxcbiAgICBzdGF0ZUNoYW5nZTogJ3N0YXRlQ2hhbmdlJyxcbiAgICBwYW5lbENvbm5lY3RlZDogJ3BhbmVsQ29ubmVjdGVkJyxcbiAgfSBhcyBjb25zdDtcblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIEludGVybmFsIGV2ZW50IHRoYXQgZW1pdHMgd2hlbmV2ZXIgdGhlIHN0YXRlIG9mIHRoZSBjaGVja2JveFxuICAgKiBpbiByZWxhdGlvbiB0byB0aGUgcGFyZW50IHNlbGVjdGlvbiBwYW5lbCBjaGFuZ2VzLlxuICAgKi9cbiAgcHJvdGVjdGVkIHN0YXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8U2JiQ2hlY2tib3hQYW5lbFN0YXRlQ2hhbmdlPiA9IG5ldyBFdmVudEVtaXR0ZXIoXG4gICAgdGhpcyxcbiAgICBTYmJDaGVja2JveFBhbmVsRWxlbWVudC5ldmVudHMuc3RhdGVDaGFuZ2UsXG4gICAgeyBidWJibGVzOiB0cnVlIH0sXG4gICk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgbmV3IFNiYlNsb3RTdGF0ZUNvbnRyb2xsZXIodGhpcyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgYXN5bmMgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2NoZWNrZWQnKSkge1xuICAgICAgLy8gQXMgU2JiRm9ybUFzc29jaWF0ZWRDaGVja2JveE1peGluIGRvZXMgbm90IHJlZmxlY3QgY2hlY2tlZCBwcm9wZXJ0eSwgd2UgYWRkIGEgZGF0YS1jaGVja2VkLlxuICAgICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtY2hlY2tlZCcsIHRoaXMuY2hlY2tlZCk7XG5cbiAgICAgIGlmICh0aGlzLmNoZWNrZWQgIT09IGNoYW5nZWRQcm9wZXJ0aWVzLmdldCgnY2hlY2tlZCcpISkge1xuICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlLmVtaXQoeyB0eXBlOiAnY2hlY2tlZCcsIGNoZWNrZWQ6IHRoaXMuY2hlY2tlZCB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnZGlzYWJsZWQnKSkge1xuICAgICAgaWYgKHRoaXMuZGlzYWJsZWQgIT09IGNoYW5nZWRQcm9wZXJ0aWVzLmdldCgnZGlzYWJsZWQnKSEpIHtcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZS5lbWl0KHsgdHlwZTogJ2Rpc2FibGVkJywgZGlzYWJsZWQ6IHRoaXMuZGlzYWJsZWQgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8c3BhbiBjbGFzcz1cInNiYi1zZWxlY3Rpb24tcGFuZWxcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1zZWxlY3Rpb24tcGFuZWxfX2JhZGdlXCI+XG4gICAgICAgICAgPHNsb3QgbmFtZT1cImJhZGdlXCI+PC9zbG90PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItY2hlY2tib3gtd3JhcHBlclwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWNoZWNrYm94XCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1jaGVja2JveF9faW5uZXJcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItY2hlY2tib3hfX2FsaWduZXJcIj5cbiAgICAgICAgICAgICAgICA8c2JiLXZpc3VhbC1jaGVja2JveFxuICAgICAgICAgICAgICAgICAgP2NoZWNrZWQ9JHt0aGlzLmNoZWNrZWR9XG4gICAgICAgICAgICAgICAgICA/aW5kZXRlcm1pbmF0ZT0ke3RoaXMuaW5kZXRlcm1pbmF0ZX1cbiAgICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWQgfHwgdGhpcy5mb3JtRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgPjwvc2JiLXZpc3VhbC1jaGVja2JveD5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1jaGVja2JveF9fbGFiZWxcIj5cbiAgICAgICAgICAgICAgICA8c2xvdD48L3Nsb3Q+XG4gICAgICAgICAgICAgICAgPHNsb3QgbmFtZT1cInN1ZmZpeFwiPjwvc2xvdD5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNsb3QgbmFtZT1cInN1YnRleHRcIj48L3Nsb3Q+XG4gICAgICAgICAgICAke3RoaXMuZXhwYW5zaW9uU3RhdGVcbiAgICAgICAgICAgICAgPyBodG1sYDxzYmItc2NyZWVuLXJlYWRlci1vbmx5PiR7dGhpcy5leHBhbnNpb25TdGF0ZX08L3NiYi1zY3JlZW4tcmVhZGVyLW9ubHk+YFxuICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L3NwYW4+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWNoZWNrYm94LXBhbmVsJzogU2JiQ2hlY2tib3hQYW5lbEVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF3Q08sSUFBTSwwQkFBTixjQUFzQztBQUFBLEVBQzNDLDhCQUE4Qix3QkFBd0IsVUFBVSxDQUFDO0FBQ25FLEVBQUU7QUFBQSxFQXFCTyxjQUFjO0FBQ2I7QUFQUixTQUFVLGNBQXlELElBQUk7QUFBQSxNQUNyRTtBQUFBLE1BQ0Esd0JBQXdCLE9BQU87QUFBQSxNQUMvQixFQUFFLFNBQVMsS0FBSztBQUFBLElBQUE7QUFLaEIsUUFBSSx1QkFBdUIsSUFBSTtBQUFBLEVBQ2pDO0FBQUEsRUFFQSxNQUF5QixXQUFXLG1CQUF3RDtBQUMxRixVQUFNLFdBQVcsaUJBQWlCO0FBRTlCLFFBQUEsa0JBQWtCLElBQUksU0FBUyxHQUFHO0FBRS9CLFdBQUEsZ0JBQWdCLGdCQUFnQixLQUFLLE9BQU87QUFFakQsVUFBSSxLQUFLLFlBQVksa0JBQWtCLElBQUksU0FBUyxHQUFJO0FBQ2pELGFBQUEsWUFBWSxLQUFLLEVBQUUsTUFBTSxXQUFXLFNBQVMsS0FBSyxTQUFTO0FBQUEsTUFDbEU7QUFBQSxJQUNGO0FBQ0ksUUFBQSxrQkFBa0IsSUFBSSxVQUFVLEdBQUc7QUFDckMsVUFBSSxLQUFLLGFBQWEsa0JBQWtCLElBQUksVUFBVSxHQUFJO0FBQ25ELGFBQUEsWUFBWSxLQUFLLEVBQUUsTUFBTSxZQUFZLFVBQVUsS0FBSyxVQUFVO0FBQUEsTUFDckU7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUFBLEVBRW1CLFNBQXlCO0FBQ25DLFdBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSw2QkFVa0IsS0FBSyxPQUFPO0FBQUEsbUNBQ04sS0FBSyxhQUFhO0FBQUEsOEJBQ3ZCLEtBQUssWUFBWSxLQUFLLFlBQVk7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsY0FTbEQsS0FBSyxpQkFDSCwrQkFBK0IsS0FBSyxjQUFjLDhCQUNsRCxPQUFPO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtyQjtBQUNGO0FBNUVhLHdCQUdZLFNBQXlCLENBQUMscUJBQXFCLGdCQUFnQjtBQUgzRSx3QkFNWSxTQUFTO0FBQUEsRUFDOUIsV0FBVztBQUFBLEVBQ1gsYUFBYTtBQUFBLEVBQ2IsZ0JBQWdCO0FBQ2xCO0FBVlcsMEJBQU4sZ0JBQUE7QUFBQSxFQUROLGNBQWMsb0JBQW9CO0FBQUEsR0FDdEIsdUJBQUE7In0=
86
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtcGFuZWwuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jaGVja2JveC9jaGVja2JveC1wYW5lbC9jaGVja2JveC1wYW5lbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBMaXRFbGVtZW50LFxuICBub3RoaW5nLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgc2xvdFN0YXRlIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJy4uLy4uL2NvcmUvZXZlbnRpbmcuanMnO1xuaW1wb3J0IHR5cGUge1xuICBTYmJDaGVja2VkU3RhdGVDaGFuZ2UsXG4gIFNiYkRpc2FibGVkU3RhdGVDaGFuZ2UsXG4gIFNiYlN0YXRlQ2hhbmdlLFxufSBmcm9tICcuLi8uLi9jb3JlL2ludGVyZmFjZXMvdHlwZXMuanMnO1xuaW1wb3J0IHsgcGFuZWxDb21tb25TdHlsZSwgU2JiUGFuZWxNaXhpbiwgU2JiVXBkYXRlU2NoZWR1bGVyTWl4aW4gfSBmcm9tICcuLi8uLi9jb3JlL21peGlucy5qcyc7XG5pbXBvcnQgeyBjaGVja2JveENvbW1vblN0eWxlLCBTYmJDaGVja2JveENvbW1vbkVsZW1lbnRNaXhpbiB9IGZyb20gJy4uL2NvbW1vbi5qcyc7XG5cbmltcG9ydCAnLi4vLi4vc2NyZWVuLXJlYWRlci1vbmx5LmpzJztcbmltcG9ydCAnLi4vLi4vdmlzdWFsLWNoZWNrYm94LmpzJztcblxuZXhwb3J0IHR5cGUgU2JiQ2hlY2tib3hQYW5lbFN0YXRlQ2hhbmdlID0gRXh0cmFjdDxcbiAgU2JiU3RhdGVDaGFuZ2UsXG4gIFNiYkRpc2FibGVkU3RhdGVDaGFuZ2UgfCBTYmJDaGVja2VkU3RhdGVDaGFuZ2Vcbj47XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYSBjaGVja2JveCBlbmhhbmNlZCB3aXRoIHNlbGVjdGlvbiBwYW5lbCBkZXNpZ24uXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgY29udGVudCB0byB0aGUgYHNiYi1jaGVja2JveGAuXG4gKiBAc2xvdCBzdWJ0ZXh0IC0gU2xvdCB1c2VkIHRvIHJlbmRlciBhIHN1YnRleHQgdW5kZXIgdGhlIGxhYmVsIChvbmx5IHZpc2libGUgd2l0aGluIGEgc2VsZWN0aW9uIHBhbmVsKS5cbiAqIEBzbG90IHN1ZmZpeCAtIFNsb3QgdXNlZCB0byByZW5kZXIgYWRkaXRpb25hbCBjb250ZW50IGFmdGVyIHRoZSBsYWJlbCAob25seSB2aXNpYmxlIHdpdGhpbiBhIHNlbGVjdGlvbiBwYW5lbCkuXG4gKiBAc2xvdCBiYWRnZSAtIFVzZSB0aGlzIHNsb3QgdG8gcHJvdmlkZSBhIGBzYmItY2FyZC1iYWRnZWAgKG9wdGlvbmFsKS5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IGRpZENoYW5nZSAtIERlcHJlY2F0ZWQuIHVzZWQgZm9yIFJlYWN0LiBXaWxsIHByb2JhYmx5IGJlIHJlbW92ZWQgb25jZSBSZWFjdCAxOSBpcyBhdmFpbGFibGUuXG4gKiBAZXZlbnQge0V2ZW50fSBjaGFuZ2UgLSBFdmVudCBmaXJlZCBvbiBjaGFuZ2UuXG4gKiBAZXZlbnQge0lucHV0RXZlbnR9IGlucHV0IC0gRXZlbnQgZmlyZWQgb24gaW5wdXQuXG4gKi9cbkBjdXN0b21FbGVtZW50KCdzYmItY2hlY2tib3gtcGFuZWwnKVxuQHNsb3RTdGF0ZSgpXG5leHBvcnQgY2xhc3MgU2JiQ2hlY2tib3hQYW5lbEVsZW1lbnQgZXh0ZW5kcyBTYmJQYW5lbE1peGluKFxuICBTYmJDaGVja2JveENvbW1vbkVsZW1lbnRNaXhpbihTYmJVcGRhdGVTY2hlZHVsZXJNaXhpbihMaXRFbGVtZW50KSksXG4pIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW2NoZWNrYm94Q29tbW9uU3R5bGUsIHBhbmVsQ29tbW9uU3R5bGVdO1xuXG4gIC8vIEZJWE1FIHVzaW5nIC4uLnN1cGVyLmV2ZW50cyByZXF1aXJlczogaHR0cHM6Ly9naXRodWIuY29tL3NiYi1kZXNpZ24tc3lzdGVtcy9seW5lLWNvbXBvbmVudHMvaXNzdWVzLzI2MDBcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHMgPSB7XG4gICAgZGlkQ2hhbmdlOiAnZGlkQ2hhbmdlJyxcbiAgICBzdGF0ZUNoYW5nZTogJ3N0YXRlQ2hhbmdlJyxcbiAgICBwYW5lbENvbm5lY3RlZDogJ3BhbmVsQ29ubmVjdGVkJyxcbiAgfSBhcyBjb25zdDtcblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIEludGVybmFsIGV2ZW50IHRoYXQgZW1pdHMgd2hlbmV2ZXIgdGhlIHN0YXRlIG9mIHRoZSBjaGVja2JveFxuICAgKiBpbiByZWxhdGlvbiB0byB0aGUgcGFyZW50IHNlbGVjdGlvbiBwYW5lbCBjaGFuZ2VzLlxuICAgKi9cbiAgcHJvdGVjdGVkIHN0YXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8U2JiQ2hlY2tib3hQYW5lbFN0YXRlQ2hhbmdlPiA9IG5ldyBFdmVudEVtaXR0ZXIoXG4gICAgdGhpcyxcbiAgICBTYmJDaGVja2JveFBhbmVsRWxlbWVudC5ldmVudHMuc3RhdGVDaGFuZ2UsXG4gICAgeyBidWJibGVzOiB0cnVlIH0sXG4gICk7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGFzeW5jIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdjaGVja2VkJykpIHtcbiAgICAgIC8vIEFzIFNiYkZvcm1Bc3NvY2lhdGVkQ2hlY2tib3hNaXhpbiBkb2VzIG5vdCByZWZsZWN0IGNoZWNrZWQgcHJvcGVydHksIHdlIGFkZCBhIGRhdGEtY2hlY2tlZC5cbiAgICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKCdkYXRhLWNoZWNrZWQnLCB0aGlzLmNoZWNrZWQpO1xuXG4gICAgICBpZiAodGhpcy5jaGVja2VkICE9PSBjaGFuZ2VkUHJvcGVydGllcy5nZXQoJ2NoZWNrZWQnKSEpIHtcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZS5lbWl0KHsgdHlwZTogJ2NoZWNrZWQnLCBjaGVja2VkOiB0aGlzLmNoZWNrZWQgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2Rpc2FibGVkJykpIHtcbiAgICAgIGlmICh0aGlzLmRpc2FibGVkICE9PSBjaGFuZ2VkUHJvcGVydGllcy5nZXQoJ2Rpc2FibGVkJykhKSB7XG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2UuZW1pdCh7IHR5cGU6ICdkaXNhYmxlZCcsIGRpc2FibGVkOiB0aGlzLmRpc2FibGVkIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPHNwYW4gY2xhc3M9XCJzYmItc2VsZWN0aW9uLXBhbmVsXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItc2VsZWN0aW9uLXBhbmVsX19iYWRnZVwiPlxuICAgICAgICAgIDxzbG90IG5hbWU9XCJiYWRnZVwiPjwvc2xvdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWNoZWNrYm94LXdyYXBwZXJcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1jaGVja2JveFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItY2hlY2tib3hfX2lubmVyXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWNoZWNrYm94X19hbGlnbmVyXCI+XG4gICAgICAgICAgICAgICAgPHNiYi12aXN1YWwtY2hlY2tib3hcbiAgICAgICAgICAgICAgICAgID9jaGVja2VkPSR7dGhpcy5jaGVja2VkfVxuICAgICAgICAgICAgICAgICAgP2luZGV0ZXJtaW5hdGU9JHt0aGlzLmluZGV0ZXJtaW5hdGV9XG4gICAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkIHx8IHRoaXMuZm9ybURpc2FibGVkfVxuICAgICAgICAgICAgICAgID48L3NiYi12aXN1YWwtY2hlY2tib3g+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItY2hlY2tib3hfX2xhYmVsXCI+XG4gICAgICAgICAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgICAgICAgICAgIDxzbG90IG5hbWU9XCJzdWZmaXhcIj48L3Nsb3Q+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzbG90IG5hbWU9XCJzdWJ0ZXh0XCI+PC9zbG90PlxuICAgICAgICAgICAgJHt0aGlzLmV4cGFuc2lvblN0YXRlXG4gICAgICAgICAgICAgID8gaHRtbGA8c2JiLXNjcmVlbi1yZWFkZXItb25seT4ke3RoaXMuZXhwYW5zaW9uU3RhdGV9PC9zYmItc2NyZWVuLXJlYWRlci1vbmx5PmBcbiAgICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9zcGFuPlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1jaGVja2JveC1wYW5lbCc6IFNiYkNoZWNrYm94UGFuZWxFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBeUNPLElBQU0sMEJBQU4sY0FBc0M7QUFBQSxFQUMzQyw4QkFBOEIsd0JBQXdCLFVBQVUsQ0FBQztBQUNuRSxFQUFFO0FBQUEsRUFGSyxjQUFBO0FBQUEsVUFBQSxHQUFBLFNBQUE7QUFpQkwsU0FBVSxjQUF5RCxJQUFJO0FBQUEsTUFDckU7QUFBQSxNQUNBLHdCQUF3QixPQUFPO0FBQUEsTUFDL0IsRUFBRSxTQUFTLEtBQUs7QUFBQSxJQUFBO0FBQUEsRUFDbEI7QUFBQSxFQUVBLE1BQXlCLFdBQVcsbUJBQXdEO0FBQzFGLFVBQU0sV0FBVyxpQkFBaUI7QUFFOUIsUUFBQSxrQkFBa0IsSUFBSSxTQUFTLEdBQUc7QUFFL0IsV0FBQSxnQkFBZ0IsZ0JBQWdCLEtBQUssT0FBTztBQUVqRCxVQUFJLEtBQUssWUFBWSxrQkFBa0IsSUFBSSxTQUFTLEdBQUk7QUFDakQsYUFBQSxZQUFZLEtBQUssRUFBRSxNQUFNLFdBQVcsU0FBUyxLQUFLLFNBQVM7QUFBQSxNQUNsRTtBQUFBLElBQ0Y7QUFDSSxRQUFBLGtCQUFrQixJQUFJLFVBQVUsR0FBRztBQUNyQyxVQUFJLEtBQUssYUFBYSxrQkFBa0IsSUFBSSxVQUFVLEdBQUk7QUFDbkQsYUFBQSxZQUFZLEtBQUssRUFBRSxNQUFNLFlBQVksVUFBVSxLQUFLLFVBQVU7QUFBQSxNQUNyRTtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQUEsRUFFbUIsU0FBeUI7QUFDbkMsV0FBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLDZCQVVrQixLQUFLLE9BQU87QUFBQSxtQ0FDTixLQUFLLGFBQWE7QUFBQSw4QkFDdkIsS0FBSyxZQUFZLEtBQUssWUFBWTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxjQVNsRCxLQUFLLGlCQUNILCtCQUErQixLQUFLLGNBQWMsOEJBQ2xELE9BQU87QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS3JCO0FBQ0Y7QUF2RWEsd0JBR1ksU0FBeUIsQ0FBQyxxQkFBcUIsZ0JBQWdCO0FBSDNFLHdCQU1ZLFNBQVM7QUFBQSxFQUM5QixXQUFXO0FBQUEsRUFDWCxhQUFhO0FBQUEsRUFDYixnQkFBZ0I7QUFDbEI7QUFWVywwQkFBTixnQkFBQTtBQUFBLEVBRk4sY0FBYyxvQkFBb0I7QUFBQSxFQUNsQyxVQUFVO0FBQUEsR0FDRSx1QkFBQTsifQ==
@@ -1,6 +1,6 @@
1
1
  import { css, LitElement, html } from "lit";
2
2
  import { property, customElement } from "lit/decorators.js";
3
- import { SbbSlotStateController } from "../core/controllers.js";
3
+ import { slotState } from "../core/decorators.js";
4
4
  import { SbbIconNameMixin } from "../icon.js";
5
5
  import { SbbCheckboxCommonElementMixin, checkboxCommonStyle } from "./common.js";
6
6
  import "../visual-checkbox.js";
@@ -67,9 +67,8 @@ let SbbCheckboxElement = class extends SbbCheckboxCommonElementMixin(
67
67
  SbbIconNameMixin(LitElement)
68
68
  ) {
69
69
  constructor() {
70
- super();
70
+ super(...arguments);
71
71
  this.iconPlacement = "end";
72
- new SbbSlotStateController(this);
73
72
  }
74
73
  render() {
75
74
  return html`
@@ -103,9 +102,10 @@ __decorateClass([
103
102
  property({ attribute: "icon-placement", reflect: true })
104
103
  ], SbbCheckboxElement.prototype, "iconPlacement", 2);
105
104
  SbbCheckboxElement = __decorateClass([
106
- customElement("sbb-checkbox")
105
+ customElement("sbb-checkbox"),
106
+ slotState()
107
107
  ], SbbCheckboxElement);
108
108
  export {
109
109
  SbbCheckboxElement
110
110
  };
111
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jaGVja2JveC9jaGVja2JveC9jaGVja2JveC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMaXRFbGVtZW50LCBodG1sLCB0eXBlIENTU1Jlc3VsdEdyb3VwLCB0eXBlIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBTYmJTbG90U3RhdGVDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYkljb25QbGFjZW1lbnQgfSBmcm9tICcuLi8uLi9jb3JlL2ludGVyZmFjZXMuanMnO1xuaW1wb3J0IHsgU2JiSWNvbk5hbWVNaXhpbiB9IGZyb20gJy4uLy4uL2ljb24uanMnO1xuaW1wb3J0IHsgU2JiQ2hlY2tib3hDb21tb25FbGVtZW50TWl4aW4sIGNoZWNrYm94Q29tbW9uU3R5bGUgfSBmcm9tICcuLi9jb21tb24uanMnO1xuXG5pbXBvcnQgJy4uLy4uL3Zpc3VhbC1jaGVja2JveC5qcyc7XG5cbmltcG9ydCBjaGVja2JveFN0eWxlIGZyb20gJy4vY2hlY2tib3guc2Nzcz9saXQmaW5saW5lJztcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhIGNoZWNrYm94IGVuaGFuY2VkIHdpdGggdGhlIFNCQiBEZXNpZ24uXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgY29udGVudCB0byB0aGUgYHNiYi1jaGVja2JveGAuXG4gKiBAc2xvdCBpY29uIC0gU2xvdCB1c2VkIHRvIHJlbmRlciB0aGUgY2hlY2tib3ggaWNvbiAoZGlzYWJsZWQgaW5zaWRlIGEgc2VsZWN0aW9uIHBhbmVsKS5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IGRpZENoYW5nZSAtIERlcHJlY2F0ZWQuIHVzZWQgZm9yIFJlYWN0LiBXaWxsIHByb2JhYmx5IGJlIHJlbW92ZWQgb25jZSBSZWFjdCAxOSBpcyBhdmFpbGFibGUuXG4gKiBAZXZlbnQge0V2ZW50fSBjaGFuZ2UgLSBFdmVudCBmaXJlZCBvbiBjaGFuZ2UuXG4gKiBAZXZlbnQge0lucHV0RXZlbnR9IGlucHV0IC0gRXZlbnQgZmlyZWQgb24gaW5wdXQuXG4gKi9cbkBjdXN0b21FbGVtZW50KCdzYmItY2hlY2tib3gnKVxuZXhwb3J0IGNsYXNzIFNiYkNoZWNrYm94RWxlbWVudCBleHRlbmRzIFNiYkNoZWNrYm94Q29tbW9uRWxlbWVudE1peGluKFxuICBTYmJJY29uTmFtZU1peGluKExpdEVsZW1lbnQpLFxuKSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtjaGVja2JveENvbW1vblN0eWxlLCBjaGVja2JveFN0eWxlXTtcblxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICBkaWRDaGFuZ2U6ICdkaWRDaGFuZ2UnLFxuICB9IGFzIGNvbnN0O1xuXG4gIC8qKiBUaGUgbGFiZWwgcG9zaXRpb24gcmVsYXRpdmUgdG8gdGhlIGxhYmVsSWNvbi4gRGVmYXVsdHMgdG8gZW5kICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2ljb24tcGxhY2VtZW50JywgcmVmbGVjdDogdHJ1ZSB9KVxuICBwdWJsaWMgaWNvblBsYWNlbWVudDogU2JiSWNvblBsYWNlbWVudCA9ICdlbmQnO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIG5ldyBTYmJTbG90U3RhdGVDb250cm9sbGVyKHRoaXMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8c3BhbiBjbGFzcz1cInNiYi1jaGVja2JveC13cmFwcGVyXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWNoZWNrYm94XCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItY2hlY2tib3hfX2lubmVyXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1jaGVja2JveF9fYWxpZ25lclwiPlxuICAgICAgICAgICAgICA8c2JiLXZpc3VhbC1jaGVja2JveFxuICAgICAgICAgICAgICAgID9jaGVja2VkPSR7dGhpcy5jaGVja2VkfVxuICAgICAgICAgICAgICAgID9pbmRldGVybWluYXRlPSR7dGhpcy5pbmRldGVybWluYXRlfVxuICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWQgfHwgdGhpcy5mb3JtRGlzYWJsZWR9XG4gICAgICAgICAgICAgID48L3NiYi12aXN1YWwtY2hlY2tib3g+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1jaGVja2JveF9fbGFiZWxcIj5cbiAgICAgICAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1jaGVja2JveF9fbGFiZWwtLWljb24gc2JiLWNoZWNrYm94X19hbGlnbmVyXCJcbiAgICAgICAgICAgICAgICA+JHt0aGlzLnJlbmRlckljb25TbG90KCl9PC9zcGFuXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvc3Bhbj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItY2hlY2tib3gnOiBTYmJDaGVja2JveEVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXNCTyxJQUFNLHFCQUFOLGNBQWlDO0FBQUEsRUFDdEMsaUJBQWlCLFVBQVU7QUFDN0IsRUFBRTtBQUFBLEVBV08sY0FBYztBQUNiO0FBSFIsU0FBTyxnQkFBa0M7QUFJdkMsUUFBSSx1QkFBdUIsSUFBSTtBQUFBLEVBQ2pDO0FBQUEsRUFFbUIsU0FBeUI7QUFDbkMsV0FBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSwyQkFNZ0IsS0FBSyxPQUFPO0FBQUEsaUNBQ04sS0FBSyxhQUFhO0FBQUEsNEJBQ3ZCLEtBQUssWUFBWSxLQUFLLFlBQVk7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsbUJBTTNDLEtBQUssZ0JBQWdCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPdEM7QUFDRjtBQXpDYSxtQkFHWSxTQUF5QixDQUFDLHFCQUFxQixhQUFhO0FBSHhFLG1CQUtZLFNBQVM7QUFBQSxFQUM5QixXQUFXO0FBQ2I7QUFJTyxnQkFBQTtBQUFBLEVBRE4sU0FBUyxFQUFFLFdBQVcsa0JBQWtCLFNBQVMsTUFBTTtBQUFBLEdBVjdDLG1CQVdKLFdBQUEsaUJBQUEsQ0FBQTtBQVhJLHFCQUFOLGdCQUFBO0FBQUEsRUFETixjQUFjLGNBQWM7QUFBQSxHQUNoQixrQkFBQTsifQ==
111
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jaGVja2JveC9jaGVja2JveC9jaGVja2JveC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMaXRFbGVtZW50LCBodG1sLCB0eXBlIENTU1Jlc3VsdEdyb3VwLCB0eXBlIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBzbG90U3RhdGUgfSBmcm9tICcuLi8uLi9jb3JlL2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJJY29uUGxhY2VtZW50IH0gZnJvbSAnLi4vLi4vY29yZS9pbnRlcmZhY2VzLmpzJztcbmltcG9ydCB7IFNiYkljb25OYW1lTWl4aW4gfSBmcm9tICcuLi8uLi9pY29uLmpzJztcbmltcG9ydCB7IFNiYkNoZWNrYm94Q29tbW9uRWxlbWVudE1peGluLCBjaGVja2JveENvbW1vblN0eWxlIH0gZnJvbSAnLi4vY29tbW9uLmpzJztcblxuaW1wb3J0IGNoZWNrYm94U3R5bGUgZnJvbSAnLi9jaGVja2JveC5zY3NzP2xpdCZpbmxpbmUnO1xuXG5pbXBvcnQgJy4uLy4uL3Zpc3VhbC1jaGVja2JveC5qcyc7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYSBjaGVja2JveCBlbmhhbmNlZCB3aXRoIHRoZSBTQkIgRGVzaWduLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGNvbnRlbnQgdG8gdGhlIGBzYmItY2hlY2tib3hgLlxuICogQHNsb3QgaWNvbiAtIFNsb3QgdXNlZCB0byByZW5kZXIgdGhlIGNoZWNrYm94IGljb24gKGRpc2FibGVkIGluc2lkZSBhIHNlbGVjdGlvbiBwYW5lbCkuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSBkaWRDaGFuZ2UgLSBEZXByZWNhdGVkLiB1c2VkIGZvciBSZWFjdC4gV2lsbCBwcm9iYWJseSBiZSByZW1vdmVkIG9uY2UgUmVhY3QgMTkgaXMgYXZhaWxhYmxlLlxuICogQGV2ZW50IHtFdmVudH0gY2hhbmdlIC0gRXZlbnQgZmlyZWQgb24gY2hhbmdlLlxuICogQGV2ZW50IHtJbnB1dEV2ZW50fSBpbnB1dCAtIEV2ZW50IGZpcmVkIG9uIGlucHV0LlxuICovXG5AY3VzdG9tRWxlbWVudCgnc2JiLWNoZWNrYm94JylcbkBzbG90U3RhdGUoKVxuZXhwb3J0IGNsYXNzIFNiYkNoZWNrYm94RWxlbWVudCBleHRlbmRzIFNiYkNoZWNrYm94Q29tbW9uRWxlbWVudE1peGluKFxuICBTYmJJY29uTmFtZU1peGluKExpdEVsZW1lbnQpLFxuKSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtjaGVja2JveENvbW1vblN0eWxlLCBjaGVja2JveFN0eWxlXTtcblxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICBkaWRDaGFuZ2U6ICdkaWRDaGFuZ2UnLFxuICB9IGFzIGNvbnN0O1xuXG4gIC8qKiBUaGUgbGFiZWwgcG9zaXRpb24gcmVsYXRpdmUgdG8gdGhlIGxhYmVsSWNvbi4gRGVmYXVsdHMgdG8gZW5kICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2ljb24tcGxhY2VtZW50JywgcmVmbGVjdDogdHJ1ZSB9KVxuICBwdWJsaWMgaWNvblBsYWNlbWVudDogU2JiSWNvblBsYWNlbWVudCA9ICdlbmQnO1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPHNwYW4gY2xhc3M9XCJzYmItY2hlY2tib3gtd3JhcHBlclwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1jaGVja2JveFwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWNoZWNrYm94X19pbm5lclwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItY2hlY2tib3hfX2FsaWduZXJcIj5cbiAgICAgICAgICAgICAgPHNiYi12aXN1YWwtY2hlY2tib3hcbiAgICAgICAgICAgICAgICA/Y2hlY2tlZD0ke3RoaXMuY2hlY2tlZH1cbiAgICAgICAgICAgICAgICA/aW5kZXRlcm1pbmF0ZT0ke3RoaXMuaW5kZXRlcm1pbmF0ZX1cbiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkIHx8IHRoaXMuZm9ybURpc2FibGVkfVxuICAgICAgICAgICAgICA+PC9zYmItdmlzdWFsLWNoZWNrYm94PlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItY2hlY2tib3hfX2xhYmVsXCI+XG4gICAgICAgICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItY2hlY2tib3hfX2xhYmVsLS1pY29uIHNiYi1jaGVja2JveF9fYWxpZ25lclwiXG4gICAgICAgICAgICAgICAgPiR7dGhpcy5yZW5kZXJJY29uU2xvdCgpfTwvc3BhblxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L3NwYW4+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWNoZWNrYm94JzogU2JiQ2hlY2tib3hFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF1Qk8sSUFBTSxxQkFBTixjQUFpQztBQUFBLEVBQ3RDLGlCQUFpQixVQUFVO0FBQzdCLEVBQUU7QUFBQSxFQUZLLGNBQUE7QUFBQSxVQUFBLEdBQUEsU0FBQTtBQVdMLFNBQU8sZ0JBQWtDO0FBQUEsRUFBQTtBQUFBLEVBRXRCLFNBQXlCO0FBQ25DLFdBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsMkJBTWdCLEtBQUssT0FBTztBQUFBLGlDQUNOLEtBQUssYUFBYTtBQUFBLDRCQUN2QixLQUFLLFlBQVksS0FBSyxZQUFZO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLG1CQU0zQyxLQUFLLGdCQUFnQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT3RDO0FBQ0Y7QUFwQ2EsbUJBR1ksU0FBeUIsQ0FBQyxxQkFBcUIsYUFBYTtBQUh4RSxtQkFLWSxTQUFTO0FBQUEsRUFDOUIsV0FBVztBQUNiO0FBSU8sZ0JBQUE7QUFBQSxFQUROLFNBQVMsRUFBRSxXQUFXLGtCQUFrQixTQUFTLE1BQU07QUFBQSxHQVY3QyxtQkFXSixXQUFBLGlCQUFBLENBQUE7QUFYSSxxQkFBTixnQkFBQTtBQUFBLEVBRk4sY0FBYyxjQUFjO0FBQUEsRUFDNUIsVUFBVTtBQUFBLEdBQ0Usa0JBQUE7In0=
@@ -30,12 +30,13 @@ export declare abstract class DateAdapter<T = any> {
30
30
  * @param date
31
31
  */
32
32
  abstract getDayOfWeek(date: T): number;
33
+ /** Get the first day of the week (0: sunday; 1: monday; etc.). */
33
34
  abstract getFirstDayOfWeek(): number;
34
35
  /**
35
36
  * Get the number of days in a month.
36
37
  * @param year
37
38
  * @param month
38
- * */
39
+ */
39
40
  abstract getNumDaysInMonth(date: T): number;
40
41
  /**
41
42
  * Get a list of all the months in a given style.
@@ -54,18 +55,19 @@ export declare abstract class DateAdapter<T = any> {
54
55
  /**
55
56
  * Checks whether a given `date` is valid.
56
57
  * @param date
57
- * */
58
+ */
58
59
  abstract isValid(date: T | null | undefined): boolean;
59
- /** Creates a new date by cloning the given one.
60
+ /**
61
+ * Creates a new date by cloning the given one.
60
62
  * @param date
61
- * */
63
+ */
62
64
  abstract clone(date: T): T;
63
65
  /**
64
66
  * Creates a new date, given day, month and year; without date's overflow.
65
67
  * @param year
66
68
  * @param month The month of the date (1-indexed, 1 = January). Must be an integer 1 - 12.
67
69
  * @param date
68
- * */
70
+ */
69
71
  abstract createDate(year: number, month: number, date: number): T;
70
72
  /**
71
73
  * Attempts to deserialize a value to a valid date object. This is different from parsing in that
@@ -74,7 +76,7 @@ export declare abstract class DateAdapter<T = any> {
74
76
  * the given value is already a valid date object or null.
75
77
  * @param value Either Date, ISOString, Unix Timestamp (number of seconds since Jan 1, 1970).
76
78
  * @returns The date if the input is valid, `null` otherwise.
77
- * */
79
+ */
78
80
  deserialize(value: T | string | number | null | undefined): T | null;
79
81
  /**
80
82
  * Creates a new date adding the number of provided `years` to the provided `date`.
@@ -90,26 +92,33 @@ export declare abstract class DateAdapter<T = any> {
90
92
  * @param months The number of months to add.
91
93
  */
92
94
  abstract addCalendarMonths(date: T, months: number): T;
93
- /** Creates a new date by adding the number of provided `days` to the provided `date`.
95
+ /**
96
+ * Creates a new date by adding the number of provided `days` to the provided `date`.
94
97
  * @param date The starting date.
95
98
  * @param days The number of days to add.
96
99
  */
97
100
  abstract addCalendarDays(date: T, days: number): T;
98
- /** Get the date in the local format.
101
+ /**
102
+ * Get the date in the local format.
99
103
  * @param date The date to format
100
104
  * @returns The `date` in the local format as string.
101
105
  */
102
106
  abstract getAccessibilityFormatDate(date: T | string): string;
103
- /** Get the given string as Date.
107
+ /**
108
+ * Get the given string as Date.
104
109
  * @param value The date in the format DD.MM.YYYY.
105
110
  * @param now The current date as Date.
106
111
  */
107
112
  abstract parse(value: string | null | undefined, now: T): T | undefined;
108
- /** Format the given Date as string.
113
+ /**
114
+ * Format the given date as string.
109
115
  * @param date The date to format.
110
116
  */
111
- abstract format(date: T | null | undefined): string;
112
- /** Checks whether the given `obj` is a Date.
117
+ format(date: T | null | undefined, options?: {
118
+ weekdayStyle?: 'long' | 'short' | 'narrow';
119
+ }): string;
120
+ /**
121
+ * Checks whether the given `obj` is a Date.
113
122
  * @param obj The object to check.
114
123
  */
115
124
  abstract isDateInstance(obj: any): boolean;
@@ -118,7 +127,8 @@ export declare abstract class DateAdapter<T = any> {
118
127
  * @returns An invalid date.
119
128
  */
120
129
  abstract invalid(): T;
121
- /** Get the given date as ISO String.
130
+ /**
131
+ * Get the given date as ISO String.
122
132
  * @param date The date to convert to ISO String.
123
133
  */
124
134
  toIso8601(date: T): string;
@@ -1 +1 @@
1
- {"version":3,"file":"date-adapter.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/datetime/date-adapter.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,EAAE,MAAU,CAAC;AACtC,eAAO,MAAM,cAAc,EAAE,MAAU,CAAC;AACxC,eAAO,MAAM,aAAa,EAAE,MAAU,CAAC;AACvC,eAAO,MAAM,cAAc,EAAE,MAAW,CAAC;AACzC,eAAO,MAAM,WAAW,QACgE,CAAC;AAEzF;;;;GAIG;AACH,8BAAsB,WAAW,CAAC,CAAC,GAAG,GAAG;IACvC;;;OAGG;aACa,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM;IAExC;;;;OAIG;aACa,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM;IAEzC;;;OAGG;aACa,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM;IAExC;;;OAGG;aACa,YAAY,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM;aAG7B,iBAAiB,IAAI,MAAM;IAE3C;;;;SAIK;aACW,iBAAiB,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM;IAElD;;;OAGG;aACa,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,EAAE;IAE3E,6FAA6F;aAC7E,YAAY,IAAI,MAAM,EAAE;IAExC;;;OAGG;aACa,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,EAAE;IAE/E,4BAA4B;aACZ,KAAK,IAAI,CAAC;IAE1B;;;SAGK;aACW,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO;IAE5D;;SAEK;aACW,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC;IAEjC;;;;;SAKK;aACW,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;IAExE;;;;;;;SAOK;IACE,WAAW,CAAC,KAAK,EAAE,CAAC,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,CAAC,GAAG,IAAI;IAU3E;;;;OAIG;aACa,gBAAgB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC;IAE3D;;;;;;OAMG;aACa,iBAAiB,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC;IAE7D;;;OAGG;aACa,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;IAEzD;;;OAGG;aACa,0BAA0B,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM,GAAG,MAAM;IAEpE;;;OAGG;aACa,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IAE9E;;OAEG;aACa,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM;IAE1D;;OAEG;aACa,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO;IAEjD;;;OAGG;aACa,OAAO,IAAI,CAAC;IAE5B;;OAEG;IACI,SAAS,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM;IAKjC;;;;;OAKG;IACI,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,GAAG,IAAI;IAInD;;OAEG;IACI,kBAAkB,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM;IAO1C;;;;;;OAMG;IACI,WAAW,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM;IAQ/C;;;;;;OAMG;IACI,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,GAAG,OAAO;IAY3D;;;;;;;OAOG;IACI,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC;CAS7D"}
1
+ {"version":3,"file":"date-adapter.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/datetime/date-adapter.ts"],"names":[],"mappings":"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"}
@@ -59,7 +59,6 @@ export declare class NativeDateAdapter extends DateAdapter<Date> {
59
59
  deserialize(date: SbbDateLike | null | undefined): Date | null;
60
60
  /** Returns the right format for the `valueAsDate` property. */
61
61
  parse(value: string | null | undefined, now: Date): Date | undefined;
62
- format(value: Date | null | undefined): string;
63
62
  invalid(): Date;
64
63
  /**
65
64
  * 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":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAe,MAAM,mBAAmB,CAAC;AAU7D,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;IAM/D,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,OAAO;IAItD,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,6EAA6E;IAC7D,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI;IAkB9E,+DAA+D;IACxD,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS;IA4BpE,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM;IAoBrC,OAAO,IAAI,IAAI;IAI/B;;;;OAIG;IACH,OAAO,CAAC,MAAM;IAQd,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":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAe,MAAM,mBAAmB,CAAC;AAU7D,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;IAM/D,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,OAAO;IAItD,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,6EAA6E;IAC7D,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI;IAkB9E,+DAA+D;IACxD,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS;IA4B3D,OAAO,IAAI,IAAI;IAI/B;;;;OAIG;IACH,OAAO,CAAC,MAAM;IAId,gEAAgE;IAChE,OAAO,CAAC,uBAAuB;CAShC;AAED,eAAO,MAAM,kBAAkB,mBAA0B,CAAC"}
@@ -12,14 +12,37 @@ class DateAdapter {
12
12
  * the given value is already a valid date object or null.
13
13
  * @param value Either Date, ISOString, Unix Timestamp (number of seconds since Jan 1, 1970).
14
14
  * @returns The date if the input is valid, `null` otherwise.
15
- * */
15
+ */
16
16
  deserialize(value) {
17
17
  if (value == null || this.isDateInstance(value) && this.isValid(value)) {
18
18
  return value;
19
19
  }
20
20
  return this.invalid();
21
21
  }
22
- /** Get the given date as ISO String.
22
+ /**
23
+ * Format the given date as string.
24
+ * @param date The date to format.
25
+ */
26
+ format(date, options) {
27
+ if (!this.isValid(date)) {
28
+ return "";
29
+ }
30
+ const value = /* @__PURE__ */ new Date(this.toIso8601(date) + "T00:00:00");
31
+ const dateFormatter = new Intl.DateTimeFormat("de-CH", {
32
+ day: "2-digit",
33
+ month: "2-digit",
34
+ year: "numeric"
35
+ });
36
+ const weekdayStyle = (options == null ? void 0 : options.weekdayStyle) ?? "short";
37
+ let weekday = this.getDayOfWeekNames(weekdayStyle)[this.getDayOfWeek(date)];
38
+ weekday = weekday.charAt(0).toUpperCase() + weekday.substring(1);
39
+ if (weekdayStyle === "short") {
40
+ weekday = weekday.substring(0, 2);
41
+ }
42
+ return `${weekday}, ${dateFormatter.format(value)}`;
43
+ }
44
+ /**
45
+ * Get the given date as ISO String.
23
46
  * @param date The date to convert to ISO String.
24
47
  */
25
48
  toIso8601(date) {
@@ -212,7 +235,7 @@ class NativeDateAdapter extends DateAdapter {
212
235
  } else if (!Number.isNaN(+date)) {
213
236
  return this.getValidDateOrNull(new Date(+date * 1e3));
214
237
  } else if (ISO_8601_REGEX.test(date)) {
215
- return this.getValidDateOrNull(new Date(date));
238
+ return this.getValidDateOrNull(new Date(date.includes("T") ? date : date + "T00:00:00"));
216
239
  }
217
240
  } else if (typeof date === "number") {
218
241
  return this.getValidDateOrNull(new Date(date * 1e3));
@@ -236,23 +259,6 @@ class NativeDateAdapter extends DateAdapter {
236
259
  }
237
260
  return new Date(year, +match[2] - 1, +match[1]);
238
261
  }
239
- format(value) {
240
- if (!value) {
241
- return "";
242
- }
243
- const locale = `${SbbLanguageController.current}-CH`;
244
- const dateFormatter = new Intl.DateTimeFormat("de-CH", {
245
- day: "2-digit",
246
- month: "2-digit",
247
- year: "numeric"
248
- });
249
- const dayFormatter = new Intl.DateTimeFormat(locale, {
250
- weekday: "short"
251
- });
252
- let weekday = dayFormatter.format(value);
253
- weekday = weekday.charAt(0).toUpperCase() + weekday.charAt(1);
254
- return `${weekday}, ${dateFormatter.format(value)}`;
255
- }
256
262
  invalid() {
257
263
  return /* @__PURE__ */ new Date(NaN);
258
264
  }
@@ -262,11 +268,7 @@ class NativeDateAdapter extends DateAdapter {
262
268
  * @param valueFunction The function of array's index used to fill the array.
263
269
  */
264
270
  _range(length, valueFunction) {
265
- const valuesArray = Array(length);
266
- for (let i = 0; i < length; i++) {
267
- valuesArray[i] = valueFunction(i);
268
- }
269
- return valuesArray;
271
+ return Array.from({ length }).map((_, i) => valueFunction(i));
270
272
  }
271
273
  /** Creates a date but allows the month and date to overflow. */
272
274
  _createDateWithOverflow(year, month, date) {
@@ -288,4 +290,4 @@ export {
288
290
  YEARS_PER_ROW,
289
291
  defaultDateAdapter
290
292
  };
291
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2RhdGV0aW1lL2RhdGUtYWRhcHRlci50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2RhdGV0aW1lL25hdGl2ZS1kYXRlLWFkYXB0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IERBWVNfUEVSX1JPVzogbnVtYmVyID0gNztcbmV4cG9ydCBjb25zdCBNT05USFNfUEVSX1JPVzogbnVtYmVyID0gNDtcbmV4cG9ydCBjb25zdCBZRUFSU19QRVJfUk9XOiBudW1iZXIgPSA0O1xuZXhwb3J0IGNvbnN0IFlFQVJTX1BFUl9QQUdFOiBudW1iZXIgPSAyNDtcbmV4cG9ydCBjb25zdCBGT1JNQVRfREFURSA9XG4gIC8oXjA/WzEtOV0/fFsxMl0/WzAtOV0/fDM/WzAxXT8pWy4sXFxcXC9cXC1cXHNdKDA/WzEtOV0/fDE/WzAtMl0/KT9bLixcXFxcL1xcLVxcc10oXFxkezEsNH0kKT8vO1xuXG4vKipcbiAqIEFic3RyYWN0IGRhdGUgZnVuY3Rpb25hbGl0eS5cbiAqXG4gKiBBZGFwdGVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvY29tcG9uZW50cy9ibG9iL21haW4vc3JjL21hdGVyaWFsL2NvcmUvZGF0ZXRpbWUvZGF0ZS1hZGFwdGVyLnRzXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEYXRlQWRhcHRlcjxUID0gYW55PiB7XG4gIC8qKlxuICAgKiBHZXQgdGhlIHllYXIgYXMgYSBudW1iZXIuXG4gICAqIEBwYXJhbSBkYXRlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0WWVhcihkYXRlOiBUKTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIG1vbnRoIGFzIGEgbnVtYmVyLlxuICAgKiBBdHRlbnRpb246IFRoaXMgcmV0dXJucyAxLTEyIGFuZCBtaXRpZ2F0ZXMgdGhlIGRlZmF1bHQgSmF2YVNjcmlwdCBEYXRlIGJlaGF2aW9yLlxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldE1vbnRoKGRhdGU6IFQpOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZGF5IG9mIHRoZSBtb250aCBhcyBhIG51bWJlci5cbiAgICogQHBhcmFtIGRhdGVcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXREYXRlKGRhdGU6IFQpOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgRGF5IG9mIHRoZSB3ZWVrIGFzIGEgbnVtYmVyLlxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldERheU9mV2VlayhkYXRlOiBUKTogbnVtYmVyO1xuXG4gIC8qIEdldCB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrICgwOiBzdW5kYXk7IDE6IG1vbmRheTsgZXRjLikuICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRGaXJzdERheU9mV2VlaygpOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbnVtYmVyIG9mIGRheXMgaW4gYSBtb250aC5cbiAgICogQHBhcmFtIHllYXJcbiAgICogQHBhcmFtIG1vbnRoXG4gICAqICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXROdW1EYXlzSW5Nb250aChkYXRlOiBUKTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBHZXQgYSBsaXN0IG9mIGFsbCB0aGUgbW9udGhzIGluIGEgZ2l2ZW4gc3R5bGUuXG4gICAqIEBwYXJhbSBzdHlsZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldE1vbnRoTmFtZXMoc3R5bGU6ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93Jyk6IHN0cmluZ1tdO1xuXG4gIC8qKiBHZXQgYSBzdHJpbmcgYXJyYXkgd2l0aCBsZW5ndGggPSAzMSwgZmlsbGVkIHdpdGggdGhlIGRheXMgaW4gYSBtb250aCwgc3RhcnRpbmcgZnJvbSAxLiAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0RGF0ZU5hbWVzKCk6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBHZXQgYSBsaXN0IG9mIGFsbCB0aGUgd2VlayBkYXlzIGluIGEgZ2l2ZW4gc3R5bGUuXG4gICAqIEBwYXJhbSBzdHlsZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldERheU9mV2Vla05hbWVzKHN0eWxlOiAnbG9uZycgfCAnc2hvcnQnIHwgJ25hcnJvdycpOiBzdHJpbmdbXTtcblxuICAvKiogQ3JlYXRlcyB0b2RheSdzIGRhdGUuICovXG4gIHB1YmxpYyBhYnN0cmFjdCB0b2RheSgpOiBUO1xuXG4gIC8qKlxuICAgKiBDaGVja3Mgd2hldGhlciBhIGdpdmVuIGBkYXRlYCBpcyB2YWxpZC5cbiAgICogQHBhcmFtIGRhdGVcbiAgICogKi9cbiAgcHVibGljIGFic3RyYWN0IGlzVmFsaWQoZGF0ZTogVCB8IG51bGwgfCB1bmRlZmluZWQpOiBib29sZWFuO1xuXG4gIC8qKiBDcmVhdGVzIGEgbmV3IGRhdGUgYnkgY2xvbmluZyB0aGUgZ2l2ZW4gb25lLlxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKiAqL1xuICBwdWJsaWMgYWJzdHJhY3QgY2xvbmUoZGF0ZTogVCk6IFQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSwgZ2l2ZW4gZGF5LCBtb250aCBhbmQgeWVhcjsgd2l0aG91dCBkYXRlJ3Mgb3ZlcmZsb3cuXG4gICAqIEBwYXJhbSB5ZWFyXG4gICAqIEBwYXJhbSBtb250aCBUaGUgbW9udGggb2YgdGhlIGRhdGUgKDEtaW5kZXhlZCwgMSA9IEphbnVhcnkpLiBNdXN0IGJlIGFuIGludGVnZXIgMSAtIDEyLlxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKiAqL1xuICBwdWJsaWMgYWJzdHJhY3QgY3JlYXRlRGF0ZSh5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIsIGRhdGU6IG51bWJlcik6IFQ7XG5cbiAgLyoqXG4gICAqIEF0dGVtcHRzIHRvIGRlc2VyaWFsaXplIGEgdmFsdWUgdG8gYSB2YWxpZCBkYXRlIG9iamVjdC4gVGhpcyBpcyBkaWZmZXJlbnQgZnJvbSBwYXJzaW5nIGluIHRoYXRcbiAgICogZGVzZXJpYWxpemUgc2hvdWxkIG9ubHkgYWNjZXB0IG5vbi1hbWJpZ3VvdXMsIGxvY2FsZS1pbmRlcGVuZGVudCBmb3JtYXRzIChlLmcuIGEgSVNPIDg2MDFcbiAgICogc3RyaW5nKS4gVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gZG9lcyBub3QgYWxsb3cgYW55IGRlc2VyaWFsaXphdGlvbiwgaXQgc2ltcGx5IGNoZWNrcyB0aGF0XG4gICAqIHRoZSBnaXZlbiB2YWx1ZSBpcyBhbHJlYWR5IGEgdmFsaWQgZGF0ZSBvYmplY3Qgb3IgbnVsbC5cbiAgICogQHBhcmFtIHZhbHVlIEVpdGhlciBEYXRlLCBJU09TdHJpbmcsIFVuaXggVGltZXN0YW1wIChudW1iZXIgb2Ygc2Vjb25kcyBzaW5jZSBKYW4gMSwgMTk3MCkuXG4gICAqIEByZXR1cm5zIFRoZSBkYXRlIGlmIHRoZSBpbnB1dCBpcyB2YWxpZCwgYG51bGxgIG90aGVyd2lzZS5cbiAgICogKi9cbiAgcHVibGljIGRlc2VyaWFsaXplKHZhbHVlOiBUIHwgc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCk6IFQgfCBudWxsIHtcbiAgICBpZiAoXG4gICAgICB2YWx1ZSA9PSBudWxsIHx8XG4gICAgICAodGhpcy5pc0RhdGVJbnN0YW5jZSh2YWx1ZSkgJiYgdGhpcy5pc1ZhbGlkKHZhbHVlIGFzIFQgfCBudWxsIHwgdW5kZWZpbmVkKSlcbiAgICApIHtcbiAgICAgIHJldHVybiB2YWx1ZSBhcyBUIHwgbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaW52YWxpZCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgeWVhcnNgIHRvIHRoZSBwcm92aWRlZCBgZGF0ZWAuXG4gICAqIEBwYXJhbSBkYXRlIFRoZSBzdGFydGluZyBkYXRlLlxuICAgKiBAcGFyYW0geWVhcnMgVGhlIG51bWJlciBvZiB5ZWFycyB0byBhZGQuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgYWRkQ2FsZW5kYXJZZWFycyhkYXRlOiBULCB5ZWFyczogbnVtYmVyKTogVDtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBkYXRlIGFkZGluZyB0aGUgbnVtYmVyIG9mIHByb3ZpZGVkIGBtb250aHNgIHRvIHRoZSBwcm92aWRlZCBgZGF0ZWAuXG4gICAqIElmIHRoZSBjYWxjdWxhdGVkIG1vbnRoIGhhcyBmZXdlciBkYXlzIHRoYW4gdGhlIG9yaWdpbmFsIG9uZSwgdGhlIGRhdGUgaXMgc2V0IHRvIHRoZSBsYXN0IGRheSBvZiB0aGUgbW9udGguXG4gICAqIEUuZy4gd2l0aCBgZGF0ZWAgPSBuZXcgRGF0ZSgyMDIyLCAwLCAzMSkgYW5kIGBtb250aHNgID0gMSwgaXQgcmV0dXJucyBuZXcgRGF0ZSgyMDIyLCAxLCAyOCkuXG4gICAqIEBwYXJhbSBkYXRlIFRoZSBzdGFydGluZyBkYXRlLlxuICAgKiBAcGFyYW0gbW9udGhzIFRoZSBudW1iZXIgb2YgbW9udGhzIHRvIGFkZC5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBhZGRDYWxlbmRhck1vbnRocyhkYXRlOiBULCBtb250aHM6IG51bWJlcik6IFQ7XG5cbiAgLyoqIENyZWF0ZXMgYSBuZXcgZGF0ZSBieSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgZGF5c2AgdG8gdGhlIHByb3ZpZGVkIGBkYXRlYC5cbiAgICogQHBhcmFtIGRhdGUgVGhlIHN0YXJ0aW5nIGRhdGUuXG4gICAqIEBwYXJhbSBkYXlzIFRoZSBudW1iZXIgb2YgZGF5cyB0byBhZGQuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgYWRkQ2FsZW5kYXJEYXlzKGRhdGU6IFQsIGRheXM6IG51bWJlcik6IFQ7XG5cbiAgLyoqIEdldCB0aGUgZGF0ZSBpbiB0aGUgbG9jYWwgZm9ybWF0LlxuICAgKiBAcGFyYW0gZGF0ZSBUaGUgZGF0ZSB0byBmb3JtYXRcbiAgICogQHJldHVybnMgVGhlIGBkYXRlYCBpbiB0aGUgbG9jYWwgZm9ybWF0IGFzIHN0cmluZy5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRBY2Nlc3NpYmlsaXR5Rm9ybWF0RGF0ZShkYXRlOiBUIHwgc3RyaW5nKTogc3RyaW5nO1xuXG4gIC8qKiBHZXQgdGhlIGdpdmVuIHN0cmluZyBhcyBEYXRlLlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIGRhdGUgaW4gdGhlIGZvcm1hdCBERC5NTS5ZWVlZLlxuICAgKiBAcGFyYW0gbm93IFRoZSBjdXJyZW50IGRhdGUgYXMgRGF0ZS5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBwYXJzZSh2YWx1ZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCwgbm93OiBUKTogVCB8IHVuZGVmaW5lZDtcblxuICAvKiogRm9ybWF0IHRoZSBnaXZlbiBEYXRlIGFzIHN0cmluZy5cbiAgICogQHBhcmFtIGRhdGUgVGhlIGRhdGUgdG8gZm9ybWF0LlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGZvcm1hdChkYXRlOiBUIHwgbnVsbCB8IHVuZGVmaW5lZCk6IHN0cmluZztcblxuICAvKiogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIGBvYmpgIGlzIGEgRGF0ZS5cbiAgICogQHBhcmFtIG9iaiBUaGUgb2JqZWN0IHRvIGNoZWNrLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGlzRGF0ZUluc3RhbmNlKG9iajogYW55KTogYm9vbGVhbjtcblxuICAvKipcbiAgICogR2V0cyBkYXRlIGluc3RhbmNlIHRoYXQgaXMgbm90IHZhbGlkLlxuICAgKiBAcmV0dXJucyBBbiBpbnZhbGlkIGRhdGUuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgaW52YWxpZCgpOiBUO1xuXG4gIC8qKiBHZXQgdGhlIGdpdmVuIGRhdGUgYXMgSVNPIFN0cmluZy5cbiAgICogQHBhcmFtIGRhdGUgVGhlIGRhdGUgdG8gY29udmVydCB0byBJU08gU3RyaW5nLlxuICAgKi9cbiAgcHVibGljIHRvSXNvODYwMShkYXRlOiBUKTogc3RyaW5nIHtcbiAgICBjb25zdCBwYWQgPSAodmFsdWU6IG51bWJlciwgbGVuZ3RoID0gMik6IHN0cmluZyA9PiBgJHt2YWx1ZX1gLnBhZFN0YXJ0KGxlbmd0aCwgJzAnKTtcbiAgICByZXR1cm4gYCR7cGFkKHRoaXMuZ2V0WWVhcihkYXRlKSwgNCl9LSR7cGFkKHRoaXMuZ2V0TW9udGgoZGF0ZSkpfS0ke3BhZCh0aGlzLmdldERhdGUoZGF0ZSkpfWA7XG4gIH1cblxuICAvKipcbiAgICogR2l2ZW4gYSBwb3RlbnRpYWwgZGF0ZSBvYmplY3QsIHJldHVybnMgdGhhdCBzYW1lIGRhdGUgb2JqZWN0IGlmIGl0IGlzXG4gICAqIGEgdmFsaWQgZGF0ZSwgb3IgYG51bGxgIGlmIGl0J3Mgbm90IGEgdmFsaWQgZGF0ZS5cbiAgICogQHBhcmFtIHZhbHVlIFRoZSBvYmplY3QgdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIEEgZGF0ZSBvciBgbnVsbGAuXG4gICAqL1xuICBwdWJsaWMgZ2V0VmFsaWREYXRlT3JOdWxsKHZhbHVlOiB1bmtub3duKTogVCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmlzRGF0ZUluc3RhbmNlKHZhbHVlKSAmJiB0aGlzLmlzVmFsaWQodmFsdWUgYXMgVCkgPyAodmFsdWUgYXMgVCkgOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZXMgdGhlIGRheSBvZiB0aGUgd2VlayBvZiB0aGUgZmlyc3QgZGF5IG9mIHRoZSBtb250aCwgYW5kIHRoZW4gaXRzIG9mZnNldCBmcm9tIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAqL1xuICBwdWJsaWMgZ2V0Rmlyc3RXZWVrT2Zmc2V0KGRhdGU6IFQpOiBudW1iZXIge1xuICAgIGNvbnN0IGZpcnN0T2ZNb250aCA9IHRoaXMuY3JlYXRlRGF0ZSh0aGlzLmdldFllYXIoZGF0ZSksIHRoaXMuZ2V0TW9udGgoZGF0ZSksIDEpITtcbiAgICByZXR1cm4gKFxuICAgICAgKERBWVNfUEVSX1JPVyArIHRoaXMuZ2V0RGF5T2ZXZWVrKGZpcnN0T2ZNb250aCkgLSB0aGlzLmdldEZpcnN0RGF5T2ZXZWVrKCkpICUgREFZU19QRVJfUk9XXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb21wYXJlcyB0d28gZGF0ZXMuXG4gICAqIEBwYXJhbSBmaXJzdCBUaGUgZmlyc3QgZGF0ZSB0byBjb21wYXJlLlxuICAgKiBAcGFyYW0gc2Vjb25kIFRoZSBzZWNvbmQgZGF0ZSB0byBjb21wYXJlLlxuICAgKiBAcmV0dXJucyAwIGlmIHRoZSBkYXRlcyBhcmUgZXF1YWwsIGEgbnVtYmVyIGxlc3MgdGhhbiAwIGlmIHRoZSBmaXJzdCBkYXRlIGlzIGVhcmxpZXIsXG4gICAqICAgICBhIG51bWJlciBncmVhdGVyIHRoYW4gMCBpZiB0aGUgZmlyc3QgZGF0ZSBpcyBsYXRlci5cbiAgICovXG4gIHB1YmxpYyBjb21wYXJlRGF0ZShmaXJzdDogVCwgc2Vjb25kOiBUKTogbnVtYmVyIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5nZXRZZWFyKGZpcnN0KSAtIHRoaXMuZ2V0WWVhcihzZWNvbmQpIHx8XG4gICAgICB0aGlzLmdldE1vbnRoKGZpcnN0KSAtIHRoaXMuZ2V0TW9udGgoc2Vjb25kKSB8fFxuICAgICAgdGhpcy5nZXREYXRlKGZpcnN0KSAtIHRoaXMuZ2V0RGF0ZShzZWNvbmQpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdHdvIGRhdGVzIGFyZSBlcXVhbC5cbiAgICogQHBhcmFtIGZpcnN0IFRoZSBmaXJzdCBkYXRlIHRvIGNoZWNrLlxuICAgKiBAcGFyYW0gc2Vjb25kIFRoZSBzZWNvbmQgZGF0ZSB0byBjaGVjay5cbiAgICogQHJldHVybnMgV2hldGhlciB0aGUgdHdvIGRhdGVzIGFyZSBlcXVhbC5cbiAgICogICAgIE51bGwgZGF0ZXMgYXJlIGNvbnNpZGVyZWQgZXF1YWwgdG8gb3RoZXIgbnVsbCBkYXRlcy5cbiAgICovXG4gIHB1YmxpYyBzYW1lRGF0ZShmaXJzdDogVCB8IG51bGwsIHNlY29uZDogVCB8IG51bGwpOiBib29sZWFuIHtcbiAgICBpZiAoZmlyc3QgJiYgc2Vjb25kKSB7XG4gICAgICBjb25zdCBmaXJzdFZhbGlkID0gdGhpcy5pc1ZhbGlkKGZpcnN0KTtcbiAgICAgIGNvbnN0IHNlY29uZFZhbGlkID0gdGhpcy5pc1ZhbGlkKHNlY29uZCk7XG4gICAgICBpZiAoZmlyc3RWYWxpZCAmJiBzZWNvbmRWYWxpZCkge1xuICAgICAgICByZXR1cm4gIXRoaXMuY29tcGFyZURhdGUoZmlyc3QsIHNlY29uZCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmlyc3RWYWxpZCA9PSBzZWNvbmRWYWxpZDtcbiAgICB9XG4gICAgcmV0dXJuIGZpcnN0ID09IHNlY29uZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGFtcCB0aGUgZ2l2ZW4gZGF0ZSBiZXR3ZWVuIG1pbiBhbmQgbWF4IGRhdGVzLlxuICAgKiBAcGFyYW0gZGF0ZSBUaGUgZGF0ZSB0byBjbGFtcC5cbiAgICogQHBhcmFtIG1pbiBUaGUgbWluaW11bSB2YWx1ZSB0byBhbGxvdy4gSWYgbnVsbCBvciBvbWl0dGVkIG5vIG1pbiBpcyBlbmZvcmNlZC5cbiAgICogQHBhcmFtIG1heCBUaGUgbWF4aW11bSB2YWx1ZSB0byBhbGxvdy4gSWYgbnVsbCBvciBvbWl0dGVkIG5vIG1heCBpcyBlbmZvcmNlZC5cbiAgICogQHJldHVybnMgYG1pbmAgaWYgYGRhdGVgIGlzIGxlc3MgdGhhbiBgbWluYCwgYG1heGAgaWYgZGF0ZSBpcyBncmVhdGVyIHRoYW4gYG1heGAsXG4gICAqICAgICBvdGhlcndpc2UgYGRhdGVgLlxuICAgKi9cbiAgcHVibGljIGNsYW1wRGF0ZShkYXRlOiBULCBtaW4/OiBUIHwgbnVsbCwgbWF4PzogVCB8IG51bGwpOiBUIHtcbiAgICBpZiAobWluICYmIHRoaXMuY29tcGFyZURhdGUoZGF0ZSwgbWluKSA8IDApIHtcbiAgICAgIHJldHVybiBtaW47XG4gICAgfVxuICAgIGlmIChtYXggJiYgdGhpcy5jb21wYXJlRGF0ZShkYXRlLCBtYXgpID4gMCkge1xuICAgICAgcmV0dXJuIG1heDtcbiAgICB9XG4gICAgcmV0dXJuIGRhdGU7XG4gIH1cbn1cbiIsImltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiRGF0ZUxpa2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzLmpzJztcblxuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIsIEZPUk1BVF9EQVRFIH0gZnJvbSAnLi9kYXRlLWFkYXB0ZXIuanMnO1xuXG4vKipcbiAqIE1hdGNoZXMgc3RyaW5ncyB0aGF0IGhhdmUgdGhlIGZvcm0gb2YgYSB2YWxpZCBSRkMgMzMzOSBzdHJpbmdcbiAqIChodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMzMzOSkuIE5vdGUgdGhhdCB0aGUgc3RyaW5nIG1heSBub3QgYWN0dWFsbHkgYmUgYSB2YWxpZCBkYXRlXG4gKiBiZWNhdXNlIHRoZSByZWdleCB3aWxsIG1hdGNoIHN0cmluZ3MgYW4gd2l0aG91dCBvZiBib3VuZHMgbW9udGgsIGRhdGUsIGV0Yy5cbiAqL1xuY29uc3QgSVNPXzg2MDFfUkVHRVggPVxuICAvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9KD86VFxcZHsyfTpcXGR7Mn06XFxkezJ9KD86XFwuXFxkKyk/KD86WnwoPzooPzpcXCt8LSlcXGR7Mn06XFxkezJ9KSk/KT8kLztcblxuZXhwb3J0IGNsYXNzIE5hdGl2ZURhdGVBZGFwdGVyIGV4dGVuZHMgRGF0ZUFkYXB0ZXI8RGF0ZT4ge1xuICBwcml2YXRlIHJlYWRvbmx5IF9jdXRvZmZZZWFyT2Zmc2V0OiBudW1iZXI7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKGN1dG9mZlllYXJPZmZzZXQ6IG51bWJlciA9IDE1KSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLl9jdXRvZmZZZWFyT2Zmc2V0ID0gY3V0b2ZmWWVhck9mZnNldDtcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSB5ZWFyIG9mIHRoZSBpbnB1dCBkYXRlLiAqL1xuICBwdWJsaWMgZ2V0WWVhcihkYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZGF0ZS5nZXRGdWxsWWVhcigpO1xuICB9XG5cbiAgLyoqIEdldHMgdGhlIG1vbnRoIG9mIHRoZSBpbnB1dCBkYXRlLiAqL1xuICBwdWJsaWMgZ2V0TW9udGgoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUuZ2V0TW9udGgoKSArIDE7XG4gIH1cblxuICAvKiogR2V0cyB0aGUgZGF5IG9mIHRoZSBpbnB1dCBkYXRlLiAqL1xuICBwdWJsaWMgZ2V0RGF0ZShkYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZGF0ZS5nZXREYXRlKCk7XG4gIH1cblxuICAvKiogR2V0cyB0aGUgZGF5IG9mIHRoZSB3ZWVrIG9mIHRoZSBpbnB1dCBkYXRlLiAqL1xuICBwdWJsaWMgZ2V0RGF5T2ZXZWVrKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiBkYXRlLmdldERheSgpO1xuICB9XG5cbiAgLyoqIEdldHMgdGhlIGRhdGUgaW4gdGhlIGxvY2FsIGZvcm1hdC4gKi9cbiAgcHVibGljIGdldEFjY2Vzc2liaWxpdHlGb3JtYXREYXRlKGRhdGU6IERhdGUgfCBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IG9wdGlvbnM6IEludGwuRGF0ZVRpbWVGb3JtYXRPcHRpb25zID0ge1xuICAgICAgeWVhcjogJ251bWVyaWMnLFxuICAgICAgbW9udGg6ICdsb25nJyxcbiAgICAgIGRheTogJ251bWVyaWMnLFxuICAgIH07XG4gICAgcmV0dXJuIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFNiYkxhbmd1YWdlQ29udHJvbGxlci5jdXJyZW50LCBvcHRpb25zKS5mb3JtYXQobmV3IERhdGUoZGF0ZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gYXJyYXkgb2Ygc3RyaW5ncyB3aXRoIGxlbmd0aCA9IDEyLCBmaWxsZWQgd2l0aCB0aGUgbmFtZSBvZiB0aGUgbW9udGhzIHN0YXJ0aW5nIGZyb20gSmFudWFyeSwgaW4gdGhlIGRvY3VtZW50IGxhbmd1YWdlLlxuICAgKiBAcGFyYW0gc3R5bGUgU2VlIGBtb250aGAgaW4gYERhdGVUaW1lRm9ybWF0T3B0aW9uc2A6IGBsb25nYCBmb3IgZnVsbCBuYW1lLCBgc2hvcnRgIGZvciBzaG9ydCBuYW1lLCBgbmFycm93YCBmb3Igc2luZ2xlIGxldHRlcixcbiAgICogRS5nLiwgd2l0aCBKYW51YXJ5IGluIGVuLWdiOiBgbG9uZ2AgcmV0dXJucyBcIkphbnVhcnlcIiwgYHNob3J0YCByZXR1cm5zIFwiSmFuXCIsIGBuYXJyb3dgIHJldHVybnMgXCJKXCIuXG4gICAqL1xuICBwdWJsaWMgZ2V0TW9udGhOYW1lcyhzdHlsZTogJ2xvbmcnIHwgJ3Nob3J0JyB8ICduYXJyb3cnKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGZvcm1hdHRlciA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFNiYkxhbmd1YWdlQ29udHJvbGxlci5jdXJyZW50LCB7IG1vbnRoOiBzdHlsZSB9KTtcbiAgICByZXR1cm4gdGhpcy5fcmFuZ2UoMTIsIChpKSA9PiBmb3JtYXR0ZXIuZm9ybWF0KG5ldyBEYXRlKDIwMTcsIGksIDEpKSk7XG4gIH1cblxuICAvKiogQ3JlYXRlcyBhIHN0cmluZyBhcnJheSB3aXRoIGxlbmd0aCA9IDMxLCBmaWxsZWQgd2l0aCB0aGUgZGF5cyBpbiBhIG1vbnRoLCBzdGFydGluZyBmcm9tIDEuICovXG4gIHB1YmxpYyBnZXREYXRlTmFtZXMoKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGZvcm1hdHRlciA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFNiYkxhbmd1YWdlQ29udHJvbGxlci5jdXJyZW50LCB7IGRheTogJ251bWVyaWMnIH0pO1xuICAgIHJldHVybiB0aGlzLl9yYW5nZSgzMSwgKGkpID0+IGZvcm1hdHRlci5mb3JtYXQobmV3IERhdGUoMjAxNywgMCwgaSArIDEpKSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHN0cmluZyBhcnJheSB3aXRoIGxlbmd0aCA9IDcsIGZpbGxlZCB3aXRoIHRoZSBuYW1lIG9mIHRoZSBkYXlzIGluIGEgd2VlayBzdGFydGluZyBmcm9tIFN1bmRheSwgaW4gdGhlIGRvY3VtZW50IGxhbmd1YWdlLlxuICAgKiBAcGFyYW0gc3R5bGUgU2VlIGB3ZWVrZGF5YCBpbiBgRGF0ZVRpbWVGb3JtYXRPcHRpb25zYCAtICdsb25nJyBmb3IgZnVsbCBuYW1lLCAnc2hvcnQnIGZvciBzaG9ydCBuYW1lLCAnbmFycm93JyBmb3Igc2luZ2xlIGxldHRlcjtcbiAgICogRS5nLiwgd2l0aCBNb25kYXkgaW4gZW4tZ2I6IGBsb25nYCByZXR1cm5zIFwiTW9uZGF5XCIsIGBzaG9ydGAgcmV0dXJucyBcIk1vblwiLCBgbmFycm93YCByZXR1cm5zIFwiTVwiLlxuICAgKi9cbiAgcHVibGljIGdldERheU9mV2Vla05hbWVzKHN0eWxlOiAnbG9uZycgfCAnc2hvcnQnIHwgJ25hcnJvdycpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgZm9ybWF0dGVyID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoU2JiTGFuZ3VhZ2VDb250cm9sbGVyLmN1cnJlbnQsIHsgd2Vla2RheTogc3R5bGUgfSk7XG4gICAgcmV0dXJuIHRoaXMuX3JhbmdlKDcsIChpKSA9PiBmb3JtYXR0ZXIuZm9ybWF0KG5ldyBEYXRlKDIwMTcsIDAsIGkgKyAxKSkpO1xuICB9XG5cbiAgLyogRGVmaW5lcyB3aGljaCBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrICgwOiBzdW5kYXk7IDE6IG1vbmRheTsgZXRjLikuICovXG4gIHB1YmxpYyBnZXRGaXJzdERheU9mV2VlaygpOiBudW1iZXIge1xuICAgIHJldHVybiAxO1xuICB9XG5cbiAgLyoqIENhbGN1bGF0ZXMgdGhlIG51bWJlciBvZiBkYXlzIGluIGEgbW9udGggZ2l2ZW4gdGhlIHllYXIgYW5kIHRoZSBtb250aC4gKi9cbiAgcHVibGljIGdldE51bURheXNJbk1vbnRoKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldERhdGUodGhpcy5fY3JlYXRlRGF0ZVdpdGhPdmVyZmxvdyh0aGlzLmdldFllYXIoZGF0ZSksIHRoaXMuZ2V0TW9udGgoZGF0ZSksIDApKTtcbiAgfVxuXG4gIC8qKiBDcmVhdGVzIHRvZGF5J3MgZGF0ZS4gKi9cbiAgcHVibGljIHRvZGF5KCk6IERhdGUge1xuICAgIHJldHVybiBuZXcgRGF0ZShuZXcgRGF0ZSgpLnNldEhvdXJzKDAsIDAsIDAsIDApKTtcbiAgfVxuXG4gIC8qKiBDcmVhdGVzIGEgbmV3IGRhdGUsIGdpdmVuIGRheSwgbW9udGggYW5kIHllYXI7IHRoZSBtZXRob2QgZG9lc24ndCBhbGxvdyBkYXRlJ3Mgb3ZlcmZsb3cuICovXG4gIHB1YmxpYyBjcmVhdGVEYXRlKHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlciwgZGF0ZTogbnVtYmVyKTogRGF0ZSB7XG4gICAgLy8gQ2hlY2sgZm9yIGludmFsaWQgbW9udGggYW5kIGRhdGUgKGV4Y2VwdCB1cHBlciBib3VuZCBvbiBkYXRlIHdoaWNoIHdlIGhhdmUgdG8gY2hlY2sgYWZ0ZXIgY3JlYXRpbmcgdGhlIERhdGUpLlxuICAgIGlmIChtb250aCA8IDEgfHwgbW9udGggPiAxMikge1xuICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgbW9udGggaW5kZXggXCIke21vbnRofVwiLiBNb250aCBpbmRleCBoYXMgdG8gYmUgYmV0d2VlbiAxIGFuZCAxMi5gKTtcbiAgICB9XG5cbiAgICBpZiAoZGF0ZSA8IDEpIHtcbiAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIGRhdGUgXCIke2RhdGV9XCIuIERhdGUgaGFzIHRvIGJlIGdyZWF0ZXIgdGhhbiAwLmApO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX2NyZWF0ZURhdGVXaXRoT3ZlcmZsb3coeWVhciwgbW9udGggLSAxLCBkYXRlKTtcbiAgICAvLyBDaGVjayB0aGF0IHRoZSBkYXRlIHdhc24ndCBhYm92ZSB0aGUgdXBwZXIgYm91bmQgZm9yIHRoZSBtb250aCwgY2F1c2luZyB0aGUgbW9udGggdG8gb3ZlcmZsb3dcbiAgICBpZiAocmVzdWx0LmdldE1vbnRoKCkgKyAxICE9PSBtb250aCkge1xuICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgZGF0ZSBcIiR7ZGF0ZX1cIiBmb3IgbW9udGggd2l0aCBpbmRleCBcIiR7bW9udGh9XCIuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gYG9iamAgaXMgYSBEYXRlLiAqL1xuICBwdWJsaWMgaXNEYXRlSW5zdGFuY2Uob2JqOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gb2JqIGluc3RhbmNlb2YgRGF0ZTtcbiAgfVxuXG4gIC8qKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gYGRhdGVgIGlzIGEgdmFsaWQgRGF0ZS4gKi9cbiAgcHVibGljIGlzVmFsaWQoZGF0ZTogRGF0ZSB8IG51bGwgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISFkYXRlICYmICFpc05hTihkYXRlLnZhbHVlT2YoKSk7XG4gIH1cblxuICAvKiogQ3JlYXRlcyBhIG5ldyBkYXRlIGJ5IGNsb25pbmcgdGhlIGdpdmVuIG9uZS4gKi9cbiAgcHVibGljIGNsb25lKGRhdGU6IERhdGUpOiBEYXRlIHtcbiAgICByZXR1cm4gbmV3IERhdGUoZGF0ZS52YWx1ZU9mKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgeWVhcnNgIHRvIHRoZSBwcm92aWRlZCBgZGF0ZWAuXG4gICAqIEBwYXJhbSBkYXRlIFRoZSBzdGFydGluZyBkYXRlLlxuICAgKiBAcGFyYW0geWVhcnMgVGhlIG51bWJlciBvZiB5ZWFycyB0byBhZGQuXG4gICAqL1xuICBwdWJsaWMgYWRkQ2FsZW5kYXJZZWFycyhkYXRlOiBEYXRlLCB5ZWFyczogbnVtYmVyKTogRGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkQ2FsZW5kYXJNb250aHMoZGF0ZSwgeWVhcnMgKiAxMik7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBkYXRlIGFkZGluZyB0aGUgbnVtYmVyIG9mIHByb3ZpZGVkIGBtb250aHNgIHRvIHRoZSBwcm92aWRlZCBgZGF0ZWAuXG4gICAqIElmIHRoZSBjYWxjdWxhdGVkIG1vbnRoIGhhcyBmZXdlciBkYXlzIHRoYW4gdGhlIG9yaWdpbmFsIG9uZSwgdGhlIGRhdGUgaXMgc2V0IHRvIHRoZSBsYXN0IGRheSBvZiB0aGUgbW9udGguXG4gICAqIEUuZy4sIHdpdGggYGRhdGVgID0gbmV3IERhdGUoMjAyMiwgMCwgMzEpIGFuZCBgbW9udGhzYCA9IDEsIGl0IHJldHVybnMgbmV3IERhdGUoMjAyMiwgMSwgMjgpLlxuICAgKi9cbiAgcHVibGljIGFkZENhbGVuZGFyTW9udGhzKGRhdGU6IERhdGUsIG1vbnRoczogbnVtYmVyKTogRGF0ZSB7XG4gICAgY29uc3QgdGFyZ2V0TW9udGggPSBkYXRlLmdldE1vbnRoKCkgKyBtb250aHM7XG4gICAgY29uc3QgZGF0ZVdpdGhDb3JyZWN0TW9udGggPSBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIHRhcmdldE1vbnRoLCAxLCAwLCAwLCAwLCAwKTtcbiAgICBjb25zdCBkYXlzSW5Nb250aCA9IHRoaXMuZ2V0TnVtRGF5c0luTW9udGgoZGF0ZVdpdGhDb3JyZWN0TW9udGgpO1xuICAgIC8vIEFkYXB0IHRoZSBsYXN0IGRheSBvZiBtb250aCBmb3Igc2hvcnRlciBtb250aHNcbiAgICByZXR1cm4gbmV3IERhdGUodGhpcy5jbG9uZShkYXRlKS5zZXRNb250aCh0YXJnZXRNb250aCwgTWF0aC5taW4oZGF5c0luTW9udGgsIGRhdGUuZ2V0RGF0ZSgpKSkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBuZXcgZGF0ZSBieSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgZGF5c2AgdG8gdGhlIHByb3ZpZGVkIGBkYXRlYC4gKi9cbiAgcHVibGljIGFkZENhbGVuZGFyRGF5cyhkYXRlOiBEYXRlLCBkYXlzOiBudW1iZXIpOiBEYXRlIHtcbiAgICBjb25zdCB0YXJnZXREYXkgPSBkYXRlLmdldERhdGUoKSArIGRheXM7XG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCB0YXJnZXREYXksIDAsIDAsIDAsIDApO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBEYXRlIGZyb20gYSB2YWxpZCBpbnB1dCAoRGF0ZSwgc3RyaW5nIG9yIG51bWJlciBpbiBzZWNvbmRzKS4gKi9cbiAgcHVibGljIG92ZXJyaWRlIGRlc2VyaWFsaXplKGRhdGU6IFNiYkRhdGVMaWtlIHwgbnVsbCB8IHVuZGVmaW5lZCk6IERhdGUgfCBudWxsIHtcbiAgICBpZiAodHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAoIWRhdGUpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9IGVsc2UgaWYgKCFOdW1iZXIuaXNOYU4oK2RhdGUpKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFZhbGlkRGF0ZU9yTnVsbChuZXcgRGF0ZSgrZGF0ZSAqIDEwMDApKTtcblxuICAgICAgICAvLyBUaGUgYERhdGVgIGNvbnN0cnVjdG9yIGFjY2VwdHMgZm9ybWF0cyBvdGhlciB0aGFuIElTTyA4NjAxLCBzbyB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGVcbiAgICAgICAgLy8gc3RyaW5nIGlzIHRoZSByaWdodCBmb3JtYXQgZmlyc3QuXG4gICAgICB9IGVsc2UgaWYgKElTT184NjAxX1JFR0VYLnRlc3QoZGF0ZSkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsaWREYXRlT3JOdWxsKG5ldyBEYXRlKGRhdGUpKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBkYXRlID09PSAnbnVtYmVyJykge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsaWREYXRlT3JOdWxsKG5ldyBEYXRlKGRhdGUgKiAxMDAwKSk7XG4gICAgfVxuICAgIHJldHVybiBzdXBlci5kZXNlcmlhbGl6ZShkYXRlKTtcbiAgfVxuXG4gIC8qKiBSZXR1cm5zIHRoZSByaWdodCBmb3JtYXQgZm9yIHRoZSBgdmFsdWVBc0RhdGVgIHByb3BlcnR5LiAqL1xuICBwdWJsaWMgcGFyc2UodmFsdWU6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQsIG5vdzogRGF0ZSk6IERhdGUgfCB1bmRlZmluZWQge1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RyaXBwZWRWYWx1ZSA9IHZhbHVlLnJlcGxhY2UoL1xcRC9nLCAnICcpLnRyaW0oKTtcblxuICAgIGNvbnN0IG1hdGNoOiBSZWdFeHBNYXRjaEFycmF5IHwgbnVsbCB8IHVuZGVmaW5lZCA9IHN0cmlwcGVkVmFsdWU/Lm1hdGNoKEZPUk1BVF9EQVRFKTtcbiAgICBpZiAoXG4gICAgICAhbWF0Y2ggfHxcbiAgICAgIG1hdGNoLmluZGV4ICE9PSAwIHx8XG4gICAgICBtYXRjaC5sZW5ndGggPD0gMiB8fFxuICAgICAgbWF0Y2guc29tZSgoZSkgPT4gZSA9PT0gdW5kZWZpbmVkKSB8fFxuICAgICAgIXRoaXMuaXNWYWxpZCh0aGlzLmNyZWF0ZURhdGUoK21hdGNoWzNdLCArbWF0Y2hbMl0sICttYXRjaFsxXSkpXG4gICAgKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGxldCB5ZWFyID0gK21hdGNoWzNdO1xuXG4gICAgaWYgKHR5cGVvZiB5ZWFyID09PSAnbnVtYmVyJyAmJiB5ZWFyIDwgMTAwICYmIHllYXIgPj0gMCkge1xuICAgICAgY29uc3Qgc2hpZnQgPSBub3cuZ2V0RnVsbFllYXIoKSAtIDIwMDAgKyB0aGlzLl9jdXRvZmZZZWFyT2Zmc2V0O1xuICAgICAgeWVhciA9IHllYXIgPD0gc2hpZnQgPyAyMDAwICsgeWVhciA6IDE5MDAgKyB5ZWFyO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgRGF0ZSh5ZWFyLCArbWF0Y2hbMl0gLSAxLCArbWF0Y2hbMV0pO1xuICB9XG5cbiAgcHVibGljIGZvcm1hdCh2YWx1ZTogRGF0ZSB8IG51bGwgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgY29uc3QgbG9jYWxlID0gYCR7U2JiTGFuZ3VhZ2VDb250cm9sbGVyLmN1cnJlbnR9LUNIYDtcbiAgICBjb25zdCBkYXRlRm9ybWF0dGVyID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoJ2RlLUNIJywge1xuICAgICAgZGF5OiAnMi1kaWdpdCcsXG4gICAgICBtb250aDogJzItZGlnaXQnLFxuICAgICAgeWVhcjogJ251bWVyaWMnLFxuICAgIH0pO1xuICAgIGNvbnN0IGRheUZvcm1hdHRlciA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KGxvY2FsZSwge1xuICAgICAgd2Vla2RheTogJ3Nob3J0JyxcbiAgICB9KTtcblxuICAgIGxldCB3ZWVrZGF5ID0gZGF5Rm9ybWF0dGVyLmZvcm1hdCh2YWx1ZSk7XG4gICAgd2Vla2RheSA9IHdlZWtkYXkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB3ZWVrZGF5LmNoYXJBdCgxKTtcblxuICAgIHJldHVybiBgJHt3ZWVrZGF5fSwgJHtkYXRlRm9ybWF0dGVyLmZvcm1hdCh2YWx1ZSl9YDtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBpbnZhbGlkKCk6IERhdGUge1xuICAgIHJldHVybiBuZXcgRGF0ZShOYU4pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gYXJyYXkgd2l0aCB0aGUgZ2l2ZW4gbGVuZ3RoIGFuZCBmaWxscyBpdCBieSBtYXBwaW5nIHdpdGggdGhlIHByb3ZpZGVkIGZ1bmN0aW9uLlxuICAgKiBAcGFyYW0gbGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIGFycmF5IHRvIGJlIGNyZWF0ZWQuXG4gICAqIEBwYXJhbSB2YWx1ZUZ1bmN0aW9uIFRoZSBmdW5jdGlvbiBvZiBhcnJheSdzIGluZGV4IHVzZWQgdG8gZmlsbCB0aGUgYXJyYXkuXG4gICAqL1xuICBwcml2YXRlIF9yYW5nZTxUPihsZW5ndGg6IG51bWJlciwgdmFsdWVGdW5jdGlvbjogKGluZGV4OiBudW1iZXIpID0+IFQpOiBUW10ge1xuICAgIGNvbnN0IHZhbHVlc0FycmF5ID0gQXJyYXkobGVuZ3RoKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICB2YWx1ZXNBcnJheVtpXSA9IHZhbHVlRnVuY3Rpb24oaSk7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZXNBcnJheTtcbiAgfVxuXG4gIC8qKiBDcmVhdGVzIGEgZGF0ZSBidXQgYWxsb3dzIHRoZSBtb250aCBhbmQgZGF0ZSB0byBvdmVyZmxvdy4gKi9cbiAgcHJpdmF0ZSBfY3JlYXRlRGF0ZVdpdGhPdmVyZmxvdyh5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIsIGRhdGU6IG51bWJlcik6IERhdGUge1xuICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBEYXRlKHllYXIsIG1vbnRoLCBkYXRlKTtcbiAgICAvLyBXZSBuZWVkIHRvIGNvcnJlY3QgZm9yIHRoZSBmYWN0IHRoYXQgSlMgbmF0aXZlIERhdGUgdHJlYXRzIHllYXJzIGluIHJhbmdlIFswLCA5OV0gYXNcbiAgICAvLyBhYmJyZXZpYXRpb25zIGZvciAxOXh4LlxuICAgIGlmICh5ZWFyID49IDAgJiYgeWVhciA8IDEwMCkge1xuICAgICAgcmVzdWx0LnNldEZ1bGxZZWFyKHRoaXMuZ2V0WWVhcihyZXN1bHQpIC0gMTkwMCk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGRlZmF1bHREYXRlQWRhcHRlciA9IG5ldyBOYXRpdmVEYXRlQWRhcHRlcigpO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBTyxNQUFNLGVBQXVCO0FBQzdC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
293
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2RhdGV0aW1lL2RhdGUtYWRhcHRlci50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2RhdGV0aW1lL25hdGl2ZS1kYXRlLWFkYXB0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IERBWVNfUEVSX1JPVzogbnVtYmVyID0gNztcbmV4cG9ydCBjb25zdCBNT05USFNfUEVSX1JPVzogbnVtYmVyID0gNDtcbmV4cG9ydCBjb25zdCBZRUFSU19QRVJfUk9XOiBudW1iZXIgPSA0O1xuZXhwb3J0IGNvbnN0IFlFQVJTX1BFUl9QQUdFOiBudW1iZXIgPSAyNDtcbmV4cG9ydCBjb25zdCBGT1JNQVRfREFURSA9XG4gIC8oXjA/WzEtOV0/fFsxMl0/WzAtOV0/fDM/WzAxXT8pWy4sXFxcXC9cXC1cXHNdKDA/WzEtOV0/fDE/WzAtMl0/KT9bLixcXFxcL1xcLVxcc10oXFxkezEsNH0kKT8vO1xuXG4vLyBUT0RPKGJyZWFraW5nLWNoYW5nZSk6IENoYW5nZSB1bmRlZmluZWQgcmV0dXJuIHR5cGVzIHRvIG51bGwuXG5cbi8qKlxuICogQWJzdHJhY3QgZGF0ZSBmdW5jdGlvbmFsaXR5LlxuICpcbiAqIEFkYXB0ZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9jb21wb25lbnRzL2Jsb2IvbWFpbi9zcmMvbWF0ZXJpYWwvY29yZS9kYXRldGltZS9kYXRlLWFkYXB0ZXIudHNcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIERhdGVBZGFwdGVyPFQgPSBhbnk+IHtcbiAgLyoqXG4gICAqIEdldCB0aGUgeWVhciBhcyBhIG51bWJlci5cbiAgICogQHBhcmFtIGRhdGVcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRZZWFyKGRhdGU6IFQpOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbW9udGggYXMgYSBudW1iZXIuXG4gICAqIEF0dGVudGlvbjogVGhpcyByZXR1cm5zIDEtMTIgYW5kIG1pdGlnYXRlcyB0aGUgZGVmYXVsdCBKYXZhU2NyaXB0IERhdGUgYmVoYXZpb3IuXG4gICAqIEBwYXJhbSBkYXRlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0TW9udGgoZGF0ZTogVCk6IG51bWJlcjtcblxuICAvKipcbiAgICogR2V0IHRoZSBkYXkgb2YgdGhlIG1vbnRoIGFzIGEgbnVtYmVyLlxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldERhdGUoZGF0ZTogVCk6IG51bWJlcjtcblxuICAvKipcbiAgICogR2V0IHRoZSBEYXkgb2YgdGhlIHdlZWsgYXMgYSBudW1iZXIuXG4gICAqIEBwYXJhbSBkYXRlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0RGF5T2ZXZWVrKGRhdGU6IFQpOiBudW1iZXI7XG5cbiAgLyoqIEdldCB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrICgwOiBzdW5kYXk7IDE6IG1vbmRheTsgZXRjLikuICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRGaXJzdERheU9mV2VlaygpOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbnVtYmVyIG9mIGRheXMgaW4gYSBtb250aC5cbiAgICogQHBhcmFtIHllYXJcbiAgICogQHBhcmFtIG1vbnRoXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0TnVtRGF5c0luTW9udGgoZGF0ZTogVCk6IG51bWJlcjtcblxuICAvKipcbiAgICogR2V0IGEgbGlzdCBvZiBhbGwgdGhlIG1vbnRocyBpbiBhIGdpdmVuIHN0eWxlLlxuICAgKiBAcGFyYW0gc3R5bGVcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRNb250aE5hbWVzKHN0eWxlOiAnbG9uZycgfCAnc2hvcnQnIHwgJ25hcnJvdycpOiBzdHJpbmdbXTtcblxuICAvKiogR2V0IGEgc3RyaW5nIGFycmF5IHdpdGggbGVuZ3RoID0gMzEsIGZpbGxlZCB3aXRoIHRoZSBkYXlzIGluIGEgbW9udGgsIHN0YXJ0aW5nIGZyb20gMS4gKi9cbiAgcHVibGljIGFic3RyYWN0IGdldERhdGVOYW1lcygpOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogR2V0IGEgbGlzdCBvZiBhbGwgdGhlIHdlZWsgZGF5cyBpbiBhIGdpdmVuIHN0eWxlLlxuICAgKiBAcGFyYW0gc3R5bGVcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXREYXlPZldlZWtOYW1lcyhzdHlsZTogJ2xvbmcnIHwgJ3Nob3J0JyB8ICduYXJyb3cnKTogc3RyaW5nW107XG5cbiAgLyoqIENyZWF0ZXMgdG9kYXkncyBkYXRlLiAqL1xuICBwdWJsaWMgYWJzdHJhY3QgdG9kYXkoKTogVDtcblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgYSBnaXZlbiBgZGF0ZWAgaXMgdmFsaWQuXG4gICAqIEBwYXJhbSBkYXRlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgaXNWYWxpZChkYXRlOiBUIHwgbnVsbCB8IHVuZGVmaW5lZCk6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBieSBjbG9uaW5nIHRoZSBnaXZlbiBvbmUuXG4gICAqIEBwYXJhbSBkYXRlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgY2xvbmUoZGF0ZTogVCk6IFQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSwgZ2l2ZW4gZGF5LCBtb250aCBhbmQgeWVhcjsgd2l0aG91dCBkYXRlJ3Mgb3ZlcmZsb3cuXG4gICAqIEBwYXJhbSB5ZWFyXG4gICAqIEBwYXJhbSBtb250aCBUaGUgbW9udGggb2YgdGhlIGRhdGUgKDEtaW5kZXhlZCwgMSA9IEphbnVhcnkpLiBNdXN0IGJlIGFuIGludGVnZXIgMSAtIDEyLlxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGNyZWF0ZURhdGUoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyLCBkYXRlOiBudW1iZXIpOiBUO1xuXG4gIC8qKlxuICAgKiBBdHRlbXB0cyB0byBkZXNlcmlhbGl6ZSBhIHZhbHVlIHRvIGEgdmFsaWQgZGF0ZSBvYmplY3QuIFRoaXMgaXMgZGlmZmVyZW50IGZyb20gcGFyc2luZyBpbiB0aGF0XG4gICAqIGRlc2VyaWFsaXplIHNob3VsZCBvbmx5IGFjY2VwdCBub24tYW1iaWd1b3VzLCBsb2NhbGUtaW5kZXBlbmRlbnQgZm9ybWF0cyAoZS5nLiBhIElTTyA4NjAxXG4gICAqIHN0cmluZykuIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGRvZXMgbm90IGFsbG93IGFueSBkZXNlcmlhbGl6YXRpb24sIGl0IHNpbXBseSBjaGVja3MgdGhhdFxuICAgKiB0aGUgZ2l2ZW4gdmFsdWUgaXMgYWxyZWFkeSBhIHZhbGlkIGRhdGUgb2JqZWN0IG9yIG51bGwuXG4gICAqIEBwYXJhbSB2YWx1ZSBFaXRoZXIgRGF0ZSwgSVNPU3RyaW5nLCBVbml4IFRpbWVzdGFtcCAobnVtYmVyIG9mIHNlY29uZHMgc2luY2UgSmFuIDEsIDE5NzApLlxuICAgKiBAcmV0dXJucyBUaGUgZGF0ZSBpZiB0aGUgaW5wdXQgaXMgdmFsaWQsIGBudWxsYCBvdGhlcndpc2UuXG4gICAqL1xuICBwdWJsaWMgZGVzZXJpYWxpemUodmFsdWU6IFQgfCBzdHJpbmcgfCBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkKTogVCB8IG51bGwge1xuICAgIGlmIChcbiAgICAgIHZhbHVlID09IG51bGwgfHxcbiAgICAgICh0aGlzLmlzRGF0ZUluc3RhbmNlKHZhbHVlKSAmJiB0aGlzLmlzVmFsaWQodmFsdWUgYXMgVCB8IG51bGwgfCB1bmRlZmluZWQpKVxuICAgICkge1xuICAgICAgcmV0dXJuIHZhbHVlIGFzIFQgfCBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5pbnZhbGlkKCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBkYXRlIGFkZGluZyB0aGUgbnVtYmVyIG9mIHByb3ZpZGVkIGB5ZWFyc2AgdG8gdGhlIHByb3ZpZGVkIGBkYXRlYC5cbiAgICogQHBhcmFtIGRhdGUgVGhlIHN0YXJ0aW5nIGRhdGUuXG4gICAqIEBwYXJhbSB5ZWFycyBUaGUgbnVtYmVyIG9mIHllYXJzIHRvIGFkZC5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBhZGRDYWxlbmRhclllYXJzKGRhdGU6IFQsIHllYXJzOiBudW1iZXIpOiBUO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGRhdGUgYWRkaW5nIHRoZSBudW1iZXIgb2YgcHJvdmlkZWQgYG1vbnRoc2AgdG8gdGhlIHByb3ZpZGVkIGBkYXRlYC5cbiAgICogSWYgdGhlIGNhbGN1bGF0ZWQgbW9udGggaGFzIGZld2VyIGRheXMgdGhhbiB0aGUgb3JpZ2luYWwgb25lLCB0aGUgZGF0ZSBpcyBzZXQgdG8gdGhlIGxhc3QgZGF5IG9mIHRoZSBtb250aC5cbiAgICogRS5nLiB3aXRoIGBkYXRlYCA9IG5ldyBEYXRlKDIwMjIsIDAsIDMxKSBhbmQgYG1vbnRoc2AgPSAxLCBpdCByZXR1cm5zIG5ldyBEYXRlKDIwMjIsIDEsIDI4KS5cbiAgICogQHBhcmFtIGRhdGUgVGhlIHN0YXJ0aW5nIGRhdGUuXG4gICAqIEBwYXJhbSBtb250aHMgVGhlIG51bWJlciBvZiBtb250aHMgdG8gYWRkLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGFkZENhbGVuZGFyTW9udGhzKGRhdGU6IFQsIG1vbnRoczogbnVtYmVyKTogVDtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBkYXRlIGJ5IGFkZGluZyB0aGUgbnVtYmVyIG9mIHByb3ZpZGVkIGBkYXlzYCB0byB0aGUgcHJvdmlkZWQgYGRhdGVgLlxuICAgKiBAcGFyYW0gZGF0ZSBUaGUgc3RhcnRpbmcgZGF0ZS5cbiAgICogQHBhcmFtIGRheXMgVGhlIG51bWJlciBvZiBkYXlzIHRvIGFkZC5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBhZGRDYWxlbmRhckRheXMoZGF0ZTogVCwgZGF5czogbnVtYmVyKTogVDtcblxuICAvKipcbiAgICogR2V0IHRoZSBkYXRlIGluIHRoZSBsb2NhbCBmb3JtYXQuXG4gICAqIEBwYXJhbSBkYXRlIFRoZSBkYXRlIHRvIGZvcm1hdFxuICAgKiBAcmV0dXJucyBUaGUgYGRhdGVgIGluIHRoZSBsb2NhbCBmb3JtYXQgYXMgc3RyaW5nLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldEFjY2Vzc2liaWxpdHlGb3JtYXREYXRlKGRhdGU6IFQgfCBzdHJpbmcpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZ2l2ZW4gc3RyaW5nIGFzIERhdGUuXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgZGF0ZSBpbiB0aGUgZm9ybWF0IERELk1NLllZWVkuXG4gICAqIEBwYXJhbSBub3cgVGhlIGN1cnJlbnQgZGF0ZSBhcyBEYXRlLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHBhcnNlKHZhbHVlOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkLCBub3c6IFQpOiBUIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBGb3JtYXQgdGhlIGdpdmVuIGRhdGUgYXMgc3RyaW5nLlxuICAgKiBAcGFyYW0gZGF0ZSBUaGUgZGF0ZSB0byBmb3JtYXQuXG4gICAqL1xuICBwdWJsaWMgZm9ybWF0KFxuICAgIGRhdGU6IFQgfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgIG9wdGlvbnM/OiB7IHdlZWtkYXlTdHlsZT86ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93JyB9LFxuICApOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKGRhdGUpKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWUgPSBuZXcgRGF0ZSh0aGlzLnRvSXNvODYwMShkYXRlISkgKyAnVDAwOjAwOjAwJyk7XG4gICAgY29uc3QgZGF0ZUZvcm1hdHRlciA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCdkZS1DSCcsIHtcbiAgICAgIGRheTogJzItZGlnaXQnLFxuICAgICAgbW9udGg6ICcyLWRpZ2l0JyxcbiAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICB9KTtcblxuICAgIGNvbnN0IHdlZWtkYXlTdHlsZSA9IG9wdGlvbnM/LndlZWtkYXlTdHlsZSA/PyAnc2hvcnQnO1xuICAgIGxldCB3ZWVrZGF5ID0gdGhpcy5nZXREYXlPZldlZWtOYW1lcyh3ZWVrZGF5U3R5bGUpW3RoaXMuZ2V0RGF5T2ZXZWVrKGRhdGUhKV07XG4gICAgd2Vla2RheSA9IHdlZWtkYXkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB3ZWVrZGF5LnN1YnN0cmluZygxKTtcbiAgICAvLyBXZSBoYXZlIHRoZSBzcGVjaWFsIHJlcXVpcmVtZW50IGZvciBkYXRlIGZvcm1hdHMgYXQgU0JCLCB3aGVyZSB0aGUgc2hvcnQgZm9ybVxuICAgIC8vIGZvciB3ZWVrZGF5cyBzaG91bGQgYmUgdHdvIGNoYXJhY3RlcnMgaW4gbGVuZ3RoLlxuICAgIGlmICh3ZWVrZGF5U3R5bGUgPT09ICdzaG9ydCcpIHtcbiAgICAgIHdlZWtkYXkgPSB3ZWVrZGF5LnN1YnN0cmluZygwLCAyKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYCR7d2Vla2RheX0sICR7ZGF0ZUZvcm1hdHRlci5mb3JtYXQodmFsdWUpfWA7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIGBvYmpgIGlzIGEgRGF0ZS5cbiAgICogQHBhcmFtIG9iaiBUaGUgb2JqZWN0IHRvIGNoZWNrLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGlzRGF0ZUluc3RhbmNlKG9iajogYW55KTogYm9vbGVhbjtcblxuICAvKipcbiAgICogR2V0cyBkYXRlIGluc3RhbmNlIHRoYXQgaXMgbm90IHZhbGlkLlxuICAgKiBAcmV0dXJucyBBbiBpbnZhbGlkIGRhdGUuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgaW52YWxpZCgpOiBUO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGdpdmVuIGRhdGUgYXMgSVNPIFN0cmluZy5cbiAgICogQHBhcmFtIGRhdGUgVGhlIGRhdGUgdG8gY29udmVydCB0byBJU08gU3RyaW5nLlxuICAgKi9cbiAgcHVibGljIHRvSXNvODYwMShkYXRlOiBUKTogc3RyaW5nIHtcbiAgICBjb25zdCBwYWQgPSAodmFsdWU6IG51bWJlciwgbGVuZ3RoID0gMik6IHN0cmluZyA9PiBgJHt2YWx1ZX1gLnBhZFN0YXJ0KGxlbmd0aCwgJzAnKTtcbiAgICByZXR1cm4gYCR7cGFkKHRoaXMuZ2V0WWVhcihkYXRlKSwgNCl9LSR7cGFkKHRoaXMuZ2V0TW9udGgoZGF0ZSkpfS0ke3BhZCh0aGlzLmdldERhdGUoZGF0ZSkpfWA7XG4gIH1cblxuICAvKipcbiAgICogR2l2ZW4gYSBwb3RlbnRpYWwgZGF0ZSBvYmplY3QsIHJldHVybnMgdGhhdCBzYW1lIGRhdGUgb2JqZWN0IGlmIGl0IGlzXG4gICAqIGEgdmFsaWQgZGF0ZSwgb3IgYG51bGxgIGlmIGl0J3Mgbm90IGEgdmFsaWQgZGF0ZS5cbiAgICogQHBhcmFtIHZhbHVlIFRoZSBvYmplY3QgdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIEEgZGF0ZSBvciBgbnVsbGAuXG4gICAqL1xuICBwdWJsaWMgZ2V0VmFsaWREYXRlT3JOdWxsKHZhbHVlOiB1bmtub3duKTogVCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmlzRGF0ZUluc3RhbmNlKHZhbHVlKSAmJiB0aGlzLmlzVmFsaWQodmFsdWUgYXMgVCkgPyAodmFsdWUgYXMgVCkgOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZXMgdGhlIGRheSBvZiB0aGUgd2VlayBvZiB0aGUgZmlyc3QgZGF5IG9mIHRoZSBtb250aCwgYW5kIHRoZW4gaXRzIG9mZnNldCBmcm9tIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAqL1xuICBwdWJsaWMgZ2V0Rmlyc3RXZWVrT2Zmc2V0KGRhdGU6IFQpOiBudW1iZXIge1xuICAgIGNvbnN0IGZpcnN0T2ZNb250aCA9IHRoaXMuY3JlYXRlRGF0ZSh0aGlzLmdldFllYXIoZGF0ZSksIHRoaXMuZ2V0TW9udGgoZGF0ZSksIDEpITtcbiAgICByZXR1cm4gKFxuICAgICAgKERBWVNfUEVSX1JPVyArIHRoaXMuZ2V0RGF5T2ZXZWVrKGZpcnN0T2ZNb250aCkgLSB0aGlzLmdldEZpcnN0RGF5T2ZXZWVrKCkpICUgREFZU19QRVJfUk9XXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb21wYXJlcyB0d28gZGF0ZXMuXG4gICAqIEBwYXJhbSBmaXJzdCBUaGUgZmlyc3QgZGF0ZSB0byBjb21wYXJlLlxuICAgKiBAcGFyYW0gc2Vjb25kIFRoZSBzZWNvbmQgZGF0ZSB0byBjb21wYXJlLlxuICAgKiBAcmV0dXJucyAwIGlmIHRoZSBkYXRlcyBhcmUgZXF1YWwsIGEgbnVtYmVyIGxlc3MgdGhhbiAwIGlmIHRoZSBmaXJzdCBkYXRlIGlzIGVhcmxpZXIsXG4gICAqICAgICBhIG51bWJlciBncmVhdGVyIHRoYW4gMCBpZiB0aGUgZmlyc3QgZGF0ZSBpcyBsYXRlci5cbiAgICovXG4gIHB1YmxpYyBjb21wYXJlRGF0ZShmaXJzdDogVCwgc2Vjb25kOiBUKTogbnVtYmVyIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5nZXRZZWFyKGZpcnN0KSAtIHRoaXMuZ2V0WWVhcihzZWNvbmQpIHx8XG4gICAgICB0aGlzLmdldE1vbnRoKGZpcnN0KSAtIHRoaXMuZ2V0TW9udGgoc2Vjb25kKSB8fFxuICAgICAgdGhpcy5nZXREYXRlKGZpcnN0KSAtIHRoaXMuZ2V0RGF0ZShzZWNvbmQpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdHdvIGRhdGVzIGFyZSBlcXVhbC5cbiAgICogQHBhcmFtIGZpcnN0IFRoZSBmaXJzdCBkYXRlIHRvIGNoZWNrLlxuICAgKiBAcGFyYW0gc2Vjb25kIFRoZSBzZWNvbmQgZGF0ZSB0byBjaGVjay5cbiAgICogQHJldHVybnMgV2hldGhlciB0aGUgdHdvIGRhdGVzIGFyZSBlcXVhbC5cbiAgICogICAgIE51bGwgZGF0ZXMgYXJlIGNvbnNpZGVyZWQgZXF1YWwgdG8gb3RoZXIgbnVsbCBkYXRlcy5cbiAgICovXG4gIHB1YmxpYyBzYW1lRGF0ZShmaXJzdDogVCB8IG51bGwsIHNlY29uZDogVCB8IG51bGwpOiBib29sZWFuIHtcbiAgICBpZiAoZmlyc3QgJiYgc2Vjb25kKSB7XG4gICAgICBjb25zdCBmaXJzdFZhbGlkID0gdGhpcy5pc1ZhbGlkKGZpcnN0KTtcbiAgICAgIGNvbnN0IHNlY29uZFZhbGlkID0gdGhpcy5pc1ZhbGlkKHNlY29uZCk7XG4gICAgICBpZiAoZmlyc3RWYWxpZCAmJiBzZWNvbmRWYWxpZCkge1xuICAgICAgICByZXR1cm4gIXRoaXMuY29tcGFyZURhdGUoZmlyc3QsIHNlY29uZCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmlyc3RWYWxpZCA9PSBzZWNvbmRWYWxpZDtcbiAgICB9XG4gICAgcmV0dXJuIGZpcnN0ID09IHNlY29uZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGFtcCB0aGUgZ2l2ZW4gZGF0ZSBiZXR3ZWVuIG1pbiBhbmQgbWF4IGRhdGVzLlxuICAgKiBAcGFyYW0gZGF0ZSBUaGUgZGF0ZSB0byBjbGFtcC5cbiAgICogQHBhcmFtIG1pbiBUaGUgbWluaW11bSB2YWx1ZSB0byBhbGxvdy4gSWYgbnVsbCBvciBvbWl0dGVkIG5vIG1pbiBpcyBlbmZvcmNlZC5cbiAgICogQHBhcmFtIG1heCBUaGUgbWF4aW11bSB2YWx1ZSB0byBhbGxvdy4gSWYgbnVsbCBvciBvbWl0dGVkIG5vIG1heCBpcyBlbmZvcmNlZC5cbiAgICogQHJldHVybnMgYG1pbmAgaWYgYGRhdGVgIGlzIGxlc3MgdGhhbiBgbWluYCwgYG1heGAgaWYgZGF0ZSBpcyBncmVhdGVyIHRoYW4gYG1heGAsXG4gICAqICAgICBvdGhlcndpc2UgYGRhdGVgLlxuICAgKi9cbiAgcHVibGljIGNsYW1wRGF0ZShkYXRlOiBULCBtaW4/OiBUIHwgbnVsbCwgbWF4PzogVCB8IG51bGwpOiBUIHtcbiAgICBpZiAobWluICYmIHRoaXMuY29tcGFyZURhdGUoZGF0ZSwgbWluKSA8IDApIHtcbiAgICAgIHJldHVybiBtaW47XG4gICAgfVxuICAgIGlmIChtYXggJiYgdGhpcy5jb21wYXJlRGF0ZShkYXRlLCBtYXgpID4gMCkge1xuICAgICAgcmV0dXJuIG1heDtcbiAgICB9XG4gICAgcmV0dXJuIGRhdGU7XG4gIH1cbn1cbiIsImltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiRGF0ZUxpa2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzLmpzJztcblxuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIsIEZPUk1BVF9EQVRFIH0gZnJvbSAnLi9kYXRlLWFkYXB0ZXIuanMnO1xuXG4vKipcbiAqIE1hdGNoZXMgc3RyaW5ncyB0aGF0IGhhdmUgdGhlIGZvcm0gb2YgYSB2YWxpZCBSRkMgMzMzOSBzdHJpbmdcbiAqIChodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMzMzOSkuIE5vdGUgdGhhdCB0aGUgc3RyaW5nIG1heSBub3QgYWN0dWFsbHkgYmUgYSB2YWxpZCBkYXRlXG4gKiBiZWNhdXNlIHRoZSByZWdleCB3aWxsIG1hdGNoIHN0cmluZ3MgYW4gd2l0aG91dCBvZiBib3VuZHMgbW9udGgsIGRhdGUsIGV0Yy5cbiAqL1xuY29uc3QgSVNPXzg2MDFfUkVHRVggPVxuICAvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9KD86VFxcZHsyfTpcXGR7Mn06XFxkezJ9KD86XFwuXFxkKyk/KD86WnwoPzooPzpcXCt8LSlcXGR7Mn06XFxkezJ9KSk/KT8kLztcblxuZXhwb3J0IGNsYXNzIE5hdGl2ZURhdGVBZGFwdGVyIGV4dGVuZHMgRGF0ZUFkYXB0ZXI8RGF0ZT4ge1xuICBwcml2YXRlIHJlYWRvbmx5IF9jdXRvZmZZZWFyT2Zmc2V0OiBudW1iZXI7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKGN1dG9mZlllYXJPZmZzZXQ6IG51bWJlciA9IDE1KSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLl9jdXRvZmZZZWFyT2Zmc2V0ID0gY3V0b2ZmWWVhck9mZnNldDtcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSB5ZWFyIG9mIHRoZSBpbnB1dCBkYXRlLiAqL1xuICBwdWJsaWMgZ2V0WWVhcihkYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZGF0ZS5nZXRGdWxsWWVhcigpO1xuICB9XG5cbiAgLyoqIEdldHMgdGhlIG1vbnRoIG9mIHRoZSBpbnB1dCBkYXRlLiAqL1xuICBwdWJsaWMgZ2V0TW9udGgoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUuZ2V0TW9udGgoKSArIDE7XG4gIH1cblxuICAvKiogR2V0cyB0aGUgZGF5IG9mIHRoZSBpbnB1dCBkYXRlLiAqL1xuICBwdWJsaWMgZ2V0RGF0ZShkYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZGF0ZS5nZXREYXRlKCk7XG4gIH1cblxuICAvKiogR2V0cyB0aGUgZGF5IG9mIHRoZSB3ZWVrIG9mIHRoZSBpbnB1dCBkYXRlLiAqL1xuICBwdWJsaWMgZ2V0RGF5T2ZXZWVrKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiBkYXRlLmdldERheSgpO1xuICB9XG5cbiAgLyoqIEdldHMgdGhlIGRhdGUgaW4gdGhlIGxvY2FsIGZvcm1hdC4gKi9cbiAgcHVibGljIGdldEFjY2Vzc2liaWxpdHlGb3JtYXREYXRlKGRhdGU6IERhdGUgfCBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IG9wdGlvbnM6IEludGwuRGF0ZVRpbWVGb3JtYXRPcHRpb25zID0ge1xuICAgICAgeWVhcjogJ251bWVyaWMnLFxuICAgICAgbW9udGg6ICdsb25nJyxcbiAgICAgIGRheTogJ251bWVyaWMnLFxuICAgIH07XG4gICAgcmV0dXJuIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFNiYkxhbmd1YWdlQ29udHJvbGxlci5jdXJyZW50LCBvcHRpb25zKS5mb3JtYXQobmV3IERhdGUoZGF0ZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gYXJyYXkgb2Ygc3RyaW5ncyB3aXRoIGxlbmd0aCA9IDEyLCBmaWxsZWQgd2l0aCB0aGUgbmFtZSBvZiB0aGUgbW9udGhzIHN0YXJ0aW5nIGZyb20gSmFudWFyeSwgaW4gdGhlIGRvY3VtZW50IGxhbmd1YWdlLlxuICAgKiBAcGFyYW0gc3R5bGUgU2VlIGBtb250aGAgaW4gYERhdGVUaW1lRm9ybWF0T3B0aW9uc2A6IGBsb25nYCBmb3IgZnVsbCBuYW1lLCBgc2hvcnRgIGZvciBzaG9ydCBuYW1lLCBgbmFycm93YCBmb3Igc2luZ2xlIGxldHRlcixcbiAgICogRS5nLiwgd2l0aCBKYW51YXJ5IGluIGVuLWdiOiBgbG9uZ2AgcmV0dXJucyBcIkphbnVhcnlcIiwgYHNob3J0YCByZXR1cm5zIFwiSmFuXCIsIGBuYXJyb3dgIHJldHVybnMgXCJKXCIuXG4gICAqL1xuICBwdWJsaWMgZ2V0TW9udGhOYW1lcyhzdHlsZTogJ2xvbmcnIHwgJ3Nob3J0JyB8ICduYXJyb3cnKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGZvcm1hdHRlciA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFNiYkxhbmd1YWdlQ29udHJvbGxlci5jdXJyZW50LCB7IG1vbnRoOiBzdHlsZSB9KTtcbiAgICByZXR1cm4gdGhpcy5fcmFuZ2UoMTIsIChpKSA9PiBmb3JtYXR0ZXIuZm9ybWF0KG5ldyBEYXRlKDIwMTcsIGksIDEpKSk7XG4gIH1cblxuICAvKiogQ3JlYXRlcyBhIHN0cmluZyBhcnJheSB3aXRoIGxlbmd0aCA9IDMxLCBmaWxsZWQgd2l0aCB0aGUgZGF5cyBpbiBhIG1vbnRoLCBzdGFydGluZyBmcm9tIDEuICovXG4gIHB1YmxpYyBnZXREYXRlTmFtZXMoKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGZvcm1hdHRlciA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFNiYkxhbmd1YWdlQ29udHJvbGxlci5jdXJyZW50LCB7IGRheTogJ251bWVyaWMnIH0pO1xuICAgIHJldHVybiB0aGlzLl9yYW5nZSgzMSwgKGkpID0+IGZvcm1hdHRlci5mb3JtYXQobmV3IERhdGUoMjAxNywgMCwgaSArIDEpKSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHN0cmluZyBhcnJheSB3aXRoIGxlbmd0aCA9IDcsIGZpbGxlZCB3aXRoIHRoZSBuYW1lIG9mIHRoZSBkYXlzIGluIGEgd2VlayBzdGFydGluZyBmcm9tIFN1bmRheSwgaW4gdGhlIGRvY3VtZW50IGxhbmd1YWdlLlxuICAgKiBAcGFyYW0gc3R5bGUgU2VlIGB3ZWVrZGF5YCBpbiBgRGF0ZVRpbWVGb3JtYXRPcHRpb25zYCAtICdsb25nJyBmb3IgZnVsbCBuYW1lLCAnc2hvcnQnIGZvciBzaG9ydCBuYW1lLCAnbmFycm93JyBmb3Igc2luZ2xlIGxldHRlcjtcbiAgICogRS5nLiwgd2l0aCBNb25kYXkgaW4gZW4tZ2I6IGBsb25nYCByZXR1cm5zIFwiTW9uZGF5XCIsIGBzaG9ydGAgcmV0dXJucyBcIk1vblwiLCBgbmFycm93YCByZXR1cm5zIFwiTVwiLlxuICAgKi9cbiAgcHVibGljIGdldERheU9mV2Vla05hbWVzKHN0eWxlOiAnbG9uZycgfCAnc2hvcnQnIHwgJ25hcnJvdycpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgZm9ybWF0dGVyID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoU2JiTGFuZ3VhZ2VDb250cm9sbGVyLmN1cnJlbnQsIHsgd2Vla2RheTogc3R5bGUgfSk7XG4gICAgcmV0dXJuIHRoaXMuX3JhbmdlKDcsIChpKSA9PiBmb3JtYXR0ZXIuZm9ybWF0KG5ldyBEYXRlKDIwMTcsIDAsIGkgKyAxKSkpO1xuICB9XG5cbiAgLyogRGVmaW5lcyB3aGljaCBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrICgwOiBzdW5kYXk7IDE6IG1vbmRheTsgZXRjLikuICovXG4gIHB1YmxpYyBnZXRGaXJzdERheU9mV2VlaygpOiBudW1iZXIge1xuICAgIHJldHVybiAxO1xuICB9XG5cbiAgLyoqIENhbGN1bGF0ZXMgdGhlIG51bWJlciBvZiBkYXlzIGluIGEgbW9udGggZ2l2ZW4gdGhlIHllYXIgYW5kIHRoZSBtb250aC4gKi9cbiAgcHVibGljIGdldE51bURheXNJbk1vbnRoKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldERhdGUodGhpcy5fY3JlYXRlRGF0ZVdpdGhPdmVyZmxvdyh0aGlzLmdldFllYXIoZGF0ZSksIHRoaXMuZ2V0TW9udGgoZGF0ZSksIDApKTtcbiAgfVxuXG4gIC8qKiBDcmVhdGVzIHRvZGF5J3MgZGF0ZS4gKi9cbiAgcHVibGljIHRvZGF5KCk6IERhdGUge1xuICAgIHJldHVybiBuZXcgRGF0ZShuZXcgRGF0ZSgpLnNldEhvdXJzKDAsIDAsIDAsIDApKTtcbiAgfVxuXG4gIC8qKiBDcmVhdGVzIGEgbmV3IGRhdGUsIGdpdmVuIGRheSwgbW9udGggYW5kIHllYXI7IHRoZSBtZXRob2QgZG9lc24ndCBhbGxvdyBkYXRlJ3Mgb3ZlcmZsb3cuICovXG4gIHB1YmxpYyBjcmVhdGVEYXRlKHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlciwgZGF0ZTogbnVtYmVyKTogRGF0ZSB7XG4gICAgLy8gQ2hlY2sgZm9yIGludmFsaWQgbW9udGggYW5kIGRhdGUgKGV4Y2VwdCB1cHBlciBib3VuZCBvbiBkYXRlIHdoaWNoIHdlIGhhdmUgdG8gY2hlY2sgYWZ0ZXIgY3JlYXRpbmcgdGhlIERhdGUpLlxuICAgIGlmIChtb250aCA8IDEgfHwgbW9udGggPiAxMikge1xuICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgbW9udGggaW5kZXggXCIke21vbnRofVwiLiBNb250aCBpbmRleCBoYXMgdG8gYmUgYmV0d2VlbiAxIGFuZCAxMi5gKTtcbiAgICB9XG5cbiAgICBpZiAoZGF0ZSA8IDEpIHtcbiAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIGRhdGUgXCIke2RhdGV9XCIuIERhdGUgaGFzIHRvIGJlIGdyZWF0ZXIgdGhhbiAwLmApO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX2NyZWF0ZURhdGVXaXRoT3ZlcmZsb3coeWVhciwgbW9udGggLSAxLCBkYXRlKTtcbiAgICAvLyBDaGVjayB0aGF0IHRoZSBkYXRlIHdhc24ndCBhYm92ZSB0aGUgdXBwZXIgYm91bmQgZm9yIHRoZSBtb250aCwgY2F1c2luZyB0aGUgbW9udGggdG8gb3ZlcmZsb3dcbiAgICBpZiAocmVzdWx0LmdldE1vbnRoKCkgKyAxICE9PSBtb250aCkge1xuICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgZGF0ZSBcIiR7ZGF0ZX1cIiBmb3IgbW9udGggd2l0aCBpbmRleCBcIiR7bW9udGh9XCIuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gYG9iamAgaXMgYSBEYXRlLiAqL1xuICBwdWJsaWMgaXNEYXRlSW5zdGFuY2Uob2JqOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gb2JqIGluc3RhbmNlb2YgRGF0ZTtcbiAgfVxuXG4gIC8qKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gYGRhdGVgIGlzIGEgdmFsaWQgRGF0ZS4gKi9cbiAgcHVibGljIGlzVmFsaWQoZGF0ZTogRGF0ZSB8IG51bGwgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISFkYXRlICYmICFpc05hTihkYXRlLnZhbHVlT2YoKSk7XG4gIH1cblxuICAvKiogQ3JlYXRlcyBhIG5ldyBkYXRlIGJ5IGNsb25pbmcgdGhlIGdpdmVuIG9uZS4gKi9cbiAgcHVibGljIGNsb25lKGRhdGU6IERhdGUpOiBEYXRlIHtcbiAgICByZXR1cm4gbmV3IERhdGUoZGF0ZS52YWx1ZU9mKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgeWVhcnNgIHRvIHRoZSBwcm92aWRlZCBgZGF0ZWAuXG4gICAqIEBwYXJhbSBkYXRlIFRoZSBzdGFydGluZyBkYXRlLlxuICAgKiBAcGFyYW0geWVhcnMgVGhlIG51bWJlciBvZiB5ZWFycyB0byBhZGQuXG4gICAqL1xuICBwdWJsaWMgYWRkQ2FsZW5kYXJZZWFycyhkYXRlOiBEYXRlLCB5ZWFyczogbnVtYmVyKTogRGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkQ2FsZW5kYXJNb250aHMoZGF0ZSwgeWVhcnMgKiAxMik7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBkYXRlIGFkZGluZyB0aGUgbnVtYmVyIG9mIHByb3ZpZGVkIGBtb250aHNgIHRvIHRoZSBwcm92aWRlZCBgZGF0ZWAuXG4gICAqIElmIHRoZSBjYWxjdWxhdGVkIG1vbnRoIGhhcyBmZXdlciBkYXlzIHRoYW4gdGhlIG9yaWdpbmFsIG9uZSwgdGhlIGRhdGUgaXMgc2V0IHRvIHRoZSBsYXN0IGRheSBvZiB0aGUgbW9udGguXG4gICAqIEUuZy4sIHdpdGggYGRhdGVgID0gbmV3IERhdGUoMjAyMiwgMCwgMzEpIGFuZCBgbW9udGhzYCA9IDEsIGl0IHJldHVybnMgbmV3IERhdGUoMjAyMiwgMSwgMjgpLlxuICAgKi9cbiAgcHVibGljIGFkZENhbGVuZGFyTW9udGhzKGRhdGU6IERhdGUsIG1vbnRoczogbnVtYmVyKTogRGF0ZSB7XG4gICAgY29uc3QgdGFyZ2V0TW9udGggPSBkYXRlLmdldE1vbnRoKCkgKyBtb250aHM7XG4gICAgY29uc3QgZGF0ZVdpdGhDb3JyZWN0TW9udGggPSBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIHRhcmdldE1vbnRoLCAxLCAwLCAwLCAwLCAwKTtcbiAgICBjb25zdCBkYXlzSW5Nb250aCA9IHRoaXMuZ2V0TnVtRGF5c0luTW9udGgoZGF0ZVdpdGhDb3JyZWN0TW9udGgpO1xuICAgIC8vIEFkYXB0IHRoZSBsYXN0IGRheSBvZiBtb250aCBmb3Igc2hvcnRlciBtb250aHNcbiAgICByZXR1cm4gbmV3IERhdGUodGhpcy5jbG9uZShkYXRlKS5zZXRNb250aCh0YXJnZXRNb250aCwgTWF0aC5taW4oZGF5c0luTW9udGgsIGRhdGUuZ2V0RGF0ZSgpKSkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBuZXcgZGF0ZSBieSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgZGF5c2AgdG8gdGhlIHByb3ZpZGVkIGBkYXRlYC4gKi9cbiAgcHVibGljIGFkZENhbGVuZGFyRGF5cyhkYXRlOiBEYXRlLCBkYXlzOiBudW1iZXIpOiBEYXRlIHtcbiAgICBjb25zdCB0YXJnZXREYXkgPSBkYXRlLmdldERhdGUoKSArIGRheXM7XG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCB0YXJnZXREYXksIDAsIDAsIDAsIDApO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBEYXRlIGZyb20gYSB2YWxpZCBpbnB1dCAoRGF0ZSwgc3RyaW5nIG9yIG51bWJlciBpbiBzZWNvbmRzKS4gKi9cbiAgcHVibGljIG92ZXJyaWRlIGRlc2VyaWFsaXplKGRhdGU6IFNiYkRhdGVMaWtlIHwgbnVsbCB8IHVuZGVmaW5lZCk6IERhdGUgfCBudWxsIHtcbiAgICBpZiAodHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAoIWRhdGUpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9IGVsc2UgaWYgKCFOdW1iZXIuaXNOYU4oK2RhdGUpKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFZhbGlkRGF0ZU9yTnVsbChuZXcgRGF0ZSgrZGF0ZSAqIDEwMDApKTtcblxuICAgICAgICAvLyBUaGUgYERhdGVgIGNvbnN0cnVjdG9yIGFjY2VwdHMgZm9ybWF0cyBvdGhlciB0aGFuIElTTyA4NjAxLCBzbyB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGVcbiAgICAgICAgLy8gc3RyaW5nIGlzIHRoZSByaWdodCBmb3JtYXQgZmlyc3QuXG4gICAgICB9IGVsc2UgaWYgKElTT184NjAxX1JFR0VYLnRlc3QoZGF0ZSkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsaWREYXRlT3JOdWxsKG5ldyBEYXRlKGRhdGUuaW5jbHVkZXMoJ1QnKSA/IGRhdGUgOiBkYXRlICsgJ1QwMDowMDowMCcpKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBkYXRlID09PSAnbnVtYmVyJykge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsaWREYXRlT3JOdWxsKG5ldyBEYXRlKGRhdGUgKiAxMDAwKSk7XG4gICAgfVxuICAgIHJldHVybiBzdXBlci5kZXNlcmlhbGl6ZShkYXRlKTtcbiAgfVxuXG4gIC8qKiBSZXR1cm5zIHRoZSByaWdodCBmb3JtYXQgZm9yIHRoZSBgdmFsdWVBc0RhdGVgIHByb3BlcnR5LiAqL1xuICBwdWJsaWMgcGFyc2UodmFsdWU6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQsIG5vdzogRGF0ZSk6IERhdGUgfCB1bmRlZmluZWQge1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RyaXBwZWRWYWx1ZSA9IHZhbHVlLnJlcGxhY2UoL1xcRC9nLCAnICcpLnRyaW0oKTtcblxuICAgIGNvbnN0IG1hdGNoOiBSZWdFeHBNYXRjaEFycmF5IHwgbnVsbCB8IHVuZGVmaW5lZCA9IHN0cmlwcGVkVmFsdWU/Lm1hdGNoKEZPUk1BVF9EQVRFKTtcbiAgICBpZiAoXG4gICAgICAhbWF0Y2ggfHxcbiAgICAgIG1hdGNoLmluZGV4ICE9PSAwIHx8XG4gICAgICBtYXRjaC5sZW5ndGggPD0gMiB8fFxuICAgICAgbWF0Y2guc29tZSgoZSkgPT4gZSA9PT0gdW5kZWZpbmVkKSB8fFxuICAgICAgIXRoaXMuaXNWYWxpZCh0aGlzLmNyZWF0ZURhdGUoK21hdGNoWzNdLCArbWF0Y2hbMl0sICttYXRjaFsxXSkpXG4gICAgKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGxldCB5ZWFyID0gK21hdGNoWzNdO1xuXG4gICAgaWYgKHR5cGVvZiB5ZWFyID09PSAnbnVtYmVyJyAmJiB5ZWFyIDwgMTAwICYmIHllYXIgPj0gMCkge1xuICAgICAgY29uc3Qgc2hpZnQgPSBub3cuZ2V0RnVsbFllYXIoKSAtIDIwMDAgKyB0aGlzLl9jdXRvZmZZZWFyT2Zmc2V0O1xuICAgICAgeWVhciA9IHllYXIgPD0gc2hpZnQgPyAyMDAwICsgeWVhciA6IDE5MDAgKyB5ZWFyO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgRGF0ZSh5ZWFyLCArbWF0Y2hbMl0gLSAxLCArbWF0Y2hbMV0pO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGludmFsaWQoKTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKE5hTik7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBhcnJheSB3aXRoIHRoZSBnaXZlbiBsZW5ndGggYW5kIGZpbGxzIGl0IGJ5IG1hcHBpbmcgd2l0aCB0aGUgcHJvdmlkZWQgZnVuY3Rpb24uXG4gICAqIEBwYXJhbSBsZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgYXJyYXkgdG8gYmUgY3JlYXRlZC5cbiAgICogQHBhcmFtIHZhbHVlRnVuY3Rpb24gVGhlIGZ1bmN0aW9uIG9mIGFycmF5J3MgaW5kZXggdXNlZCB0byBmaWxsIHRoZSBhcnJheS5cbiAgICovXG4gIHByaXZhdGUgX3JhbmdlPFQ+KGxlbmd0aDogbnVtYmVyLCB2YWx1ZUZ1bmN0aW9uOiAoaW5kZXg6IG51bWJlcikgPT4gVCk6IFRbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGggfSkubWFwKChfLCBpKSA9PiB2YWx1ZUZ1bmN0aW9uKGkpKTtcbiAgfVxuXG4gIC8qKiBDcmVhdGVzIGEgZGF0ZSBidXQgYWxsb3dzIHRoZSBtb250aCBhbmQgZGF0ZSB0byBvdmVyZmxvdy4gKi9cbiAgcHJpdmF0ZSBfY3JlYXRlRGF0ZVdpdGhPdmVyZmxvdyh5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIsIGRhdGU6IG51bWJlcik6IERhdGUge1xuICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBEYXRlKHllYXIsIG1vbnRoLCBkYXRlKTtcbiAgICAvLyBXZSBuZWVkIHRvIGNvcnJlY3QgZm9yIHRoZSBmYWN0IHRoYXQgSlMgbmF0aXZlIERhdGUgdHJlYXRzIHllYXJzIGluIHJhbmdlIFswLCA5OV0gYXNcbiAgICAvLyBhYmJyZXZpYXRpb25zIGZvciAxOXh4LlxuICAgIGlmICh5ZWFyID49IDAgJiYgeWVhciA8IDEwMCkge1xuICAgICAgcmVzdWx0LnNldEZ1bGxZZWFyKHRoaXMuZ2V0WWVhcihyZXN1bHQpIC0gMTkwMCk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGRlZmF1bHREYXRlQWRhcHRlciA9IG5ldyBOYXRpdmVEYXRlQWRhcHRlcigpO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBTyxNQUFNLGVBQXVCO0FBQzdCLE1BQU0saUJBQXlCO0FBQy9CLE1BQU0sZ0JBQXdCO0FBQzlCLE1BQU0saUJBQXlCO0FBQy9CLE1BQU0sY0FDWDtBQVNLLE1BQWUsWUFBcUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFrRmxDLFlBQVksT0FBeUQ7QUFFeEUsUUFBQSxTQUFTLFFBQ1IsS0FBSyxlQUFlLEtBQUssS0FBSyxLQUFLLFFBQVEsS0FBNkIsR0FDekU7QUFDTyxhQUFBO0FBQUEsSUFDVDtBQUNBLFdBQU8sS0FBSztFQUNkO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQTJDTyxPQUNMLE1BQ0EsU0FDUTtBQUNSLFFBQUksQ0FBQyxLQUFLLFFBQVEsSUFBSSxHQUFHO0FBQ2hCLGFBQUE7QUFBQSxJQUNUO0FBRUEsVUFBTSxRQUFZLG9CQUFBLEtBQUssS0FBSyxVQUFVLElBQUssSUFBSSxXQUFXO0FBQzFELFVBQU0sZ0JBQWdCLElBQUksS0FBSyxlQUFlLFNBQVM7QUFBQSxNQUNyRCxLQUFLO0FBQUEsTUFDTCxPQUFPO0FBQUEsTUFDUCxNQUFNO0FBQUEsSUFBQSxDQUNQO0FBRUssVUFBQSxnQkFBZSxtQ0FBUyxpQkFBZ0I7QUFDMUMsUUFBQSxVQUFVLEtBQUssa0JBQWtCLFlBQVksRUFBRSxLQUFLLGFBQWEsSUFBSyxD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
@@ -8,10 +8,10 @@ import { AbstractConstructor } from '../mixins.js';
8
8
  *
9
9
  * @example
10
10
  *
11
+ * @customElement('my-element)
11
12
  * @hostAttributes({
12
13
  * role: 'region'
13
14
  * })
14
- * @customElement('my-element)
15
15
  * export class MyElement extends LitElement {
16
16
  * ...
17
17
  * }
@@ -0,0 +1,18 @@
1
+ import { ReactiveElement } from 'lit';
2
+ import { AbstractConstructor } from '../mixins.js';
3
+
4
+ /**
5
+ * Adds the {@link SbbSlotStateController} to the related element.
6
+ *
7
+ * @example
8
+ *
9
+ * @customElement('my-element)
10
+ * @slotState()
11
+ * export class MyElement extends LitElement {
12
+ * ...
13
+ * }
14
+ *
15
+ * @param attributes A record of attributes to apply to the element.
16
+ */
17
+ export declare const slotState: () => (target: AbstractConstructor<ReactiveElement>) => void;
18
+ //# sourceMappingURL=slot-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slot-state.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/decorators/slot-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,eAAe,EAAE,MAAM,KAAK,CAAC;AAGrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,SAAS,iBAAkB,mBAAmB,CAAC,eAAe,CAAC,SAM3E,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export * from './decorators/host-attributes.js';
2
+ export * from './decorators/slot-state.js';
2
3
  //# sourceMappingURL=decorators.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../../../src/elements/core/decorators.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC"}
1
+ {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../../../src/elements/core/decorators.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,4BAA4B,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { isServer } from "lit";
2
+ import { SbbSlotStateController } from "./controllers.js";
2
3
  function applyAttributes(instance, attributes) {
3
4
  for (const [name, value] of Object.entries(attributes)) {
4
5
  if (value) {
@@ -24,7 +25,15 @@ const hostAttributes = (attributes) => (target) => target.addInitializer((instan
24
25
  });
25
26
  }
26
27
  });
28
+ const slotState = () => (target) => {
29
+ if (!isServer) {
30
+ target.addInitializer(
31
+ (instance) => new SbbSlotStateController(instance)
32
+ );
33
+ }
34
+ };
27
35
  export {
28
- hostAttributes
36
+ hostAttributes,
37
+ slotState
29
38
  };
30
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvZGVjb3JhdG9ycy9ob3N0LWF0dHJpYnV0ZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNTZXJ2ZXIsIHR5cGUgUmVhY3RpdmVFbGVtZW50IH0gZnJvbSAnbGl0JztcblxuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdENvbnN0cnVjdG9yIH0gZnJvbSAnLi4vbWl4aW5zLmpzJztcblxuZnVuY3Rpb24gYXBwbHlBdHRyaWJ1dGVzKFxuICBpbnN0YW5jZTogUmVhY3RpdmVFbGVtZW50LFxuICBhdHRyaWJ1dGVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudWxsPixcbik6IHZvaWQge1xuICBmb3IgKGNvbnN0IFtuYW1lLCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoYXR0cmlidXRlcykpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIGluc3RhbmNlLnNldEF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGluc3RhbmNlLnRvZ2dsZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSAhPT0gbnVsbCk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQXBwbGllcyB0aGUgZ2l2ZW4gYXR0cmlidXRlcyB0byB0aGUgcmVsYXRlZCBlbGVtZW50LlxuICogSWYgYW4gZW1wdHkgc3RyaW5nIGlzIHBhc3NlZCBhcyBhIHZhbHVlLCB0aGUgYXR0cmlidXRlIHdpbGwgYmUgc2V0XG4gKiB3aXRob3V0IHZhbHVlLlxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogQGhvc3RBdHRyaWJ1dGVzKHtcbiAqICAgcm9sZTogJ3JlZ2lvbidcbiAqIH0pXG4gKiBAY3VzdG9tRWxlbWVudCgnbXktZWxlbWVudClcbiAqIGV4cG9ydCBjbGFzcyBNeUVsZW1lbnQgZXh0ZW5kcyBMaXRFbGVtZW50IHtcbiAqICAgLi4uXG4gKiB9XG4gKlxuICogQHBhcmFtIGF0dHJpYnV0ZXMgQSByZWNvcmQgb2YgYXR0cmlidXRlcyB0byBhcHBseSB0byB0aGUgZWxlbWVudC5cbiAqL1xuZXhwb3J0IGNvbnN0IGhvc3RBdHRyaWJ1dGVzID1cbiAgKGF0dHJpYnV0ZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bGw+KSA9PiAodGFyZ2V0OiBBYnN0cmFjdENvbnN0cnVjdG9yPFJlYWN0aXZlRWxlbWVudD4pID0+XG4gICAgKHRhcmdldCBhcyB0eXBlb2YgUmVhY3RpdmVFbGVtZW50KS5hZGRJbml0aWFsaXplcigoaW5zdGFuY2U6IFJlYWN0aXZlRWxlbWVudCkgPT4ge1xuICAgICAgaWYgKGlzU2VydmVyKSB7XG4gICAgICAgIGFwcGx5QXR0cmlidXRlcyhpbnN0YW5jZSwgYXR0cmlidXRlcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBJdCBpcyBub3QgYWxsb3dlZCB0byBzZXQgYXR0cmlidXRlcyBkdXJpbmcgY29uc3RydWN0b3IgcGhhc2UuIER1ZSB0byB0aGlzIHdlIHVzZSBhXG4gICAgICAgIC8vIGNvbnRyb2xsZXIgdG8gYXNzaWduIHRoZSBhdHRyaWJ1dGVzIGR1cmluZyBsaXQgaW5pdGlhbGl6YXRpb24gcGhhc2UuXG4gICAgICAgIC8vIEhvc3RDb25uZWN0ZWQgb3IgaG9zdFVwZGF0ZSBjYW4gYmUgY2FsbGVkIGVpdGhlciBvcmRlci4gRHVlIHRvIHRoYXQgd2UgYXBwbHkgaW4gdGhlXG4gICAgICAgIC8vIGZpcnN0IG9jY3VycmVuY2UgYW5kIGRpcmVjdGx5IHJlbW92ZSB0aGUgY29udHJvbGxlciwgc28gaXQncyBvbmx5IGNhbGxlZCBvbmNlLlxuICAgICAgICBpbnN0YW5jZS5hZGRDb250cm9sbGVyKHtcbiAgICAgICAgICBob3N0Q29ubmVjdGVkKCkge1xuICAgICAgICAgICAgYXBwbHlBdHRyaWJ1dGVzKGluc3RhbmNlLCBhdHRyaWJ1dGVzKTtcbiAgICAgICAgICAgIGluc3RhbmNlLnJlbW92ZUNvbnRyb2xsZXIodGhpcyk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBob3N0VXBkYXRlKCkge1xuICAgICAgICAgICAgYXBwbHlBdHRyaWJ1dGVzKGluc3RhbmNlLCBhdHRyaWJ1dGVzKTtcbiAgICAgICAgICAgIGluc3RhbmNlLnJlbW92ZUNvbnRyb2xsZXIodGhpcyk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUlBLFNBQVMsZ0JBQ1AsVUFDQSxZQUNNO0FBQ04sYUFBVyxDQUFDLE1BQU0sS0FBSyxLQUFLLE9BQU8sUUFBUSxVQUFVLEdBQUc7QUFDdEQsUUFBSSxPQUFPO0FBQ0EsZUFBQSxhQUFhLE1BQU0sS0FBSztBQUFBLElBQUEsT0FDNUI7QUFDSSxlQUFBLGdCQUFnQixNQUFNLFVBQVUsSUFBSTtBQUFBLElBQy9DO0FBQUEsRUFDRjtBQUNGO0FBbUJhLE1BQUEsaUJBQ1gsQ0FBQyxlQUE4QyxDQUFDLFdBQzdDLE9BQWtDLGVBQWUsQ0FBQyxhQUE4QjtBQUMvRSxNQUFJLFVBQVU7QUFDWixvQkFBZ0IsVUFBVSxVQUFVO0FBQUEsRUFBQSxPQUMvQjtBQUtMLGFBQVMsY0FBYztBQUFBLE1BQ3JCLGdCQUFnQjtBQUNkLHdCQUFnQixVQUFVLFVBQVU7QUFDcEMsaUJBQVMsaUJBQWlCLElBQUk7QUFBQSxNQUNoQztBQUFBLE1BQ0EsYUFBYTtBQUNYLHdCQUFnQixVQUFVLFVBQVU7QUFDcEMsaUJBQVMsaUJBQWlCLElBQUk7QUFBQSxNQUNoQztBQUFBLElBQUEsQ0FDRDtBQUFBLEVBQ0g7QUFDRixDQUFDOyJ9
39
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvZGVjb3JhdG9ycy9ob3N0LWF0dHJpYnV0ZXMudHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9kZWNvcmF0b3JzL3Nsb3Qtc3RhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNTZXJ2ZXIsIHR5cGUgUmVhY3RpdmVFbGVtZW50IH0gZnJvbSAnbGl0JztcblxuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdENvbnN0cnVjdG9yIH0gZnJvbSAnLi4vbWl4aW5zLmpzJztcblxuZnVuY3Rpb24gYXBwbHlBdHRyaWJ1dGVzKFxuICBpbnN0YW5jZTogUmVhY3RpdmVFbGVtZW50LFxuICBhdHRyaWJ1dGVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudWxsPixcbik6IHZvaWQge1xuICBmb3IgKGNvbnN0IFtuYW1lLCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoYXR0cmlidXRlcykpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIGluc3RhbmNlLnNldEF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGluc3RhbmNlLnRvZ2dsZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSAhPT0gbnVsbCk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQXBwbGllcyB0aGUgZ2l2ZW4gYXR0cmlidXRlcyB0byB0aGUgcmVsYXRlZCBlbGVtZW50LlxuICogSWYgYW4gZW1wdHkgc3RyaW5nIGlzIHBhc3NlZCBhcyBhIHZhbHVlLCB0aGUgYXR0cmlidXRlIHdpbGwgYmUgc2V0XG4gKiB3aXRob3V0IHZhbHVlLlxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogQGN1c3RvbUVsZW1lbnQoJ215LWVsZW1lbnQpXG4gKiBAaG9zdEF0dHJpYnV0ZXMoe1xuICogICByb2xlOiAncmVnaW9uJ1xuICogfSlcbiAqIGV4cG9ydCBjbGFzcyBNeUVsZW1lbnQgZXh0ZW5kcyBMaXRFbGVtZW50IHtcbiAqICAgLi4uXG4gKiB9XG4gKlxuICogQHBhcmFtIGF0dHJpYnV0ZXMgQSByZWNvcmQgb2YgYXR0cmlidXRlcyB0byBhcHBseSB0byB0aGUgZWxlbWVudC5cbiAqL1xuZXhwb3J0IGNvbnN0IGhvc3RBdHRyaWJ1dGVzID1cbiAgKGF0dHJpYnV0ZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bGw+KSA9PiAodGFyZ2V0OiBBYnN0cmFjdENvbnN0cnVjdG9yPFJlYWN0aXZlRWxlbWVudD4pID0+XG4gICAgKHRhcmdldCBhcyB0eXBlb2YgUmVhY3RpdmVFbGVtZW50KS5hZGRJbml0aWFsaXplcigoaW5zdGFuY2U6IFJlYWN0aXZlRWxlbWVudCkgPT4ge1xuICAgICAgaWYgKGlzU2VydmVyKSB7XG4gICAgICAgIGFwcGx5QXR0cmlidXRlcyhpbnN0YW5jZSwgYXR0cmlidXRlcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBJdCBpcyBub3QgYWxsb3dlZCB0byBzZXQgYXR0cmlidXRlcyBkdXJpbmcgY29uc3RydWN0b3IgcGhhc2UuIER1ZSB0byB0aGlzIHdlIHVzZSBhXG4gICAgICAgIC8vIGNvbnRyb2xsZXIgdG8gYXNzaWduIHRoZSBhdHRyaWJ1dGVzIGR1cmluZyBsaXQgaW5pdGlhbGl6YXRpb24gcGhhc2UuXG4gICAgICAgIC8vIEhvc3RDb25uZWN0ZWQgb3IgaG9zdFVwZGF0ZSBjYW4gYmUgY2FsbGVkIGVpdGhlciBvcmRlci4gRHVlIHRvIHRoYXQgd2UgYXBwbHkgaW4gdGhlXG4gICAgICAgIC8vIGZpcnN0IG9jY3VycmVuY2UgYW5kIGRpcmVjdGx5IHJlbW92ZSB0aGUgY29udHJvbGxlciwgc28gaXQncyBvbmx5IGNhbGxlZCBvbmNlLlxuICAgICAgICBpbnN0YW5jZS5hZGRDb250cm9sbGVyKHtcbiAgICAgICAgICBob3N0Q29ubmVjdGVkKCkge1xuICAgICAgICAgICAgYXBwbHlBdHRyaWJ1dGVzKGluc3RhbmNlLCBhdHRyaWJ1dGVzKTtcbiAgICAgICAgICAgIGluc3RhbmNlLnJlbW92ZUNvbnRyb2xsZXIodGhpcyk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBob3N0VXBkYXRlKCkge1xuICAgICAgICAgICAgYXBwbHlBdHRyaWJ1dGVzKGluc3RhbmNlLCBhdHRyaWJ1dGVzKTtcbiAgICAgICAgICAgIGluc3RhbmNlLnJlbW92ZUNvbnRyb2xsZXIodGhpcyk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4iLCJpbXBvcnQgeyBpc1NlcnZlciwgdHlwZSBSZWFjdGl2ZUVsZW1lbnQgfSBmcm9tICdsaXQnO1xuXG5pbXBvcnQgeyBTYmJTbG90U3RhdGVDb250cm9sbGVyIH0gZnJvbSAnLi4vY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdENvbnN0cnVjdG9yIH0gZnJvbSAnLi4vbWl4aW5zLmpzJztcblxuLyoqXG4gKiBBZGRzIHRoZSB7QGxpbmsgU2JiU2xvdFN0YXRlQ29udHJvbGxlcn0gdG8gdGhlIHJlbGF0ZWQgZWxlbWVudC5cbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIEBjdXN0b21FbGVtZW50KCdteS1lbGVtZW50KVxuICogQHNsb3RTdGF0ZSgpXG4gKiBleHBvcnQgY2xhc3MgTXlFbGVtZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gKiAgIC4uLlxuICogfVxuICpcbiAqIEBwYXJhbSBhdHRyaWJ1dGVzIEEgcmVjb3JkIG9mIGF0dHJpYnV0ZXMgdG8gYXBwbHkgdG8gdGhlIGVsZW1lbnQuXG4gKi9cbmV4cG9ydCBjb25zdCBzbG90U3RhdGUgPSAoKSA9PiAodGFyZ2V0OiBBYnN0cmFjdENvbnN0cnVjdG9yPFJlYWN0aXZlRWxlbWVudD4pID0+IHtcbiAgaWYgKCFpc1NlcnZlcikge1xuICAgICh0YXJnZXQgYXMgdHlwZW9mIFJlYWN0aXZlRWxlbWVudCkuYWRkSW5pdGlhbGl6ZXIoXG4gICAgICAoaW5zdGFuY2U6IFJlYWN0aXZlRWxlbWVudCkgPT4gbmV3IFNiYlNsb3RTdGF0ZUNvbnRyb2xsZXIoaW5zdGFuY2UpLFxuICAgICk7XG4gIH1cbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFJQSxTQUFTLGdCQUNQLFVBQ0EsWUFDTTtBQUNOLGFBQVcsQ0FBQyxNQUFNLEtBQUssS0FBSyxPQUFPLFFBQVEsVUFBVSxHQUFHO0FBQ3RELFFBQUksT0FBTztBQUNBLGVBQUEsYUFBYSxNQUFNLEtBQUs7QUFBQSxJQUFBLE9BQzVCO0FBQ0ksZUFBQSxnQkFBZ0IsTUFBTSxVQUFVLElBQUk7QUFBQSxJQUMvQztBQUFBLEVBQ0Y7QUFDRjtBQW1CYSxNQUFBLGlCQUNYLENBQUMsZUFBOEMsQ0FBQyxXQUM3QyxPQUFrQyxlQUFlLENBQUMsYUFBOEI7QUFDL0UsTUFBSSxVQUFVO0FBQ1osb0JBQWdCLFVBQVUsVUFBVTtBQUFBLEVBQUEsT0FDL0I7QUFLTCxhQUFTLGNBQWM7QUFBQSxNQUNyQixnQkFBZ0I7QUFDZCx3QkFBZ0IsVUFBVSxVQUFVO0FBQ3BDLGlCQUFTLGlCQUFpQixJQUFJO0FBQUEsTUFDaEM7QUFBQSxNQUNBLGFBQWE7QUFDWCx3QkFBZ0IsVUFBVSxVQUFVO0FBQ3BDLGlCQUFTLGlCQUFpQixJQUFJO0FBQUEsTUFDaEM7QUFBQSxJQUFBLENBQ0Q7QUFBQSxFQUNIO0FBQ0YsQ0FBQztBQ3JDUSxNQUFBLFlBQVksTUFBTSxDQUFDLFdBQWlEO0FBQy9FLE1BQUksQ0FBQyxVQUFVO0FBQ1osV0FBa0M7QUFBQSxNQUNqQyxDQUFDLGFBQThCLElBQUksdUJBQXVCLFFBQVE7QUFBQSxJQUFBO0FBQUEsRUFFdEU7QUFDRjsifQ==
@@ -4,16 +4,16 @@ import { DateAdapter } from '../../core/datetime.js';
4
4
  import { SbbDatepickerElement, SbbInputUpdateEvent } from '../datepicker.js';
5
5
 
6
6
  declare const SbbDatepickerButton_base: import('../../core/mixins.js').AbstractConstructor<import('../../core/mixins.js').SbbNegativeMixinType> & typeof SbbButtonBaseElement;
7
- export declare abstract class SbbDatepickerButton extends SbbDatepickerButton_base {
7
+ export declare abstract class SbbDatepickerButton<T = Date> extends SbbDatepickerButton_base {
8
8
  /** Datepicker reference. */
9
- datePicker?: string | SbbDatepickerElement;
9
+ datePicker?: string | SbbDatepickerElement<T>;
10
10
  /** The boundary date (min/max) as set in the date-picker's input. */
11
11
  protected boundary: string | number | null;
12
12
  /** Whether the component is disabled due date equals to boundary date. */
13
13
  private _disabled;
14
14
  /** Whether the component is disabled due date-picker's input disabled. */
15
15
  private _inputDisabled;
16
- protected datePickerElement?: SbbDatepickerElement | null;
16
+ protected datePickerElement?: SbbDatepickerElement<T> | null;
17
17
  private _dateAdapter;
18
18
  private _datePickerController;
19
19
  private _abort;
@@ -21,12 +21,12 @@ export declare abstract class SbbDatepickerButton extends SbbDatepickerButton_ba
21
21
  protected abstract iconName: string;
22
22
  protected abstract i18nOffBoundaryDay: Record<string, string>;
23
23
  protected abstract i18nSelectOffBoundaryDay: (_currentDate: string) => Record<string, string>;
24
- protected abstract findAvailableDate: (_date: Date, _dateFilter: ((date: Date) => boolean) | null, _dateAdapter: DateAdapter<Date>, _boundary: string | number | null) => Date;
24
+ protected abstract findAvailableDate: (_date: T, _dateFilter: ((date: T) => boolean) | null, _dateAdapter: DateAdapter<T>, _boundary: string | number | null) => T;
25
25
  protected abstract onInputUpdated(event: CustomEvent<SbbInputUpdateEvent>): void;
26
26
  connectedCallback(): void;
27
27
  willUpdate(changedProperties: PropertyValues<this>): void;
28
28
  disconnectedCallback(): void;
29
- protected setDisabledState(datepicker: SbbDatepickerElement | null | undefined): void;
29
+ protected setDisabledState(datepicker: SbbDatepickerElement<T> | null | undefined): void;
30
30
  private _handleClick;
31
31
  private _syncUpstreamProperties;
32
32
  private _init;
@@ -1 +1 @@
1
- {"version":3,"file":"datepicker-button.d.ts","sourceRoot":"","sources":["../../../../../src/elements/datepicker/common/datepicker-button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAGrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,OAAO,EAAE,KAAK,WAAW,EAAsB,MAAM,wBAAwB,CAAC;AAG9E,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,eAAe,CAAC;;AAEvB,8BAAsB,mBAAoB,SAAQ,wBAAsC;IACtF,4BAA4B;IACmB,UAAU,CAAC,EAAE,MAAM,GAAG,oBAAoB,CAAC;IAE1F,qEAAqE;IAC5D,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAQ;IAE3D,0EAA0E;IAC1E,OAAO,CAAC,SAAS,CAAS;IAE1B,0EAA0E;IAC1E,OAAO,CAAC,cAAc,CAAS;IAE/B,SAAS,CAAC,iBAAiB,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAQ;IACjE,OAAO,CAAC,YAAY,CAAyC;IAC7D,OAAO,CAAC,qBAAqB,CAAmB;IAChD,OAAO,CAAC,MAAM,CAAyC;IACvD,OAAO,CAAC,SAAS,CAA2E;IAE5F,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IACpC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9D,SAAS,CAAC,QAAQ,CAAC,wBAAwB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9F,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CACpC,KAAK,EAAE,IAAI,EACX,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,GAAG,IAAI,EAC7C,YAAY,EAAE,WAAW,CAAC,IAAI,CAAC,EAC/B,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,KAC9B,IAAI,CAAC;IACV,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,WAAW,CAAC,mBAAmB,CAAC,GAAG,IAAI;IAEhE,iBAAiB,IAAI,IAAI;IASzB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAQzD,oBAAoB,IAAI,IAAI;IAK5C,SAAS,CAAC,gBAAgB,CAAC,UAAU,EAAE,oBAAoB,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI;IAmBrF,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,uBAAuB;IAiB/B,OAAO,CAAC,KAAK;IA+Cb,OAAO,CAAC,aAAa;IAoBrB,OAAO,CAAC,4BAA4B;cAajB,cAAc,IAAI,cAAc;CAGpD"}
1
+ {"version":3,"file":"datepicker-button.d.ts","sourceRoot":"","sources":["../../../../../src/elements/datepicker/common/datepicker-button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAGrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAGnE,OAAO,EAAE,KAAK,WAAW,EAAsB,MAAM,wBAAwB,CAAC;AAG9E,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACzB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,eAAe,CAAC;;AAEvB,8BAAsB,mBAAmB,CAAC,CAAC,GAAG,IAAI,CAAE,SAAQ,wBAAsC;IAChG,4BAA4B;IACmB,UAAU,CAAC,EAAE,MAAM,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;IAE7F,qEAAqE;IAC5D,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAQ;IAE3D,0EAA0E;IAC1E,OAAO,CAAC,SAAS,CAAS;IAE1B,0EAA0E;IAC1E,OAAO,CAAC,cAAc,CAAS;IAE/B,SAAS,CAAC,iBAAiB,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAQ;IACpE,OAAO,CAAC,YAAY,CAA4E;IAChG,OAAO,CAAC,qBAAqB,CAAmB;IAChD,OAAO,CAAC,MAAM,CAAyC;IACvD,OAAO,CAAC,SAAS,CAA2E;IAE5F,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IACpC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9D,SAAS,CAAC,QAAQ,CAAC,wBAAwB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9F,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CACpC,KAAK,EAAE,CAAC,EACR,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,GAAG,IAAI,EAC1C,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC,EAC5B,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,KAC9B,CAAC,CAAC;IACP,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,WAAW,CAAC,mBAAmB,CAAC,GAAG,IAAI;IAEhE,iBAAiB,IAAI,IAAI;IASzB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAQzD,oBAAoB,IAAI,IAAI;IAK5C,SAAS,CAAC,gBAAgB,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI;IAmBxF,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,uBAAuB;IAiB/B,OAAO,CAAC,KAAK;IA+Cb,OAAO,CAAC,aAAa;IAqBrB,OAAO,CAAC,4BAA4B;cAajB,cAAc,IAAI,cAAc;CAGpD"}