@sbb-esta/lyne-elements-dev 4.11.0-dev.1776924022 → 4.11.0-dev.1776928413

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 (356) hide show
  1. package/autocomplete/autocomplete-base-element.js +1 -1
  2. package/autocomplete/autocomplete.component.js +1 -1
  3. package/{autocomplete-base-element-BryH362a.js → autocomplete-base-element-DNoAdA1R.js} +1 -1
  4. package/autocomplete.js +1 -1
  5. package/autocomplete.pure.js +1 -1
  6. package/{block-link-common-BwXob5QE.js → block-link-common-1kRa_czx.js} +1 -1
  7. package/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +1 -1
  8. package/breadcrumb/breadcrumb-group.js +1 -1
  9. package/{breadcrumb-group.component-F3-JZkfO.js → breadcrumb-group.component-CKNsaUqs.js} +1 -1
  10. package/breadcrumb.js +1 -1
  11. package/breadcrumb.pure.js +1 -1
  12. package/button/common/button-common.js +1 -1
  13. package/button/common.js +1 -1
  14. package/button-common-BMEhm-dn.js +87 -0
  15. package/button.js +1 -1
  16. package/button.pure.js +1 -1
  17. package/calendar/calendar/calendar.component.js +1 -1
  18. package/calendar/calendar.js +1 -1
  19. package/{calendar.component-Cq0m3E48.js → calendar.component-C1jk_uE0.js} +1 -1
  20. package/calendar.js +1 -1
  21. package/calendar.pure.js +1 -1
  22. package/card/card-badge/card-badge.component.js +1 -1
  23. package/card/card-badge.js +1 -1
  24. package/{card-badge.component-BSOEYrN4.js → card-badge.component-D0r2iixU.js} +1 -1
  25. package/card.js +1 -1
  26. package/card.pure.js +1 -1
  27. package/checkbox/checkbox.component.js +1 -1
  28. package/checkbox/checkbox.js +1 -1
  29. package/checkbox/common/checkbox-common.js +1 -1
  30. package/checkbox/common.js +1 -1
  31. package/{checkbox-common-DdieysTG.js → checkbox-common-BpW4_bbi.js} +1 -1
  32. package/{checkbox.component-ROzxEnPh.js → checkbox.component-DS48CA_v.js} +1 -1
  33. package/checkbox.js +2 -2
  34. package/checkbox.pure.js +2 -2
  35. package/chip/chip-group/chip-group.component.js +1 -1
  36. package/chip/chip-group.js +1 -1
  37. package/{chip-group.component-DJzUToem.js → chip-group.component-BqBYzfXA.js} +1 -1
  38. package/chip.js +1 -1
  39. package/chip.pure.js +1 -1
  40. package/{compact-paginator.component-Cyi-t_YD.js → compact-paginator.component-BIAPutro.js} +1 -1
  41. package/core/styles/core.scss +17 -73
  42. package/core/styles/mixins/typo.scss +2 -2
  43. package/core.css +67 -65
  44. package/development/autocomplete/autocomplete-base-element.js +1 -1
  45. package/development/autocomplete/autocomplete.component.js +1 -1
  46. package/development/autocomplete-base-element-BR5zqYyY.js +692 -0
  47. package/development/autocomplete.js +1 -1
  48. package/development/autocomplete.pure.js +1 -1
  49. package/development/{block-link-common-Dh1NOKxB.js → block-link-common-COY1RI1I.js} +2 -2
  50. package/development/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +1 -1
  51. package/development/breadcrumb/breadcrumb-group.js +1 -1
  52. package/development/breadcrumb-group.component-DZslNBlB.js +195 -0
  53. package/development/breadcrumb.js +1 -1
  54. package/development/breadcrumb.pure.js +1 -1
  55. package/development/button/common/button-common.js +1 -1
  56. package/development/button/common.js +1 -1
  57. package/development/{button-common-CAu09Yim.js → button-common-7dmrUx4A.js} +3 -3
  58. package/development/button.js +1 -1
  59. package/development/button.pure.js +1 -1
  60. package/development/calendar/calendar/calendar.component.js +1 -1
  61. package/development/calendar/calendar.js +1 -1
  62. package/development/calendar.component-Dg3D2A7k.js +1453 -0
  63. package/development/calendar.js +1 -1
  64. package/development/calendar.pure.js +1 -1
  65. package/development/card/card-badge/card-badge.component.js +1 -1
  66. package/development/card/card-badge.js +1 -1
  67. package/development/card-badge.component-CUZIoVbL.js +84 -0
  68. package/development/card.js +1 -1
  69. package/development/card.pure.js +1 -1
  70. package/development/checkbox/checkbox.component.js +1 -1
  71. package/development/checkbox/checkbox.js +1 -1
  72. package/development/checkbox/common/checkbox-common.js +1 -1
  73. package/development/checkbox/common.js +1 -1
  74. package/development/checkbox-common-Dd5uup8K.js +86 -0
  75. package/development/{checkbox.component-D3_FFSys.js → checkbox.component-CFZrwUTA.js} +2 -2
  76. package/development/checkbox.js +2 -2
  77. package/development/checkbox.pure.js +2 -2
  78. package/development/chip/chip-group/chip-group.component.js +1 -1
  79. package/development/chip/chip-group.js +1 -1
  80. package/development/chip-group.component-BVfHWX2-.js +409 -0
  81. package/development/chip.js +1 -1
  82. package/development/chip.pure.js +1 -1
  83. package/development/compact-paginator.component-5_Q2Reul.js +51 -0
  84. package/development/error.component-OBpWoVRL.js +55 -0
  85. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +1 -1
  86. package/development/expansion-panel/expansion-panel-header.js +1 -1
  87. package/development/expansion-panel-header.component-BEAabEE0.js +85 -0
  88. package/development/expansion-panel.js +1 -1
  89. package/development/expansion-panel.pure.js +1 -1
  90. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +1 -1
  91. package/development/file-selector/file-selector-dropzone.js +1 -1
  92. package/development/{file-selector-dropzone.component-B-cBO4bf.js → file-selector-dropzone.component-xfkQt0VX.js} +2 -2
  93. package/development/file-selector.js +1 -1
  94. package/development/file-selector.pure.js +1 -1
  95. package/development/footer/footer.component.js +1 -1
  96. package/development/footer.component-BmDkxYW9.js +172 -0
  97. package/development/footer.js +1 -1
  98. package/development/footer.pure.js +1 -1
  99. package/development/form-field/error/error.component.js +1 -1
  100. package/development/form-field/error.js +1 -1
  101. package/development/form-field/form-field/form-field.component.js +1 -1
  102. package/development/form-field/form-field.js +1 -1
  103. package/development/form-field/hint/hint.component.js +1 -1
  104. package/development/form-field.component-BU3Sv2mD.js +707 -0
  105. package/development/form-field.js +3 -3
  106. package/development/form-field.pure.js +3 -3
  107. package/development/header/header/header.component.js +1 -1
  108. package/development/header/header.js +1 -1
  109. package/development/header.component-CWJ36jF0.js +340 -0
  110. package/development/header.js +1 -1
  111. package/development/header.pure.js +1 -1
  112. package/development/hint.component-DUtL0RS3.js +38 -0
  113. package/development/link/common/block-link-common.js +1 -1
  114. package/development/link/common.js +1 -1
  115. package/development/link.js +1 -1
  116. package/development/link.pure.js +1 -1
  117. package/development/message/message.component.js +1 -1
  118. package/development/message.component-Dlf5V5ba.js +44 -0
  119. package/development/message.js +1 -1
  120. package/development/message.pure.js +1 -1
  121. package/development/navigation/common/navigation-action-common.js +1 -1
  122. package/development/navigation/common.js +1 -1
  123. package/development/navigation/navigation-marker/navigation-marker.component.js +1 -1
  124. package/development/navigation/navigation-marker.js +1 -1
  125. package/development/navigation/navigation-section/navigation-section.component.js +1 -1
  126. package/development/navigation/navigation-section.js +1 -1
  127. package/development/{navigation-action-common-DpBp7-eZ.js → navigation-action-common-Hjr4dI9J.js} +2 -2
  128. package/development/{navigation-marker.component-BpZdT4xz.js → navigation-marker.component-GOv42emC.js} +2 -2
  129. package/development/{navigation-section.component-CtZtuacK.js → navigation-section.component-CnVrRETN.js} +2 -2
  130. package/development/navigation.js +3 -3
  131. package/development/navigation.pure.js +3 -3
  132. package/development/notification/notification.component.js +1 -1
  133. package/development/notification.component-Cvq_uViC.js +274 -0
  134. package/development/notification.js +1 -1
  135. package/development/notification.pure.js +1 -1
  136. package/development/paginator/compact-paginator/compact-paginator.component.js +1 -1
  137. package/development/paginator/compact-paginator.js +1 -1
  138. package/development/paginator/paginator/paginator.component.js +1 -1
  139. package/development/paginator/paginator.js +1 -1
  140. package/development/paginator.component-Bn5tK0FK.js +259 -0
  141. package/development/paginator.js +2 -2
  142. package/development/paginator.pure.js +2 -2
  143. package/development/radio-button/common/radio-button-common.js +1 -1
  144. package/development/radio-button/common.js +1 -1
  145. package/development/radio-button/radio-button.component.js +1 -1
  146. package/development/radio-button/radio-button.js +1 -1
  147. package/development/radio-button-common--d3WX-ZM.js +126 -0
  148. package/development/{radio-button.component-BrQF2FfA.js → radio-button.component-BauLEeCV.js} +2 -2
  149. package/development/radio-button.js +2 -2
  150. package/development/radio-button.pure.js +2 -2
  151. package/development/select/select.component.js +1 -1
  152. package/development/select.component-CkwuT_xi.js +812 -0
  153. package/development/select.js +1 -1
  154. package/development/select.pure.js +1 -1
  155. package/development/status/status.component.js +1 -1
  156. package/development/status.component-CPi1cPN0.js +111 -0
  157. package/development/status.js +1 -1
  158. package/development/status.pure.js +1 -1
  159. package/development/step-label.component-BJ9eainz.js +131 -0
  160. package/development/stepper/step-label/step-label.component.js +1 -1
  161. package/development/stepper/step-label.js +1 -1
  162. package/development/stepper.js +1 -1
  163. package/development/stepper.pure.js +1 -1
  164. package/development/styles-Jlhoev1S.js +14 -0
  165. package/development/{tab-label.component-14j2eh4Z.js → tab-label.component-B9e9kgVf.js} +2 -2
  166. package/development/tabs/common/styles.js +1 -1
  167. package/development/tabs/common.js +1 -1
  168. package/development/tabs/tab-label/tab-label.component.js +1 -1
  169. package/development/tabs/tab-label.js +1 -1
  170. package/development/tabs.js +2 -2
  171. package/development/tabs.pure.js +2 -2
  172. package/development/tag/tag/tag.component.js +1 -1
  173. package/development/tag/tag.js +1 -1
  174. package/development/tag.component-Bl1nlIXQ.js +245 -0
  175. package/development/tag.js +1 -1
  176. package/development/tag.pure.js +1 -1
  177. package/development/timetable-occupancy/timetable-occupancy.component.js +1 -1
  178. package/development/{timetable-occupancy.component-dhpPJEaI.js → timetable-occupancy.component-BBcznUh0.js} +2 -2
  179. package/development/timetable-occupancy.js +1 -1
  180. package/development/timetable-occupancy.pure.js +1 -1
  181. package/development/title/title-base.js +1 -1
  182. package/development/title/title.component.js +1 -1
  183. package/development/{title-base-CBE_2Hkb.js → title-base-BdYKwj3-.js} +2 -2
  184. package/development/{title.component-Dk23JVct.js → title.component-DSXVkddh.js} +2 -2
  185. package/development/title.js +2 -2
  186. package/development/title.pure.js +2 -2
  187. package/development/toast/toast.component.js +1 -1
  188. package/development/{toast.component-Cuvs3VnH.js → toast.component-Cgr5ZGOr.js} +2 -2
  189. package/development/toast.js +1 -1
  190. package/development/toast.pure.js +1 -1
  191. package/development/toggle/toggle/toggle.component.js +1 -1
  192. package/development/toggle/toggle.js +1 -1
  193. package/development/toggle.component-BJpD1b9H.js +249 -0
  194. package/development/toggle.js +1 -1
  195. package/development/toggle.pure.js +1 -1
  196. package/development/tooltip/tooltip.component.js +1 -1
  197. package/development/tooltip.component-YaUQA-Id.js +378 -0
  198. package/development/tooltip.js +1 -1
  199. package/development/tooltip.pure.js +1 -1
  200. package/development/train/train-wagon/train-wagon.component.js +1 -1
  201. package/development/train/train-wagon.js +1 -1
  202. package/development/{train-wagon.component-BzA8-S_6.js → train-wagon.component-CNxkffOO.js} +2 -2
  203. package/development/train.js +1 -1
  204. package/development/train.pure.js +1 -1
  205. package/{error.component-B_D8WUP5.js → error.component-DH9Obd7a.js} +1 -1
  206. package/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +1 -1
  207. package/expansion-panel/expansion-panel-header.js +1 -1
  208. package/{expansion-panel-header.component-B_dQ3ZWT.js → expansion-panel-header.component-FPoEEoZR.js} +1 -1
  209. package/expansion-panel.js +1 -1
  210. package/expansion-panel.pure.js +1 -1
  211. package/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +1 -1
  212. package/file-selector/file-selector-dropzone.js +1 -1
  213. package/{file-selector-dropzone.component-CBKsZsC2.js → file-selector-dropzone.component-DSmBp7xN.js} +1 -1
  214. package/file-selector.js +1 -1
  215. package/file-selector.pure.js +1 -1
  216. package/footer/footer.component.js +1 -1
  217. package/{footer.component-BM91Utiz.js → footer.component-b2docCY_.js} +1 -1
  218. package/footer.js +1 -1
  219. package/footer.pure.js +1 -1
  220. package/form-field/error/error.component.js +1 -1
  221. package/form-field/error.js +1 -1
  222. package/form-field/form-field/form-field.component.js +1 -1
  223. package/form-field/form-field.js +1 -1
  224. package/form-field/hint/hint.component.js +1 -1
  225. package/{form-field.component-Cc_siKrq.js → form-field.component-BwZDRKbQ.js} +1 -1
  226. package/form-field.js +3 -3
  227. package/form-field.pure.js +3 -3
  228. package/header/header/header.component.js +1 -1
  229. package/header/header.js +1 -1
  230. package/{header.component-hZqs06Yh.js → header.component-UQUFcMOD.js} +1 -1
  231. package/header.js +1 -1
  232. package/header.pure.js +1 -1
  233. package/{hint.component-BVUUrSSu.js → hint.component-CE2D2TLU.js} +1 -1
  234. package/link/common/block-link-common.js +1 -1
  235. package/link/common.js +1 -1
  236. package/link.js +1 -1
  237. package/link.pure.js +1 -1
  238. package/message/message.component.js +1 -1
  239. package/message.component-DhN-aFms.js +27 -0
  240. package/message.js +1 -1
  241. package/message.pure.js +1 -1
  242. package/navigation/common/navigation-action-common.js +1 -1
  243. package/navigation/common.js +1 -1
  244. package/navigation/navigation-marker/navigation-marker.component.js +1 -1
  245. package/navigation/navigation-marker.js +1 -1
  246. package/navigation/navigation-section/navigation-section.component.js +1 -1
  247. package/navigation/navigation-section.js +1 -1
  248. package/{navigation-action-common-2ix0xrBs.js → navigation-action-common-AzRltwrb.js} +1 -1
  249. package/{navigation-marker.component-DKxK16IU.js → navigation-marker.component-BzbbKlfT.js} +1 -1
  250. package/{navigation-section.component-CvjXVn5r.js → navigation-section.component-DQxCi3O_.js} +1 -1
  251. package/navigation.js +3 -3
  252. package/navigation.pure.js +3 -3
  253. package/notification/notification.component.js +1 -1
  254. package/{notification.component-DjXJFh1G.js → notification.component-D80Wl5xM.js} +1 -1
  255. package/notification.js +1 -1
  256. package/notification.pure.js +1 -1
  257. package/off-brand-theme.css +67 -65
  258. package/package.json +2 -2
  259. package/paginator/compact-paginator/compact-paginator.component.js +1 -1
  260. package/paginator/compact-paginator.js +1 -1
  261. package/paginator/paginator/paginator.component.js +1 -1
  262. package/paginator/paginator.js +1 -1
  263. package/{paginator.component-CZt7Epaf.js → paginator.component-BEr0qU0m.js} +1 -1
  264. package/paginator.js +2 -2
  265. package/paginator.pure.js +2 -2
  266. package/radio-button/common/radio-button-common.js +1 -1
  267. package/radio-button/common.js +1 -1
  268. package/radio-button/radio-button.component.js +1 -1
  269. package/radio-button/radio-button.js +1 -1
  270. package/{radio-button-common-DP4Izwwf.js → radio-button-common-C1mIf9KY.js} +1 -1
  271. package/{radio-button.component-BiGeOI5L.js → radio-button.component-Bae-yK_U.js} +1 -1
  272. package/radio-button.js +2 -2
  273. package/radio-button.pure.js +2 -2
  274. package/safety-theme.css +67 -65
  275. package/select/select.component.js +1 -1
  276. package/{select.component-DWLdApt_.js → select.component-ByO4itj5.js} +1 -1
  277. package/select.js +1 -1
  278. package/select.pure.js +1 -1
  279. package/standard-theme.css +67 -65
  280. package/status/status.component.js +1 -1
  281. package/{status.component-BFyXTFXH.js → status.component-lw_WDs7W.js} +1 -1
  282. package/status.js +1 -1
  283. package/status.pure.js +1 -1
  284. package/{step-label.component-dzcNc12A.js → step-label.component-Dqis4FAN.js} +1 -1
  285. package/stepper/step-label/step-label.component.js +1 -1
  286. package/stepper/step-label.js +1 -1
  287. package/stepper.js +1 -1
  288. package/stepper.pure.js +1 -1
  289. package/styles-BNu0Fjw5.js +5 -0
  290. package/{tab-label.component-CD56RH1Z.js → tab-label.component-CpdUyfiq.js} +1 -1
  291. package/tabs/common/styles.js +1 -1
  292. package/tabs/common.js +1 -1
  293. package/tabs/tab-label/tab-label.component.js +1 -1
  294. package/tabs/tab-label.js +1 -1
  295. package/tabs.js +2 -2
  296. package/tabs.pure.js +2 -2
  297. package/tag/tag/tag.component.js +1 -1
  298. package/tag/tag.js +1 -1
  299. package/{tag.component-CzYJZuFT.js → tag.component-CsNszQvB.js} +1 -1
  300. package/tag.js +1 -1
  301. package/tag.pure.js +1 -1
  302. package/timetable-occupancy/timetable-occupancy.component.js +1 -1
  303. package/{timetable-occupancy.component-BDmxFVKK.js → timetable-occupancy.component-BCXPxz68.js} +1 -1
  304. package/timetable-occupancy.js +1 -1
  305. package/timetable-occupancy.pure.js +1 -1
  306. package/title/title-base.js +1 -1
  307. package/title/title.component.js +1 -1
  308. package/{title-base-D72Xo2SW.js → title-base-DV0qhfG9.js} +1 -1
  309. package/{title.component-CoMa84Sz.js → title.component-DAGyXwDm.js} +1 -1
  310. package/title.js +2 -2
  311. package/title.pure.js +2 -2
  312. package/toast/toast.component.js +1 -1
  313. package/{toast.component-CkNywQOZ.js → toast.component-CGVqkd0_.js} +1 -1
  314. package/toast.js +1 -1
  315. package/toast.pure.js +1 -1
  316. package/toggle/toggle/toggle.component.js +1 -1
  317. package/toggle/toggle.js +1 -1
  318. package/{toggle.component-Cwc-TJ-a.js → toggle.component-B20xAw1V.js} +1 -1
  319. package/toggle.js +1 -1
  320. package/toggle.pure.js +1 -1
  321. package/tooltip/tooltip.component.js +1 -1
  322. package/{tooltip.component-B3XLLpLg.js → tooltip.component-ocVpJogs.js} +1 -1
  323. package/tooltip.js +1 -1
  324. package/tooltip.pure.js +1 -1
  325. package/train/train-wagon/train-wagon.component.js +1 -1
  326. package/train/train-wagon.js +1 -1
  327. package/{train-wagon.component-BwCcF4GD.js → train-wagon.component-BT4Xnzxr.js} +1 -1
  328. package/train.js +1 -1
  329. package/train.pure.js +1 -1
  330. package/button-common-yFVzAoGy.js +0 -87
  331. package/development/autocomplete-base-element-BNfirRyP.js +0 -692
  332. package/development/breadcrumb-group.component-HBWRdDpS.js +0 -195
  333. package/development/calendar.component-Dto81mQ8.js +0 -1453
  334. package/development/card-badge.component-D4Mes-Gw.js +0 -84
  335. package/development/checkbox-common-DiTlHvFJ.js +0 -86
  336. package/development/chip-group.component-CvpUdzu1.js +0 -409
  337. package/development/compact-paginator.component-TfDVt_ST.js +0 -51
  338. package/development/error.component-xD_c9IBA.js +0 -55
  339. package/development/expansion-panel-header.component-Bw4uROTe.js +0 -85
  340. package/development/footer.component-BblB5218.js +0 -172
  341. package/development/form-field.component-CWVzymTX.js +0 -707
  342. package/development/header.component-Cg0ZcA1s.js +0 -340
  343. package/development/hint.component-BsIzdUOV.js +0 -38
  344. package/development/message.component-CeJhYXSC.js +0 -44
  345. package/development/notification.component-Co9QChXc.js +0 -274
  346. package/development/paginator.component-DAdS2mMm.js +0 -259
  347. package/development/radio-button-common-C3-xuY78.js +0 -126
  348. package/development/select.component-CGNEhqzl.js +0 -812
  349. package/development/status.component-CHC2pBa-.js +0 -111
  350. package/development/step-label.component-DjA-3IGs.js +0 -131
  351. package/development/styles-DCQBzC2C.js +0 -14
  352. package/development/tag.component-CnNPL6aI.js +0 -245
  353. package/development/toggle.component-CKug5pF7.js +0 -249
  354. package/development/tooltip.component-epXOY5vO.js +0 -378
  355. package/message.component-BQjnZ5Z3.js +0 -27
  356. package/styles-BUpK1iP2.js +0 -5
@@ -1,249 +0,0 @@
1
- import { __esDecorate, __runInitializers } from "tslib";
2
- import { html, isServer, unsafeCSS } from "lit";
3
- import { property } from "lit/decorators.js";
4
- import { SbbElement } from "./core/base-elements.js";
5
- import { forceType } from "./core/decorators.js";
6
- import { isLean } from "./core/dom.js";
7
- import { SbbDisabledMixin, SbbFormAssociatedMixin } from "./core/mixins.js";
8
- import { boxSizingStyles } from "./core/styles.js";
9
- import { interactivityChecker } from "./core/a11y.js";
10
- //#region src/elements/toggle/toggle/toggle.scss?inline
11
- var toggle_default = ":host {\n --_sbb-toggle-min-width: calc(\n var(--sbb-toggle-padding-inline) * 4 + var(--sbb-size-icon-ui-small)\n );\n --sbb-toggle-animation-duration: var(\n --sbb-disable-animation-duration,\n var(--sbb-animation-duration-6x)\n );\n display: grid;\n grid-template-columns: var(--sbb-toggle-grid-template-columns);\n grid-template-areas: \"start end\";\n align-items: center;\n height: var(--sbb-toggle-height);\n width: var(--sbb-toggle-width, fit-content);\n min-width: var(--_sbb-toggle-min-width);\n max-width: 100%;\n border-radius: var(--sbb-toggle-border-radius);\n font-size: var(--sbb-toggle-font-size);\n letter-spacing: var(--sbb-typo-letter-spacing-text);\n user-select: none;\n -webkit-tap-highlight-color: transparent;\n}\n:host::before {\n content: \"\";\n display: block;\n grid-area: start/start/end/end;\n margin-inline: var(--sbb-toggle-option-left, 0) var(--sbb-toggle-option-right, 0);\n background-color: var(--sbb-toggle-selected-option-background-color);\n border-radius: var(--sbb-toggle-border-radius);\n max-width: 100%;\n height: 100%;\n border: var(--sbb-toggle-selected-option-border-width) var(--sbb-toggle-selected-option-border-style) var(--sbb-toggle-selected-option-border-color);\n transition-duration: var(--sbb-toggle-animation-duration);\n transition-timing-function: ease;\n transition-property: margin-inline-start, margin-inline-end;\n}\n:host::after {\n content: \"\";\n grid-area: start/start/end/end;\n order: -1;\n background: var(--sbb-toggle-background-color);\n margin-inline: var(--sbb-toggle-background-inset);\n height: calc(100% - 2 * var(--sbb-toggle-background-inset));\n border-radius: var(--sbb-toggle-border-radius);\n}\n@media (forced-colors: active) {\n :host::after {\n border: var(--sbb-border-width-1x) solid CanvasText;\n }\n}\n\n:host([even]) {\n --sbb-toggle-width: 100%;\n --sbb-toggle-grid-template-columns: 50% 50%;\n}\n\n:host(:disabled) {\n --sbb-toggle-selected-option-border-color: var(--sbb-color-graphite);\n --sbb-toggle-selected-option-border-color: light-dark(\n var(--sbb-color-graphite),\n var(--sbb-color-smoke)\n );\n --sbb-toggle-selected-option-border-style: dashed;\n}\n@media (forced-colors: active) {\n :host(:disabled) {\n --sbb-toggle-selected-option-border-style: solid;\n --sbb-toggle-selected-option-border-color: GrayText;\n }\n}\n\n:host([size=m]) {\n --sbb-toggle-padding-inline: var(--sbb-spacing-responsive-xs);\n --sbb-toggle-height: var(--sbb-size-element-m);\n}\n\n:host([size=s]) {\n --sbb-toggle-padding-inline: var(--sbb-spacing-responsive-xxxs);\n --sbb-toggle-height: var(--sbb-size-element-xxs);\n}\n\n:host(:is(:not(:is(:state(initialized),[state--initialized])), :is(:state(disable-animation-on-resizing),[state--disable-animation-on-resizing]))) {\n --sbb-disable-animation-duration: 0s;\n}\n\n::slotted(sbb-toggle-option:first-of-type) {\n grid-area: start;\n}\n\n::slotted(sbb-toggle-option:last-of-type) {\n grid-area: end;\n}";
12
- //#endregion
13
- //#region src/elements/toggle/toggle/toggle.component.ts
14
- /**
15
- * It can be used as a container for two `sbb-toggle-option`, acting as a toggle button.
16
- *
17
- * @slot - Use the unnamed slot to add `<sbb-toggle-option>` elements to the toggle.
18
- * @overrideType value - (T = string) | null
19
- */
20
- var SbbToggleElement = (() => {
21
- let _classSuper = SbbDisabledMixin(SbbFormAssociatedMixin(SbbElement));
22
- let _instanceExtraInitializers = [];
23
- let _even_decorators;
24
- let _even_initializers = [];
25
- let _even_extraInitializers = [];
26
- let _size_decorators;
27
- let _size_initializers = [];
28
- let _size_extraInitializers = [];
29
- let _set_value_decorators;
30
- return class SbbToggleElement extends _classSuper {
31
- static {
32
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
33
- _even_decorators = [forceType(), property({
34
- reflect: true,
35
- type: Boolean
36
- })];
37
- _size_decorators = [property({ reflect: true })];
38
- _set_value_decorators = [property()];
39
- __esDecorate(this, null, _even_decorators, {
40
- kind: "accessor",
41
- name: "even",
42
- static: false,
43
- private: false,
44
- access: {
45
- has: (obj) => "even" in obj,
46
- get: (obj) => obj.even,
47
- set: (obj, value) => {
48
- obj.even = value;
49
- }
50
- },
51
- metadata: _metadata
52
- }, _even_initializers, _even_extraInitializers);
53
- __esDecorate(this, null, _size_decorators, {
54
- kind: "accessor",
55
- name: "size",
56
- static: false,
57
- private: false,
58
- access: {
59
- has: (obj) => "size" in obj,
60
- get: (obj) => obj.size,
61
- set: (obj, value) => {
62
- obj.size = value;
63
- }
64
- },
65
- metadata: _metadata
66
- }, _size_initializers, _size_extraInitializers);
67
- __esDecorate(this, null, _set_value_decorators, {
68
- kind: "setter",
69
- name: "value",
70
- static: false,
71
- private: false,
72
- access: {
73
- has: (obj) => "value" in obj,
74
- set: (obj, value) => {
75
- obj.value = value;
76
- }
77
- },
78
- metadata: _metadata
79
- }, null, _instanceExtraInitializers);
80
- if (_metadata) Object.defineProperty(this, Symbol.metadata, {
81
- enumerable: true,
82
- configurable: true,
83
- writable: true,
84
- value: _metadata
85
- });
86
- }
87
- static {
88
- this.elementName = "sbb-toggle";
89
- }
90
- static {
91
- this.role = "radiogroup";
92
- }
93
- static {
94
- this.styles = [boxSizingStyles, unsafeCSS(toggle_default)];
95
- }
96
- static {
97
- this.events = { change: "change" };
98
- }
99
- #even_accessor_storage;
100
- /**
101
- * If true, set the width of the component fixed; if false,
102
- * the width is dynamic based on the label of the sbb-toggle-option.
103
- */
104
- get even() {
105
- return this.#even_accessor_storage;
106
- }
107
- set even(value) {
108
- this.#even_accessor_storage = value;
109
- }
110
- #size_accessor_storage;
111
- /**
112
- * Size variant, either m or s.
113
- * @default 'm' / 's' (lean)
114
- */
115
- get size() {
116
- return this.#size_accessor_storage;
117
- }
118
- set size(value) {
119
- this.#size_accessor_storage = value;
120
- }
121
- /**
122
- * The value of the toggle. It needs to be mutable since it is updated whenever
123
- * a new option is selected (see the `onToggleOptionSelect()` method).
124
- */
125
- set value(value) {
126
- if (isServer || !this.hasUpdated) this._fallbackValue = value;
127
- else this._valueChanged(value);
128
- }
129
- get value() {
130
- return isServer ? this._fallbackValue ?? null : this.options.find((o) => o.checked)?.value ?? this.options[0]?.value ?? null;
131
- }
132
- /** The child instances of sbb-toggle-option as an array. */
133
- get options() {
134
- return Array.from(this.querySelectorAll?.("sbb-toggle-option") ?? []);
135
- }
136
- constructor() {
137
- super();
138
- this.#even_accessor_storage = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _even_initializers, false));
139
- this.#size_accessor_storage = (__runInitializers(this, _even_extraInitializers), __runInitializers(this, _size_initializers, isLean() ? "s" : "m"));
140
- this._fallbackValue = (__runInitializers(this, _size_extraInitializers), null);
141
- this.addEventListener?.("input", () => this._handleInput(), { passive: true });
142
- this.addEventListener?.("keydown", (e) => this._handleKeyDown(e));
143
- }
144
- willUpdate(changedProperties) {
145
- super.willUpdate(changedProperties);
146
- if (changedProperties.has("disabled") || changedProperties.has("formDisabled")) this._updateDisabled();
147
- if (!this.hasUpdated) this._valueChanged(this._fallbackValue);
148
- }
149
- /**
150
- * Called whenever the value changes, both programmatically or by user interaction.
151
- * @internal
152
- */
153
- statusChanged() {
154
- this.updateFormValue();
155
- this.updatePillPosition();
156
- }
157
- /**
158
- * Reset to the init value if present. Select the first option, otherwise.
159
- * @internal
160
- */
161
- formResetCallback() {
162
- this.value = this.hasAttribute("value") ? this.getAttribute("value") : null;
163
- }
164
- /**
165
- * @internal
166
- */
167
- formStateRestoreCallback(state, _reason) {
168
- if (typeof state === "string" || state == null) this.value = state ?? null;
169
- else if (state instanceof FormData) this._readFormData(state).then((data) => {
170
- this.value = data;
171
- });
172
- }
173
- async _readFormData(formData) {
174
- const data = formData.get(this.name);
175
- return data instanceof Blob ? JSON.parse(await data.text()) : data;
176
- }
177
- /** @internal */
178
- updatePillPosition(resizing = false) {
179
- const options = this.options;
180
- if (options.length < 2 || options.every((o) => !o.checked) || options.every((o) => !o.clientWidth)) return;
181
- this.toggleState("disable-animation-on-resizing", resizing);
182
- const firstOption = options[0];
183
- const isFirstChecked = firstOption.checked;
184
- const pillLeft = isFirstChecked ? "0px" : `${firstOption.clientWidth}px`;
185
- const pillRight = isFirstChecked ? `${this.clientWidth - firstOption.clientWidth}px` : "0px";
186
- if (pillRight === "0px" && pillLeft === "0px") return;
187
- this.style?.setProperty("--sbb-toggle-option-left", pillLeft);
188
- this.style?.setProperty("--sbb-toggle-option-right", pillRight);
189
- this.offsetWidth;
190
- this.internals.states.add("initialized");
191
- }
192
- _updateToggle() {
193
- this._valueChanged(this.value);
194
- this._updateDisabled();
195
- }
196
- _valueChanged(value) {
197
- const options = this.options;
198
- const selectedOption = options.find((o) => value === o.value) ?? options.find((o) => o.checked) ?? options[0];
199
- if (!selectedOption) return;
200
- selectedOption.checked = true;
201
- this.statusChanged();
202
- }
203
- _updateDisabled() {
204
- for (const toggleOption of this.options) toggleOption.disabled = this.disabled || this.formDisabled;
205
- }
206
- /**
207
- * Called on user interaction (click or keyboard)
208
- */
209
- _handleInput() {
210
- this.statusChanged();
211
- /**
212
- * The change event is fired when the user modifies the element's value.
213
- * Unlike the input event, the change event is not necessarily fired
214
- * for each alteration to an element's value.
215
- */
216
- this.dispatchEvent(new Event("change", { bubbles: true }));
217
- }
218
- _handleKeyDown(evt) {
219
- if (!this.options.filter((t) => !t.disabled && interactivityChecker.isVisible(t)) || evt.target !== this && evt.target.parentElement !== this) return;
220
- const options = this.options;
221
- const isRtl = this.matches(":dir(rtl)");
222
- const currentIndex = options.findIndex((option) => option.checked) ?? options[0];
223
- const availableOptions = options.slice(currentIndex + 1).concat(options.slice(0, currentIndex)).filter((o) => !o.disabled && interactivityChecker.isVisible(o));
224
- if (!isRtl ? evt.key === " " || evt.key === "ArrowRight" : evt.key === "ArrowLeft") {
225
- this._selectAndFocusOption(availableOptions[0]);
226
- evt.preventDefault();
227
- } else if (isRtl ? evt.key === " " || evt.key === "ArrowRight" : evt.key === "ArrowLeft") {
228
- this._selectAndFocusOption(availableOptions.at(-1));
229
- evt.preventDefault();
230
- }
231
- }
232
- _selectAndFocusOption(option) {
233
- if (!option || option.disabled || option.checked) return;
234
- option.checked = true;
235
- option.focus();
236
- option.dispatchEvent(new InputEvent("input", {
237
- bubbles: true,
238
- composed: true
239
- }));
240
- }
241
- render() {
242
- return html` <slot @slotchange=${this._updateToggle}></slot> `;
243
- }
244
- };
245
- })();
246
- //#endregion
247
- export { SbbToggleElement as t };
248
-
249
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLmNvbXBvbmVudC1DS3VnNXBGNy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvdG9nZ2xlL3RvZ2dsZS90b2dnbGUuc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvdG9nZ2xlL3RvZ2dsZS90b2dnbGUuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uLy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgLS1fc2JiLXRvZ2dsZS1taW4td2lkdGg6IGNhbGMoXG4gICAgdmFyKC0tc2JiLXRvZ2dsZS1wYWRkaW5nLWlubGluZSkgKiA0ICsgdmFyKC0tc2JiLXNpemUtaWNvbi11aS1zbWFsbClcbiAgKTtcbiAgLS1zYmItdG9nZ2xlLWFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKFxuICAgIC0tc2JiLWRpc2FibGUtYW5pbWF0aW9uLWR1cmF0aW9uLFxuICAgIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tNngpXG4gICk7XG5cbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiB2YXIoLS1zYmItdG9nZ2xlLWdyaWQtdGVtcGxhdGUtY29sdW1ucyk7XG4gIGdyaWQtdGVtcGxhdGUtYXJlYXM6ICdzdGFydCBlbmQnO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBoZWlnaHQ6IHZhcigtLXNiYi10b2dnbGUtaGVpZ2h0KTtcbiAgd2lkdGg6IHZhcigtLXNiYi10b2dnbGUtd2lkdGgsIGZpdC1jb250ZW50KTtcbiAgbWluLXdpZHRoOiB2YXIoLS1fc2JiLXRvZ2dsZS1taW4td2lkdGgpO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi10b2dnbGUtYm9yZGVyLXJhZGl1cyk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2JiLXRvZ2dsZS1mb250LXNpemUpO1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tc2JiLXR5cG8tbGV0dGVyLXNwYWNpbmctdGV4dCk7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gIC8vIFdoaXRlIHBpbGwgb2Ygc2VsZWN0ZWQgdG9nZ2xlIG9wdGlvblxuICAmOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGdyaWQtYXJlYTogc3RhcnQgLyBzdGFydCAvIGVuZCAvIGVuZDtcbiAgICBtYXJnaW4taW5saW5lOiB2YXIoLS1zYmItdG9nZ2xlLW9wdGlvbi1sZWZ0LCAwKSB2YXIoLS1zYmItdG9nZ2xlLW9wdGlvbi1yaWdodCwgMCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLXRvZ2dsZS1zZWxlY3RlZC1vcHRpb24tYmFja2dyb3VuZC1jb2xvcik7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2JiLXRvZ2dsZS1ib3JkZXItcmFkaXVzKTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJvcmRlcjogdmFyKC0tc2JiLXRvZ2dsZS1zZWxlY3RlZC1vcHRpb24tYm9yZGVyLXdpZHRoKVxuICAgICAgdmFyKC0tc2JiLXRvZ2dsZS1zZWxlY3RlZC1vcHRpb24tYm9yZGVyLXN0eWxlKSB2YXIoLS1zYmItdG9nZ2xlLXNlbGVjdGVkLW9wdGlvbi1ib3JkZXItY29sb3IpO1xuXG4gICAgdHJhbnNpdGlvbjoge1xuICAgICAgZHVyYXRpb246IHZhcigtLXNiYi10b2dnbGUtYW5pbWF0aW9uLWR1cmF0aW9uKTtcbiAgICAgIHRpbWluZy1mdW5jdGlvbjogZWFzZTtcbiAgICAgIHByb3BlcnR5OiBtYXJnaW4taW5saW5lLXN0YXJ0LCBtYXJnaW4taW5saW5lLWVuZDtcbiAgICB9XG4gIH1cblxuICAvLyBCYWNrZ3JvdW5kXG4gICY6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBncmlkLWFyZWE6IHN0YXJ0IC8gc3RhcnQgLyBlbmQgLyBlbmQ7XG4gICAgb3JkZXI6IC0xO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXNiYi10b2dnbGUtYmFja2dyb3VuZC1jb2xvcik7XG4gICAgbWFyZ2luLWlubGluZTogdmFyKC0tc2JiLXRvZ2dsZS1iYWNrZ3JvdW5kLWluc2V0KTtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDIgKiB2YXIoLS1zYmItdG9nZ2xlLWJhY2tncm91bmQtaW5zZXQpKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItdG9nZ2xlLWJvcmRlci1yYWRpdXMpO1xuXG4gICAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgICAgYm9yZGVyOiB2YXIoLS1zYmItYm9yZGVyLXdpZHRoLTF4KSBzb2xpZCBDYW52YXNUZXh0O1xuICAgIH1cbiAgfVxufVxuXG46aG9zdChbZXZlbl0pIHtcbiAgLS1zYmItdG9nZ2xlLXdpZHRoOiAxMDAlO1xuICAtLXNiYi10b2dnbGUtZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA1MCUgNTAlO1xufVxuXG46aG9zdCg6ZGlzYWJsZWQpIHtcbiAgLS1zYmItdG9nZ2xlLXNlbGVjdGVkLW9wdGlvbi1ib3JkZXItY29sb3I6IGxpZ2h0LWRhcmsoXG4gICAgdmFyKC0tc2JiLWNvbG9yLWdyYXBoaXRlKSxcbiAgICB2YXIoLS1zYmItY29sb3Itc21va2UpXG4gICk7XG4gIC0tc2JiLXRvZ2dsZS1zZWxlY3RlZC1vcHRpb24tYm9yZGVyLXN0eWxlOiBkYXNoZWQ7XG5cbiAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgIC0tc2JiLXRvZ2dsZS1zZWxlY3RlZC1vcHRpb24tYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAtLXNiYi10b2dnbGUtc2VsZWN0ZWQtb3B0aW9uLWJvcmRlci1jb2xvcjogR3JheVRleHQ7XG4gIH1cbn1cblxuOmhvc3QoW3NpemU9J20nXSkge1xuICAtLXNiYi10b2dnbGUtcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi1zcGFjaW5nLXJlc3BvbnNpdmUteHMpO1xuICAtLXNiYi10b2dnbGUtaGVpZ2h0OiB2YXIoLS1zYmItc2l6ZS1lbGVtZW50LW0pO1xufVxuXG46aG9zdChbc2l6ZT0ncyddKSB7XG4gIC0tc2JiLXRvZ2dsZS1wYWRkaW5nLWlubGluZTogdmFyKC0tc2JiLXNwYWNpbmctcmVzcG9uc2l2ZS14eHhzKTtcbiAgLS1zYmItdG9nZ2xlLWhlaWdodDogdmFyKC0tc2JiLXNpemUtZWxlbWVudC14eHMpO1xufVxuXG46aG9zdCg6aXMoOm5vdCg6c3RhdGUoaW5pdGlhbGl6ZWQpKSwgOnN0YXRlKGRpc2FibGUtYW5pbWF0aW9uLW9uLXJlc2l6aW5nKSkpIHtcbiAgQGluY2x1ZGUgc2JiLmRpc2FibGUtYW5pbWF0aW9uO1xufVxuXG46OnNsb3R0ZWQoc2JiLXRvZ2dsZS1vcHRpb246Zmlyc3Qtb2YtdHlwZSkge1xuICBncmlkLWFyZWE6IHN0YXJ0O1xufVxuXG46OnNsb3R0ZWQoc2JiLXRvZ2dsZS1vcHRpb246bGFzdC1vZi10eXBlKSB7XG4gIGdyaWQtYXJlYTogZW5kO1xufVxuIiwiaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgaXNTZXJ2ZXIsXG4gIHR5cGUgUHJvcGVydHlWYWx1ZXMsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG4gIHVuc2FmZUNTUyxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBpbnRlcmFjdGl2aXR5Q2hlY2tlciB9IGZyb20gJy4uLy4uL2NvcmUvYTExeS50cyc7XG5pbXBvcnQgeyBTYmJFbGVtZW50IH0gZnJvbSAnLi4vLi4vY29yZS9iYXNlLWVsZW1lbnRzLnRzJztcbmltcG9ydCB7IGZvcmNlVHlwZSB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy50cyc7XG5pbXBvcnQgeyBpc0xlYW4gfSBmcm9tICcuLi8uLi9jb3JlL2RvbS50cyc7XG5pbXBvcnQge1xuICB0eXBlIEZvcm1SZXN0b3JlUmVhc29uLFxuICB0eXBlIEZvcm1SZXN0b3JlU3RhdGUsXG4gIFNiYkRpc2FibGVkTWl4aW4sXG4gIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4sXG59IGZyb20gJy4uLy4uL2NvcmUvbWl4aW5zLnRzJztcbmltcG9ydCB7IGJveFNpemluZ1N0eWxlcyB9IGZyb20gJy4uLy4uL2NvcmUvc3R5bGVzLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiVG9nZ2xlT3B0aW9uRWxlbWVudCB9IGZyb20gJy4uL3RvZ2dsZS1vcHRpb24vdG9nZ2xlLW9wdGlvbi5jb21wb25lbnQudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi90b2dnbGUuc2Nzcz9pbmxpbmUnO1xuXG4vKipcbiAqIEl0IGNhbiBiZSB1c2VkIGFzIGEgY29udGFpbmVyIGZvciB0d28gYHNiYi10b2dnbGUtb3B0aW9uYCwgYWN0aW5nIGFzIGEgdG9nZ2xlIGJ1dHRvbi5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBgPHNiYi10b2dnbGUtb3B0aW9uPmAgZWxlbWVudHMgdG8gdGhlIHRvZ2dsZS5cbiAqIEBvdmVycmlkZVR5cGUgdmFsdWUgLSAoVCA9IHN0cmluZykgfCBudWxsXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJUb2dnbGVFbGVtZW50PFQgPSBzdHJpbmc+IGV4dGVuZHMgU2JiRGlzYWJsZWRNaXhpbihcbiAgU2JiRm9ybUFzc29jaWF0ZWRNaXhpbihTYmJFbGVtZW50KSxcbikge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLXRvZ2dsZSc7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgcm9sZSA9ICdyYWRpb2dyb3VwJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW2JveFNpemluZ1N0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIGNoYW5nZTogJ2NoYW5nZScsXG4gIH0gYXMgY29uc3Q7XG5cbiAgLyoqXG4gICAqIElmIHRydWUsIHNldCB0aGUgd2lkdGggb2YgdGhlIGNvbXBvbmVudCBmaXhlZDsgaWYgZmFsc2UsXG4gICAqIHRoZSB3aWR0aCBpcyBkeW5hbWljIGJhc2VkIG9uIHRoZSBsYWJlbCBvZiB0aGUgc2JiLXRvZ2dsZS1vcHRpb24uXG4gICAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSwgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZXZlbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBTaXplIHZhcmlhbnQsIGVpdGhlciBtIG9yIHMuXG4gICAqIEBkZWZhdWx0ICdtJyAvICdzJyAobGVhbilcbiAgICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIHNpemU6ICdzJyB8ICdtJyA9IGlzTGVhbigpID8gJ3MnIDogJ20nO1xuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgb2YgdGhlIHRvZ2dsZS4gSXQgbmVlZHMgdG8gYmUgbXV0YWJsZSBzaW5jZSBpdCBpcyB1cGRhdGVkIHdoZW5ldmVyXG4gICAqIGEgbmV3IG9wdGlvbiBpcyBzZWxlY3RlZCAoc2VlIHRoZSBgb25Ub2dnbGVPcHRpb25TZWxlY3QoKWAgbWV0aG9kKS5cbiAgICovXG4gIEBwcm9wZXJ0eSgpXG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IFQgfCBudWxsKSB7XG4gICAgaWYgKGlzU2VydmVyIHx8ICF0aGlzLmhhc1VwZGF0ZWQpIHtcbiAgICAgIHRoaXMuX2ZhbGxiYWNrVmFsdWUgPSB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fdmFsdWVDaGFuZ2VkKHZhbHVlKTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGdldCB2YWx1ZSgpOiBUIHwgbnVsbCB7XG4gICAgcmV0dXJuIGlzU2VydmVyXG4gICAgICA/ICh0aGlzLl9mYWxsYmFja1ZhbHVlID8/IG51bGwpXG4gICAgICA6ICh0aGlzLm9wdGlvbnMuZmluZCgobykgPT4gby5jaGVja2VkKT8udmFsdWUgPz8gdGhpcy5vcHRpb25zWzBdPy52YWx1ZSA/PyBudWxsKTtcbiAgfVxuICBwcml2YXRlIF9mYWxsYmFja1ZhbHVlOiBUIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIFRoZSBjaGlsZCBpbnN0YW5jZXMgb2Ygc2JiLXRvZ2dsZS1vcHRpb24gYXMgYW4gYXJyYXkuICovXG4gIHB1YmxpYyBnZXQgb3B0aW9ucygpOiBTYmJUb2dnbGVPcHRpb25FbGVtZW50PFQ+W10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKFxuICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yQWxsPy48U2JiVG9nZ2xlT3B0aW9uRWxlbWVudDxUPj4oJ3NiYi10b2dnbGUtb3B0aW9uJykgPz8gW10sXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdpbnB1dCcsICgpID0+IHRoaXMuX2hhbmRsZUlucHV0KCksIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/Ligna2V5ZG93bicsIChlKSA9PiB0aGlzLl9oYW5kbGVLZXlEb3duKGUpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlcyk6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2Rpc2FibGVkJykgfHwgY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdmb3JtRGlzYWJsZWQnKSkge1xuICAgICAgdGhpcy5fdXBkYXRlRGlzYWJsZWQoKTtcbiAgICB9XG5cbiAgICAvLyBCZWZvcmUgdGhlIGZpcnN0IHVwZGF0ZSwgaW5pdCB3aXRoIHRoZSBmYWxsYmFjayB2YWx1ZS5cbiAgICAvLyBUaGUgd2lsbFVwZGF0ZSBob29rIGlzIHNhZmVyIHRoYW4gdGhlICd2YWx1ZScgc2V0dGVyLlxuICAgIGlmICghdGhpcy5oYXNVcGRhdGVkKSB7XG4gICAgICB0aGlzLl92YWx1ZUNoYW5nZWQodGhpcy5fZmFsbGJhY2tWYWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuZXZlciB0aGUgdmFsdWUgY2hhbmdlcywgYm90aCBwcm9ncmFtbWF0aWNhbGx5IG9yIGJ5IHVzZXIgaW50ZXJhY3Rpb24uXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIHN0YXR1c0NoYW5nZWQoKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVGb3JtVmFsdWUoKTtcbiAgICB0aGlzLnVwZGF0ZVBpbGxQb3NpdGlvbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0IHRvIHRoZSBpbml0IHZhbHVlIGlmIHByZXNlbnQuIFNlbGVjdCB0aGUgZmlyc3Qgb3B0aW9uLCBvdGhlcndpc2UuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSAodGhpcy5oYXNBdHRyaWJ1dGUoJ3ZhbHVlJykgPyB0aGlzLmdldEF0dHJpYnV0ZSgndmFsdWUnKSA6IG51bGwpIGFzIFQ7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgZm9ybVN0YXRlUmVzdG9yZUNhbGxiYWNrKFxuICAgIHN0YXRlOiBGb3JtUmVzdG9yZVN0YXRlIHwgbnVsbCxcbiAgICBfcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbixcbiAgKTogdm9pZCB7XG4gICAgaWYgKHR5cGVvZiBzdGF0ZSA9PT0gJ3N0cmluZycgfHwgc3RhdGUgPT0gbnVsbCkge1xuICAgICAgdGhpcy52YWx1ZSA9IChzdGF0ZSBhcyBUKSA/PyBudWxsO1xuICAgIH0gZWxzZSBpZiAoc3RhdGUgaW5zdGFuY2VvZiBGb3JtRGF0YSkge1xuICAgICAgdGhpcy5fcmVhZEZvcm1EYXRhKHN0YXRlKS50aGVuKChkYXRhKSA9PiB7XG4gICAgICAgIHRoaXMudmFsdWUgPSBkYXRhO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfcmVhZEZvcm1EYXRhKGZvcm1EYXRhOiBGb3JtRGF0YSk6IFByb21pc2U8VD4ge1xuICAgIGNvbnN0IGRhdGEgPSBmb3JtRGF0YS5nZXQodGhpcy5uYW1lKTtcbiAgICByZXR1cm4gZGF0YSBpbnN0YW5jZW9mIEJsb2IgPyBKU09OLnBhcnNlKGF3YWl0IGRhdGEudGV4dCgpKSA6IChkYXRhIGFzIFQpO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwdWJsaWMgdXBkYXRlUGlsbFBvc2l0aW9uKHJlc2l6aW5nID0gZmFsc2UpOiB2b2lkIHtcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5vcHRpb25zO1xuXG4gICAgaWYgKFxuICAgICAgb3B0aW9ucy5sZW5ndGggPCAyIHx8XG4gICAgICBvcHRpb25zLmV2ZXJ5KChvKSA9PiAhby5jaGVja2VkKSB8fFxuICAgICAgb3B0aW9ucy5ldmVyeSgobykgPT4gIW8uY2xpZW50V2lkdGgpXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy50b2dnbGVTdGF0ZSgnZGlzYWJsZS1hbmltYXRpb24tb24tcmVzaXppbmcnLCByZXNpemluZyk7XG5cbiAgICBjb25zdCBmaXJzdE9wdGlvbiA9IG9wdGlvbnNbMF07XG4gICAgY29uc3QgaXNGaXJzdENoZWNrZWQgPSBmaXJzdE9wdGlvbi5jaGVja2VkO1xuICAgIGNvbnN0IHBpbGxMZWZ0ID0gaXNGaXJzdENoZWNrZWQgPyAnMHB4JyA6IGAke2ZpcnN0T3B0aW9uLmNsaWVudFdpZHRofXB4YDtcbiAgICBjb25zdCBwaWxsUmlnaHQgPSBpc0ZpcnN0Q2hlY2tlZCA/IGAke3RoaXMuY2xpZW50V2lkdGggLSBmaXJzdE9wdGlvbi5jbGllbnRXaWR0aH1weGAgOiAnMHB4JztcblxuICAgIGlmIChwaWxsUmlnaHQgPT09ICcwcHgnICYmIHBpbGxMZWZ0ID09PSAnMHB4Jykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3R5bGU/LnNldFByb3BlcnR5KCctLXNiYi10b2dnbGUtb3B0aW9uLWxlZnQnLCBwaWxsTGVmdCk7XG4gICAgdGhpcy5zdHlsZT8uc2V0UHJvcGVydHkoJy0tc2JiLXRvZ2dsZS1vcHRpb24tcmlnaHQnLCBwaWxsUmlnaHQpO1xuXG4gICAgLy8gVHJpZ2dlcnMgYSBsYXlvdXQgcmVmbG93IHdoaWNoIGlzIG5lZWRlZCB0byBhdm9pZCBhbmltYXRpb24gZ2xpdGNoZXMuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtZXhwcmVzc2lvbnNcbiAgICB0aGlzLm9mZnNldFdpZHRoO1xuXG4gICAgLy8gSW4gb3JkZXIgdG8gYXZvaWQgYSB0cmFuc2l0aW9uIGdsaXRjaCwgd2UgaGF2ZSB0byBrbm93IHdoZW4gdGhlIGZpcnN0IHZhbHVlcyB3ZXJlIHNldC5cbiAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKCdpbml0aWFsaXplZCcpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlVG9nZ2xlKCk6IHZvaWQge1xuICAgIHRoaXMuX3ZhbHVlQ2hhbmdlZCh0aGlzLnZhbHVlKTtcbiAgICB0aGlzLl91cGRhdGVEaXNhYmxlZCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdmFsdWVDaGFuZ2VkKHZhbHVlOiBUIHwgbnVsbCk6IHZvaWQge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XG5cbiAgICBjb25zdCBzZWxlY3RlZE9wdGlvbiA9XG4gICAgICBvcHRpb25zLmZpbmQoKG8pID0+IHZhbHVlID09PSBvLnZhbHVlKSA/PyBvcHRpb25zLmZpbmQoKG8pID0+IG8uY2hlY2tlZCkgPz8gb3B0aW9uc1swXTtcblxuICAgIGlmICghc2VsZWN0ZWRPcHRpb24pIHtcbiAgICAgIGlmIChpbXBvcnQubWV0YS5lbnYuREVWICYmICFpc1NlcnZlcikge1xuICAgICAgICBjb25zb2xlLndhcm4oYHNiYi10b2dnbGU6IE5vIGF2YWlsYWJsZSBvcHRpb25zISAoJHt0aGlzLmlkIHx8ICdObyBpZCd9KWApO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBzZWxlY3RlZE9wdGlvbi5jaGVja2VkID0gdHJ1ZTtcbiAgICB0aGlzLnN0YXR1c0NoYW5nZWQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZURpc2FibGVkKCk6IHZvaWQge1xuICAgIGZvciAoY29uc3QgdG9nZ2xlT3B0aW9uIG9mIHRoaXMub3B0aW9ucykge1xuICAgICAgdG9nZ2xlT3B0aW9uLmRpc2FibGVkID0gdGhpcy5kaXNhYmxlZCB8fCB0aGlzLmZvcm1EaXNhYmxlZDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIG9uIHVzZXIgaW50ZXJhY3Rpb24gKGNsaWNrIG9yIGtleWJvYXJkKVxuICAgKi9cbiAgcHJpdmF0ZSBfaGFuZGxlSW5wdXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0dXNDaGFuZ2VkKCk7XG4gICAgLyoqXG4gICAgICogVGhlIGNoYW5nZSBldmVudCBpcyBmaXJlZCB3aGVuIHRoZSB1c2VyIG1vZGlmaWVzIHRoZSBlbGVtZW50J3MgdmFsdWUuXG4gICAgICogVW5saWtlIHRoZSBpbnB1dCBldmVudCwgdGhlIGNoYW5nZSBldmVudCBpcyBub3QgbmVjZXNzYXJpbHkgZmlyZWRcbiAgICAgKiBmb3IgZWFjaCBhbHRlcmF0aW9uIHRvIGFuIGVsZW1lbnQncyB2YWx1ZS5cbiAgICAgKi9cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlS2V5RG93bihldnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBlbmFibGVkVG9nZ2xlT3B0aW9ucyA9IHRoaXMub3B0aW9ucy5maWx0ZXIoXG4gICAgICAodCkgPT4gIXQuZGlzYWJsZWQgJiYgaW50ZXJhY3Rpdml0eUNoZWNrZXIuaXNWaXNpYmxlKHQpLFxuICAgICk7XG5cbiAgICBpZiAoXG4gICAgICAhZW5hYmxlZFRvZ2dsZU9wdGlvbnMgfHxcbiAgICAgIC8vIGRvbid0IHRyYXAgbmVzdGVkIGhhbmRsaW5nXG4gICAgICAoKGV2dC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpICE9PSB0aGlzICYmIChldnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5wYXJlbnRFbGVtZW50ICE9PSB0aGlzKVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XG4gICAgY29uc3QgaXNSdGwgPSB0aGlzLm1hdGNoZXMoJzpkaXIocnRsKScpO1xuICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IG9wdGlvbnMuZmluZEluZGV4KChvcHRpb24pID0+IG9wdGlvbi5jaGVja2VkKSA/PyBvcHRpb25zWzBdO1xuICAgIGNvbnN0IGF2YWlsYWJsZU9wdGlvbnMgPSBvcHRpb25zXG4gICAgICAuc2xpY2UoY3VycmVudEluZGV4ICsgMSlcbiAgICAgIC5jb25jYXQob3B0aW9ucy5zbGljZSgwLCBjdXJyZW50SW5kZXgpKVxuICAgICAgLmZpbHRlcigobykgPT4gIW8uZGlzYWJsZWQgJiYgaW50ZXJhY3Rpdml0eUNoZWNrZXIuaXNWaXNpYmxlKG8pKTtcbiAgICBpZiAoIWlzUnRsID8gZXZ0LmtleSA9PT0gJyAnIHx8IGV2dC5rZXkgPT09ICdBcnJvd1JpZ2h0JyA6IGV2dC5rZXkgPT09ICdBcnJvd0xlZnQnKSB7XG4gICAgICB0aGlzLl9zZWxlY3RBbmRGb2N1c09wdGlvbihhdmFpbGFibGVPcHRpb25zWzBdKTtcbiAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH0gZWxzZSBpZiAoaXNSdGwgPyBldnQua2V5ID09PSAnICcgfHwgZXZ0LmtleSA9PT0gJ0Fycm93UmlnaHQnIDogZXZ0LmtleSA9PT0gJ0Fycm93TGVmdCcpIHtcbiAgICAgIHRoaXMuX3NlbGVjdEFuZEZvY3VzT3B0aW9uKGF2YWlsYWJsZU9wdGlvbnMuYXQoLTEpKTtcbiAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3NlbGVjdEFuZEZvY3VzT3B0aW9uKG9wdGlvbjogU2JiVG9nZ2xlT3B0aW9uRWxlbWVudDxUPiB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIGlmICghb3B0aW9uIHx8IG9wdGlvbi5kaXNhYmxlZCB8fCBvcHRpb24uY2hlY2tlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBvcHRpb24uY2hlY2tlZCA9IHRydWU7XG4gICAgb3B0aW9uLmZvY3VzKCk7XG4gICAgb3B0aW9uLmRpc3BhdGNoRXZlbnQobmV3IElucHV0RXZlbnQoJ2lucHV0JywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGAgPHNsb3QgQHNsb3RjaGFuZ2U9JHt0aGlzLl91cGRhdGVUb2dnbGV9Pjwvc2xvdD4gYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXRvZ2dsZSc6IFNiYlRvZ2dsZUVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQytCYSwwQkFBZ0I7bUJBQXFCLGlCQUNoRCx1QkFBdUIsV0FBVyxDQUNuQzs7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