@designsystem-se/af 39.1.0-beta.2 → 39.1.0-beta.3

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 (185) hide show
  1. package/components/digi-bar-chart.js +1 -1
  2. package/components/digi-button.js +1 -1
  3. package/components/digi-calendar-week-view.js +2 -2
  4. package/components/digi-chart-line.js +1 -1
  5. package/components/digi-code-block.js +1 -1
  6. package/components/digi-code-example.js +2 -2
  7. package/components/digi-context-menu.js +1 -1
  8. package/components/digi-dialog.js +1 -1
  9. package/components/digi-form-category-filter.js +1 -1
  10. package/components/digi-form-error-list.js +2 -2
  11. package/components/digi-form-file-upload.js +1 -1
  12. package/components/digi-form-filter.js +1 -1
  13. package/components/digi-form-input-search.js +2 -2
  14. package/components/digi-form-select-filter.js +1 -1
  15. package/components/digi-header-navigation.js +1 -1
  16. package/components/digi-header.js +2 -2
  17. package/components/digi-navigation-pagination.js +1 -1
  18. package/components/digi-navigation-sidebar-button.js +1 -1
  19. package/components/digi-navigation-sidebar.js +1 -1
  20. package/components/digi-notification-alert.js +1 -1
  21. package/components/digi-tag.js +1 -1
  22. package/components/digi-tools-feedback-banner.js +7 -2
  23. package/components/digi-tools-feedback.js +1 -1
  24. package/components/p-3IdGnhr5.js +172 -0
  25. package/components/{p-DDZ0nalw.js → p-B-hL6z4l.js} +1 -1
  26. package/components/{p-Dq9EWvk8.js → p-BOM-CTrq.js} +1 -1
  27. package/components/{p-C32dTT4K.js → p-BZkK1uIs.js} +1 -1
  28. package/dist/cjs/button-type.enum-2UH0KkO-.js +8 -0
  29. package/dist/cjs/{button-variation.enum-DkUalo9f.js → button-variation.enum-ngMqFLdW.js} +6 -0
  30. package/dist/cjs/{code-example-variation.enum-BCENTUV2.js → code-example-variation.enum-Cq-BioXW.js} +0 -6
  31. package/dist/cjs/digi-arbetsformedlingen.cjs.js +1 -1
  32. package/dist/cjs/{digi-calendar-week-view.cjs.entry.js → digi-button_5.cjs.entry.js} +260 -72
  33. package/dist/cjs/digi-calendar-datepicker.cjs.entry.js +10 -6
  34. package/dist/cjs/digi-code-block_3.cjs.entry.js +10 -6
  35. package/dist/cjs/digi-code-example.cjs.entry.js +4 -4
  36. package/dist/cjs/digi-dialog.cjs.entry.js +10 -6
  37. package/dist/cjs/digi-footer.cjs.entry.js +9 -5
  38. package/dist/cjs/digi-form-error-list.cjs.entry.js +9 -5
  39. package/dist/cjs/digi-form-file-upload.cjs.entry.js +11 -10
  40. package/dist/cjs/digi-form-input-search.cjs.entry.js +9 -7
  41. package/dist/cjs/digi-form-input.cjs.entry.js +205 -0
  42. package/dist/cjs/digi-form-label_3.cjs.entry.js +147 -0
  43. package/dist/cjs/digi-form-receipt.cjs.entry.js +9 -5
  44. package/dist/cjs/digi-form-select-filter.cjs.entry.js +649 -0
  45. package/dist/cjs/digi-header-navigation.cjs.entry.js +9 -5
  46. package/dist/cjs/digi-header.cjs.entry.js +9 -5
  47. package/dist/cjs/digi-icon-check.cjs.entry.js +28 -0
  48. package/dist/cjs/digi-icon-chevron-down.cjs.entry.js +28 -0
  49. package/dist/cjs/digi-icon-validation-error_2.cjs.entry.js +51 -0
  50. package/dist/cjs/digi-navigation-pagination.cjs.entry.js +9 -5
  51. package/dist/cjs/digi-notification-alert.cjs.entry.js +9 -5
  52. package/dist/cjs/digi-notification-error-page.cjs.entry.js +9 -5
  53. package/dist/cjs/digi-title-logo.cjs.entry.js +9 -5
  54. package/dist/cjs/digi-tools-feedback-banner.cjs.entry.js +7 -2
  55. package/dist/cjs/digi-tools-feedback.cjs.entry.js +11 -7
  56. package/dist/cjs/digi-util-keydown-handler.cjs.entry.js +81 -0
  57. package/dist/cjs/{form-validation-message-variation.enum-DgkifAnP.js → form-file-upload-variation.enum-xcEOoggr.js} +0 -7
  58. package/dist/cjs/form-input-search-variation.enum-VVfvlVeM.js +8 -0
  59. package/dist/cjs/{form-input-type.enum-B2CsNSBg.js → form-input-type.enum-DvF_MTHK.js} +0 -14
  60. package/dist/cjs/form-input-variation.enum-kpoXNUuI.js +29 -0
  61. package/dist/cjs/form-validation-message-variation.enum-BA5nmCiw.js +8 -0
  62. package/dist/cjs/index-tbq85ezH.js +26 -10
  63. package/dist/cjs/index.cjs.js +52 -48
  64. package/dist/cjs/loader.cjs.js +1 -1
  65. package/dist/cjs/{typography-variation.enum-4snUBTF7.js → typography-variation.enum-BDSt7CVI.js} +0 -28
  66. package/dist/collection/components/_button/button/button.css +23 -0
  67. package/dist/collection/components/_calendar/week-view/calendar-week-view.css +36 -47
  68. package/dist/collection/components/_form/form-file-upload/form-file-upload.css +11 -15
  69. package/dist/collection/components/_form/form-input-search/form-input-search.css +0 -4
  70. package/dist/collection/components/_tools/tools-feedback-banner/tools-feedback-banner.js +7 -2
  71. package/dist/collection/design-tokens/components/_button.variables.scss +6 -0
  72. package/dist/collection/design-tokens/components/_logo.variables.scss +17 -15
  73. package/dist/digi-arbetsformedlingen/design-tokens/components/_button.variables.scss +6 -0
  74. package/dist/digi-arbetsformedlingen/digi-arbetsformedlingen.esm.js +1 -1
  75. package/dist/digi-arbetsformedlingen/index.esm.js +1 -1
  76. package/dist/digi-arbetsformedlingen/p-0a993ca4.entry.js +1 -0
  77. package/dist/digi-arbetsformedlingen/p-0b0009eb.entry.js +1 -0
  78. package/dist/digi-arbetsformedlingen/p-21853656.entry.js +1 -0
  79. package/dist/digi-arbetsformedlingen/p-23d8d58c.entry.js +1 -0
  80. package/dist/digi-arbetsformedlingen/p-28f335d8.entry.js +1 -0
  81. package/dist/digi-arbetsformedlingen/p-2f65802b.entry.js +1 -0
  82. package/dist/digi-arbetsformedlingen/{p-77d355fe.entry.js → p-4336cdff.entry.js} +1 -1
  83. package/dist/digi-arbetsformedlingen/p-4c9a428d.entry.js +1 -0
  84. package/dist/digi-arbetsformedlingen/p-4ee14c12.entry.js +1 -0
  85. package/dist/digi-arbetsformedlingen/p-4smNltRI.js +1 -0
  86. package/dist/digi-arbetsformedlingen/p-5c7e6e61.entry.js +1 -0
  87. package/dist/digi-arbetsformedlingen/p-60928fb0.entry.js +1 -0
  88. package/dist/digi-arbetsformedlingen/p-68e721b1.entry.js +1 -0
  89. package/dist/digi-arbetsformedlingen/p-7da0451b.entry.js +1 -0
  90. package/dist/digi-arbetsformedlingen/p-87e306b0.entry.js +1 -0
  91. package/dist/digi-arbetsformedlingen/p-8848ce2b.entry.js +1 -0
  92. package/dist/digi-arbetsformedlingen/p-91a0e1ca.entry.js +1 -0
  93. package/dist/digi-arbetsformedlingen/p-9d3da044.entry.js +1 -0
  94. package/dist/digi-arbetsformedlingen/p-B8hpiXmh.js +1 -0
  95. package/dist/digi-arbetsformedlingen/p-BMQm4N5I.js +1 -0
  96. package/dist/digi-arbetsformedlingen/p-BSJH8Lpg.js +1 -0
  97. package/dist/digi-arbetsformedlingen/p-BfyJgcLA.js +1 -0
  98. package/dist/digi-arbetsformedlingen/p-BvWKyXb_.js +1 -0
  99. package/dist/digi-arbetsformedlingen/p-DGI7Jkg2.js +1 -0
  100. package/dist/digi-arbetsformedlingen/p-DShzaNrQ.js +1 -0
  101. package/dist/digi-arbetsformedlingen/p-DfWZa2Wv.js +1 -0
  102. package/dist/digi-arbetsformedlingen/p-a563f0f4.entry.js +1 -0
  103. package/dist/digi-arbetsformedlingen/p-ad7e2dc6.entry.js +1 -0
  104. package/dist/digi-arbetsformedlingen/p-beab4698.entry.js +1 -0
  105. package/dist/digi-arbetsformedlingen/p-c9c140af.entry.js +1 -0
  106. package/dist/digi-arbetsformedlingen/p-d62e264c.entry.js +1 -0
  107. package/dist/digi-arbetsformedlingen/p-ef47f143.entry.js +1 -0
  108. package/dist/digi-arbetsformedlingen/p-f9a2a80e.entry.js +1 -0
  109. package/dist/digi-arbetsformedlingen/p-feaeab97.entry.js +1 -0
  110. package/dist/digi-arbetsformedlingen/{p-DbBOgLZR.js → p-xwICssEK.js} +1 -1
  111. package/dist/esm/button-type.enum-DShzaNrQ.js +8 -0
  112. package/dist/esm/{button-variation.enum-y5Nm4oWF.js → button-variation.enum-BMQm4N5I.js} +7 -1
  113. package/dist/esm/{code-example-variation.enum-Ooszw6tl.js → code-example-variation.enum-DGI7Jkg2.js} +1 -7
  114. package/dist/esm/digi-arbetsformedlingen.js +1 -1
  115. package/dist/esm/{digi-calendar-week-view.entry.js → digi-button_5.entry.js} +190 -6
  116. package/dist/esm/digi-calendar-datepicker.entry.js +10 -6
  117. package/dist/esm/digi-code-block_3.entry.js +9 -5
  118. package/dist/esm/digi-code-example.entry.js +2 -2
  119. package/dist/esm/digi-dialog.entry.js +9 -5
  120. package/dist/esm/digi-footer.entry.js +9 -5
  121. package/dist/esm/digi-form-error-list.entry.js +9 -5
  122. package/dist/esm/digi-form-file-upload.entry.js +3 -2
  123. package/dist/esm/digi-form-input-search.entry.js +4 -2
  124. package/dist/esm/digi-form-input.entry.js +203 -0
  125. package/dist/esm/digi-form-label_3.entry.js +143 -0
  126. package/dist/esm/digi-form-receipt.entry.js +9 -5
  127. package/dist/esm/digi-form-select-filter.entry.js +647 -0
  128. package/dist/esm/digi-header-navigation.entry.js +9 -5
  129. package/dist/esm/digi-header.entry.js +9 -5
  130. package/dist/esm/digi-icon-check.entry.js +26 -0
  131. package/dist/esm/digi-icon-chevron-down.entry.js +26 -0
  132. package/dist/esm/digi-icon-validation-error_2.entry.js +48 -0
  133. package/dist/esm/digi-navigation-pagination.entry.js +9 -5
  134. package/dist/esm/digi-notification-alert.entry.js +9 -5
  135. package/dist/esm/digi-notification-error-page.entry.js +9 -5
  136. package/dist/esm/digi-title-logo.entry.js +9 -5
  137. package/dist/esm/digi-tools-feedback-banner.entry.js +7 -2
  138. package/dist/esm/digi-tools-feedback.entry.js +9 -5
  139. package/dist/esm/digi-util-keydown-handler.entry.js +79 -0
  140. package/dist/esm/{form-validation-message-variation.enum-9n7Okhf1.js → form-file-upload-variation.enum-BfyJgcLA.js} +1 -8
  141. package/dist/esm/form-input-search-variation.enum-BvWKyXb_.js +8 -0
  142. package/dist/esm/{form-input-type.enum-CN1mgrt1.js → form-input-type.enum-BSJH8Lpg.js} +1 -15
  143. package/dist/esm/form-input-variation.enum-DfWZa2Wv.js +29 -0
  144. package/dist/esm/form-validation-message-variation.enum-B8hpiXmh.js +8 -0
  145. package/dist/esm/{index-DnTiPaEs.js → index-B1Je6g2n.js} +1 -1
  146. package/dist/esm/index-Co_lVhh_.js +26 -10
  147. package/dist/esm/index.js +9 -5
  148. package/dist/esm/loader.js +1 -1
  149. package/dist/esm/{typography-variation.enum-BDBYHWrh.js → typography-variation.enum-4smNltRI.js} +1 -29
  150. package/dist/types/components/_tools/tools-feedback-banner/tools-feedback-banner.d.ts +1 -0
  151. package/hydrate/index.js +11 -6
  152. package/hydrate/index.mjs +11 -6
  153. package/package.json +1 -1
  154. package/components/p--RxphPe_.js +0 -172
  155. package/dist/cjs/digi-button_11.cjs.entry.js +0 -1274
  156. package/dist/cjs/digi-icon-chevron-left_2.cjs.entry.js +0 -51
  157. package/dist/cjs/digi-typography.cjs.entry.js +0 -22
  158. package/dist/digi-arbetsformedlingen/p-0dc8c1f1.entry.js +0 -1
  159. package/dist/digi-arbetsformedlingen/p-14d011c8.entry.js +0 -1
  160. package/dist/digi-arbetsformedlingen/p-31d3b121.entry.js +0 -1
  161. package/dist/digi-arbetsformedlingen/p-38d6c196.entry.js +0 -1
  162. package/dist/digi-arbetsformedlingen/p-44c16261.entry.js +0 -1
  163. package/dist/digi-arbetsformedlingen/p-45f30e15.entry.js +0 -1
  164. package/dist/digi-arbetsformedlingen/p-478dd735.entry.js +0 -1
  165. package/dist/digi-arbetsformedlingen/p-591509af.entry.js +0 -1
  166. package/dist/digi-arbetsformedlingen/p-8c4b642e.entry.js +0 -1
  167. package/dist/digi-arbetsformedlingen/p-8fb4e6a3.entry.js +0 -1
  168. package/dist/digi-arbetsformedlingen/p-93367afb.entry.js +0 -1
  169. package/dist/digi-arbetsformedlingen/p-9n7Okhf1.js +0 -1
  170. package/dist/digi-arbetsformedlingen/p-BDBYHWrh.js +0 -1
  171. package/dist/digi-arbetsformedlingen/p-CN1mgrt1.js +0 -1
  172. package/dist/digi-arbetsformedlingen/p-Ooszw6tl.js +0 -1
  173. package/dist/digi-arbetsformedlingen/p-aaeddc10.entry.js +0 -1
  174. package/dist/digi-arbetsformedlingen/p-ab84eed8.entry.js +0 -1
  175. package/dist/digi-arbetsformedlingen/p-bd635299.entry.js +0 -1
  176. package/dist/digi-arbetsformedlingen/p-c273763e.entry.js +0 -1
  177. package/dist/digi-arbetsformedlingen/p-c73ddbe2.entry.js +0 -1
  178. package/dist/digi-arbetsformedlingen/p-cd90ab0b.entry.js +0 -1
  179. package/dist/digi-arbetsformedlingen/p-cfe0bcf9.entry.js +0 -1
  180. package/dist/digi-arbetsformedlingen/p-d441cad3.entry.js +0 -1
  181. package/dist/digi-arbetsformedlingen/p-fd330ef0.entry.js +0 -1
  182. package/dist/digi-arbetsformedlingen/p-y5Nm4oWF.js +0 -1
  183. package/dist/esm/digi-button_11.entry.js +0 -1262
  184. package/dist/esm/digi-icon-chevron-left_2.entry.js +0 -48
  185. package/dist/esm/digi-typography.entry.js +0 -20
@@ -0,0 +1,649 @@
1
+ 'use strict';
2
+
3
+ var index = require('./index-tbq85ezH.js');
4
+ var randomIdGenerator_util = require('./randomIdGenerator.util-C8XR2Tn1.js');
5
+ var logger_util = require('./logger.util-DUhrcCTY.js');
6
+ var detectClickOutside_util = require('./detectClickOutside.util-DKR8Sdiw.js');
7
+ var detectFocusOutside_util = require('./detectFocusOutside.util-BNHrXMJ2.js');
8
+ var text = require('./text-Cu3CaHGj.js');
9
+ require('./badge-notification-shape.enum-CEyEo2G5.js');
10
+ var typographyVariation_enum = require('./typography-variation.enum-BDSt7CVI.js');
11
+ require('./badge-status-variation.enum-XX8d--rj.js');
12
+ require('./button-variation.enum-ngMqFLdW.js');
13
+ require('./button-type.enum-2UH0KkO-.js');
14
+ require('./calendar-week-view-heading-level.enum-NEkm5SUq.js');
15
+ require('./bar-chart-variation.enum-BZFN4377.js');
16
+ require('./code-example-variation.enum-Cq-BioXW.js');
17
+ require('./code-variation.enum-BM-hhQuD.js');
18
+ require('./expandable-accordion-header-level.enum-CjL9V3Kt.js');
19
+ require('./expandable-faq-item-variation.enum-aKkYAQgd.js');
20
+ require('./expandable-faq-variation.enum-FEybT9s4.js');
21
+ require('./footer-card-variation.enum-BPnpkC45.js');
22
+ require('./form-checkbox-variation.enum-BfOGU4Qt.js');
23
+ require('./form-file-upload-variation.enum-xcEOoggr.js');
24
+ require('./form-input-search-variation.enum-VVfvlVeM.js');
25
+ var formInputType_enum = require('./form-input-type.enum-DvF_MTHK.js');
26
+ var formInputVariation_enum = require('./form-input-variation.enum-kpoXNUuI.js');
27
+ require('./form-radiogroup-validation.enum-DBDbjF6N.js');
28
+ require('./form-select-variation.enum-e6wjWyaS.js');
29
+ require('./form-textarea-variation.enum-BcEyaR5W.js');
30
+ require('./form-validation-message-variation.enum-BA5nmCiw.js');
31
+ require('./info-card-multi-type.enum-pqhvdrsN.js');
32
+ require('./info-card-variation.enum-B1cqmknX.js');
33
+ require('./layout-container-max-width.enum-DqWtU7WK.js');
34
+ require('./layout-block-variation.enum-BldWvnDk.js');
35
+ require('./layout-columns-variation.enum-OgD-hvRN.js');
36
+ require('./link-button-variation.enum-03cHZQxx.js');
37
+ require('./list-type.enum-CkFOn-eB.js');
38
+ require('./loader-skeleton-variation.enum-UvPtdesw.js');
39
+ require('./loader-spinner-size.enum-u5AQs-UJ.js');
40
+ require('./logo-color.enum-BJZv-f6R.js');
41
+ require('./media-figure-alignment.enum-BWO1sg67.js');
42
+ require('./navigation-sidebar-variation.enum-70NIGQoi.js');
43
+ require('./navigation-vertical-menu-variation.enum-7IUICId3.js');
44
+ require('./progress-circle-role.enum-DCkczyl8.js');
45
+ require('./progress-indicator-variation.enum-3KORUGDH.js');
46
+ require('./progress-list-item-variation.enum-Dk3YS--x.js');
47
+ require('./progress-list-variation.enum-BvLLJK9O.js');
48
+ require('./progressbar-variation.enum-CnRJPSs7.js');
49
+ require('./quote-image-inner-position.enum-CLifVlj0.js');
50
+ require('./table-variation.enum-DlDZKXbq.js');
51
+ require('./tag-media-icon.enum-DzhiwvjI.js');
52
+ require('./tag-size.enum-DFom3Smn.js');
53
+ require('./tools-feedback-banner-type.enum-Dyeg3XNb.js');
54
+ require('./tools-feedback-rating-variation.enum-CBI4GhXs.js');
55
+ require('./tools-theme-provider.brand.enum-BzduvCUY.js');
56
+ require('./typography-heading-jumbo-variation.enum-Di1Jeh0G.js');
57
+ require('./typography-meta-variation.enum-lvDemnSz.js');
58
+ require('./typography-time-variation.enum-D2gIVzYH.js');
59
+ require('./util-breakpoint-observer-breakpoints.enum-zoJiezkV.js');
60
+ require('./detectClosest.util-D1z809xM.js');
61
+
62
+ const formSelectFilterCss = () => `.sc-digi-form-select-filter-h{--digi--form-select-filter--footer--background:var(--digi--color--background--secondary);--digi--form-select-filter--scroll--max-height:10.625rem;--digi--form-select-filter--scroll--padding:var(--digi--padding--small);--digi--form-select-filter--reset-button--margin-right:var(--digi--padding--small);--digi--form-select-filter--legend__border-bottom:var(--digi--border-width--primary) solid var(--digi--color--divider--primary);--digi--form-select-filter--list--margin:0;--digi--form-select-filter--list--padding:var(--digi--gutter--small) 0 0 0;--digi--form-select-filter--item--margin:var(--digi--gutter--small) 0;--digi--form-select-filter--toggle-icon--transition:ease-in-out 0.2s all;--digi--form-select-filter--dropdown--border-radius:var(--digi--border-radius--input);--digi--form-select-filter--dropdown--background:var(--digi--color--background--interactive--default--input-elements);--digi--form-select-filter--dropdown--min-width:18.75rem;--digi--form-select-filter--dropdown--margin-top:var(--digi--gutter--small);--digi--form-select-filter--dropdown--z-index:999;--digi--form-select-filter--dropdown--header--background:var(--digi--color--background--secondary-accent);--digi--form-select-filter--dropdown--item--cursor:pointer;--digi--form-select-filter--dropdown--item--height:auto;--digi--form-select-filter--dropdown--item--min-height:1.5rem;--digi--form-select-filter--dropdown--item--color:var(--digi--color--text--primary);--digi--form-select-filter--dropdown--item--font-size:var(--digi--typography--body--font-size--desktop);--digi--form-select-filter--dropdown--item--font-family:var(--digi--global--typography--font-family--default);--digi--form-select-filter--dropdown--item--font-weight--default:var(--digi--typography--link--font-weight--desktop);--digi--form-select-filter--dropdown--item--font-weight--selected:var(--digi--typography--link-bold--font-weight--desktop);--digi--form-select-filter--dropdown--item--font-weight--hover:var(--digi--typography--link-bold--font-weight--desktop);--digi--form-select-filter--dropdown--item--letter-spacing:0px;--digi--form-select-filter--dropdown--item--line-height:1.5;--digi--form-select-filter--dropdown--item--margin-bottom:0px;--digi--form-select-filter--dropdown--item--border-width:var(--digi--border-width--primary);--digi--form-select-filter--dropdown--item--border-type:var(--digi--border-style--primary);--digi--form-select-filter--dropdown--item--border-color:var(--digi--color--divider--primary);--digi--form-select-filter--dropdown--item--padding-y:var(--digi--margin--small);--digi--form-select-filter--dropdown--item--padding-x:var(--digi--margin--largest);--digi--form-select-filter--dropdown--item--multiple--padding-y:var(--digi--margin--small);--digi--form-select-filter--dropdown--item--multiple--padding-x:var(--digi--padding--largest-2);--digi--form-select-filter--dropdown--item--background-color--default:var(--digi--color--background--interactive--default--input-elements);--digi--form-select-filter--dropdown--item--background-color--focus:var(--digi--color--background--interactive--hover--quarternary);--digi--form-select-filter--dropdown--item--background-color--hover:var(--digi--color--background--interactive--hover--quarternary);--digi--form-select-filter--dropdown--item--background-color--active:var(--digi--color--background--interactive--selected--tertiary);--digi--form-select-filter--dropdown--item--background-color--selected:var(--digi--color--background--interactive--selected--tertiary);--digi--form-select-filter--dropdown--item--checkbox--background-color:var(--digi--color--background--interactive--default--input-elements);--digi--form-select-filter--dropdown--item--checkbox--background-color--selected:var(--digi--color--marking--indication--primary);--digi--form-select-filter--dropdown--item--checkbox--border-color:var(--digi--color--border--interactive--default--on-input);--digi--form-select-filter--dropdown--item--checkbox--border-width:var(--digi--border-width--primary);--digi--form-select-filter--dropdown--item--checkbox--border-style:var(--digi--border-style--primary);--digi--form-select-filter--dropdown--item--checkbox--border-radius:var(--digi--border-radius--tertiary);--digi--form-select-filter--dropdown--item--checkbox--width:1.25rem;--digi--form-select-filter--dropdown--item--checkbox--height:1.25rem;--digi--form-select-filter--toggle-button-indicator--color--default:var(--digi--color--background--interactive--default--input-elements);--digi--form-select-filter--toggle-button-indicator--color--active:var(--digi--color--marking--indication--primary);--digi--form-select-filter--toggle-button-indicator--width:1rem;--digi--form-select-filter--toggle-button-indicator--height:1rem;--digi--form-select-filter--toggle-button-indicator--margin-right:var(--digi--margin--small);--digi--form-select-filter--toggle-button-indicator--margin-left:calc(var(--digi--margin--smaller) * -1);--digi--form-select-filter--toggle-button--text--margin-right:var(--digi--margin--smaller);--digi--form-select-filter--toggle-button-indicator--color:var(--digi--color--marking--indication--primary);--digi--form-select-filter--toggle-icon--width:0.875rem;--digi--form-select-filter--toggle-icon--height:0.875rem;--digi--form-select-filter--search-input--border-radius:var(--digi--border-radius--input);--digi--form-select-filter--search-input--border-width:var(--digi--border-width--input-regular);--digi--form-select-filter--search-input--border-style:var(--digi--border-style--primary);--digi--form-select-filter--search-input--border-color:var(--digi--form-select-filter--toggle-button--border-width--neutral);--digi--form-select-filter--search-input--height:var(--digi--input-height--medium);--digi--form-select-filter--search-input--width:100%;--digi--form-select-filter--legend--font-weight:var(--digi--typography--preamble--font-weight--desktop);--digi--form-select-filter--legend--font-family:var(--digi--global--typography--font-family--default);--digi--form-select-filter--legend--font-size:var(--digi--typography--preamble--font-size--desktop);--digi--form-select-filter--toggle-button--border-width--neutral:var(--digi--border-width--input-regular);--digi--form-select-filter--toggle-button--border-color--neutral:var(--digi--color--border--interactive--default--on-input);--digi--form-select-filter--toggle-button--background--neutral:var(--digi--color--background--interactive--default--input-elements);--digi--form-select-filter--toggle-button--border-width--success:var(--digi--border-width--input-validation);--digi--form-select-filter--toggle-button--border-color--success:var(--digi--color--border--interactive--validation--success);--digi--form-select-filter--toggle-button--background--success:var(--digi--color--background--interactive--validation--success);--digi--form-select-filter--toggle-button--border-width--warning:var(--digi--border-width--input-validation);--digi--form-select-filter--toggle-button--border-color--warning:var(--digi--color--border--interactive--validation--warning);--digi--form-select-filter--toggle-button--background--warning:var(--digi--color--background--interactive--validation--warning);--digi--form-select-filter--toggle-button--border-width--error:var(--digi--border-width--input-validation);--digi--form-select-filter--toggle-button--border-color--error:var(--digi--color--border--interactive--validation--error);--digi--form-select-filter--toggle-button--background--error:var(--digi--color--background--interactive--validation--error);box-sizing:content-box}.sc-digi-form-select-filter-h .digi--a11y--sr-only.sc-digi-form-select-filter{border:0;clip:rect(1px, 1px, 1px, 1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sc-digi-form-select-filter-h .digi-form-select-filter.sc-digi-form-select-filter{display:flex;flex-direction:column;gap:0.4em;position:relative;--INDICATOR--BACKGROUND:var(--digi--form-select-filter--toggle-button-indicator--color--default);--SCROLL--MAX-HEIGHT:var(--digi--form-select-filter--scroll--max-height)}.sc-digi-form-select-filter-h .digi-form-select-filter--neutral.sc-digi-form-select-filter{--BORDER-WIDTH:var( --digi--form-select-filter--toggle-button--border-width--neutral );--BORDER-COLOR:var( --digi--form-select-filter--toggle-button--border-color--neutral );--BACKGROUND:var( --digi--form-select-filter--toggle-button--background--neutral )}.sc-digi-form-select-filter-h .digi-form-select-filter--success.sc-digi-form-select-filter{--BORDER-WIDTH:var( --digi--form-select-filter--toggle-button--border-width--success );--BORDER-COLOR:var( --digi--form-select-filter--toggle-button--border-color--success );--BACKGROUND:var( --digi--form-select-filter--toggle-button--background--success )}.sc-digi-form-select-filter-h .digi-form-select-filter--warning.sc-digi-form-select-filter{--BORDER-WIDTH:var( --digi--form-select-filter--toggle-button--border-width--warning );--BORDER-COLOR:var( --digi--form-select-filter--toggle-button--border-color--warning );--BACKGROUND:var( --digi--form-select-filter--toggle-button--background--warning )}.sc-digi-form-select-filter-h .digi-form-select-filter--error.sc-digi-form-select-filter{--BORDER-WIDTH:var( --digi--form-select-filter--toggle-button--border-width--error );--BORDER-COLOR:var( --digi--form-select-filter--toggle-button--border-color--error );--BACKGROUND:var( --digi--form-select-filter--toggle-button--background--error )}.sc-digi-form-select-filter-h .digi-form-select-filter--open.sc-digi-form-select-filter .digi-form-select-filter__toggle-icon.sc-digi-form-select-filter{transform:rotate(-180deg)}.sc-digi-form-select-filter-h .digi-form-select-filter__toggle-button.sc-digi-form-select-filter{background:var(--BACKGROUND);border:var(--BORDER-WIDTH) solid var(--BORDER-COLOR);border-radius:var(--digi--border-radius--input);color:var(--digi--color--text--primary);cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-weight:400;font-size:var(--digi--typography--body--font-size--desktop);width:100%;padding:0 var(--digi--gutter--medium);min-height:var(--digi--input-height--medium);font-family:var(--digi--global--typography--font-family--default)}.sc-digi-form-select-filter-h .digi-form-select-filter__toggle-button.sc-digi-form-select-filter:focus-visible,.sc-digi-form-select-filter-h .digi-form-select-filter__toggle-button.sc-digi-form-select-filter:focus{outline:2px solid black;outline-offset:2px;box-shadow:0px 0px 0px 5px white}.sc-digi-form-select-filter-h .digi-form-select-filter__toggle-icon.sc-digi-form-select-filter{transition:var(--digi--form-select-filter--toggle-icon--transition)}.sc-digi-form-select-filter-h .digi-form-select-filter__toggle-icon.sc-digi-form-select-filter-s>[slot^=icon],.sc-digi-form-select-filter-h .digi-form-select-filter__toggle-icon .sc-digi-form-select-filter-s>[slot^=icon]{--digi--icon--width:var(--digi--form-select-filter--toggle-icon--width);--digi--icon--height:var(--digi--form-select-filter--toggle-icon--height)}.sc-digi-form-select-filter-h .digi-form-select-filter__legend.sc-digi-form-select-filter{font-weight:var(--digi--form-select-filter--legend--font-weight);font-family:var(--digi--form-select-filter--legend--font-family);font-size:var(--digi--form-select-filter--legend--font-size);border:0;padding:0;margin:0;border:0;clip:rect(1px, 1px, 1px, 1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sc-digi-form-select-filter-h .digi-form-select-filter__scroll.sc-digi-form-select-filter{max-height:var(--SCROLL--MAX-HEIGHT);overflow-y:auto}.sc-digi-form-select-filter-h .digi-form-select-filter__header.sc-digi-form-select-filter{background-color:var(--digi--form-select-filter--dropdown--header--background);padding:12px 12px 22px}.sc-digi-form-select-filter-h .digi-form-select-filter__header.sc-digi-form-select-filter input.sc-digi-form-select-filter{border-radius:var(--digi--form-select-filter--search-input--border-radius);border-width:var(--digi--form-select-filter--search-input--border-width);border-style:var(--digi--form-select-filter--search-input--border-style);border-color:var(--digi--form-select-filter--search-input--border-color);height:var(--digi--form-select-filter--search-input--height);width:var(--digi--form-select-filter--search-input--width)}.sc-digi-form-select-filter-h .digi-form-select-filter__header.sc-digi-form-select-filter legend.sc-digi-form-select-filter{width:100%;border-bottom:var(--digi--form-select-filter--legend__border-bottom)}.sc-digi-form-select-filter-h .digi-form-select-filter__footer.sc-digi-form-select-filter{display:flex;align-items:center;justify-content:center;background:var(--digi--form-select-filter--footer--background);padding:var(--digi--form-select-filter--scroll--padding)}.sc-digi-form-select-filter-h .digi-form-select-filter__reset-button.sc-digi-form-select-filter{display:inline-block;margin-right:var(--digi--form-select-filter--reset-button--margin-right)}.sc-digi-form-select-filter-h .digi-form-select-filter__dropdown.sc-digi-form-select-filter{box-shadow:0 2px 6px 0 rgba(0, 0, 0, 0.7);min-width:var(--digi--form-select-filter--dropdown--min-width);width:100%;position:absolute;z-index:var(--digi--form-select-filter--dropdown--z-index);background:var(--digi--form-select-filter--dropdown--background);border-radius:var(--digi--form-select-filter--dropdown--border-radius);overflow:hidden;margin-top:var(--digi--form-select-filter--dropdown--margin-top)}.sc-digi-form-select-filter-h .digi-form-select-filter__dropdown.sc-digi-form-select-filter fieldset.sc-digi-form-select-filter{border:none;padding:0;margin:0}@media (min-width: 48rem){.sc-digi-form-select-filter-h .digi-form-select-filter__dropdown--right.sc-digi-form-select-filter{right:0}}.sc-digi-form-select-filter-h .digi-form-select-filter__dropdown--hidden.sc-digi-form-select-filter{display:none}.sc-digi-form-select-filter-h .digi-form-select-filter__label.sc-digi-form-select-filter{display:block}.sc-digi-form-select-filter-h .digi-form-select-filter__toggle-button-wrapper--activated.sc-digi-form-select-filter{display:flex;align-items:center}.sc-digi-form-select-filter-h .digi-form-select-filter__toggle-button-indicator.sc-digi-form-select-filter{display:none;--digi--icon--color:var(--digi--form-select-filter--toggle-button-indicator--color)}.sc-digi-form-select-filter-h .digi-form-select-filter__toggle-button-indicator--active.sc-digi-form-select-filter{display:flex;margin-right:var(--digi--form-select-filter--toggle-button-indicator--margin-right);width:var(--digi--form-select-filter--toggle-button-indicator--width);height:var(--digi--form-select-filter--toggle-button-indicator--height)}.sc-digi-form-select-filter-h .digi-form-select-filter__search-status.sc-digi-form-select-filter{font-family:var(--digi--global--typography--font-family--default);font-size:var(--digi--typography--label--font-size--desktop);color:var(--digi--color--text--primary)}.sc-digi-form-select-filter-h .digi-form-select-filter__list.sc-digi-form-select-filter{margin:var(--digi--form-select-filter--list--margin);padding:0;max-width:100%}.sc-digi-form-select-filter-h .digi-form-select-filter__item.sc-digi-form-select-filter{background-color:var(--digi--form-select-filter--dropdown--item--background-color--default);border-width:0;box-sizing:border-box;border-bottom-width:var(--digi--form-select-filter--dropdown--item--border-width);border-style:var(--digi--form-select-filter--dropdown--item--border-type);border-color:var(--digi--form-select-filter--dropdown--item--border-color);cursor:var(--digi--form-select-filter--dropdown--item--cursor);color:var(--digi--form-select-filter--dropdown--item--color);display:block;font-size:var(--digi--form-select-filter--dropdown--item--font-size);font-family:var(--digi--form-select-filter--dropdown--item--font-family);font-weight:var(--digi--form-select-filter--dropdown--item--font-weight--default);padding:var(--digi--form-select-filter--dropdown--item--padding-y) var(--digi--form-select-filter--dropdown--item--padding-x);position:relative;height:var(--digi--form-select-filter--dropdown--item--height);min-height:var(--digi--form-select-filter--dropdown--item--min-height);margin-bottom:var(--digi--form-select-filter--dropdown--item--margin-bottom);letter-spacing:var(--digi--form-select-filter--dropdown--item--letter-spacing);line-height:var(--digi--form-select-filter--dropdown--item--line-height)}.sc-digi-form-select-filter-h .digi-form-select-filter__item.sc-digi-form-select-filter:focus-visible{background-color:var(--digi--form-select-filter--dropdown--item--background-color--focus);outline:2px solid black;outline-offset:-3px;box-shadow:0px 0px 0px 5px inset white}.sc-digi-form-select-filter-h .digi-form-select-filter__item.sc-digi-form-select-filter:hover{background-color:var(--digi--form-select-filter--dropdown--item--background-color--hover);font-weight:var(--digi--form-select-filter--dropdown--item--font-weight--hover)}.sc-digi-form-select-filter-h .digi-form-select-filter__item.sc-digi-form-select-filter:active{background-color:var(--digi--form-select-filter--dropdown--item--background-color--active)}.sc-digi-form-select-filter-h .digi-form-select-filter__item[aria-checked=true].sc-digi-form-select-filter{font-weight:var(--digi--form-select-filter--dropdown--item--font-weight--selected);background-color:var(--digi--form-select-filter--dropdown--item--background-color--selected)}.sc-digi-form-select-filter-h .digi-form-select-filter__item[dir=rtl].sc-digi-form-select-filter{text-align:right}.sc-digi-form-select-filter-h .digi-form-select-filter__item[role=radio].sc-digi-form-select-filter .digi-form-select-filter__item__icon.sc-digi-form-select-filter{position:absolute;width:13px;height:25px;left:7px}.sc-digi-form-select-filter-h .digi-form-select-filter__item[role=radio][dir=rtl].sc-digi-form-select-filter::before{right:3px}.sc-digi-form-select-filter-h .digi-form-select-filter__item[role=radio][dir=rtl].sc-digi-form-select-filter .digi-form-select-filter__item__icon.sc-digi-form-select-filter{left:auto;right:7px}.sc-digi-form-select-filter-h .digi-form-select-filter__item[role=checkbox].sc-digi-form-select-filter{padding:var(--digi--form-select-filter--dropdown--item--multiple--padding-y) var(--digi--form-select-filter--dropdown--item--multiple--padding-x)}.sc-digi-form-select-filter-h .digi-form-select-filter__item[role=checkbox][aria-checked=true].sc-digi-form-select-filter:before{background:var(--digi--form-select-filter--dropdown--item--checkbox--background-color--selected);border-color:var(--digi--form-select-filter--dropdown--item--checkbox--background-color--selected)}.sc-digi-form-select-filter-h .digi-form-select-filter__item[role=checkbox].sc-digi-form-select-filter::before{content:"";position:absolute;background-color:var(--digi--form-select-filter--dropdown--item--checkbox--background-color);border-color:var(--digi--form-select-filter--dropdown--item--checkbox--border-color);border-width:var(--digi--form-select-filter--dropdown--item--checkbox--border-width);border-style:var(--digi--form-select-filter--dropdown--item--checkbox--border-style);height:var(--digi--form-select-filter--dropdown--item--checkbox--width);width:var(--digi--form-select-filter--dropdown--item--checkbox--height);border-radius:var(--digi--form-select-filter--dropdown--item--checkbox--border-radius);left:12px;transform:translateY(1px)}.sc-digi-form-select-filter-h .digi-form-select-filter__item[role=checkbox].sc-digi-form-select-filter .digi-form-select-filter__item__icon.sc-digi-form-select-filter{position:absolute;width:13px;left:16px;--digi--icon--color:white}.sc-digi-form-select-filter-h .digi-form-select-filter__item[role=checkbox][dir=rtl].sc-digi-form-select-filter::before{right:12px}.sc-digi-form-select-filter-h .digi-form-select-filter__item[role=checkbox][dir=rtl].sc-digi-form-select-filter .digi-form-select-filter__item__icon.sc-digi-form-select-filter{left:auto;right:16px}.sc-digi-form-select-filter-h .digi-form-select-filter__toggle-button-text.sc-digi-form-select-filter{margin-right:var(--digi--form-select-filter--toggle-button--text--margin-right)}.sc-digi-form-select-filter-h .hidden.sc-digi-form-select-filter{display:none}`;
63
+
64
+ const FormSelectFilter = class {
65
+ constructor(hostRef) {
66
+ index.registerInstance(this, hostRef);
67
+ this.afOnFocusout = index.createEvent(this, "afOnFocusout", 7);
68
+ this.afOnSubmitFilters = index.createEvent(this, "afOnSubmitFilters", 7);
69
+ this.afOnFilterClosed = index.createEvent(this, "afOnFilterClosed", 7);
70
+ this.afOnResetFilters = index.createEvent(this, "afOnResetFilters", 7);
71
+ this.afOnSelect = index.createEvent(this, "afOnSelect", 7);
72
+ this.afOnQueryChanged = index.createEvent(this, "afOnQueryChanged", 7);
73
+ this.isOpen = false;
74
+ this.focusListItemIndex = 0;
75
+ this.focusInList = false;
76
+ this._filteredResult = [];
77
+ this._selectedItems = [];
78
+ this._searchQuery = '';
79
+ /** True when `value` was set from outside (e.g. Angular CVA) — then value is selection master. */
80
+ this._valueIsMaster = false;
81
+ /** Guards internal `value` writes so they don't flip `_valueIsMaster`. */
82
+ this._updatingValueInternally = false;
83
+ /**
84
+ * Sätter väljarens validering
85
+ * @en Set select validation
86
+ */
87
+ this.afValidation = typographyVariation_enum.FormSelectFilterValidation.NEUTRAL;
88
+ /**
89
+ * Normalt betonas ett obligatoriskt fält visuellt och semantiskt.
90
+ * Detta vänder på det och betonar fältet om det inte krävs.
91
+ * Ställ in detta till sant om ditt formulär innehåller fler obligatoriska fält än inte.
92
+ * @en Normally a required field is visually and semantically emphasized.
93
+ * This flips that and emphasizes the field if it is not required.
94
+ * Set this to true if your form contains more required fields than not.
95
+ */
96
+ this.afAnnounceIfOptional = false;
97
+ /**
98
+ * Sorterar listan i alfabetisk ordning.
99
+ * @en Sort the list in alphabetical order.
100
+ */
101
+ this.sortAlphabetically = true;
102
+ /**
103
+ * @ignore
104
+ * Propertyn `value` finns inte dokumenterad på komponentens sida på dokumentationswebben, utan
105
+ * är endast till för att användas tillsammans med Angulars Control Value Accessors (CVA).
106
+ * Används CVA för att hantera komponentens värden så ska inte afListItems användas för att
107
+ * påverka vilka val som är gjorda eller ej.
108
+ * Exempel på båda sätten att hantera datat finns i Angular Playground.
109
+ */
110
+ this.value = [];
111
+ /**
112
+ * Sätts till true om det ska gå att välja flera val från listan.
113
+ * @en Set to true if you should be able to choose multiple items from the list.
114
+ */
115
+ this.afMultipleItems = false;
116
+ /**
117
+ * Prefixet för alla komponentens olika interna 'id'-attribut på dropdowns, filterlistor etc. Ex. 'my-cool-id' genererar 'my-cool-id-filter-list', 'my-cool-id-dropdown-menu' och så vidare. Ges inget värde så genereras ett slumpmässigt.
118
+ * @en Prefix for all id attributes inside the component. Example: 'my-cool-id' generates 'my-cool-id-filter-list', 'my-cool-id-dropdown-menu' and so on. Defaults to random string.
119
+ */
120
+ this.afId = randomIdGenerator_util.randomIdGenerator('digi-form-select-filter');
121
+ /**
122
+ * Texten i rensaknappen
123
+ * @en Set the reset button text
124
+ */
125
+ this.afResetButtonText = text._t.clear;
126
+ /**
127
+ * Döljer rensaknappen när värdet sätts till true
128
+ * @en Hides the reset button when set to true
129
+ */
130
+ this.afHideResetButton = false;
131
+ /**
132
+ * Text som visas när sökningen inte ger några resultat.
133
+ * @en Text that is shown the the search gives no result.
134
+ */
135
+ this.afEmptySearchMessage = 'Inga sökträffar för';
136
+ /**
137
+ * Om värdet är true får felmeddelandet attributet role="alert".
138
+ * Om felet visas tillsammans med flera andra fel (till exempel efter servervalidering) ska värdet sättas till false.
139
+ * @en If the value is true, the error message gets the attribute role="alert".
140
+ * If the error is shown together with multiple errors (for example after server-side validation), the value should be set to false.
141
+ */
142
+ this.afErrorMessageIsAlert = true;
143
+ }
144
+ onValueChanged(newValue) {
145
+ let parsedValue;
146
+ if (typeof newValue === 'string') {
147
+ parsedValue = newValue ? JSON.parse(newValue) : [];
148
+ }
149
+ else {
150
+ parsedValue = newValue || [];
151
+ }
152
+ if (!this._updatingValueInternally) {
153
+ this._valueIsMaster = true;
154
+ }
155
+ this.value = parsedValue;
156
+ this.syncValueAndSelectedListItems('valueChange');
157
+ }
158
+ handleListItems() {
159
+ if (this.afListItems) {
160
+ try {
161
+ if (this.afListItems.constructor === Array) {
162
+ this._afListItems = this.afListItems;
163
+ }
164
+ else if (typeof this.afListItems === 'string') {
165
+ this._afListItems = JSON.parse(this.afListItems);
166
+ }
167
+ else {
168
+ throw `Invalid type in "af-list-items" attribute`;
169
+ }
170
+ this.giveItemsValueIfNoneExist();
171
+ this.sortListAlphabetically();
172
+ this.syncValueAndSelectedListItems('afListItemsChange');
173
+ this.filterResults();
174
+ }
175
+ catch (e) {
176
+ logger_util.logger.warn(`Invalid JSON in "af-list-items" attribute`, this.hostElement, e);
177
+ return;
178
+ }
179
+ }
180
+ }
181
+ get errorMessageIsAlert() {
182
+ return (this.afErrorMessageIsAlert !== false &&
183
+ this.afErrorMessageIsAlert !== 'false');
184
+ }
185
+ /**
186
+ * Funktion för att rensa valda värden från komponenten
187
+ * @en Function for clearing selected values from component
188
+ */
189
+ async afMReset() {
190
+ this.resetSelectItems();
191
+ }
192
+ /**
193
+ * Funktion för att stänga dropdownen
194
+ * @en Function for closing the dropdown
195
+ */
196
+ async afMCloseDropdown() {
197
+ this.setClosed();
198
+ }
199
+ clickHandler(e) {
200
+ const target = e.target;
201
+ const selector = `#${this.afId}-identifier`;
202
+ if (detectClickOutside_util.detectClickOutside(target, selector) && this.isOpen) {
203
+ this.emitFilterClosedEvent();
204
+ }
205
+ }
206
+ focusoutHandler(e) {
207
+ const target = e.target;
208
+ const selector = `#${this.afId}-identifier`;
209
+ const focusOutsideFilter = detectFocusOutside_util.detectFocusOutside(target, selector);
210
+ if (focusOutsideFilter && this.isOpen) {
211
+ this.emitFilterClosedEvent();
212
+ }
213
+ else {
214
+ this.focusInList = !detectFocusOutside_util.detectFocusOutside(target, `#${this.afId}-select-filter-list`);
215
+ }
216
+ }
217
+ /**
218
+ * Lyssnar på om fokus sätts på custom-elementet och propagerar ner det till toggle-knappen.
219
+ * @en Listens for when focus is set on the custom element and propagates it down to the toggle butto.
220
+ */
221
+ focusOnElement() {
222
+ this._toggleButton.focus();
223
+ }
224
+ componentWillLoad() {
225
+ this.bootstrapInitialValue();
226
+ this.handleListItems();
227
+ // Angular attaches the host first and binds `[afListItems]` / CVA `value` on
228
+ // the next frame (Stencil 4.36+). @Watch skips that first assignment, so if
229
+ // the list is not here yet, wait one frame. React/vanilla that already set
230
+ // the prop skip the delay.
231
+ if (!this.afListItems) {
232
+ return new Promise((resolve) => {
233
+ requestAnimationFrame(() => {
234
+ this.bootstrapInitialValue();
235
+ this.handleListItems();
236
+ resolve();
237
+ });
238
+ });
239
+ }
240
+ }
241
+ bootstrapInitialValue() {
242
+ if (typeof this.value === 'string') {
243
+ const parsed = this.value ? JSON.parse(this.value) : [];
244
+ this._updatingValueInternally = true;
245
+ this.value = parsed;
246
+ this._updatingValueInternally = false;
247
+ }
248
+ if (Array.isArray(this.value) && this.value.length > 0) {
249
+ this._valueIsMaster = true;
250
+ }
251
+ }
252
+ /**
253
+ * Keep `value` and `afListItems[].selected` in sync.
254
+ * - If `value` was set externally (`_valueIsMaster`), value wins on list updates.
255
+ * - Otherwise selection is seeded from `afListItems[].selected` (React/vanilla data-as-master).
256
+ * Does not emit `afOnSelect` — that is reserved for user interaction so Angular Control Value Accessors
257
+ * does not get feedback loops on prop sync.
258
+ */
259
+ syncValueAndSelectedListItems(whereDidTheChangeComeFrom) {
260
+ if (!this._afListItems) {
261
+ return;
262
+ }
263
+ if (whereDidTheChangeComeFrom === 'afListItemsChange') {
264
+ if (this._valueIsMaster) {
265
+ this.applyValueToListItems(this.value);
266
+ }
267
+ else {
268
+ this._selectedItems = this._afListItems.filter((item) => item.selected);
269
+ this.setValueInternally([...this._selectedItems]);
270
+ }
271
+ return;
272
+ }
273
+ this.applyValueToListItems(this.value);
274
+ }
275
+ applyValueToListItems(value) {
276
+ const selectedValues = new Set((value !== null && value !== void 0 ? value : []).map((item) => item.value));
277
+ this._afListItems.forEach((item) => {
278
+ item.selected = selectedValues.has(item.value);
279
+ });
280
+ this._selectedItems = this._afListItems.filter((item) => selectedValues.has(item.value));
281
+ }
282
+ setValueInternally(nextValue) {
283
+ this._updatingValueInternally = true;
284
+ this.value = nextValue;
285
+ this._updatingValueInternally = false;
286
+ }
287
+ setClosed(focusToggleButton = false) {
288
+ this.isOpen = false;
289
+ if (focusToggleButton) {
290
+ document.getElementById(`${this.afId}`).focus();
291
+ }
292
+ this.setScroll(0);
293
+ this._searchQuery = '';
294
+ this.afOnQueryChanged.emit('');
295
+ this.afOnSubmitFilters.emit(this._selectedItems);
296
+ this.filterResults();
297
+ }
298
+ setScroll(scrollY) {
299
+ document.querySelector(`#${this.afId}-dropdown-menu .digi-form-select-filter__scroll`).scrollTop = scrollY;
300
+ }
301
+ setOpen() {
302
+ this.isOpen = true;
303
+ this.focusListItemIndex = 0;
304
+ setTimeout(() => {
305
+ this.setFocusSearch();
306
+ }, 50);
307
+ }
308
+ giveItemsValueIfNoneExist() {
309
+ this._afListItems
310
+ .filter((item) => {
311
+ return item.value === undefined;
312
+ })
313
+ .forEach((item) => {
314
+ item.value = item.label;
315
+ });
316
+ }
317
+ sortListAlphabetically() {
318
+ if (!this.sortAlphabetically) {
319
+ return;
320
+ }
321
+ this._afListItems.sort((a, b) => {
322
+ if (a.label < b.label) {
323
+ return -1;
324
+ }
325
+ if (a.label > b.label) {
326
+ return 1;
327
+ }
328
+ return 0;
329
+ });
330
+ }
331
+ toggleDropdown() {
332
+ return this.isOpen ? this.setClosed() : this.setOpen();
333
+ }
334
+ inputItem(identifier, index) {
335
+ const item = this.hostElement
336
+ .querySelectorAll(`#${identifier} .digi-form-select-filter__item`)
337
+ .item(index);
338
+ return item;
339
+ }
340
+ emitFilterClosedEvent() {
341
+ this.setClosed(true);
342
+ this.afOnFilterClosed.emit();
343
+ }
344
+ setFocusItem() {
345
+ const element = this.inputItem(`${this.afId}-select-filter-list`, this.focusListItemIndex);
346
+ if (element) {
347
+ element.focus();
348
+ }
349
+ }
350
+ setFocusSearch() {
351
+ const element = this.hostElement.querySelector('input');
352
+ if (element) {
353
+ element.focus();
354
+ }
355
+ }
356
+ incrementFocusItem() {
357
+ const listLength = this.showNeutralValue
358
+ ? this._filteredResult.length
359
+ : this._filteredResult.length - 1;
360
+ if (this.focusListItemIndex < listLength) {
361
+ this.focusListItemIndex = this.focusListItemIndex + 1;
362
+ this.setFocusItem();
363
+ return;
364
+ }
365
+ else {
366
+ if (!this.afMultipleItems) {
367
+ this.focusListItemIndex = 0;
368
+ this.setFocusItem();
369
+ return;
370
+ }
371
+ }
372
+ this.tabHandler();
373
+ }
374
+ decrementFocusItem() {
375
+ if (this.focusListItemIndex === 0) {
376
+ this.setFocusSearch();
377
+ return;
378
+ }
379
+ if (this.focusListItemIndex > 0) {
380
+ this.focusListItemIndex = this.focusListItemIndex - 1;
381
+ }
382
+ this.setFocusItem();
383
+ }
384
+ downHandler(e) {
385
+ e.detail.preventDefault();
386
+ if (e.detail.code === 'ArrowDown' || e.detail.code === 'ArrowRight') {
387
+ this.incrementFocusItem();
388
+ }
389
+ }
390
+ upHandler(e) {
391
+ e.detail.preventDefault();
392
+ if (e.detail.code === 'ArrowUp' || e.detail.code === 'ArrowLeft') {
393
+ this.decrementFocusItem();
394
+ }
395
+ }
396
+ homeHandler(e) {
397
+ e.detail.preventDefault();
398
+ this.focusListItemIndex = 0;
399
+ this.setFocusItem();
400
+ }
401
+ endHandler(e) {
402
+ e.detail.preventDefault();
403
+ this.focusListItemIndex = this.showNeutralValue
404
+ ? this._filteredResult.length
405
+ : this._filteredResult.length - 1;
406
+ this.setFocusItem();
407
+ }
408
+ enterHandler(e) {
409
+ e.detail.preventDefault();
410
+ e.detail.target.click();
411
+ }
412
+ spaceHandler(e) {
413
+ e.detail.preventDefault();
414
+ e.detail.target.click();
415
+ }
416
+ escHandler() {
417
+ if (this.isOpen) {
418
+ this.setClosed(true);
419
+ }
420
+ }
421
+ tabHandler() {
422
+ if (this.isOpen && this.focusInList) {
423
+ if (this.afMultipleItems && this._submitButton) {
424
+ setTimeout(() => {
425
+ var _a;
426
+ if (this._submitButton) {
427
+ (_a = this._submitButton.querySelector('button')) === null || _a === void 0 ? void 0 : _a.focus();
428
+ }
429
+ }, 10);
430
+ }
431
+ else {
432
+ this.setClosed(true);
433
+ }
434
+ }
435
+ }
436
+ shiftHandler() {
437
+ if (this.isOpen && this.focusInList) {
438
+ if (this.afMultipleItems && this._toggleButton) {
439
+ this._toggleButton.querySelector('button').focus();
440
+ }
441
+ else {
442
+ this.setFocusSearch();
443
+ }
444
+ }
445
+ }
446
+ filterResults() {
447
+ if (this._searchQuery && this._searchQuery.length > 0) {
448
+ this._filteredResult = this._afListItems.filter((item) => {
449
+ return item.label
450
+ .toLowerCase()
451
+ .includes(this._searchQuery.toLowerCase());
452
+ });
453
+ }
454
+ else {
455
+ this._filteredResult = this._afListItems;
456
+ }
457
+ }
458
+ inputSearchKeyboardHandler(e) {
459
+ if (e.code === 'ArrowDown') {
460
+ e.preventDefault();
461
+ this.setFocusItem();
462
+ }
463
+ if (e.code === 'Enter' && this._searchQuery !== '') {
464
+ e.preventDefault();
465
+ this.setFocusItem();
466
+ }
467
+ }
468
+ inputSearchInputHandler(e) {
469
+ this._searchQuery = e.target.value;
470
+ this.afOnQueryChanged.emit(this._searchQuery);
471
+ this.filterResults();
472
+ }
473
+ resetSelectItems(close = false) {
474
+ this._selectedItems = [];
475
+ this.setValueInternally([]);
476
+ this.afOnSelect.emit([]);
477
+ this._searchQuery = '';
478
+ this.filterResults();
479
+ if (close) {
480
+ this.emitFilterClosedEvent();
481
+ }
482
+ this.afOnResetFilters.emit();
483
+ }
484
+ selectItemHandler(item) {
485
+ if (this.afMultipleItems) {
486
+ item.selected = !item.selected;
487
+ if (this._selectedItems.filter((x) => {
488
+ return x.value === item.value;
489
+ }).length > 0) {
490
+ //ITEM VALUE ALREADY EXISTS IN LIST, DELETE FROM LIST
491
+ this._selectedItems.splice(this._selectedItems.findIndex((e) => e.value === item.value), 1);
492
+ }
493
+ else {
494
+ this._selectedItems = [...this._selectedItems, item];
495
+ }
496
+ }
497
+ else {
498
+ this._selectedItems.forEach((item) => {
499
+ item.selected = false;
500
+ });
501
+ item.selected = true;
502
+ this._selectedItems = [item];
503
+ this.emitFilterClosedEvent();
504
+ }
505
+ this.setValueInternally([...this._selectedItems]);
506
+ this.afOnSelect.emit(this._selectedItems);
507
+ this.filterResults();
508
+ }
509
+ isSelected(textValue) {
510
+ if (textValue && this._selectedItems && this._selectedItems.length > 0) {
511
+ return (this._selectedItems.filter((item) => {
512
+ return item.value === textValue;
513
+ }).length > 0);
514
+ }
515
+ return false;
516
+ }
517
+ get cssModifiers() {
518
+ return {
519
+ 'digi-form-select-filter--open': this.isOpen,
520
+ 'digi-form-select-filter--neutral': this.afValidation === typographyVariation_enum.FormSelectFilterValidation.NEUTRAL,
521
+ 'digi-form-select-filter--success': this.afValidation === typographyVariation_enum.FormSelectFilterValidation.SUCCESS,
522
+ 'digi-form-select-filter--warning': this.afValidation === typographyVariation_enum.FormSelectFilterValidation.WARNING,
523
+ 'digi-form-select-filter--error': this.afValidation === typographyVariation_enum.FormSelectFilterValidation.ERROR
524
+ };
525
+ }
526
+ get cssModifiersToggleButtonIndicator() {
527
+ return {
528
+ 'digi-form-select-filter__toggle-button-indicator--active': this._selectedItems.length > 0
529
+ };
530
+ }
531
+ get cssModifiersToggleButtonWrapper() {
532
+ return {
533
+ 'digi-form-select-filter__toggle-button-wrapper--activated': this._selectedItems.length > 0
534
+ };
535
+ }
536
+ buttonText(isAriaLabel) {
537
+ const ariaLabelText = (text = '') => {
538
+ return isAriaLabel ? text : '';
539
+ };
540
+ if (this._selectedItems && this._selectedItems.length === 1) {
541
+ return (ariaLabelText(this.afFilterButtonTextLabel + ': ') +
542
+ this._selectedItems[0].label);
543
+ }
544
+ else if (this._selectedItems &&
545
+ this._selectedItems.length > 0 &&
546
+ this.afMultipleItems) {
547
+ if (this.afFilterButtonTextMultipleValues) {
548
+ return (ariaLabelText(this.afFilterButtonTextLabel + ': ') +
549
+ this.afFilterButtonTextMultipleValues.replace('{count}', this._selectedItems.length.toString()));
550
+ }
551
+ else {
552
+ return (ariaLabelText(this.afFilterButtonTextLabel + ': ') +
553
+ `${this._selectedItems.length} valda`);
554
+ }
555
+ }
556
+ else {
557
+ return (ariaLabelText(this.afFilterButtonTextLabel
558
+ ? this.afFilterButtonTextLabel + ': '
559
+ : '') + this.afFilterButtonText);
560
+ }
561
+ }
562
+ get renderButtonLabel() {
563
+ return this.buttonText(false);
564
+ }
565
+ get ariaLabel() {
566
+ return this.buttonText(true);
567
+ }
568
+ get showNeutralValue() {
569
+ return (!this.afMultipleItems &&
570
+ this.afFilterButtonText &&
571
+ this._searchQuery.length === 0);
572
+ }
573
+ showValidation() {
574
+ return !this.afDisableValidation &&
575
+ this.afValidation !== typographyVariation_enum.FormSelectFilterValidation.NEUTRAL &&
576
+ this.afValidationText
577
+ ? true
578
+ : false;
579
+ }
580
+ renderEmptyStateBox() {
581
+ let statusMessage = '';
582
+ if (this._filteredResult && this._filteredResult.length > 0) {
583
+ statusMessage = `${this._filteredResult.length} sökträff${this._filteredResult.length > 1 ? 'ar' : ''}`;
584
+ }
585
+ else if (this._filteredResult.length === 0) {
586
+ statusMessage = `${this.afEmptySearchMessage} ${this._searchQuery}`;
587
+ }
588
+ return (index.h(index.Fragment, null, index.h("div", { role: "status", id: `${this.afId}-searchstatus`, class: {
589
+ 'digi-form-select-filter__search-status': true,
590
+ 'digi--a11y--sr-only': this._filteredResult && this._filteredResult.length > 0
591
+ } }, index.h("span", null, " ", statusMessage, " "), index.h("div", { class: {
592
+ hidden: this._filteredResult && this._filteredResult.length > 0
593
+ } }, index.h("slot", { name: "empty-search-result" })))));
594
+ }
595
+ render() {
596
+ return (index.h(index.Host, { key: '2e7276930637366cbcb14168102afb82393708f5', tabindex: -1 }, index.h("div", { key: 'a5620907d2399c0561b6b3b604220c3bf82ded6b', class: Object.assign({ 'digi-form-select-filter': true }, this.cssModifiers), role: "application", id: `${this.afId}-identifier` }, index.h("digi-form-label", { key: '151c3656f03d8b8b7639daf0e26631722a1f6878', afLabel: this.afFilterButtonTextLabel, afFor: `${this.afId}`, afId: `${this.afId}-label`, class: "digi-form-select-filter__label", afDescription: this.afDescription, afRequired: this.afRequired, afAnnounceIfOptional: this.afAnnounceIfOptional, afRequiredText: this.afRequiredText, afAnnounceIfOptionalText: this.afAnnounceIfOptionalText }), index.h("digi-util-keydown-handler", { key: '035ffc46a22218d42d892c89592993a7694b2be2', onAfOnEsc: () => this.escHandler() }, index.h("button", { key: 'b8fedc87ecf0b1cf26e2b123c97fcd7ff6287e0b', type: "button", id: `${this.afId}`, class: "digi-form-select-filter__toggle-button", onClick: () => this.toggleDropdown(), ref: (el) => (this._toggleButton = el), "aria-haspopup": "true", "aria-label": this.ariaLabel, "aria-describedby": `${this.afFilterButtonAriaDescribedby} ${this.afId}--validation-message`, "aria-controls": `${this.afId}-dropdown-menu`, "aria-expanded": this.isOpen }, index.h("div", { key: '8bb88747afac881b3667ecb60c4adbe36c1325f8', class: Object.assign({ 'digi-form-filter__toggle-button-wrapper': true }, this.cssModifiersToggleButtonWrapper) }, index.h("digi-icon-check", { key: 'a809c5fa00dd4d2a50662aeed3d673cda0289d80', class: Object.assign({ 'digi-form-select-filter__toggle-button-indicator': true }, this.cssModifiersToggleButtonIndicator), slot: "icon" }), index.h("span", { key: 'a5e7f4b998d38a7d912a25b2d7fb0b852b920dc3', class: "digi-form-select-filter__toggle-button-text" }, this.renderButtonLabel)), index.h("digi-icon-chevron-down", { key: 'ef852d8060bacbdef9707dcb23ed3ae1f98cc33f', class: "digi-form-select-filter__toggle-icon" })), index.h("div", { key: '5c5e41376cf7264e837bed3905c971dd0adee156', id: `${this.afId}-dropdown-menu`, tabindex: this.isOpen ? '-1' : undefined, class: {
597
+ 'digi-form-select-filter__dropdown': true,
598
+ 'digi-form-select-filter__dropdown--right': this.afAlignRight,
599
+ 'digi-form-select-filter__dropdown--hidden': !this.isOpen
600
+ } }, index.h("fieldset", { key: 'daa4e02e97f5907fc89aeb7a337bd97ceba1c148' }, index.h("div", { key: '99cd8af83d9b1410610f4e49a6759fac20c6955f', class: "digi-form-select-filter__header" }, index.h("legend", { key: '0ed1e17842e0795194c4b74d9600f17c3d2e63b0', class: "digi-form-select-filter__legend" }, this.afFilterButtonTextLabel), index.h("digi-form-input", { key: 'c35f93cb680c6f6e902f281ff597108a9106b016', afLabel: this.afName, afId: `${this.afId}-search`, afVariation: formInputVariation_enum.FormInputVariation.MEDIUM, afType: formInputType_enum.FormInputType.SEARCH, afValidation: formInputVariation_enum.FormInputValidation.NEUTRAL, onAfOnFocus: () => {
601
+ this.focusListItemIndex = 0;
602
+ }, onAfOnKeyup: (e) => {
603
+ this.inputSearchKeyboardHandler(e.detail);
604
+ }, onAfOnInput: (e) => this.inputSearchInputHandler(e.detail), afValue: this._searchQuery, class: "digi-form-select-filter__search-input", afAriaControls: `${this.afId}-select-filter-list`, afAutocomplete: "off", afAriaAutocomplete: "none" }), this.renderEmptyStateBox()), index.h("div", { key: '4e2c4a6e6039f8f3efe8cfc75bb302214704073e', class: "digi-form-select-filter__scroll" }, index.h("digi-util-keydown-handler", { key: '751ad128164783be9f7d32d5418d8b99a2be24e3', onAfOnDown: (e) => this.downHandler(e), onAfOnRight: (e) => this.downHandler(e), onAfOnUp: (e) => this.upHandler(e), onAfOnLeft: (e) => this.upHandler(e), onAfOnHome: (e) => this.homeHandler(e), onAfOnEnd: (e) => this.endHandler(e), onAfOnEnter: (e) => this.enterHandler(e), onAfOnSpace: (e) => this.spaceHandler(e), onAfOnTab: () => this.tabHandler(), onAfOnShiftTab: () => this.shiftHandler() }, index.h("ul", { key: '2879b7c081ea2097bd17a9c0f0967b78b9a5d665', class: "digi-form-select-filter__list", "aria-labelledby": `${this.afId}`, id: `${this.afId}-select-filter-list`, role: this.afMultipleItems ? '' : 'radiogroup', "aria-invalid": this.afMultipleItems
605
+ ? 'false'
606
+ : this.afValidation ===
607
+ typographyVariation_enum.FormSelectFilterValidation.ERROR
608
+ ? 'true'
609
+ : 'false', "aria-errormessage": `${this.afId}--validation-message`, "aria-required": this.afMultipleItems
610
+ ? false
611
+ : this.afRequired
612
+ ? 'true'
613
+ : 'false' }, this.showNeutralValue && (index.h("li", { key: '0d51a466af769e3b687805b4cb8027bcac8b5112', class: "digi-form-select-filter__item", role: "radio", "aria-required": this.afMultipleItems
614
+ ? 'false'
615
+ : this.afRequired
616
+ ? 'true'
617
+ : 'false', "aria-checked": this._selectedItems.length === 0 ? 'true' : 'false', onClick: () => this.resetSelectItems(true), tabIndex: 0, "aria-label": this.afFilterButtonText }, this._selectedItems.length === 0 && (index.h("digi-icon-check", { key: '84264b690e6a8b4cd792f6543f00a7f5e559fe06', class: "digi-form-select-filter__item__icon", "aria-hidden": 'true' })), this.afFilterButtonText)), this._filteredResult &&
618
+ this._filteredResult.map((item, index$1) => {
619
+ return (index.h("li", { class: "digi-form-select-filter__item", key: index$1, dir: item.dir, lang: item.lang, "aria-checked": this.isSelected(item.value) ? 'true' : 'false', role: this.afMultipleItems ? 'checkbox' : 'radio', "aria-required": this.afMultipleItems
620
+ ? 'false'
621
+ : this.afRequired
622
+ ? 'true'
623
+ : 'false', "aria-invalid": this.afMultipleItems
624
+ ? this.afValidation ===
625
+ typographyVariation_enum.FormSelectFilterValidation.ERROR
626
+ ? 'true'
627
+ : 'false'
628
+ : 'false', "aria-errormessage": `${this.afId}--validation-message`, onClick: () => this.selectItemHandler(item), tabIndex: this.showNeutralValue
629
+ ? -1
630
+ : index$1 === 0
631
+ ? 0
632
+ : -1 }, this.isSelected(item.value) && (index.h("digi-icon-check", { class: "digi-form-select-filter__item__icon", "aria-hidden": 'true' })), item.label));
633
+ }))))), this.afMultipleItems && (index.h("div", { key: '79def162604c33d3c6acffd7464f2d44f4cf6229', class: "digi-form-select-filter__footer" }, !this.afHideResetButton && (index.h("digi-button", { key: '3ee850fa06c38590c50dcfba11251bd6a4ed5626', "af-variation": "secondary", "af-aria-label": this.afResetButtonTextAriaLabel, onClick: () => this.resetSelectItems(), class: "digi-form-select-filter__reset-button" }, this.afResetButtonText)), index.h("digi-util-keydown-handler", { key: '0fe5d9f9d899d3ddeaf6447485bf5f655e6270ff', onAfOnUp: () => this.setFocusItem() }, index.h("digi-button", { key: '0c14fea74bd16712355a8fafdc17408674ae0489', ref: (el) => (this._submitButton = el), "af-variation": "primary", "af-aria-label": this.afSubmitButtonTextAriaLabel, onClick: () => {
634
+ this.setClosed(true);
635
+ }, class: "digi-form-select-filter__submit-button" }, this.afSubmitButtonText)))))), index.h("div", { key: 'eb9dd0d0150b043458211e89c1311d9c7103d46f', class: "digi-form-select__footer" }, index.h("div", { key: 'f7aca001f6b2580600c1e823e307a4352811bb66', "aria-atomic": "true", role: this.errorMessageIsAlert ? 'alert' : null, id: `${this.afId}--validation-message` }, this.showValidation() && (index.h("digi-form-validation-message", { key: '5802021f469405694a75378fc8830720a9275d41', "af-variation": this.afValidation }, this.afValidationText)))))));
636
+ }
637
+ get hostElement() { return index.getElement(this); }
638
+ static get watchers() { return {
639
+ "value": [{
640
+ "onValueChanged": 0
641
+ }],
642
+ "afListItems": [{
643
+ "handleListItems": 0
644
+ }]
645
+ }; }
646
+ };
647
+ FormSelectFilter.style = formSelectFilterCss();
648
+
649
+ exports.digi_form_select_filter = FormSelectFilter;