@baloise/ds-core 16.0.3-nightly.20240417 → 16.1.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 (363) hide show
  1. package/components/all.d.ts +6 -2
  2. package/components/all.js +9 -3
  3. package/components/aria.js +3 -0
  4. package/components/bal-app.js +85 -1
  5. package/components/bal-checkbox-button.js +1 -1
  6. package/components/bal-checkbox2.js +3 -2
  7. package/components/bal-close2.js +1 -1
  8. package/components/bal-date-calendar2.js +1 -1
  9. package/components/bal-dropdown.d.ts +11 -0
  10. package/components/bal-dropdown.js +710 -0
  11. package/components/bal-field.js +12 -2
  12. package/components/bal-footer.js +1 -1
  13. package/components/bal-option-list.d.ts +11 -0
  14. package/components/bal-option-list.js +459 -0
  15. package/components/{bal-doc-app.d.ts → bal-option.d.ts} +4 -4
  16. package/components/bal-option.js +171 -0
  17. package/components/bal-popup.js +1 -1
  18. package/components/bal-radio2.js +1 -1
  19. package/components/bal-select2.js +3 -3
  20. package/components/bal-spinner2.js +54 -6
  21. package/components/bal-tag2.js +1 -1
  22. package/components/config.default.js +1 -0
  23. package/components/index.esm.js +1 -1
  24. package/components/index.js +290 -5
  25. package/components/option.js +46 -0
  26. package/components/tokens.esm.js +1 -1
  27. package/dist/baloise-design-system/baloise-design-system.esm.js +1 -1
  28. package/dist/baloise-design-system/baloise-design-system.js +1 -1
  29. package/dist/baloise-design-system/index.esm.js +1 -1
  30. package/dist/baloise-design-system/p-013b4c72.system.js +1 -0
  31. package/dist/baloise-design-system/p-0639833837.system.entry.js +1 -0
  32. package/dist/baloise-design-system/{p-0cd70cd814.system.entry.js → p-06e9a468fc.system.entry.js} +1 -1
  33. package/dist/baloise-design-system/p-0793c0159f.system.entry.js +1 -0
  34. package/dist/baloise-design-system/{p-45de4b9eab.system.entry.js → p-0fed7a5f26.system.entry.js} +1 -1
  35. package/dist/baloise-design-system/{p-f2de9458ad.entry.js → p-10b8686d91.entry.js} +1 -1
  36. package/dist/baloise-design-system/{p-e113196061.system.entry.js → p-126c79c9e9.system.entry.js} +1 -1
  37. package/dist/baloise-design-system/p-12bcc7da.js +1 -0
  38. package/dist/baloise-design-system/{p-3bd244cda7.entry.js → p-135c5759c5.entry.js} +1 -1
  39. package/dist/baloise-design-system/{p-88c086f8.system.js → p-14ae0709.system.js} +1 -1
  40. package/dist/baloise-design-system/{p-3bbf43bb.system.js → p-1509eaa7.system.js} +1 -1
  41. package/dist/baloise-design-system/{p-946e9e784d.system.entry.js → p-1659bb968c.system.entry.js} +1 -1
  42. package/dist/baloise-design-system/p-187f98a1.system.js +1 -0
  43. package/dist/baloise-design-system/{p-a620678fd4.system.entry.js → p-18e2e391e0.system.entry.js} +1 -1
  44. package/dist/baloise-design-system/p-1de6b20b1c.system.entry.js +1 -0
  45. package/dist/baloise-design-system/{p-1c2dee82c4.system.entry.js → p-222bc9b30e.system.entry.js} +1 -1
  46. package/dist/baloise-design-system/{p-0af6ae59f5.entry.js → p-22b041a511.entry.js} +1 -1
  47. package/dist/baloise-design-system/{p-45fe099fab.entry.js → p-25da216e4f.entry.js} +1 -1
  48. package/dist/baloise-design-system/{p-3f8e5df9c5.system.entry.js → p-25e0d82e89.system.entry.js} +1 -1
  49. package/dist/baloise-design-system/p-2d82b78410.entry.js +1 -0
  50. package/dist/baloise-design-system/{p-a0db085f89.entry.js → p-2d8bd11634.entry.js} +1 -1
  51. package/dist/baloise-design-system/p-2db9030ad9.system.entry.js +1 -0
  52. package/dist/baloise-design-system/{p-7d6318e4f1.system.entry.js → p-3128128969.system.entry.js} +1 -1
  53. package/dist/baloise-design-system/{p-9a5cb17cb9.entry.js → p-39bc49bc3d.entry.js} +1 -1
  54. package/dist/baloise-design-system/p-3bad0907.system.js +1 -0
  55. package/dist/baloise-design-system/{p-0545b101.js → p-3f1c49d0.js} +1 -1
  56. package/dist/baloise-design-system/{p-2e717f00bb.entry.js → p-4aba4c66ee.entry.js} +1 -1
  57. package/dist/baloise-design-system/{p-9e4fcb76.js → p-54f81c32.js} +1 -1
  58. package/dist/baloise-design-system/{p-7c5868cc.system.js → p-55faac1d.system.js} +1 -1
  59. package/dist/baloise-design-system/{p-34ee3721dd.entry.js → p-5b571a9fb1.entry.js} +1 -1
  60. package/dist/baloise-design-system/{p-a8f6447224.entry.js → p-60e94f8144.entry.js} +1 -1
  61. package/dist/baloise-design-system/{p-06e959a11a.entry.js → p-6164f99bb8.entry.js} +1 -1
  62. package/dist/baloise-design-system/{p-6608061443.system.entry.js → p-62ab1f0ae2.system.entry.js} +1 -1
  63. package/dist/baloise-design-system/{p-053d572047.system.entry.js → p-62b792a34b.system.entry.js} +1 -1
  64. package/dist/baloise-design-system/{p-118e15f5f2.system.entry.js → p-74f4b9818b.system.entry.js} +1 -1
  65. package/dist/baloise-design-system/{p-439518e5ed.entry.js → p-77f5e777e6.entry.js} +1 -1
  66. package/dist/baloise-design-system/{p-6ddfa58338.entry.js → p-7c42a363f3.entry.js} +1 -1
  67. package/dist/baloise-design-system/p-7cd815d3e8.entry.js +1 -0
  68. package/dist/baloise-design-system/p-80b45dd4d6.system.entry.js +1 -0
  69. package/dist/baloise-design-system/{p-af5b58ab1c.system.entry.js → p-8870e1f3e0.system.entry.js} +1 -1
  70. package/dist/baloise-design-system/{p-3cb83cf9.system.js → p-8a87b9a8.system.js} +1 -1
  71. package/dist/baloise-design-system/{p-99e5872214.system.entry.js → p-8c209ac52b.system.entry.js} +1 -1
  72. package/dist/baloise-design-system/p-8f77c423ad.entry.js +1 -0
  73. package/dist/baloise-design-system/{p-de726703ce.entry.js → p-8fe94b9e21.entry.js} +1 -1
  74. package/dist/baloise-design-system/{p-1b76afbf.js → p-94efe2aa.js} +1 -1
  75. package/dist/baloise-design-system/{p-0ce86357bd.entry.js → p-9658f4a66f.entry.js} +1 -1
  76. package/dist/baloise-design-system/{p-4112f1cc6e.entry.js → p-9a0640d065.entry.js} +1 -1
  77. package/dist/baloise-design-system/{p-c3bd665a8b.entry.js → p-9e167705ca.entry.js} +1 -1
  78. package/dist/baloise-design-system/{p-e619be36b2.system.entry.js → p-9ecce014c2.system.entry.js} +1 -1
  79. package/dist/baloise-design-system/p-a19d1e1d.js +1 -0
  80. package/dist/baloise-design-system/{p-115c7e47bd.entry.js → p-a8022ee701.entry.js} +1 -1
  81. package/dist/baloise-design-system/{p-9038dd3550.entry.js → p-a97cbb7dda.entry.js} +1 -1
  82. package/dist/baloise-design-system/p-acb5cea0.system.js +1 -0
  83. package/dist/baloise-design-system/p-ae28b86fe5.entry.js +1 -0
  84. package/dist/baloise-design-system/p-b779742f50.entry.js +1 -0
  85. package/dist/baloise-design-system/{p-bda509c8.js → p-b8d99064.js} +1 -1
  86. package/dist/baloise-design-system/p-b8f085f7b5.system.entry.js +1 -0
  87. package/dist/baloise-design-system/{p-7ca7b4dad9.system.entry.js → p-b97d9336a7.system.entry.js} +1 -1
  88. package/dist/baloise-design-system/{p-2b27e981ed.entry.js → p-b9f197815f.entry.js} +1 -1
  89. package/dist/baloise-design-system/{p-afe91abbd5.system.entry.js → p-bb3914c87a.system.entry.js} +1 -1
  90. package/dist/baloise-design-system/p-bb6304d0.system.js +1 -0
  91. package/dist/baloise-design-system/p-bcbb5b59f3.system.entry.js +1 -0
  92. package/dist/baloise-design-system/p-bcca1ed3.system.js +1 -0
  93. package/dist/baloise-design-system/{p-b89bb101d7.entry.js → p-bcebf41b74.entry.js} +1 -1
  94. package/dist/baloise-design-system/p-bd5de78b2c.entry.js +1 -0
  95. package/dist/baloise-design-system/p-c304d5fa9c.entry.js +1 -0
  96. package/dist/baloise-design-system/{p-4e7e0fe4.system.js → p-cc61fac8.system.js} +1 -1
  97. package/dist/baloise-design-system/{p-f9c9ec626c.system.entry.js → p-cd8e72d87f.system.entry.js} +1 -1
  98. package/dist/baloise-design-system/{p-e4f6e3047f.system.entry.js → p-d16557d133.system.entry.js} +1 -1
  99. package/dist/baloise-design-system/p-d7a758b3.js +1 -0
  100. package/dist/baloise-design-system/{p-29f7274983.system.entry.js → p-d919753ed0.system.entry.js} +1 -1
  101. package/dist/baloise-design-system/p-d9b38501.js +1 -0
  102. package/dist/baloise-design-system/p-d9d229a026.entry.js +1 -0
  103. package/dist/baloise-design-system/{p-13227d037a.system.entry.js → p-dbc2d22240.system.entry.js} +1 -1
  104. package/dist/baloise-design-system/{p-a9e5eba8c9.system.entry.js → p-dce3764ee5.system.entry.js} +1 -1
  105. package/dist/baloise-design-system/{p-1eeee9a37e.entry.js → p-ddf9b2a289.entry.js} +1 -1
  106. package/dist/baloise-design-system/{p-03ec11adc1.system.entry.js → p-e4de708de1.system.entry.js} +1 -1
  107. package/dist/baloise-design-system/p-e60c936359.system.entry.js +1 -0
  108. package/dist/baloise-design-system/p-e78a6409.js +1 -0
  109. package/dist/baloise-design-system/{p-f55c50abfa.system.entry.js → p-f076d1ed4f.system.entry.js} +1 -1
  110. package/dist/baloise-design-system/{p-283d037ce7.system.entry.js → p-f0b43f1452.system.entry.js} +1 -1
  111. package/dist/baloise-design-system/{p-d78eeb433a.entry.js → p-f12abda2db.entry.js} +1 -1
  112. package/dist/baloise-design-system/{p-f3ea10dd64.system.entry.js → p-f1b95d78af.system.entry.js} +1 -1
  113. package/dist/baloise-design-system/{p-ef373ed3db.entry.js → p-f56fb1a197.entry.js} +1 -1
  114. package/dist/baloise-design-system/{p-b213175c21.entry.js → p-f8974d743d.entry.js} +1 -1
  115. package/dist/baloise-design-system/p-f8a98657a1.entry.js +1 -0
  116. package/dist/cjs/app-globals-ae3a8623.js +11 -0
  117. package/dist/cjs/aria-c8955a5c.js +5 -0
  118. package/dist/cjs/bal-carousel_2.cjs.entry.js +4 -4
  119. package/dist/cjs/bal-checkbox-button.cjs.entry.js +1 -1
  120. package/dist/cjs/bal-checkbox_2.cjs.entry.js +3 -2
  121. package/dist/cjs/bal-close.cjs.entry.js +2 -2
  122. package/dist/cjs/bal-date-calendar_2.cjs.entry.js +2 -2
  123. package/dist/cjs/bal-date.cjs.entry.js +1 -1
  124. package/dist/cjs/bal-datepicker.cjs.entry.js +4 -4
  125. package/dist/cjs/bal-dropdown.cjs.entry.js +660 -0
  126. package/dist/cjs/bal-field_5.cjs.entry.js +12 -2
  127. package/dist/cjs/bal-footer.cjs.entry.js +1 -1
  128. package/dist/cjs/bal-hint_3.cjs.entry.js +3 -3
  129. package/dist/cjs/bal-icon.cjs.entry.js +1 -1
  130. package/dist/cjs/bal-input-stepper.cjs.entry.js +1 -1
  131. package/dist/cjs/bal-label.cjs.entry.js +1 -1
  132. package/dist/cjs/bal-list_8.cjs.entry.js +3 -3
  133. package/dist/cjs/bal-logo.cjs.entry.js +3 -3
  134. package/dist/cjs/bal-nav_8.cjs.entry.js +4 -4
  135. package/dist/cjs/bal-navbar_5.cjs.entry.js +3 -3
  136. package/dist/cjs/bal-number-input.cjs.entry.js +1 -1
  137. package/dist/cjs/bal-option_2.cjs.entry.js +541 -0
  138. package/dist/cjs/bal-pagination.cjs.entry.js +4 -4
  139. package/dist/cjs/bal-popover_2.cjs.entry.js +3 -3
  140. package/dist/cjs/bal-progress-bar.cjs.entry.js +3 -3
  141. package/dist/cjs/bal-radio_2.cjs.entry.js +1 -1
  142. package/dist/cjs/bal-select_2.cjs.entry.js +2 -2
  143. package/dist/cjs/bal-shape.cjs.entry.js +1 -1
  144. package/dist/cjs/bal-spinner.cjs.entry.js +49 -4
  145. package/dist/cjs/bal-steps.cjs.entry.js +3 -3
  146. package/dist/cjs/bal-tab-item_2.cjs.entry.js +3 -3
  147. package/dist/cjs/bal-tag_2.cjs.entry.js +1 -1
  148. package/dist/cjs/bal-time-input.cjs.entry.js +1 -1
  149. package/dist/cjs/baloise-design-system.cjs.js +4 -5
  150. package/dist/cjs/{breakpoints.decorator-5a45d298.js → breakpoints.decorator-47fd6060.js} +1 -1
  151. package/dist/cjs/{breakpoints.subject-ee6b98cd.js → breakpoints.subject-66093c8f.js} +1 -1
  152. package/dist/cjs/{config.default-32725178.js → config.default-5bdd6e3d.js} +1 -0
  153. package/dist/cjs/index.cjs.js +6 -4
  154. package/dist/cjs/{initialize-e38e7028.js → initialize-2a19d091.js} +9 -2
  155. package/dist/cjs/loader.cjs.js +4 -5
  156. package/dist/cjs/option-c33cf2b8.js +49 -0
  157. package/dist/cjs/{tokens.esm-b37c935b.js → tokens.esm-bb0ef2db.js} +1 -1
  158. package/dist/collection/collection-manifest.json +15 -2
  159. package/dist/collection/components/bal-checkbox/bal-checkbox-button/bal-checkbox-button.css +1 -1
  160. package/dist/collection/components/bal-checkbox/bal-checkbox.js +2 -1
  161. package/dist/collection/components/bal-checkbox/radio-checkbox.css +1 -1
  162. package/dist/collection/components/bal-close/bal-close.js +1 -1
  163. package/dist/collection/components/bal-date/bal-date-calendar/components/bal-date-calendar__list.js +1 -1
  164. package/dist/collection/components/bal-dropdown/bal-dropdown.css +1 -0
  165. package/dist/collection/components/bal-dropdown/bal-dropdown.interfaces.js +4 -0
  166. package/dist/collection/components/bal-dropdown/bal-dropdown.js +882 -0
  167. package/dist/collection/components/bal-field/bal-field.js +12 -2
  168. package/dist/collection/components/bal-option/bal-option.css +1 -0
  169. package/dist/collection/components/bal-option/bal-option.interfaces.js +4 -0
  170. package/dist/collection/components/bal-option/bal-option.js +360 -0
  171. package/dist/collection/components/bal-option-list/bal-option-list.css +1 -0
  172. package/dist/collection/components/bal-option-list/bal-option-list.interfaces.js +4 -0
  173. package/dist/collection/components/bal-option-list/bal-option-list.js +939 -0
  174. package/dist/collection/components/bal-select/bal-select.js +3 -3
  175. package/dist/collection/components/bal-spinner/bal-spinner.css +1 -1
  176. package/dist/collection/components/bal-spinner/bal-spinner.interfaces.js +4 -0
  177. package/dist/collection/components/bal-spinner/bal-spinner.js +83 -4
  178. package/dist/collection/components/bal-tag/bal-tag.css +1 -1
  179. package/dist/collection/index.js +1 -0
  180. package/dist/collection/utils/aria.js +1 -0
  181. package/dist/collection/utils/config/config.default.js +1 -0
  182. package/dist/collection/utils/config/config.js +7 -0
  183. package/dist/collection/utils/constants/version.constant.js +1 -1
  184. package/dist/collection/utils/dropdown/auto-fill.js +38 -0
  185. package/dist/collection/utils/dropdown/component.js +1 -0
  186. package/dist/collection/utils/dropdown/dropdown.i18n.js +52 -0
  187. package/dist/collection/utils/dropdown/events.js +43 -0
  188. package/dist/collection/utils/dropdown/filters.js +10 -0
  189. package/dist/collection/utils/dropdown/focus.js +19 -0
  190. package/dist/collection/utils/dropdown/form-submit.js +35 -0
  191. package/dist/collection/utils/dropdown/icon.js +15 -0
  192. package/dist/collection/utils/dropdown/index.js +13 -0
  193. package/dist/collection/utils/dropdown/input.js +12 -0
  194. package/dist/collection/utils/dropdown/option-list.js +8 -0
  195. package/dist/collection/utils/dropdown/option.js +44 -0
  196. package/dist/collection/utils/dropdown/popup.js +45 -0
  197. package/dist/collection/utils/dropdown/value.js +103 -0
  198. package/dist/esm/app-globals-b0dd0fc4.js +9 -0
  199. package/dist/esm/aria-d5877698.js +3 -0
  200. package/dist/esm/bal-carousel_2.entry.js +4 -4
  201. package/dist/esm/bal-checkbox-button.entry.js +1 -1
  202. package/dist/esm/bal-checkbox_2.entry.js +4 -3
  203. package/dist/esm/bal-close.entry.js +2 -2
  204. package/dist/esm/bal-date-calendar_2.entry.js +4 -4
  205. package/dist/esm/bal-date.entry.js +3 -3
  206. package/dist/esm/bal-datepicker.entry.js +5 -5
  207. package/dist/esm/bal-dropdown.entry.js +656 -0
  208. package/dist/esm/bal-field_5.entry.js +12 -2
  209. package/dist/esm/bal-file-upload.entry.js +1 -1
  210. package/dist/esm/bal-footer.entry.js +2 -2
  211. package/dist/esm/bal-hint_3.entry.js +3 -3
  212. package/dist/esm/bal-icon.entry.js +1 -1
  213. package/dist/esm/bal-input-stepper.entry.js +2 -2
  214. package/dist/esm/bal-label.entry.js +1 -1
  215. package/dist/esm/bal-list_8.entry.js +3 -3
  216. package/dist/esm/bal-logo.entry.js +3 -3
  217. package/dist/esm/bal-nav_8.entry.js +4 -4
  218. package/dist/esm/bal-navbar_5.entry.js +3 -3
  219. package/dist/esm/bal-number-input.entry.js +2 -2
  220. package/dist/esm/bal-option_2.entry.js +536 -0
  221. package/dist/esm/bal-pagination.entry.js +4 -4
  222. package/dist/esm/bal-popover_2.entry.js +3 -3
  223. package/dist/esm/bal-popup.entry.js +1 -1
  224. package/dist/esm/bal-progress-bar.entry.js +3 -3
  225. package/dist/esm/bal-radio_2.entry.js +2 -2
  226. package/dist/esm/bal-select_2.entry.js +3 -3
  227. package/dist/esm/bal-shape.entry.js +1 -1
  228. package/dist/esm/bal-spinner.entry.js +50 -5
  229. package/dist/esm/bal-steps.entry.js +4 -4
  230. package/dist/esm/bal-tab-item_2.entry.js +4 -4
  231. package/dist/esm/bal-tag_2.entry.js +1 -1
  232. package/dist/esm/bal-time-input.entry.js +1 -1
  233. package/dist/esm/baloise-design-system.js +4 -5
  234. package/dist/esm/{breakpoints.decorator-1a7b0912.js → breakpoints.decorator-021fbaf0.js} +1 -1
  235. package/dist/esm/{breakpoints.subject-c5f9de1c.js → breakpoints.subject-ef464f89.js} +1 -1
  236. package/dist/esm/{config.default-79f94bf7.js → config.default-7efdc82d.js} +1 -0
  237. package/dist/esm/{date-f02fdb08.js → date-38a0b208.js} +1 -1
  238. package/dist/esm/{index.esm-ec4cba26.js → index.esm-83b1f9c4.js} +1 -1
  239. package/dist/esm/index.js +8 -7
  240. package/dist/esm/{initialize-66615dde.js → initialize-e216cfe4.js} +9 -2
  241. package/dist/esm/loader.js +4 -5
  242. package/dist/esm/option-37cb0282.js +46 -0
  243. package/dist/esm/{tokens.esm-99101350.js → tokens.esm-aab9bd61.js} +1 -1
  244. package/dist/esm-es5/app-globals-b0dd0fc4.js +1 -0
  245. package/dist/esm-es5/aria-d5877698.js +1 -0
  246. package/dist/esm-es5/bal-carousel_2.entry.js +1 -1
  247. package/dist/esm-es5/bal-checkbox-button.entry.js +1 -1
  248. package/dist/esm-es5/bal-checkbox_2.entry.js +1 -1
  249. package/dist/esm-es5/bal-close.entry.js +1 -1
  250. package/dist/esm-es5/bal-date-calendar_2.entry.js +1 -1
  251. package/dist/esm-es5/bal-date.entry.js +1 -1
  252. package/dist/esm-es5/bal-datepicker.entry.js +1 -1
  253. package/dist/esm-es5/bal-dropdown.entry.js +1 -0
  254. package/dist/esm-es5/bal-field_5.entry.js +1 -1
  255. package/dist/esm-es5/bal-file-upload.entry.js +1 -1
  256. package/dist/esm-es5/bal-footer.entry.js +1 -1
  257. package/dist/esm-es5/bal-hint_3.entry.js +1 -1
  258. package/dist/esm-es5/bal-icon.entry.js +1 -1
  259. package/dist/esm-es5/bal-input-stepper.entry.js +1 -1
  260. package/dist/esm-es5/bal-label.entry.js +1 -1
  261. package/dist/esm-es5/bal-list_8.entry.js +1 -1
  262. package/dist/esm-es5/bal-logo.entry.js +1 -1
  263. package/dist/esm-es5/bal-nav_8.entry.js +1 -1
  264. package/dist/esm-es5/bal-navbar_5.entry.js +1 -1
  265. package/dist/esm-es5/bal-number-input.entry.js +1 -1
  266. package/dist/esm-es5/bal-option_2.entry.js +1 -0
  267. package/dist/esm-es5/bal-pagination.entry.js +1 -1
  268. package/dist/esm-es5/bal-popover_2.entry.js +1 -1
  269. package/dist/esm-es5/bal-popup.entry.js +1 -1
  270. package/dist/esm-es5/bal-progress-bar.entry.js +1 -1
  271. package/dist/esm-es5/bal-radio_2.entry.js +1 -1
  272. package/dist/esm-es5/bal-select_2.entry.js +1 -1
  273. package/dist/esm-es5/bal-shape.entry.js +1 -1
  274. package/dist/esm-es5/bal-spinner.entry.js +1 -1
  275. package/dist/esm-es5/bal-steps.entry.js +1 -1
  276. package/dist/esm-es5/bal-tab-item_2.entry.js +1 -1
  277. package/dist/esm-es5/bal-tag_2.entry.js +1 -1
  278. package/dist/esm-es5/bal-time-input.entry.js +1 -1
  279. package/dist/esm-es5/baloise-design-system.js +1 -1
  280. package/dist/esm-es5/{breakpoints.decorator-1a7b0912.js → breakpoints.decorator-021fbaf0.js} +1 -1
  281. package/dist/esm-es5/{breakpoints.subject-c5f9de1c.js → breakpoints.subject-ef464f89.js} +1 -1
  282. package/dist/esm-es5/{config.default-79f94bf7.js → config.default-7efdc82d.js} +1 -1
  283. package/dist/esm-es5/{date-f02fdb08.js → date-38a0b208.js} +1 -1
  284. package/dist/esm-es5/{index.esm-ec4cba26.js → index.esm-83b1f9c4.js} +1 -1
  285. package/dist/esm-es5/index.js +1 -1
  286. package/dist/esm-es5/{initialize-66615dde.js → initialize-e216cfe4.js} +1 -1
  287. package/dist/esm-es5/loader.js +1 -1
  288. package/dist/esm-es5/option-37cb0282.js +1 -0
  289. package/dist/html.html-data.json +357 -0
  290. package/dist/types/components/bal-dropdown/bal-dropdown.d.ts +187 -0
  291. package/dist/types/components/bal-dropdown/bal-dropdown.interfaces.d.ts +14 -0
  292. package/dist/types/components/bal-field/bal-field.d.ts +1 -0
  293. package/dist/types/components/bal-option/bal-option.d.ts +91 -0
  294. package/dist/types/components/bal-option/bal-option.interfaces.d.ts +19 -0
  295. package/dist/types/components/bal-option-list/bal-option-list.d.ts +168 -0
  296. package/dist/types/components/bal-option-list/bal-option-list.interfaces.d.ts +5 -0
  297. package/dist/types/components/bal-select/bal-select.d.ts +1 -1
  298. package/dist/types/components/bal-spinner/bal-spinner.d.ts +14 -2
  299. package/dist/types/components/bal-spinner/bal-spinner.interfaces.d.ts +6 -0
  300. package/dist/types/components.d.ts +443 -32
  301. package/dist/types/index.d.ts +1 -0
  302. package/dist/types/interfaces.d.ts +4 -0
  303. package/dist/types/utils/aria.d.ts +1 -0
  304. package/dist/types/utils/config/config.d.ts +2 -0
  305. package/dist/types/utils/config/config.types.d.ts +2 -0
  306. package/dist/types/utils/dropdown/auto-fill.d.ts +8 -0
  307. package/dist/types/utils/dropdown/component.d.ts +34 -0
  308. package/dist/types/utils/dropdown/dropdown.i18n.d.ts +8 -0
  309. package/dist/types/utils/dropdown/events.d.ts +13 -0
  310. package/dist/types/utils/dropdown/filters.d.ts +2 -0
  311. package/dist/types/utils/dropdown/focus.d.ts +13 -0
  312. package/dist/types/utils/dropdown/form-submit.d.ts +22 -0
  313. package/dist/types/utils/dropdown/icon.d.ts +13 -0
  314. package/dist/types/utils/dropdown/index.d.ts +13 -0
  315. package/dist/types/utils/dropdown/input.d.ts +27 -0
  316. package/dist/types/utils/dropdown/option-list.d.ts +17 -0
  317. package/dist/types/utils/dropdown/option.d.ts +25 -0
  318. package/dist/types/utils/dropdown/popup.d.ts +9 -0
  319. package/dist/types/utils/dropdown/value.d.ts +28 -0
  320. package/package.json +7 -7
  321. package/components/bal-app2.js +0 -87
  322. package/components/bal-doc-app.js +0 -260
  323. package/components/initialize.js +0 -281
  324. package/dist/baloise-design-system/p-1e0e5892a3.system.entry.js +0 -1
  325. package/dist/baloise-design-system/p-2ae9656e.system.js +0 -1
  326. package/dist/baloise-design-system/p-2dda46c5f8.entry.js +0 -1
  327. package/dist/baloise-design-system/p-320dd651.js +0 -1
  328. package/dist/baloise-design-system/p-4e218ac923.system.entry.js +0 -1
  329. package/dist/baloise-design-system/p-4f4df156.js +0 -1
  330. package/dist/baloise-design-system/p-87067c24.js +0 -1
  331. package/dist/baloise-design-system/p-8ea27b553e.system.entry.js +0 -1
  332. package/dist/baloise-design-system/p-96647117d9.entry.js +0 -1
  333. package/dist/baloise-design-system/p-9d114fae.js +0 -1
  334. package/dist/baloise-design-system/p-9ee6326d8f.entry.js +0 -1
  335. package/dist/baloise-design-system/p-a4d60ac8af.system.entry.js +0 -1
  336. package/dist/baloise-design-system/p-a8d19cb362.system.entry.js +0 -1
  337. package/dist/baloise-design-system/p-b0870e2498.system.entry.js +0 -1
  338. package/dist/baloise-design-system/p-b1c7ddc442.system.entry.js +0 -1
  339. package/dist/baloise-design-system/p-b1e3fc0bc8.entry.js +0 -1
  340. package/dist/baloise-design-system/p-c0a3d422.system.js +0 -1
  341. package/dist/baloise-design-system/p-c34504aa32.entry.js +0 -1
  342. package/dist/baloise-design-system/p-d6fc0dd434.entry.js +0 -1
  343. package/dist/baloise-design-system/p-db3e6b861f.entry.js +0 -1
  344. package/dist/baloise-design-system/p-e960037ef1.entry.js +0 -1
  345. package/dist/baloise-design-system/p-f15be367.system.js +0 -1
  346. package/dist/baloise-design-system/p-f8c2d916.system.js +0 -1
  347. package/dist/baloise-design-system/p-fa8f56c6.system.js +0 -1
  348. package/dist/cjs/app-globals-1a8f18e4.js +0 -7
  349. package/dist/cjs/bal-doc-app.cjs.entry.js +0 -231
  350. package/dist/cjs/global-6ea60588.js +0 -9
  351. package/dist/collection/components/docs/bal-doc-app/bal-doc-app.css +0 -1
  352. package/dist/collection/components/docs/bal-doc-app/bal-doc-app.js +0 -229
  353. package/dist/esm/app-globals-e3e23c19.js +0 -5
  354. package/dist/esm/bal-doc-app.entry.js +0 -227
  355. package/dist/esm/global-d54e7c09.js +0 -7
  356. package/dist/esm-es5/app-globals-e3e23c19.js +0 -1
  357. package/dist/esm-es5/bal-doc-app.entry.js +0 -1
  358. package/dist/esm-es5/global-d54e7c09.js +0 -1
  359. package/dist/types/components/docs/bal-doc-app/bal-doc-app.d.ts +0 -21
  360. package/dist/types/home/runner/work/design-system/design-system/packages/core/.stencil/packages/icons/src/index.d.ts +0 -81
  361. /package/dist/baloise-design-system/{p-8f430e01.system.js → p-03c136e2.system.js} +0 -0
  362. /package/dist/baloise-design-system/{p-2b04a8d8.js → p-7b9c33ba.js} +0 -0
  363. /package/dist/esm-es5/{tokens.esm-99101350.js → tokens.esm-aab9bd61.js} +0 -0
@@ -0,0 +1,541 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-219b2f52.js');
6
+ const tslib_es6 = require('./tslib.es6-a680968e.js');
7
+ const bem = require('./bem-81bc6a2d.js');
8
+ const log = require('./log-33398c2a.js');
9
+ const aria = require('./aria-c8955a5c.js');
10
+ const formInput = require('./form-input-134c5116.js');
11
+ const elementStates_decorator = require('./element-states.decorator-9ce5ff3b.js');
12
+ const index$1 = require('./index-e6a233be.js');
13
+ const attributes = require('./attributes-9f366716.js');
14
+ const helpers = require('./helpers-2a8c8333.js');
15
+ const utils = require('./utils-9ea175af.js');
16
+ const form = require('./form-2279fb2f.js');
17
+ require('./browser-1d542d0f.js');
18
+ require('./listener-52d2e5fd.js');
19
+ require('./icons.constant-7c82086a.js');
20
+ require('./config.utils-e4cd49d6.js');
21
+
22
+ const balOptionCss = ":root{--bal-option-padding-x:var(--bal-space-small);--bal-option-min-height:1.5rem;--bal-option-background:var(--bal-color-white);--bal-option-background-hovered:var(--bal-color-grey-2);--bal-option-background-selected:var(--bal-color-primary-1);--bal-option-background-selected-hovered:#dddfeb;--bal-option-background-invalid:var(--bal-color-danger-1);--bal-option-background-invalid-hovered:#fbe0de;--bal-option-border-width:var(--bal-border-width-normal);--bal-option-border-color:var(--bal-color-grey-2);--bal-option-font-family:var(--bal-font-family-text);--bal-option-font-weight:var(--bal-font-weight-regular);--bal-option-line-height:1.125rem;--bal-option-text-hovered:var(--bal-color-text-primary-hovered);--bal-option-text-pressed:var(--bal-color-text-primary-pressed);--bal-option-text-disabled:var(--bal-color-text-grey-light)}.bal-option{font-size:16px;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;display:block;list-style:none;cursor:pointer;border-bottom-width:var(--bal-option-border-width);border-bottom-color:var(--bal-option-border-color);border-bottom-style:solid;background:var(--bal-option-background);padding-left:var(--bal-option-padding-x);padding-right:var(--bal-option-padding-x);min-height:var(--bal-option-min-height)}.bal-option>bal-stack{min-height:var(--bal-option-min-height)}.bal-option:last-child{border-bottom:none}.bal-option::-moz-focus-inner{border:none}.bal-option--hidden{display:none;visibility:hidden}.bal-option__inner{font-family:var(--bal-option-font-family);font-weight:var(--bal-option-font-weight);line-height:var(--bal-option-line-height);word-break:break-word;white-space:normal;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-ms-flex:1;flex:1}.bal-option__inner--multiline{white-space:normal}.bal-option--focused{background:var(--bal-option-background-hovered)}@media (hover: hover)and (pointer: fine){.bal-option:hover{background:var(--bal-option-background-hovered);color:var(--bal-option-text-hovered)}}.bal-option:active{background:var(--bal-option-background-hovered);color:var(--bal-option-text-pressed)}.bal-option--selected{background:var(--bal-option-background-selected)}@media (hover: hover)and (pointer: fine){.bal-option--selected:hover{background:var(--bal-option-background-selected-hovered)}}.bal-option--selected:active{background:var(--bal-option-background-selected-hovered)}.bal-option--selected .bal-option__inner{font-weight:var(--bal-font-weight-bold)}.bal-option--selected.bal-option--focused{background:var(--bal-option-background-selected-hovered)}.bal-option--selected.bal-option--focused .bal-option__inner{font-weight:var(--bal-font-weight-bold)}.bal-option--invalid{background:var(--bal-option-background-invalid)}@media (hover: hover)and (pointer: fine){.bal-option--invalid:hover{background:var(--bal-option-background-invalid-hovered)}}.bal-option--invalid:active{background:var(--bal-option-background-invalid-hovered)}.bal-option--invalid.bal-option--focused{background:var(--bal-option-background-invalid-hovered)}.bal-option--invalid .bal-option__inner{color:var(--bal-color-text-danger-hovered)}@media (hover: hover)and (pointer: fine){.bal-option--invalid:hover .bal-option__inner{color:var(--bal-color-text-danger-hovered)}}.bal-option--invalid:active .bal-option__inner{color:var(--bal-color-text-danger-pressed)}.bal-option--disabled,.bal-option--disabled.bal-option--focused{background:var(--bal-option-background) !important;color:var(--bal-option-text-disabled) !important;cursor:default !important}.bal-option--disabled:hover,.bal-option--disabled.bal-option--focused:hover{background:var(--bal-option-background) !important}.bal-option{--bal-radio-checkbox-symbol-size:1.125rem;--bal-radio-checkbox-symbol-width:calc(0.375rem - 1px);--bal-radio-checkbox-symbol-height:calc(0.656rem - 1px);--bal-radio-checkbox-symbol-left:calc(0.375rem + 1px);--bal-radio-checkbox-symbol-margin-top:0.188rem;--bal-radio-checkbox-label-min-height:1.125rem}";
23
+ const BalOptionStyle0 = balOptionCss;
24
+
25
+ const Option = class {
26
+ constructor(hostRef) {
27
+ index.registerInstance(this, hostRef);
28
+ this.balOptionChange = index.createEvent(this, "balOptionChange", 7);
29
+ this.balOptionFocus = index.createEvent(this, "balOptionFocus", 7);
30
+ this.inputId = `bal-option-${balOptionIds++}`;
31
+ /**
32
+ * EVENT BINDING
33
+ * ------------------------------------------------------
34
+ */
35
+ this.onClick = (ev) => {
36
+ const listEl = this.el.closest('bal-option-list');
37
+ if (this.disabled || (listEl && listEl.disabled)) {
38
+ formInput.stopEventBubbling(ev);
39
+ }
40
+ else {
41
+ if (listEl && listEl.required && !listEl.multiple) {
42
+ if (!this.selected) {
43
+ this.select(true);
44
+ }
45
+ }
46
+ else {
47
+ this.select(!this.selected);
48
+ }
49
+ }
50
+ };
51
+ this.checkbox = false;
52
+ this.interactionState = elementStates_decorator.BalElementStateListener.DefaultState;
53
+ this.label = '';
54
+ this.value = '';
55
+ this.disabled = false;
56
+ this.multiline = false;
57
+ this.invalid = false;
58
+ this.selected = false;
59
+ this.focused = false;
60
+ this.hidden = false;
61
+ }
62
+ createLogger(log) {
63
+ this.log = log;
64
+ }
65
+ /**
66
+ * LIFECYCLE
67
+ * ------------------------------------------------------
68
+ */
69
+ componentWillRender() {
70
+ if (this.el) {
71
+ const optionListEl = this.el.closest('bal-option-list');
72
+ if (optionListEl) {
73
+ this.checkbox = !!optionListEl.multiple;
74
+ }
75
+ }
76
+ }
77
+ /**
78
+ * LISTENERS
79
+ * ------------------------------------------------------
80
+ */
81
+ listenToMouseEnter() {
82
+ const { label, value, selected, disabled, hidden } = this;
83
+ if (!hidden && !disabled) {
84
+ this.balOptionFocus.emit({ label, value, selected });
85
+ }
86
+ }
87
+ elementStateListener(info) {
88
+ this.interactionChildElements.forEach(element => {
89
+ element.hovered = info.hovered;
90
+ element.pressed = info.pressed;
91
+ });
92
+ }
93
+ /**
94
+ * PUBLIC METHODS
95
+ * ------------------------------------------------------
96
+ */
97
+ /**
98
+ * Selects or deselects the option and informs other components
99
+ */
100
+ async select(selected = true) {
101
+ this.selected = selected;
102
+ const { label, value } = this;
103
+ this.balOptionChange.emit({ label, value, selected });
104
+ }
105
+ /**
106
+ * PRIVATE METHODS
107
+ * ------------------------------------------------------
108
+ */
109
+ get interactionChildElements() {
110
+ return Array.from(this.el.querySelectorAll('bal-checkbox'));
111
+ }
112
+ /**
113
+ * RENDER
114
+ * ------------------------------------------------------
115
+ */
116
+ render() {
117
+ const block = bem.BEM.block('option');
118
+ return (index.h(index.Host, { class: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, block.class()), block.modifier('checkbox').class(this.checkbox)), block.modifier('focused').class(this.focused)), block.modifier('invalid').class(this.invalid)), block.modifier('selected').class(this.selected)), block.modifier('disabled').class(this.disabled)), block.modifier('hidden').class(this.hidden)), role: "option", id: this.inputId, "data-value": this.value, "data-label": this.label, "aria-label": this.label, "aria-hidden": aria.ariaBooleanToString(this.hidden), "aria-selected": aria.ariaBooleanToString(this.selected), "aria-checked": aria.ariaBooleanToString(this.selected), "aria-disabled": aria.ariaBooleanToString(this.disabled), "aria-invalid": aria.ariaBooleanToString(this.invalid), tabIndex: -1, onClick: this.onClick }, index.h("bal-stack", { py: "small", space: "x-small" }, this.checkbox ? (index.h("bal-checkbox", { flat: true, nonSubmit: true, "label-hidden": true, checked: this.selected, disabled: this.disabled, invalid: this.invalid, tabindex: -1 })) : (''), index.h("div", { class: Object.assign(Object.assign({}, block.element('inner').class()), block.element('inner').modifier('multiline').class(this.multiline)) }, index.h("slot", null)), this.selected && !this.checkbox ? (index.h("bal-icon", { name: "check", size: "small", color: this.disabled ? 'grey' : this.invalid ? 'danger' : 'primary' })) : (''))));
119
+ }
120
+ get el() { return index.getElement(this); }
121
+ };
122
+ tslib_es6.__decorate([
123
+ log.Logger('bal-option'),
124
+ tslib_es6.__metadata("design:type", Function),
125
+ tslib_es6.__metadata("design:paramtypes", [Function]),
126
+ tslib_es6.__metadata("design:returntype", void 0)
127
+ ], Option.prototype, "createLogger", null);
128
+ tslib_es6.__decorate([
129
+ elementStates_decorator.ListenToElementStates(),
130
+ tslib_es6.__metadata("design:type", Function),
131
+ tslib_es6.__metadata("design:paramtypes", [Object]),
132
+ tslib_es6.__metadata("design:returntype", void 0)
133
+ ], Option.prototype, "elementStateListener", null);
134
+ let balOptionIds = 0;
135
+ Option.style = BalOptionStyle0;
136
+
137
+ const balOptionListCss = ".bal-option-list{display:block;position:relative;width:100%;list-style:none;margin:0;outline:0;max-height:var(--bal-option-list-max-height);border-radius:var(--bal-radius-normal);overflow:hidden auto}";
138
+ const BalOptionListStyle0 = balOptionListCss;
139
+
140
+ const OptionList = class {
141
+ constructor(hostRef) {
142
+ index.registerInstance(this, hostRef);
143
+ this.inputId = `bal-option-list-${balOptionListIds++}`;
144
+ this.inheritAttributes = {};
145
+ this.ariaForm = form.defaultBalAriaForm;
146
+ this.multiple = false;
147
+ this.disabled = false;
148
+ this.required = false;
149
+ this.focusIndex = -1;
150
+ this.labelledby = undefined;
151
+ this.filter = 'includes';
152
+ this.contentHeight = 262;
153
+ }
154
+ createLogger(log) {
155
+ this.log = log;
156
+ }
157
+ contentHeightChanged(value) {
158
+ if (value === undefined) {
159
+ this.el.style.removeProperty('--bal-option-list-max-height');
160
+ }
161
+ else {
162
+ this.el.style.setProperty('--bal-option-list-max-height', `${value}px`);
163
+ }
164
+ }
165
+ /**
166
+ * LIFECYCLE
167
+ * ------------------------------------------------------
168
+ */
169
+ componentDidLoad() {
170
+ this.contentHeightChanged(this.contentHeight);
171
+ }
172
+ componentWillRender() {
173
+ this.inheritAttributes = attributes.inheritAttributes(this.el, ['aria-multiselectable', 'aria-labelledby']);
174
+ }
175
+ /**
176
+ * LISTENERS
177
+ * ------------------------------------------------------
178
+ */
179
+ listenToMouseEnter(ev) {
180
+ const options = this.options;
181
+ const indexToFocus = this.getOptionIndex(options, ev.detail.value);
182
+ if (indexToFocus !== undefined) {
183
+ this.updateFocus(options, indexToFocus);
184
+ }
185
+ }
186
+ listenToOptionChange({ detail }) {
187
+ if (!this.multiple) {
188
+ this.options.filter(option => option.value !== detail.value).forEach(option => (option.selected = false));
189
+ }
190
+ }
191
+ /**
192
+ * PUBLIC METHODS
193
+ * ------------------------------------------------------
194
+ */
195
+ /**
196
+ * Focus the first visible option in the list
197
+ * @returns focusIndex
198
+ */
199
+ async focusFirst() {
200
+ const options = this.options;
201
+ const indexToFocus = this.getFirstOptionIndex(options);
202
+ this.updateFocus(options, indexToFocus);
203
+ const option = options[indexToFocus];
204
+ this.updateScrollTopPosition(option);
205
+ await helpers.waitAfterFramePaint();
206
+ return indexToFocus;
207
+ }
208
+ /**
209
+ * Focus the last visible option in the list
210
+ * @returns focusIndex
211
+ */
212
+ async focusLast() {
213
+ const options = this.options;
214
+ const indexToFocus = this.getLastOptionIndex(options);
215
+ this.updateFocus(options, indexToFocus);
216
+ const option = options[indexToFocus];
217
+ this.updateScrollBottomPosition(option);
218
+ await helpers.waitAfterFramePaint();
219
+ return indexToFocus;
220
+ }
221
+ /**
222
+ * Focus the next visible option in the list
223
+ * @returns focusIndex
224
+ */
225
+ async focusNext() {
226
+ const options = this.options;
227
+ const indexToFocus = this.getNextOptionIndex(options);
228
+ this.updateFocus(options, indexToFocus);
229
+ const option = options[indexToFocus];
230
+ this.updateScrollBottomPosition(option);
231
+ await helpers.waitAfterFramePaint();
232
+ return indexToFocus;
233
+ }
234
+ /**
235
+ * Focus the previous visible option in the list
236
+ * @returns focusIndex
237
+ */
238
+ async focusPrevious() {
239
+ const options = this.options;
240
+ const indexToFocus = this.getPreviousOptionIndex(options);
241
+ this.updateFocus(options, indexToFocus);
242
+ const option = options[indexToFocus];
243
+ this.updateScrollTopPosition(option);
244
+ await helpers.waitAfterFramePaint();
245
+ return indexToFocus;
246
+ }
247
+ /**
248
+ * Focus the option with the label that starts with the search property
249
+ * @returns focusIndex
250
+ */
251
+ async focusByLabel(search, config) {
252
+ const options = this.options;
253
+ const indexToFocus = this.getOptionIndexByLabel(options, search);
254
+ this.updateFocus(options, indexToFocus);
255
+ const option = options[indexToFocus];
256
+ this.updateScrollTopPosition(option);
257
+ await helpers.waitAfterFramePaint();
258
+ if (config.select) {
259
+ await option.select();
260
+ }
261
+ return indexToFocus;
262
+ }
263
+ /**
264
+ * Filter the options by the given filter property and hides options
265
+ * @returns focusIndex
266
+ */
267
+ async filterByContent(search) {
268
+ const options = this.allOptions;
269
+ this.filterOptions(options, search);
270
+ await helpers.waitAfterFramePaint();
271
+ return this.focusFirst();
272
+ }
273
+ /**
274
+ * Shows or hides all options
275
+ */
276
+ async resetHidden(hidden = false) {
277
+ this.options.forEach(option => (option.hidden = hidden));
278
+ await helpers.waitAfterFramePaint();
279
+ this.resetFocus();
280
+ }
281
+ /**
282
+ * Selects or deselects all options
283
+ */
284
+ async resetSelected(selected = false) {
285
+ this.options.forEach(option => (option.selected = selected));
286
+ await helpers.waitAfterFramePaint();
287
+ }
288
+ /**
289
+ * Updates options
290
+ */
291
+ async updateSelected(values) {
292
+ this.options.forEach(option => (option.selected = values.includes(option.value)));
293
+ await helpers.waitAfterFramePaint();
294
+ }
295
+ /**
296
+ * Resets the focus index to pristine and scrolls to the top of the list
297
+ */
298
+ async resetFocus() {
299
+ const options = this.options;
300
+ const indexToFocus = -1;
301
+ this.updateFocus(options, indexToFocus);
302
+ this.scrollTo(0);
303
+ await helpers.waitAfterFramePaint();
304
+ return indexToFocus;
305
+ }
306
+ /**
307
+ * Returns a list of option values
308
+ */
309
+ async getSelectedValues() {
310
+ const options = this.options;
311
+ return options.filter(option => option.selected).map(option => option.value);
312
+ }
313
+ /**
314
+ * Returns a list of option labels
315
+ */
316
+ async getSelectedOptions(values) {
317
+ const options = this.options;
318
+ if (values && values.length > 0) {
319
+ return options.filter(option => values.includes(option.value)).map(option => option);
320
+ }
321
+ return options.filter(option => option.selected).map(option => option);
322
+ }
323
+ /**
324
+ * Returns a list of options
325
+ */
326
+ async getValues() {
327
+ return this.options.map(option => option.value);
328
+ }
329
+ /**
330
+ * Returns a list of options
331
+ */
332
+ async getLabels() {
333
+ return this.options.map(option => option.label);
334
+ }
335
+ /**
336
+ * Returns a list of accessible options
337
+ */
338
+ async getOptions() {
339
+ return this.options.filter(o => !o.disabled || !o.hidden);
340
+ }
341
+ /**
342
+ * Selects the option with the current focus
343
+ */
344
+ async selectByFocus() {
345
+ const options = this.options;
346
+ const option = options[this.focusIndex];
347
+ if (option) {
348
+ if (this.multiple) {
349
+ option.select(!option.selected);
350
+ }
351
+ else {
352
+ option.select(true);
353
+ }
354
+ }
355
+ }
356
+ /**
357
+ * @internal
358
+ */
359
+ async setAriaForm(ariaForm) {
360
+ this.ariaForm = Object.assign({}, ariaForm);
361
+ }
362
+ /**
363
+ * GETTERS
364
+ * ------------------------------------------------------
365
+ */
366
+ get options() {
367
+ return Array.from(this.el.querySelectorAll('bal-option')).filter(o => !o.hidden);
368
+ }
369
+ get allOptions() {
370
+ return Array.from(this.el.querySelectorAll('bal-option'));
371
+ }
372
+ /**
373
+ * PRIVATE METHODS
374
+ * ------------------------------------------------------
375
+ */
376
+ filterOptions(options, search) {
377
+ const filteredOptions = [];
378
+ const filter = this.filter === 'includes' ? utils.includes : utils.startsWith;
379
+ for (let index = 0; index < options.length; index++) {
380
+ const option = options[index];
381
+ const content = option.textContent || '';
382
+ if (filter(content, search)) {
383
+ filteredOptions.push(option);
384
+ option.hidden = false;
385
+ }
386
+ else {
387
+ option.hidden = true;
388
+ }
389
+ }
390
+ return filteredOptions;
391
+ }
392
+ isOptionVisible(option) {
393
+ const visibleHeight = this.el.clientHeight;
394
+ const topPosition = this.el.scrollTop;
395
+ const bottomPosition = topPosition + visibleHeight;
396
+ const isVisible = topPosition <= option.offsetTop && option.offsetTop + option.clientHeight <= bottomPosition;
397
+ return isVisible;
398
+ }
399
+ updateScrollTopPosition(option) {
400
+ if (option) {
401
+ const isVisible = this.isOptionVisible(option);
402
+ if (!isVisible) {
403
+ this.scrollTo(this.getScrollTopForTopPosition(option));
404
+ }
405
+ }
406
+ }
407
+ updateScrollBottomPosition(option) {
408
+ if (option) {
409
+ const isVisible = this.isOptionVisible(option);
410
+ if (!isVisible) {
411
+ this.scrollTo(this.getScrollTopForBottomPosition(option));
412
+ }
413
+ }
414
+ }
415
+ getScrollTopForTopPosition(option) {
416
+ const topPosition = option.offsetTop;
417
+ const scrollTop = topPosition;
418
+ if (scrollTop < 0) {
419
+ return 0;
420
+ }
421
+ return scrollTop;
422
+ }
423
+ getScrollTopForBottomPosition(option) {
424
+ const visibleHeight = this.el.clientHeight;
425
+ const bottomPosition = option.offsetTop + option.clientHeight;
426
+ const scrollTop = bottomPosition - visibleHeight;
427
+ if (scrollTop < 0) {
428
+ return 0;
429
+ }
430
+ return scrollTop;
431
+ }
432
+ async scrollTo(scrollTop) {
433
+ if (scrollTop !== undefined && scrollTop !== null) {
434
+ if (this.focusRaf !== undefined) {
435
+ cancelAnimationFrame(this.focusRaf);
436
+ }
437
+ this.focusRaf = helpers.raf(async () => {
438
+ this.el.scrollTop = scrollTop;
439
+ });
440
+ }
441
+ }
442
+ updateFocus(options, indexToFocus) {
443
+ this.focusIndex = indexToFocus;
444
+ for (let index = 0; index < options.length; index++) {
445
+ const option = options[index];
446
+ option.focused = index === indexToFocus;
447
+ }
448
+ }
449
+ getOptionIndex(options, value) {
450
+ for (let index = 0; index < options.length; index++) {
451
+ const option = options[index];
452
+ if (option.value === value) {
453
+ return index;
454
+ }
455
+ }
456
+ return undefined;
457
+ }
458
+ getFirstOptionIndex(options) {
459
+ for (let index = 0; index < options.length; index++) {
460
+ const option = options[index];
461
+ if (!option.disabled) {
462
+ return index;
463
+ }
464
+ }
465
+ return this.focusIndex;
466
+ }
467
+ getNextOptionIndex(options, index = this.focusIndex) {
468
+ if (index < 0) {
469
+ return this.getFirstOptionIndex(options);
470
+ }
471
+ const lastIndex = this.getLength(options);
472
+ let newIndex = index;
473
+ if (index < lastIndex) {
474
+ newIndex = index + 1;
475
+ if (options[newIndex].disabled) {
476
+ return this.getNextOptionIndex(options, newIndex);
477
+ }
478
+ }
479
+ return newIndex;
480
+ }
481
+ getPreviousOptionIndex(options, index = this.focusIndex) {
482
+ const firstIndex = this.getFirstOptionIndex(options);
483
+ if (index <= firstIndex) {
484
+ return firstIndex;
485
+ }
486
+ let newIndex = index;
487
+ newIndex = index - 1;
488
+ if (options[newIndex].disabled) {
489
+ return this.getPreviousOptionIndex(options, newIndex);
490
+ }
491
+ return newIndex;
492
+ }
493
+ getLastOptionIndex(options) {
494
+ for (let index = options.length - 1; index >= 0; index--) {
495
+ const option = options[index];
496
+ if (!option.disabled) {
497
+ return index;
498
+ }
499
+ }
500
+ return this.focusIndex;
501
+ }
502
+ getOptionIndexByLabel(options, label) {
503
+ if (label === undefined || label === '') {
504
+ return this.focusIndex;
505
+ }
506
+ const option = options.find(o => utils.startsWith(o.label || '', label));
507
+ if (!index$1.lodash_isnil(option) && option.id) {
508
+ return options.indexOf(option);
509
+ }
510
+ return this.focusIndex;
511
+ }
512
+ getLength(options) {
513
+ const indexes = options.map((option, index) => (option.disabled ? 0 : index));
514
+ const length = Math.max(...indexes);
515
+ return length;
516
+ }
517
+ /**
518
+ * RENDER
519
+ * ------------------------------------------------------
520
+ */
521
+ render() {
522
+ const block = bem.BEM.block('option-list');
523
+ const labelledby = this.labelledby || this.ariaForm.labelId;
524
+ return (index.h(index.Host, { class: Object.assign({}, block.class()), id: this.inputId, tabIndex: -1 }, index.h("div", Object.assign({ role: "listbox", "aria-labelledby": labelledby, "aria-disabled": this.disabled, class: Object.assign({}, block.element('container').class()) }, this.inheritAttributes), index.h("slot", null))));
525
+ }
526
+ get el() { return index.getElement(this); }
527
+ static get watchers() { return {
528
+ "contentHeight": ["contentHeightChanged"]
529
+ }; }
530
+ };
531
+ tslib_es6.__decorate([
532
+ log.Logger('bal-option-list'),
533
+ tslib_es6.__metadata("design:type", Function),
534
+ tslib_es6.__metadata("design:paramtypes", [Function]),
535
+ tslib_es6.__metadata("design:returntype", void 0)
536
+ ], OptionList.prototype, "createLogger", null);
537
+ let balOptionListIds = 0;
538
+ OptionList.style = BalOptionListStyle0;
539
+
540
+ exports.bal_option = Option;
541
+ exports.bal_option_list = OptionList;
@@ -5,9 +5,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  const index = require('./index-219b2f52.js');
6
6
  const tslib_es6 = require('./tslib.es6-a680968e.js');
7
7
  const bem = require('./bem-81bc6a2d.js');
8
- const breakpoints_subject = require('./breakpoints.subject-ee6b98cd.js');
9
- const config_default = require('./config.default-32725178.js');
10
- const breakpoints_decorator = require('./breakpoints.decorator-5a45d298.js');
8
+ const breakpoints_subject = require('./breakpoints.subject-66093c8f.js');
9
+ const config_default = require('./config.default-5bdd6e3d.js');
10
+ const breakpoints_decorator = require('./breakpoints.decorator-47fd6060.js');
11
11
  const config_decorator = require('./config.decorator-b393a72f.js');
12
12
  require('./helpers-2a8c8333.js');
13
13
  require('./browser-1d542d0f.js');
@@ -15,7 +15,7 @@ require('./icons.constant-7c82086a.js');
15
15
  require('./config.utils-e4cd49d6.js');
16
16
  require('./device-9f97a845.js');
17
17
  require('./listener-52d2e5fd.js');
18
- require('./tokens.esm-b37c935b.js');
18
+ require('./tokens.esm-bb0ef2db.js');
19
19
  require('./log-33398c2a.js');
20
20
 
21
21
  function generatePaginationControl(value, totalPages, pageRange) {
@@ -7,14 +7,14 @@ const tslib_es6 = require('./tslib.es6-a680968e.js');
7
7
  const bem = require('./bem-81bc6a2d.js');
8
8
  const browser = require('./browser-1d542d0f.js');
9
9
  const log = require('./log-33398c2a.js');
10
- const breakpoints_subject = require('./breakpoints.subject-ee6b98cd.js');
11
- const breakpoints_decorator = require('./breakpoints.decorator-5a45d298.js');
10
+ const breakpoints_subject = require('./breakpoints.subject-66093c8f.js');
11
+ const breakpoints_decorator = require('./breakpoints.decorator-47fd6060.js');
12
12
  require('./helpers-2a8c8333.js');
13
13
  require('./icons.constant-7c82086a.js');
14
14
  require('./config.utils-e4cd49d6.js');
15
15
  require('./device-9f97a845.js');
16
16
  require('./listener-52d2e5fd.js');
17
- require('./tokens.esm-b37c935b.js');
17
+ require('./tokens.esm-bb0ef2db.js');
18
18
 
19
19
  var top = 'top';
20
20
  var bottom = 'bottom';
@@ -5,15 +5,15 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  const index = require('./index-219b2f52.js');
6
6
  const tslib_es6 = require('./tslib.es6-a680968e.js');
7
7
  const bem = require('./bem-81bc6a2d.js');
8
- const breakpoints_subject = require('./breakpoints.subject-ee6b98cd.js');
9
- const breakpoints_decorator = require('./breakpoints.decorator-5a45d298.js');
8
+ const breakpoints_subject = require('./breakpoints.subject-66093c8f.js');
9
+ const breakpoints_decorator = require('./breakpoints.decorator-47fd6060.js');
10
10
  require('./helpers-2a8c8333.js');
11
11
  require('./browser-1d542d0f.js');
12
12
  require('./icons.constant-7c82086a.js');
13
13
  require('./config.utils-e4cd49d6.js');
14
14
  require('./device-9f97a845.js');
15
15
  require('./listener-52d2e5fd.js');
16
- require('./tokens.esm-b37c935b.js');
16
+ require('./tokens.esm-bb0ef2db.js');
17
17
 
18
18
  const balProgressBarCss = ":root{--bal-progress-bar-background-white:var(--bal-color-white);--bal-progress-bar-background-grey:var(--bal-color-grey-3);--bal-progress-bar-line-background:var(--bal-color-primary);--bal-progress-bar-line-radius:var(--bal-radius-rounded)}.bal-progress-bar{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:block;width:100%;min-width:0;height:.25rem}.bal-progress-bar--background-white{background:var(--bal-progress-bar-background-white)}.bal-progress-bar--background-grey{background:var(--bal-progress-bar-background-grey)}.bal-progress-bar__line{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:block;height:.25rem;width:0;background:var(--bal-progress-bar-line-background);border-top-right-radius:var(--bal-progress-bar-line-radius);border-bottom-right-radius:var(--bal-progress-bar-line-radius)}.bal-progress-bar__line--animated{will-change:width;-webkit-transition:all var(--bal-animation-transition-duration) var(--bal-animation-transition-easing);transition:all var(--bal-animation-transition-duration) var(--bal-animation-transition-easing)}.bal-progress-bar__line--full{border-top-right-radius:0;border-bottom-right-radius:0}";
19
19
  const BalProgressBarStyle0 = balProgressBarCss;