@sbb-esta/lyne-elements 4.0.0-next → 4.0.0-next.2

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 (309) hide show
  1. package/alert/alert/alert.component.js +5 -5
  2. package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +6 -6
  3. package/badge.css +3 -3
  4. package/breadcrumb/breadcrumb/breadcrumb.component.js +4 -4
  5. package/breadcrumb/breadcrumb-group/breadcrumb-group.component.d.ts +1 -0
  6. package/breadcrumb/breadcrumb-group/breadcrumb-group.component.d.ts.map +1 -1
  7. package/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +5 -5
  8. package/button/common.js +1 -1
  9. package/button/mini-button/mini-button.component.js +1 -1
  10. package/button.js +1 -1
  11. package/calendar/calendar.component.d.ts +1 -0
  12. package/calendar/calendar.component.d.ts.map +1 -1
  13. package/calendar/calendar.component.js +2 -2
  14. package/card/card-badge/card-badge.component.js +7 -7
  15. package/card/card-button/card-button.component.d.ts +1 -1
  16. package/card/card-link/card-link.component.d.ts +1 -1
  17. package/card/common/card-action-common.d.ts.map +1 -1
  18. package/card/common/card-action-common.js +5 -10
  19. package/carousel/carousel/carousel.component.d.ts +2 -1
  20. package/carousel/carousel/carousel.component.d.ts.map +1 -1
  21. package/carousel/carousel/carousel.component.js +33 -28
  22. package/carousel/carousel-list/carousel-list.component.d.ts +1 -1
  23. package/carousel/carousel-list/carousel-list.component.d.ts.map +1 -1
  24. package/carousel/carousel-list/carousel-list.component.js +17 -22
  25. package/checkbox/checkbox/checkbox.component.d.ts +1 -1
  26. package/checkbox/common.js +1 -1
  27. package/checkbox-common-CrwfdL9V.js +5 -0
  28. package/checkbox.js +1 -1
  29. package/chip/chip/chip.component.js +3 -3
  30. package/chip-label/chip-label.component.js +8 -8
  31. package/core/a11y/interactivity-checker.js +0 -7
  32. package/core/a11y/live-announcer.js +0 -7
  33. package/core/config/config.d.ts +5 -0
  34. package/core/config/config.d.ts.map +1 -1
  35. package/core/controllers/media-matchers-controller.d.ts.map +1 -1
  36. package/core/controllers/media-matchers-controller.js +27 -27
  37. package/core/datetime/native-date-adapter.d.ts +1 -0
  38. package/core/datetime/native-date-adapter.d.ts.map +1 -1
  39. package/core/datetime/native-date-adapter.js +1 -1
  40. package/core/dom/breakpoint.d.ts +1 -0
  41. package/core/dom/breakpoint.d.ts.map +1 -1
  42. package/core/mixins/form-associated-input-mixin.d.ts.map +1 -1
  43. package/core/styles/core.scss +67 -69
  44. package/core/styles/mixins/chip.scss +4 -4
  45. package/core/styles/mixins/lists.scss +3 -3
  46. package/core/styles/mixins/panel.scss +2 -2
  47. package/core/styles/mixins/typo.scss +42 -40
  48. package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables-as-css.scss +166 -38
  49. package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables.scss +4 -4
  50. package/core/styles/typography.scss +6 -6
  51. package/core.css +92 -100
  52. package/custom-elements.json +1565 -1739
  53. package/date-input/date-input.component.d.ts +1 -0
  54. package/date-input/date-input.component.d.ts.map +1 -1
  55. package/date-input/date-input.component.js +1 -0
  56. package/development/alert/alert/alert.component.js +7 -5
  57. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +3 -3
  58. package/development/breadcrumb/breadcrumb/breadcrumb.component.js +3 -3
  59. package/development/breadcrumb/breadcrumb-group/breadcrumb-group.component.d.ts +1 -0
  60. package/development/breadcrumb/breadcrumb-group/breadcrumb-group.component.d.ts.map +1 -1
  61. package/development/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +5 -5
  62. package/development/button/common.js +1 -1
  63. package/development/button/mini-button/mini-button.component.js +2 -2
  64. package/development/button.js +1 -1
  65. package/development/calendar/calendar.component.d.ts +1 -0
  66. package/development/calendar/calendar.component.d.ts.map +1 -1
  67. package/development/calendar/calendar.component.js +17 -17
  68. package/development/card/card-badge/card-badge.component.js +3 -3
  69. package/development/card/card-button/card-button.component.d.ts +1 -1
  70. package/development/card/card-link/card-link.component.d.ts +1 -1
  71. package/development/card/common/card-action-common.d.ts.map +1 -1
  72. package/development/card/common/card-action-common.js +14 -7
  73. package/development/carousel/carousel/carousel.component.d.ts +2 -1
  74. package/development/carousel/carousel/carousel.component.d.ts.map +1 -1
  75. package/development/carousel/carousel/carousel.component.js +19 -8
  76. package/development/carousel/carousel-list/carousel-list.component.d.ts +1 -1
  77. package/development/carousel/carousel-list/carousel-list.component.d.ts.map +1 -1
  78. package/development/carousel/carousel-list/carousel-list.component.js +7 -14
  79. package/development/checkbox/checkbox/checkbox.component.d.ts +1 -1
  80. package/development/checkbox/common.js +1 -1
  81. package/development/{checkbox-common-BZFJgZd7.js → checkbox-common-BKjxH3Rp.js} +12 -12
  82. package/development/checkbox.js +1 -1
  83. package/development/chip/chip/chip.component.js +3 -3
  84. package/development/chip-label/chip-label.component.js +6 -6
  85. package/development/core/a11y/interactivity-checker.js +1 -8
  86. package/development/core/a11y/live-announcer.js +1 -8
  87. package/development/core/config/config.d.ts +5 -0
  88. package/development/core/config/config.d.ts.map +1 -1
  89. package/development/core/config/config.js +1 -1
  90. package/development/core/controllers/media-matchers-controller.d.ts.map +1 -1
  91. package/development/core/controllers/media-matchers-controller.js +5 -6
  92. package/development/core/datetime/native-date-adapter.d.ts +1 -0
  93. package/development/core/datetime/native-date-adapter.d.ts.map +1 -1
  94. package/development/core/datetime/native-date-adapter.js +2 -2
  95. package/development/core/dom/breakpoint.d.ts +1 -0
  96. package/development/core/dom/breakpoint.d.ts.map +1 -1
  97. package/development/core/dom/breakpoint.js +1 -1
  98. package/development/core/mixins/form-associated-input-mixin.d.ts.map +1 -1
  99. package/development/core/mixins/form-associated-input-mixin.js +1 -1
  100. package/development/date-input/date-input.component.d.ts +1 -0
  101. package/development/date-input/date-input.component.d.ts.map +1 -1
  102. package/development/date-input/date-input.component.js +2 -1
  103. package/development/dialog/dialog/dialog.component.d.ts +3 -4
  104. package/development/dialog/dialog/dialog.component.d.ts.map +1 -1
  105. package/development/dialog/dialog/dialog.component.js +47 -112
  106. package/development/dialog/dialog-actions/dialog-actions.component.d.ts +0 -1
  107. package/development/dialog/dialog-actions/dialog-actions.component.d.ts.map +1 -1
  108. package/development/dialog/dialog-actions/dialog-actions.component.js +3 -7
  109. package/development/dialog/dialog-close-button/dialog-close-button.component.d.ts +0 -1
  110. package/development/dialog/dialog-close-button/dialog-close-button.component.d.ts.map +1 -1
  111. package/development/dialog/dialog-close-button/dialog-close-button.component.js +5 -5
  112. package/development/dialog/dialog-content/dialog-content.component.d.ts +1 -0
  113. package/development/dialog/dialog-content/dialog-content.component.d.ts.map +1 -1
  114. package/development/dialog/dialog-content/dialog-content.component.js +14 -2
  115. package/development/dialog/dialog-title/dialog-title.component.d.ts +0 -1
  116. package/development/dialog/dialog-title/dialog-title.component.d.ts.map +1 -1
  117. package/development/dialog/dialog-title/dialog-title.component.js +14 -7
  118. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +3 -3
  119. package/development/file-selector/common.js +1 -1
  120. package/development/file-selector/file-selector/file-selector.component.d.ts +1 -1
  121. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.component.d.ts +1 -1
  122. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +8 -8
  123. package/development/{file-selector-common-CsFa5XJ-.js → file-selector-common-B-9Eiig3.js} +4 -4
  124. package/development/file-selector.js +1 -1
  125. package/development/footer/footer.component.js +3 -3
  126. package/development/form-error/form-error.component.js +5 -5
  127. package/development/form-field/form-field/form-field.component.js +14 -14
  128. package/development/header/common/header-action-common.js +3 -3
  129. package/development/header/header-button/header-button.component.d.ts +1 -1
  130. package/development/header/header-environment/header-environment.component.js +3 -3
  131. package/development/header/header-link/header-link.component.d.ts +1 -1
  132. package/development/image/image.component.d.ts +0 -1
  133. package/development/image/image.component.d.ts.map +1 -1
  134. package/development/image/image.component.js +11 -16
  135. package/development/link/common/block-link-common.js +10 -10
  136. package/development/menu/common/menu-action-common.js +3 -3
  137. package/development/message/message.component.js +6 -6
  138. package/development/{mini-button-common-Di32bSJj.js → mini-button-common-D1dU4MgN.js} +4 -4
  139. package/development/mini-calendar/mini-calendar-month/mini-calendar-month.component.js +3 -3
  140. package/development/navigation/common/navigation-action-common.js +11 -11
  141. package/development/navigation/navigation-button/navigation-button.component.d.ts +1 -1
  142. package/development/navigation/navigation-link/navigation-link.component.d.ts +1 -1
  143. package/development/navigation/navigation-list/navigation-list.component.js +3 -3
  144. package/development/navigation/navigation-marker/navigation-marker.component.js +9 -9
  145. package/development/navigation/navigation-section/navigation-section.component.js +5 -5
  146. package/development/notification/notification.component.js +7 -7
  147. package/development/option/optgroup/optgroup-base-element.js +3 -3
  148. package/development/option/option/option-base-element.d.ts.map +1 -1
  149. package/development/option/option/option-base-element.js +14 -4
  150. package/development/option/option/option.component.d.ts.map +1 -1
  151. package/development/option/option/option.component.js +8 -5
  152. package/development/option/option-hint/option-hint.component.js +3 -3
  153. package/development/paginator/common/paginator-common.d.ts.map +1 -1
  154. package/development/paginator/common/paginator-common.js +7 -24
  155. package/development/paginator/compact-paginator/compact-paginator.component.d.ts +1 -1
  156. package/development/paginator/compact-paginator/compact-paginator.component.d.ts.map +1 -1
  157. package/development/paginator/compact-paginator/compact-paginator.component.js +5 -6
  158. package/development/paginator/paginator/paginator.component.d.ts +1 -7
  159. package/development/paginator/paginator/paginator.component.d.ts.map +1 -1
  160. package/development/paginator/paginator/paginator.component.js +16 -31
  161. package/development/popover/popover/popover.component.d.ts.map +1 -1
  162. package/development/popover/popover/popover.component.js +63 -13
  163. package/development/radio-button/common.js +1 -1
  164. package/development/radio-button/radio-button/radio-button.component.d.ts +1 -1
  165. package/development/{radio-button-common-5uawgCpB.js → radio-button-common-BPrInmpg.js} +11 -11
  166. package/development/radio-button.js +1 -1
  167. package/development/sbb-tokens-DZrHvErO.js +19 -0
  168. package/development/select/select.component.d.ts +1 -1
  169. package/development/select/select.component.d.ts.map +1 -1
  170. package/development/select/select.component.js +8 -5
  171. package/development/sidebar/icon-sidebar-button/icon-sidebar-button.component.d.ts +1 -1
  172. package/development/sidebar/icon-sidebar-link/icon-sidebar-link.component.d.ts +1 -1
  173. package/development/sidebar/sidebar-title/sidebar-title.component.js +1 -1
  174. package/development/status/status.component.js +4 -4
  175. package/development/stepper/step/step.component.js +3 -3
  176. package/development/stepper/step-label/step-label.component.js +15 -15
  177. package/development/tabs/tab-label/tab-label.component.js +18 -18
  178. package/development/tag/tag/tag.component.js +7 -7
  179. package/development/teaser/teaser.component.js +3 -3
  180. package/development/teaser-hero/teaser-hero.component.js +2 -2
  181. package/development/teaser-product/common.js +1 -1
  182. package/development/teaser-product/teaser-product/teaser-product.component.d.ts +1 -1
  183. package/development/teaser-product/teaser-product-static/teaser-product-static.component.d.ts +1 -1
  184. package/development/{teaser-product-common-B1KK4iNu.js → teaser-product-common-v3BvyFdH.js} +5 -5
  185. package/development/teaser-product.js +1 -1
  186. package/development/timetable-occupancy/timetable-occupancy.component.js +3 -3
  187. package/development/title/title-base.js +10 -10
  188. package/development/title/title.component.d.ts +1 -2
  189. package/development/title/title.component.d.ts.map +1 -1
  190. package/development/title/title.component.js +25 -13
  191. package/development/toast/toast.component.js +5 -5
  192. package/development/toggle/toggle/toggle.component.js +3 -3
  193. package/development/toggle/toggle-option/toggle-option.component.js +3 -3
  194. package/development/toggle-check/toggle-check.component.js +11 -11
  195. package/development/tooltip/tooltip.component.js +3 -3
  196. package/development/train/train/train.component.js +4 -4
  197. package/development/train/train-blocked-passage/train-blocked-passage.component.js +1 -1
  198. package/development/train/train-formation/train-formation.component.js +3 -3
  199. package/development/train/train-wagon/train-wagon.component.js +9 -9
  200. package/dialog/dialog/dialog.component.d.ts +3 -4
  201. package/dialog/dialog/dialog.component.d.ts.map +1 -1
  202. package/dialog/dialog/dialog.component.js +61 -58
  203. package/dialog/dialog-actions/dialog-actions.component.d.ts +0 -1
  204. package/dialog/dialog-actions/dialog-actions.component.d.ts.map +1 -1
  205. package/dialog/dialog-actions/dialog-actions.component.js +4 -7
  206. package/dialog/dialog-close-button/dialog-close-button.component.d.ts +0 -1
  207. package/dialog/dialog-close-button/dialog-close-button.component.d.ts.map +1 -1
  208. package/dialog/dialog-close-button/dialog-close-button.component.js +16 -19
  209. package/dialog/dialog-content/dialog-content.component.d.ts +1 -0
  210. package/dialog/dialog-content/dialog-content.component.d.ts.map +1 -1
  211. package/dialog/dialog-content/dialog-content.component.js +14 -11
  212. package/dialog/dialog-title/dialog-title.component.d.ts +0 -1
  213. package/dialog/dialog-title/dialog-title.component.d.ts.map +1 -1
  214. package/dialog/dialog-title/dialog-title.component.js +11 -14
  215. package/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +1 -1
  216. package/file-selector/common.js +1 -1
  217. package/file-selector/file-selector/file-selector.component.d.ts +1 -1
  218. package/file-selector/file-selector-dropzone/file-selector-dropzone.component.d.ts +1 -1
  219. package/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +9 -9
  220. package/{file-selector-common-CUp299VH.js → file-selector-common-DbYkpr-x.js} +1 -1
  221. package/file-selector.js +1 -1
  222. package/footer/footer.component.js +1 -1
  223. package/form-error/form-error.component.js +1 -1
  224. package/form-field/form-field/form-field.component.js +1 -1
  225. package/header/common/header-action-common.js +1 -1
  226. package/header/header-button/header-button.component.d.ts +1 -1
  227. package/header/header-environment/header-environment.component.js +4 -4
  228. package/header/header-link/header-link.component.d.ts +1 -1
  229. package/image/image.component.d.ts +0 -1
  230. package/image/image.component.d.ts.map +1 -1
  231. package/image/image.component.js +93 -97
  232. package/link/common/block-link-common.js +14 -14
  233. package/lists.css +9 -9
  234. package/menu/common/menu-action-common.js +1 -1
  235. package/message/message.component.js +6 -6
  236. package/mini-button-common-DSGLaplg.js +10 -0
  237. package/mini-calendar/mini-calendar-month/mini-calendar-month.component.js +1 -1
  238. package/navigation/common/navigation-action-common.js +17 -17
  239. package/navigation/navigation-button/navigation-button.component.d.ts +1 -1
  240. package/navigation/navigation-link/navigation-link.component.d.ts +1 -1
  241. package/navigation/navigation-list/navigation-list.component.js +3 -3
  242. package/navigation/navigation-marker/navigation-marker.component.js +12 -12
  243. package/navigation/navigation-section/navigation-section.component.js +5 -5
  244. package/notification/notification.component.js +1 -1
  245. package/off-brand-theme.css +145 -153
  246. package/option/optgroup/optgroup-base-element.js +1 -1
  247. package/option/option/option-base-element.d.ts.map +1 -1
  248. package/option/option/option-base-element.js +30 -20
  249. package/option/option/option.component.d.ts.map +1 -1
  250. package/option/option/option.component.js +8 -8
  251. package/option/option-hint/option-hint.component.js +10 -10
  252. package/package.json +1 -1
  253. package/paginator/common/paginator-common.d.ts.map +1 -1
  254. package/paginator/common/paginator-common.js +30 -46
  255. package/paginator/compact-paginator/compact-paginator.component.d.ts +1 -1
  256. package/paginator/compact-paginator/compact-paginator.component.d.ts.map +1 -1
  257. package/paginator/compact-paginator/compact-paginator.component.js +2 -3
  258. package/paginator/paginator/paginator.component.d.ts +1 -7
  259. package/paginator/paginator/paginator.component.d.ts.map +1 -1
  260. package/paginator/paginator/paginator.component.js +42 -54
  261. package/popover/popover/popover.component.d.ts.map +1 -1
  262. package/popover/popover/popover.component.js +70 -72
  263. package/radio-button/common.js +1 -1
  264. package/radio-button/radio-button/radio-button.component.d.ts +1 -1
  265. package/radio-button-common-chJrmIBn.js +5 -0
  266. package/radio-button.js +1 -1
  267. package/safety-theme.css +149 -157
  268. package/sbb-tokens-BNWpZrLn.js +11 -0
  269. package/select/select.component.d.ts +1 -1
  270. package/select/select.component.d.ts.map +1 -1
  271. package/select/select.component.js +22 -20
  272. package/sidebar/icon-sidebar-button/icon-sidebar-button.component.d.ts +1 -1
  273. package/sidebar/icon-sidebar-link/icon-sidebar-link.component.d.ts +1 -1
  274. package/sidebar/sidebar-title/sidebar-title.component.js +5 -5
  275. package/standard-theme.css +145 -153
  276. package/status/status.component.js +4 -4
  277. package/stepper/step/step.component.js +3 -3
  278. package/stepper/step-label/step-label.component.js +1 -1
  279. package/table.css +27 -27
  280. package/tabs/tab-label/tab-label.component.js +10 -10
  281. package/tag/tag/tag.component.js +1 -1
  282. package/teaser/teaser.component.js +1 -1
  283. package/teaser-hero/teaser-hero.component.js +1 -1
  284. package/teaser-product/common.js +1 -1
  285. package/teaser-product/teaser-product/teaser-product.component.d.ts +1 -1
  286. package/teaser-product/teaser-product-static/teaser-product-static.component.d.ts +1 -1
  287. package/teaser-product-common-a4NenpSA.js +5 -0
  288. package/teaser-product.js +1 -1
  289. package/timetable-occupancy/timetable-occupancy.component.js +1 -1
  290. package/title/title-base.js +19 -19
  291. package/title/title.component.d.ts +1 -2
  292. package/title/title.component.d.ts.map +1 -1
  293. package/title/title.component.js +17 -17
  294. package/toast/toast.component.js +1 -1
  295. package/toggle/toggle/toggle.component.js +1 -1
  296. package/toggle/toggle-option/toggle-option.component.js +7 -7
  297. package/toggle-check/toggle-check.component.js +15 -15
  298. package/tooltip/tooltip.component.js +5 -5
  299. package/train/train/train.component.js +1 -1
  300. package/train/train-blocked-passage/train-blocked-passage.component.js +1 -1
  301. package/train/train-formation/train-formation.component.js +1 -1
  302. package/train/train-wagon/train-wagon.component.js +1 -1
  303. package/typography.css +11 -11
  304. package/checkbox-common-BGA_q9nc.js +0 -5
  305. package/development/sbb-tokens-DXgmy_b-.js +0 -21
  306. package/mini-button-common-DBnJfrBZ.js +0 -10
  307. package/radio-button-common-BT3VkZLM.js +0 -5
  308. package/sbb-tokens-CB1Hgctn.js +0 -12
  309. package/teaser-product-common-BwqWqRrK.js +0 -5
@@ -101,6 +101,7 @@ let SbbDateInputElement = (() => {
101
101
  get value() {
102
102
  return super.value ?? "";
103
103
  }
104
+ /** Formats the current input's value as date. */
104
105
  set valueAsDate(value) {
105
106
  value = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(value));
106
107
  if (!value) {
@@ -287,4 +288,4 @@ let SbbDateInputElement = (() => {
287
288
  export {
288
289
  SbbDateInputElement
289
290
  };
290
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9kYXRlLWlucHV0L2RhdGUtaW5wdXQuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIGlzU2VydmVyLCBMaXRFbGVtZW50LCB0eXBlIFByb3BlcnR5RGVjbGFyYXRpb24gfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IHJlYWRDb25maWcgfSBmcm9tICcuLi9jb3JlL2NvbmZpZy5qcyc7XG5pbXBvcnQgeyB0eXBlIERhdGVBZGFwdGVyLCBkZWZhdWx0RGF0ZUFkYXB0ZXIgfSBmcm9tICcuLi9jb3JlL2RhdGV0aW1lLmpzJztcbmltcG9ydCB7IHBsYWluRGF0ZSwgcGxhaW5EYXRlQ29udmVydGVyIH0gZnJvbSAnLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7XG4gIGkxOG5EYXRlSW52YWxpZCxcbiAgaTE4bkRhdGVNYXgsXG4gIGkxOG5EYXRlTWluLFxuICBpMThuRGF0ZVBpY2tlclBsYWNlaG9sZGVyLFxufSBmcm9tICcuLi9jb3JlL2kxOG4uanMnO1xuaW1wb3J0IHsgU2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluIH0gZnJvbSAnLi4vY29yZS9taXhpbnMuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJEYXRlcGlja2VyRWxlbWVudCB9IGZyb20gJy4uL2RhdGVwaWNrZXIuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9kYXRlLWlucHV0LnNjc3M/bGl0JmlubGluZSc7XG5cbi8vIEFzIGRvY3VtZW50ZWQgaW4gZm9ybS1hc3NvY2lhdGVkLW1peGluLnRzLCB3ZSBleHRlbmQgdGhlIHByb3RvdHlwZSBvZlxuLy8gVmFsaWRpdHlTdGF0ZSB3aXRoIGN1c3RvbSBlcnJvciBzdGF0ZXMgZm9yIHRoZSBkYXRlIGlucHV0LlxuT2JqZWN0LmFzc2lnbihWYWxpZGl0eVN0YXRlLnByb3RvdHlwZSwge1xuICBnZXQgc2JiRGF0ZUZpbHRlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH0sXG59KTtcblxuLyoqXG4gKiBJbnRlcmZhY2UgZm9yIGVsZW1lbnRzIHRoYXQgY2FuIGJlIGFzc29jaWF0ZWQgd2l0aCBhIGRhdGUgaW5wdXQuXG4gKiBJbXBsZW1lbnRpbmcgY2xhc3NlcyBtdXN0IGFsc28gaGF2ZSBhIHN0YXRpYyBwcm9wZXJ0eSBgc2JiRGF0ZUlucHV0QXNzb2NpYXRlZGAgc2V0IHRvIGB0cnVlYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTYmJEYXRlSW5wdXRBc3NvY2lhdGVkPFQ+IHtcbiAgaW5wdXQ6IFNiYkRhdGVJbnB1dEVsZW1lbnQ8VD4gfCBudWxsO1xufVxuXG4vKipcbiAqIEN1c3RvbSBpbnB1dCBmb3IgYSBkYXRlLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItZGF0ZS1pbnB1dCcpXG5jbGFzcyBTYmJEYXRlSW5wdXRFbGVtZW50PFQgPSBEYXRlPiBleHRlbmRzIFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRNaXhpbihMaXRFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgb2YgdGhlIGRhdGUgaW5wdXQuIFJlZmxlY3RzIHRoZSBjdXJyZW50IHRleHQgdmFsdWVcbiAgICogb2YgdGhpcyBpbnB1dC5cbiAgICogVGhlIGF0dHJpYnV0ZSBgdmFsdWVgIEFjY2VwdHMgSVNPODYwMSBmb3JtYXR0ZWQgdmFsdWVzLCB3aGljaCB3aWxsIGJlXG4gICAqIGZvcm1hdHRlZCBhY2NvcmRpbmcgdG8gdGhlIGN1cnJlbnQgbG9jYWxlLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fdHJ5UGFyc2VWYWx1ZSh2YWx1ZSk7XG4gICAgLy8gQXMgbG9uZyBhcyB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIHdlIGRlbGF5IGF1dG9tYXRpY2FsbHkgdXBkYXRpbmdcbiAgICAvLyB0aGUgdmFsdWUgd2l0aCB0aGUgZm9ybWF0dGVkIHN0cmluZyBvZiB0aGUgcGFyc2VkIGRhdGUuXG4gICAgaWYgKCFpc1NlcnZlciAmJiAhdGhpcy5tYXRjaGVzKCc6Zm9jdXMnKSAmJiB0aGlzLnZhbHVlQXNEYXRlICE9PSBudWxsKSB7XG4gICAgICB2YWx1ZSA9IHRoaXMuX2Zvcm1hdERhdGUoKTtcbiAgICB9XG4gICAgc3VwZXIudmFsdWUgPSB2YWx1ZTtcbiAgfVxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHN1cGVyLnZhbHVlID8/ICcnO1xuICB9XG5cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiBmYWxzZSB9KVxuICBwdWJsaWMgc2V0IHZhbHVlQXNEYXRlKHZhbHVlOiBUIHwgbnVsbCkge1xuICAgIHZhbHVlID0gdGhpcy5fZGF0ZUFkYXB0ZXIuZ2V0VmFsaWREYXRlT3JOdWxsKHRoaXMuX2RhdGVBZGFwdGVyLmRlc2VyaWFsaXplKHZhbHVlKSk7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgdGhpcy5fdmFsdWVBc0RhdGUgPSBudWxsO1xuICAgICAgdGhpcy5fdmFsdWVDYWNoZSA9IFsnJywgbnVsbF07XG4gICAgICB0aGlzLnZhbHVlID0gJyc7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgICF0aGlzLl9kYXRlQWRhcHRlci5pc0RhdGVJbnN0YW5jZSh0aGlzLl92YWx1ZUFzRGF0ZSkgfHxcbiAgICAgIHRoaXMuX2RhdGVBZGFwdGVyLmNvbXBhcmVEYXRlKHRoaXMuX3ZhbHVlQXNEYXRlISwgdmFsdWUhKSAhPT0gMFxuICAgICkge1xuICAgICAgLy8gQWxpZ24gd2l0aCB0aGUgbmF0aXZlIGRhdGUgaW5wdXQsIGFzIGl0IGNvcGllcyB0aGUgdmFsdWUgb2ZcbiAgICAgIC8vIHRoZSBnaXZlbiBkYXRlIHdpdGhvdXQgdGhlIHRpbWUgYW5kIGRvZXMgbm90IHJldGFpbiB0aGVcbiAgICAgIC8vIG9yaWdpbmFsIGluc3RhbmNlLlxuICAgICAgdGhpcy5fdmFsdWVBc0RhdGUgPSB0aGlzLl9kYXRlQWRhcHRlci5jcmVhdGVEYXRlKFxuICAgICAgICB0aGlzLl9kYXRlQWRhcHRlci5nZXRZZWFyKHZhbHVlKSxcbiAgICAgICAgdGhpcy5fZGF0ZUFkYXB0ZXIuZ2V0TW9udGgodmFsdWUpLFxuICAgICAgICB0aGlzLl9kYXRlQWRhcHRlci5nZXREYXRlKHZhbHVlKSxcbiAgICAgICk7XG4gICAgICBjb25zdCBzdHJpbmdWYWx1ZSA9IHRoaXMuX2Zvcm1hdERhdGUoKTtcbiAgICAgIHRoaXMuX3ZhbHVlQ2FjaGUgPSBbc3RyaW5nVmFsdWUsIHRoaXMuX3ZhbHVlQXNEYXRlXTtcbiAgICAgIHRoaXMudmFsdWUgPSBzdHJpbmdWYWx1ZTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGdldCB2YWx1ZUFzRGF0ZSgpOiBUIHwgbnVsbCB7XG4gICAgLy8gV2Ugc2hvdWxkIG5ldmVyIHJldHVybiB0aGUgaW50ZXJuYWwgZGF0ZSBvYmplY3QgZGlyZWN0bHksIGFzIGl0XG4gICAgLy8gY291bGQgYmUgbWFuaXB1bGF0ZWQgb3V0c2lkZSBvZiB0aGlzIGNsYXNzLlxuICAgIHJldHVybiB0aGlzLl92YWx1ZUFzRGF0ZSA/IHRoaXMuX2RhdGVBZGFwdGVyLmNsb25lKHRoaXMuX3ZhbHVlQXNEYXRlKSA6IG51bGw7XG4gIH1cbiAgcHJpdmF0ZSBfdmFsdWVBc0RhdGU/OiBUIHwgbnVsbDtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgaW5wdXQgaXMgZW1wdHlcbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIHB1YmxpYyBnZXQgZW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLnZhbHVlIHx8IHRoaXMudmFsdWUudHJpbSgpID09PSAnJztcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgbWluaW11bSB2YWxpZCBkYXRlLiBBY2NlcHRzIGEgZGF0ZSBvYmplY3Qgb3IgbnVsbC5cbiAgICogQWNjZXB0cyBhbiBJU084NjAxIGZvcm1hdHRlZCBzdHJpbmcgKGUuZy4gMjAyNC0xMi0yNCkgYXMgYXR0cmlidXRlLlxuICAgKi9cbiAgQHBsYWluRGF0ZSgpXG4gIEBwcm9wZXJ0eSh7IGNvbnZlcnRlcjogcGxhaW5EYXRlQ29udmVydGVyLCByZWZsZWN0OiB0cnVlIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBtaW46IFQgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogVGhlIG1heGltdW0gdmFsaWQgZGF0ZS4gQWNjZXB0cyBhIGRhdGUgb2JqZWN0IG9yIG51bGwuXG4gICAqIEFjY2VwdHMgYW4gSVNPODYwMSBmb3JtYXR0ZWQgc3RyaW5nIChlLmcuIDIwMjQtMTItMjQpIGFzIGF0dHJpYnV0ZS5cbiAgICovXG4gIEBwbGFpbkRhdGUoKVxuICBAcHJvcGVydHkoeyBjb252ZXJ0ZXI6IHBsYWluRGF0ZUNvbnZlcnRlciwgcmVmbGVjdDogdHJ1ZSB9KVxuICBwdWJsaWMgYWNjZXNzb3IgbWF4OiBUIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIEEgZnVuY3Rpb24gdXNlZCB0byBmaWx0ZXIgb3V0IGRhdGVzLlxuICAgKiBJdCBpcyBzdHJvbmdseSByZWNvbW1lbmRlZCB0byB1c2UgbWluIGFuZCBtYXggZGF0ZXMgYWxvbmdzaWRlXG4gICAqIHRoaXMgZmlsdGVyLlxuICAgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiBmYWxzZSB9KVxuICBwdWJsaWMgc2V0IGRhdGVGaWx0ZXIodmFsdWU6IChkYXRlOiBUIHwgbnVsbCkgPT4gYm9vbGVhbikge1xuICAgIHRoaXMuX2RhdGVGaWx0ZXIgPSB2YWx1ZTtcbiAgfVxuICBwdWJsaWMgZ2V0IGRhdGVGaWx0ZXIoKTogKGRhdGU6IFQgfCBudWxsKSA9PiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0ZUZpbHRlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBIb3cgdG8gZm9ybWF0IHRoZSBkaXNwbGF5ZWQgZGF0ZS5cbiAgICogYHNob3J0YDogVHdvIGxldHRlciBhYmJyZXZpYXRpb24gb2YgdGhlIHdlZWsgZGF5IChlLmcuIEZyKS5cbiAgICogYG5vbmVgOiBUaGUgd2Vla2RheSBpcyBub3QgZGlzcGxheWVkLlxuICAgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnd2Vla2RheS1zdHlsZScgfSlcbiAgcHVibGljIGFjY2Vzc29yIHdlZWtkYXlTdHlsZTogJ3Nob3J0JyB8ICdub25lJyA9ICdzaG9ydCc7XG5cbiAgLyoqXG4gICAqIFN0b3JlcyB0aGUgbGFzdCBzdHJpbmcgYW5kIHBhcnNlZCBkYXRlIG9iamVjdCB2YWx1ZSB0byBwcmV2ZW50IHJlcGVhdGVkXG4gICAqIHBhcnNpbmcgb2YgdGhlIHN0cmluZyB2YWx1ZS5cbiAgICovXG4gIHByaXZhdGUgX3ZhbHVlQ2FjaGU/OiBbc3RyaW5nLCBUIHwgbnVsbF07XG4gIHByaXZhdGUgX2RhdGVBZGFwdGVyOiBEYXRlQWRhcHRlcjxUPiA9IHJlYWRDb25maWcoKS5kYXRldGltZT8uZGF0ZUFkYXB0ZXIgPz8gZGVmYXVsdERhdGVBZGFwdGVyO1xuICBwcml2YXRlIF9wbGFjZWhvbGRlck11dGFibGUgPSBmYWxzZTtcblxuICAvKipcbiAgICogR2V0cyB0aGUgYXNzb2NpYXRlZCBkYXRlcGlja2VyLCBpZiBhbnkuXG4gICAqIFRoZSBzYmItZGF0ZS1pbnB1dCBhbmQgdGhlIHNiYi1kYXRlcGlja2VyIGFyZSBhc3N1bWVkIHRvIGJlIGluIHRoZSBzYW1lIHBhcmVudCBjb250YWluZXIuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGRhdGVwaWNrZXIoKTogU2JiRGF0ZXBpY2tlckVsZW1lbnQ8VD4gfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnRFbGVtZW50IS5xdWVyeVNlbGVjdG9yPFNiYkRhdGVwaWNrZXJFbGVtZW50PFQ+Pignc2JiLWRhdGVwaWNrZXInKTtcbiAgfVxuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdjaGFuZ2UnLCAoKSA9PiB0aGlzLl91cGRhdGVWYWx1ZURhdGVGb3JtYXQoKSwgeyBjYXB0dXJlOiB0cnVlIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dGVtcHRzIHRvIHJlc29sdmUgdGhlIGFzc29jaWF0ZWQgZGF0ZSBpbnB1dCB3aXRoIHRoZSBnaXZlbiBlbGVtZW50LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZXNvbHZlQXNzb2NpYXRpb248VD4oaG9zdDogSFRNTEVsZW1lbnQgJiBTYmJEYXRlSW5wdXRBc3NvY2lhdGVkPFQ+KTogdm9pZCB7XG4gICAgaWYgKGhvc3QuaGFzQXR0cmlidXRlKCdpbnB1dCcpIHx8IGhvc3QuaW5wdXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBpbnB1dCA9IGhvc3RcbiAgICAgIC5jbG9zZXN0KCdzYmItZm9ybS1maWVsZCcpXG4gICAgICA/LnF1ZXJ5U2VsZWN0b3I8U2JiRGF0ZUlucHV0RWxlbWVudDxUPj4oJ3NiYi1kYXRlLWlucHV0Jyk7XG4gICAgaWYgKGlucHV0KSB7XG4gICAgICBob3N0LmlucHV0ID0gaW5wdXQ7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZGF0ZUZpbHRlcjogKGRhdGU6IFQgfCBudWxsKSA9PiBib29sZWFuID0gKCkgPT4gdHJ1ZTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICBpZiAoIXRoaXMucGxhY2Vob2xkZXIpIHtcbiAgICAgIHRoaXMuX3BsYWNlaG9sZGVyTXV0YWJsZSA9IHRydWU7XG4gICAgICB0aGlzLnBsYWNlaG9sZGVyID0gaTE4bkRhdGVQaWNrZXJQbGFjZWhvbGRlclt0aGlzLmxhbmd1YWdlLmN1cnJlbnRdO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIEFycmF5LmZyb20odGhpcy5jbG9zZXN0KCdzYmItZm9ybS1maWVsZCcpPy5jaGlsZHJlbiA/PyBbXSkpIHtcbiAgICAgIC8vIEVsZW1lbnRzIG11c3QgYmUgdXBncmFkZWQgaW4gb3JkZXIgZm9yIHRoZSBjb25zdHJ1Y3RvciB0byBiZSBhY2Nlc3NpYmxlLlxuICAgICAgY3VzdG9tRWxlbWVudHMudXBncmFkZT8uKGNoaWxkKTtcbiAgICAgIGlmIChcbiAgICAgICAgKGNoaWxkLmNvbnN0cnVjdG9yIGFzIHsgc2JiRGF0ZUlucHV0QXNzb2NpYXRlZD86IGJvb2xlYW4gfSkuc2JiRGF0ZUlucHV0QXNzb2NpYXRlZCAmJlxuICAgICAgICAhY2hpbGQuaGFzQXR0cmlidXRlKCdpbnB1dCcpICYmXG4gICAgICAgICEoY2hpbGQgYXMgUGFydGlhbDxTYmJEYXRlSW5wdXRBc3NvY2lhdGVkPFQ+PikuaW5wdXRcbiAgICAgICkge1xuICAgICAgICAoY2hpbGQgYXMgUGFydGlhbDxTYmJEYXRlSW5wdXRBc3NvY2lhdGVkPFQ+PikuaW5wdXQgPSB0aGlzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSByZXF1ZXN0VXBkYXRlKFxuICAgIG5hbWU/OiBQcm9wZXJ0eUtleSxcbiAgICBvbGRWYWx1ZT86IHVua25vd24sXG4gICAgb3B0aW9ucz86IFByb3BlcnR5RGVjbGFyYXRpb24sXG4gICk6IHZvaWQge1xuICAgIHN1cGVyLnJlcXVlc3RVcGRhdGUobmFtZSwgb2xkVmFsdWUsIG9wdGlvbnMpO1xuICAgIGlmICh0aGlzLmhhc1VwZGF0ZWQgJiYgIW5hbWUpIHtcbiAgICAgIHRoaXMuX3VwZGF0ZVZhbHVlRGF0ZUZvcm1hdCgpO1xuICAgICAgaWYgKHRoaXMuX3BsYWNlaG9sZGVyTXV0YWJsZSkge1xuICAgICAgICB0aGlzLnBsYWNlaG9sZGVyID0gaTE4bkRhdGVQaWNrZXJQbGFjZWhvbGRlclt0aGlzLmxhbmd1YWdlLmN1cnJlbnRdO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAobmFtZSA9PT0gJ3dlZWtkYXlTdHlsZScpIHtcbiAgICAgIHRoaXMuX3VwZGF0ZVZhbHVlRGF0ZUZvcm1hdCgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5pc0Nvbm5lY3RlZCkge1xuICAgICAgLy8gVXNlZCB0byBub3RpZnkgYXNzb2NpYXRlZCBjb21wb25lbnRzIHRvIHVwZGF0ZSBzdGF0ZVxuICAgICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnybVjaGFuZ2UnKSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHVwZGF0ZUZvcm1WYWx1ZSgpOiB2b2lkIHtcbiAgICB0aGlzLl90cnlQYXJzZVZhbHVlKCk7XG4gICAgY29uc3QgZm9ybVZhbHVlID1cbiAgICAgIHRoaXMudmFsdWVBc0RhdGUgIT09IG51bGwgPyB0aGlzLl9kYXRlQWRhcHRlci50b0lzbzg2MDEodGhpcy52YWx1ZUFzRGF0ZSkgOiBudWxsO1xuICAgIHRoaXMuaW50ZXJuYWxzLnNldEZvcm1WYWx1ZShmb3JtVmFsdWUsIHRoaXMudmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdHJ5UGFyc2VWYWx1ZSh2YWx1ZSA9IHRoaXMudmFsdWUpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fdmFsdWVDYWNoZT8uWzBdICE9PSB2YWx1ZSkge1xuICAgICAgdGhpcy5fdmFsdWVBc0RhdGUgPSB0aGlzLl9kYXRlQWRhcHRlci5wYXJzZSh2YWx1ZSk7XG4gICAgICB0aGlzLl92YWx1ZUNhY2hlID0gW3ZhbHVlLCB0aGlzLl92YWx1ZUFzRGF0ZV07XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlVmFsdWVEYXRlRm9ybWF0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnZhbHVlQXNEYXRlKSB7XG4gICAgICBjb25zdCBmb3JtYXR0ZWREYXRlID0gdGhpcy5fZm9ybWF0RGF0ZSgpO1xuICAgICAgaWYgKHRoaXMudmFsdWUgIT09IGZvcm1hdHRlZERhdGUpIHtcbiAgICAgICAgc3VwZXIudmFsdWUgPSBmb3JtYXR0ZWREYXRlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2Zvcm1hdERhdGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0ZUFkYXB0ZXIuZm9ybWF0KHRoaXMudmFsdWVBc0RhdGUsIHsgd2Vla2RheVN0eWxlOiB0aGlzLndlZWtkYXlTdHlsZSB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBzaG91bGRWYWxpZGF0ZShuYW1lOiBQcm9wZXJ0eUtleSB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICBzdXBlci5zaG91bGRWYWxpZGF0ZShuYW1lKSB8fFxuICAgICAgWyd2YWx1ZUFzRGF0ZScsICdtaW4nLCAnbWF4JywgJ2RhdGVGaWx0ZXInXS5pbmNsdWRlcyhuYW1lIGFzIHN0cmluZylcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHZhbGlkYXRlKCk6IHZvaWQge1xuICAgIHN1cGVyLnZhbGlkYXRlKCk7XG4gICAgaWYgKCF0aGlzLnZhbHVlKSB7XG4gICAgICB0aGlzLl9yZW1vdmVWYWxpZGl0eUVycm9ycygpO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMuX2RhdGVBZGFwdGVyLmlzVmFsaWQodGhpcy52YWx1ZUFzRGF0ZSkpIHtcbiAgICAgIHRoaXMuc2V0VmFsaWRpdHlGbGFnKCdiYWRJbnB1dCcsIGkxOG5EYXRlSW52YWxpZFt0aGlzLmxhbmd1YWdlLmN1cnJlbnRdKTtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgdGhpcy5fZGF0ZUFkYXB0ZXIuaXNWYWxpZCh0aGlzLm1pbikgJiZcbiAgICAgIHRoaXMuX2RhdGVBZGFwdGVyLmNvbXBhcmVEYXRlKHRoaXMubWluLCB0aGlzLnZhbHVlQXNEYXRlKSA+IDBcbiAgICApIHtcbiAgICAgIHRoaXMuc2V0VmFsaWRpdHlGbGFnKFxuICAgICAgICAncmFuZ2VVbmRlcmZsb3cnLFxuICAgICAgICBpMThuRGF0ZU1pbih0aGlzLl9kYXRlQWRhcHRlci5mb3JtYXQodGhpcy5taW4sIHsgd2Vla2RheVN0eWxlOiAnbm9uZScgfSkpW1xuICAgICAgICAgIHRoaXMubGFuZ3VhZ2UuY3VycmVudFxuICAgICAgICBdLFxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgdGhpcy5fZGF0ZUFkYXB0ZXIuaXNWYWxpZCh0aGlzLm1heCkgJiZcbiAgICAgIHRoaXMuX2RhdGVBZGFwdGVyLmNvbXBhcmVEYXRlKHRoaXMudmFsdWVBc0RhdGUsIHRoaXMubWF4KSA+IDBcbiAgICApIHtcbiAgICAgIHRoaXMuc2V0VmFsaWRpdHlGbGFnKFxuICAgICAgICAncmFuZ2VPdmVyZmxvdycsXG4gICAgICAgIGkxOG5EYXRlTWF4KHRoaXMuX2RhdGVBZGFwdGVyLmZvcm1hdCh0aGlzLm1heCwgeyB3ZWVrZGF5U3R5bGU6ICdub25lJyB9KSlbXG4gICAgICAgICAgdGhpcy5sYW5ndWFnZS5jdXJyZW50XG4gICAgICAgIF0sXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAodGhpcy5kYXRlRmlsdGVyICYmICF0aGlzLmRhdGVGaWx0ZXIodGhpcy52YWx1ZUFzRGF0ZSkpIHtcbiAgICAgIHRoaXMuc2V0VmFsaWRpdHlGbGFnKCdzYmJEYXRlRmlsdGVyJywgaTE4bkRhdGVJbnZhbGlkW3RoaXMubGFuZ3VhZ2UuY3VycmVudF0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9yZW1vdmVWYWxpZGl0eUVycm9ycygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3JlbW92ZVZhbGlkaXR5RXJyb3JzKCk6IHZvaWQge1xuICAgIChbJ2JhZElucHV0JywgJ3JhbmdlVW5kZXJmbG93JywgJ3JhbmdlT3ZlcmZsb3cnLCAnc2JiRGF0ZUZpbHRlciddIGFzIGNvbnN0KS5mb3JFYWNoKChmKSA9PlxuICAgICAgdGhpcy5yZW1vdmVWYWxpZGl0eUZsYWcoZiksXG4gICAgKTtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWRhdGUtaW5wdXQnOiBTYmJEYXRlSW5wdXRFbGVtZW50O1xuICB9XG5cbiAgaW50ZXJmYWNlIEN1c3RvbVZhbGlkaXR5U3RhdGUge1xuICAgIHNiYkRhdGVGaWx0ZXI6IGJvb2xlYW47XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW1CQSxPQUFPLE9BQU8sY0FBYyxXQUFXO0FBQUEsRUFDckMsSUFBSSxnQkFBYTtBQUNmLFdBQU87QUFBQSxFQUNUO0FBQ0QsQ0FBQTtJQWVLLHVCQUFtQixNQUFBOzswQkFEeEIsY0FBYyxnQkFBZ0IsQ0FBQzs7OztvQkFDWSw0QkFBNEIsVUFBVTs7Ozs7Ozs7Ozs7OztBQUE5QyxFQUFBLG1CQUFRLFlBQXVDO0FBQUEsSUFrSGpGLGNBQUE7QUFDRSxZQUFBO0FBaERGO0FBUUE7QUFxQkE7QUE3Q1EsV0FBQSxlQW5ESjtBQW1FWSx5QkFBQSx1QkFBQSxrQkFBQSxNQUFBLG1CQUFnQixJQUFJO0FBUXBCLHlCQUFBLHdCQUFBLGtCQUFBLE1BQUEsc0JBQUEsR0FBQSxrQkFBQSxNQUFBLG1CQUFnQixJQUFJO0FBcUJwQix5QkFBQSxpQ0FBQSxrQkFBQSxNQUFBLHNCQUFBLEdBQUEsa0JBQUEsTUFBQSw0QkFBaUMsT0FBTztBQU1oRCxXQUFBLGNBQVcsa0JBQUEsTUFBQSwrQkFBQTtBQUNYLFdBQUEsZUFBK0IsV0FBQSxFQUFhLFVBQVUsZUFBZTtBQUNyRSxXQUFBLHNCQUFzQjtBQStCdEIsV0FBQSxjQUEyQyxNQUFNO0FBbkJ2RCxXQUFLLG1CQUFtQixVQUFVLE1BQU0sS0FBSywwQkFBMEIsRUFBRSxTQUFTLE1B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
291
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9kYXRlLWlucHV0L2RhdGUtaW5wdXQuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIGlzU2VydmVyLCBMaXRFbGVtZW50LCB0eXBlIFByb3BlcnR5RGVjbGFyYXRpb24gfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IHJlYWRDb25maWcgfSBmcm9tICcuLi9jb3JlL2NvbmZpZy5qcyc7XG5pbXBvcnQgeyB0eXBlIERhdGVBZGFwdGVyLCBkZWZhdWx0RGF0ZUFkYXB0ZXIgfSBmcm9tICcuLi9jb3JlL2RhdGV0aW1lLmpzJztcbmltcG9ydCB7IHBsYWluRGF0ZSwgcGxhaW5EYXRlQ29udmVydGVyIH0gZnJvbSAnLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7XG4gIGkxOG5EYXRlSW52YWxpZCxcbiAgaTE4bkRhdGVNYXgsXG4gIGkxOG5EYXRlTWluLFxuICBpMThuRGF0ZVBpY2tlclBsYWNlaG9sZGVyLFxufSBmcm9tICcuLi9jb3JlL2kxOG4uanMnO1xuaW1wb3J0IHsgU2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluIH0gZnJvbSAnLi4vY29yZS9taXhpbnMuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJEYXRlcGlja2VyRWxlbWVudCB9IGZyb20gJy4uL2RhdGVwaWNrZXIuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9kYXRlLWlucHV0LnNjc3M/bGl0JmlubGluZSc7XG5cbi8vIEFzIGRvY3VtZW50ZWQgaW4gZm9ybS1hc3NvY2lhdGVkLW1peGluLnRzLCB3ZSBleHRlbmQgdGhlIHByb3RvdHlwZSBvZlxuLy8gVmFsaWRpdHlTdGF0ZSB3aXRoIGN1c3RvbSBlcnJvciBzdGF0ZXMgZm9yIHRoZSBkYXRlIGlucHV0LlxuT2JqZWN0LmFzc2lnbihWYWxpZGl0eVN0YXRlLnByb3RvdHlwZSwge1xuICBnZXQgc2JiRGF0ZUZpbHRlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH0sXG59KTtcblxuLyoqXG4gKiBJbnRlcmZhY2UgZm9yIGVsZW1lbnRzIHRoYXQgY2FuIGJlIGFzc29jaWF0ZWQgd2l0aCBhIGRhdGUgaW5wdXQuXG4gKiBJbXBsZW1lbnRpbmcgY2xhc3NlcyBtdXN0IGFsc28gaGF2ZSBhIHN0YXRpYyBwcm9wZXJ0eSBgc2JiRGF0ZUlucHV0QXNzb2NpYXRlZGAgc2V0IHRvIGB0cnVlYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTYmJEYXRlSW5wdXRBc3NvY2lhdGVkPFQ+IHtcbiAgaW5wdXQ6IFNiYkRhdGVJbnB1dEVsZW1lbnQ8VD4gfCBudWxsO1xufVxuXG4vKipcbiAqIEN1c3RvbSBpbnB1dCBmb3IgYSBkYXRlLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItZGF0ZS1pbnB1dCcpXG5jbGFzcyBTYmJEYXRlSW5wdXRFbGVtZW50PFQgPSBEYXRlPiBleHRlbmRzIFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRNaXhpbihMaXRFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgb2YgdGhlIGRhdGUgaW5wdXQuIFJlZmxlY3RzIHRoZSBjdXJyZW50IHRleHQgdmFsdWVcbiAgICogb2YgdGhpcyBpbnB1dC5cbiAgICogVGhlIGF0dHJpYnV0ZSBgdmFsdWVgIEFjY2VwdHMgSVNPODYwMSBmb3JtYXR0ZWQgdmFsdWVzLCB3aGljaCB3aWxsIGJlXG4gICAqIGZvcm1hdHRlZCBhY2NvcmRpbmcgdG8gdGhlIGN1cnJlbnQgbG9jYWxlLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fdHJ5UGFyc2VWYWx1ZSh2YWx1ZSk7XG4gICAgLy8gQXMgbG9uZyBhcyB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIHdlIGRlbGF5IGF1dG9tYXRpY2FsbHkgdXBkYXRpbmdcbiAgICAvLyB0aGUgdmFsdWUgd2l0aCB0aGUgZm9ybWF0dGVkIHN0cmluZyBvZiB0aGUgcGFyc2VkIGRhdGUuXG4gICAgaWYgKCFpc1NlcnZlciAmJiAhdGhpcy5tYXRjaGVzKCc6Zm9jdXMnKSAmJiB0aGlzLnZhbHVlQXNEYXRlICE9PSBudWxsKSB7XG4gICAgICB2YWx1ZSA9IHRoaXMuX2Zvcm1hdERhdGUoKTtcbiAgICB9XG4gICAgc3VwZXIudmFsdWUgPSB2YWx1ZTtcbiAgfVxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHN1cGVyLnZhbHVlID8/ICcnO1xuICB9XG5cbiAgLyoqIEZvcm1hdHMgdGhlIGN1cnJlbnQgaW5wdXQncyB2YWx1ZSBhcyBkYXRlLiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6IGZhbHNlIH0pXG4gIHB1YmxpYyBzZXQgdmFsdWVBc0RhdGUodmFsdWU6IFQgfCBudWxsKSB7XG4gICAgdmFsdWUgPSB0aGlzLl9kYXRlQWRhcHRlci5nZXRWYWxpZERhdGVPck51bGwodGhpcy5fZGF0ZUFkYXB0ZXIuZGVzZXJpYWxpemUodmFsdWUpKTtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICB0aGlzLl92YWx1ZUFzRGF0ZSA9IG51bGw7XG4gICAgICB0aGlzLl92YWx1ZUNhY2hlID0gWycnLCBudWxsXTtcbiAgICAgIHRoaXMudmFsdWUgPSAnJztcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgIXRoaXMuX2RhdGVBZGFwdGVyLmlzRGF0ZUluc3RhbmNlKHRoaXMuX3ZhbHVlQXNEYXRlKSB8fFxuICAgICAgdGhpcy5fZGF0ZUFkYXB0ZXIuY29tcGFyZURhdGUodGhpcy5fdmFsdWVBc0RhdGUhLCB2YWx1ZSEpICE9PSAwXG4gICAgKSB7XG4gICAgICAvLyBBbGlnbiB3aXRoIHRoZSBuYXRpdmUgZGF0ZSBpbnB1dCwgYXMgaXQgY29waWVzIHRoZSB2YWx1ZSBvZlxuICAgICAgLy8gdGhlIGdpdmVuIGRhdGUgd2l0aG91dCB0aGUgdGltZSBhbmQgZG9lcyBub3QgcmV0YWluIHRoZVxuICAgICAgLy8gb3JpZ2luYWwgaW5zdGFuY2UuXG4gICAgICB0aGlzLl92YWx1ZUFzRGF0ZSA9IHRoaXMuX2RhdGVBZGFwdGVyLmNyZWF0ZURhdGUoXG4gICAgICAgIHRoaXMuX2RhdGVBZGFwdGVyLmdldFllYXIodmFsdWUpLFxuICAgICAgICB0aGlzLl9kYXRlQWRhcHRlci5nZXRNb250aCh2YWx1ZSksXG4gICAgICAgIHRoaXMuX2RhdGVBZGFwdGVyLmdldERhdGUodmFsdWUpLFxuICAgICAgKTtcbiAgICAgIGNvbnN0IHN0cmluZ1ZhbHVlID0gdGhpcy5fZm9ybWF0RGF0ZSgpO1xuICAgICAgdGhpcy5fdmFsdWVDYWNoZSA9IFtzdHJpbmdWYWx1ZSwgdGhpcy5fdmFsdWVBc0RhdGVdO1xuICAgICAgdGhpcy52YWx1ZSA9IHN0cmluZ1ZhbHVlO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IHZhbHVlQXNEYXRlKCk6IFQgfCBudWxsIHtcbiAgICAvLyBXZSBzaG91bGQgbmV2ZXIgcmV0dXJuIHRoZSBpbnRlcm5hbCBkYXRlIG9iamVjdCBkaXJlY3RseSwgYXMgaXRcbiAgICAvLyBjb3VsZCBiZSBtYW5pcHVsYXRlZCBvdXRzaWRlIG9mIHRoaXMgY2xhc3MuXG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlQXNEYXRlID8gdGhpcy5fZGF0ZUFkYXB0ZXIuY2xvbmUodGhpcy5fdmFsdWVBc0RhdGUpIDogbnVsbDtcbiAgfVxuICBwcml2YXRlIF92YWx1ZUFzRGF0ZT86IFQgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBpbnB1dCBpcyBlbXB0eVxuICAgKiBAZGVwcmVjYXRlZFxuICAgKi9cbiAgcHVibGljIGdldCBlbXB0eSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMudmFsdWUgfHwgdGhpcy52YWx1ZS50cmltKCkgPT09ICcnO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBtaW5pbXVtIHZhbGlkIGRhdGUuIEFjY2VwdHMgYSBkYXRlIG9iamVjdCBvciBudWxsLlxuICAgKiBBY2NlcHRzIGFuIElTTzg2MDEgZm9ybWF0dGVkIHN0cmluZyAoZS5nLiAyMDI0LTEyLTI0KSBhcyBhdHRyaWJ1dGUuXG4gICAqL1xuICBAcGxhaW5EYXRlKClcbiAgQHByb3BlcnR5KHsgY29udmVydGVyOiBwbGFpbkRhdGVDb252ZXJ0ZXIsIHJlZmxlY3Q6IHRydWUgfSlcbiAgcHVibGljIGFjY2Vzc29yIG1pbjogVCB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSB2YWxpZCBkYXRlLiBBY2NlcHRzIGEgZGF0ZSBvYmplY3Qgb3IgbnVsbC5cbiAgICogQWNjZXB0cyBhbiBJU084NjAxIGZvcm1hdHRlZCBzdHJpbmcgKGUuZy4gMjAyNC0xMi0yNCkgYXMgYXR0cmlidXRlLlxuICAgKi9cbiAgQHBsYWluRGF0ZSgpXG4gIEBwcm9wZXJ0eSh7IGNvbnZlcnRlcjogcGxhaW5EYXRlQ29udmVydGVyLCByZWZsZWN0OiB0cnVlIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBtYXg6IFQgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogQSBmdW5jdGlvbiB1c2VkIHRvIGZpbHRlciBvdXQgZGF0ZXMuXG4gICAqIEl0IGlzIHN0cm9uZ2x5IHJlY29tbWVuZGVkIHRvIHVzZSBtaW4gYW5kIG1heCBkYXRlcyBhbG9uZ3NpZGVcbiAgICogdGhpcyBmaWx0ZXIuXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6IGZhbHNlIH0pXG4gIHB1YmxpYyBzZXQgZGF0ZUZpbHRlcih2YWx1ZTogKGRhdGU6IFQgfCBudWxsKSA9PiBib29sZWFuKSB7XG4gICAgdGhpcy5fZGF0ZUZpbHRlciA9IHZhbHVlO1xuICB9XG4gIHB1YmxpYyBnZXQgZGF0ZUZpbHRlcigpOiAoZGF0ZTogVCB8IG51bGwpID0+IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9kYXRlRmlsdGVyO1xuICB9XG5cbiAgLyoqXG4gICAqIEhvdyB0byBmb3JtYXQgdGhlIGRpc3BsYXllZCBkYXRlLlxuICAgKiBgc2hvcnRgOiBUd28gbGV0dGVyIGFiYnJldmlhdGlvbiBvZiB0aGUgd2VlayBkYXkgKGUuZy4gRnIpLlxuICAgKiBgbm9uZWA6IFRoZSB3ZWVrZGF5IGlzIG5vdCBkaXNwbGF5ZWQuXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICd3ZWVrZGF5LXN0eWxlJyB9KVxuICBwdWJsaWMgYWNjZXNzb3Igd2Vla2RheVN0eWxlOiAnc2hvcnQnIHwgJ25vbmUnID0gJ3Nob3J0JztcblxuICAvKipcbiAgICogU3RvcmVzIHRoZSBsYXN0IHN0cmluZyBhbmQgcGFyc2VkIGRhdGUgb2JqZWN0IHZhbHVlIHRvIHByZXZlbnQgcmVwZWF0ZWRcbiAgICogcGFyc2luZyBvZiB0aGUgc3RyaW5nIHZhbHVlLlxuICAgKi9cbiAgcHJpdmF0ZSBfdmFsdWVDYWNoZT86IFtzdHJpbmcsIFQgfCBudWxsXTtcbiAgcHJpdmF0ZSBfZGF0ZUFkYXB0ZXI6IERhdGVBZGFwdGVyPFQ+ID0gcmVhZENvbmZpZygpLmRhdGV0aW1lPy5kYXRlQWRhcHRlciA/PyBkZWZhdWx0RGF0ZUFkYXB0ZXI7XG4gIHByaXZhdGUgX3BsYWNlaG9sZGVyTXV0YWJsZSA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBhc3NvY2lhdGVkIGRhdGVwaWNrZXIsIGlmIGFueS5cbiAgICogVGhlIHNiYi1kYXRlLWlucHV0IGFuZCB0aGUgc2JiLWRhdGVwaWNrZXIgYXJlIGFzc3VtZWQgdG8gYmUgaW4gdGhlIHNhbWUgcGFyZW50IGNvbnRhaW5lci5cbiAgICovXG4gIHB1YmxpYyBnZXQgZGF0ZXBpY2tlcigpOiBTYmJEYXRlcGlja2VyRWxlbWVudDxUPiB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnBhcmVudEVsZW1lbnQhLnF1ZXJ5U2VsZWN0b3I8U2JiRGF0ZXBpY2tlckVsZW1lbnQ8VD4+KCdzYmItZGF0ZXBpY2tlcicpO1xuICB9XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2NoYW5nZScsICgpID0+IHRoaXMuX3VwZGF0ZVZhbHVlRGF0ZUZvcm1hdCgpLCB7IGNhcHR1cmU6IHRydWUgfSk7XG4gIH1cblxuICAvKipcbiAgICogQXR0ZW1wdHMgdG8gcmVzb2x2ZSB0aGUgYXNzb2NpYXRlZCBkYXRlIGlucHV0IHdpdGggdGhlIGdpdmVuIGVsZW1lbnQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlc29sdmVBc3NvY2lhdGlvbjxUPihob3N0OiBIVE1MRWxlbWVudCAmIFNiYkRhdGVJbnB1dEFzc29jaWF0ZWQ8VD4pOiB2b2lkIHtcbiAgICBpZiAoaG9zdC5oYXNBdHRyaWJ1dGUoJ2lucHV0JykgfHwgaG9zdC5pbnB1dCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGlucHV0ID0gaG9zdFxuICAgICAgLmNsb3Nlc3QoJ3NiYi1mb3JtLWZpZWxkJylcbiAgICAgID8ucXVlcnlTZWxlY3RvcjxTYmJEYXRlSW5wdXRFbGVtZW50PFQ+Pignc2JiLWRhdGUtaW5wdXQnKTtcbiAgICBpZiAoaW5wdXQpIHtcbiAgICAgIGhvc3QuaW5wdXQgPSBpbnB1dDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9kYXRlRmlsdGVyOiAoZGF0ZTogVCB8IG51bGwpID0+IGJvb2xlYW4gPSAoKSA9PiB0cnVlO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIGlmICghdGhpcy5wbGFjZWhvbGRlcikge1xuICAgICAgdGhpcy5fcGxhY2Vob2xkZXJNdXRhYmxlID0gdHJ1ZTtcbiAgICAgIHRoaXMucGxhY2Vob2xkZXIgPSBpMThuRGF0ZVBpY2tlclBsYWNlaG9sZGVyW3RoaXMubGFuZ3VhZ2UuY3VycmVudF07XG4gICAgfVxuICAgIGZvciAoY29uc3QgY2hpbGQgb2YgQXJyYXkuZnJvbSh0aGlzLmNsb3Nlc3QoJ3NiYi1mb3JtLWZpZWxkJyk/LmNoaWxkcmVuID8/IFtdKSkge1xuICAgICAgLy8gRWxlbWVudHMgbXVzdCBiZSB1cGdyYWRlZCBpbiBvcmRlciBmb3IgdGhlIGNvbnN0cnVjdG9yIHRvIGJlIGFjY2Vzc2libGUuXG4gICAgICBjdXN0b21FbGVtZW50cy51cGdyYWRlPy4oY2hpbGQpO1xuICAgICAgaWYgKFxuICAgICAgICAoY2hpbGQuY29uc3RydWN0b3IgYXMgeyBzYmJEYXRlSW5wdXRBc3NvY2lhdGVkPzogYm9vbGVhbiB9KS5zYmJEYXRlSW5wdXRBc3NvY2lhdGVkICYmXG4gICAgICAgICFjaGlsZC5oYXNBdHRyaWJ1dGUoJ2lucHV0JykgJiZcbiAgICAgICAgIShjaGlsZCBhcyBQYXJ0aWFsPFNiYkRhdGVJbnB1dEFzc29jaWF0ZWQ8VD4+KS5pbnB1dFxuICAgICAgKSB7XG4gICAgICAgIChjaGlsZCBhcyBQYXJ0aWFsPFNiYkRhdGVJbnB1dEFzc29jaWF0ZWQ8VD4+KS5pbnB1dCA9IHRoaXM7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlcXVlc3RVcGRhdGUoXG4gICAgbmFtZT86IFByb3BlcnR5S2V5LFxuICAgIG9sZFZhbHVlPzogdW5rbm93bixcbiAgICBvcHRpb25zPzogUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgKTogdm9pZCB7XG4gICAgc3VwZXIucmVxdWVzdFVwZGF0ZShuYW1lLCBvbGRWYWx1ZSwgb3B0aW9ucyk7XG4gICAgaWYgKHRoaXMuaGFzVXBkYXRlZCAmJiAhbmFtZSkge1xuICAgICAgdGhpcy5fdXBkYXRlVmFsdWVEYXRlRm9ybWF0KCk7XG4gICAgICBpZiAodGhpcy5fcGxhY2Vob2xkZXJNdXRhYmxlKSB7XG4gICAgICAgIHRoaXMucGxhY2Vob2xkZXIgPSBpMThuRGF0ZVBpY2tlclBsYWNlaG9sZGVyW3RoaXMubGFuZ3VhZ2UuY3VycmVudF07XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChuYW1lID09PSAnd2Vla2RheVN0eWxlJykge1xuICAgICAgdGhpcy5fdXBkYXRlVmFsdWVEYXRlRm9ybWF0KCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmlzQ29ubmVjdGVkKSB7XG4gICAgICAvLyBVc2VkIHRvIG5vdGlmeSBhc3NvY2lhdGVkIGNvbXBvbmVudHMgdG8gdXBkYXRlIHN0YXRlXG4gICAgICAvKiogQGludGVybmFsICovXG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCfJtWNoYW5nZScpKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdXBkYXRlRm9ybVZhbHVlKCk6IHZvaWQge1xuICAgIHRoaXMuX3RyeVBhcnNlVmFsdWUoKTtcbiAgICBjb25zdCBmb3JtVmFsdWUgPVxuICAgICAgdGhpcy52YWx1ZUFzRGF0ZSAhPT0gbnVsbCA/IHRoaXMuX2RhdGVBZGFwdGVyLnRvSXNvODYwMSh0aGlzLnZhbHVlQXNEYXRlKSA6IG51bGw7XG4gICAgdGhpcy5pbnRlcm5hbHMuc2V0Rm9ybVZhbHVlKGZvcm1WYWx1ZSwgdGhpcy52YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIF90cnlQYXJzZVZhbHVlKHZhbHVlID0gdGhpcy52YWx1ZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLl92YWx1ZUNhY2hlPy5bMF0gIT09IHZhbHVlKSB7XG4gICAgICB0aGlzLl92YWx1ZUFzRGF0ZSA9IHRoaXMuX2RhdGVBZGFwdGVyLnBhcnNlKHZhbHVlKTtcbiAgICAgIHRoaXMuX3ZhbHVlQ2FjaGUgPSBbdmFsdWUsIHRoaXMuX3ZhbHVlQXNEYXRlXTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVWYWx1ZURhdGVGb3JtYXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudmFsdWVBc0RhdGUpIHtcbiAgICAgIGNvbnN0IGZvcm1hdHRlZERhdGUgPSB0aGlzLl9mb3JtYXREYXRlKCk7XG4gICAgICBpZiAodGhpcy52YWx1ZSAhPT0gZm9ybWF0dGVkRGF0ZSkge1xuICAgICAgICBzdXBlci52YWx1ZSA9IGZvcm1hdHRlZERhdGU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZm9ybWF0RGF0ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9kYXRlQWRhcHRlci5mb3JtYXQodGhpcy52YWx1ZUFzRGF0ZSwgeyB3ZWVrZGF5U3R5bGU6IHRoaXMud2Vla2RheVN0eWxlIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHNob3VsZFZhbGlkYXRlKG5hbWU6IFByb3BlcnR5S2V5IHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHN1cGVyLnNob3VsZFZhbGlkYXRlKG5hbWUpIHx8XG4gICAgICBbJ3ZhbHVlQXNEYXRlJywgJ21pbicsICdtYXgnLCAnZGF0ZUZpbHRlciddLmluY2x1ZGVzKG5hbWUgYXMgc3RyaW5nKVxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdmFsaWRhdGUoKTogdm9pZCB7XG4gICAgc3VwZXIudmFsaWRhdGUoKTtcbiAgICBpZiAoIXRoaXMudmFsdWUpIHtcbiAgICAgIHRoaXMuX3JlbW92ZVZhbGlkaXR5RXJyb3JzKCk7XG4gICAgfSBlbHNlIGlmICghdGhpcy5fZGF0ZUFkYXB0ZXIuaXNWYWxpZCh0aGlzLnZhbHVlQXNEYXRlKSkge1xuICAgICAgdGhpcy5zZXRWYWxpZGl0eUZsYWcoJ2JhZElucHV0JywgaTE4bkRhdGVJbnZhbGlkW3RoaXMubGFuZ3VhZ2UuY3VycmVudF0pO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICB0aGlzLl9kYXRlQWRhcHRlci5pc1ZhbGlkKHRoaXMubWluKSAmJlxuICAgICAgdGhpcy5fZGF0ZUFkYXB0ZXIuY29tcGFyZURhdGUodGhpcy5taW4sIHRoaXMudmFsdWVBc0RhdGUpID4gMFxuICAgICkge1xuICAgICAgdGhpcy5zZXRWYWxpZGl0eUZsYWcoXG4gICAgICAgICdyYW5nZVVuZGVyZmxvdycsXG4gICAgICAgIGkxOG5EYXRlTWluKHRoaXMuX2RhdGVBZGFwdGVyLmZvcm1hdCh0aGlzLm1pbiwgeyB3ZWVrZGF5U3R5bGU6ICdub25lJyB9KSlbXG4gICAgICAgICAgdGhpcy5sYW5ndWFnZS5jdXJyZW50XG4gICAgICAgIF0sXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICB0aGlzLl9kYXRlQWRhcHRlci5pc1ZhbGlkKHRoaXMubWF4KSAmJlxuICAgICAgdGhpcy5fZGF0ZUFkYXB0ZXIuY29tcGFyZURhdGUodGhpcy52YWx1ZUFzRGF0ZSwgdGhpcy5tYXgpID4gMFxuICAgICkge1xuICAgICAgdGhpcy5zZXRWYWxpZGl0eUZsYWcoXG4gICAgICAgICdyYW5nZU92ZXJmbG93JyxcbiAgICAgICAgaTE4bkRhdGVNYXgodGhpcy5fZGF0ZUFkYXB0ZXIuZm9ybWF0KHRoaXMubWF4LCB7IHdlZWtkYXlTdHlsZTogJ25vbmUnIH0pKVtcbiAgICAgICAgICB0aGlzLmxhbmd1YWdlLmN1cnJlbnRcbiAgICAgICAgXSxcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmRhdGVGaWx0ZXIgJiYgIXRoaXMuZGF0ZUZpbHRlcih0aGlzLnZhbHVlQXNEYXRlKSkge1xuICAgICAgdGhpcy5zZXRWYWxpZGl0eUZsYWcoJ3NiYkRhdGVGaWx0ZXInLCBpMThuRGF0ZUludmFsaWRbdGhpcy5sYW5ndWFnZS5jdXJyZW50XSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3JlbW92ZVZhbGlkaXR5RXJyb3JzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfcmVtb3ZlVmFsaWRpdHlFcnJvcnMoKTogdm9pZCB7XG4gICAgKFsnYmFkSW5wdXQnLCAncmFuZ2VVbmRlcmZsb3cnLCAncmFuZ2VPdmVyZmxvdycsICdzYmJEYXRlRmlsdGVyJ10gYXMgY29uc3QpLmZvckVhY2goKGYpID0+XG4gICAgICB0aGlzLnJlbW92ZVZhbGlkaXR5RmxhZyhmKSxcbiAgICApO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItZGF0ZS1pbnB1dCc6IFNiYkRhdGVJbnB1dEVsZW1lbnQ7XG4gIH1cblxuICBpbnRlcmZhY2UgQ3VzdG9tVmFsaWRpdHlTdGF0ZSB7XG4gICAgc2JiRGF0ZUZpbHRlcjogYm9vbGVhbjtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBbUJBLE9BQU8sT0FBTyxjQUFjLFdBQVc7QUFBQSxFQUNyQyxJQUFJLGdCQUFhO0FBQ2YsV0FBTztBQUFBLEVBQ1Q7QUFDRCxDQUFBO0lBZUssdUJBQW1CLE1BQUE7OzBCQUR4QixjQUFjLGdCQUFnQixDQUFDOzs7O29CQUNZLDRCQUE0QixVQUFVOzs7Ozs7Ozs7Ozs7O0FBQTlDLEVBQUEsbUJBQVEsWUFBdUM7QUFBQSxJQW1IakYsY0FBQTtBQUNFLFlBQUE7QUFoREY7QUFRQTtBQXFCQTtBQTdDUSxXQUFBLGVBcERKO0FBb0VZLHlCQUFBLHVCQUFBLGtCQUFBLE1BQUEsbUJBQWdCLElBQUk7QUFRcEIseUJBQUEsd0JBQUEsa0JBQUEsTUFBQSxzQkFBQSxHQUFBLGtCQUFBLE1BQUEsbUJBQWdCLElBQUk7QUFxQnBCLHlCQUFBLGlDQUFBLGtCQUFBLE1BQUEsc0JBQUEsR0FBQSxrQkFBQSxNQUFBLDRCQUFpQyxPQUFPO0FBTWhELFdBQUEsY0FBVyxrQkFBQSxNQUFBLCtCQUFBO0FBQ1gsV0FBQSxlQUErQixXQUFBLEVBQWEsVUFBVSxlQUFlO0FBQ3JFLFdBQUEsc0JBQXNCO0FBK0J0QixXQUFBLGNBQTJDLE1BQU07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
@@ -3,12 +3,10 @@ import { SbbOverlayBaseElement } from '../../overlay.js';
3
3
  /**
4
4
  * It displays an interactive overlay element.
5
5
  *
6
- * @slot actions - This slot is used for the actions, the slot is automatically assigned to the `sbb-dialog-actions` element.
7
6
  * @slot - Use the unnamed slot to provide a `sbb-dialog-title`, `sbb-dialog-content` and an optional `sbb-dialog-actions`.
8
7
  * @cssprop [--sbb-dialog-z-index=var(--sbb-overlay-default-z-index)] - To specify a custom stack order,
9
8
  * the `z-index` can be overridden by defining this CSS variable. The default `z-index` of the
10
9
  * component is set to `var(--sbb-overlay-default-z-index)` with a value of `1000`.
11
- * @csspart scroll-container - Can be used to change styles of the scroll container of the content.
12
10
  */
13
11
  export declare class SbbDialogElement extends SbbOverlayBaseElement {
14
12
  static styles: CSSResultGroup;
@@ -17,7 +15,6 @@ export declare class SbbDialogElement extends SbbOverlayBaseElement {
17
15
  /** Backdrop density. */
18
16
  accessor backdrop: 'opaque' | 'translucent';
19
17
  private _dialogContentResizeObserver;
20
- private _dialogContentElement?;
21
18
  private _dialogElement?;
22
19
  private _isPointerDownEventOnDialog;
23
20
  protected closeAttribute: string;
@@ -31,13 +28,15 @@ export declare class SbbDialogElement extends SbbOverlayBaseElement {
31
28
  protected handleOpening(): void;
32
29
  protected firstUpdated(changedProperties: PropertyValues<this>): void;
33
30
  protected willUpdate(changedProperties: PropertyValues<this>): void;
31
+ private _handleSlotChange;
34
32
  private _syncTitleNegative;
33
+ private _detectIntermediateElement;
35
34
  /** Check if the pointerdown event target is triggered on the dialog. */
36
35
  private _pointerDownListener;
37
36
  /** Close dialog on backdrop click. */
38
37
  private _closeOnBackdropClick;
39
38
  private _updateOverflowState;
40
- private _detectScrolledState;
39
+ private _contentElement;
41
40
  protected render(): TemplateResult;
42
41
  }
43
42
  declare global {
@@ -1 +1 @@
1
- {"version":3,"file":"dialog.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/dialog/dialog/dialog.component.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAO1E,OAAO,EAAe,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAItE,OAAO,6BAA6B,CAAC;AAIrC;;;;;;;;;GASG;AACH,qBAEM,gBAAiB,SAAQ,qBAAqB;IAClD,OAAuB,MAAM,EAAE,cAAc,CAA4B;IAEzE,6BAA6B;IAC7B,SAA4D,cAAc,EAAE,OAAO,GAAG,MAAM,CAClF;IAEV,wBAAwB;IACxB,SAAoE,QAAQ,EACxE,QAAQ,GACR,aAAa,CAAY;IAM7B,OAAO,CAAC,4BAA4B,CAIjC;IAEH,OAAO,CAAC,qBAAqB,CAAC,CAAc;IAC5C,OAAO,CAAC,cAAc,CAAC,CAAc;IACrC,OAAO,CAAC,2BAA2B,CAAkB;IACrD,SAAS,CAAC,cAAc,EAAE,MAAM,CAAsB;IACtD,UAAmB,QAAQ,EAAE,MAAM,CAA6B;;IAShD,iBAAiB,IAAI,IAAI;IAKzC,2EAA2E;IACpE,aAAa,IAAI,IAAI;IAM5B,SAAS,CAAC,uBAAuB,IAAI,OAAO;IAI5C,SAAS,CAAC,aAAa,IAAI,IAAI;IA2B/B,SAAS,CAAC,aAAa,IAAI,IAAI;cAeZ,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAM3D,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAQ5E,OAAO,CAAC,kBAAkB;IAa1B,wEAAwE;IACxE,OAAO,CAAC,oBAAoB,CAO1B;IAEF,sCAAsC;IACtC,OAAO,CAAC,qBAAqB,CAS3B;IAEF,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,oBAAoB;cAKT,MAAM,IAAI,cAAc;CA8B5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,YAAY,EAAE,gBAAgB,CAAC;KAChC;CACF"}
1
+ {"version":3,"file":"dialog.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/dialog/dialog/dialog.component.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAO1E,OAAO,EAAe,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAKtE,OAAO,6BAA6B,CAAC;AAIrC;;;;;;;GAOG;AACH,qBAEM,gBAAiB,SAAQ,qBAAqB;IAClD,OAAuB,MAAM,EAAE,cAAc,CAA4B;IAEzE,6BAA6B;IAC7B,SAA4D,cAAc,EAAE,OAAO,GAAG,MAAM,CAClF;IAEV,wBAAwB;IACxB,SAAoE,QAAQ,EACxE,QAAQ,GACR,aAAa,CAAY;IAM7B,OAAO,CAAC,4BAA4B,CAIjC;IAEH,OAAO,CAAC,cAAc,CAAC,CAAc;IACrC,OAAO,CAAC,2BAA2B,CAAkB;IACrD,SAAS,CAAC,cAAc,EAAE,MAAM,CAAsB;IACtD,UAAmB,QAAQ,EAAE,MAAM,CAA6B;;IAahD,iBAAiB,IAAI,IAAI;IAKzC,2EAA2E;IACpE,aAAa,IAAI,IAAI;IAM5B,SAAS,CAAC,uBAAuB,IAAI,OAAO;IAI5C,SAAS,CAAC,aAAa,IAAI,IAAI;IA6B/B,SAAS,CAAC,aAAa,IAAI,IAAI;cAiBZ,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAM3D,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAQ5E,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,0BAA0B;IASlC,wEAAwE;IACxE,OAAO,CAAC,oBAAoB,CAO1B;IAEF,sCAAsC;IACtC,OAAO,CAAC,qBAAqB,CAS3B;IAEF,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,eAAe;cAIJ,MAAM,IAAI,cAAc;CAmB5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,YAAY,EAAE,gBAAgB,CAAC;KAChC;CACF"}
@@ -7,7 +7,7 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
7
7
  var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
8
8
  import { __esDecorate, __runInitializers } from "tslib";
9
9
  import { ResizeController } from "@lit-labs/observers/resize-controller.js";
10
- import { customElement, property, eventOptions } from "lit/decorators.js";
10
+ import { customElement, property } from "lit/decorators.js";
11
11
  import { ref } from "lit/directives/ref.js";
12
12
  import { html } from "lit/static-html.js";
13
13
  import { isZeroAnimationDuration } from "../../core/dom.js";
@@ -16,20 +16,6 @@ import { SbbOverlayBaseElement, overlayRefs } from "../../overlay.js";
16
16
  import { css } from "lit";
17
17
  import "../../screen-reader-only.js";
18
18
  const style = css`:host {
19
- --sbb-scrollbar-thumb-width: 0.125rem;
20
- --sbb-scrollbar-thumb-width-hover: 0.25rem;
21
- --sbb-scrollbar-width-firefox: thin;
22
- --sbb-scrollbar-color: color-mix(in srgb, var(--sbb-color-black) 30%, transparent);
23
- --sbb-scrollbar-color: light-dark(
24
- color-mix(in srgb, var(--sbb-color-black) 30%, transparent),
25
- color-mix(in srgb, var(--sbb-color-white) 30%, transparent)
26
- );
27
- --sbb-scrollbar-color-hover: color-mix(in srgb, var(--sbb-color-black) 60%, transparent);
28
- --sbb-scrollbar-color-hover: light-dark(
29
- color-mix(in srgb, var(--sbb-color-black) 60%, transparent),
30
- color-mix(in srgb, var(--sbb-color-white) 60%, transparent)
31
- );
32
- --sbb-scrollbar-track-color: transparent;
33
19
  --sbb-dialog-padding-inline: var(--sbb-spacing-fixed-5x);
34
20
  --sbb-dialog-color: var(--sbb-color-2);
35
21
  --sbb-dialog-background-color: var(--sbb-background-color-1);
@@ -54,8 +40,8 @@ const style = css`:host {
54
40
  --sbb-dialog-backdrop-visibility: hidden;
55
41
  --sbb-dialog-backdrop-pointer-events: none;
56
42
  --sbb-dialog-backdrop-color: transparent;
57
- --sbb-dialog-title-gap: var(--sbb-spacing-fixed-2x);
58
- --sbb-dialog-close-button-margin: var(--sbb-spacing-fixed-4x);
43
+ --sbb-dialog-block-shadow: var(--sbb-box-shadow-level-9-soft);
44
+ --sbb-dialog-actions-border-color: var(--sbb-background-color-4);
59
45
  display: none;
60
46
  position: fixed;
61
47
  inset: var(--sbb-dialog-inset);
@@ -77,6 +63,15 @@ const style = css`:host {
77
63
  }
78
64
  }
79
65
 
66
+ :host(:is(:state(top-shadow),[state--top-shadow])) {
67
+ --sbb-dialog-block-start-box-shadow: var(--sbb-dialog-block-shadow);
68
+ }
69
+
70
+ :host(:is(:state(bottom-shadow),[state--bottom-shadow])) {
71
+ --sbb-dialog-block-end-box-shadow: var(--sbb-dialog-block-shadow);
72
+ --sbb-dialog-actions-border-color: transparent;
73
+ }
74
+
80
75
  :host([data-state]:not([data-state=closed])) {
81
76
  display: block;
82
77
  }
@@ -97,12 +92,12 @@ const style = css`:host {
97
92
  }
98
93
 
99
94
  :host([negative]) {
100
- --sbb-scrollbar-color: color-mix(in srgb, var(--sbb-color-white) 30%, transparent);
101
- --sbb-scrollbar-color-hover: color-mix(in srgb, var(--sbb-color-white) 60%, transparent);
102
95
  --sbb-focus-outline-color: var(--sbb-focus-outline-color-dark);
103
96
  --sbb-dialog-color: var(--sbb-color-2-negative);
104
97
  --sbb-dialog-background-color: var(--sbb-background-color-1-negative);
105
98
  --sbb-dialog-backdrop-color: var(--sbb-background-color-3-negative);
99
+ --sbb-dialog-actions-border-color: var(--sbb-background-color-4-negative);
100
+ --sbb-dialog-block-shadow: var(--sbb-box-shadow-level-9-soft-negative);
106
101
  }
107
102
 
108
103
  :host(:not([data-state=closed])) {
@@ -165,68 +160,19 @@ const style = css`:host {
165
160
  }
166
161
  }
167
162
 
163
+ :host(:is(:state(has-intermediate-element),[state--has-intermediate-element])) ::slotted(:first-child),
168
164
  .sbb-dialog__wrapper {
169
- display: flex;
170
- flex-direction: column;
171
165
  width: var(--sbb-dialog-width);
172
166
  height: var(--sbb-dialog-height);
173
167
  max-width: var(--sbb-dialog-max-width);
174
168
  max-height: var(--sbb-dialog-max-height);
175
169
  }
176
170
 
177
- .sbb-dialog-title-section {
178
- display: flex;
179
- width: 100%;
180
- gap: var(--sbb-dialog-title-gap);
181
- background-color: var(--sbb-dialog-background-color);
182
- padding-inline: var(--sbb-dialog-padding);
183
- transition: box-shadow var(--sbb-animation-easing) var(--sbb-dialog-shadow-animation-duration);
184
- box-shadow: none;
185
- }
186
- :host(:not([negative]):is(:state(scrolled),[state--scrolled])) .sbb-dialog-title-section {
187
- box-shadow: var(--sbb-box-shadow-level-5-soft);
188
- }
189
- :host([negative]:is(:state(scrolled),[state--scrolled])) .sbb-dialog-title-section {
190
- box-shadow: var(--sbb-box-shadow-level-5-soft-negative);
191
- }
192
-
193
- .sbb-dialog-content-container {
194
- --sbb-scrollbar-width: var(--sbb-spacing-fixed-3x);
195
- }
196
- .sbb-dialog-content-container::-webkit-scrollbar {
197
- width: var(--sbb-scrollbar-width);
198
- height: var(--sbb-scrollbar-width);
199
- background-color: var(--sbb-scrollbar-track-color, transparent);
200
- }
201
- .sbb-dialog-content-container::-webkit-scrollbar-corner {
202
- background-color: var(--sbb-scrollbar-track-color, transparent);
203
- }
204
- .sbb-dialog-content-container::-webkit-scrollbar-thumb {
205
- background-color: var(--sbb-scrollbar-color, currentcolor);
206
- border: calc(0.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width))) solid transparent;
207
- border-radius: var(--sbb-border-radius-4x);
208
- background-clip: padding-box;
209
- }
210
- .sbb-dialog-content-container::-webkit-scrollbar-thumb:hover {
211
- background-color: var(--sbb-scrollbar-color-hover, currentcolor);
212
- border-width: calc(0.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width-hover)));
213
- }
214
- .sbb-dialog-content-container::-webkit-scrollbar-button, .sbb-dialog-content-container::-webkit-scrollbar-corner {
215
- display: none;
216
- }
217
- @supports not selector(::-webkit-scrollbar) {
218
- .sbb-dialog-content-container {
219
- scrollbar-width: var(--sbb-scrollbar-width-firefox);
220
- scrollbar-color: var(--sbb-scrollbar-color, currentcolor) var(--sbb-scrollbar-track-color, transparent);
221
- }
222
- }
223
- .sbb-dialog-content-container {
224
- overflow: auto;
225
- }
226
- .sbb-dialog-content-container:focus-visible {
227
- outline-offset: var(--sbb-focus-outline-offset);
228
- outline: var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width);
229
- --sbb-focus-outline-offset: calc(var(--sbb-focus-outline-width) * -1);
171
+ :host(:is(:state(has-intermediate-element),[state--has-intermediate-element])) ::slotted(:first-child),
172
+ :host(:not(:is(:state(has-intermediate-element),[state--has-intermediate-element]))) .sbb-dialog__wrapper {
173
+ display: grid;
174
+ grid-template: "title close-button" auto "content content" 1fr "actions actions" auto/1fr auto;
175
+ gap: 0;
230
176
  }
231
177
 
232
178
  @keyframes open {
@@ -248,17 +194,6 @@ const style = css`:host {
248
194
  opacity: 0;
249
195
  translate: 0 var(--sbb-spacing-fixed-4x);
250
196
  }
251
- }
252
- ::slotted(sbb-dialog-title) {
253
- flex-grow: 1;
254
- margin-block: var(--sbb-dialog-padding-block);
255
- }
256
-
257
- ::slotted(sbb-dialog-close-button) {
258
- order: 1;
259
- margin-inline-end: var(--sbb-dialog-close-button-margin);
260
- margin-block-start: calc(var(--sbb-dialog-padding-block) + 0.5 * (var(--sbb-typo-line-height-titles) * var(--_sbb-dialog-title-size, var(--sbb-font-size-title-4)) - var(--sbb-size-element-xs)));
261
- inset-inline-end: var(--sbb-dialog-close-button-margin);
262
197
  }`;
263
198
  let nextId = 0;
264
199
  let SbbDialogElement = (() => {
@@ -268,20 +203,18 @@ let SbbDialogElement = (() => {
268
203
  let _classExtraInitializers = [];
269
204
  let _classThis;
270
205
  let _classSuper = SbbOverlayBaseElement;
271
- let _instanceExtraInitializers = [];
272
206
  let _backdropAction_decorators;
273
207
  let _backdropAction_initializers = [];
274
208
  let _backdropAction_extraInitializers = [];
275
209
  let _backdrop_decorators;
276
210
  let _backdrop_initializers = [];
277
211
  let _backdrop_extraInitializers = [];
278
- let __detectScrolledState_decorators;
279
212
  _a = class extends _classSuper {
280
213
  constructor() {
281
214
  super();
282
215
  __privateAdd(this, _backdropAction_accessor_storage);
283
216
  __privateAdd(this, _backdrop_accessor_storage);
284
- __privateSet(this, _backdropAction_accessor_storage, (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _backdropAction_initializers, "close")));
217
+ __privateSet(this, _backdropAction_accessor_storage, __runInitializers(this, _backdropAction_initializers, "close"));
285
218
  __privateSet(this, _backdrop_accessor_storage, (__runInitializers(this, _backdropAction_extraInitializers), __runInitializers(this, _backdrop_initializers, "opaque")));
286
219
  this._dialogContentResizeObserver = (__runInitializers(this, _backdrop_extraInitializers), new ResizeController(this, {
287
220
  target: null,
@@ -304,6 +237,10 @@ let SbbDialogElement = (() => {
304
237
  };
305
238
  this.addEventListener?.("pointerdown", this._pointerDownListener);
306
239
  this.addEventListener?.("pointerup", this._closeOnBackdropClick);
240
+ this.addEventListener("scroll", () => this._updateOverflowState(), {
241
+ passive: true,
242
+ capture: true
243
+ });
307
244
  }
308
245
  /** Backdrop click action. */
309
246
  get backdropAction() {
@@ -331,7 +268,8 @@ let SbbDialogElement = (() => {
331
268
  return isZeroAnimationDuration(this, "--sbb-dialog-animation-duration");
332
269
  }
333
270
  handleClosing() {
334
- this._dialogContentElement?.scrollTo(0, 0);
271
+ const contentElement = this._contentElement();
272
+ contentElement?.scrollTo(0, 0);
335
273
  this.state = "closed";
336
274
  this.hidePopover?.();
337
275
  this.inertController.deactivate();
@@ -340,8 +278,8 @@ let SbbDialogElement = (() => {
340
278
  }
341
279
  this.openOverlayController?.abort();
342
280
  this.focusTrapController.enabled = false;
343
- if (this._dialogContentElement) {
344
- this._dialogContentResizeObserver.unobserve(this._dialogContentElement);
281
+ if (contentElement) {
282
+ this._dialogContentResizeObserver.hostDisconnected();
345
283
  }
346
284
  this.removeInstanceFromGlobalCollection();
347
285
  if (!overlayRefs.length) {
@@ -361,8 +299,9 @@ let SbbDialogElement = (() => {
361
299
  this.focusTrapController.focusInitialElement();
362
300
  setTimeout(() => this.announceTitle());
363
301
  this.focusTrapController.enabled = true;
364
- if (this._dialogContentElement) {
365
- this._dialogContentResizeObserver.observe(this._dialogContentElement);
302
+ const contentElement = this._contentElement();
303
+ if (contentElement) {
304
+ this._dialogContentResizeObserver.observe(contentElement);
366
305
  }
367
306
  this.dispatchOpenEvent();
368
307
  }
@@ -376,6 +315,10 @@ let SbbDialogElement = (() => {
376
315
  this._syncTitleNegative();
377
316
  }
378
317
  }
318
+ _handleSlotChange() {
319
+ this._syncTitleNegative();
320
+ this._detectIntermediateElement();
321
+ }
379
322
  _syncTitleNegative() {
380
323
  const dialogTitle = this.querySelector?.("sbb-dialog-title");
381
324
  const closeButton = this.querySelector?.("sbb-dialog-close-button");
@@ -386,12 +329,17 @@ let SbbDialogElement = (() => {
386
329
  closeButton.negative = this.negative;
387
330
  }
388
331
  }
332
+ _detectIntermediateElement() {
333
+ const hasNoExpectedDirectChildren = this.querySelector(":scope > :is(sbb-dialog-title, sbb-dialog-close-button, sbb-dialog-content, sbb-dialog-actions)") === null;
334
+ this.toggleState("has-intermediate-element", hasNoExpectedDirectChildren);
335
+ }
389
336
  _updateOverflowState() {
390
- this.toggleState("overflows", (this._dialogContentElement?.scrollTop ?? 0) + (this._dialogContentElement?.offsetHeight ?? 0) < (this._dialogContentElement?.scrollHeight ?? 0));
337
+ const contentElement = this._contentElement();
338
+ this.toggleState("top-shadow", (contentElement?.scrollTop ?? 0) > 0);
339
+ this.toggleState("bottom-shadow", (contentElement?.scrollTop ?? 0) + (contentElement?.offsetHeight ?? 0) < (contentElement?.scrollHeight ?? 0));
391
340
  }
392
- _detectScrolledState() {
393
- this.toggleState("scrolled", (this._dialogContentElement?.scrollTop ?? 0) > 0);
394
- this._updateOverflowState();
341
+ _contentElement() {
342
+ return this.querySelector("sbb-dialog-content");
395
343
  }
396
344
  render() {
397
345
  return html`
@@ -405,18 +353,7 @@ let SbbDialogElement = (() => {
405
353
  @click=${(event) => this.closeOnSbbOverlayCloseClick(event)}
406
354
  class="sbb-dialog__wrapper"
407
355
  >
408
- <div class="sbb-dialog-title-section">
409
- <slot name="title-section" @slotchange=${() => this._syncTitleNegative()}></slot>
410
- </div>
411
- <div
412
- class="sbb-dialog-content-container"
413
- part="scroll-container"
414
- @scroll=${() => this._detectScrolledState()}
415
- ${ref((el) => this._dialogContentElement = el)}
416
- >
417
- <slot></slot>
418
- </div>
419
- <slot name="actions"></slot>
356
+ <slot @slotchange=${() => this._handleSlotChange()}></slot>
420
357
  </div>
421
358
  </div>
422
359
  </div>
@@ -427,14 +364,12 @@ let SbbDialogElement = (() => {
427
364
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
428
365
  _backdropAction_decorators = [property({ attribute: "backdrop-action" })];
429
366
  _backdrop_decorators = [property({ attribute: "backdrop", reflect: true })];
430
- __detectScrolledState_decorators = [eventOptions({ passive: true })];
431
367
  __esDecorate(_a, null, _backdropAction_decorators, { kind: "accessor", name: "backdropAction", static: false, private: false, access: { has: (obj) => "backdropAction" in obj, get: (obj) => obj.backdropAction, set: (obj, value) => {
432
368
  obj.backdropAction = value;
433
369
  } }, metadata: _metadata }, _backdropAction_initializers, _backdropAction_extraInitializers);
434
370
  __esDecorate(_a, null, _backdrop_decorators, { kind: "accessor", name: "backdrop", static: false, private: false, access: { has: (obj) => "backdrop" in obj, get: (obj) => obj.backdrop, set: (obj, value) => {
435
371
  obj.backdrop = value;
436
372
  } }, metadata: _metadata }, _backdrop_initializers, _backdrop_extraInitializers);
437
- __esDecorate(_a, null, __detectScrolledState_decorators, { kind: "method", name: "_detectScrolledState", static: false, private: false, access: { has: (obj) => "_detectScrolledState" in obj, get: (obj) => obj._detectScrolledState }, metadata: _metadata }, null, _instanceExtraInitializers);
438
373
  __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
439
374
  _classThis = _classDescriptor.value;
440
375
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
@@ -444,4 +379,4 @@ let SbbDialogElement = (() => {
444
379
  export {
445
380
  SbbDialogElement
446
381
  };
447
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2RpYWxvZy9kaWFsb2cvZGlhbG9nLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXNpemVDb250cm9sbGVyIH0gZnJvbSAnQGxpdC1sYWJzL29ic2VydmVycy9yZXNpemUtY29udHJvbGxlci5qcyc7XG5pbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBQcm9wZXJ0eVZhbHVlcywgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgZXZlbnRPcHRpb25zLCBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IHJlZiB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL3JlZi5qcyc7XG5pbXBvcnQgeyBodG1sIH0gZnJvbSAnbGl0L3N0YXRpYy1odG1sLmpzJztcblxuaW1wb3J0IHsgaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24gfSBmcm9tICcuLi8uLi9jb3JlL2RvbS5qcyc7XG5pbXBvcnQgeyBib3hTaXppbmdTdHlsZXMgfSBmcm9tICcuLi8uLi9jb3JlL3N0eWxlcy5qcyc7XG5pbXBvcnQgeyBvdmVybGF5UmVmcywgU2JiT3ZlcmxheUJhc2VFbGVtZW50IH0gZnJvbSAnLi4vLi4vb3ZlcmxheS5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2RpYWxvZy5zY3NzP2xpdCZpbmxpbmUnO1xuXG5pbXBvcnQgJy4uLy4uL3NjcmVlbi1yZWFkZXItb25seS5qcyc7XG5cbmxldCBuZXh0SWQgPSAwO1xuXG4vKipcbiAqIEl0IGRpc3BsYXlzIGFuIGludGVyYWN0aXZlIG92ZXJsYXkgZWxlbWVudC5cbiAqXG4gKiBAc2xvdCBhY3Rpb25zIC0gVGhpcyBzbG90IGlzIHVzZWQgZm9yIHRoZSBhY3Rpb25zLCB0aGUgc2xvdCBpcyBhdXRvbWF0aWNhbGx5IGFzc2lnbmVkIHRvIHRoZSBgc2JiLWRpYWxvZy1hY3Rpb25zYCBlbGVtZW50LlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBwcm92aWRlIGEgYHNiYi1kaWFsb2ctdGl0bGVgLCBgc2JiLWRpYWxvZy1jb250ZW50YCBhbmQgYW4gb3B0aW9uYWwgYHNiYi1kaWFsb2ctYWN0aW9uc2AuXG4gKiBAY3NzcHJvcCBbLS1zYmItZGlhbG9nLXotaW5kZXg9dmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KV0gLSBUbyBzcGVjaWZ5IGEgY3VzdG9tIHN0YWNrIG9yZGVyLFxuICogdGhlIGB6LWluZGV4YCBjYW4gYmUgb3ZlcnJpZGRlbiBieSBkZWZpbmluZyB0aGlzIENTUyB2YXJpYWJsZS4gVGhlIGRlZmF1bHQgYHotaW5kZXhgIG9mIHRoZVxuICogY29tcG9uZW50IGlzIHNldCB0byBgdmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KWAgd2l0aCBhIHZhbHVlIG9mIGAxMDAwYC5cbiAqIEBjc3NwYXJ0IHNjcm9sbC1jb250YWluZXIgLSBDYW4gYmUgdXNlZCB0byBjaGFuZ2Ugc3R5bGVzIG9mIHRoZSBzY3JvbGwgY29udGFpbmVyIG9mIHRoZSBjb250ZW50LlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItZGlhbG9nJylcbmNsYXNzIFNiYkRpYWxvZ0VsZW1lbnQgZXh0ZW5kcyBTYmJPdmVybGF5QmFzZUVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbYm94U2l6aW5nU3R5bGVzLCBzdHlsZV07XG5cbiAgLyoqIEJhY2tkcm9wIGNsaWNrIGFjdGlvbi4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYmFja2Ryb3AtYWN0aW9uJyB9KSBwdWJsaWMgYWNjZXNzb3IgYmFja2Ryb3BBY3Rpb246ICdjbG9zZScgfCAnbm9uZScgPVxuICAgICdjbG9zZSc7XG5cbiAgLyoqIEJhY2tkcm9wIGRlbnNpdHkuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2JhY2tkcm9wJywgcmVmbGVjdDogdHJ1ZSB9KSBwdWJsaWMgYWNjZXNzb3IgYmFja2Ryb3A6XG4gICAgfCAnb3BhcXVlJ1xuICAgIHwgJ3RyYW5zbHVjZW50JyA9ICdvcGFxdWUnO1xuXG4gIC8vIFdlIHVzZSBhIHRpbWVvdXQgYXMgYSB3b3JrYXJvdW5kIHRvIHRoZSBcIlJlc2l6ZU9ic2VydmVyIGxvb3AgY29tcGxldGVkIHdpdGggdW5kZWxpdmVyZWQgbm90aWZpY2F0aW9uc1wiIGVycm9yLlxuICAvLyBGb3IgbW9yZSBkZXRhaWxzOlxuICAvLyAtIGh0dHBzOi8vZ2l0aHViLmNvbS9XSUNHL3Jlc2l6ZS1vYnNlcnZlci9pc3N1ZXMvMzgjaXNzdWVjb21tZW50LTQyMjEyNjAwNlxuICAvLyAtIGh0dHBzOi8vZ2l0aHViLmNvbS9qdWdnbGUvcmVzaXplLW9ic2VydmVyL2lzc3Vlcy8xMDMjaXNzdWVjb21tZW50LTE3MTExNDgyODVcbiAgcHJpdmF0ZSBfZGlhbG9nQ29udGVudFJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZUNvbnRyb2xsZXIodGhpcywge1xuICAgIHRhcmdldDogbnVsbCxcbiAgICBza2lwSW5pdGlhbDogdHJ1ZSxcbiAgICBjYWxsYmFjazogKCkgPT4gc2V0VGltZW91dCgoKSA9PiB0aGlzLl91cGRhdGVPdmVyZmxvd1N0YXRlKCkpLFxuICB9KTtcblxuICBwcml2YXRlIF9kaWFsb2dDb250ZW50RWxlbWVudD86IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIF9kaWFsb2dFbGVtZW50PzogSFRNTEVsZW1lbnQ7XG4gIHByaXZhdGUgX2lzUG9pbnRlckRvd25FdmVudE9uRGlhbG9nOiBib29sZWFuID0gZmFsc2U7XG4gIHByb3RlY3RlZCBjbG9zZUF0dHJpYnV0ZTogc3RyaW5nID0gJ3NiYi1kaWFsb2ctY2xvc2UnO1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgY2xvc2VUYWc6IHN0cmluZyA9ICdzYmItZGlhbG9nLWNsb3NlLWJ1dHRvbic7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgLy8gQ2xvc2UgZGlhbG9nIG9uIGJhY2tkcm9wIGNsaWNrXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ3BvaW50ZXJkb3duJywgdGhpcy5fcG9pbnRlckRvd25MaXN0ZW5lcik7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ3BvaW50ZXJ1cCcsIHRoaXMuX2Nsb3NlT25CYWNrZHJvcENsaWNrKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICB0aGlzLmlkIHx8PSBgc2JiLWRpYWxvZy0ke25leHRJZCsrfWA7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgfVxuXG4gIC8qKiBBbm5vdW5jZSB0aGUgYWNjZXNzaWJpbGl0eSBsYWJlbCBvciBkaWFsb2cgdGl0bGUgZm9yIHNjcmVlbiByZWFkZXJzLiAqL1xuICBwdWJsaWMgYW5ub3VuY2VUaXRsZSgpOiB2b2lkIHtcbiAgICB0aGlzLnNldEFyaWFMaXZlUmVmQ29udGVudChcbiAgICAgIHRoaXMuYWNjZXNzaWJpbGl0eUxhYmVsIHx8IHRoaXMucXVlcnlTZWxlY3Rvcignc2JiLWRpYWxvZy10aXRsZScpPy5pbm5lclRleHQudHJpbSgpLFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKHRoaXMsICctLXNiYi1kaWFsb2ctYW5pbWF0aW9uLWR1cmF0aW9uJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQ2xvc2luZygpOiB2b2lkIHtcbiAgICB0aGlzLl9kaWFsb2dDb250ZW50RWxlbWVudD8uc2Nyb2xsVG8oMCwgMCk7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zZWQnO1xuICAgIHRoaXMuaGlkZVBvcG92ZXI/LigpO1xuXG4gICAgdGhpcy5pbmVydENvbnRyb2xsZXIuZGVhY3RpdmF0ZSgpO1xuICAgIGlmICghdGhpcy5za2lwRm9jdXNSZXN0b3JhdGlvbikge1xuICAgICAgLy8gTWFudWFsbHkgZm9jdXMgbGFzdCBmb2N1c2VkIGVsZW1lbnRcbiAgICAgIHRoaXMubGFzdEZvY3VzZWRFbGVtZW50Py5mb2N1cygpO1xuICAgIH1cbiAgICB0aGlzLm9wZW5PdmVybGF5Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLmZvY3VzVHJhcENvbnRyb2xsZXIuZW5hYmxlZCA9IGZhbHNlO1xuICAgIGlmICh0aGlzLl9kaWFsb2dDb250ZW50RWxlbWVudCkge1xuICAgICAgdGhpcy5fZGlhbG9nQ29udGVudFJlc2l6ZU9ic2VydmVyLnVub2JzZXJ2ZSh0aGlzLl9kaWFsb2dDb250ZW50RWxlbWVudCk7XG4gICAgfVxuICAgIHRoaXMucmVtb3ZlSW5zdGFuY2VGcm9tR2xvYmFsQ29sbGVjdGlvbigpO1xuICAgIC8vIEVuYWJsZSBzY3JvbGxpbmcgZm9yIGNvbnRlbnQgYmVsb3cgdGhlIGRpYWxvZyBpZiBubyBkaWFsb2cgaXMgb3BlblxuICAgIGlmICghb3ZlcmxheVJlZnMubGVuZ3RoKSB7XG4gICAgICB0aGlzLnNjcm9sbEhhbmRsZXIuZW5hYmxlU2Nyb2xsKCk7XG4gICAgfVxuICAgIHRoaXMuZXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIuZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuZGlzcGF0Y2hDbG9zZUV2ZW50KHtcbiAgICAgIHJldHVyblZhbHVlOiB0aGlzLnJldHVyblZhbHVlLFxuICAgICAgY2xvc2VUYXJnZXQ6IHRoaXMub3ZlcmxheUNsb3NlRWxlbWVudCxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVPcGVuaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmVkJztcbiAgICB0aGlzLmluZXJ0Q29udHJvbGxlci5hY3RpdmF0ZSgpO1xuICAgIHRoaXMuZXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIuY29ubmVjdCgpO1xuICAgIHRoaXMuYXR0YWNoT3Blbk92ZXJsYXlFdmVudHMoKTtcbiAgICB0aGlzLmZvY3VzVHJhcENvbnRyb2xsZXIuZm9jdXNJbml0aWFsRWxlbWVudCgpO1xuICAgIC8vIFVzZSB0aW1lb3V0IHRvIHJlYWQgbGFiZWwgYWZ0ZXIgZm9jdXNlZCBlbGVtZW50XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmFubm91bmNlVGl0bGUoKSk7XG4gICAgdGhpcy5mb2N1c1RyYXBDb250cm9sbGVyLmVuYWJsZWQgPSB0cnVlO1xuICAgIGlmICh0aGlzLl9kaWFsb2dDb250ZW50RWxlbWVudCkge1xuICAgICAgdGhpcy5fZGlhbG9nQ29udGVudFJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy5fZGlhbG9nQ29udGVudEVsZW1lbnQpO1xuICAgIH1cbiAgICB0aGlzLmRpc3BhdGNoT3BlbkV2ZW50KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICB0aGlzLl9zeW5jVGl0bGVOZWdhdGl2ZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCduZWdhdGl2ZScpKSB7XG4gICAgICB0aGlzLl9zeW5jVGl0bGVOZWdhdGl2ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3N5bmNUaXRsZU5lZ2F0aXZlKCk6IHZvaWQge1xuICAgIGNvbnN0IGRpYWxvZ1RpdGxlID0gdGhpcy5xdWVyeVNlbGVjdG9yPy4oJ3NiYi1kaWFsb2ctdGl0bGUnKTtcbiAgICBjb25zdCBjbG9zZUJ1dHRvbiA9IHRoaXMucXVlcnlTZWxlY3Rvcj8uKCdzYmItZGlhbG9nLWNsb3NlLWJ1dHRvbicpO1xuXG4gICAgaWYgKGRpYWxvZ1RpdGxlKSB7XG4gICAgICBkaWFsb2dUaXRsZS5uZWdhdGl2ZSA9IHRoaXMubmVnYXRpdmU7XG4gICAgfVxuXG4gICAgaWYgKGNsb3NlQnV0dG9uKSB7XG4gICAgICBjbG9zZUJ1dHRvbi5uZWdhdGl2ZSA9IHRoaXMubmVnYXRpdmU7XG4gICAgfVxuICB9XG5cbiAgLyoqIENoZWNrIGlmIHRoZSBwb2ludGVyZG93biBldmVudCB0YXJnZXQgaXMgdHJpZ2dlcmVkIG9uIHRoZSBkaWFsb2cuICovXG4gIHByaXZhdGUgX3BvaW50ZXJEb3duTGlzdGVuZXIgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQgPT4ge1xuICAgIGlmICh0aGlzLmJhY2tkcm9wQWN0aW9uICE9PSAnY2xvc2UnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5faXNQb2ludGVyRG93bkV2ZW50T25EaWFsb2cgPVxuICAgICAgISF0aGlzLl9kaWFsb2dFbGVtZW50ICYmIGV2ZW50LmNvbXBvc2VkUGF0aCgpLmluY2x1ZGVzKHRoaXMuX2RpYWxvZ0VsZW1lbnQpO1xuICB9O1xuXG4gIC8qKiBDbG9zZSBkaWFsb2cgb24gYmFja2Ryb3AgY2xpY2suICovXG4gIHByaXZhdGUgX2Nsb3NlT25CYWNrZHJvcENsaWNrID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpOiB2b2lkID0+IHtcbiAgICBpZiAoXG4gICAgICB0aGlzLmJhY2tkcm9wQWN0aW9uID09PSAnY2xvc2UnICYmXG4gICAgICAhdGhpcy5faXNQb2ludGVyRG93bkV2ZW50T25EaWFsb2cgJiZcbiAgICAgIHRoaXMuX2RpYWxvZ0VsZW1lbnQgJiZcbiAgICAgICFldmVudC5jb21wb3NlZFBhdGgoKS5pbmNsdWRlcyh0aGlzLl9kaWFsb2dFbGVtZW50KVxuICAgICkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIF91cGRhdGVPdmVyZmxvd1N0YXRlKCk6IHZvaWQge1xuICAgIHRoaXMudG9nZ2xlU3RhdGUoXG4gICAgICAnb3ZlcmZsb3dzJyxcbiAgICAgICh0aGlzLl9kaWFsb2dDb250ZW50RWxlbWVudD8uc2Nyb2xsVG9wID8/IDApICtcbiAgICAgICAgKHRoaXMuX2RpYWxvZ0NvbnRlbnRFbGVtZW50Py5vZmZzZXRIZWlnaHQgPz8gMCkgPFxuICAgICAgICAodGhpcy5fZGlhbG9nQ29udGVudEVsZW1lbnQ/LnNjcm9sbEhlaWdodCA/PyAwKSxcbiAgICApO1xuICB9XG5cbiAgQGV2ZW50T3B0aW9ucyh7IHBhc3NpdmU6IHRydWUgfSlcbiAgcHJpdmF0ZSBfZGV0ZWN0U2Nyb2xsZWRTdGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnRvZ2dsZVN0YXRlKCdzY3JvbGxlZCcsICh0aGlzLl9kaWFsb2dDb250ZW50RWxlbWVudD8uc2Nyb2xsVG9wID8/IDApID4gMCk7XG4gICAgdGhpcy5fdXBkYXRlT3ZlcmZsb3dTdGF0ZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLWRpYWxvZ19fY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBAYW5pbWF0aW9uZW5kPSR7dGhpcy5vbk92ZXJsYXlBbmltYXRpb25FbmR9XG4gICAgICAgICAgY2xhc3M9XCJzYmItZGlhbG9nXCJcbiAgICAgICAgICAke3JlZigoZWw/OiBFbGVtZW50KSA9PiAodGhpcy5fZGlhbG9nRWxlbWVudCA9IGVsIGFzIEhUTUxEaXZFbGVtZW50KSl9XG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBAY2xpY2s9JHsoZXZlbnQ6IEV2ZW50KSA9PiB0aGlzLmNsb3NlT25TYmJPdmVybGF5Q2xvc2VDbGljayhldmVudCl9XG4gICAgICAgICAgICBjbGFzcz1cInNiYi1kaWFsb2dfX3dyYXBwZXJcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItZGlhbG9nLXRpdGxlLXNlY3Rpb25cIj5cbiAgICAgICAgICAgICAgPHNsb3QgbmFtZT1cInRpdGxlLXNlY3Rpb25cIiBAc2xvdGNoYW5nZT0keygpID0+IHRoaXMuX3N5bmNUaXRsZU5lZ2F0aXZlKCl9Pjwvc2xvdD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cInNiYi1kaWFsb2ctY29udGVudC1jb250YWluZXJcIlxuICAgICAgICAgICAgICBwYXJ0PVwic2Nyb2xsLWNvbnRhaW5lclwiXG4gICAgICAgICAgICAgIEBzY3JvbGw9JHsoKSA9PiB0aGlzLl9kZXRlY3RTY3JvbGxlZFN0YXRlKCl9XG4gICAgICAgICAgICAgICR7cmVmKChlbD86IEVsZW1lbnQpID0+ICh0aGlzLl9kaWFsb2dDb250ZW50RWxlbWVudCA9IGVsIGFzIEhUTUxEaXZFbGVtZW50KSl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHNsb3QgbmFtZT1cImFjdGlvbnNcIj48L3Nsb3Q+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8c2JiLXNjcmVlbi1yZWFkZXItb25seSBhcmlhLWxpdmU9XCJwb2xpdGVcIj48L3NiYi1zY3JlZW4tcmVhZGVyLW9ubHk+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWRpYWxvZyc6IFNiYkRpYWxvZ0VsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBY0EsSUFBSSxTQUFTO0lBY1Asb0JBQWdCLE1BQUE7OzBCQURyQixjQUFjLFlBQVksQ0FBQzs7OztvQkFDRzs7Ozs7Ozs7O0FBQVIsRUFBQSxtQkFBUSxZQUFxQjtBQUFBLElBNEJsRCxjQUFBO0FBQ0UsWUFBQTtBQXpCMEM7QUFJUTtBQUpRLHlCQUFBLG1DQUp4RCxrQkFBQSxNQUFBLDBCQUFBLEdBQWdCLGtCQUFBLE1BQUEsOEJBS2xCLE9BQU87QUFHMkQseUJBQUEsNkJBQUEsa0JBQUEsTUFBQSxpQ0FBQSxHQUFBLGtCQUFBLE1BQUEsd0JBRWhELFFBQVE7QUFNcEIsV0FBQSxnQ0FBNEIsa0JBQUEsTUFBQSwyQkFBQSxHQUFHLElBQUksaUJBQWlCLE1BQU07QUFBQSxRQUNoRSxRQUFRO0FBQUEsUUFDUixhQUFhO0FBQUEsUUFDYixVQUFVLE1BQU0sV0FBVyxNQUFNLEtBQUssc0JBQXNCO0FBQUEsTUFBQSxDQUM3RDtBQUlPLFdBQUEsOEJBQXVDO0FBQ3JDLFdBQUEsaUJBQXlCO0FBQ2hCLFdBQUEsV0FBbUI7QUErRjlCLFdBQUEsdUJBQXVCLENBQUMsVUFBNkI7QUFDM0QsWUFBSSxLQUFLLG1CQUFtQixTQUFTO0FBQ25DO0FBQUEsUUFDRjtBQUVBLGFBQUssOEJBQ0gsQ0FBQyxDQUFDLEtBQUssa0JBQWtCLE1B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
382
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2RpYWxvZy9kaWFsb2cvZGlhbG9nLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXNpemVDb250cm9sbGVyIH0gZnJvbSAnQGxpdC1sYWJzL29ic2VydmVycy9yZXNpemUtY29udHJvbGxlci5qcyc7XG5pbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBQcm9wZXJ0eVZhbHVlcywgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyByZWYgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZWYuanMnO1xuaW1wb3J0IHsgaHRtbCB9IGZyb20gJ2xpdC9zdGF0aWMtaHRtbC5qcyc7XG5cbmltcG9ydCB7IGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uIH0gZnJvbSAnLi4vLi4vY29yZS9kb20uanMnO1xuaW1wb3J0IHsgYm94U2l6aW5nU3R5bGVzIH0gZnJvbSAnLi4vLi4vY29yZS9zdHlsZXMuanMnO1xuaW1wb3J0IHsgb3ZlcmxheVJlZnMsIFNiYk92ZXJsYXlCYXNlRWxlbWVudCB9IGZyb20gJy4uLy4uL292ZXJsYXkuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJEaWFsb2dDb250ZW50RWxlbWVudCB9IGZyb20gJy4uL2RpYWxvZy1jb250ZW50L2RpYWxvZy1jb250ZW50LmNvbXBvbmVudC5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2RpYWxvZy5zY3NzP2xpdCZpbmxpbmUnO1xuXG5pbXBvcnQgJy4uLy4uL3NjcmVlbi1yZWFkZXItb25seS5qcyc7XG5cbmxldCBuZXh0SWQgPSAwO1xuXG4vKipcbiAqIEl0IGRpc3BsYXlzIGFuIGludGVyYWN0aXZlIG92ZXJsYXkgZWxlbWVudC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIHByb3ZpZGUgYSBgc2JiLWRpYWxvZy10aXRsZWAsIGBzYmItZGlhbG9nLWNvbnRlbnRgIGFuZCBhbiBvcHRpb25hbCBgc2JiLWRpYWxvZy1hY3Rpb25zYC5cbiAqIEBjc3Nwcm9wIFstLXNiYi1kaWFsb2ctei1pbmRleD12YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpXSAtIFRvIHNwZWNpZnkgYSBjdXN0b20gc3RhY2sgb3JkZXIsXG4gKiB0aGUgYHotaW5kZXhgIGNhbiBiZSBvdmVycmlkZGVuIGJ5IGRlZmluaW5nIHRoaXMgQ1NTIHZhcmlhYmxlLiBUaGUgZGVmYXVsdCBgei1pbmRleGAgb2YgdGhlXG4gKiBjb21wb25lbnQgaXMgc2V0IHRvIGB2YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpYCB3aXRoIGEgdmFsdWUgb2YgYDEwMDBgLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItZGlhbG9nJylcbmNsYXNzIFNiYkRpYWxvZ0VsZW1lbnQgZXh0ZW5kcyBTYmJPdmVybGF5QmFzZUVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbYm94U2l6aW5nU3R5bGVzLCBzdHlsZV07XG5cbiAgLyoqIEJhY2tkcm9wIGNsaWNrIGFjdGlvbi4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYmFja2Ryb3AtYWN0aW9uJyB9KSBwdWJsaWMgYWNjZXNzb3IgYmFja2Ryb3BBY3Rpb246ICdjbG9zZScgfCAnbm9uZScgPVxuICAgICdjbG9zZSc7XG5cbiAgLyoqIEJhY2tkcm9wIGRlbnNpdHkuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2JhY2tkcm9wJywgcmVmbGVjdDogdHJ1ZSB9KSBwdWJsaWMgYWNjZXNzb3IgYmFja2Ryb3A6XG4gICAgfCAnb3BhcXVlJ1xuICAgIHwgJ3RyYW5zbHVjZW50JyA9ICdvcGFxdWUnO1xuXG4gIC8vIFdlIHVzZSBhIHRpbWVvdXQgYXMgYSB3b3JrYXJvdW5kIHRvIHRoZSBcIlJlc2l6ZU9ic2VydmVyIGxvb3AgY29tcGxldGVkIHdpdGggdW5kZWxpdmVyZWQgbm90aWZpY2F0aW9uc1wiIGVycm9yLlxuICAvLyBGb3IgbW9yZSBkZXRhaWxzOlxuICAvLyAtIGh0dHBzOi8vZ2l0aHViLmNvbS9XSUNHL3Jlc2l6ZS1vYnNlcnZlci9pc3N1ZXMvMzgjaXNzdWVjb21tZW50LTQyMjEyNjAwNlxuICAvLyAtIGh0dHBzOi8vZ2l0aHViLmNvbS9qdWdnbGUvcmVzaXplLW9ic2VydmVyL2lzc3Vlcy8xMDMjaXNzdWVjb21tZW50LTE3MTExNDgyODVcbiAgcHJpdmF0ZSBfZGlhbG9nQ29udGVudFJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZUNvbnRyb2xsZXIodGhpcywge1xuICAgIHRhcmdldDogbnVsbCxcbiAgICBza2lwSW5pdGlhbDogdHJ1ZSxcbiAgICBjYWxsYmFjazogKCkgPT4gc2V0VGltZW91dCgoKSA9PiB0aGlzLl91cGRhdGVPdmVyZmxvd1N0YXRlKCkpLFxuICB9KTtcblxuICBwcml2YXRlIF9kaWFsb2dFbGVtZW50PzogSFRNTEVsZW1lbnQ7XG4gIHByaXZhdGUgX2lzUG9pbnRlckRvd25FdmVudE9uRGlhbG9nOiBib29sZWFuID0gZmFsc2U7XG4gIHByb3RlY3RlZCBjbG9zZUF0dHJpYnV0ZTogc3RyaW5nID0gJ3NiYi1kaWFsb2ctY2xvc2UnO1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgY2xvc2VUYWc6IHN0cmluZyA9ICdzYmItZGlhbG9nLWNsb3NlLWJ1dHRvbic7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgLy8gQ2xvc2UgZGlhbG9nIG9uIGJhY2tkcm9wIGNsaWNrXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ3BvaW50ZXJkb3duJywgdGhpcy5fcG9pbnRlckRvd25MaXN0ZW5lcik7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ3BvaW50ZXJ1cCcsIHRoaXMuX2Nsb3NlT25CYWNrZHJvcENsaWNrKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsICgpID0+IHRoaXMuX3VwZGF0ZU92ZXJmbG93U3RhdGUoKSwge1xuICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICAgIGNhcHR1cmU6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgdGhpcy5pZCB8fD0gYHNiYi1kaWFsb2ctJHtuZXh0SWQrK31gO1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gIH1cblxuICAvKiogQW5ub3VuY2UgdGhlIGFjY2Vzc2liaWxpdHkgbGFiZWwgb3IgZGlhbG9nIHRpdGxlIGZvciBzY3JlZW4gcmVhZGVycy4gKi9cbiAgcHVibGljIGFubm91bmNlVGl0bGUoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRBcmlhTGl2ZVJlZkNvbnRlbnQoXG4gICAgICB0aGlzLmFjY2Vzc2liaWxpdHlMYWJlbCB8fCB0aGlzLnF1ZXJ5U2VsZWN0b3IoJ3NiYi1kaWFsb2ctdGl0bGUnKT8uaW5uZXJUZXh0LnRyaW0oKSxcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1plcm9BbmltYXRpb25EdXJhdGlvbih0aGlzLCAnLS1zYmItZGlhbG9nLWFuaW1hdGlvbi1kdXJhdGlvbicpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUNsb3NpbmcoKTogdm9pZCB7XG4gICAgY29uc3QgY29udGVudEVsZW1lbnQgPSB0aGlzLl9jb250ZW50RWxlbWVudCgpO1xuXG4gICAgY29udGVudEVsZW1lbnQ/LnNjcm9sbFRvKDAsIDApO1xuICAgIHRoaXMuc3RhdGUgPSAnY2xvc2VkJztcbiAgICB0aGlzLmhpZGVQb3BvdmVyPy4oKTtcblxuICAgIHRoaXMuaW5lcnRDb250cm9sbGVyLmRlYWN0aXZhdGUoKTtcbiAgICBpZiAoIXRoaXMuc2tpcEZvY3VzUmVzdG9yYXRpb24pIHtcbiAgICAgIC8vIE1hbnVhbGx5IGZvY3VzIGxhc3QgZm9jdXNlZCBlbGVtZW50XG4gICAgICB0aGlzLmxhc3RGb2N1c2VkRWxlbWVudD8uZm9jdXMoKTtcbiAgICB9XG4gICAgdGhpcy5vcGVuT3ZlcmxheUNvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5mb2N1c1RyYXBDb250cm9sbGVyLmVuYWJsZWQgPSBmYWxzZTtcbiAgICBpZiAoY29udGVudEVsZW1lbnQpIHtcbiAgICAgIHRoaXMuX2RpYWxvZ0NvbnRlbnRSZXNpemVPYnNlcnZlci5ob3N0RGlzY29ubmVjdGVkKCk7XG4gICAgfVxuICAgIHRoaXMucmVtb3ZlSW5zdGFuY2VGcm9tR2xvYmFsQ29sbGVjdGlvbigpO1xuICAgIC8vIEVuYWJsZSBzY3JvbGxpbmcgZm9yIGNvbnRlbnQgYmVsb3cgdGhlIGRpYWxvZyBpZiBubyBkaWFsb2cgaXMgb3BlblxuICAgIGlmICghb3ZlcmxheVJlZnMubGVuZ3RoKSB7XG4gICAgICB0aGlzLnNjcm9sbEhhbmRsZXIuZW5hYmxlU2Nyb2xsKCk7XG4gICAgfVxuICAgIHRoaXMuZXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIuZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuZGlzcGF0Y2hDbG9zZUV2ZW50KHtcbiAgICAgIHJldHVyblZhbHVlOiB0aGlzLnJldHVyblZhbHVlLFxuICAgICAgY2xvc2VUYXJnZXQ6IHRoaXMub3ZlcmxheUNsb3NlRWxlbWVudCxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVPcGVuaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmVkJztcbiAgICB0aGlzLmluZXJ0Q29udHJvbGxlci5hY3RpdmF0ZSgpO1xuICAgIHRoaXMuZXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIuY29ubmVjdCgpO1xuICAgIHRoaXMuYXR0YWNoT3Blbk92ZXJsYXlFdmVudHMoKTtcbiAgICB0aGlzLmZvY3VzVHJhcENvbnRyb2xsZXIuZm9jdXNJbml0aWFsRWxlbWVudCgpO1xuICAgIC8vIFVzZSB0aW1lb3V0IHRvIHJlYWQgbGFiZWwgYWZ0ZXIgZm9jdXNlZCBlbGVtZW50XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmFubm91bmNlVGl0bGUoKSk7XG4gICAgdGhpcy5mb2N1c1RyYXBDb250cm9sbGVyLmVuYWJsZWQgPSB0cnVlO1xuXG4gICAgY29uc3QgY29udGVudEVsZW1lbnQgPSB0aGlzLl9jb250ZW50RWxlbWVudCgpO1xuICAgIGlmIChjb250ZW50RWxlbWVudCkge1xuICAgICAgdGhpcy5fZGlhbG9nQ29udGVudFJlc2l6ZU9ic2VydmVyLm9ic2VydmUoY29udGVudEVsZW1lbnQpO1xuICAgIH1cbiAgICB0aGlzLmRpc3BhdGNoT3BlbkV2ZW50KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICB0aGlzLl9zeW5jVGl0bGVOZWdhdGl2ZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCduZWdhdGl2ZScpKSB7XG4gICAgICB0aGlzLl9zeW5jVGl0bGVOZWdhdGl2ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZVNsb3RDaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5fc3luY1RpdGxlTmVnYXRpdmUoKTtcbiAgICB0aGlzLl9kZXRlY3RJbnRlcm1lZGlhdGVFbGVtZW50KCk7XG4gIH1cblxuICBwcml2YXRlIF9zeW5jVGl0bGVOZWdhdGl2ZSgpOiB2b2lkIHtcbiAgICBjb25zdCBkaWFsb2dUaXRsZSA9IHRoaXMucXVlcnlTZWxlY3Rvcj8uKCdzYmItZGlhbG9nLXRpdGxlJyk7XG4gICAgY29uc3QgY2xvc2VCdXR0b24gPSB0aGlzLnF1ZXJ5U2VsZWN0b3I/Lignc2JiLWRpYWxvZy1jbG9zZS1idXR0b24nKTtcblxuICAgIGlmIChkaWFsb2dUaXRsZSkge1xuICAgICAgZGlhbG9nVGl0bGUubmVnYXRpdmUgPSB0aGlzLm5lZ2F0aXZlO1xuICAgIH1cblxuICAgIGlmIChjbG9zZUJ1dHRvbikge1xuICAgICAgY2xvc2VCdXR0b24ubmVnYXRpdmUgPSB0aGlzLm5lZ2F0aXZlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2RldGVjdEludGVybWVkaWF0ZUVsZW1lbnQoKTogdm9pZCB7XG4gICAgY29uc3QgaGFzTm9FeHBlY3RlZERpcmVjdENoaWxkcmVuID1cbiAgICAgIHRoaXMucXVlcnlTZWxlY3RvcihcbiAgICAgICAgJzpzY29wZSA+IDppcyhzYmItZGlhbG9nLXRpdGxlLCBzYmItZGlhbG9nLWNsb3NlLWJ1dHRvbiwgc2JiLWRpYWxvZy1jb250ZW50LCBzYmItZGlhbG9nLWFjdGlvbnMpJyxcbiAgICAgICkgPT09IG51bGw7XG5cbiAgICB0aGlzLnRvZ2dsZVN0YXRlKCdoYXMtaW50ZXJtZWRpYXRlLWVsZW1lbnQnLCBoYXNOb0V4cGVjdGVkRGlyZWN0Q2hpbGRyZW4pO1xuICB9XG5cbiAgLyoqIENoZWNrIGlmIHRoZSBwb2ludGVyZG93biBldmVudCB0YXJnZXQgaXMgdHJpZ2dlcmVkIG9uIHRoZSBkaWFsb2cuICovXG4gIHByaXZhdGUgX3BvaW50ZXJEb3duTGlzdGVuZXIgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQgPT4ge1xuICAgIGlmICh0aGlzLmJhY2tkcm9wQWN0aW9uICE9PSAnY2xvc2UnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5faXNQb2ludGVyRG93bkV2ZW50T25EaWFsb2cgPVxuICAgICAgISF0aGlzLl9kaWFsb2dFbGVtZW50ICYmIGV2ZW50LmNvbXBvc2VkUGF0aCgpLmluY2x1ZGVzKHRoaXMuX2RpYWxvZ0VsZW1lbnQpO1xuICB9O1xuXG4gIC8qKiBDbG9zZSBkaWFsb2cgb24gYmFja2Ryb3AgY2xpY2suICovXG4gIHByaXZhdGUgX2Nsb3NlT25CYWNrZHJvcENsaWNrID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpOiB2b2lkID0+IHtcbiAgICBpZiAoXG4gICAgICB0aGlzLmJhY2tkcm9wQWN0aW9uID09PSAnY2xvc2UnICYmXG4gICAgICAhdGhpcy5faXNQb2ludGVyRG93bkV2ZW50T25EaWFsb2cgJiZcbiAgICAgIHRoaXMuX2RpYWxvZ0VsZW1lbnQgJiZcbiAgICAgICFldmVudC5jb21wb3NlZFBhdGgoKS5pbmNsdWRlcyh0aGlzLl9kaWFsb2dFbGVtZW50KVxuICAgICkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIF91cGRhdGVPdmVyZmxvd1N0YXRlKCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRlbnRFbGVtZW50ID0gdGhpcy5fY29udGVudEVsZW1lbnQoKTtcbiAgICB0aGlzLnRvZ2dsZVN0YXRlKCd0b3Atc2hhZG93JywgKGNvbnRlbnRFbGVtZW50Py5zY3JvbGxUb3AgPz8gMCkgPiAwKTtcbiAgICB0aGlzLnRvZ2dsZVN0YXRlKFxuICAgICAgJ2JvdHRvbS1zaGFkb3cnLFxuICAgICAgKGNvbnRlbnRFbGVtZW50Py5zY3JvbGxUb3AgPz8gMCkgKyAoY29udGVudEVsZW1lbnQ/Lm9mZnNldEhlaWdodCA/PyAwKSA8XG4gICAgICAgIChjb250ZW50RWxlbWVudD8uc2Nyb2xsSGVpZ2h0ID8/IDApLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9jb250ZW50RWxlbWVudCgpOiBTYmJEaWFsb2dDb250ZW50RWxlbWVudCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnF1ZXJ5U2VsZWN0b3IoJ3NiYi1kaWFsb2ctY29udGVudCcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLWRpYWxvZ19fY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBAYW5pbWF0aW9uZW5kPSR7dGhpcy5vbk92ZXJsYXlBbmltYXRpb25FbmR9XG4gICAgICAgICAgY2xhc3M9XCJzYmItZGlhbG9nXCJcbiAgICAgICAgICAke3JlZigoZWw/OiBFbGVtZW50KSA9PiAodGhpcy5fZGlhbG9nRWxlbWVudCA9IGVsIGFzIEhUTUxEaXZFbGVtZW50KSl9XG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBAY2xpY2s9JHsoZXZlbnQ6IEV2ZW50KSA9PiB0aGlzLmNsb3NlT25TYmJPdmVybGF5Q2xvc2VDbGljayhldmVudCl9XG4gICAgICAgICAgICBjbGFzcz1cInNiYi1kaWFsb2dfX3dyYXBwZXJcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzbG90IEBzbG90Y2hhbmdlPSR7KCkgPT4gdGhpcy5faGFuZGxlU2xvdENoYW5nZSgpfT48L3Nsb3Q+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8c2JiLXNjcmVlbi1yZWFkZXItb25seSBhcmlhLWxpdmU9XCJwb2xpdGVcIj48L3NiYi1zY3JlZW4tcmVhZGVyLW9ubHk+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWRpYWxvZyc6IFNiYkRpYWxvZ0VsZW1lbnQ7XG4gIH1cbn1cbiJdLCJu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
@@ -8,7 +8,6 @@ import { SbbActionGroupElement } from '../../action-group.js';
8
8
  export declare class SbbDialogActionsElement extends SbbActionGroupElement {
9
9
  static styles: CSSResultGroup;
10
10
  constructor();
11
- connectedCallback(): void;
12
11
  }
13
12
  declare global {
14
13
  interface HTMLElementTagNameMap {
@@ -1 +1 @@
1
- {"version":3,"file":"dialog-actions.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/dialog/dialog-actions/dialog-actions.component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAG1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAK9D;;;;GAIG;AACH,qBAEM,uBAAwB,SAAQ,qBAAqB;IACzD,OAAuB,MAAM,EAAE,cAAc,CAAyC;;IAWtE,iBAAiB,IAAI,IAAI;CAI1C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,oBAAoB,EAAE,uBAAuB,CAAC;KAC/C;CACF"}
1
+ {"version":3,"file":"dialog-actions.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/dialog/dialog-actions/dialog-actions.component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAG1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAK9D;;;;GAIG;AACH,qBAEM,uBAAwB,SAAQ,qBAAqB;IACzD,OAAuB,MAAM,EAAE,cAAc,CAAyC;;CAUvF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,oBAAoB,EAAE,uBAAuB,CAAC;KAC/C;CACF"}
@@ -4,13 +4,13 @@ import { SbbActionGroupElement } from "../../action-group.js";
4
4
  import { isLean } from "../../core/dom/lean-context.js";
5
5
  import { css } from "lit";
6
6
  const style = css`:host {
7
- --sbb-dialog-actions-border-color: var(--sbb-background-color-4);
7
+ grid-area: actions;
8
8
  padding-inline: var(--sbb-dialog-padding-inline);
9
9
  padding-block: var(--sbb-dialog-padding-block);
10
10
  margin-block-start: auto;
11
11
  background-color: var(--sbb-dialog-background-color);
12
12
  transition: box-shadow var(--sbb-animation-easing) var(--sbb-dialog-shadow-animation-duration);
13
- box-shadow: none;
13
+ box-shadow: var(--sbb-dialog-block-end-box-shadow, none);
14
14
  }
15
15
  :host::before {
16
16
  content: "";
@@ -40,10 +40,6 @@ let SbbDialogActionsElement = (() => {
40
40
  this.buttonSize = isLean() ? "s" : "m";
41
41
  this.linkSize = isLean() ? "xs" : "s";
42
42
  }
43
- connectedCallback() {
44
- super.connectedCallback();
45
- this.slot ||= "actions";
46
- }
47
43
  }, _classThis = _a, (() => {
48
44
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
49
45
  __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
@@ -55,4 +51,4 @@ let SbbDialogActionsElement = (() => {
55
51
  export {
56
52
  SbbDialogActionsElement
57
53
  };
58
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWFjdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvZGlhbG9nL2RpYWxvZy1hY3Rpb25zL2RpYWxvZy1hY3Rpb25zLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IFNiYkFjdGlvbkdyb3VwRWxlbWVudCB9IGZyb20gJy4uLy4uL2FjdGlvbi1ncm91cC5qcyc7XG5pbXBvcnQgeyBpc0xlYW4gfSBmcm9tICcuLi8uLi9jb3JlL2RvbS9sZWFuLWNvbnRleHQuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9kaWFsb2ctYWN0aW9ucy5zY3NzP2xpdCZpbmxpbmUnO1xuXG4vKipcbiAqIFVzZSB0aGlzIGNvbXBvbmVudCB0byBkaXNwbGF5IGEgZm9vdGVyIGludG8gYW4gYHNiYi1kaWFsb2dgIHdpdGggYW4gYWN0aW9uIGdyb3VwLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGBzYmItYmxvY2stbGlua2Agb3IgYHNiYi1idXR0b25gIGVsZW1lbnRzIHRvIHRoZSBgc2JiLWRpYWxvZy1hY3Rpb25zYC5cbiAqL1xuZXhwb3J0XG5AY3VzdG9tRWxlbWVudCgnc2JiLWRpYWxvZy1hY3Rpb25zJylcbmNsYXNzIFNiYkRpYWxvZ0FjdGlvbnNFbGVtZW50IGV4dGVuZHMgU2JiQWN0aW9uR3JvdXBFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW1NiYkFjdGlvbkdyb3VwRWxlbWVudC5zdHlsZXMsIHN0eWxlXTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICAvKiogQGRlZmF1bHQgJ20nIC8gJ3MnIChsZWFuKSAqL1xuICAgIHRoaXMuYnV0dG9uU2l6ZSA9IGlzTGVhbigpID8gJ3MnIDogJ20nO1xuXG4gICAgLyoqIEBkZWZhdWx0ICdzJyAvICd4cycgKGxlYW4pICovXG4gICAgdGhpcy5saW5rU2l6ZSA9IGlzTGVhbigpID8gJ3hzJyA6ICdzJztcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuc2xvdCB8fD0gJ2FjdGlvbnMnO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItZGlhbG9nLWFjdGlvbnMnOiBTYmJEaWFsb2dBY3Rpb25zRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBZU0sMkJBQXVCLE1BQUE7OzBCQUQ1QixjQUFjLG9CQUFvQixDQUFDOzs7O29CQUNFO0FBQVIsRUFBQSxtQkFBUSxZQUFxQjtBQUFBLElBR3pELGNBQUE7QUFDRSxZQUFBO0FBRUEsV0FBSyxhQUFhLE9BQUEsSUFBVyxNQUFNO0FBR25DLFdBQUssV0FBVyxPQUFBLElBQVcsT0FBTztBQUFBLElBQ3BDO0FBQUEsSUFFZ0Isb0JBQWlCO0FBQy9CLFlBQU0sa0JBQUE7QUFDTixXQUFLLFNBQVM7QUFBQSxJQUNoQjtBQUFBOztBQWZGLGlCQUFBLE1BQUEsbUJBQUEsRUFBQSxPQUFBLFdBQUEsR0FBQSxrQkFBQSxFQUFBLE1BQUEsU0FBQSxNQUFBLFdBQUEsTUFBQSxVQUFBLFVBQUEsR0FBQSxNQUFBLHVCQUFBOzs7UUFDeUIsR0FBQSxTQUF5QixDQUFDLHNCQUFzQixRQUFRLEtBQUssR0FEaEYsa0JBQUEsWUFBQSx1QkFBQSxHQUF3Qjs7OyJ9
54
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWFjdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvZGlhbG9nL2RpYWxvZy1hY3Rpb25zL2RpYWxvZy1hY3Rpb25zLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IFNiYkFjdGlvbkdyb3VwRWxlbWVudCB9IGZyb20gJy4uLy4uL2FjdGlvbi1ncm91cC5qcyc7XG5pbXBvcnQgeyBpc0xlYW4gfSBmcm9tICcuLi8uLi9jb3JlL2RvbS9sZWFuLWNvbnRleHQuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9kaWFsb2ctYWN0aW9ucy5zY3NzP2xpdCZpbmxpbmUnO1xuXG4vKipcbiAqIFVzZSB0aGlzIGNvbXBvbmVudCB0byBkaXNwbGF5IGEgZm9vdGVyIGludG8gYW4gYHNiYi1kaWFsb2dgIHdpdGggYW4gYWN0aW9uIGdyb3VwLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGBzYmItYmxvY2stbGlua2Agb3IgYHNiYi1idXR0b25gIGVsZW1lbnRzIHRvIHRoZSBgc2JiLWRpYWxvZy1hY3Rpb25zYC5cbiAqL1xuZXhwb3J0XG5AY3VzdG9tRWxlbWVudCgnc2JiLWRpYWxvZy1hY3Rpb25zJylcbmNsYXNzIFNiYkRpYWxvZ0FjdGlvbnNFbGVtZW50IGV4dGVuZHMgU2JiQWN0aW9uR3JvdXBFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW1NiYkFjdGlvbkdyb3VwRWxlbWVudC5zdHlsZXMsIHN0eWxlXTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICAvKiogQGRlZmF1bHQgJ20nIC8gJ3MnIChsZWFuKSAqL1xuICAgIHRoaXMuYnV0dG9uU2l6ZSA9IGlzTGVhbigpID8gJ3MnIDogJ20nO1xuXG4gICAgLyoqIEBkZWZhdWx0ICdzJyAvICd4cycgKGxlYW4pICovXG4gICAgdGhpcy5saW5rU2l6ZSA9IGlzTGVhbigpID8gJ3hzJyA6ICdzJztcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWRpYWxvZy1hY3Rpb25zJzogU2JiRGlhbG9nQWN0aW9uc0VsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQWVNLDJCQUF1QixNQUFBOzswQkFENUIsY0FBYyxvQkFBb0IsQ0FBQzs7OztvQkFDRTtBQUFSLEVBQUEsbUJBQVEsWUFBcUI7QUFBQSxJQUd6RCxjQUFBO0FBQ0UsWUFBQTtBQUVBLFdBQUssYUFBYSxPQUFBLElBQVcsTUFBTTtBQUduQyxXQUFLLFdBQVcsT0FBQSxJQUFXLE9BQU87QUFBQSxJQUNwQztBQUFBOztBQVZGLGlCQUFBLE1BQUEsbUJBQUEsRUFBQSxPQUFBLFdBQUEsR0FBQSxrQkFBQSxFQUFBLE1BQUEsU0FBQSxNQUFBLFdBQUEsTUFBQSxVQUFBLFVBQUEsR0FBQSxNQUFBLHVCQUFBOzs7UUFDeUIsR0FBQSxTQUF5QixDQUFDLHNCQUFzQixRQUFRLEtBQUssR0FEaEYsa0JBQUEsWUFBQSx1QkFBQSxHQUF3Qjs7OyJ9
@@ -10,7 +10,6 @@ export declare class SbbDialogCloseButtonElement extends SbbSecondaryButtonEleme
10
10
  static styles: CSSResultGroup;
11
11
  private _languageController;
12
12
  constructor();
13
- connectedCallback(): void;
14
13
  protected willUpdate(changedProperties: PropertyValues<this>): void;
15
14
  protected renderTemplate(): TemplateResult;
16
15
  protected renderIconName(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"dialog-close-button.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/dialog/dialog-close-button/dialog-close-button.component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAG1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAM7E;;;;;GAKG;AACH,qBAEM,2BAA4B,SAAQ,yBAAyB;IACjE,OAAuB,MAAM,EAAE,cAAc,CAA6C;IAE1F,OAAO,CAAC,mBAAmB,CAAmC;;IAO9C,iBAAiB,IAAI,IAAI;cAKtB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAKzD,cAAc,IAAI,cAAc;cAIhC,cAAc,IAAI,MAAM;CAG5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,yBAAyB,EAAE,2BAA2B,CAAC;KACxD;CACF"}
1
+ {"version":3,"file":"dialog-close-button.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/dialog/dialog-close-button/dialog-close-button.component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAG1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAM7E;;;;;GAKG;AACH,qBAEM,2BAA4B,SAAQ,yBAAyB;IACjE,OAAuB,MAAM,EAAE,cAAc,CAA6C;IAE1F,OAAO,CAAC,mBAAmB,CAAmC;;cAO3C,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAKzD,cAAc,IAAI,cAAc;cAIhC,cAAc,IAAI,MAAM;CAG5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,yBAAyB,EAAE,2BAA2B,CAAC;KACxD;CACF"}