@sbb-esta/lyne-elements 1.3.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (305) hide show
  1. package/autocomplete/autocomplete-base-element.d.ts +93 -0
  2. package/autocomplete/autocomplete-base-element.d.ts.map +1 -0
  3. package/autocomplete/autocomplete.d.ts +13 -86
  4. package/autocomplete/autocomplete.d.ts.map +1 -1
  5. package/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts +45 -0
  6. package/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts.map +1 -0
  7. package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts +33 -0
  8. package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts.map +1 -0
  9. package/autocomplete-grid/autocomplete-grid-button.d.ts +2 -0
  10. package/autocomplete-grid/autocomplete-grid-button.d.ts.map +1 -0
  11. package/autocomplete-grid/autocomplete-grid-button.js +66 -0
  12. package/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.d.ts +17 -0
  13. package/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.d.ts.map +1 -0
  14. package/autocomplete-grid/autocomplete-grid-cell.d.ts +2 -0
  15. package/autocomplete-grid/autocomplete-grid-cell.d.ts.map +1 -0
  16. package/autocomplete-grid/autocomplete-grid-cell.js +28 -0
  17. package/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.d.ts +21 -0
  18. package/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.d.ts.map +1 -0
  19. package/autocomplete-grid/autocomplete-grid-optgroup/index.d.ts +2 -0
  20. package/autocomplete-grid/autocomplete-grid-optgroup/index.d.ts.map +1 -0
  21. package/autocomplete-grid/autocomplete-grid-optgroup.d.ts +2 -0
  22. package/autocomplete-grid/autocomplete-grid-optgroup.d.ts.map +1 -0
  23. package/autocomplete-grid/autocomplete-grid-optgroup.js +37 -0
  24. package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.d.ts +40 -0
  25. package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.d.ts.map +1 -0
  26. package/autocomplete-grid/autocomplete-grid-option.d.ts +2 -0
  27. package/autocomplete-grid/autocomplete-grid-option.d.ts.map +1 -0
  28. package/autocomplete-grid/autocomplete-grid-option.js +67 -0
  29. package/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.d.ts +18 -0
  30. package/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.d.ts.map +1 -0
  31. package/autocomplete-grid/autocomplete-grid-row.d.ts +2 -0
  32. package/autocomplete-grid/autocomplete-grid-row.d.ts.map +1 -0
  33. package/autocomplete-grid/autocomplete-grid-row.js +31 -0
  34. package/autocomplete-grid/autocomplete-grid.d.ts +2 -0
  35. package/autocomplete-grid/autocomplete-grid.d.ts.map +1 -0
  36. package/autocomplete-grid/autocomplete-grid.js +139 -0
  37. package/autocomplete-grid.d.ts +7 -0
  38. package/autocomplete-grid.d.ts.map +1 -0
  39. package/autocomplete-grid.js +6 -0
  40. package/autocomplete.d.ts +1 -0
  41. package/autocomplete.d.ts.map +1 -1
  42. package/autocomplete.js +162 -145
  43. package/breadcrumb/breadcrumb-group/breadcrumb-group.d.ts.map +1 -1
  44. package/button/mini-button/mini-button-base-element.d.ts +9 -0
  45. package/button/mini-button/mini-button-base-element.d.ts.map +1 -0
  46. package/button/mini-button/mini-button.d.ts +3 -4
  47. package/button/mini-button/mini-button.d.ts.map +1 -1
  48. package/button/mini-button.d.ts +1 -0
  49. package/button/mini-button.d.ts.map +1 -1
  50. package/button/mini-button.js +23 -13
  51. package/checkbox/checkbox/checkbox.d.ts +5 -0
  52. package/checkbox/checkbox/checkbox.d.ts.map +1 -1
  53. package/checkbox/checkbox-panel/checkbox-panel.d.ts +5 -0
  54. package/checkbox/checkbox-panel/checkbox-panel.d.ts.map +1 -1
  55. package/checkbox/checkbox-panel.js +28 -18
  56. package/checkbox/checkbox.js +30 -19
  57. package/checkbox/common/checkbox-common.d.ts +1 -3
  58. package/checkbox/common/checkbox-common.d.ts.map +1 -1
  59. package/checkbox/common.js +16 -25
  60. package/container/container.js +3 -3
  61. package/core/i18n/i18n.d.ts +2 -0
  62. package/core/i18n/i18n.d.ts.map +1 -1
  63. package/core/i18n.js +61 -49
  64. package/core/mixins/form-associated-mixin.d.ts.map +1 -1
  65. package/core/mixins/panel-mixin.d.ts +1 -0
  66. package/core/mixins/panel-mixin.d.ts.map +1 -1
  67. package/core/mixins.js +3 -1
  68. package/core/overlay/overlay-trigger-attributes.d.ts +1 -1
  69. package/core/overlay/overlay-trigger-attributes.d.ts.map +1 -1
  70. package/core/overlay.js +2 -2
  71. package/core/styles/core.scss +1 -0
  72. package/core/styles/mixins/buttons.scss +13 -8
  73. package/core/styles/mixins/helpers.scss +1 -0
  74. package/core/styles/mixins/pearl-chain-bullet.scss +1 -1
  75. package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables.scss +1 -0
  76. package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables_css--mixin.scss +2 -1
  77. package/core.css +3 -1
  78. package/custom-elements.json +14325 -9229
  79. package/datepicker/datepicker-next-day.js +12 -12
  80. package/datepicker/datepicker-previous-day.js +1 -1
  81. package/development/autocomplete/autocomplete-base-element.d.ts +93 -0
  82. package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -0
  83. package/development/autocomplete/autocomplete.d.ts +13 -86
  84. package/development/autocomplete/autocomplete.d.ts.map +1 -1
  85. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts +45 -0
  86. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts.map +1 -0
  87. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts +33 -0
  88. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts.map +1 -0
  89. package/development/autocomplete-grid/autocomplete-grid-button.d.ts +2 -0
  90. package/development/autocomplete-grid/autocomplete-grid-button.d.ts.map +1 -0
  91. package/development/autocomplete-grid/autocomplete-grid-button.js +224 -0
  92. package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.d.ts +17 -0
  93. package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.d.ts.map +1 -0
  94. package/development/autocomplete-grid/autocomplete-grid-cell.d.ts +2 -0
  95. package/development/autocomplete-grid/autocomplete-grid-cell.d.ts.map +1 -0
  96. package/development/autocomplete-grid/autocomplete-grid-cell.js +67 -0
  97. package/development/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.d.ts +21 -0
  98. package/development/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.d.ts.map +1 -0
  99. package/development/autocomplete-grid/autocomplete-grid-optgroup/index.d.ts +2 -0
  100. package/development/autocomplete-grid/autocomplete-grid-optgroup/index.d.ts.map +1 -0
  101. package/development/autocomplete-grid/autocomplete-grid-optgroup.d.ts +2 -0
  102. package/development/autocomplete-grid/autocomplete-grid-optgroup.d.ts.map +1 -0
  103. package/development/autocomplete-grid/autocomplete-grid-optgroup.js +45 -0
  104. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.d.ts +40 -0
  105. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.d.ts.map +1 -0
  106. package/development/autocomplete-grid/autocomplete-grid-option.d.ts +2 -0
  107. package/development/autocomplete-grid/autocomplete-grid-option.d.ts.map +1 -0
  108. package/development/autocomplete-grid/autocomplete-grid-option.js +174 -0
  109. package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.d.ts +18 -0
  110. package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.d.ts.map +1 -0
  111. package/development/autocomplete-grid/autocomplete-grid-row.d.ts +2 -0
  112. package/development/autocomplete-grid/autocomplete-grid-row.d.ts.map +1 -0
  113. package/development/autocomplete-grid/autocomplete-grid-row.js +143 -0
  114. package/development/autocomplete-grid/autocomplete-grid.d.ts +2 -0
  115. package/development/autocomplete-grid/autocomplete-grid.d.ts.map +1 -0
  116. package/development/autocomplete-grid/autocomplete-grid.js +185 -0
  117. package/development/autocomplete-grid.d.ts +7 -0
  118. package/development/autocomplete-grid.d.ts.map +1 -0
  119. package/development/autocomplete-grid.js +7 -0
  120. package/development/autocomplete.d.ts +1 -0
  121. package/development/autocomplete.d.ts.map +1 -1
  122. package/development/autocomplete.js +168 -143
  123. package/development/breadcrumb/breadcrumb-group/breadcrumb-group.d.ts.map +1 -1
  124. package/development/breadcrumb/breadcrumb-group.js +1 -1
  125. package/development/button/mini-button/mini-button-base-element.d.ts +9 -0
  126. package/development/button/mini-button/mini-button-base-element.d.ts.map +1 -0
  127. package/development/button/mini-button/mini-button.d.ts +3 -4
  128. package/development/button/mini-button/mini-button.d.ts.map +1 -1
  129. package/development/button/mini-button.d.ts +1 -0
  130. package/development/button/mini-button.d.ts.map +1 -1
  131. package/development/button/mini-button.js +32 -16
  132. package/development/checkbox/checkbox/checkbox.d.ts +5 -0
  133. package/development/checkbox/checkbox/checkbox.d.ts.map +1 -1
  134. package/development/checkbox/checkbox-panel/checkbox-panel.d.ts +5 -0
  135. package/development/checkbox/checkbox-panel/checkbox-panel.d.ts.map +1 -1
  136. package/development/checkbox/checkbox-panel.js +13 -2
  137. package/development/checkbox/checkbox.js +19 -1
  138. package/development/checkbox/common/checkbox-common.d.ts +1 -3
  139. package/development/checkbox/common/checkbox-common.d.ts.map +1 -1
  140. package/development/checkbox/common.js +13 -19
  141. package/development/container/container.js +2 -1
  142. package/development/core/i18n/i18n.d.ts +2 -0
  143. package/development/core/i18n/i18n.d.ts.map +1 -1
  144. package/development/core/i18n.js +15 -1
  145. package/development/core/mixins/form-associated-mixin.d.ts.map +1 -1
  146. package/development/core/mixins/panel-mixin.d.ts +1 -0
  147. package/development/core/mixins/panel-mixin.d.ts.map +1 -1
  148. package/development/core/mixins.js +4 -2
  149. package/development/core/overlay/overlay-trigger-attributes.d.ts +1 -1
  150. package/development/core/overlay/overlay-trigger-attributes.d.ts.map +1 -1
  151. package/development/core/overlay.js +3 -3
  152. package/development/datepicker/datepicker-next-day.js +8 -7
  153. package/development/datepicker/datepicker-previous-day.js +8 -7
  154. package/development/flip-card/flip-card/flip-card.d.ts +32 -0
  155. package/development/flip-card/flip-card/flip-card.d.ts.map +1 -0
  156. package/development/flip-card/flip-card/index.d.ts +2 -0
  157. package/development/flip-card/flip-card/index.d.ts.map +1 -0
  158. package/development/flip-card/flip-card-details/flip-card-details.d.ts +22 -0
  159. package/development/flip-card/flip-card-details/flip-card-details.d.ts.map +1 -0
  160. package/development/flip-card/flip-card-details/index.d.ts +2 -0
  161. package/development/flip-card/flip-card-details/index.d.ts.map +1 -0
  162. package/development/flip-card/flip-card-details.d.ts +2 -0
  163. package/development/flip-card/flip-card-details.d.ts.map +1 -0
  164. package/development/flip-card/flip-card-details.js +105 -0
  165. package/development/flip-card/flip-card-summary/flip-card-summary.d.ts +22 -0
  166. package/development/flip-card/flip-card-summary/flip-card-summary.d.ts.map +1 -0
  167. package/development/flip-card/flip-card-summary/index.d.ts +2 -0
  168. package/development/flip-card/flip-card-summary/index.d.ts.map +1 -0
  169. package/development/flip-card/flip-card-summary.d.ts +2 -0
  170. package/development/flip-card/flip-card-summary.d.ts.map +1 -0
  171. package/development/flip-card/flip-card-summary.js +151 -0
  172. package/development/flip-card/flip-card.d.ts +2 -0
  173. package/development/flip-card/flip-card.d.ts.map +1 -0
  174. package/development/flip-card/flip-card.js +187 -0
  175. package/development/flip-card.d.ts +4 -0
  176. package/development/flip-card.d.ts.map +1 -0
  177. package/development/flip-card.js +4 -0
  178. package/development/form-field/form-field-clear/form-field-clear.d.ts.map +1 -1
  179. package/development/form-field/form-field-clear.js +8 -7
  180. package/development/form-field/form-field.js +3 -3
  181. package/development/icon/icon-base.d.ts.map +1 -1
  182. package/development/icon/icon.d.ts.map +1 -1
  183. package/development/icon.js +1 -1
  184. package/development/image/image.d.ts +1 -0
  185. package/development/image/image.d.ts.map +1 -1
  186. package/development/image.js +10 -4
  187. package/development/map-container.js +12 -14
  188. package/development/navigation/navigation-marker/navigation-marker.d.ts.map +1 -1
  189. package/development/navigation/navigation-marker.js +1 -1
  190. package/development/option/optgroup/optgroup-base-element.d.ts +28 -0
  191. package/development/option/optgroup/optgroup-base-element.d.ts.map +1 -0
  192. package/development/option/optgroup/optgroup.d.ts +7 -20
  193. package/development/option/optgroup/optgroup.d.ts.map +1 -1
  194. package/development/option/optgroup.d.ts +1 -0
  195. package/development/option/optgroup.d.ts.map +1 -1
  196. package/development/option/optgroup.js +74 -49
  197. package/development/option/option/option-base-element.d.ts +69 -0
  198. package/development/option/option/option-base-element.d.ts.map +1 -0
  199. package/development/option/option/option.d.ts +14 -57
  200. package/development/option/option/option.d.ts.map +1 -1
  201. package/development/option/option.d.ts +1 -0
  202. package/development/option/option.d.ts.map +1 -1
  203. package/development/option/option.js +267 -220
  204. package/development/radio-button/common/radio-button-common.d.ts +1 -1
  205. package/development/radio-button/common/radio-button-common.d.ts.map +1 -1
  206. package/development/radio-button/common.js +13 -12
  207. package/development/radio-button/radio-button/radio-button.d.ts +7 -0
  208. package/development/radio-button/radio-button/radio-button.d.ts.map +1 -1
  209. package/development/radio-button/radio-button-group/radio-button-group.d.ts +1 -1
  210. package/development/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  211. package/development/radio-button/radio-button-group.js +1 -1
  212. package/development/radio-button/radio-button-panel/radio-button-panel.d.ts +7 -0
  213. package/development/radio-button/radio-button-panel/radio-button-panel.d.ts.map +1 -1
  214. package/development/radio-button/radio-button-panel.js +16 -2
  215. package/development/radio-button/radio-button.js +16 -2
  216. package/development/skiplink-list/skiplink-list.d.ts +1 -0
  217. package/development/skiplink-list/skiplink-list.d.ts.map +1 -1
  218. package/development/skiplink-list.js +1 -1
  219. package/development/status/status.d.ts +1 -1
  220. package/development/status/status.d.ts.map +1 -1
  221. package/development/status.js +39 -2
  222. package/development/tabs/tab-group.js +2 -9
  223. package/development/tabs/tab.js +10 -2
  224. package/development/tag/tag-group.js +1 -1
  225. package/development/timetable-occupancy-icon/timetable-occupancy-icon.d.ts.map +1 -1
  226. package/development/timetable-occupancy-icon.js +3 -6
  227. package/development/toggle/toggle.js +1 -1
  228. package/development/visual-checkbox/visual-checkbox.d.ts +3 -0
  229. package/development/visual-checkbox/visual-checkbox.d.ts.map +1 -1
  230. package/development/visual-checkbox.js +11 -3
  231. package/flip-card/flip-card/flip-card.d.ts +32 -0
  232. package/flip-card/flip-card/flip-card.d.ts.map +1 -0
  233. package/flip-card/flip-card/index.d.ts +2 -0
  234. package/flip-card/flip-card/index.d.ts.map +1 -0
  235. package/flip-card/flip-card-details/flip-card-details.d.ts +22 -0
  236. package/flip-card/flip-card-details/flip-card-details.d.ts.map +1 -0
  237. package/flip-card/flip-card-details/index.d.ts +2 -0
  238. package/flip-card/flip-card-details/index.d.ts.map +1 -0
  239. package/flip-card/flip-card-details.d.ts +2 -0
  240. package/flip-card/flip-card-details.d.ts.map +1 -0
  241. package/flip-card/flip-card-details.js +52 -0
  242. package/flip-card/flip-card-summary/flip-card-summary.d.ts +22 -0
  243. package/flip-card/flip-card-summary/flip-card-summary.d.ts.map +1 -0
  244. package/flip-card/flip-card-summary/index.d.ts +2 -0
  245. package/flip-card/flip-card-summary/index.d.ts.map +1 -0
  246. package/flip-card/flip-card-summary.d.ts +2 -0
  247. package/flip-card/flip-card-summary.d.ts.map +1 -0
  248. package/flip-card/flip-card-summary.js +41 -0
  249. package/flip-card/flip-card.d.ts +2 -0
  250. package/flip-card/flip-card.d.ts.map +1 -0
  251. package/flip-card/flip-card.js +58 -0
  252. package/flip-card.d.ts +4 -0
  253. package/flip-card.d.ts.map +1 -0
  254. package/flip-card.js +3 -0
  255. package/form-field/form-field-clear/form-field-clear.d.ts.map +1 -1
  256. package/form-field/form-field-clear.js +11 -11
  257. package/form-field/form-field.js +2 -2
  258. package/icon/icon-base.d.ts.map +1 -1
  259. package/icon/icon.d.ts.map +1 -1
  260. package/image/image.d.ts +1 -0
  261. package/image/image.d.ts.map +1 -1
  262. package/image.js +24 -24
  263. package/index.d.ts +18 -0
  264. package/index.js +18 -0
  265. package/map-container.js +8 -8
  266. package/navigation/navigation-marker/navigation-marker.d.ts.map +1 -1
  267. package/option/optgroup/optgroup-base-element.d.ts +28 -0
  268. package/option/optgroup/optgroup-base-element.d.ts.map +1 -0
  269. package/option/optgroup/optgroup.d.ts +7 -20
  270. package/option/optgroup/optgroup.d.ts.map +1 -1
  271. package/option/optgroup.d.ts +1 -0
  272. package/option/optgroup.d.ts.map +1 -1
  273. package/option/optgroup.js +80 -60
  274. package/option/option/option-base-element.d.ts +69 -0
  275. package/option/option/option-base-element.d.ts.map +1 -0
  276. package/option/option/option.d.ts +14 -57
  277. package/option/option/option.d.ts.map +1 -1
  278. package/option/option.d.ts +1 -0
  279. package/option/option.d.ts.map +1 -1
  280. package/option/option.js +186 -145
  281. package/package.json +56 -1
  282. package/radio-button/common/radio-button-common.d.ts +1 -1
  283. package/radio-button/common/radio-button-common.d.ts.map +1 -1
  284. package/radio-button/common.js +6 -15
  285. package/radio-button/radio-button/radio-button.d.ts +7 -0
  286. package/radio-button/radio-button/radio-button.d.ts.map +1 -1
  287. package/radio-button/radio-button-group/radio-button-group.d.ts +1 -1
  288. package/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  289. package/radio-button/radio-button-panel/radio-button-panel.d.ts +7 -0
  290. package/radio-button/radio-button-panel/radio-button-panel.d.ts.map +1 -1
  291. package/radio-button/radio-button-panel.js +35 -22
  292. package/radio-button/radio-button.js +32 -19
  293. package/skiplink-list/skiplink-list.d.ts +1 -0
  294. package/skiplink-list/skiplink-list.d.ts.map +1 -1
  295. package/standard-theme.css +3 -1
  296. package/status/status.d.ts +1 -1
  297. package/status/status.d.ts.map +1 -1
  298. package/status.js +17 -13
  299. package/tabs/tab-group.js +19 -19
  300. package/tabs/tab.js +10 -10
  301. package/timetable-occupancy-icon/timetable-occupancy-icon.d.ts.map +1 -1
  302. package/timetable-occupancy-icon.js +22 -24
  303. package/visual-checkbox/visual-checkbox.d.ts +3 -0
  304. package/visual-checkbox/visual-checkbox.d.ts.map +1 -1
  305. package/visual-checkbox.js +23 -20
@@ -0,0 +1,174 @@
1
+ import { customElement } from "lit/decorators.js";
2
+ import { hostAttributes } from "../core/decorators.js";
3
+ import { EventEmitter } from "../core/eventing.js";
4
+ import { SbbOptionBaseElement } from "../option.js";
5
+ import { css } from "lit";
6
+ const style = css`/**
7
+ * Better font rendering (on OS X)
8
+ * http://maximilianhoffmann.com/posts/better-font-rendering-on-osx
9
+ *
10
+ * Usage:
11
+ *
12
+ * .var_dark_on_light {
13
+ * @include font-smoothing;
14
+ * }
15
+ * .var_light_on_dark {
16
+ * @include font-smoothing-reset;
17
+ * }
18
+ */
19
+ /** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
20
+ /*
21
+ * SBB table mixin
22
+ * Notes:
23
+ * We cannot use \`border-collapse\` because it is not compatible with the \`border-radius\` property.
24
+ * Therefore, we have to build the grid avoiding double borders.
25
+ */
26
+ *,
27
+ ::before,
28
+ ::after {
29
+ box-sizing: border-box;
30
+ }
31
+
32
+ :host {
33
+ --sbb-option-color: var(--sbb-color-charcoal);
34
+ --sbb-option-column-gap: var(--sbb-spacing-responsive-xxxs);
35
+ --sbb-option-icon-color: var(--sbb-color-metal);
36
+ --sbb-option-border-radius: var(--sbb-border-radius-4x);
37
+ --sbb-option-padding-inline: var(--sbb-spacing-responsive-xxxs);
38
+ --sbb-option-padding-block: calc(var(--sbb-spacing-fixed-2x) + var(--sbb-border-width-2x));
39
+ display: block;
40
+ }
41
+
42
+ :host([active]) {
43
+ --sbb-focus-outline-offset: calc(-1 * var(--sbb-spacing-fixed-1x));
44
+ }
45
+
46
+ :host([data-negative]) {
47
+ --sbb-option-color: var(--sbb-color-milk);
48
+ --sbb-option-icon-color: var(--sbb-color-smoke);
49
+ }
50
+
51
+ :host(:not([data-disable-highlight])) .sbb-option__label slot {
52
+ display: none;
53
+ }
54
+
55
+ .sbb-option {
56
+ --sbb-text-font-size: var(--sbb-font-size-text-s);
57
+ font-family: var(--sbb-typo-font-family);
58
+ font-weight: normal;
59
+ line-height: var(--sbb-typo-line-height-body-text);
60
+ letter-spacing: var(--sbb-typo-letter-spacing-body-text);
61
+ font-size: var(--sbb-text-font-size);
62
+ display: flex;
63
+ align-items: center;
64
+ column-gap: var(--sbb-option-column-gap);
65
+ justify-content: start;
66
+ padding-block: var(--sbb-option-padding-block);
67
+ padding-inline: var(--sbb-option-padding-inline);
68
+ color: var(--sbb-option-color);
69
+ }
70
+ :host([active]) .sbb-option {
71
+ outline-offset: var(--sbb-focus-outline-offset);
72
+ outline: var(--sbb-focus-outline-color) solid var(--sbb-focus-outline-width);
73
+ border-radius: var(--sbb-option-border-radius);
74
+ }
75
+
76
+ :host(:not(:is([disabled], [data-group-disabled]))) .sbb-option__label--highlight {
77
+ font-weight: bold;
78
+ }
79
+ @media (forced-colors: active) {
80
+ :host(:not(:is([disabled], [data-group-disabled]))) .sbb-option__label--highlight {
81
+ color: Highlight;
82
+ }
83
+ }
84
+
85
+ .sbb-option__icon {
86
+ display: flex;
87
+ min-width: var(--sbb-size-icon-ui-small);
88
+ min-height: var(--sbb-size-icon-ui-small);
89
+ color: var(--sbb-option-icon-color);
90
+ }
91
+ :host(:not([data-slot-names~=icon], [icon-name])) .sbb-option__icon {
92
+ display: var(--sbb-option-icon-container-display, none);
93
+ }`;
94
+ var __defProp = Object.defineProperty;
95
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
96
+ var __decorateClass = (decorators, target, key, kind) => {
97
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
98
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
99
+ if (decorator = decorators[i])
100
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
101
+ if (kind && result) __defProp(target, key, result);
102
+ return result;
103
+ };
104
+ const autocompleteGridOptionId = `sbb-autocomplete-grid-option`;
105
+ let SbbAutocompleteGridOptionElement = class extends SbbOptionBaseElement {
106
+ constructor() {
107
+ super(...arguments);
108
+ this.optionId = autocompleteGridOptionId;
109
+ this.selectionChange = new EventEmitter(
110
+ this,
111
+ SbbAutocompleteGridOptionElement.events.selectionChange
112
+ );
113
+ this.optionSelected = new EventEmitter(
114
+ this,
115
+ SbbAutocompleteGridOptionElement.events.optionSelected
116
+ );
117
+ }
118
+ onOptionAttributesChange(mutationsList) {
119
+ var _a, _b;
120
+ super.onOptionAttributesChange(mutationsList);
121
+ (_b = (_a = this.closest) == null ? void 0 : _a.call(this, "sbb-autocomplete-grid-row")) == null ? void 0 : _b.toggleAttribute(
122
+ "data-disabled",
123
+ this.disabled || this.disabledFromGroup
124
+ );
125
+ }
126
+ willUpdate(changedProperties) {
127
+ var _a, _b;
128
+ super.willUpdate(changedProperties);
129
+ if (changedProperties.has("disabled")) {
130
+ (_b = (_a = this.closest) == null ? void 0 : _a.call(this, "sbb-autocomplete-grid-row")) == null ? void 0 : _b.toggleAttribute(
131
+ "data-disabled",
132
+ this.disabled || this.disabledFromGroup
133
+ );
134
+ this.updateAriaDisabled();
135
+ }
136
+ }
137
+ setAttributeFromParent() {
138
+ var _a;
139
+ const parentGroup = this.closest("sbb-autocomplete-grid-optgroup");
140
+ if (parentGroup) {
141
+ this.disabledFromGroup = parentGroup.disabled;
142
+ this.updateAriaDisabled();
143
+ }
144
+ (_a = this.closest("sbb-autocomplete-grid-row")) == null ? void 0 : _a.toggleAttribute(
145
+ "data-disabled",
146
+ this.disabled || this.disabledFromGroup
147
+ );
148
+ this.negative = !!this.closest(`:is(sbb-autocomplete-grid[negative],sbb-form-field[negative])`);
149
+ this.toggleAttribute("data-negative", this.negative);
150
+ }
151
+ selectByClick(event) {
152
+ if (this.disabled || this.disabledFromGroup) {
153
+ event.stopPropagation();
154
+ return;
155
+ }
156
+ this.setSelectedViaUserInteraction(true);
157
+ }
158
+ };
159
+ SbbAutocompleteGridOptionElement.styles = style;
160
+ SbbAutocompleteGridOptionElement.events = {
161
+ selectionChange: "autocompleteOptionSelectionChange",
162
+ optionSelected: "autocompleteOptionSelected"
163
+ };
164
+ SbbAutocompleteGridOptionElement = __decorateClass([
165
+ customElement("sbb-autocomplete-grid-option"),
166
+ hostAttributes({
167
+ role: "gridcell"
168
+ })
169
+ ], SbbAutocompleteGridOptionElement);
170
+ export {
171
+ SbbAutocompleteGridOptionElement,
172
+ autocompleteGridOptionId
173
+ };
174
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWdyaWQtb3B0aW9uLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvYXV0b2NvbXBsZXRlLWdyaWQvYXV0b2NvbXBsZXRlLWdyaWQtb3B0aW9uL2F1dG9jb21wbGV0ZS1ncmlkLW9wdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBQcm9wZXJ0eVZhbHVlcyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBob3N0QXR0cmlidXRlcyB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICcuLi8uLi9jb3JlL2V2ZW50aW5nLmpzJztcbmltcG9ydCB7IFNiYk9wdGlvbkJhc2VFbGVtZW50IH0gZnJvbSAnLi4vLi4vb3B0aW9uLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vYXV0b2NvbXBsZXRlLWdyaWQtb3B0aW9uLnNjc3M/bGl0JmlubGluZSc7XG5cbmV4cG9ydCBjb25zdCBhdXRvY29tcGxldGVHcmlkT3B0aW9uSWQ6IHN0cmluZyA9IGBzYmItYXV0b2NvbXBsZXRlLWdyaWQtb3B0aW9uYDtcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhbiBvcHRpb24gaXRlbSB3aGljaCBjYW4gYmUgdXNlZCBpbiBgc2JiLWF1dG9jb21wbGV0ZS1ncmlkYC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBjb250ZW50IHRvIHRoZSBvcHRpb24gbGFiZWwuXG4gKiBAc2xvdCBpY29uIC0gVXNlIHRoaXMgc2xvdCB0byBwcm92aWRlIGFuIGljb24uIElmIGBpY29uLW5hbWVgIGlzIHNldCwgYSBzYmItaWNvbiB3aWxsIGJlIHVzZWQuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSBhdXRvY29tcGxldGVPcHRpb25TZWxlY3Rpb25DaGFuZ2UgLSBFbWl0cyB3aGVuIHRoZSBvcHRpb24gc2VsZWN0aW9uIHN0YXR1cyBjaGFuZ2VzLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gYXV0b2NvbXBsZXRlT3B0aW9uU2VsZWN0ZWQgLSBFbWl0cyB3aGVuIGFuIG9wdGlvbiB3YXMgc2VsZWN0ZWQgYnkgdXNlci5cbiAqIEBjc3Nwcm9wIFstLXNiYi1vcHRpb24taWNvbi1jb250YWluZXItZGlzcGxheT1ub25lXSAtIENhbiBiZSB1c2VkIHRvIHJlc2VydmUgc3BhY2UgZXZlblxuICogd2hlbiBwcmVzZXJ2ZS1pY29uLXNwYWNlIG9uIGF1dG9jb21wbGV0ZSBpcyBub3Qgc2V0IG9yIGljb25OYW1lIGlzIG5vdCBzZXQuXG4gKi9cbkBjdXN0b21FbGVtZW50KCdzYmItYXV0b2NvbXBsZXRlLWdyaWQtb3B0aW9uJylcbkBob3N0QXR0cmlidXRlcyh7XG4gIHJvbGU6ICdncmlkY2VsbCcsXG59KVxuZXhwb3J0IGNsYXNzIFNiYkF1dG9jb21wbGV0ZUdyaWRPcHRpb25FbGVtZW50IGV4dGVuZHMgU2JiT3B0aW9uQmFzZUVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHMgPSB7XG4gICAgc2VsZWN0aW9uQ2hhbmdlOiAnYXV0b2NvbXBsZXRlT3B0aW9uU2VsZWN0aW9uQ2hhbmdlJyxcbiAgICBvcHRpb25TZWxlY3RlZDogJ2F1dG9jb21wbGV0ZU9wdGlvblNlbGVjdGVkJyxcbiAgfSBhcyBjb25zdDtcblxuICBwcm90ZWN0ZWQgb3B0aW9uSWQgPSBhdXRvY29tcGxldGVHcmlkT3B0aW9uSWQ7XG5cbiAgLyoqIEVtaXRzIHdoZW4gdGhlIG9wdGlvbiBzZWxlY3Rpb24gc3RhdHVzIGNoYW5nZXMuICovXG4gIHByb3RlY3RlZCBzZWxlY3Rpb25DaGFuZ2U6IEV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoXG4gICAgdGhpcyxcbiAgICBTYmJBdXRvY29tcGxldGVHcmlkT3B0aW9uRWxlbWVudC5ldmVudHMuc2VsZWN0aW9uQ2hhbmdlLFxuICApO1xuXG4gIC8qKiBFbWl0cyB3aGVuIGFuIG9wdGlvbiB3YXMgc2VsZWN0ZWQgYnkgdXNlci4gKi9cbiAgcHJvdGVjdGVkIG9wdGlvblNlbGVjdGVkOiBFdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKFxuICAgIHRoaXMsXG4gICAgU2JiQXV0b2NvbXBsZXRlR3JpZE9wdGlvbkVsZW1lbnQuZXZlbnRzLm9wdGlvblNlbGVjdGVkLFxuICApO1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBvbk9wdGlvbkF0dHJpYnV0ZXNDaGFuZ2UobXV0YXRpb25zTGlzdDogTXV0YXRpb25SZWNvcmRbXSk6IHZvaWQge1xuICAgIHN1cGVyLm9uT3B0aW9uQXR0cmlidXRlc0NoYW5nZShtdXRhdGlvbnNMaXN0KTtcbiAgICB0aGlzLmNsb3Nlc3Q/Lignc2JiLWF1dG9jb21wbGV0ZS1ncmlkLXJvdycpPy50b2dnbGVBdHRyaWJ1dGUoXG4gICAgICAnZGF0YS1kaXNhYmxlZCcsXG4gICAgICB0aGlzLmRpc2FibGVkIHx8IHRoaXMuZGlzYWJsZWRGcm9tR3JvdXAsXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2Rpc2FibGVkJykpIHtcbiAgICAgIHRoaXMuY2xvc2VzdD8uKCdzYmItYXV0b2NvbXBsZXRlLWdyaWQtcm93Jyk/LnRvZ2dsZUF0dHJpYnV0ZShcbiAgICAgICAgJ2RhdGEtZGlzYWJsZWQnLFxuICAgICAgICB0aGlzLmRpc2FibGVkIHx8IHRoaXMuZGlzYWJsZWRGcm9tR3JvdXAsXG4gICAgICApO1xuICAgICAgdGhpcy51cGRhdGVBcmlhRGlzYWJsZWQoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0QXR0cmlidXRlRnJvbVBhcmVudCgpOiB2b2lkIHtcbiAgICBjb25zdCBwYXJlbnRHcm91cCA9IHRoaXMuY2xvc2VzdCgnc2JiLWF1dG9jb21wbGV0ZS1ncmlkLW9wdGdyb3VwJyk7XG4gICAgaWYgKHBhcmVudEdyb3VwKSB7XG4gICAgICB0aGlzLmRpc2FibGVkRnJvbUdyb3VwID0gcGFyZW50R3JvdXAuZGlzYWJsZWQ7XG4gICAgICB0aGlzLnVwZGF0ZUFyaWFEaXNhYmxlZCgpO1xuICAgIH1cbiAgICB0aGlzLmNsb3Nlc3QoJ3NiYi1hdXRvY29tcGxldGUtZ3JpZC1yb3cnKT8udG9nZ2xlQXR0cmlidXRlKFxuICAgICAgJ2RhdGEtZGlzYWJsZWQnLFxuICAgICAgdGhpcy5kaXNhYmxlZCB8fCB0aGlzLmRpc2FibGVkRnJvbUdyb3VwLFxuICAgICk7XG5cbiAgICB0aGlzLm5lZ2F0aXZlID0gISF0aGlzLmNsb3Nlc3QoYDppcyhzYmItYXV0b2NvbXBsZXRlLWdyaWRbbmVnYXRpdmVdLHNiYi1mb3JtLWZpZWxkW25lZ2F0aXZlXSlgKTtcbiAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1uZWdhdGl2ZScsIHRoaXMubmVnYXRpdmUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNlbGVjdEJ5Q2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLmRpc2FibGVkRnJvbUdyb3VwKSB7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNldFNlbGVjdGVkVmlhVXNlckludGVyYWN0aW9uKHRydWUpO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItYXV0b2NvbXBsZXRlLWdyaWQtb3B0aW9uJzogU2JiQXV0b2NvbXBsZXRlR3JpZE9wdGlvbkVsZW1lbnQ7XG4gIH1cblxuICBpbnRlcmZhY2UgR2xvYmFsRXZlbnRIYW5kbGVyc0V2ZW50TWFwIHtcbiAgICBhdXRvY29tcGxldGVPcHRpb25TZWxlY3Rpb25DaGFuZ2U6IEN1c3RvbUV2ZW50PHZvaWQ+O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVNPLE1BQU0sMkJBQW1DO0FBZ0JuQyxJQUFBLG1DQUFOLGNBQStDLHFCQUFxQjtBQUFBLEVBQXBFLGNBQUE7QUFBQSxVQUFBLEdBQUEsU0FBQTtBQU9MLFNBQVUsV0FBVztBQUdyQixTQUFVLGtCQUFnQyxJQUFJO0FBQUEsTUFDNUM7QUFBQSxNQUNBLGlDQUFpQyxPQUFPO0FBQUEsSUFBQTtBQUkxQyxTQUFVLGlCQUErQixJQUFJO0FBQUEsTUFDM0M7QUFBQSxNQUNBLGlDQUFpQyxPQUFPO0FBQUEsSUFBQTtBQUFBLEVBQzFDO0FBQUEsRUFFbUIseUJBQXlCLGVBQXVDOztBQUNqRixVQUFNLHlCQUF5QixhQUFhO0FBQ3ZDLHFCQUFBLFlBQUEsOEJBQVUsaUNBQVYsbUJBQXdDO0FBQUEsTUFDM0M7QUFBQSxNQUNBLEtBQUssWUFBWSxLQUFLO0FBQUE7QUFBQSxFQUUxQjtBQUFBLEVBRWdCLFdBQVcsbUJBQStDOztBQUN4RSxVQUFNLFdBQVcsaUJBQWlCO0FBQzlCLFFBQUEsa0JBQWtCLElBQUksVUFBVSxHQUFHO0FBQ2hDLHVCQUFBLFlBQUEsOEJBQVUsaUNBQVYsbUJBQXdDO0FBQUEsUUFDM0M7QUFBQSxRQUNBLEtBQUssWUFBWSxLQUFLO0FBQUE7QUFFeEIsV0FBSyxtQkFBbUI7QUFBQSxJQUMxQjtBQUFBLEVBQ0Y7QUFBQSxFQUVVLHlCQUErQjs7QUFDakMsVUFBQSxjQUFjLEtBQUssUUFBUSxnQ0FBZ0M7QUFDakUsUUFBSSxhQUFhO0FBQ2YsV0FBSyxvQkFBb0IsWUFBWTtBQUNyQyxXQUFLLG1CQUFtQjtBQUFBLElBQzFCO0FBQ0ssZUFBQSxRQUFRLDJCQUEyQixNQUFuQyxtQkFBc0M7QUFBQSxNQUN6QztBQUFBLE1BQ0EsS0FBSyxZQUFZLEtBQUs7QUFBQTtBQUd4QixTQUFLLFdBQVcsQ0FBQyxDQUFDLEtBQUssUUFBUSwrREFBK0Q7QUFDekYsU0FBQSxnQkFBZ0IsaUJBQWlCLEtBQUssUUFBUTtBQUFBLEVBQ3JEO0FBQUEsRUFFVSxjQUFjLE9BQXlCO0FBQzNDLFFBQUEsS0FBSyxZQUFZLEtBQUssbUJBQW1CO0FBQzNDLFlBQU0sZ0JBQWdCO0FBQ3RCO0FBQUEsSUFDRjtBQUVBLFNBQUssOEJBQThCLElBQUk7QUFBQSxFQUN6QztBQUNGO0FBL0RhLGlDQUNZLFNBQXlCO0FBRHJDLGlDQUVZLFNBQVM7QUFBQSxFQUM5QixpQkFBaUI7QUFBQSxFQUNqQixnQkFBZ0I7QUFDbEI7QUFMVyxtQ0FBTixnQkFBQTtBQUFBLEVBSk4sY0FBYyw4QkFBOEI7QUFBQSxFQUM1QyxlQUFlO0FBQUEsSUFDZCxNQUFNO0FBQUEsRUFBQSxDQUNQO0FBQUEsR0FDWSxnQ0FBQTsifQ==
@@ -0,0 +1,18 @@
1
+ import { CSSResultGroup, LitElement, TemplateResult } from 'lit';
2
+
3
+ /**
4
+ * The component is used as a wrapper for options and action buttons.
5
+ *
6
+ * @slot - Use the unnamed slot to add a `sbb-autocomplete-grid-option` and a `sbb-autocomplete-grid-cell` with one or more `sbb-autocomplete-grid-button`.
7
+ */
8
+ export declare class SbbAutocompleteGridRowElement extends LitElement {
9
+ static styles: CSSResultGroup;
10
+ connectedCallback(): void;
11
+ protected render(): TemplateResult;
12
+ }
13
+ declare global {
14
+ interface HTMLElementTagNameMap {
15
+ 'sbb-autocomplete-grid-row': SbbAutocompleteGridRowElement;
16
+ }
17
+ }
18
+ //# sourceMappingURL=autocomplete-grid-row.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autocomplete-grid-row.d.ts","sourceRoot":"","sources":["../../../../../src/elements/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAQ,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AASjF;;;;GAIG;AACH,qBAIa,6BAA8B,SAAQ,UAAU;IAC3D,OAAuB,MAAM,EAAE,cAAc,CAAS;IAEtC,iBAAiB,IAAI,IAAI;cAKtB,MAAM,IAAI,cAAc;CAO5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,2BAA2B,EAAE,6BAA6B,CAAC;KAC5D;CACF"}
@@ -0,0 +1,2 @@
1
+ export * from './autocomplete-grid-row/autocomplete-grid-row.js';
2
+ //# sourceMappingURL=autocomplete-grid-row.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autocomplete-grid-row.d.ts","sourceRoot":"","sources":["../../../../src/elements/autocomplete-grid/autocomplete-grid-row.ts"],"names":[],"mappings":"AAAA,cAAc,kDAAkD,CAAC"}
@@ -0,0 +1,143 @@
1
+ import { css, LitElement, html } from "lit";
2
+ import { customElement } from "lit/decorators.js";
3
+ import { hostAttributes } from "../core/decorators.js";
4
+ const style = css`/**
5
+ * Better font rendering (on OS X)
6
+ * http://maximilianhoffmann.com/posts/better-font-rendering-on-osx
7
+ *
8
+ * Usage:
9
+ *
10
+ * .var_dark_on_light {
11
+ * @include font-smoothing;
12
+ * }
13
+ * .var_light_on_dark {
14
+ * @include font-smoothing-reset;
15
+ * }
16
+ */
17
+ /** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
18
+ /*
19
+ * SBB table mixin
20
+ * Notes:
21
+ * We cannot use \`border-collapse\` because it is not compatible with the \`border-radius\` property.
22
+ * Therefore, we have to build the grid avoiding double borders.
23
+ */
24
+ *,
25
+ ::before,
26
+ ::after {
27
+ box-sizing: border-box;
28
+ }
29
+
30
+ :host {
31
+ --sbb-autocomplete-grid-row-color: var(--sbb-color-charcoal);
32
+ --sbb-autocomplete-grid-row-background-color: inherit;
33
+ --sbb-autocomplete-grid-row-background-color-hover: var(--sbb-color-milk);
34
+ --sbb-autocomplete-grid-row-background-color-active: var(--sbb-color-cloud);
35
+ --sbb-autocomplete-grid-row-disabled-border-color: var(--sbb-color-graphite);
36
+ --sbb-autocomplete-grid-row-disabled-background-color: var(--sbb-color-milk);
37
+ --sbb-autocomplete-grid-row-padding-inline-end: var(--sbb-spacing-responsive-xxxs);
38
+ --sbb-autocomplete-grid-row-justify-content: space-between;
39
+ --sbb-autocomplete-grid-row-min-height: var(--sbb-size-button-m-min-height);
40
+ --sbb-autocomplete-grid-row-cursor: pointer;
41
+ --sbb-autocomplete-grid-row-border-radius: var(--sbb-border-radius-4x);
42
+ --sbb-autocomplete-grid-row-icon-color: var(--sbb-color-metal);
43
+ display: block;
44
+ }
45
+
46
+ :host([data-negative]) {
47
+ --sbb-autocomplete-grid-row-color: var(--sbb-color-milk);
48
+ --sbb-autocomplete-grid-row-icon-color: var(--sbb-color-smoke);
49
+ --sbb-autocomplete-grid-row-background-color-hover: var(--sbb-color-charcoal);
50
+ --sbb-autocomplete-grid-row-background-color-active: var(--sbb-color-iron);
51
+ --sbb-autocomplete-grid-row-disabled-border-color: var(--sbb-color-smoke);
52
+ --sbb-autocomplete-grid-row-disabled-background-color: var(--sbb-color-charcoal);
53
+ --sbb-focus-outline-color: var(--sbb-focus-outline-color-dark);
54
+ }
55
+
56
+ @media (any-hover: hover) {
57
+ :host(:hover:not([data-disabled])) {
58
+ --sbb-autocomplete-grid-row-background-color: var(
59
+ --sbb-autocomplete-grid-row-background-color-hover
60
+ );
61
+ }
62
+ }
63
+
64
+ :host([data-disabled]) {
65
+ --sbb-autocomplete-grid-row-cursor: default;
66
+ }
67
+ @media (forced-colors: active) {
68
+ :host([data-disabled]) {
69
+ --sbb-autocomplete-grid-row-color: GrayText;
70
+ }
71
+ }
72
+
73
+ ::slotted(sbb-autocomplete-grid-option) {
74
+ flex: 1 1 auto;
75
+ margin-right: calc(-1 * var(--sbb-spacing-fixed-2x));
76
+ }
77
+
78
+ .sbb-autocomplete-grid-row {
79
+ display: flex;
80
+ align-items: center;
81
+ padding-inline-end: var(--sbb-autocomplete-grid-row-padding-inline-end);
82
+ justify-content: var(--sbb-autocomplete-grid-row-justify-content);
83
+ gap: var(--sbb-spacing-fixed-6x);
84
+ color: var(--sbb-autocomplete-grid-row-color);
85
+ background-color: var(--sbb-autocomplete-grid-row-background-color);
86
+ cursor: var(--sbb-autocomplete-grid-row-cursor);
87
+ -webkit-tap-highlight-color: transparent;
88
+ -webkit-text-fill-color: var(--sbb-autocomplete-grid-row-color);
89
+ }
90
+ :host([data-disabled]) .sbb-autocomplete-grid-row {
91
+ position: relative;
92
+ z-index: 0;
93
+ }
94
+ :host([data-disabled]) .sbb-autocomplete-grid-row::before {
95
+ content: "";
96
+ display: block;
97
+ position: absolute;
98
+ inset: 0.375rem;
99
+ border: var(--sbb-border-width-1x) dashed var(--sbb-autocomplete-grid-row-disabled-border-color);
100
+ border-radius: var(--sbb-border-radius-2x);
101
+ background-color: var(--sbb-autocomplete-grid-row-disabled-background-color);
102
+ z-index: -1;
103
+ }
104
+ @media (forced-colors: active) {
105
+ :host([data-disabled]) .sbb-autocomplete-grid-row::before {
106
+ border-color: GrayText;
107
+ }
108
+ }`;
109
+ var __defProp = Object.defineProperty;
110
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
111
+ var __decorateClass = (decorators, target, key, kind) => {
112
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
113
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
114
+ if (decorator = decorators[i])
115
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
116
+ if (kind && result) __defProp(target, key, result);
117
+ return result;
118
+ };
119
+ let autocompleteRowNextId = 0;
120
+ let SbbAutocompleteGridRowElement = class extends LitElement {
121
+ connectedCallback() {
122
+ super.connectedCallback();
123
+ this.id || (this.id = `sbb-autocomplete-grid-row-${++autocompleteRowNextId}`);
124
+ }
125
+ render() {
126
+ return html`
127
+ <span class="sbb-autocomplete-grid-row">
128
+ <slot></slot>
129
+ </span>
130
+ `;
131
+ }
132
+ };
133
+ SbbAutocompleteGridRowElement.styles = style;
134
+ SbbAutocompleteGridRowElement = __decorateClass([
135
+ customElement("sbb-autocomplete-grid-row"),
136
+ hostAttributes({
137
+ role: "row"
138
+ })
139
+ ], SbbAutocompleteGridRowElement);
140
+ export {
141
+ SbbAutocompleteGridRowElement
142
+ };
143
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWdyaWQtcm93LmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvYXV0b2NvbXBsZXRlLWdyaWQvYXV0b2NvbXBsZXRlLWdyaWQtcm93L2F1dG9jb21wbGV0ZS1ncmlkLXJvdy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIENTU1Jlc3VsdEdyb3VwLCBodG1sLCBMaXRFbGVtZW50LCB0eXBlIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IGhvc3RBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vYXV0b2NvbXBsZXRlLWdyaWQtcm93LnNjc3M/bGl0JmlubGluZSc7XG5cbmxldCBhdXRvY29tcGxldGVSb3dOZXh0SWQgPSAwO1xuXG4vKipcbiAqIFRoZSBjb21wb25lbnQgaXMgdXNlZCBhcyBhIHdyYXBwZXIgZm9yIG9wdGlvbnMgYW5kIGFjdGlvbiBidXR0b25zLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGEgYHNiYi1hdXRvY29tcGxldGUtZ3JpZC1vcHRpb25gIGFuZCBhIGBzYmItYXV0b2NvbXBsZXRlLWdyaWQtY2VsbGAgd2l0aCBvbmUgb3IgbW9yZSBgc2JiLWF1dG9jb21wbGV0ZS1ncmlkLWJ1dHRvbmAuXG4gKi9cbkBjdXN0b21FbGVtZW50KCdzYmItYXV0b2NvbXBsZXRlLWdyaWQtcm93JylcbkBob3N0QXR0cmlidXRlcyh7XG4gIHJvbGU6ICdyb3cnLFxufSlcbmV4cG9ydCBjbGFzcyBTYmJBdXRvY29tcGxldGVHcmlkUm93RWxlbWVudCBleHRlbmRzIExpdEVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLmlkIHx8PSBgc2JiLWF1dG9jb21wbGV0ZS1ncmlkLXJvdy0keysrYXV0b2NvbXBsZXRlUm93TmV4dElkfWA7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWF1dG9jb21wbGV0ZS1ncmlkLXJvd1wiPlxuICAgICAgICA8c2xvdD48L3Nsb3Q+XG4gICAgICA8L3NwYW4+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWF1dG9jb21wbGV0ZS1ncmlkLXJvdyc6IFNiYkF1dG9jb21wbGV0ZUdyaWRSb3dFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU9BLElBQUksd0JBQXdCO0FBV2YsSUFBQSxnQ0FBTixjQUE0QyxXQUFXO0FBQUEsRUFHNUMsb0JBQTBCO0FBQ3hDLFVBQU0sa0JBQWtCO0FBQ25CLFNBQUEsT0FBQSxLQUFBLEtBQU8sNkJBQTZCLEVBQUUscUJBQXFCO0FBQUEsRUFDbEU7QUFBQSxFQUVtQixTQUF5QjtBQUNuQyxXQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtUO0FBQ0Y7QUFmYSw4QkFDWSxTQUF5QjtBQURyQyxnQ0FBTixnQkFBQTtBQUFBLEVBSk4sY0FBYywyQkFBMkI7QUFBQSxFQUN6QyxlQUFlO0FBQUEsSUFDZCxNQUFNO0FBQUEsRUFBQSxDQUNQO0FBQUEsR0FDWSw2QkFBQTsifQ==
@@ -0,0 +1,2 @@
1
+ export * from './autocomplete-grid/autocomplete-grid.js';
2
+ //# sourceMappingURL=autocomplete-grid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autocomplete-grid.d.ts","sourceRoot":"","sources":["../../../../src/elements/autocomplete-grid/autocomplete-grid.ts"],"names":[],"mappings":"AAAA,cAAc,0CAA0C,CAAC"}
@@ -0,0 +1,185 @@
1
+ import { customElement } from "lit/decorators.js";
2
+ import { SbbAutocompleteBaseElement } from "../autocomplete.js";
3
+ import { getNextElementIndex } from "../core/a11y.js";
4
+ import { hostAttributes } from "../core/decorators.js";
5
+ import { getDocumentWritingMode, isSafari } from "../core/dom.js";
6
+ import { setAriaComboBoxAttributes } from "../core/overlay.js";
7
+ import { SbbAutocompleteGridOptionElement } from "./autocomplete-grid-option.js";
8
+ var __defProp = Object.defineProperty;
9
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
10
+ var __decorateClass = (decorators, target, key, kind) => {
11
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
12
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
13
+ if (decorator = decorators[i])
14
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
15
+ if (kind && result) __defProp(target, key, result);
16
+ return result;
17
+ };
18
+ let nextId = 0;
19
+ const ariaRoleOnHost = isSafari;
20
+ let SbbAutocompleteGridElement = class extends SbbAutocompleteBaseElement {
21
+ constructor() {
22
+ super(...arguments);
23
+ this.overlayId = `sbb-autocomplete-grid-${++nextId}`;
24
+ this.panelRole = "grid";
25
+ this._activeItemIndex = -1;
26
+ this._activeColumnIndex = 0;
27
+ }
28
+ get options() {
29
+ var _a;
30
+ return Array.from(((_a = this.querySelectorAll) == null ? void 0 : _a.call(this, "sbb-autocomplete-grid-option")) ?? []);
31
+ }
32
+ get _row() {
33
+ var _a;
34
+ return Array.from((_a = this.querySelectorAll) == null ? void 0 : _a.call(this, "sbb-autocomplete-grid-row")).filter(
35
+ (row) => !row.hasAttribute("data-disabled")
36
+ ) ?? [];
37
+ }
38
+ onOptionClick(event) {
39
+ if (event.target.localName !== "sbb-autocomplete-grid-option" || event.target.disabled) {
40
+ return;
41
+ }
42
+ this.close();
43
+ }
44
+ connectedCallback() {
45
+ super.connectedCallback();
46
+ const signal = this.abort.signal;
47
+ this.addEventListener(
48
+ "autocompleteOptionSelectionChange",
49
+ (e) => this.onOptionSelected(e),
50
+ { signal }
51
+ );
52
+ }
53
+ syncNegative() {
54
+ var _a, _b;
55
+ (_a = this.querySelectorAll) == null ? void 0 : _a.call(
56
+ this,
57
+ "sbb-divider, sbb-autocomplete-grid-button"
58
+ ).forEach((e) => e.negative = this.negative);
59
+ (_b = this.querySelectorAll) == null ? void 0 : _b.call(
60
+ this,
61
+ "sbb-autocomplete-grid-row, sbb-autocomplete-grid-option, sbb-autocomplete-grid-optgroup"
62
+ ).forEach((element) => element.toggleAttribute("data-negative", this.negative));
63
+ }
64
+ openedPanelKeyboardInteraction(event) {
65
+ if (this.state !== "opened") {
66
+ return;
67
+ }
68
+ switch (event.key) {
69
+ case "Escape":
70
+ case "Tab":
71
+ this.close();
72
+ break;
73
+ case "Enter":
74
+ this.selectByKeyboard();
75
+ break;
76
+ case "ArrowDown":
77
+ case "ArrowUp":
78
+ this.setNextActiveOption(event);
79
+ break;
80
+ case "ArrowRight":
81
+ case "ArrowLeft":
82
+ this._setNextHorizontalActiveElement(event);
83
+ break;
84
+ }
85
+ }
86
+ /**
87
+ * Select an element on 'Enter' keypress.
88
+ *
89
+ * Due to keyboard navigation code, the `_activeColumnIndex` is zero when an option is 'focused'
90
+ * and greater than zero when a button is 'focused', so asking for `querySelectorAll(...)[this._activeColumnIndex]`
91
+ * would always return a `SbbAutocompleteGridButtonElement`.
92
+ */
93
+ selectByKeyboard() {
94
+ var _a;
95
+ if (this._activeColumnIndex !== 0) {
96
+ this._row[this._activeItemIndex].querySelectorAll(
97
+ "sbb-autocomplete-grid-option, sbb-autocomplete-grid-button"
98
+ )[this._activeColumnIndex].click();
99
+ } else {
100
+ (_a = this.options[this._activeItemIndex]) == null ? void 0 : _a.setSelectedViaUserInteraction(true);
101
+ }
102
+ }
103
+ setNextActiveOption(event) {
104
+ var _a;
105
+ const filteredOptions = this.options.filter(
106
+ (opt) => !opt.disabled && !opt.hasAttribute("data-group-disabled")
107
+ );
108
+ const next = getNextElementIndex(event, this._activeItemIndex, filteredOptions.length);
109
+ if (isNaN(next)) {
110
+ return;
111
+ }
112
+ const nextActiveOption = filteredOptions[next];
113
+ nextActiveOption.active = true;
114
+ (_a = this.triggerElement) == null ? void 0 : _a.setAttribute("aria-activedescendant", nextActiveOption.id);
115
+ nextActiveOption.scrollIntoView({ block: "nearest" });
116
+ if (this._activeColumnIndex !== 0) {
117
+ this._row[this._activeItemIndex].querySelectorAll("sbb-autocomplete-grid-button").forEach((e) => e.toggleAttribute("data-focus-visible", false));
118
+ } else {
119
+ const lastActiveOption = filteredOptions[this._activeItemIndex];
120
+ if (lastActiveOption) {
121
+ lastActiveOption.active = false;
122
+ }
123
+ }
124
+ this._activeItemIndex = next;
125
+ this._activeColumnIndex = 0;
126
+ }
127
+ _setNextHorizontalActiveElement(event) {
128
+ var _a;
129
+ if (this._activeItemIndex < 0) {
130
+ return;
131
+ }
132
+ const elementsInRow = Array.from(
133
+ this._row[this._activeItemIndex].querySelectorAll("sbb-autocomplete-grid-option, sbb-autocomplete-grid-button")
134
+ ).filter((el) => !el.disabled && !el.hasAttribute("data-group-disabled"));
135
+ const next = getNextElementIndex(event, this._activeColumnIndex, elementsInRow.length);
136
+ if (isNaN(next)) {
137
+ return;
138
+ }
139
+ const nextElement = elementsInRow[next];
140
+ if (nextElement instanceof SbbAutocompleteGridOptionElement) {
141
+ nextElement.active = true;
142
+ } else {
143
+ nextElement.toggleAttribute("data-focus-visible", true);
144
+ }
145
+ const lastActiveElement = elementsInRow[this._activeColumnIndex];
146
+ if (lastActiveElement instanceof SbbAutocompleteGridOptionElement) {
147
+ lastActiveElement.active = false;
148
+ } else {
149
+ lastActiveElement.toggleAttribute("data-focus-visible", false);
150
+ }
151
+ (_a = this.triggerElement) == null ? void 0 : _a.setAttribute("aria-activedescendant", nextElement.id);
152
+ nextElement.scrollIntoView({ block: "nearest" });
153
+ this._activeColumnIndex = next;
154
+ }
155
+ resetActiveElement() {
156
+ var _a;
157
+ if (this._activeColumnIndex !== 0) {
158
+ this._row[this._activeItemIndex].querySelectorAll("sbb-autocomplete-grid-button").forEach((e) => e.toggleAttribute("data-focus-visible", false));
159
+ } else {
160
+ const activeElement = this.options.filter(
161
+ (opt) => !opt.disabled && !opt.hasAttribute("data-group-disabled")
162
+ )[this._activeItemIndex];
163
+ if (activeElement) {
164
+ activeElement.active = false;
165
+ }
166
+ }
167
+ this._activeItemIndex = -1;
168
+ this._activeColumnIndex = 0;
169
+ (_a = this.triggerElement) == null ? void 0 : _a.removeAttribute("aria-activedescendant");
170
+ }
171
+ setTriggerAttributes(element) {
172
+ setAriaComboBoxAttributes(element, ariaRoleOnHost ? this.id : this.overlayId, false, "grid");
173
+ }
174
+ };
175
+ SbbAutocompleteGridElement = __decorateClass([
176
+ customElement("sbb-autocomplete-grid"),
177
+ hostAttributes({
178
+ dir: getDocumentWritingMode(),
179
+ role: ariaRoleOnHost ? "grid" : null
180
+ })
181
+ ], SbbAutocompleteGridElement);
182
+ export {
183
+ SbbAutocompleteGridElement
184
+ };
185
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWdyaWQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9hdXRvY29tcGxldGUtZ3JpZC9hdXRvY29tcGxldGUtZ3JpZC9hdXRvY29tcGxldGUtZ3JpZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjdXN0b21FbGVtZW50IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBTYmJBdXRvY29tcGxldGVCYXNlRWxlbWVudCB9IGZyb20gJy4uLy4uL2F1dG9jb21wbGV0ZS5qcyc7XG5pbXBvcnQgeyBnZXROZXh0RWxlbWVudEluZGV4IH0gZnJvbSAnLi4vLi4vY29yZS9hMTF5LmpzJztcbmltcG9ydCB7IGhvc3RBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGdldERvY3VtZW50V3JpdGluZ01vZGUsIGlzU2FmYXJpIH0gZnJvbSAnLi4vLi4vY29yZS9kb20uanMnO1xuaW1wb3J0IHsgc2V0QXJpYUNvbWJvQm94QXR0cmlidXRlcyB9IGZyb20gJy4uLy4uL2NvcmUvb3ZlcmxheS5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYkRpdmlkZXJFbGVtZW50IH0gZnJvbSAnLi4vLi4vZGl2aWRlci5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYk9wdEdyb3VwRWxlbWVudCwgU2JiT3B0aW9uRWxlbWVudCB9IGZyb20gJy4uLy4uL29wdGlvbi5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYkF1dG9jb21wbGV0ZUdyaWRCdXR0b25FbGVtZW50IH0gZnJvbSAnLi4vYXV0b2NvbXBsZXRlLWdyaWQtYnV0dG9uLmpzJztcbmltcG9ydCB7IFNiYkF1dG9jb21wbGV0ZUdyaWRPcHRpb25FbGVtZW50IH0gZnJvbSAnLi4vYXV0b2NvbXBsZXRlLWdyaWQtb3B0aW9uLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiQXV0b2NvbXBsZXRlR3JpZFJvd0VsZW1lbnQgfSBmcm9tICcuLi9hdXRvY29tcGxldGUtZ3JpZC1yb3cuanMnO1xuXG5sZXQgbmV4dElkID0gMDtcblxuLyoqXG4gKiBPbiBTYWZhcmksIHRoZSBhcmlhIHJvbGUgJ2xpc3Rib3gnIG11c3QgYmUgb24gdGhlIGhvc3QgZWxlbWVudCwgb3IgZWxzZSBWb2ljZU92ZXIgd29uJ3Qgd29yayBhdCBhbGwuXG4gKiBPbiB0aGUgb3RoZXIgaGFuZCwgSkFXUyBhbmQgTlZEQSBuZWVkIHRoZSByb2xlIHRvIGJlIFwiY2xvc2VyXCIgdG8gdGhlIG9wdGlvbnMsIG9yIGVsc2Ugb3B0Z3JvdXBzIHdvbid0IHdvcmsuXG4gKi9cbmNvbnN0IGFyaWFSb2xlT25Ib3N0ID0gaXNTYWZhcmk7XG5cbi8qKlxuICogQ29tYmluZWQgd2l0aCBhIG5hdGl2ZSBpbnB1dCwgaXQgZGlzcGxheXMgYSBwYW5lbCB3aXRoIGEgbGlzdCBvZiBhdmFpbGFibGUgb3B0aW9ucyB3aXRoIGNvbm5lY3RlZCBidXR0b25zLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGBzYmItYXV0b2NvbXBsZXRlLWdyaWQtcm93YCBvciBgc2JiLWF1dG9jb21wbGV0ZS1ncmlkLW9wdGdyb3VwYCBlbGVtZW50cyB0byB0aGUgYHNiYi1hdXRvY29tcGxldGUtZ3JpZGAuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSB3aWxsT3BlbiAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLWF1dG9jb21wbGV0ZS1ncmlkYCBzdGFydHMgdGhlIG9wZW5pbmcgdHJhbnNpdGlvbi4gQ2FuIGJlIGNhbmNlbGVkLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gZGlkT3BlbiAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLWF1dG9jb21wbGV0ZS1ncmlkYCBpcyBvcGVuZWQuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSB3aWxsQ2xvc2UgLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1hdXRvY29tcGxldGUtZ3JpZGAgYmVnaW5zIHRoZSBjbG9zaW5nIHRyYW5zaXRpb24uIENhbiBiZSBjYW5jZWxlZC5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IGRpZENsb3NlIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItYXV0b2NvbXBsZXRlLWdyaWRgIGlzIGNsb3NlZC5cbiAqIEBjc3Nwcm9wIFstLXNiYi1hdXRvY29tcGxldGUtei1pbmRleD12YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpXSAtIFRvIHNwZWNpZnkgYSBjdXN0b20gc3RhY2sgb3JkZXIsXG4gKiB0aGUgYHotaW5kZXhgIGNhbiBiZSBvdmVycmlkZGVuIGJ5IGRlZmluaW5nIHRoaXMgQ1NTIHZhcmlhYmxlLiBUaGUgZGVmYXVsdCBgei1pbmRleGAgb2YgdGhlXG4gKiBjb21wb25lbnQgaXMgc2V0IHRvIGB2YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpYCB3aXRoIGEgdmFsdWUgb2YgYDEwMDBgLlxuICovXG5AY3VzdG9tRWxlbWVudCgnc2JiLWF1dG9jb21wbGV0ZS1ncmlkJylcbkBob3N0QXR0cmlidXRlcyh7XG4gIGRpcjogZ2V0RG9jdW1lbnRXcml0aW5nTW9kZSgpLFxuICByb2xlOiBhcmlhUm9sZU9uSG9zdCA/ICdncmlkJyA6IG51bGwsXG59KVxuZXhwb3J0IGNsYXNzIFNiYkF1dG9jb21wbGV0ZUdyaWRFbGVtZW50IGV4dGVuZHMgU2JiQXV0b2NvbXBsZXRlQmFzZUVsZW1lbnQge1xuICBwcm90ZWN0ZWQgb3ZlcmxheUlkID0gYHNiYi1hdXRvY29tcGxldGUtZ3JpZC0keysrbmV4dElkfWA7XG4gIHByb3RlY3RlZCBwYW5lbFJvbGUgPSAnZ3JpZCc7XG4gIHByaXZhdGUgX2FjdGl2ZUl0ZW1JbmRleCA9IC0xO1xuICBwcml2YXRlIF9hY3RpdmVDb2x1bW5JbmRleCA9IDA7XG5cbiAgcHJvdGVjdGVkIGdldCBvcHRpb25zKCk6IFNiYkF1dG9jb21wbGV0ZUdyaWRPcHRpb25FbGVtZW50W10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMucXVlcnlTZWxlY3RvckFsbD8uKCdzYmItYXV0b2NvbXBsZXRlLWdyaWQtb3B0aW9uJykgPz8gW10pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgX3JvdygpOiBTYmJBdXRvY29tcGxldGVHcmlkUm93RWxlbWVudFtdIHtcbiAgICByZXR1cm4gKFxuICAgICAgQXJyYXkuZnJvbSh0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/Lignc2JiLWF1dG9jb21wbGV0ZS1ncmlkLXJvdycpKS5maWx0ZXIoXG4gICAgICAgIChyb3cpID0+ICFyb3cuaGFzQXR0cmlidXRlKCdkYXRhLWRpc2FibGVkJyksXG4gICAgICApID8/IFtdXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbk9wdGlvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgKGV2ZW50LnRhcmdldCBhcyBFbGVtZW50KS5sb2NhbE5hbWUgIT09ICdzYmItYXV0b2NvbXBsZXRlLWdyaWQtb3B0aW9uJyB8fFxuICAgICAgKGV2ZW50LnRhcmdldCBhcyBTYmJPcHRpb25FbGVtZW50KS5kaXNhYmxlZFxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICBjb25zdCBzaWduYWwgPSB0aGlzLmFib3J0LnNpZ25hbDtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAnYXV0b2NvbXBsZXRlT3B0aW9uU2VsZWN0aW9uQ2hhbmdlJyxcbiAgICAgIChlOiBDdXN0b21FdmVudDx2b2lkPikgPT4gdGhpcy5vbk9wdGlvblNlbGVjdGVkKGUpLFxuICAgICAgeyBzaWduYWwgfSxcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIHN5bmNOZWdhdGl2ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/LjxTYmJEaXZpZGVyRWxlbWVudCB8IFNiYkF1dG9jb21wbGV0ZUdyaWRCdXR0b25FbGVtZW50PihcbiAgICAgICdzYmItZGl2aWRlciwgc2JiLWF1dG9jb21wbGV0ZS1ncmlkLWJ1dHRvbicsXG4gICAgKS5mb3JFYWNoKChlKSA9PiAoZS5uZWdhdGl2ZSA9IHRoaXMubmVnYXRpdmUpKTtcblxuICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbD8uPFNiYkF1dG9jb21wbGV0ZUdyaWRPcHRpb25FbGVtZW50IHwgU2JiT3B0R3JvdXBFbGVtZW50PihcbiAgICAgICdzYmItYXV0b2NvbXBsZXRlLWdyaWQtcm93LCBzYmItYXV0b2NvbXBsZXRlLWdyaWQtb3B0aW9uLCBzYmItYXV0b2NvbXBsZXRlLWdyaWQtb3B0Z3JvdXAnLFxuICAgICkuZm9yRWFjaCgoZWxlbWVudCkgPT4gZWxlbWVudC50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtbmVnYXRpdmUnLCB0aGlzLm5lZ2F0aXZlKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3BlbmVkUGFuZWxLZXlib2FyZEludGVyYWN0aW9uKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdvcGVuZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ0VzY2FwZSc6XG4gICAgICBjYXNlICdUYWInOlxuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdFbnRlcic6XG4gICAgICAgIHRoaXMuc2VsZWN0QnlLZXlib2FyZCgpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgICB0aGlzLnNldE5leHRBY3RpdmVPcHRpb24oZXZlbnQpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnQXJyb3dSaWdodCc6XG4gICAgICBjYXNlICdBcnJvd0xlZnQnOlxuICAgICAgICB0aGlzLl9zZXROZXh0SG9yaXpvbnRhbEFjdGl2ZUVsZW1lbnQoZXZlbnQpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2VsZWN0IGFuIGVsZW1lbnQgb24gJ0VudGVyJyBrZXlwcmVzcy5cbiAgICpcbiAgICogRHVlIHRvIGtleWJvYXJkIG5hdmlnYXRpb24gY29kZSwgdGhlIGBfYWN0aXZlQ29sdW1uSW5kZXhgIGlzIHplcm8gd2hlbiBhbiBvcHRpb24gaXMgJ2ZvY3VzZWQnXG4gICAqIGFuZCBncmVhdGVyIHRoYW4gemVybyB3aGVuIGEgYnV0dG9uIGlzICdmb2N1c2VkJywgc28gYXNraW5nIGZvciBgcXVlcnlTZWxlY3RvckFsbCguLi4pW3RoaXMuX2FjdGl2ZUNvbHVtbkluZGV4XWBcbiAgICogd291bGQgYWx3YXlzIHJldHVybiBhIGBTYmJBdXRvY29tcGxldGVHcmlkQnV0dG9uRWxlbWVudGAuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2VsZWN0QnlLZXlib2FyZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fYWN0aXZlQ29sdW1uSW5kZXggIT09IDApIHtcbiAgICAgIChcbiAgICAgICAgdGhpcy5fcm93W3RoaXMuX2FjdGl2ZUl0ZW1JbmRleF0ucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgICAnc2JiLWF1dG9jb21wbGV0ZS1ncmlkLW9wdGlvbiwgc2JiLWF1dG9jb21wbGV0ZS1ncmlkLWJ1dHRvbicsXG4gICAgICAgIClbdGhpcy5fYWN0aXZlQ29sdW1uSW5kZXhdIGFzIFNiYkF1dG9jb21wbGV0ZUdyaWRCdXR0b25FbGVtZW50XG4gICAgICApLmNsaWNrKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3B0aW9uc1t0aGlzLl9hY3RpdmVJdGVtSW5kZXhdPy5zZXRTZWxlY3RlZFZpYVVzZXJJbnRlcmFjdGlvbih0cnVlKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0TmV4dEFjdGl2ZU9wdGlvbihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGZpbHRlcmVkT3B0aW9ucyA9IHRoaXMub3B0aW9ucy5maWx0ZXIoXG4gICAgICAob3B0KSA9PiAhb3B0LmRpc2FibGVkICYmICFvcHQuaGFzQXR0cmlidXRlKCdkYXRhLWdyb3VwLWRpc2FibGVkJyksXG4gICAgKTtcblxuICAgIC8vIEdldCBhbmQgYWN0aXZhdGUgdGhlIG5leHQgYWN0aXZlIG9wdGlvblxuICAgIGNvbnN0IG5leHQgPSBnZXROZXh0RWxlbWVudEluZGV4KGV2ZW50LCB0aGlzLl9hY3RpdmVJdGVtSW5kZXgsIGZpbHRlcmVkT3B0aW9ucy5sZW5ndGgpO1xuICAgIGlmIChpc05hTihuZXh0KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBuZXh0QWN0aXZlT3B0aW9uID0gZmlsdGVyZWRPcHRpb25zW25leHRdO1xuICAgIG5leHRBY3RpdmVPcHRpb24uYWN0aXZlID0gdHJ1ZTtcbiAgICB0aGlzLnRyaWdnZXJFbGVtZW50Py5zZXRBdHRyaWJ1dGUoJ2FyaWEtYWN0aXZlZGVzY2VuZGFudCcsIG5leHRBY3RpdmVPcHRpb24uaWQpO1xuICAgIG5leHRBY3RpdmVPcHRpb24uc2Nyb2xsSW50b1ZpZXcoeyBibG9jazogJ25lYXJlc3QnIH0pO1xuXG4gICAgLy8gUmVzZXQgdGhlIHByZXZpb3VzIGFjdGl2ZSBvcHRpb24vYnV0dG9uXG4gICAgaWYgKHRoaXMuX2FjdGl2ZUNvbHVtbkluZGV4ICE9PSAwKSB7XG4gICAgICB0aGlzLl9yb3dbdGhpcy5fYWN0aXZlSXRlbUluZGV4XVxuICAgICAgICAucXVlcnlTZWxlY3RvckFsbCgnc2JiLWF1dG9jb21wbGV0ZS1ncmlkLWJ1dHRvbicpXG4gICAgICAgIC5mb3JFYWNoKChlKSA9PiBlLnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1mb2N1cy12aXNpYmxlJywgZmFsc2UpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbGFzdEFjdGl2ZU9wdGlvbiA9IGZpbHRlcmVkT3B0aW9uc1t0aGlzLl9hY3RpdmVJdGVtSW5kZXhdO1xuICAgICAgaWYgKGxhc3RBY3RpdmVPcHRpb24pIHtcbiAgICAgICAgbGFzdEFjdGl2ZU9wdGlvbi5hY3RpdmUgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5fYWN0aXZlSXRlbUluZGV4ID0gbmV4dDtcbiAgICB0aGlzLl9hY3RpdmVDb2x1bW5JbmRleCA9IDA7XG4gIH1cblxuICBwcml2YXRlIF9zZXROZXh0SG9yaXpvbnRhbEFjdGl2ZUVsZW1lbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fYWN0aXZlSXRlbUluZGV4IDwgMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnRzSW5Sb3c6IChTYmJBdXRvY29tcGxldGVHcmlkT3B0aW9uRWxlbWVudCB8IFNiYkF1dG9jb21wbGV0ZUdyaWRCdXR0b25FbGVtZW50KVtdID1cbiAgICAgIEFycmF5LmZyb20oXG4gICAgICAgIHRoaXMuX3Jvd1t0aGlzLl9hY3RpdmVJdGVtSW5kZXhdLnF1ZXJ5U2VsZWN0b3JBbGw8XG4gICAgICAgICAgU2JiQXV0b2NvbXBsZXRlR3JpZE9wdGlvbkVsZW1lbnQgfCBTYmJBdXRvY29tcGxldGVHcmlkQnV0dG9uRWxlbWVudFxuICAgICAgICA+KCdzYmItYXV0b2NvbXBsZXRlLWdyaWQtb3B0aW9uLCBzYmItYXV0b2NvbXBsZXRlLWdyaWQtYnV0dG9uJyksXG4gICAgICApLmZpbHRlcigoZWwpID0+ICFlbC5kaXNhYmxlZCAmJiAhZWwuaGFzQXR0cmlidXRlKCdkYXRhLWdyb3VwLWRpc2FibGVkJykpO1xuICAgIGNvbnN0IG5leHQ6IG51bWJlciA9IGdldE5leHRFbGVtZW50SW5kZXgoZXZlbnQsIHRoaXMuX2FjdGl2ZUNvbHVtbkluZGV4LCBlbGVtZW50c0luUm93Lmxlbmd0aCk7XG4gICAgaWYgKGlzTmFOKG5leHQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG5leHRFbGVtZW50OiBTYmJBdXRvY29tcGxldGVHcmlkT3B0aW9uRWxlbWVudCB8IFNiYkF1dG9jb21wbGV0ZUdyaWRCdXR0b25FbGVtZW50ID1cbiAgICAgIGVsZW1lbnRzSW5Sb3dbbmV4dF07XG4gICAgaWYgKG5leHRFbGVtZW50IGluc3RhbmNlb2YgU2JiQXV0b2NvbXBsZXRlR3JpZE9wdGlvbkVsZW1lbnQpIHtcbiAgICAgIG5leHRFbGVtZW50LmFjdGl2ZSA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5leHRFbGVtZW50LnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1mb2N1cy12aXNpYmxlJywgdHJ1ZSk7XG4gICAgfVxuXG4gICAgY29uc3QgbGFzdEFjdGl2ZUVsZW1lbnQ6IFNiYkF1dG9jb21wbGV0ZUdyaWRPcHRpb25FbGVtZW50IHwgU2JiQXV0b2NvbXBsZXRlR3JpZEJ1dHRvbkVsZW1lbnQgPVxuICAgICAgZWxlbWVudHNJblJvd1t0aGlzLl9hY3RpdmVDb2x1bW5JbmRleF07XG4gICAgaWYgKGxhc3RBY3RpdmVFbGVtZW50IGluc3RhbmNlb2YgU2JiQXV0b2NvbXBsZXRlR3JpZE9wdGlvbkVsZW1lbnQpIHtcbiAgICAgIGxhc3RBY3RpdmVFbGVtZW50LmFjdGl2ZSA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBsYXN0QWN0aXZlRWxlbWVudC50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtZm9jdXMtdmlzaWJsZScsIGZhbHNlKTtcbiAgICB9XG4gICAgdGhpcy50cmlnZ2VyRWxlbWVudD8uc2V0QXR0cmlidXRlKCdhcmlhLWFjdGl2ZWRlc2NlbmRhbnQnLCBuZXh0RWxlbWVudC5pZCk7XG4gICAgbmV4dEVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoeyBibG9jazogJ25lYXJlc3QnIH0pO1xuICAgIHRoaXMuX2FjdGl2ZUNvbHVtbkluZGV4ID0gbmV4dDtcbiAgfVxuXG4gIHByb3RlY3RlZCByZXNldEFjdGl2ZUVsZW1lbnQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2FjdGl2ZUNvbHVtbkluZGV4ICE9PSAwKSB7XG4gICAgICB0aGlzLl9yb3dbdGhpcy5fYWN0aXZlSXRlbUluZGV4XVxuICAgICAgICAucXVlcnlTZWxlY3RvckFsbCgnc2JiLWF1dG9jb21wbGV0ZS1ncmlkLWJ1dHRvbicpXG4gICAgICAgIC5mb3JFYWNoKChlKSA9PiBlLnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1mb2N1cy12aXNpYmxlJywgZmFsc2UpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgYWN0aXZlRWxlbWVudCA9IHRoaXMub3B0aW9ucy5maWx0ZXIoXG4gICAgICAgIChvcHQpID0+ICFvcHQuZGlzYWJsZWQgJiYgIW9wdC5oYXNBdHRyaWJ1dGUoJ2RhdGEtZ3JvdXAtZGlzYWJsZWQnKSxcbiAgICAgIClbdGhpcy5fYWN0aXZlSXRlbUluZGV4XTtcbiAgICAgIGlmIChhY3RpdmVFbGVtZW50KSB7XG4gICAgICAgIGFjdGl2ZUVsZW1lbnQuYWN0aXZlID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuX2FjdGl2ZUl0ZW1JbmRleCA9IC0xO1xuICAgIHRoaXMuX2FjdGl2ZUNvbHVtbkluZGV4ID0gMDtcbiAgICB0aGlzLnRyaWdnZXJFbGVtZW50Py5yZW1vdmVBdHRyaWJ1dGUoJ2FyaWEtYWN0aXZlZGVzY2VuZGFudCcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldFRyaWdnZXJBdHRyaWJ1dGVzKGVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQpOiB2b2lkIHtcbiAgICBzZXRBcmlhQ29tYm9Cb3hBdHRyaWJ1dGVzKGVsZW1lbnQsIGFyaWFSb2xlT25Ib3N0ID8gdGhpcy5pZCA6IHRoaXMub3ZlcmxheUlkLCBmYWxzZSwgJ2dyaWQnKTtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWF1dG9jb21wbGV0ZS1ncmlkJzogU2JiQXV0b2NvbXBsZXRlR3JpZEVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQWFBLElBQUksU0FBUztBQU1iLE1BQU0saUJBQWlCO0FBbUJWLElBQUEsNkJBQU4sY0FBeUMsMkJBQTJCO0FBQUEsRUFBcEUsY0FBQTtBQUFBLFVBQUEsR0FBQSxTQUFBO0FBQ0ssU0FBQSxZQUFZLHlCQUF5QixFQUFFLE1BQU07QUFDdkQsU0FBVSxZQUFZO0FBQ3RCLFNBQVEsbUJBQW1CO0FBQzNCLFNBQVEscUJBQXFCO0FBQUEsRUFBQTtBQUFBLEVBRTdCLElBQWMsVUFBOEM7O0FBQzFELFdBQU8sTUFBTSxPQUFLLFVBQUsscUJBQUwsOEJBQXdCLG9DQUFtQyxDQUFBLENBQUU7QUFBQSxFQUNqRjtBQUFBLEVBRUEsSUFBWSxPQUF3Qzs7QUFDbEQsV0FDRSxNQUFNLE1BQUssVUFBSyxxQkFBTCw4QkFBd0IsNEJBQTRCLEVBQUU7QUFBQSxNQUMvRCxDQUFDLFFBQVEsQ0FBQyxJQUFJLGFBQWEsZUFBZTtBQUFBLFNBQ3ZDO0VBRVQ7QUFBQSxFQUVVLGNBQWMsT0FBeUI7QUFDL0MsUUFDRyxNQUFNLE9BQW1CLGNBQWMsa0NBQ3ZDLE1BQU0sT0FBNEIsVUFDbkM7QUFDQTtBQUFBLElBQ0Y7QUFDQSxTQUFLLE1BQU07QUFBQSxFQUNiO0FBQUEsRUFFZ0Isb0JBQTBCO0FBQ3hDLFVBQU0sa0JBQWtCO0FBQ2xCLFVBQUEsU0FBUyxLQUFLLE1BQU07QUFDckIsU0FBQTtBQUFBLE1BQ0g7QUFBQSxNQUNBLENBQUMsTUFBeUIsS0FBSyxpQkFBaUIsQ0FBQztBQUFBLE1BQ2pELEVBQUUsT0FBTztBQUFBLElBQUE7QUFBQSxFQUViO0FBQUEsRUFFVSxlQUFxQjs7QUFDeEIsZUFBQSxxQkFBQTtBQUFBO0FBQUEsTUFDSDtBQUFBLE1BQ0EsUUFBUSxDQUFDLE1BQU8sRUFBRSxXQUFX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
@@ -0,0 +1,7 @@
1
+ export * from './autocomplete-grid/autocomplete-grid.js';
2
+ export * from './autocomplete-grid/autocomplete-grid-button.js';
3
+ export * from './autocomplete-grid/autocomplete-grid-cell.js';
4
+ export * from './autocomplete-grid/autocomplete-grid-optgroup.js';
5
+ export * from './autocomplete-grid/autocomplete-grid-option.js';
6
+ export * from './autocomplete-grid/autocomplete-grid-row.js';
7
+ //# sourceMappingURL=autocomplete-grid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autocomplete-grid.d.ts","sourceRoot":"","sources":["../../../src/elements/autocomplete-grid.ts"],"names":[],"mappings":"AAAA,cAAc,0CAA0C,CAAC;AACzD,cAAc,iDAAiD,CAAC;AAChE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,mDAAmD,CAAC;AAClE,cAAc,iDAAiD,CAAC;AAChE,cAAc,8CAA8C,CAAC"}
@@ -0,0 +1,7 @@
1
+ export * from "./autocomplete-grid/autocomplete-grid.js";
2
+ export * from "./autocomplete-grid/autocomplete-grid-button.js";
3
+ export * from "./autocomplete-grid/autocomplete-grid-cell.js";
4
+ export * from "./autocomplete-grid/autocomplete-grid-optgroup.js";
5
+ export * from "./autocomplete-grid/autocomplete-grid-option.js";
6
+ export * from "./autocomplete-grid/autocomplete-grid-row.js";
7
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWdyaWQuanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7In0=
@@ -1,2 +1,3 @@
1
1
  export * from './autocomplete/autocomplete.js';
2
+ export * from './autocomplete/autocomplete-base-element.js';
2
3
  //# sourceMappingURL=autocomplete.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"autocomplete.d.ts","sourceRoot":"","sources":["../../../src/elements/autocomplete.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC"}
1
+ {"version":3,"file":"autocomplete.d.ts","sourceRoot":"","sources":["../../../src/elements/autocomplete.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6CAA6C,CAAC"}