@postnord/pn-marketweb-components 3.5.2 → 3.5.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 (400) hide show
  1. package/cjs/alert_exclamation_circle-24f29a5b.js +8 -0
  2. package/cjs/alert_exclamation_circle-24f29a5b.js.map +1 -0
  3. package/cjs/loader.cjs.js +1 -1
  4. package/cjs/pn-address-autofill.cjs.entry.js +47 -72
  5. package/cjs/pn-address-autofill.cjs.entry.js.map +1 -1
  6. package/cjs/pn-dropdown-choice-adds-row.cjs.entry.js +18 -6
  7. package/cjs/pn-dropdown-choice-adds-row.cjs.entry.js.map +1 -1
  8. package/cjs/pn-market-web-components.cjs.js +1 -1
  9. package/cjs/pn-marketweb-input.cjs.entry.js +2 -4
  10. package/cjs/pn-marketweb-input.cjs.entry.js.map +1 -1
  11. package/collection/components/input/pn-address-autofill/pn-address-autofill.css +6 -1
  12. package/collection/components/input/pn-address-autofill/pn-address-autofill.js +58 -68
  13. package/collection/components/input/pn-address-autofill/pn-address-autofill.js.map +1 -1
  14. package/collection/components/input/pn-address-autofill/pn-address-autofill.stories.js +2 -1
  15. package/collection/components/input/pn-address-autofill/translations.js +6 -3
  16. package/collection/components/input/pn-address-autofill/translations.js.map +1 -1
  17. package/collection/components/input/pn-dropdown-choice-adds-row/pn-dropdown-choice-adds-row.js +18 -6
  18. package/collection/components/input/pn-dropdown-choice-adds-row/pn-dropdown-choice-adds-row.js.map +1 -1
  19. package/components/alert_exclamation_circle.js +6 -0
  20. package/components/alert_exclamation_circle.js.map +1 -0
  21. package/components/pn-address-autofill.js +48 -72
  22. package/components/pn-address-autofill.js.map +1 -1
  23. package/components/pn-dropdown-choice-adds-row.js +18 -6
  24. package/components/pn-dropdown-choice-adds-row.js.map +1 -1
  25. package/components/pn-marketweb-input2.js +1 -3
  26. package/components/pn-marketweb-input2.js.map +1 -1
  27. package/esm/alert_exclamation_circle-f0fe7c7b.js +6 -0
  28. package/esm/alert_exclamation_circle-f0fe7c7b.js.map +1 -0
  29. package/esm/loader.js +1 -1
  30. package/esm/pn-address-autofill.entry.js +47 -72
  31. package/esm/pn-address-autofill.entry.js.map +1 -1
  32. package/esm/pn-dropdown-choice-adds-row.entry.js +18 -6
  33. package/esm/pn-dropdown-choice-adds-row.entry.js.map +1 -1
  34. package/esm/pn-market-web-components.js +1 -1
  35. package/esm/pn-marketweb-input.entry.js +1 -3
  36. package/esm/pn-marketweb-input.entry.js.map +1 -1
  37. package/package.json +1 -1
  38. package/pn-market-web-components/p-0ac30ee9.entry.js +2 -0
  39. package/pn-market-web-components/p-0ac30ee9.entry.js.map +1 -0
  40. package/pn-market-web-components/p-15d70aaf.entry.js +2 -0
  41. package/pn-market-web-components/p-15d70aaf.entry.js.map +1 -0
  42. package/pn-market-web-components/p-76c2c01f.js +2 -0
  43. package/pn-market-web-components/p-76c2c01f.js.map +1 -0
  44. package/pn-market-web-components/p-a11fdf9f.entry.js +2 -0
  45. package/pn-market-web-components/p-a11fdf9f.entry.js.map +1 -0
  46. package/pn-market-web-components/pn-market-web-components.esm.js +1 -1
  47. package/pn-market-web-components/pn-market-web-components.esm.js.map +1 -1
  48. package/types/components/input/pn-address-autofill/pn-address-autofill.d.ts +2 -3
  49. package/types/components/input/pn-address-autofill/translations.d.ts +3 -0
  50. package/types/components.d.ts +2 -0
  51. package/umd/modules/@postnord/web-components/cjs/{angle_down-0b63ebde.js → chevron_down-83e72319.js} +3 -3
  52. package/umd/modules/@postnord/web-components/cjs/chevron_down-83e72319.js.map +1 -0
  53. package/umd/modules/@postnord/web-components/cjs/{angle_right-c8c55b43.js → chevron_right-aeb6aef3.js} +5 -5
  54. package/umd/modules/@postnord/web-components/cjs/chevron_right-aeb6aef3.js.map +1 -0
  55. package/umd/modules/@postnord/web-components/cjs/loader.cjs.js +1 -1
  56. package/umd/modules/@postnord/web-components/cjs/pn-accordion-row.cjs.entry.js +2 -2
  57. package/umd/modules/@postnord/web-components/cjs/pn-accordion-row.cjs.entry.js.map +1 -1
  58. package/umd/modules/@postnord/web-components/cjs/pn-action-menu.cjs.entry.js +42 -12
  59. package/umd/modules/@postnord/web-components/cjs/pn-action-menu.cjs.entry.js.map +1 -1
  60. package/umd/modules/@postnord/web-components/cjs/pn-button_2.cjs.entry.js +1 -1
  61. package/umd/modules/@postnord/web-components/cjs/pn-card.cjs.entry.js +1 -1
  62. package/umd/modules/@postnord/web-components/cjs/pn-checkbox.cjs.entry.js +1 -1
  63. package/umd/modules/@postnord/web-components/cjs/pn-choice-chip.cjs.entry.js +1 -1
  64. package/umd/modules/@postnord/web-components/cjs/pn-counter.cjs.entry.js +1 -1
  65. package/umd/modules/@postnord/web-components/cjs/pn-date-picker.cjs.entry.js +22 -6
  66. package/umd/modules/@postnord/web-components/cjs/pn-date-picker.cjs.entry.js.map +1 -1
  67. package/umd/modules/@postnord/web-components/cjs/pn-fieldset.cjs.entry.js +1 -1
  68. package/umd/modules/@postnord/web-components/cjs/pn-file-upload.cjs.entry.js +1 -1
  69. package/umd/modules/@postnord/web-components/cjs/pn-footer.cjs.entry.js +1 -1
  70. package/umd/modules/@postnord/web-components/cjs/pn-header.cjs.entry.js +1 -1
  71. package/umd/modules/@postnord/web-components/cjs/pn-input.cjs.entry.js +2 -2
  72. package/umd/modules/@postnord/web-components/cjs/pn-modal.cjs.entry.js +21 -7
  73. package/umd/modules/@postnord/web-components/cjs/pn-modal.cjs.entry.js.map +1 -1
  74. package/umd/modules/@postnord/web-components/cjs/pn-multiselect.cjs.entry.js +2 -2
  75. package/umd/modules/@postnord/web-components/cjs/pn-multiselect.cjs.entry.js.map +1 -1
  76. package/umd/modules/@postnord/web-components/cjs/pn-ocr-search.cjs.entry.js +1 -1
  77. package/umd/modules/@postnord/web-components/cjs/pn-page-nav-dropdown-item.cjs.entry.js +1 -1
  78. package/umd/modules/@postnord/web-components/cjs/pn-page-nav-item.cjs.entry.js +1 -1
  79. package/umd/modules/@postnord/web-components/cjs/pn-page-nav.cjs.entry.js +2 -2
  80. package/umd/modules/@postnord/web-components/cjs/pn-page-nav.cjs.entry.js.map +1 -1
  81. package/umd/modules/@postnord/web-components/cjs/pn-pagination.cjs.entry.js +1 -1
  82. package/umd/modules/@postnord/web-components/cjs/pn-progress-bar.cjs.entry.js +1 -1
  83. package/umd/modules/@postnord/web-components/cjs/pn-progress-indicator-step.cjs.entry.js +1 -1
  84. package/umd/modules/@postnord/web-components/cjs/pn-progress-indicator-step.cjs.entry.js.map +1 -1
  85. package/umd/modules/@postnord/web-components/cjs/pn-progress-indicator.cjs.entry.js +1 -1
  86. package/umd/modules/@postnord/web-components/cjs/pn-progress-indicator.cjs.entry.js.map +1 -1
  87. package/umd/modules/@postnord/web-components/cjs/pn-progress-stepper.cjs.entry.js +26 -41
  88. package/umd/modules/@postnord/web-components/cjs/pn-progress-stepper.cjs.entry.js.map +1 -1
  89. package/umd/modules/@postnord/web-components/cjs/pn-radio-button.cjs.entry.js +1 -1
  90. package/umd/modules/@postnord/web-components/cjs/pn-search-field.cjs.entry.js +1 -1
  91. package/umd/modules/@postnord/web-components/cjs/pn-segment.cjs.entry.js +1 -1
  92. package/umd/modules/@postnord/web-components/cjs/pn-segmented-control.cjs.entry.js +1 -1
  93. package/umd/modules/@postnord/web-components/cjs/pn-select.cjs.entry.js +2 -2
  94. package/umd/modules/@postnord/web-components/cjs/pn-select.cjs.entry.js.map +1 -1
  95. package/umd/modules/@postnord/web-components/cjs/pn-tab.cjs.entry.js +1 -1
  96. package/umd/modules/@postnord/web-components/cjs/pn-tablist.cjs.entry.js +2 -2
  97. package/umd/modules/@postnord/web-components/cjs/pn-tablist.cjs.entry.js.map +1 -1
  98. package/umd/modules/@postnord/web-components/cjs/pn-text-link.cjs.entry.js +1 -1
  99. package/umd/modules/@postnord/web-components/cjs/pn-textarea.cjs.entry.js +1 -1
  100. package/umd/modules/@postnord/web-components/cjs/pn-tile.cjs.entry.js +1 -1
  101. package/umd/modules/@postnord/web-components/cjs/pn-toast.cjs.entry.js +25 -16
  102. package/umd/modules/@postnord/web-components/cjs/pn-toast.cjs.entry.js.map +1 -1
  103. package/umd/modules/@postnord/web-components/cjs/pn-toggle-switch.cjs.entry.js +1 -1
  104. package/umd/modules/@postnord/web-components/cjs/pn-tooltip.cjs.entry.js +1 -1
  105. package/umd/modules/@postnord/web-components/cjs/pn-zipcode-search.cjs.entry.js +1 -1
  106. package/umd/modules/@postnord/web-components/cjs/postnord-web-components.cjs.js +1 -1
  107. package/umd/modules/@postnord/web-components/collection/components/buttons/pn-action-menu/pn-action-menu.js +41 -11
  108. package/umd/modules/@postnord/web-components/collection/components/buttons/pn-action-menu/pn-action-menu.js.map +1 -1
  109. package/umd/modules/@postnord/web-components/collection/components/content/pn-accordion/row/pn-accordion-row.js +2 -2
  110. package/umd/modules/@postnord/web-components/collection/components/content/pn-accordion/row/pn-accordion-row.js.map +1 -1
  111. package/umd/modules/@postnord/web-components/collection/components/feedback/pn-modal/pn-modal.css +92 -40
  112. package/umd/modules/@postnord/web-components/collection/components/feedback/pn-modal/pn-modal.js +35 -9
  113. package/umd/modules/@postnord/web-components/collection/components/feedback/pn-modal/pn-modal.js.map +1 -1
  114. package/umd/modules/@postnord/web-components/collection/components/feedback/pn-progress-bar/pn-progress-bar.js +1 -1
  115. package/umd/modules/@postnord/web-components/collection/components/feedback/pn-progress-indicator/pn-progress-indicator-step/pn-progress-indicator-step.js +5 -1
  116. package/umd/modules/@postnord/web-components/collection/components/feedback/pn-progress-indicator/pn-progress-indicator-step/pn-progress-indicator-step.js.map +1 -1
  117. package/umd/modules/@postnord/web-components/collection/components/feedback/pn-progress-indicator/pn-progress-indicator.js +5 -1
  118. package/umd/modules/@postnord/web-components/collection/components/feedback/pn-progress-indicator/pn-progress-indicator.js.map +1 -1
  119. package/umd/modules/@postnord/web-components/collection/components/feedback/pn-progress-stepper/pn-progress-stepper.css +85 -9
  120. package/umd/modules/@postnord/web-components/collection/components/feedback/pn-progress-stepper/pn-progress-stepper.js +100 -97
  121. package/umd/modules/@postnord/web-components/collection/components/feedback/pn-progress-stepper/pn-progress-stepper.js.map +1 -1
  122. package/umd/modules/@postnord/web-components/collection/components/feedback/pn-spinner/pn-spinner.js +1 -1
  123. package/umd/modules/@postnord/web-components/collection/components/feedback/pn-toast/pn-toast.css +0 -1
  124. package/umd/modules/@postnord/web-components/collection/components/feedback/pn-toast/pn-toast.js +24 -15
  125. package/umd/modules/@postnord/web-components/collection/components/feedback/pn-toast/pn-toast.js.map +1 -1
  126. package/umd/modules/@postnord/web-components/collection/components/feedback/pn-tooltip/pn-tooltip.js +1 -1
  127. package/umd/modules/@postnord/web-components/collection/components/input/pn-checkbox/pn-checkbox.js +1 -1
  128. package/umd/modules/@postnord/web-components/collection/components/input/pn-choice-chip/pn-choice-chip.js +1 -1
  129. package/umd/modules/@postnord/web-components/collection/components/input/pn-counter/pn-counter.js +1 -1
  130. package/umd/modules/@postnord/web-components/collection/components/input/pn-date-picker/pn-date-picker.css +2 -3
  131. package/umd/modules/@postnord/web-components/collection/components/input/pn-date-picker/pn-date-picker.js +22 -6
  132. package/umd/modules/@postnord/web-components/collection/components/input/pn-date-picker/pn-date-picker.js.map +1 -1
  133. package/umd/modules/@postnord/web-components/collection/components/input/pn-fieldset/pn-fieldset.js +1 -1
  134. package/umd/modules/@postnord/web-components/collection/components/input/pn-file-upload/pn-file-upload.js +1 -1
  135. package/umd/modules/@postnord/web-components/collection/components/input/pn-input/pn-input.js +2 -2
  136. package/umd/modules/@postnord/web-components/collection/components/input/pn-multiselect/pn-multiselect.js +2 -2
  137. package/umd/modules/@postnord/web-components/collection/components/input/pn-multiselect/pn-multiselect.js.map +1 -1
  138. package/umd/modules/@postnord/web-components/collection/components/input/pn-radio-button/pn-radio-button.js +1 -1
  139. package/umd/modules/@postnord/web-components/collection/components/input/pn-search-field/pn-search-field.js +1 -1
  140. package/umd/modules/@postnord/web-components/collection/components/input/pn-segmented-control/pn-segmented-control.js +1 -1
  141. package/umd/modules/@postnord/web-components/collection/components/input/pn-segmented-control/segment/pn-segment.js +1 -1
  142. package/umd/modules/@postnord/web-components/collection/components/input/pn-select/pn-select.js +2 -2
  143. package/umd/modules/@postnord/web-components/collection/components/input/pn-select/pn-select.js.map +1 -1
  144. package/umd/modules/@postnord/web-components/collection/components/input/pn-textarea/pn-textarea.js +1 -1
  145. package/umd/modules/@postnord/web-components/collection/components/input/pn-toggle-switch/pn-toggle-switch.js +1 -1
  146. package/umd/modules/@postnord/web-components/collection/components/layout/pn-header/pn-header.js +1 -1
  147. package/umd/modules/@postnord/web-components/collection/components/navigation/pn-card/pn-card.js +1 -1
  148. package/umd/modules/@postnord/web-components/collection/components/navigation/pn-footer/pn-footer.js +1 -1
  149. package/umd/modules/@postnord/web-components/collection/components/navigation/pn-page-nav/dropdown-item/pn-page-nav-dropdown-item.js +1 -1
  150. package/umd/modules/@postnord/web-components/collection/components/navigation/pn-page-nav/item/pn-page-nav-item.js +1 -1
  151. package/umd/modules/@postnord/web-components/collection/components/navigation/pn-page-nav/menu/pn-page-nav.js +2 -2
  152. package/umd/modules/@postnord/web-components/collection/components/navigation/pn-page-nav/menu/pn-page-nav.js.map +1 -1
  153. package/umd/modules/@postnord/web-components/collection/components/navigation/pn-pagination/pn-pagination.js +1 -1
  154. package/umd/modules/@postnord/web-components/collection/components/navigation/pn-tablist/pn-tablist.js +2 -2
  155. package/umd/modules/@postnord/web-components/collection/components/navigation/pn-tablist/pn-tablist.js.map +1 -1
  156. package/umd/modules/@postnord/web-components/collection/components/navigation/pn-tablist/tab/pn-tab.js +1 -1
  157. package/umd/modules/@postnord/web-components/collection/components/navigation/pn-text-link/pn-text-link.js +1 -1
  158. package/umd/modules/@postnord/web-components/collection/components/navigation/pn-tile/pn-tile.js +1 -1
  159. package/umd/modules/@postnord/web-components/collection/components/web-components/pn-ocr-search/pn-ocr-search.js +1 -1
  160. package/umd/modules/@postnord/web-components/collection/components/web-components/pn-zipcode-search/pn-zipcode-search.js +1 -1
  161. package/umd/modules/@postnord/web-components/collection/globals/types.js.map +1 -1
  162. package/umd/modules/@postnord/web-components/components/{angle_down.js → chevron_down.js} +3 -3
  163. package/umd/modules/@postnord/web-components/components/chevron_down.js.map +1 -0
  164. package/umd/modules/@postnord/web-components/{esm/angle_right-b52095c9.js → components/chevron_right.js} +4 -4
  165. package/umd/modules/@postnord/web-components/components/chevron_right.js.map +1 -0
  166. package/umd/modules/@postnord/web-components/components/pn-accordion-row.js +2 -2
  167. package/umd/modules/@postnord/web-components/components/pn-accordion-row.js.map +1 -1
  168. package/umd/modules/@postnord/web-components/components/pn-action-menu.js +42 -12
  169. package/umd/modules/@postnord/web-components/components/pn-action-menu.js.map +1 -1
  170. package/umd/modules/@postnord/web-components/components/pn-card.js +1 -1
  171. package/umd/modules/@postnord/web-components/components/pn-checkbox.js +1 -1
  172. package/umd/modules/@postnord/web-components/components/pn-choice-chip.js +1 -1
  173. package/umd/modules/@postnord/web-components/components/pn-counter.js +1 -1
  174. package/umd/modules/@postnord/web-components/components/pn-date-picker.js +23 -7
  175. package/umd/modules/@postnord/web-components/components/pn-date-picker.js.map +1 -1
  176. package/umd/modules/@postnord/web-components/components/pn-fieldset.js +1 -1
  177. package/umd/modules/@postnord/web-components/components/pn-file-upload.js +1 -1
  178. package/umd/modules/@postnord/web-components/components/pn-footer.js +1 -1
  179. package/umd/modules/@postnord/web-components/components/pn-header.js +1 -1
  180. package/umd/modules/@postnord/web-components/components/pn-input.js +2 -2
  181. package/umd/modules/@postnord/web-components/components/pn-modal.js +25 -10
  182. package/umd/modules/@postnord/web-components/components/pn-modal.js.map +1 -1
  183. package/umd/modules/@postnord/web-components/components/pn-multiselect.js +2 -2
  184. package/umd/modules/@postnord/web-components/components/pn-multiselect.js.map +1 -1
  185. package/umd/modules/@postnord/web-components/components/pn-ocr-search.js +1 -1
  186. package/umd/modules/@postnord/web-components/components/pn-page-nav-dropdown-item.js +1 -1
  187. package/umd/modules/@postnord/web-components/components/pn-page-nav-item.js +1 -1
  188. package/umd/modules/@postnord/web-components/components/pn-page-nav.js +2 -2
  189. package/umd/modules/@postnord/web-components/components/pn-page-nav.js.map +1 -1
  190. package/umd/modules/@postnord/web-components/components/pn-pagination.js +1 -1
  191. package/umd/modules/@postnord/web-components/components/pn-progress-bar2.js +1 -1
  192. package/umd/modules/@postnord/web-components/components/pn-progress-indicator-step.js +1 -1
  193. package/umd/modules/@postnord/web-components/components/pn-progress-indicator-step.js.map +1 -1
  194. package/umd/modules/@postnord/web-components/components/pn-progress-indicator.js +1 -1
  195. package/umd/modules/@postnord/web-components/components/pn-progress-indicator.js.map +1 -1
  196. package/umd/modules/@postnord/web-components/components/pn-progress-stepper.js +34 -48
  197. package/umd/modules/@postnord/web-components/components/pn-progress-stepper.js.map +1 -1
  198. package/umd/modules/@postnord/web-components/components/pn-radio-button.js +1 -1
  199. package/umd/modules/@postnord/web-components/components/pn-search-field2.js +1 -1
  200. package/umd/modules/@postnord/web-components/components/pn-segment.js +1 -1
  201. package/umd/modules/@postnord/web-components/components/pn-segmented-control.js +1 -1
  202. package/umd/modules/@postnord/web-components/components/pn-select2.js +2 -2
  203. package/umd/modules/@postnord/web-components/components/pn-select2.js.map +1 -1
  204. package/umd/modules/@postnord/web-components/components/pn-spinner2.js +1 -1
  205. package/umd/modules/@postnord/web-components/components/pn-tab.js +1 -1
  206. package/umd/modules/@postnord/web-components/components/pn-tablist.js +2 -2
  207. package/umd/modules/@postnord/web-components/components/pn-tablist.js.map +1 -1
  208. package/umd/modules/@postnord/web-components/components/pn-text-link2.js +1 -1
  209. package/umd/modules/@postnord/web-components/components/pn-textarea.js +1 -1
  210. package/umd/modules/@postnord/web-components/components/pn-tile.js +1 -1
  211. package/umd/modules/@postnord/web-components/components/pn-toast.js +25 -16
  212. package/umd/modules/@postnord/web-components/components/pn-toast.js.map +1 -1
  213. package/umd/modules/@postnord/web-components/components/pn-toggle-switch.js +1 -1
  214. package/umd/modules/@postnord/web-components/components/pn-tooltip.js +1 -1
  215. package/umd/modules/@postnord/web-components/components/pn-zipcode-search.js +1 -1
  216. package/umd/modules/@postnord/web-components/esm/{angle_down-d788f691.js → chevron_down-6e3fb42f.js} +3 -3
  217. package/umd/modules/@postnord/web-components/esm/chevron_down-6e3fb42f.js.map +1 -0
  218. package/umd/modules/@postnord/web-components/{components/angle_right.js → esm/chevron_right-9d9305e8.js} +4 -4
  219. package/umd/modules/@postnord/web-components/esm/chevron_right-9d9305e8.js.map +1 -0
  220. package/umd/modules/@postnord/web-components/esm/loader.js +1 -1
  221. package/umd/modules/@postnord/web-components/esm/pn-accordion-row.entry.js +2 -2
  222. package/umd/modules/@postnord/web-components/esm/pn-accordion-row.entry.js.map +1 -1
  223. package/umd/modules/@postnord/web-components/esm/pn-action-menu.entry.js +42 -12
  224. package/umd/modules/@postnord/web-components/esm/pn-action-menu.entry.js.map +1 -1
  225. package/umd/modules/@postnord/web-components/esm/pn-button_2.entry.js +1 -1
  226. package/umd/modules/@postnord/web-components/esm/pn-card.entry.js +1 -1
  227. package/umd/modules/@postnord/web-components/esm/pn-checkbox.entry.js +1 -1
  228. package/umd/modules/@postnord/web-components/esm/pn-choice-chip.entry.js +1 -1
  229. package/umd/modules/@postnord/web-components/esm/pn-counter.entry.js +1 -1
  230. package/umd/modules/@postnord/web-components/esm/pn-date-picker.entry.js +23 -7
  231. package/umd/modules/@postnord/web-components/esm/pn-date-picker.entry.js.map +1 -1
  232. package/umd/modules/@postnord/web-components/esm/pn-fieldset.entry.js +1 -1
  233. package/umd/modules/@postnord/web-components/esm/pn-file-upload.entry.js +1 -1
  234. package/umd/modules/@postnord/web-components/esm/pn-footer.entry.js +1 -1
  235. package/umd/modules/@postnord/web-components/esm/pn-header.entry.js +1 -1
  236. package/umd/modules/@postnord/web-components/esm/pn-input.entry.js +2 -2
  237. package/umd/modules/@postnord/web-components/esm/pn-modal.entry.js +22 -8
  238. package/umd/modules/@postnord/web-components/esm/pn-modal.entry.js.map +1 -1
  239. package/umd/modules/@postnord/web-components/esm/pn-multiselect.entry.js +2 -2
  240. package/umd/modules/@postnord/web-components/esm/pn-multiselect.entry.js.map +1 -1
  241. package/umd/modules/@postnord/web-components/esm/pn-ocr-search.entry.js +1 -1
  242. package/umd/modules/@postnord/web-components/esm/pn-page-nav-dropdown-item.entry.js +1 -1
  243. package/umd/modules/@postnord/web-components/esm/pn-page-nav-item.entry.js +1 -1
  244. package/umd/modules/@postnord/web-components/esm/pn-page-nav.entry.js +2 -2
  245. package/umd/modules/@postnord/web-components/esm/pn-page-nav.entry.js.map +1 -1
  246. package/umd/modules/@postnord/web-components/esm/pn-pagination.entry.js +1 -1
  247. package/umd/modules/@postnord/web-components/esm/pn-progress-bar.entry.js +1 -1
  248. package/umd/modules/@postnord/web-components/esm/pn-progress-indicator-step.entry.js +1 -1
  249. package/umd/modules/@postnord/web-components/esm/pn-progress-indicator-step.entry.js.map +1 -1
  250. package/umd/modules/@postnord/web-components/esm/pn-progress-indicator.entry.js +1 -1
  251. package/umd/modules/@postnord/web-components/esm/pn-progress-indicator.entry.js.map +1 -1
  252. package/umd/modules/@postnord/web-components/esm/pn-progress-stepper.entry.js +26 -41
  253. package/umd/modules/@postnord/web-components/esm/pn-progress-stepper.entry.js.map +1 -1
  254. package/umd/modules/@postnord/web-components/esm/pn-radio-button.entry.js +1 -1
  255. package/umd/modules/@postnord/web-components/esm/pn-search-field.entry.js +1 -1
  256. package/umd/modules/@postnord/web-components/esm/pn-segment.entry.js +1 -1
  257. package/umd/modules/@postnord/web-components/esm/pn-segmented-control.entry.js +1 -1
  258. package/umd/modules/@postnord/web-components/esm/pn-select.entry.js +2 -2
  259. package/umd/modules/@postnord/web-components/esm/pn-select.entry.js.map +1 -1
  260. package/umd/modules/@postnord/web-components/esm/pn-tab.entry.js +1 -1
  261. package/umd/modules/@postnord/web-components/esm/pn-tablist.entry.js +2 -2
  262. package/umd/modules/@postnord/web-components/esm/pn-tablist.entry.js.map +1 -1
  263. package/umd/modules/@postnord/web-components/esm/pn-text-link.entry.js +1 -1
  264. package/umd/modules/@postnord/web-components/esm/pn-textarea.entry.js +1 -1
  265. package/umd/modules/@postnord/web-components/esm/pn-tile.entry.js +1 -1
  266. package/umd/modules/@postnord/web-components/esm/pn-toast.entry.js +25 -16
  267. package/umd/modules/@postnord/web-components/esm/pn-toast.entry.js.map +1 -1
  268. package/umd/modules/@postnord/web-components/esm/pn-toggle-switch.entry.js +1 -1
  269. package/umd/modules/@postnord/web-components/esm/pn-tooltip.entry.js +1 -1
  270. package/umd/modules/@postnord/web-components/esm/pn-zipcode-search.entry.js +1 -1
  271. package/umd/modules/@postnord/web-components/esm/postnord-web-components.js +1 -1
  272. package/umd/modules/@postnord/web-components/hydrate/index.js +204 -137
  273. package/umd/modules/@postnord/web-components/hydrate/index.mjs +204 -137
  274. package/umd/modules/@postnord/web-components/package.json +16 -14
  275. package/umd/modules/@postnord/web-components/postnord-web-components/{p-7e88df1f.entry.js → p-01472170.entry.js} +2 -2
  276. package/umd/modules/@postnord/web-components/postnord-web-components/{p-ed4271af.entry.js → p-06c7e91b.entry.js} +2 -2
  277. package/umd/modules/@postnord/web-components/postnord-web-components/p-06c7e91b.entry.js.map +1 -0
  278. package/umd/modules/@postnord/web-components/postnord-web-components/{p-8773152d.entry.js → p-10532427.entry.js} +2 -2
  279. package/umd/modules/@postnord/web-components/postnord-web-components/{p-ffe79fa4.entry.js → p-11ef58ab.entry.js} +2 -2
  280. package/umd/modules/@postnord/web-components/postnord-web-components/p-16fb83d9.entry.js +6 -0
  281. package/umd/modules/@postnord/web-components/postnord-web-components/p-16fb83d9.entry.js.map +1 -0
  282. package/umd/modules/@postnord/web-components/postnord-web-components/{p-d74ccbb2.entry.js → p-1cd57319.entry.js} +2 -2
  283. package/umd/modules/@postnord/web-components/postnord-web-components/{p-adc6404b.entry.js → p-1e7c31ed.entry.js} +2 -2
  284. package/umd/modules/@postnord/web-components/postnord-web-components/p-1e7c31ed.entry.js.map +1 -0
  285. package/umd/modules/@postnord/web-components/postnord-web-components/{p-c2bbbcaa.entry.js → p-1fe6fc61.entry.js} +2 -2
  286. package/umd/modules/@postnord/web-components/postnord-web-components/{p-203ad7de.entry.js → p-23fdc4b6.entry.js} +2 -2
  287. package/umd/modules/@postnord/web-components/postnord-web-components/p-23fdc4b6.entry.js.map +1 -0
  288. package/umd/modules/@postnord/web-components/postnord-web-components/p-240f6613.entry.js +6 -0
  289. package/umd/modules/@postnord/web-components/postnord-web-components/{p-7ae9c053.entry.js.map → p-240f6613.entry.js.map} +1 -1
  290. package/umd/modules/@postnord/web-components/postnord-web-components/{p-4f67fffa.entry.js → p-28357e12.entry.js} +2 -2
  291. package/umd/modules/@postnord/web-components/postnord-web-components/p-28357e12.entry.js.map +1 -0
  292. package/umd/modules/@postnord/web-components/postnord-web-components/{p-c96ff403.js → p-2f7bb5e8.js} +2 -2
  293. package/umd/modules/@postnord/web-components/postnord-web-components/p-2f7bb5e8.js.map +1 -0
  294. package/umd/modules/@postnord/web-components/postnord-web-components/{p-5b0000e9.entry.js → p-363f578a.entry.js} +2 -2
  295. package/umd/modules/@postnord/web-components/postnord-web-components/{p-c0d19737.entry.js → p-37297b9a.entry.js} +2 -2
  296. package/umd/modules/@postnord/web-components/postnord-web-components/p-49a39ea1.entry.js +6 -0
  297. package/umd/modules/@postnord/web-components/postnord-web-components/p-49a39ea1.entry.js.map +1 -0
  298. package/umd/modules/@postnord/web-components/postnord-web-components/{p-bc95d4b0.entry.js → p-49f5fdd2.entry.js} +2 -2
  299. package/umd/modules/@postnord/web-components/postnord-web-components/p-49f5fdd2.entry.js.map +1 -0
  300. package/umd/modules/@postnord/web-components/postnord-web-components/{p-b556b835.entry.js → p-4d371963.entry.js} +2 -2
  301. package/umd/modules/@postnord/web-components/postnord-web-components/{p-ab29b9c0.entry.js → p-4eaab357.entry.js} +2 -2
  302. package/umd/modules/@postnord/web-components/postnord-web-components/{p-da713fc1.entry.js → p-5ed7e9b7.entry.js} +2 -2
  303. package/umd/modules/@postnord/web-components/postnord-web-components/p-617a946d.entry.js +6 -0
  304. package/umd/modules/@postnord/web-components/postnord-web-components/p-617a946d.entry.js.map +1 -0
  305. package/umd/modules/@postnord/web-components/postnord-web-components/{p-e087c5c5.entry.js → p-63aa3911.entry.js} +2 -2
  306. package/umd/modules/@postnord/web-components/postnord-web-components/p-65ae6360.entry.js +6 -0
  307. package/umd/modules/@postnord/web-components/postnord-web-components/p-65ae6360.entry.js.map +1 -0
  308. package/umd/modules/@postnord/web-components/postnord-web-components/{p-bf015c0f.entry.js → p-699b7bde.entry.js} +2 -2
  309. package/umd/modules/@postnord/web-components/postnord-web-components/{p-9bc1d14f.entry.js → p-6f9a21be.entry.js} +2 -2
  310. package/umd/modules/@postnord/web-components/postnord-web-components/p-75c5fb41.entry.js +6 -0
  311. package/umd/modules/@postnord/web-components/postnord-web-components/p-75c5fb41.entry.js.map +1 -0
  312. package/umd/modules/@postnord/web-components/postnord-web-components/{p-bd14cdca.entry.js → p-8e07bc17.entry.js} +2 -2
  313. package/umd/modules/@postnord/web-components/postnord-web-components/{p-7bd6d804.entry.js → p-8eaa2540.entry.js} +2 -2
  314. package/umd/modules/@postnord/web-components/postnord-web-components/{p-bf967b50.js → p-99600bc7.js} +2 -2
  315. package/umd/modules/@postnord/web-components/postnord-web-components/p-99600bc7.js.map +1 -0
  316. package/umd/modules/@postnord/web-components/postnord-web-components/{p-ff068744.entry.js → p-9cecd28d.entry.js} +2 -2
  317. package/umd/modules/@postnord/web-components/postnord-web-components/{p-605d99df.entry.js → p-a440734f.entry.js} +2 -2
  318. package/umd/modules/@postnord/web-components/postnord-web-components/{p-b9a494ae.entry.js → p-ab553e80.entry.js} +2 -2
  319. package/umd/modules/@postnord/web-components/postnord-web-components/{p-936ed2a1.entry.js → p-ae04e001.entry.js} +2 -2
  320. package/umd/modules/@postnord/web-components/postnord-web-components/p-ae04e001.entry.js.map +1 -0
  321. package/umd/modules/@postnord/web-components/postnord-web-components/{p-a4df55c4.entry.js → p-b202a599.entry.js} +2 -2
  322. package/umd/modules/@postnord/web-components/postnord-web-components/p-b83e6373.entry.js +6 -0
  323. package/umd/modules/@postnord/web-components/postnord-web-components/p-b83e6373.entry.js.map +1 -0
  324. package/umd/modules/@postnord/web-components/postnord-web-components/{p-fcd5028f.entry.js → p-bdb9bdc3.entry.js} +2 -2
  325. package/umd/modules/@postnord/web-components/postnord-web-components/{p-81f9f367.entry.js → p-cebe3a25.entry.js} +2 -2
  326. package/umd/modules/@postnord/web-components/postnord-web-components/{p-76b020f0.entry.js → p-d2f7b4a9.entry.js} +2 -2
  327. package/umd/modules/@postnord/web-components/postnord-web-components/{p-c45dc75d.entry.js → p-e8050420.entry.js} +2 -2
  328. package/umd/modules/@postnord/web-components/postnord-web-components/{p-412fc8d6.entry.js → p-eee2d131.entry.js} +2 -2
  329. package/umd/modules/@postnord/web-components/postnord-web-components/{p-d3521b5d.entry.js → p-fb5d6d47.entry.js} +2 -2
  330. package/umd/modules/@postnord/web-components/postnord-web-components/postnord-web-components.esm.js +1 -1
  331. package/umd/modules/@postnord/web-components/postnord-web-components/postnord-web-components.esm.js.map +1 -1
  332. package/umd/modules/@postnord/web-components/types/components/buttons/pn-action-menu/pn-action-menu.d.ts +3 -0
  333. package/umd/modules/@postnord/web-components/types/components/feedback/pn-modal/pn-modal.d.ts +12 -2
  334. package/umd/modules/@postnord/web-components/types/components/feedback/pn-progress-indicator/pn-progress-indicator-step/pn-progress-indicator-step.d.ts +4 -0
  335. package/umd/modules/@postnord/web-components/types/components/feedback/pn-progress-indicator/pn-progress-indicator.d.ts +4 -0
  336. package/umd/modules/@postnord/web-components/types/components/feedback/pn-progress-stepper/pn-progress-stepper.d.ts +27 -22
  337. package/umd/modules/@postnord/web-components/types/components/feedback/pn-toast/pn-toast.d.ts +2 -1
  338. package/umd/modules/@postnord/web-components/types/components.d.ts +60 -12
  339. package/umd/modules/@postnord/web-components/types/globals/types.d.ts +2 -1
  340. package/umd/modules/@postnord/web-components/vscode-data.json +7 -3
  341. package/vscode-data.json +4 -0
  342. package/pn-market-web-components/p-59cb7166.entry.js +0 -2
  343. package/pn-market-web-components/p-59cb7166.entry.js.map +0 -1
  344. package/pn-market-web-components/p-7c3091eb.entry.js +0 -2
  345. package/pn-market-web-components/p-7c3091eb.entry.js.map +0 -1
  346. package/pn-market-web-components/p-94a69959.entry.js +0 -2
  347. package/pn-market-web-components/p-94a69959.entry.js.map +0 -1
  348. package/umd/modules/@postnord/web-components/cjs/angle_down-0b63ebde.js.map +0 -1
  349. package/umd/modules/@postnord/web-components/cjs/angle_right-c8c55b43.js.map +0 -1
  350. package/umd/modules/@postnord/web-components/components/angle_down.js.map +0 -1
  351. package/umd/modules/@postnord/web-components/components/angle_right.js.map +0 -1
  352. package/umd/modules/@postnord/web-components/esm/angle_down-d788f691.js.map +0 -1
  353. package/umd/modules/@postnord/web-components/esm/angle_right-b52095c9.js.map +0 -1
  354. package/umd/modules/@postnord/web-components/postnord-web-components/p-203ad7de.entry.js.map +0 -1
  355. package/umd/modules/@postnord/web-components/postnord-web-components/p-2615282e.entry.js +0 -6
  356. package/umd/modules/@postnord/web-components/postnord-web-components/p-2615282e.entry.js.map +0 -1
  357. package/umd/modules/@postnord/web-components/postnord-web-components/p-3bd59ac8.entry.js +0 -6
  358. package/umd/modules/@postnord/web-components/postnord-web-components/p-3bd59ac8.entry.js.map +0 -1
  359. package/umd/modules/@postnord/web-components/postnord-web-components/p-4f67fffa.entry.js.map +0 -1
  360. package/umd/modules/@postnord/web-components/postnord-web-components/p-514107a5.entry.js +0 -6
  361. package/umd/modules/@postnord/web-components/postnord-web-components/p-514107a5.entry.js.map +0 -1
  362. package/umd/modules/@postnord/web-components/postnord-web-components/p-6a30576b.entry.js +0 -6
  363. package/umd/modules/@postnord/web-components/postnord-web-components/p-6a30576b.entry.js.map +0 -1
  364. package/umd/modules/@postnord/web-components/postnord-web-components/p-7ae9c053.entry.js +0 -6
  365. package/umd/modules/@postnord/web-components/postnord-web-components/p-8bc8f614.entry.js +0 -6
  366. package/umd/modules/@postnord/web-components/postnord-web-components/p-8bc8f614.entry.js.map +0 -1
  367. package/umd/modules/@postnord/web-components/postnord-web-components/p-936ed2a1.entry.js.map +0 -1
  368. package/umd/modules/@postnord/web-components/postnord-web-components/p-adc6404b.entry.js.map +0 -1
  369. package/umd/modules/@postnord/web-components/postnord-web-components/p-bc95d4b0.entry.js.map +0 -1
  370. package/umd/modules/@postnord/web-components/postnord-web-components/p-bf967b50.js.map +0 -1
  371. package/umd/modules/@postnord/web-components/postnord-web-components/p-c96ff403.js.map +0 -1
  372. package/umd/modules/@postnord/web-components/postnord-web-components/p-ed4271af.entry.js.map +0 -1
  373. package/umd/modules/@postnord/web-components/postnord-web-components/p-fc5f9092.entry.js +0 -6
  374. package/umd/modules/@postnord/web-components/postnord-web-components/p-fc5f9092.entry.js.map +0 -1
  375. package/umd/modules/@postnord/web-components/readme.md +0 -32
  376. /package/umd/modules/@postnord/web-components/postnord-web-components/{p-7e88df1f.entry.js.map → p-01472170.entry.js.map} +0 -0
  377. /package/umd/modules/@postnord/web-components/postnord-web-components/{p-8773152d.entry.js.map → p-10532427.entry.js.map} +0 -0
  378. /package/umd/modules/@postnord/web-components/postnord-web-components/{p-ffe79fa4.entry.js.map → p-11ef58ab.entry.js.map} +0 -0
  379. /package/umd/modules/@postnord/web-components/postnord-web-components/{p-d74ccbb2.entry.js.map → p-1cd57319.entry.js.map} +0 -0
  380. /package/umd/modules/@postnord/web-components/postnord-web-components/{p-c2bbbcaa.entry.js.map → p-1fe6fc61.entry.js.map} +0 -0
  381. /package/umd/modules/@postnord/web-components/postnord-web-components/{p-5b0000e9.entry.js.map → p-363f578a.entry.js.map} +0 -0
  382. /package/umd/modules/@postnord/web-components/postnord-web-components/{p-c0d19737.entry.js.map → p-37297b9a.entry.js.map} +0 -0
  383. /package/umd/modules/@postnord/web-components/postnord-web-components/{p-b556b835.entry.js.map → p-4d371963.entry.js.map} +0 -0
  384. /package/umd/modules/@postnord/web-components/postnord-web-components/{p-ab29b9c0.entry.js.map → p-4eaab357.entry.js.map} +0 -0
  385. /package/umd/modules/@postnord/web-components/postnord-web-components/{p-da713fc1.entry.js.map → p-5ed7e9b7.entry.js.map} +0 -0
  386. /package/umd/modules/@postnord/web-components/postnord-web-components/{p-e087c5c5.entry.js.map → p-63aa3911.entry.js.map} +0 -0
  387. /package/umd/modules/@postnord/web-components/postnord-web-components/{p-bf015c0f.entry.js.map → p-699b7bde.entry.js.map} +0 -0
  388. /package/umd/modules/@postnord/web-components/postnord-web-components/{p-9bc1d14f.entry.js.map → p-6f9a21be.entry.js.map} +0 -0
  389. /package/umd/modules/@postnord/web-components/postnord-web-components/{p-bd14cdca.entry.js.map → p-8e07bc17.entry.js.map} +0 -0
  390. /package/umd/modules/@postnord/web-components/postnord-web-components/{p-7bd6d804.entry.js.map → p-8eaa2540.entry.js.map} +0 -0
  391. /package/umd/modules/@postnord/web-components/postnord-web-components/{p-ff068744.entry.js.map → p-9cecd28d.entry.js.map} +0 -0
  392. /package/umd/modules/@postnord/web-components/postnord-web-components/{p-605d99df.entry.js.map → p-a440734f.entry.js.map} +0 -0
  393. /package/umd/modules/@postnord/web-components/postnord-web-components/{p-b9a494ae.entry.js.map → p-ab553e80.entry.js.map} +0 -0
  394. /package/umd/modules/@postnord/web-components/postnord-web-components/{p-a4df55c4.entry.js.map → p-b202a599.entry.js.map} +0 -0
  395. /package/umd/modules/@postnord/web-components/postnord-web-components/{p-fcd5028f.entry.js.map → p-bdb9bdc3.entry.js.map} +0 -0
  396. /package/umd/modules/@postnord/web-components/postnord-web-components/{p-81f9f367.entry.js.map → p-cebe3a25.entry.js.map} +0 -0
  397. /package/umd/modules/@postnord/web-components/postnord-web-components/{p-76b020f0.entry.js.map → p-d2f7b4a9.entry.js.map} +0 -0
  398. /package/umd/modules/@postnord/web-components/postnord-web-components/{p-c45dc75d.entry.js.map → p-e8050420.entry.js.map} +0 -0
  399. /package/umd/modules/@postnord/web-components/postnord-web-components/{p-412fc8d6.entry.js.map → p-eee2d131.entry.js.map} +0 -0
  400. /package/umd/modules/@postnord/web-components/postnord-web-components/{p-d3521b5d.entry.js.map → p-fb5d6d47.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"file":"pn-multiselect.entry.js","mappings":"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","names":[],"sources":["src/components/input/pn-multiselect/translations.ts","src/components/input/pn-multiselect/pn-multiselect.scss?tag=pn-multiselect","src/components/input/pn-multiselect/pn-multiselect.tsx"],"sourcesContent":["export const translations = {\n SELECT_AN_OPTION: {\n en: 'Select an option',\n sv: 'Välj ett alternativ',\n da: 'Vælg en mulighed',\n fi: 'Valitse vaihtoehto',\n no: 'Velg et alternativ',\n },\n SELECT_ALL_OPTIONS: {\n en: 'Select all options',\n sv: 'Välj alla alternativ',\n da: 'Vælg alle muligheder',\n fi: 'Valitse kaikki vaihtoehdot',\n no: 'Velg alle alternativer',\n },\n SELECT_FOUND_OPTIONS: {\n en: 'Select {number} options',\n sv: 'Välj {number} alternativ',\n da: 'Vælg {number} muligheder',\n fi: 'Valitse {number} vaihtoehtoa',\n no: 'Velg {number} alternativer',\n },\n SELECTED_OPTIONS: {\n en: 'Selected options.',\n sv: 'Valda alternativ.',\n da: 'Valgte muligheder.',\n fi: 'Valitut vaihtoehdot.',\n no: 'Valgte alternativer.',\n },\n BUTTON_OPEN: {\n en: 'Open list',\n sv: 'Öppna listan',\n da: 'Open list',\n fi: 'Open list',\n no: 'Open list',\n },\n BUTTON_CLOSE: {\n en: 'Close list',\n sv: 'Stäng listan',\n da: 'Close list',\n fi: 'Close list',\n no: 'Close list',\n },\n REMOVE: {\n en: 'Remove',\n sv: 'Ta bort',\n da: 'Remove',\n fi: 'Remove',\n no: 'Remove',\n },\n REMOVED: {\n en: 'Removed',\n sv: 'Tog bort',\n da: 'Fjernet',\n fi: 'Poistettu',\n no: 'Fjernet',\n },\n MORE_OPTION: {\n en: 'more option.',\n sv: 'alternativ till.',\n da: 'mulighed mere.',\n fi: 'vaihtoehto lisää.',\n no: 'alternativ til.',\n },\n MORE_OPTIONS: {\n en: 'more options.',\n sv: 'fler alternativ.',\n da: 'more options.',\n fi: 'more options.',\n no: 'more options.',\n },\n SEARCH: {\n en: 'Search',\n sv: 'Sök',\n da: 'Søg',\n fi: 'Hae',\n no: 'Søk',\n },\n RESULTS_FOUND: {\n en: 'options found',\n sv: 'alternativ hittades',\n da: 'muligheder fundet',\n fi: 'vaihtoehtoja löytyi',\n no: 'alternativer funnet',\n },\n NO_SEARCH_RESULTS: {\n en: 'No options found',\n sv: 'Inga alternativ hittades',\n da: 'Ingen muligheder fundet',\n fi: 'Vaihtoehtoja ei löytynyt',\n no: 'Finner ingen alternativer',\n },\n NO_OPTIONS: {\n en: 'No options available',\n sv: 'Inga alternativ tillgängliga',\n da: 'Ingen tilgængelige muligheder',\n fi: 'Ei vaihtoehtoja',\n no: 'Ingen tilgjengelige alternativer',\n },\n};\n","@use 'src/globals/main';\n\npn-multiselect {\n display: inline-block;\n}\n\npn-multiselect .pn-multiselect {\n border: 0;\n margin: 0;\n padding: 0;\n\n &[data-icon] .pn-multiselect-element {\n padding-left: 3em;\n }\n\n &[data-error] .pn-multiselect-element {\n padding-right: 5.5em;\n @include main.pn-input-field-error();\n }\n\n &-label {\n @include main.pn-input-label;\n width: 100%;\n }\n\n @include main.pn-sr-only-class();\n\n &-group {\n position: relative;\n padding: 0;\n margin: 0;\n }\n\n &-input {\n position: relative;\n\n > pn-icon {\n pointer-events: none;\n position: absolute;\n top: 0.75em;\n right: 3.5em;\n &[data-custom] {\n left: 0.75em;\n right: unset;\n }\n }\n }\n\n &-button {\n cursor: pointer;\n position: absolute;\n right: 0.75em;\n top: 50%;\n transform: translateY(-50%);\n padding: 0;\n margin: 0;\n border: 0;\n width: 2em;\n height: 2em;\n font-size: 1em;\n border-radius: 50%;\n background-color: transparent;\n\n -webkit-tap-highlight-color: transparent;\n\n @include main.pn-transition('background-color, outline-color, border-color');\n @include main.pn-focus(main.$blue700, main.$white, main.$blue700);\n\n > pn-icon > svg > path {\n @include main.pn-transition('transform');\n transition-delay: main.$timing;\n transform-origin: center;\n transform: rotate(0deg);\n }\n\n &:hover {\n background-color: main.$blue25;\n }\n\n &[aria-expanded='true'] {\n background-color: main.$blue25;\n > pn-icon > svg > path {\n transform: rotate(180deg);\n transition-delay: 0s;\n }\n }\n }\n\n &-element {\n @include main.pn-input-field;\n\n cursor: text;\n text-align: left;\n transition-delay: 0.1s, 0.1s, 0s;\n width: 100%;\n padding-right: 3.5em;\n\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 0.5em;\n\n overflow: hidden;\n text-overflow: ellipsis;\n\n &:disabled {\n @include main.pn-disabled;\n pointer-events: none;\n + .pn-multiselect-button {\n pointer-events: none;\n path {\n fill: main.$input-color-disabled;\n }\n }\n }\n\n &:placeholder {\n @include main.pn-placeholder;\n }\n\n &[type='input']:hover {\n cursor: pointer;\n color: main.$input-color;\n background-color: main.$input-background-hover;\n transition-delay: 0s;\n &[aria-invalid='true'] {\n background-color: main.$input-background-error-hover;\n }\n }\n\n &:focus-visible {\n transition-delay: 0s;\n }\n\n &::-webkit-search-cancel-button,\n &::-webkit-search-decoration {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n }\n }\n\n &-options {\n scroll-behavior: smooth;\n position: absolute;\n z-index: 10;\n top: calc(100% + 0.5em);\n left: 0;\n right: 0;\n background-color: main.$white;\n box-shadow:\n 0em 0.075em 0.225em 0em rgba(0, 0, 0, 0.1),\n 0em 0.4em 0.9em 0em rgba(0, 0, 0, 0.13);\n\n border-radius: main.$border-radius;\n\n list-style: none;\n margin: 0;\n padding: 0;\n\n width: var(--pn-select-options-width);\n max-height: var(--pn-select-max-height);\n overflow-y: auto;\n overflow-x: hidden;\n\n display: flex;\n flex-direction: column;\n\n visibility: hidden;\n\n transform-origin: top left;\n\n &[data-open] {\n visibility: visible;\n }\n\n &[data-upwards] {\n top: unset;\n bottom: calc(100% + 0.5em);\n transform-origin: bottom left;\n box-shadow: 0 -0.0625em 0.125em rgba(0, 0, 0, 0.2);\n }\n\n &[data-moving] {\n overflow: hidden;\n visibility: visible;\n }\n\n @include main.pn-scrollbar();\n\n > pn-input {\n padding: 0.5em;\n }\n }\n\n &-optgroup {\n list-style: none;\n padding: 0;\n > .pn-multiselect-option > .pn-multiselect-option-content {\n padding-left: 2em;\n }\n }\n\n &-chips {\n list-style: none;\n display: flex;\n flex-wrap: wrap;\n gap: 0.5em;\n padding: 0;\n margin: 0.5em 0 0 0;\n color: main.$gray700;\n font-weight: 400;\n &:empty {\n display: none;\n }\n }\n\n &-chip {\n margin: 0;\n display: inline-flex;\n align-items: center;\n gap: 0.25em;\n background-color: main.$white;\n border-radius: main.$border-radius;\n padding: 0.125em 0.25em 0.125em 0.5em;\n line-height: 1.5em;\n border: 0.0625em solid main.$gray700;\n\n @include main.pn-focus-base;\n @include main.pn-transition('background-color, outline-color, border-color, color');\n\n &:focus-within {\n color: main.$blue700;\n @include main.pn-focus-visible(main.$blue700, main.$blue25, main.$blue700);\n }\n\n &[data-count] {\n pointer-events: none;\n border: 0;\n padding-left: 0;\n padding-right: 0;\n background-color: unset;\n }\n\n &-label {\n font-size: 0.875em;\n white-space: nowrap;\n }\n\n &-button {\n cursor: pointer;\n font-size: 1em;\n padding: 0.25em;\n height: 1.5em;\n width: 1.5em;\n border: 0;\n background-color: unset;\n border-radius: 50%;\n @include main.pn-transition('background-color');\n -webkit-tap-highlight-color: transparent;\n\n &:hover {\n background-color: main.$blue200;\n }\n &:focus {\n outline: 0;\n }\n }\n }\n\n &-no-results {\n margin: 0;\n padding: 0.75em;\n }\n\n &-description {\n @include main.pn-input-helpertext;\n &[role='alert'] {\n color: main.$helpertext-color-error;\n }\n }\n}\n\n// Select option\npn-multiselect .pn-multiselect-option {\n position: relative;\n margin: 0;\n padding: 0;\n @include main.pn-ripple(main.$blue700);\n\n &-input {\n cursor: pointer;\n position: absolute;\n opacity: 0;\n left: 0;\n top: 0;\n height: 100%;\n width: 100%;\n margin: 0;\n -webkit-tap-highlight-color: transparent;\n\n &:disabled {\n pointer-events: none;\n + .pn-multiselect-option-content {\n @include main.pn-disabled;\n pointer-events: none;\n .pn-multiselect-option-checkbox {\n background-color: main.$input-background-disabled;\n border-color: main.$input-border-disabled;\n }\n path {\n fill: main.$input-color-disabled;\n }\n }\n\n &:checked {\n + .pn-multiselect-option-content {\n @include main.pn-disabled;\n .pn-multiselect-option-checkbox {\n background-color: main.$input-button-disabled;\n border-color: main.$input-border-disabled;\n }\n path {\n fill: main.$input-color-disabled;\n }\n }\n }\n }\n\n &[aria-invalid='true'] {\n + .pn-multiselect-option-content {\n .pn-multiselect-option-checkbox {\n border-color: main.$border-color-error;\n }\n .pn-ripple {\n background-color: main.$warning;\n }\n }\n\n &:checked + .pn-multiselect-option-content {\n background-color: main.$input-background-error-active;\n .pn-multiselect-option-checkbox {\n background-color: main.$input-button-active-error;\n border-color: main.$input-button-active-error;\n }\n }\n\n &:checked:focus-visible + .pn-multiselect-option-content {\n background-color: main.$input-background-error-active;\n .pn-multiselect-option-checkbox {\n background-color: main.$input-button-active-error-focus;\n border-color: main.$input-button-active-error-focus;\n }\n }\n\n &:checked:hover + .pn-multiselect-option-content {\n background-color: main.$coral25;\n .pn-multiselect-option-checkbox {\n background-color: main.$input-button-active-error-hover;\n border-color: main.$input-button-active-error-hover;\n }\n }\n\n &:hover + .pn-multiselect-option-content {\n background-color: main.$coral25;\n .pn-multiselect-option-checkbox {\n background-color: main.$input-background-error-hover;\n border-color: main.$border-color-error-focus;\n }\n }\n\n &:focus-visible + .pn-multiselect-option-content .pn-multiselect-option-checkbox {\n @include main.pn-focus-visible(\n main.$border-color-error-focus,\n main.$input-background-error-active,\n main.$border-color-error-focus\n );\n }\n }\n\n &:hover + .pn-multiselect-option-content {\n background-color: main.$blue25;\n .pn-multiselect-option-checkbox {\n border-color: main.$blue700;\n background-color: main.$blue50;\n }\n }\n\n &:focus-visible + .pn-multiselect-option-content .pn-multiselect-option-checkbox {\n @include main.pn-focus-visible(main.$blue700, main.$blue50, main.$blue700);\n }\n\n &:checked + .pn-multiselect-option-content {\n background-color: main.$blue50;\n .pn-multiselect-option-checkbox {\n border-color: main.$blue700;\n background-color: main.$blue700;\n svg polyline.pn-multiselect-option-checkbox-checkmark-path {\n transition-delay: 0.2s;\n stroke-dashoffset: 0;\n }\n }\n }\n\n &:checked:hover + .pn-multiselect-option-content {\n background-color: main.$blue25;\n .pn-multiselect-option-checkbox {\n border-color: main.$blue900;\n background-color: main.$blue900;\n }\n }\n\n &:checked:focus-visible + .pn-multiselect-option-content {\n background-color: main.$blue50;\n .pn-multiselect-option-checkbox {\n border-color: main.$blue900;\n background-color: main.$blue900;\n }\n }\n\n &:indeterminate + .pn-multiselect-option-content {\n .pn-multiselect-option-checkbox {\n background-color: main.$blue700;\n border-color: main.$blue700;\n }\n svg .pn-multiselect-option-checkbox-checkmark-path {\n stroke-dashoffset: 23;\n }\n svg .pn-multiselect-option-checkbox-indeterminate-path {\n stroke-dashoffset: 0;\n }\n }\n\n &:indeterminate:hover + .pn-multiselect-option-content {\n .pn-multiselect-option-checkbox {\n background-color: main.$blue900;\n border-color: main.$blue900;\n }\n }\n }\n\n &-content {\n position: relative;\n overflow: hidden;\n z-index: -1;\n display: flex;\n align-items: center;\n padding: 0.75em 1em;\n gap: 0.5em;\n background-color: main.$white;\n @include main.pn-transition('background-color');\n }\n\n &-text {\n flex: 1;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n &-label {\n color: main.$gray900;\n font-weight: 400;\n }\n\n &-helper {\n color: main.$gray700;\n margin: 0;\n }\n\n &-checkbox {\n background-color: main.$white;\n flex: 0 0 1.5em;\n width: 1.5em;\n height: 1.5em;\n border: 0.0625em solid main.$gray400;\n border-radius: 0.25em;\n\n @include main.pn-focus-base;\n @include main.pn-transition('background-color, border-color, outline-color');\n\n svg polyline {\n stroke: main.$white;\n stroke-linecap: round;\n stroke-dasharray: 23;\n @include main.pn-transition('stroke-dashoffset');\n transition-delay: 0s;\n\n &.pn-multiselect-option-checkbox-checkmark-path {\n stroke-dashoffset: 23;\n }\n\n &.pn-multiselect-option-checkbox-indeterminate-path {\n stroke-dashoffset: 23;\n }\n }\n }\n}\n","import { Component, h, Host, Element, Watch, Prop, State, EventEmitter, Event, Listen } from '@stencil/core';\n\nimport { translations } from './translations';\n\nimport { close, alert_exclamation_circle, angle_down } from 'pn-design-assets/pn-assets/icons.js';\n\nimport { uuidv4, awaitTopbar, ripple, en, getTotalHeightOffset, reduceMotion } from '@/index';\nimport type { PnLanguages, PnMultiselectOption } from '@/index';\n\n/**\n * The `pn-multiselect` gets its options via javascript.\n *\n * Native HTML does not accept arrays of objects. Most frameworks solves this automatically (Vue, react, etc...),\n * but keep this in mind if you use this component outside of a framework environment.\n *\n * @nativeChange The `pn-multiselect` is built with `input[type=checkbox]` elements, so the `change` event works. However, we recommend the customEvents described above.\n *\n * @see {@link https://portal.postnord.com/web-components/?path=/docs/components-input-multiselect--docs#pn-multiselect%20(options) Options documentation}\n */\n@Component({\n tag: 'pn-multiselect',\n styleUrl: 'pn-multiselect.scss',\n})\nexport class PnMultiselect {\n private readonly id: string = `pn-multiselect-${uuidv4()}`;\n private idLegend: string = `${this.id}-legend`;\n private idButton: string = `${this.id}-button`;\n private idOptions: string = `${this.id}-options`;\n private idHelper: string = `${this.id}-text`;\n private idChips: string = `${this.id}-chips`;\n private idSr: string = `${this.id}-sr`;\n\n private elGroup: HTMLDivElement;\n private elButton: HTMLButtonElement;\n private elInput: HTMLInputElement;\n private elList: HTMLUListElement;\n private elChips: HTMLUListElement;\n\n private srTimer: NodeJS.Timeout;\n\n private animation: Animation;\n private animationDurationDefault: number = 400;\n private animationDuration: number = this.animationDurationDefault;\n\n @Element() hostElement: HTMLElement;\n\n @State() private isSearching: boolean = false;\n\n /** Layout state. */\n @State() private open: boolean = false;\n @State() private upwards: boolean = false;\n\n @State() private srMessage?: string;\n\n @State() private isClosing: boolean = false;\n @State() private isExpanding: boolean = false;\n\n /** Label placed above the select */\n @Prop() label!: string;\n /** Display a helper text underneath the select */\n @Prop() helpertext?: string;\n /**\n * This is what will be shown on load if no value is used.\n * The `placeholder` will override the default text used if you have the `search` prop active.\n */\n @Prop() placeholder?: string;\n /** HTML name of the checkbox elements. Used for each checkbox inside the multiselect. */\n @Prop() name?: string;\n /** Select HTML id */\n @Prop() selectId?: string = this.id;\n /** HTML name of the input element.*/\n @Prop() selectName?: string;\n /** Display an icon to the left of the select input */\n @Prop() icon?: string;\n /** Manually set the language, not needed if you have the pnTopbar available */\n @Prop() language?: PnLanguages = null;\n /**\n * Array of options.\n * @hide true\n **/\n @Prop({ mutable: true }) options!: PnMultiselectOption[];\n\n /**\n * Adds a \"Select all\" option into the list.\n * If you use the search feature at the same time, clicking this option will only toggle the options found.\n * @see {@link search}\n * @category Features\n **/\n @Prop() selectAll?: boolean = false;\n /**\n * Set a custom value for the \"Select all value\" option.\n * @see {@link selectAll}\n * @category Features\n */\n @Prop() allValue?: string = 'pn_multiselect_all';\n /**\n * Allow the user to search among the options.\n * The selected options will now display underneath the multiselect element.\n *\n * @category Features\n **/\n @Prop() search?: boolean = false;\n /** Set the search query of the multiselect.\n *\n * @see {@link search}\n * @category Features\n */\n @Prop({ mutable: true }) searchQuery?: string = '';\n /**\n * Decide how many items should be shown before ellipsis. Requires the `search` prop to work.\n *\n * @see {@link search}\n * @category Features\n **/\n @Prop() itemCount?: number = 5;\n /**\n * Use a custom max-height for the dropdown list.\n * @description The component will automatically set the max height of the dropdown list on its own.\n * It takes the `pn-topbar` into account and will open in the direction that fits best.\n * Use this prop to override this behaviour and use a custom max-height.\n * @category Features\n **/\n @Prop() maxHeight?: string;\n /**\n * Force the dropdown to always open upwards.\n * @category Features\n **/\n @Prop() top?: boolean = false;\n /**\n * Force the dropdown to always open downwards.\n * @category Features\n **/\n @Prop() bottom?: boolean = false;\n\n /** Set the select as required. @category Validation */\n @Prop() required?: boolean = false;\n /** Disable the select. @category Validation */\n @Prop() disabled?: boolean = false;\n /** Trigger the invalid state. @category Validation */\n @Prop() invalid?: boolean = false;\n /** Display an error message and trigger the invalid state. @category Validation */\n @Prop() error?: string;\n\n @Watch('open')\n handleOpen() {\n if (this.open) {\n this.addGlobalEventListeners();\n\n this.handleDirection();\n this.handleMaxHeight();\n this.handleWidth();\n requestAnimationFrame(() => this.openGrid());\n } else {\n this.closeGrid();\n this.removeGlobalEventListeners();\n }\n }\n\n @Watch('search')\n handleSearch() {\n if (!this.search)\n this.options = [\n ...this.options.map(option => {\n const item = {\n ...option,\n hide: false,\n };\n\n if (item?.group?.length) item.group.map(opt => ({ ...opt, hide: false }));\n\n return item;\n }),\n ];\n }\n\n @Watch('searchQuery')\n handleSearchQuery() {\n if (this.search && typeof this.searchQuery === 'string') this.handleInputSearch();\n }\n\n @Watch('selectId')\n handleSelectId() {\n const id = this.selectId;\n this.idLegend = `${id}-legend`;\n this.idButton = `${id}-button`;\n this.idOptions = `${id}-options`;\n this.idHelper = `${id}-text`;\n this.idChips = `${id}-chips`;\n this.idSr = `${id}-sr`;\n }\n\n /**\n * If the select is open and you resize the window.\n * Remove all css props and disable the animations entierly.\n **/\n @Listen('resize', { target: 'window' })\n handleResize() {\n if (!this.open) return;\n this.toggleOpen(false);\n\n this.elList.style.removeProperty('--pn-select-options-width');\n this.elList.style.removeProperty('--pn-select-max-height');\n }\n\n /** Dispatched everytime the multiselect is opened or closed. */\n @Event() toggleSelect: EventEmitter<{ open: boolean }>;\n /** This event contains the entire options array with the new props. Dispatched everytime you make changes to any option. */\n @Event() allOptions: EventEmitter<PnMultiselectOption[]>;\n /** Dispatched when you toggle an option. Includes all the props of the option. */\n @Event() selectedOption: EventEmitter<PnMultiselectOption>;\n /**\n * This event is dispatched when the user toggles the \"Choose all options\" box.\n * Also triggers when you click the \"Select {number} options\" if you are performing a search at the same time.\n **/\n @Event() selectedAllOptions: EventEmitter<{\n checked: boolean;\n searching: boolean;\n query?: string;\n found?: PnMultiselectOption[];\n }>;\n /**\n * Contains the search text and the options found for that query.\n * Dispacthed everytime you change the search query.\n **/\n @Event() searchInput: EventEmitter<{\n query: string;\n found?: PnMultiselectOption[];\n }>;\n\n async componentWillLoad() {\n this.handleSelectId();\n if (this.language === null) await awaitTopbar(this.hostElement);\n }\n\n componentDidLoad() {\n if (!!this.searchQuery?.length) this.handleSearchQuery();\n }\n\n private globalEvents = (event: PointerEvent | KeyboardEvent) => {\n const target = event.target as HTMLElement;\n const isWithinCalendar = target?.closest(this.hostElement.localName);\n if (!isWithinCalendar) this.toggleOpen(false);\n };\n\n private addGlobalEventListeners() {\n const root: Document = this.hostElement.getRootNode() as Document;\n\n root.addEventListener('click', this.globalEvents);\n }\n\n private removeGlobalEventListeners() {\n const root: Document = this.hostElement.getRootNode() as Document;\n\n root.removeEventListener('click', this.globalEvents);\n }\n\n private openGrid() {\n requestAnimationFrame(() => {\n const { clientHeight, scrollHeight } = this.elList;\n const height = this.isClosing ? clientHeight : 0;\n this.elList.style.height = `${scrollHeight}px`;\n\n this.isExpanding = true;\n this.animateGrid(true, `${height}px`, this.maxHeight || `${this.elList.scrollHeight}px`);\n });\n }\n\n private closeGrid() {\n const { scrollHeight, clientHeight } = this.elList;\n const height = this.isExpanding ? clientHeight : scrollHeight;\n this.elList.style.height = `0px`;\n\n this.isClosing = true;\n this.animateGrid(false, `${height}px`, `0px`);\n }\n\n private animateGrid(open: boolean, startHeight: string, endHeight: string) {\n this.cancelAnimations();\n\n if (reduceMotion()) this.animationDuration = 0;\n else this.animationDuration = this.animationDurationDefault;\n\n this.animation = this.elList.animate(\n {\n height: [startHeight, endHeight],\n },\n {\n duration: this.animationDuration,\n easing: 'cubic-bezier(0.6, 0, 0.2, 1)',\n },\n );\n this.animation.onfinish = () => this.animationFinish();\n this.animation.oncancel = () => (open ? (this.isExpanding = false) : (this.isClosing = false));\n }\n\n private animationFinish() {\n this.cancelAnimations();\n this.elList.style.height = this.isClosing ? '0px' : '';\n this.isClosing = false;\n this.isExpanding = false;\n }\n\n private cancelAnimations() {\n if (this.animation) this.animation.cancel();\n }\n\n private emitEvents(option?: PnMultiselectOption, all?: boolean) {\n this.allOptions.emit(this.options);\n\n if (option) return this.selectedOption.emit(option);\n\n const data: { checked: boolean; searching: boolean; query?: string; found?: PnMultiselectOption[] } = {\n checked: all,\n searching: this.isSearching,\n };\n\n if (this.search && this.optionsTotal() !== this.optionsSearch().length) {\n data.query = this.searchQuery;\n data.found = this.optionsSearch();\n }\n\n this.selectedAllOptions.emit(data);\n }\n\n private optionsChecked(): PnMultiselectOption[] {\n const list = this.options?.reduce((sum, item) => {\n const subgroup = item.group ? [...item.group.filter(({ checked }) => checked)] : [];\n\n if (item.checked) sum.push(item);\n\n if (subgroup?.length) sum.push(...subgroup);\n\n return sum;\n }, []);\n\n return list;\n }\n\n private optionsTotal(): number {\n return this.options?.reduce((sum, item) => sum + (item?.group?.length ? item.group.length + 1 : 1), 0);\n }\n\n private optionsIndex(val: string): { indexGroup: number; indexNested?: number } {\n const findNested = ({ group = [] }: PnMultiselectOption) => group?.findIndex(({ value }) => value === val);\n\n const indexGroup = this.options.findIndex(option => option.value === val || findNested(option) !== -1);\n const indexNested = findNested(this.options?.[indexGroup]);\n\n return {\n indexGroup,\n indexNested,\n };\n }\n\n private optionsCheckedTotal(): number {\n return this.optionsChecked()?.length;\n }\n\n private optionsCheckedPreview(): PnMultiselectOption[] {\n return this.optionsChecked()?.slice(0, this.itemCount);\n }\n\n private optionsCheckedLabels(): string {\n return this.optionsChecked()\n ?.map(({ label }) => label)\n ?.join(', ');\n }\n\n private optionsSearch(): PnMultiselectOption[] {\n const list = this.options?.reduce((sum, item) => {\n const subgroup = item.group ? [...item.group.filter(({ hide }) => !hide)] : [];\n if (!item.hide) sum.push(item);\n if (subgroup?.length) sum.push(...subgroup);\n return sum;\n }, []);\n\n return list;\n }\n\n private noResults() {\n return this.optionsSearch()?.length === 0;\n }\n\n private isIndeterminate(groupIndex: number): boolean {\n const option = this.options?.[groupIndex];\n if (option?.group?.length) {\n const all = option.group.every(({ checked }) => checked);\n const none = option.group.every(({ checked }) => !checked);\n\n return !(all || none);\n }\n return false;\n }\n\n private optionSelect({ val, checked, chip }: { val: string; checked: boolean; chip?: number }) {\n if (val === this.allValue) return this.optionSelectAll(checked);\n\n const options = this.options;\n\n const { indexGroup, indexNested } = this.optionsIndex(val);\n\n const group = options[indexGroup]?.group;\n const nested = group?.[indexNested];\n\n if (nested?.value) {\n options[indexGroup].group[indexNested].checked = checked;\n\n const allSiblingsChecked = group?.every(({ checked }) => checked);\n\n if (allSiblingsChecked) options[indexGroup].checked = true;\n else options[indexGroup].checked = false;\n } else {\n options[indexGroup].checked = checked;\n if (group?.length) options[indexGroup].group = group?.map(opt => ({ ...opt, checked: checked }));\n }\n\n const option = indexNested === -1 ? options[indexGroup] : options[indexGroup].group[indexNested];\n\n this.emitEvents(option);\n\n this.options = [...options];\n\n if (typeof chip === 'number') {\n this.handleSrMesssage(`${this.translate('REMOVED')} ${option.label}`);\n\n requestAnimationFrame(() => {\n const index = chip === this.optionsCheckedTotal() ? chip - 1 : chip;\n const btn = Array.from(this.elChips.children)?.[index];\n btn?.querySelector('button').focus({ preventScroll: true });\n });\n }\n }\n\n private optionSelectAll(checked: boolean) {\n this.options = [\n ...this.options.map(option => {\n const opt = {\n ...option,\n checked: this.isSearching ? (option.hide ? option.checked : checked) : checked,\n };\n\n if (opt.group)\n opt.group = [\n ...opt.group.map(item => ({\n ...item,\n checked: this.isSearching ? (item.hide ? item.checked : checked) : checked,\n })),\n ];\n\n const allChecked = opt?.group?.every(({ checked }) => checked);\n if (opt?.group?.length) opt.checked = allChecked;\n\n return opt;\n }),\n ];\n\n this.emitEvents(null, checked);\n }\n\n private optionSelected(val: string): boolean {\n return !!this.optionsChecked()?.find(({ value, checked }) => value === val && checked);\n }\n\n private translate(prop: string): string {\n const text = translations?.[prop]?.[this.language || en];\n if (text.includes('{number}')) return text.replace('{number}', this.optionsSearch().length);\n return text;\n }\n\n private getRect(element: HTMLElement): DOMRect {\n return element?.getBoundingClientRect();\n }\n\n private ripple({ clientX, clientY, target }: MouseEvent) {\n const isKeyboard = clientX === 0 && clientY === 0;\n const element = (target as HTMLInputElement).nextElementSibling;\n const { x, width, y, top } = this.getRect(element as HTMLElement);\n const clientCor = isKeyboard ? { clientX: x + width - 24, clientY: y - top } : { clientX, clientY };\n\n ripple(clientCor, element as HTMLElement);\n }\n\n private handleSrMesssage(text: string) {\n this.srMessage = text;\n clearTimeout(this.srTimer);\n this.srTimer = setTimeout(() => (this.srMessage = null), 2000);\n }\n\n private handleDirection() {\n if (this.top) return (this.upwards = true);\n if (this.bottom) return (this.upwards = false);\n\n const { bottom, top } = this.getRect(this.elInput);\n\n const oneEm = 16;\n\n /*\n * Take the inner window height and subtract the elements bottom and 1em (16px)\n * If the max height of this calculation is less than the space above the element, open it upwards.\n * Do another calculation with the top value - 1em.\n */\n const offsetTop = window.innerHeight - bottom - oneEm;\n const offsetBottom = top - oneEm;\n\n /** Always point downwards, unless the space to the bottom is less than half of the top offset space. */\n this.upwards = offsetBottom / 2 > offsetTop;\n }\n\n private handleMaxHeight() {\n if (this.maxHeight) return this.elGroup.style.setProperty('--pn-select-max-height', this.maxHeight);\n\n const { bottom, top } = this.getRect(this.elInput);\n const inputHeight = this.upwards ? top : bottom;\n\n const offsetTop = getTotalHeightOffset();\n\n const offset = this.upwards ? offsetTop + 16 : 16;\n\n const maxHeight = this.upwards ? inputHeight - offset : window.innerHeight - inputHeight - offset;\n\n this.elGroup.style.setProperty('--pn-select-max-height', `${Math.ceil(maxHeight)}px`);\n }\n\n private handleWidth() {\n const { width } = this.getRect(this.elInput);\n this.elGroup.style.setProperty('--pn-select-options-width', `${Math.ceil(width)}px`);\n }\n\n private setFocus() {\n if (this.search) this.elInput.focus({ preventScroll: true });\n else this.elButton.focus({ preventScroll: true });\n }\n\n private hasError(): boolean {\n return this.invalid || !!this.error;\n }\n\n private hasMessage(): boolean {\n return !!this.helpertext || !!this.error;\n }\n\n private toggleOpen(state?: boolean) {\n if (typeof state === 'boolean' && state === this.open) return;\n this.open = state ?? !this.open;\n this.toggleSelect.emit({ open: this.open });\n }\n\n private handleInputKeyboard(event: KeyboardEvent) {\n event.stopImmediatePropagation();\n\n const { code } = event;\n\n if (code === 'Escape') return this.toggleOpen(false);\n if (!this.open && code.match(/^(Space|Enter)$|Arrow|^Key.*$/)) this.toggleOpen();\n }\n\n private setSearchQuery(value: string) {\n if (!this.open) this.toggleOpen(true);\n this.searchQuery = value;\n }\n\n private handleInputSearch() {\n if (this.isEmpty()) return;\n\n const term = this.searchQuery;\n const performSearch = ({ label, helpertext, value }: PnMultiselectOption): boolean => {\n return `${label} ${helpertext} ${value}`.trim().toLowerCase().includes(term.toLowerCase());\n };\n\n const options = this.options.map(option => {\n const foundNested = option?.group?.map(item => ({ ...item, hide: !performSearch(item) })) || [];\n\n const found = performSearch(option) || foundNested?.some(({ hide }) => !hide);\n\n option.hide = !found;\n if (option?.group?.length) option.group = [...foundNested];\n\n return option;\n });\n\n this.isSearching = term !== '';\n\n this.options = [...options];\n\n this.searchInput.emit({ query: term, found: this.optionsSearch() });\n }\n\n private getListItem(index: number): HTMLInputElement {\n const { value } = this.options[index];\n return this.elList.querySelector<HTMLInputElement>(`.pn-multiselect-option-input[value='${value}']`);\n }\n\n private getOptionIndex(val: string, triggers: (boolean | number)[], code?: string) {\n const total = this.optionsTotal() - 1;\n\n if (code === 'End') return total;\n if (code === 'Home') return 0;\n\n const valIndex = this.options.findIndex(({ value }) => value === val);\n\n const count = triggers.find(item => typeof item === 'number') as number;\n const index = valIndex + count;\n\n if (index >= total) return total;\n if (index <= 0) return 0;\n\n return index;\n }\n\n private checkboxNav(e: KeyboardEvent, val: string) {\n const { code } = e;\n\n const arrowUp = code === 'ArrowUp' && -1;\n const arrowDown = code === 'ArrowDown' && 1;\n const pageUp = code === 'PageUp' && -10;\n const pageDown = code === 'PageDown' && 10;\n const home = code === 'Home' && 0;\n const end = code === 'End' && this.optionsTotal() - 1;\n const tab = code === 'Tab';\n const space = code === 'Space';\n const enter = code === 'Enter';\n const escape = code === 'Escape';\n\n const triggers = [arrowUp, arrowDown, pageUp, pageDown, home, end, tab, space, enter, escape];\n\n if (!triggers.some(item => typeof item === 'number' || item)) return;\n\n if (tab || space || enter) return;\n\n e.stopImmediatePropagation();\n e.preventDefault();\n\n if (escape) {\n this.setFocus();\n return this.toggleOpen(false);\n }\n\n const item = this.getOptionIndex(val, triggers, code);\n return this.getListItem(item)?.focus();\n }\n\n private handleBlur(event: FocusEvent) {\n const target = event.target as HTMLElement;\n const related = event.relatedTarget as HTMLElement;\n\n const jumpingToChips = (related || target)?.className === 'pn-multiselect-chip-button';\n\n if (jumpingToChips) this.toggleOpen(false);\n }\n\n private handleLabel() {\n if (this.disabled) return;\n this.setFocus();\n }\n\n /** Check if there are no options in the list. */\n private isEmpty(): boolean {\n return (this.options?.length || 0) === 0;\n }\n\n private showSelectAll(): boolean {\n return this.selectAll && !this.isEmpty() && !this.noResults();\n }\n\n /** Check if the empty/nothing found should be visible. */\n private showEmptyOption() {\n return (this.isSearching && this.noResults()) || this.isEmpty();\n }\n\n private getPlaceholder(): string {\n const autoTranslation = this.search ? 'SEARCH' : 'SELECT_AN_OPTION';\n return this.placeholder || this.translate(autoTranslation);\n }\n\n private handleChange({ target }: InputEvent) {\n const { value, checked } = target as HTMLInputElement;\n this.optionSelect({ val: value, checked });\n }\n\n /** Display the \"X more selected options\" text. */\n private additonalOptions() {\n const count = this.optionsCheckedTotal() - this.itemCount;\n const single = `MORE_OPTION${count === 1 ? '' : 'S'}`;\n return `${count} ${this.translate(single)}`;\n }\n\n private describedBy(): string {\n const list = [this.search && this.idChips, this.srMessage && this.idSr, !!this.helpertext && this.idHelper].filter(\n Boolean,\n );\n if (list.length) return list.join(' ');\n return null;\n }\n\n private renderOption(\n {\n label,\n value,\n checked,\n helpertext,\n icon,\n id = `${this.selectId}-${value || label}`,\n invalid,\n disabled,\n hide,\n group,\n }: PnMultiselectOption,\n indexGroup?: number,\n indexNested?: number,\n ): HTMLLIElement {\n return (\n <li class=\"pn-multiselect-option\" key={id} hidden={hide}>\n <input\n type=\"checkbox\"\n id={id}\n class=\"pn-multiselect-option-input\"\n checked={checked ?? this.optionSelected(value)}\n indeterminate={indexNested === undefined && this.isIndeterminate(indexGroup)}\n name={this.name}\n value={value}\n disabled={this.disabled || disabled}\n required={this.required}\n aria-invalid={invalid ? 'true' : null}\n aria-describedby={helpertext ? `${id}-helper` : null}\n onClick={(event: MouseEvent) => this.ripple(event)}\n onKeyDown={(event: KeyboardEvent) => this.checkboxNav(event, value)}\n onBlur={(event: FocusEvent) => this.handleBlur(event)}\n />\n <div class=\"pn-multiselect-option-content\">\n {!!icon && <pn-icon icon={icon} color=\"blue900\" />}\n <div class=\"pn-multiselect-option-text\">\n <label class=\"pn-multiselect-option-label\" htmlFor={id}>\n <span>{label}</span>\n </label>\n {helpertext && (\n <p class=\"pn-multiselect-option-helper\" id={`${id}-helper`}>\n {helpertext}\n </p>\n )}\n </div>\n <div class=\"pn-multiselect-option-checkbox\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\">\n <polyline\n class=\"pn-multiselect-option-checkbox-checkmark-path\"\n points=\"4,12 9,17 20,6\"\n stroke-width=\"3\"\n />\n <polyline\n class=\"pn-multiselect-option-checkbox-indeterminate-path\"\n points=\"4,12 20,12\"\n stroke-width=\"3\"\n />\n </svg>\n </div>\n </div>\n {group?.length && (\n <ul class=\"pn-multiselect-optgroup\">{group?.map((option, i) => this.renderOption(option, indexGroup, i))}</ul>\n )}\n </li>\n );\n }\n\n private renderOptions(): HTMLUListElement {\n return (\n <ul\n id={this.idOptions}\n class=\"pn-multiselect-options\"\n data-open={this.open}\n data-upwards={this.upwards}\n data-moving={this.isClosing || this.isExpanding}\n onChange={(event: InputEvent) => this.handleChange(event)}\n style={{ height: '0px' }}\n ref={el => (this.elList = el)}\n >\n {this.showSelectAll() &&\n this.renderOption({\n label: this.translate(`SELECT_${this.isSearching ? 'FOUND' : 'ALL'}_OPTIONS`),\n value: this.allValue,\n checked: this.optionsTotal() === this.optionsCheckedTotal(),\n })}\n\n {this.options?.map((option, index) => this.renderOption(option, index))}\n\n {this.showEmptyOption() && (\n <li class=\"pn-multiselect-option\">\n <div class=\"pn-multiselect-option-content\" role=\"alert\">\n <div class=\"pn-multiselect-option-text\">\n <span class=\"pn-multiselect-option-label\">\n {this.translate(this.isEmpty() ? 'NO_OPTIONS' : 'NO_SEARCH_RESULTS')}\n </span>\n </div>\n </div>\n </li>\n )}\n </ul>\n );\n }\n\n private renderChips(): HTMLUListElement {\n return (\n <ul\n id={this.idChips}\n class=\"pn-multiselect-chips\"\n aria-label={this.translate('SELECTED_OPTIONS')}\n ref={el => (this.elChips = el)}\n >\n {this.optionsCheckedPreview()?.map(({ label, value }, index) => (\n <li\n class=\"pn-multiselect-chip\"\n aria-setsize={this.optionsCheckedTotal()}\n aria-posinset={index + 1}\n key={`${label}-${value}`}\n >\n <span class=\"pn-multiselect-chip-label\">{label}</span>\n <button\n type=\"button\"\n class=\"pn-multiselect-chip-button\"\n aria-label={`${this.translate('REMOVE')} ${label}`}\n onClick={() => this.optionSelect({ val: value, checked: false, chip: index })}\n >\n <pn-icon icon={close} small color=\"blue700\" />\n </button>\n </li>\n ))}\n {this.optionsCheckedTotal() > this.itemCount && (\n <li class=\"pn-multiselect-chip\" data-count>\n <span class=\"pn-multiselect-chip-label\">+ {this.additonalOptions()}</span>\n </li>\n )}\n </ul>\n );\n }\n\n render() {\n return (\n <Host>\n <fieldset class=\"pn-multiselect\" data-icon={!!this.icon} data-error={this.hasError()} disabled={this.disabled}>\n {this.label && (\n <legend id={this.idLegend} class=\"pn-multiselect-label\" onClick={() => this.handleLabel()}>\n <span>{this.label}</span>\n\n {!!this.optionsChecked()?.length && (\n <span>\n {this.optionsCheckedTotal()}/{this.optionsTotal()}\n </span>\n )}\n </legend>\n )}\n <div class=\"pn-multiselect-group\" ref={el => (this.elGroup = el)}>\n <div class=\"pn-multiselect-input\">\n {!!this.icon && <pn-icon class=\"pn-multiselect-icon\" data-custom icon={this.icon} />}\n\n <input\n tabindex={this.search ? null : '-1'}\n type={this.search ? 'search' : 'input'}\n id={this.selectId}\n class=\"pn-multiselect-element\"\n value={this.search ? this.searchQuery : this.optionsCheckedLabels()}\n name={this.selectName}\n placeholder={this.getPlaceholder()}\n required={this.search ? null : this.required}\n aria-labelledby={this.idLegend}\n aria-describedby={this.describedBy()}\n aria-controls={`${this.idOptions} ${this.search ? this.idChips : ''}`}\n aria-invalid={this.hasError()?.toString()}\n disabled={this.disabled}\n readonly={!this.search}\n onClick={() => (this.search && this.open ? null : this.toggleOpen())}\n onKeyDown={e => this.handleInputKeyboard(e)}\n onBlur={e => this.handleBlur(e)}\n onInput={e => this.search && this.setSearchQuery((e.target as HTMLInputElement).value)}\n ref={el => (this.elInput = el)}\n />\n\n {this.hasError() && (\n <pn-icon class=\"pn-multiselect-icon\" data-error icon={alert_exclamation_circle} color=\"warning\" />\n )}\n\n <button\n id={this.idButton}\n type=\"button\"\n class=\"pn-multiselect-button\"\n aria-label={this.translate(`BUTTON_${this.open ? 'CLOSE' : 'OPEN'}`)}\n aria-describedby={this.search ? null : this.selectId}\n aria-controls={this.idOptions}\n aria-expanded={this.open.toString()}\n onClick={() => this.toggleOpen()}\n ref={el => (this.elButton = el)}\n >\n <pn-icon class=\"pn-multiselect-icon\" icon={angle_down} color=\"blue700\" />\n </button>\n </div>\n\n {this.renderOptions()}\n </div>\n\n {this.hasMessage() && (\n <p id={this.idHelper} class=\"pn-multiselect-description\" role={!!this.error ? 'alert' : null}>\n <span>{this.error || this.helpertext}</span>\n </p>\n )}\n\n {this.search && this.renderChips()}\n\n <slot />\n\n {this.search && (\n <p id={this.idSr} class=\"pn-multiselect-sr-only\" role=\"alert\" aria-live=\"assertive\">\n {this.srMessage && <span>{this.srMessage}</span>}\n </p>\n )}\n </fieldset>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"pn-multiselect.entry.js","mappings":"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","names":[],"sources":["src/components/input/pn-multiselect/translations.ts","src/components/input/pn-multiselect/pn-multiselect.scss?tag=pn-multiselect","src/components/input/pn-multiselect/pn-multiselect.tsx"],"sourcesContent":["export const translations = {\n SELECT_AN_OPTION: {\n en: 'Select an option',\n sv: 'Välj ett alternativ',\n da: 'Vælg en mulighed',\n fi: 'Valitse vaihtoehto',\n no: 'Velg et alternativ',\n },\n SELECT_ALL_OPTIONS: {\n en: 'Select all options',\n sv: 'Välj alla alternativ',\n da: 'Vælg alle muligheder',\n fi: 'Valitse kaikki vaihtoehdot',\n no: 'Velg alle alternativer',\n },\n SELECT_FOUND_OPTIONS: {\n en: 'Select {number} options',\n sv: 'Välj {number} alternativ',\n da: 'Vælg {number} muligheder',\n fi: 'Valitse {number} vaihtoehtoa',\n no: 'Velg {number} alternativer',\n },\n SELECTED_OPTIONS: {\n en: 'Selected options.',\n sv: 'Valda alternativ.',\n da: 'Valgte muligheder.',\n fi: 'Valitut vaihtoehdot.',\n no: 'Valgte alternativer.',\n },\n BUTTON_OPEN: {\n en: 'Open list',\n sv: 'Öppna listan',\n da: 'Open list',\n fi: 'Open list',\n no: 'Open list',\n },\n BUTTON_CLOSE: {\n en: 'Close list',\n sv: 'Stäng listan',\n da: 'Close list',\n fi: 'Close list',\n no: 'Close list',\n },\n REMOVE: {\n en: 'Remove',\n sv: 'Ta bort',\n da: 'Remove',\n fi: 'Remove',\n no: 'Remove',\n },\n REMOVED: {\n en: 'Removed',\n sv: 'Tog bort',\n da: 'Fjernet',\n fi: 'Poistettu',\n no: 'Fjernet',\n },\n MORE_OPTION: {\n en: 'more option.',\n sv: 'alternativ till.',\n da: 'mulighed mere.',\n fi: 'vaihtoehto lisää.',\n no: 'alternativ til.',\n },\n MORE_OPTIONS: {\n en: 'more options.',\n sv: 'fler alternativ.',\n da: 'more options.',\n fi: 'more options.',\n no: 'more options.',\n },\n SEARCH: {\n en: 'Search',\n sv: 'Sök',\n da: 'Søg',\n fi: 'Hae',\n no: 'Søk',\n },\n RESULTS_FOUND: {\n en: 'options found',\n sv: 'alternativ hittades',\n da: 'muligheder fundet',\n fi: 'vaihtoehtoja löytyi',\n no: 'alternativer funnet',\n },\n NO_SEARCH_RESULTS: {\n en: 'No options found',\n sv: 'Inga alternativ hittades',\n da: 'Ingen muligheder fundet',\n fi: 'Vaihtoehtoja ei löytynyt',\n no: 'Finner ingen alternativer',\n },\n NO_OPTIONS: {\n en: 'No options available',\n sv: 'Inga alternativ tillgängliga',\n da: 'Ingen tilgængelige muligheder',\n fi: 'Ei vaihtoehtoja',\n no: 'Ingen tilgjengelige alternativer',\n },\n};\n","@use 'src/globals/main';\n\npn-multiselect {\n display: inline-block;\n}\n\npn-multiselect .pn-multiselect {\n border: 0;\n margin: 0;\n padding: 0;\n\n &[data-icon] .pn-multiselect-element {\n padding-left: 3em;\n }\n\n &[data-error] .pn-multiselect-element {\n padding-right: 5.5em;\n @include main.pn-input-field-error();\n }\n\n &-label {\n @include main.pn-input-label;\n width: 100%;\n }\n\n @include main.pn-sr-only-class();\n\n &-group {\n position: relative;\n padding: 0;\n margin: 0;\n }\n\n &-input {\n position: relative;\n\n > pn-icon {\n pointer-events: none;\n position: absolute;\n top: 0.75em;\n right: 3.5em;\n &[data-custom] {\n left: 0.75em;\n right: unset;\n }\n }\n }\n\n &-button {\n cursor: pointer;\n position: absolute;\n right: 0.75em;\n top: 50%;\n transform: translateY(-50%);\n padding: 0;\n margin: 0;\n border: 0;\n width: 2em;\n height: 2em;\n font-size: 1em;\n border-radius: 50%;\n background-color: transparent;\n\n -webkit-tap-highlight-color: transparent;\n\n @include main.pn-transition('background-color, outline-color, border-color');\n @include main.pn-focus(main.$blue700, main.$white, main.$blue700);\n\n > pn-icon > svg > path {\n @include main.pn-transition('transform');\n transition-delay: main.$timing;\n transform-origin: center;\n transform: rotate(0deg);\n }\n\n &:hover {\n background-color: main.$blue25;\n }\n\n &[aria-expanded='true'] {\n background-color: main.$blue25;\n > pn-icon > svg > path {\n transform: rotate(180deg);\n transition-delay: 0s;\n }\n }\n }\n\n &-element {\n @include main.pn-input-field;\n\n cursor: text;\n text-align: left;\n transition-delay: 0.1s, 0.1s, 0s;\n width: 100%;\n padding-right: 3.5em;\n\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 0.5em;\n\n overflow: hidden;\n text-overflow: ellipsis;\n\n &:disabled {\n @include main.pn-disabled;\n pointer-events: none;\n + .pn-multiselect-button {\n pointer-events: none;\n path {\n fill: main.$input-color-disabled;\n }\n }\n }\n\n &:placeholder {\n @include main.pn-placeholder;\n }\n\n &[type='input']:hover {\n cursor: pointer;\n color: main.$input-color;\n background-color: main.$input-background-hover;\n transition-delay: 0s;\n &[aria-invalid='true'] {\n background-color: main.$input-background-error-hover;\n }\n }\n\n &:focus-visible {\n transition-delay: 0s;\n }\n\n &::-webkit-search-cancel-button,\n &::-webkit-search-decoration {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n }\n }\n\n &-options {\n scroll-behavior: smooth;\n position: absolute;\n z-index: 10;\n top: calc(100% + 0.5em);\n left: 0;\n right: 0;\n background-color: main.$white;\n box-shadow:\n 0em 0.075em 0.225em 0em rgba(0, 0, 0, 0.1),\n 0em 0.4em 0.9em 0em rgba(0, 0, 0, 0.13);\n\n border-radius: main.$border-radius;\n\n list-style: none;\n margin: 0;\n padding: 0;\n\n width: var(--pn-select-options-width);\n max-height: var(--pn-select-max-height);\n overflow-y: auto;\n overflow-x: hidden;\n\n display: flex;\n flex-direction: column;\n\n visibility: hidden;\n\n transform-origin: top left;\n\n &[data-open] {\n visibility: visible;\n }\n\n &[data-upwards] {\n top: unset;\n bottom: calc(100% + 0.5em);\n transform-origin: bottom left;\n box-shadow: 0 -0.0625em 0.125em rgba(0, 0, 0, 0.2);\n }\n\n &[data-moving] {\n overflow: hidden;\n visibility: visible;\n }\n\n @include main.pn-scrollbar();\n\n > pn-input {\n padding: 0.5em;\n }\n }\n\n &-optgroup {\n list-style: none;\n padding: 0;\n > .pn-multiselect-option > .pn-multiselect-option-content {\n padding-left: 2em;\n }\n }\n\n &-chips {\n list-style: none;\n display: flex;\n flex-wrap: wrap;\n gap: 0.5em;\n padding: 0;\n margin: 0.5em 0 0 0;\n color: main.$gray700;\n font-weight: 400;\n &:empty {\n display: none;\n }\n }\n\n &-chip {\n margin: 0;\n display: inline-flex;\n align-items: center;\n gap: 0.25em;\n background-color: main.$white;\n border-radius: main.$border-radius;\n padding: 0.125em 0.25em 0.125em 0.5em;\n line-height: 1.5em;\n border: 0.0625em solid main.$gray700;\n\n @include main.pn-focus-base;\n @include main.pn-transition('background-color, outline-color, border-color, color');\n\n &:focus-within {\n color: main.$blue700;\n @include main.pn-focus-visible(main.$blue700, main.$blue25, main.$blue700);\n }\n\n &[data-count] {\n pointer-events: none;\n border: 0;\n padding-left: 0;\n padding-right: 0;\n background-color: unset;\n }\n\n &-label {\n font-size: 0.875em;\n white-space: nowrap;\n }\n\n &-button {\n cursor: pointer;\n font-size: 1em;\n padding: 0.25em;\n height: 1.5em;\n width: 1.5em;\n border: 0;\n background-color: unset;\n border-radius: 50%;\n @include main.pn-transition('background-color');\n -webkit-tap-highlight-color: transparent;\n\n &:hover {\n background-color: main.$blue200;\n }\n &:focus {\n outline: 0;\n }\n }\n }\n\n &-no-results {\n margin: 0;\n padding: 0.75em;\n }\n\n &-description {\n @include main.pn-input-helpertext;\n &[role='alert'] {\n color: main.$helpertext-color-error;\n }\n }\n}\n\n// Select option\npn-multiselect .pn-multiselect-option {\n position: relative;\n margin: 0;\n padding: 0;\n @include main.pn-ripple(main.$blue700);\n\n &-input {\n cursor: pointer;\n position: absolute;\n opacity: 0;\n left: 0;\n top: 0;\n height: 100%;\n width: 100%;\n margin: 0;\n -webkit-tap-highlight-color: transparent;\n\n &:disabled {\n pointer-events: none;\n + .pn-multiselect-option-content {\n @include main.pn-disabled;\n pointer-events: none;\n .pn-multiselect-option-checkbox {\n background-color: main.$input-background-disabled;\n border-color: main.$input-border-disabled;\n }\n path {\n fill: main.$input-color-disabled;\n }\n }\n\n &:checked {\n + .pn-multiselect-option-content {\n @include main.pn-disabled;\n .pn-multiselect-option-checkbox {\n background-color: main.$input-button-disabled;\n border-color: main.$input-border-disabled;\n }\n path {\n fill: main.$input-color-disabled;\n }\n }\n }\n }\n\n &[aria-invalid='true'] {\n + .pn-multiselect-option-content {\n .pn-multiselect-option-checkbox {\n border-color: main.$border-color-error;\n }\n .pn-ripple {\n background-color: main.$warning;\n }\n }\n\n &:checked + .pn-multiselect-option-content {\n background-color: main.$input-background-error-active;\n .pn-multiselect-option-checkbox {\n background-color: main.$input-button-active-error;\n border-color: main.$input-button-active-error;\n }\n }\n\n &:checked:focus-visible + .pn-multiselect-option-content {\n background-color: main.$input-background-error-active;\n .pn-multiselect-option-checkbox {\n background-color: main.$input-button-active-error-focus;\n border-color: main.$input-button-active-error-focus;\n }\n }\n\n &:checked:hover + .pn-multiselect-option-content {\n background-color: main.$coral25;\n .pn-multiselect-option-checkbox {\n background-color: main.$input-button-active-error-hover;\n border-color: main.$input-button-active-error-hover;\n }\n }\n\n &:hover + .pn-multiselect-option-content {\n background-color: main.$coral25;\n .pn-multiselect-option-checkbox {\n background-color: main.$input-background-error-hover;\n border-color: main.$border-color-error-focus;\n }\n }\n\n &:focus-visible + .pn-multiselect-option-content .pn-multiselect-option-checkbox {\n @include main.pn-focus-visible(\n main.$border-color-error-focus,\n main.$input-background-error-active,\n main.$border-color-error-focus\n );\n }\n }\n\n &:hover + .pn-multiselect-option-content {\n background-color: main.$blue25;\n .pn-multiselect-option-checkbox {\n border-color: main.$blue700;\n background-color: main.$blue50;\n }\n }\n\n &:focus-visible + .pn-multiselect-option-content .pn-multiselect-option-checkbox {\n @include main.pn-focus-visible(main.$blue700, main.$blue50, main.$blue700);\n }\n\n &:checked + .pn-multiselect-option-content {\n background-color: main.$blue50;\n .pn-multiselect-option-checkbox {\n border-color: main.$blue700;\n background-color: main.$blue700;\n svg polyline.pn-multiselect-option-checkbox-checkmark-path {\n transition-delay: 0.2s;\n stroke-dashoffset: 0;\n }\n }\n }\n\n &:checked:hover + .pn-multiselect-option-content {\n background-color: main.$blue25;\n .pn-multiselect-option-checkbox {\n border-color: main.$blue900;\n background-color: main.$blue900;\n }\n }\n\n &:checked:focus-visible + .pn-multiselect-option-content {\n background-color: main.$blue50;\n .pn-multiselect-option-checkbox {\n border-color: main.$blue900;\n background-color: main.$blue900;\n }\n }\n\n &:indeterminate + .pn-multiselect-option-content {\n .pn-multiselect-option-checkbox {\n background-color: main.$blue700;\n border-color: main.$blue700;\n }\n svg .pn-multiselect-option-checkbox-checkmark-path {\n stroke-dashoffset: 23;\n }\n svg .pn-multiselect-option-checkbox-indeterminate-path {\n stroke-dashoffset: 0;\n }\n }\n\n &:indeterminate:hover + .pn-multiselect-option-content {\n .pn-multiselect-option-checkbox {\n background-color: main.$blue900;\n border-color: main.$blue900;\n }\n }\n }\n\n &-content {\n position: relative;\n overflow: hidden;\n z-index: -1;\n display: flex;\n align-items: center;\n padding: 0.75em 1em;\n gap: 0.5em;\n background-color: main.$white;\n @include main.pn-transition('background-color');\n }\n\n &-text {\n flex: 1;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n &-label {\n color: main.$gray900;\n font-weight: 400;\n }\n\n &-helper {\n color: main.$gray700;\n margin: 0;\n }\n\n &-checkbox {\n background-color: main.$white;\n flex: 0 0 1.5em;\n width: 1.5em;\n height: 1.5em;\n border: 0.0625em solid main.$gray400;\n border-radius: 0.25em;\n\n @include main.pn-focus-base;\n @include main.pn-transition('background-color, border-color, outline-color');\n\n svg polyline {\n stroke: main.$white;\n stroke-linecap: round;\n stroke-dasharray: 23;\n @include main.pn-transition('stroke-dashoffset');\n transition-delay: 0s;\n\n &.pn-multiselect-option-checkbox-checkmark-path {\n stroke-dashoffset: 23;\n }\n\n &.pn-multiselect-option-checkbox-indeterminate-path {\n stroke-dashoffset: 23;\n }\n }\n }\n}\n","import { Component, h, Host, Element, Watch, Prop, State, EventEmitter, Event, Listen } from '@stencil/core';\n\nimport { translations } from './translations';\n\nimport { close, alert_exclamation_circle, chevron_down } from 'pn-design-assets/pn-assets/icons.js';\n\nimport { uuidv4, awaitTopbar, ripple, en, getTotalHeightOffset, reduceMotion } from '@/index';\nimport type { PnLanguages, PnMultiselectOption } from '@/index';\n\n/**\n * The `pn-multiselect` gets its options via javascript.\n *\n * Native HTML does not accept arrays of objects. Most frameworks solves this automatically (Vue, react, etc...),\n * but keep this in mind if you use this component outside of a framework environment.\n *\n * @nativeChange The `pn-multiselect` is built with `input[type=checkbox]` elements, so the `change` event works. However, we recommend the customEvents described above.\n *\n * @see {@link https://portal.postnord.com/web-components/?path=/docs/components-input-multiselect--docs#pn-multiselect%20(options) Options documentation}\n */\n@Component({\n tag: 'pn-multiselect',\n styleUrl: 'pn-multiselect.scss',\n})\nexport class PnMultiselect {\n private readonly id: string = `pn-multiselect-${uuidv4()}`;\n private idLegend: string = `${this.id}-legend`;\n private idButton: string = `${this.id}-button`;\n private idOptions: string = `${this.id}-options`;\n private idHelper: string = `${this.id}-text`;\n private idChips: string = `${this.id}-chips`;\n private idSr: string = `${this.id}-sr`;\n\n private elGroup: HTMLDivElement;\n private elButton: HTMLButtonElement;\n private elInput: HTMLInputElement;\n private elList: HTMLUListElement;\n private elChips: HTMLUListElement;\n\n private srTimer: NodeJS.Timeout;\n\n private animation: Animation;\n private animationDurationDefault: number = 400;\n private animationDuration: number = this.animationDurationDefault;\n\n @Element() hostElement: HTMLElement;\n\n @State() private isSearching: boolean = false;\n\n /** Layout state. */\n @State() private open: boolean = false;\n @State() private upwards: boolean = false;\n\n @State() private srMessage?: string;\n\n @State() private isClosing: boolean = false;\n @State() private isExpanding: boolean = false;\n\n /** Label placed above the select */\n @Prop() label!: string;\n /** Display a helper text underneath the select */\n @Prop() helpertext?: string;\n /**\n * This is what will be shown on load if no value is used.\n * The `placeholder` will override the default text used if you have the `search` prop active.\n */\n @Prop() placeholder?: string;\n /** HTML name of the checkbox elements. Used for each checkbox inside the multiselect. */\n @Prop() name?: string;\n /** Select HTML id */\n @Prop() selectId?: string = this.id;\n /** HTML name of the input element.*/\n @Prop() selectName?: string;\n /** Display an icon to the left of the select input */\n @Prop() icon?: string;\n /** Manually set the language, not needed if you have the pnTopbar available */\n @Prop() language?: PnLanguages = null;\n /**\n * Array of options.\n * @hide true\n **/\n @Prop({ mutable: true }) options!: PnMultiselectOption[];\n\n /**\n * Adds a \"Select all\" option into the list.\n * If you use the search feature at the same time, clicking this option will only toggle the options found.\n * @see {@link search}\n * @category Features\n **/\n @Prop() selectAll?: boolean = false;\n /**\n * Set a custom value for the \"Select all value\" option.\n * @see {@link selectAll}\n * @category Features\n */\n @Prop() allValue?: string = 'pn_multiselect_all';\n /**\n * Allow the user to search among the options.\n * The selected options will now display underneath the multiselect element.\n *\n * @category Features\n **/\n @Prop() search?: boolean = false;\n /** Set the search query of the multiselect.\n *\n * @see {@link search}\n * @category Features\n */\n @Prop({ mutable: true }) searchQuery?: string = '';\n /**\n * Decide how many items should be shown before ellipsis. Requires the `search` prop to work.\n *\n * @see {@link search}\n * @category Features\n **/\n @Prop() itemCount?: number = 5;\n /**\n * Use a custom max-height for the dropdown list.\n * @description The component will automatically set the max height of the dropdown list on its own.\n * It takes the `pn-topbar` into account and will open in the direction that fits best.\n * Use this prop to override this behaviour and use a custom max-height.\n * @category Features\n **/\n @Prop() maxHeight?: string;\n /**\n * Force the dropdown to always open upwards.\n * @category Features\n **/\n @Prop() top?: boolean = false;\n /**\n * Force the dropdown to always open downwards.\n * @category Features\n **/\n @Prop() bottom?: boolean = false;\n\n /** Set the select as required. @category Validation */\n @Prop() required?: boolean = false;\n /** Disable the select. @category Validation */\n @Prop() disabled?: boolean = false;\n /** Trigger the invalid state. @category Validation */\n @Prop() invalid?: boolean = false;\n /** Display an error message and trigger the invalid state. @category Validation */\n @Prop() error?: string;\n\n @Watch('open')\n handleOpen() {\n if (this.open) {\n this.addGlobalEventListeners();\n\n this.handleDirection();\n this.handleMaxHeight();\n this.handleWidth();\n requestAnimationFrame(() => this.openGrid());\n } else {\n this.closeGrid();\n this.removeGlobalEventListeners();\n }\n }\n\n @Watch('search')\n handleSearch() {\n if (!this.search)\n this.options = [\n ...this.options.map(option => {\n const item = {\n ...option,\n hide: false,\n };\n\n if (item?.group?.length) item.group.map(opt => ({ ...opt, hide: false }));\n\n return item;\n }),\n ];\n }\n\n @Watch('searchQuery')\n handleSearchQuery() {\n if (this.search && typeof this.searchQuery === 'string') this.handleInputSearch();\n }\n\n @Watch('selectId')\n handleSelectId() {\n const id = this.selectId;\n this.idLegend = `${id}-legend`;\n this.idButton = `${id}-button`;\n this.idOptions = `${id}-options`;\n this.idHelper = `${id}-text`;\n this.idChips = `${id}-chips`;\n this.idSr = `${id}-sr`;\n }\n\n /**\n * If the select is open and you resize the window.\n * Remove all css props and disable the animations entierly.\n **/\n @Listen('resize', { target: 'window' })\n handleResize() {\n if (!this.open) return;\n this.toggleOpen(false);\n\n this.elList.style.removeProperty('--pn-select-options-width');\n this.elList.style.removeProperty('--pn-select-max-height');\n }\n\n /** Dispatched everytime the multiselect is opened or closed. */\n @Event() toggleSelect: EventEmitter<{ open: boolean }>;\n /** This event contains the entire options array with the new props. Dispatched everytime you make changes to any option. */\n @Event() allOptions: EventEmitter<PnMultiselectOption[]>;\n /** Dispatched when you toggle an option. Includes all the props of the option. */\n @Event() selectedOption: EventEmitter<PnMultiselectOption>;\n /**\n * This event is dispatched when the user toggles the \"Choose all options\" box.\n * Also triggers when you click the \"Select {number} options\" if you are performing a search at the same time.\n **/\n @Event() selectedAllOptions: EventEmitter<{\n checked: boolean;\n searching: boolean;\n query?: string;\n found?: PnMultiselectOption[];\n }>;\n /**\n * Contains the search text and the options found for that query.\n * Dispacthed everytime you change the search query.\n **/\n @Event() searchInput: EventEmitter<{\n query: string;\n found?: PnMultiselectOption[];\n }>;\n\n async componentWillLoad() {\n this.handleSelectId();\n if (this.language === null) await awaitTopbar(this.hostElement);\n }\n\n componentDidLoad() {\n if (!!this.searchQuery?.length) this.handleSearchQuery();\n }\n\n private globalEvents = (event: PointerEvent | KeyboardEvent) => {\n const target = event.target as HTMLElement;\n const isWithinCalendar = target?.closest(this.hostElement.localName);\n if (!isWithinCalendar) this.toggleOpen(false);\n };\n\n private addGlobalEventListeners() {\n const root: Document = this.hostElement.getRootNode() as Document;\n\n root.addEventListener('click', this.globalEvents);\n }\n\n private removeGlobalEventListeners() {\n const root: Document = this.hostElement.getRootNode() as Document;\n\n root.removeEventListener('click', this.globalEvents);\n }\n\n private openGrid() {\n requestAnimationFrame(() => {\n const { clientHeight, scrollHeight } = this.elList;\n const height = this.isClosing ? clientHeight : 0;\n this.elList.style.height = `${scrollHeight}px`;\n\n this.isExpanding = true;\n this.animateGrid(true, `${height}px`, this.maxHeight || `${this.elList.scrollHeight}px`);\n });\n }\n\n private closeGrid() {\n const { scrollHeight, clientHeight } = this.elList;\n const height = this.isExpanding ? clientHeight : scrollHeight;\n this.elList.style.height = `0px`;\n\n this.isClosing = true;\n this.animateGrid(false, `${height}px`, `0px`);\n }\n\n private animateGrid(open: boolean, startHeight: string, endHeight: string) {\n this.cancelAnimations();\n\n if (reduceMotion()) this.animationDuration = 0;\n else this.animationDuration = this.animationDurationDefault;\n\n this.animation = this.elList.animate(\n {\n height: [startHeight, endHeight],\n },\n {\n duration: this.animationDuration,\n easing: 'cubic-bezier(0.6, 0, 0.2, 1)',\n },\n );\n this.animation.onfinish = () => this.animationFinish();\n this.animation.oncancel = () => (open ? (this.isExpanding = false) : (this.isClosing = false));\n }\n\n private animationFinish() {\n this.cancelAnimations();\n this.elList.style.height = this.isClosing ? '0px' : '';\n this.isClosing = false;\n this.isExpanding = false;\n }\n\n private cancelAnimations() {\n if (this.animation) this.animation.cancel();\n }\n\n private emitEvents(option?: PnMultiselectOption, all?: boolean) {\n this.allOptions.emit(this.options);\n\n if (option) return this.selectedOption.emit(option);\n\n const data: { checked: boolean; searching: boolean; query?: string; found?: PnMultiselectOption[] } = {\n checked: all,\n searching: this.isSearching,\n };\n\n if (this.search && this.optionsTotal() !== this.optionsSearch().length) {\n data.query = this.searchQuery;\n data.found = this.optionsSearch();\n }\n\n this.selectedAllOptions.emit(data);\n }\n\n private optionsChecked(): PnMultiselectOption[] {\n const list = this.options?.reduce((sum, item) => {\n const subgroup = item.group ? [...item.group.filter(({ checked }) => checked)] : [];\n\n if (item.checked) sum.push(item);\n\n if (subgroup?.length) sum.push(...subgroup);\n\n return sum;\n }, []);\n\n return list;\n }\n\n private optionsTotal(): number {\n return this.options?.reduce((sum, item) => sum + (item?.group?.length ? item.group.length + 1 : 1), 0);\n }\n\n private optionsIndex(val: string): { indexGroup: number; indexNested?: number } {\n const findNested = ({ group = [] }: PnMultiselectOption) => group?.findIndex(({ value }) => value === val);\n\n const indexGroup = this.options.findIndex(option => option.value === val || findNested(option) !== -1);\n const indexNested = findNested(this.options?.[indexGroup]);\n\n return {\n indexGroup,\n indexNested,\n };\n }\n\n private optionsCheckedTotal(): number {\n return this.optionsChecked()?.length;\n }\n\n private optionsCheckedPreview(): PnMultiselectOption[] {\n return this.optionsChecked()?.slice(0, this.itemCount);\n }\n\n private optionsCheckedLabels(): string {\n return this.optionsChecked()\n ?.map(({ label }) => label)\n ?.join(', ');\n }\n\n private optionsSearch(): PnMultiselectOption[] {\n const list = this.options?.reduce((sum, item) => {\n const subgroup = item.group ? [...item.group.filter(({ hide }) => !hide)] : [];\n if (!item.hide) sum.push(item);\n if (subgroup?.length) sum.push(...subgroup);\n return sum;\n }, []);\n\n return list;\n }\n\n private noResults() {\n return this.optionsSearch()?.length === 0;\n }\n\n private isIndeterminate(groupIndex: number): boolean {\n const option = this.options?.[groupIndex];\n if (option?.group?.length) {\n const all = option.group.every(({ checked }) => checked);\n const none = option.group.every(({ checked }) => !checked);\n\n return !(all || none);\n }\n return false;\n }\n\n private optionSelect({ val, checked, chip }: { val: string; checked: boolean; chip?: number }) {\n if (val === this.allValue) return this.optionSelectAll(checked);\n\n const options = this.options;\n\n const { indexGroup, indexNested } = this.optionsIndex(val);\n\n const group = options[indexGroup]?.group;\n const nested = group?.[indexNested];\n\n if (nested?.value) {\n options[indexGroup].group[indexNested].checked = checked;\n\n const allSiblingsChecked = group?.every(({ checked }) => checked);\n\n if (allSiblingsChecked) options[indexGroup].checked = true;\n else options[indexGroup].checked = false;\n } else {\n options[indexGroup].checked = checked;\n if (group?.length) options[indexGroup].group = group?.map(opt => ({ ...opt, checked: checked }));\n }\n\n const option = indexNested === -1 ? options[indexGroup] : options[indexGroup].group[indexNested];\n\n this.emitEvents(option);\n\n this.options = [...options];\n\n if (typeof chip === 'number') {\n this.handleSrMesssage(`${this.translate('REMOVED')} ${option.label}`);\n\n requestAnimationFrame(() => {\n const index = chip === this.optionsCheckedTotal() ? chip - 1 : chip;\n const btn = Array.from(this.elChips.children)?.[index];\n btn?.querySelector('button').focus({ preventScroll: true });\n });\n }\n }\n\n private optionSelectAll(checked: boolean) {\n this.options = [\n ...this.options.map(option => {\n const opt = {\n ...option,\n checked: this.isSearching ? (option.hide ? option.checked : checked) : checked,\n };\n\n if (opt.group)\n opt.group = [\n ...opt.group.map(item => ({\n ...item,\n checked: this.isSearching ? (item.hide ? item.checked : checked) : checked,\n })),\n ];\n\n const allChecked = opt?.group?.every(({ checked }) => checked);\n if (opt?.group?.length) opt.checked = allChecked;\n\n return opt;\n }),\n ];\n\n this.emitEvents(null, checked);\n }\n\n private optionSelected(val: string): boolean {\n return !!this.optionsChecked()?.find(({ value, checked }) => value === val && checked);\n }\n\n private translate(prop: string): string {\n const text = translations?.[prop]?.[this.language || en];\n if (text.includes('{number}')) return text.replace('{number}', this.optionsSearch().length);\n return text;\n }\n\n private getRect(element: HTMLElement): DOMRect {\n return element?.getBoundingClientRect();\n }\n\n private ripple({ clientX, clientY, target }: MouseEvent) {\n const isKeyboard = clientX === 0 && clientY === 0;\n const element = (target as HTMLInputElement).nextElementSibling;\n const { x, width, y, top } = this.getRect(element as HTMLElement);\n const clientCor = isKeyboard ? { clientX: x + width - 24, clientY: y - top } : { clientX, clientY };\n\n ripple(clientCor, element as HTMLElement);\n }\n\n private handleSrMesssage(text: string) {\n this.srMessage = text;\n clearTimeout(this.srTimer);\n this.srTimer = setTimeout(() => (this.srMessage = null), 2000);\n }\n\n private handleDirection() {\n if (this.top) return (this.upwards = true);\n if (this.bottom) return (this.upwards = false);\n\n const { bottom, top } = this.getRect(this.elInput);\n\n const oneEm = 16;\n\n /*\n * Take the inner window height and subtract the elements bottom and 1em (16px)\n * If the max height of this calculation is less than the space above the element, open it upwards.\n * Do another calculation with the top value - 1em.\n */\n const offsetTop = window.innerHeight - bottom - oneEm;\n const offsetBottom = top - oneEm;\n\n /** Always point downwards, unless the space to the bottom is less than half of the top offset space. */\n this.upwards = offsetBottom / 2 > offsetTop;\n }\n\n private handleMaxHeight() {\n if (this.maxHeight) return this.elGroup.style.setProperty('--pn-select-max-height', this.maxHeight);\n\n const { bottom, top } = this.getRect(this.elInput);\n const inputHeight = this.upwards ? top : bottom;\n\n const offsetTop = getTotalHeightOffset();\n\n const offset = this.upwards ? offsetTop + 16 : 16;\n\n const maxHeight = this.upwards ? inputHeight - offset : window.innerHeight - inputHeight - offset;\n\n this.elGroup.style.setProperty('--pn-select-max-height', `${Math.ceil(maxHeight)}px`);\n }\n\n private handleWidth() {\n const { width } = this.getRect(this.elInput);\n this.elGroup.style.setProperty('--pn-select-options-width', `${Math.ceil(width)}px`);\n }\n\n private setFocus() {\n if (this.search) this.elInput.focus({ preventScroll: true });\n else this.elButton.focus({ preventScroll: true });\n }\n\n private hasError(): boolean {\n return this.invalid || !!this.error;\n }\n\n private hasMessage(): boolean {\n return !!this.helpertext || !!this.error;\n }\n\n private toggleOpen(state?: boolean) {\n if (typeof state === 'boolean' && state === this.open) return;\n this.open = state ?? !this.open;\n this.toggleSelect.emit({ open: this.open });\n }\n\n private handleInputKeyboard(event: KeyboardEvent) {\n event.stopImmediatePropagation();\n\n const { code } = event;\n\n if (code === 'Escape') return this.toggleOpen(false);\n if (!this.open && code.match(/^(Space|Enter)$|Arrow|^Key.*$/)) this.toggleOpen();\n }\n\n private setSearchQuery(value: string) {\n if (!this.open) this.toggleOpen(true);\n this.searchQuery = value;\n }\n\n private handleInputSearch() {\n if (this.isEmpty()) return;\n\n const term = this.searchQuery;\n const performSearch = ({ label, helpertext, value }: PnMultiselectOption): boolean => {\n return `${label} ${helpertext} ${value}`.trim().toLowerCase().includes(term.toLowerCase());\n };\n\n const options = this.options.map(option => {\n const foundNested = option?.group?.map(item => ({ ...item, hide: !performSearch(item) })) || [];\n\n const found = performSearch(option) || foundNested?.some(({ hide }) => !hide);\n\n option.hide = !found;\n if (option?.group?.length) option.group = [...foundNested];\n\n return option;\n });\n\n this.isSearching = term !== '';\n\n this.options = [...options];\n\n this.searchInput.emit({ query: term, found: this.optionsSearch() });\n }\n\n private getListItem(index: number): HTMLInputElement {\n const { value } = this.options[index];\n return this.elList.querySelector<HTMLInputElement>(`.pn-multiselect-option-input[value='${value}']`);\n }\n\n private getOptionIndex(val: string, triggers: (boolean | number)[], code?: string) {\n const total = this.optionsTotal() - 1;\n\n if (code === 'End') return total;\n if (code === 'Home') return 0;\n\n const valIndex = this.options.findIndex(({ value }) => value === val);\n\n const count = triggers.find(item => typeof item === 'number') as number;\n const index = valIndex + count;\n\n if (index >= total) return total;\n if (index <= 0) return 0;\n\n return index;\n }\n\n private checkboxNav(e: KeyboardEvent, val: string) {\n const { code } = e;\n\n const arrowUp = code === 'ArrowUp' && -1;\n const arrowDown = code === 'ArrowDown' && 1;\n const pageUp = code === 'PageUp' && -10;\n const pageDown = code === 'PageDown' && 10;\n const home = code === 'Home' && 0;\n const end = code === 'End' && this.optionsTotal() - 1;\n const tab = code === 'Tab';\n const space = code === 'Space';\n const enter = code === 'Enter';\n const escape = code === 'Escape';\n\n const triggers = [arrowUp, arrowDown, pageUp, pageDown, home, end, tab, space, enter, escape];\n\n if (!triggers.some(item => typeof item === 'number' || item)) return;\n\n if (tab || space || enter) return;\n\n e.stopImmediatePropagation();\n e.preventDefault();\n\n if (escape) {\n this.setFocus();\n return this.toggleOpen(false);\n }\n\n const item = this.getOptionIndex(val, triggers, code);\n return this.getListItem(item)?.focus();\n }\n\n private handleBlur(event: FocusEvent) {\n const target = event.target as HTMLElement;\n const related = event.relatedTarget as HTMLElement;\n\n const jumpingToChips = (related || target)?.className === 'pn-multiselect-chip-button';\n\n if (jumpingToChips) this.toggleOpen(false);\n }\n\n private handleLabel() {\n if (this.disabled) return;\n this.setFocus();\n }\n\n /** Check if there are no options in the list. */\n private isEmpty(): boolean {\n return (this.options?.length || 0) === 0;\n }\n\n private showSelectAll(): boolean {\n return this.selectAll && !this.isEmpty() && !this.noResults();\n }\n\n /** Check if the empty/nothing found should be visible. */\n private showEmptyOption() {\n return (this.isSearching && this.noResults()) || this.isEmpty();\n }\n\n private getPlaceholder(): string {\n const autoTranslation = this.search ? 'SEARCH' : 'SELECT_AN_OPTION';\n return this.placeholder || this.translate(autoTranslation);\n }\n\n private handleChange({ target }: InputEvent) {\n const { value, checked } = target as HTMLInputElement;\n this.optionSelect({ val: value, checked });\n }\n\n /** Display the \"X more selected options\" text. */\n private additonalOptions() {\n const count = this.optionsCheckedTotal() - this.itemCount;\n const single = `MORE_OPTION${count === 1 ? '' : 'S'}`;\n return `${count} ${this.translate(single)}`;\n }\n\n private describedBy(): string {\n const list = [this.search && this.idChips, this.srMessage && this.idSr, !!this.helpertext && this.idHelper].filter(\n Boolean,\n );\n if (list.length) return list.join(' ');\n return null;\n }\n\n private renderOption(\n {\n label,\n value,\n checked,\n helpertext,\n icon,\n id = `${this.selectId}-${value || label}`,\n invalid,\n disabled,\n hide,\n group,\n }: PnMultiselectOption,\n indexGroup?: number,\n indexNested?: number,\n ): HTMLLIElement {\n return (\n <li class=\"pn-multiselect-option\" key={id} hidden={hide}>\n <input\n type=\"checkbox\"\n id={id}\n class=\"pn-multiselect-option-input\"\n checked={checked ?? this.optionSelected(value)}\n indeterminate={indexNested === undefined && this.isIndeterminate(indexGroup)}\n name={this.name}\n value={value}\n disabled={this.disabled || disabled}\n required={this.required}\n aria-invalid={invalid ? 'true' : null}\n aria-describedby={helpertext ? `${id}-helper` : null}\n onClick={(event: MouseEvent) => this.ripple(event)}\n onKeyDown={(event: KeyboardEvent) => this.checkboxNav(event, value)}\n onBlur={(event: FocusEvent) => this.handleBlur(event)}\n />\n <div class=\"pn-multiselect-option-content\">\n {!!icon && <pn-icon icon={icon} color=\"blue900\" />}\n <div class=\"pn-multiselect-option-text\">\n <label class=\"pn-multiselect-option-label\" htmlFor={id}>\n <span>{label}</span>\n </label>\n {helpertext && (\n <p class=\"pn-multiselect-option-helper\" id={`${id}-helper`}>\n {helpertext}\n </p>\n )}\n </div>\n <div class=\"pn-multiselect-option-checkbox\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\">\n <polyline\n class=\"pn-multiselect-option-checkbox-checkmark-path\"\n points=\"4,12 9,17 20,6\"\n stroke-width=\"3\"\n />\n <polyline\n class=\"pn-multiselect-option-checkbox-indeterminate-path\"\n points=\"4,12 20,12\"\n stroke-width=\"3\"\n />\n </svg>\n </div>\n </div>\n {group?.length && (\n <ul class=\"pn-multiselect-optgroup\">{group?.map((option, i) => this.renderOption(option, indexGroup, i))}</ul>\n )}\n </li>\n );\n }\n\n private renderOptions(): HTMLUListElement {\n return (\n <ul\n id={this.idOptions}\n class=\"pn-multiselect-options\"\n data-open={this.open}\n data-upwards={this.upwards}\n data-moving={this.isClosing || this.isExpanding}\n onChange={(event: InputEvent) => this.handleChange(event)}\n style={{ height: '0px' }}\n ref={el => (this.elList = el)}\n >\n {this.showSelectAll() &&\n this.renderOption({\n label: this.translate(`SELECT_${this.isSearching ? 'FOUND' : 'ALL'}_OPTIONS`),\n value: this.allValue,\n checked: this.optionsTotal() === this.optionsCheckedTotal(),\n })}\n\n {this.options?.map((option, index) => this.renderOption(option, index))}\n\n {this.showEmptyOption() && (\n <li class=\"pn-multiselect-option\">\n <div class=\"pn-multiselect-option-content\" role=\"alert\">\n <div class=\"pn-multiselect-option-text\">\n <span class=\"pn-multiselect-option-label\">\n {this.translate(this.isEmpty() ? 'NO_OPTIONS' : 'NO_SEARCH_RESULTS')}\n </span>\n </div>\n </div>\n </li>\n )}\n </ul>\n );\n }\n\n private renderChips(): HTMLUListElement {\n return (\n <ul\n id={this.idChips}\n class=\"pn-multiselect-chips\"\n aria-label={this.translate('SELECTED_OPTIONS')}\n ref={el => (this.elChips = el)}\n >\n {this.optionsCheckedPreview()?.map(({ label, value }, index) => (\n <li\n class=\"pn-multiselect-chip\"\n aria-setsize={this.optionsCheckedTotal()}\n aria-posinset={index + 1}\n key={`${label}-${value}`}\n >\n <span class=\"pn-multiselect-chip-label\">{label}</span>\n <button\n type=\"button\"\n class=\"pn-multiselect-chip-button\"\n aria-label={`${this.translate('REMOVE')} ${label}`}\n onClick={() => this.optionSelect({ val: value, checked: false, chip: index })}\n >\n <pn-icon icon={close} small color=\"blue700\" />\n </button>\n </li>\n ))}\n {this.optionsCheckedTotal() > this.itemCount && (\n <li class=\"pn-multiselect-chip\" data-count>\n <span class=\"pn-multiselect-chip-label\">+ {this.additonalOptions()}</span>\n </li>\n )}\n </ul>\n );\n }\n\n render() {\n return (\n <Host>\n <fieldset class=\"pn-multiselect\" data-icon={!!this.icon} data-error={this.hasError()} disabled={this.disabled}>\n {this.label && (\n <legend id={this.idLegend} class=\"pn-multiselect-label\" onClick={() => this.handleLabel()}>\n <span>{this.label}</span>\n\n {!!this.optionsChecked()?.length && (\n <span>\n {this.optionsCheckedTotal()}/{this.optionsTotal()}\n </span>\n )}\n </legend>\n )}\n <div class=\"pn-multiselect-group\" ref={el => (this.elGroup = el)}>\n <div class=\"pn-multiselect-input\">\n {!!this.icon && <pn-icon class=\"pn-multiselect-icon\" data-custom icon={this.icon} />}\n\n <input\n tabindex={this.search ? null : '-1'}\n type={this.search ? 'search' : 'input'}\n id={this.selectId}\n class=\"pn-multiselect-element\"\n value={this.search ? this.searchQuery : this.optionsCheckedLabels()}\n name={this.selectName}\n placeholder={this.getPlaceholder()}\n required={this.search ? null : this.required}\n aria-labelledby={this.idLegend}\n aria-describedby={this.describedBy()}\n aria-controls={`${this.idOptions} ${this.search ? this.idChips : ''}`}\n aria-invalid={this.hasError()?.toString()}\n disabled={this.disabled}\n readonly={!this.search}\n onClick={() => (this.search && this.open ? null : this.toggleOpen())}\n onKeyDown={e => this.handleInputKeyboard(e)}\n onBlur={e => this.handleBlur(e)}\n onInput={e => this.search && this.setSearchQuery((e.target as HTMLInputElement).value)}\n ref={el => (this.elInput = el)}\n />\n\n {this.hasError() && (\n <pn-icon class=\"pn-multiselect-icon\" data-error icon={alert_exclamation_circle} color=\"warning\" />\n )}\n\n <button\n id={this.idButton}\n type=\"button\"\n class=\"pn-multiselect-button\"\n aria-label={this.translate(`BUTTON_${this.open ? 'CLOSE' : 'OPEN'}`)}\n aria-describedby={this.search ? null : this.selectId}\n aria-controls={this.idOptions}\n aria-expanded={this.open.toString()}\n onClick={() => this.toggleOpen()}\n ref={el => (this.elButton = el)}\n >\n <pn-icon class=\"pn-multiselect-icon\" icon={chevron_down} color=\"blue700\" />\n </button>\n </div>\n\n {this.renderOptions()}\n </div>\n\n {this.hasMessage() && (\n <p id={this.idHelper} class=\"pn-multiselect-description\" role={!!this.error ? 'alert' : null}>\n <span>{this.error || this.helpertext}</span>\n </p>\n )}\n\n {this.search && this.renderChips()}\n\n <slot />\n\n {this.search && (\n <p id={this.idSr} class=\"pn-multiselect-sr-only\" role=\"alert\" aria-live=\"assertive\">\n {this.srMessage && <span>{this.srMessage}</span>}\n </p>\n )}\n </fieldset>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -136,7 +136,7 @@ const PnOcrSearch = class {
136
136
  }
137
137
  }
138
138
  render() {
139
- return (h(Host, { key: 'c4392bef058b06addd7357e34ce304f5804a1b44' }, h("pn-search-field", { key: '2f8f4beedb4c90e97ef63437fb39e649b0ae7d33', loading: this.loading, label: this.getTranslation('SEARCH_BUTTON'), button: "icon", buttonLabel: this.getTranslation('SEARCH_BUTTON'), placeholder: this.getTranslation('PLACEHOLDER_TEXT'), onSearch: e => this.handleSearch(e) }), this.renderSearchResult(), this.renderErrorMessage()));
139
+ return (h(Host, { key: '917961782b3f330e4271aa6f25427c36398c252e' }, h("pn-search-field", { key: 'e04856aba0427ece6d332e8375313d87212106af', loading: this.loading, label: this.getTranslation('SEARCH_BUTTON'), button: "icon", buttonLabel: this.getTranslation('SEARCH_BUTTON'), placeholder: this.getTranslation('PLACEHOLDER_TEXT'), onSearch: e => this.handleSearch(e) }), this.renderSearchResult(), this.renderErrorMessage()));
140
140
  }
141
141
  };
142
142
  PnOcrSearch.style = PnOcrSearchStyle0;
@@ -38,7 +38,7 @@ const PnPageNavDropdownItem = class {
38
38
  }
39
39
  render() {
40
40
  const TagName = this.getTagName();
41
- return (h("li", { key: '118b8decf6fe97a27767bc70926ccc3b350bea31' }, h(TagName, { key: '1417fbd74d2bd8119789b1ddb5f395cf5ea5571d', href: this.href || '#', class: this.setClassnames(), type: this.getType(), onClick: e => this.select(e), tabindex: "-1" }, h("slot", { key: '51bdce9d5a7cdc1a7481ea13c49c11f073ae7660' }), h("pn-icon", { key: '63252ed87b9aaa6c2f26c4fe503e71b3d08169e9', icon: arrow_right, color: "white" })), h("hr", { key: 'c7b2d942886b0aaafa859f3d564ba920ea07ca79' })));
41
+ return (h("li", { key: 'f4bdc8d41ea761f0fcca047fe70678cb83a0d0ad' }, h(TagName, { key: 'facd7296d4d26b872548c21491a901719e3bb278', href: this.href || '#', class: this.setClassnames(), type: this.getType(), onClick: e => this.select(e), tabindex: "-1" }, h("slot", { key: 'c70b49d7079403d41fe68d799f621b58a0f377c4' }), h("pn-icon", { key: '3731f2a595d7234c78fe33458f1d2cdb3544aa20', icon: arrow_right, color: "white" })), h("hr", { key: 'f5da263701f5b73566353a58268cbe59c48db725' })));
42
42
  }
43
43
  };
44
44
  PnPageNavDropdownItem.style = PnPageNavDropdownItemStyle0;
@@ -24,7 +24,7 @@ const PnPageNavItem = class {
24
24
  this.itemselection.emit(this.value);
25
25
  }
26
26
  render() {
27
- return (h(Host, { key: 'a2dcede0a4f6789eda151fa2fcd5496588897361' }, h("li", { key: '029058cffbfbf1c04d57c7605b9e887cce0abbd1' }, h("a", { key: '38f2a5a9e15bc96a9efb91d85c9d67b21d27b40b', href: this.href || '#', class: "pn-page-nav-item", onClick: e => this.select(e) }, this.icon && h("pn-icon", { key: '110592957f990a4c9594820d748aa1c6458742a5', icon: this.icon, color: "white" }), h("slot", { key: '9b72c3dc62e9dfc9fe7cc0415d0ea0f67ea0d47f' })))));
27
+ return (h(Host, { key: '661feb5107ecf8dadaa62f137d8dd8ca54e83de7' }, h("li", { key: '39f97a818c74ab3740592d997fc0ea9cf7ae9129' }, h("a", { key: 'a5528e3389075f88328bc8f64d608830f9c882ba', href: this.href || '#', class: "pn-page-nav-item", onClick: e => this.select(e) }, this.icon && h("pn-icon", { key: 'bee33613667acc22c223ed8192a0751df8186129', icon: this.icon, color: "white" }), h("slot", { key: '15d6a38762c81898f15f93f99eac390b92dc6209' })))));
28
28
  }
29
29
  };
30
30
  PnPageNavItem.style = PnPageNavItemStyle0;
@@ -4,9 +4,9 @@
4
4
  */
5
5
  import { r as registerInstance, c as createEvent, g as getElement, f as forceUpdate, h, a as Host } from './index-5606614b.js';
6
6
  import { u as uuidv4 } from './helpers-9dac5241.js';
7
- import { a as angle_down } from './angle_down-d788f691.js';
8
7
  import { a as arrow_left } from './arrow_left-f0d725e6.js';
9
8
  import { a as arrow_right } from './arrow_right-1b36bbb0.js';
9
+ import { c as chevron_down } from './chevron_down-6e3fb42f.js';
10
10
 
11
11
  const pnPageNavCss = "pn-page-nav{display:block;position:relative;font-size:clamp(0.8em, 2vw, 1em);z-index:5}.pn-page-nav-wrapper{transform:translateZ(0);font-size:inherit;max-width:100%;overflow:hidden;position:relative;display:inline-flex;border-radius:3em}.pn-page-nav{display:flex;align-items:center;border-radius:3em;min-height:3em;background:#0d234b;border:0.0625em solid #d3cecb;position:relative;overflow-x:auto;scroll-snap-type:x mandatory}.pn-page-nav::-webkit-scrollbar{display:none}.pn-page-nav ul.pn-page-nav-items{display:flex;list-style-type:none;padding:0.25em;margin:0;position:relative}.pn-page-nav-items>.pn-pn-bg{position:absolute;top:50%;transform:translateY(-50%);will-change:transform;left:0;border-radius:3em;transition:width 0.25s cubic-bezier(0.29, 0.15, 0.24, 0.97), transform 0.25s cubic-bezier(0.29, 0.15, 0.24, 0.97), background 0.15s, opacity 0.15s, box-shadow 0.15s}.pn-page-nav-items>.pn-pn-bg.pn-pn-active{box-shadow:0px 0.3px 0.9px rgba(0, 0, 0, 0.1), 0px 1.6px 3.6px rgba(0, 0, 0, 0.13);background:#005d92;z-index:1}.pn-page-nav-items>.pn-pn-bg.pn-pn-hover{background:#ffffff;opacity:0;border:0.0625em solid transparent;z-index:0}.pn-page-nav-items>.pn-pn-bg.hidden{opacity:0}@media (hover: hover){ul.pn-page-nav-items:focus-within .pn-pn-hover,ul.pn-page-nav-items:hover .pn-pn-hover{opacity:0.12}}pn-page-nav .pn-pn-arrows{position:absolute;top:50%;transform:translateY(-50%);left:0;height:100%;width:100%;z-index:3;display:flex;justify-content:space-between;align-items:center;pointer-events:none;padding:0.125em 0.1em}pn-page-nav .pn-pn-arrows svg{width:1.5em}pn-page-nav .pn-pn-arrows svg.pn-icon-svg path{fill:#005d92}pn-page-nav .pn-pn-arrows>*{transition:transform 0.2s, opacity 0.2s, background 0.1s, box-shadow 0.1s;pointer-events:all;height:100%;aspect-ratio:1;background:#ffffff;display:flex;align-items:center;justify-content:center;outline:none;cursor:pointer;opacity:0;will-change:transform;-webkit-tap-highlight-color:transparent;border-radius:50%;border:0.0625em solid #0d234b}pn-page-nav .pn-pn-arrows>*.pn-pn-arrow-left{transform:translateX(-100%)}pn-page-nav .pn-pn-arrows>*.pn-pn-arrow-right{transform:translateX(100%)}@media screen and (max-width: 30em){pn-page-nav .pn-pn-arrows>*{border:none}pn-page-nav .pn-pn-arrows>* pn-icon .pn-icon-svg{width:100%;height:2em;animation:arrow 0.6s ease-in-out alternate infinite}pn-page-nav .pn-pn-arrows>* pn-icon .pn-icon-svg path{fill:#ffffff}pn-page-nav .pn-pn-arrows>*.pn-pn-arrow-left{background:linear-gradient(to left, transparent, #0d234b 60%);border-radius:50% 0 0 50%}pn-page-nav .pn-pn-arrows>*.pn-pn-arrow-right{background:linear-gradient(to right, transparent, #0d234b 40%);border-radius:0 50% 50% 0}}pn-page-nav .pn-pn-arrows.pn-pn-left-visible .pn-pn-arrow-left,pn-page-nav .pn-pn-arrows.pn-pn-right-visible .pn-pn-arrow-right{opacity:1;transform:translateX(0)}@keyframes arrow{to{transform:translateX(10%)}}button.pn-page-nav-dropdown-button{font-size:1em;border-radius:3em 0 0 3em;background:#0d234b;color:#ffffff;padding:0.5em 1em 0.5em 1.5em;cursor:pointer;display:flex;align-items:center;border:none;transition:background 0.15s;outline:none;height:100%;position:relative;margin:0 0.5em 0 0;font-weight:500}button.pn-page-nav-dropdown-button pn-icon{margin-left:0.5em}button.pn-page-nav-dropdown-button:hover,button.pn-page-nav-dropdown-button:focus{background:#263655}button.pn-page-nav-dropdown-button:focus{box-shadow:inset 0 0 0 0.1em #005d92, inset 0 0 0 0.2em #d3cecb}button.pn-page-nav-dropdown-button.pn-page-nav-dropdown-active{background:#005d92}button.pn-page-nav-dropdown-button.pn-page-nav-dropdown-active:hover,button.pn-page-nav-dropdown-button.pn-page-nav-dropdown-active:focus{background:#005d92}.pn-page-nav-divider{height:60%;background:#d3cecb;width:0.1em;position:absolute;right:0;transform:translateX(50%)}ul.pn-page-nav-dropdown{position:absolute;left:0;top:110%;background:#0d234b;border-radius:0.5em;margin:0;padding:0;list-style-type:none;box-shadow:0px 6.4000000954px 14.3999996185px 0px rgba(0, 0, 0, 0.1294117647), 0px 1.2000000477px 3.5999999046px 0px rgba(0, 0, 0, 0.1019607843);font-size:inherit;display:none}ul.pn-page-nav-dropdown.pn-page-nav-dropdown-open{display:block}";
12
12
  const PnPageNavStyle0 = pnPageNavCss;
@@ -294,7 +294,7 @@ const PnPageNav = class {
294
294
  }
295
295
  /* ---------------------------------------/DROPDOWN LOGIC--------------------------------------- */
296
296
  render() {
297
- return (h(Host, { key: '78363e8727ce2d9b1525572a8d909b65141c4932' }, h("div", { key: '1cdb635b439f40cf77df3a77432d542f3055e952', class: "pn-page-nav-wrapper" }, h("nav", { key: '13ae19bf916612a04990edade8d7325665a91060', class: "pn-page-nav" }, this.dropdownActive && (h("button", { key: '802fbae4d73a7b26a34ed4e41e5b5a6efd3ba101', type: "button", class: this.dropdownButtonClasses(), onClick: () => this.toggleDropdown(), "aria-controls": "page-nav-dropdown", "aria-expanded": `${this.dropdownOpen}` }, this.dropdown, h("pn-icon", { key: 'ac26e1ec6b9feeb52a898d7f80d2c4356423e93d', icon: angle_down, color: "white", small: true }), h("div", { key: 'c040e7c7ac1db10687b53ad6f59f6c3ded1d8e8a', class: "pn-page-nav-divider" }))), h("ul", { key: '4bf5dc223bd55b0fb81fedebfa09fbe5db42569d', class: "pn-page-nav-items" }, h("slot", { key: '3b77f7bd7a09700b860df10927b3889072e3bc34' }), h("li", { key: '71f85348e913043ca037efbe523f25a00bf8d211', class: "pn-pn-bg pn-pn-active", role: "presentation" }), h("li", { key: '462f8b0e8e1c788143d4ffaf5011b030ff100f5f', class: "pn-pn-bg pn-pn-hover", role: "presentation" }))), this.showScrollArrows && (h("div", { key: 'c69db4a2202a5b5f9da49f72466bfa2d68eec0c8', class: this.scrollArrowClasses() }, h("button", { key: 'eb809646459a703b8ea984ef6f9ec8b23ea34029', class: "pn-pn-arrow-left", onClick: () => this.scroll(-120), tabindex: "-1" }, h("pn-icon", { key: '4d797edf6525213134b3acc0e36876ade74952a8', icon: arrow_left, color: "white" })), h("button", { key: '612286fcac6b7608a1162aa5b8ad3d6ff401bf87', class: "pn-pn-arrow-right", onClick: () => this.scroll(120), tabindex: "-1" }, h("pn-icon", { key: '5a336276c0b4256fb976fc2bdc9037ec25cbc382', icon: arrow_right, color: "blue700" }))))), this.dropdownActive && (h("ul", { key: '518b79ad7c1a7ff8652a5fb909f8285f94405a4a', id: this.navid, class: this.dropdownClasses() }, h("slot", { key: '7d03ba12daffea62b0b0a7c0f1a1c1c006a125c4', name: "dropdown-item" })))));
297
+ return (h(Host, { key: '2d472afc87973db1b342badc82b707f5767834e9' }, h("div", { key: 'a76c352f5e14f65d8bec6fa42ed25b2b287d7280', class: "pn-page-nav-wrapper" }, h("nav", { key: '20ed1bb324c0fb4800c9f8f07d0d40100721e5e9', class: "pn-page-nav" }, this.dropdownActive && (h("button", { key: '7dbbafa6c70b16cbad1fe832df007aa65c077ec7', type: "button", class: this.dropdownButtonClasses(), onClick: () => this.toggleDropdown(), "aria-controls": "page-nav-dropdown", "aria-expanded": `${this.dropdownOpen}` }, this.dropdown, h("pn-icon", { key: 'b2785a4afaa0f2f9ce19c890c6aebb0d2b7e0042', icon: chevron_down, color: "white", small: true }), h("div", { key: '876b33ce6d6a3bd0b83d5f8d97d63d24c0530074', class: "pn-page-nav-divider" }))), h("ul", { key: 'b4a29a198ac5e38baef3ed74b12e3aca14c8cc9b', class: "pn-page-nav-items" }, h("slot", { key: '947c3412a48a441a0677a7815d7973ca448515c3' }), h("li", { key: '90141ec24493bcda61698d15b448f9910d70e2ed', class: "pn-pn-bg pn-pn-active", role: "presentation" }), h("li", { key: '02f007fe38b1512749971b0b4c006a3589517788', class: "pn-pn-bg pn-pn-hover", role: "presentation" }))), this.showScrollArrows && (h("div", { key: 'ca4ea70291ecf8d9b7d3dc59b27c72176cc96938', class: this.scrollArrowClasses() }, h("button", { key: 'f6ff58345a9e44be31fbf8c22492710fb76e24a3', class: "pn-pn-arrow-left", onClick: () => this.scroll(-120), tabindex: "-1" }, h("pn-icon", { key: 'c1b090b80ab3b3aa387bc7d550ee8ffdb7c769ad', icon: arrow_left, color: "white" })), h("button", { key: '2be256cd45c2355563a9ad239f3709619790f1ad', class: "pn-pn-arrow-right", onClick: () => this.scroll(120), tabindex: "-1" }, h("pn-icon", { key: 'afb76fc849b335ef1c216273301dd4d95a0b4cee', icon: arrow_right, color: "blue700" }))))), this.dropdownActive && (h("ul", { key: '941559a72118dd220f684ece2151ace9c4c3e292', id: this.navid, class: this.dropdownClasses() }, h("slot", { key: '9e546d81c3f8f98ac3978646a865f406e673d0e3', name: "dropdown-item" })))));
298
298
  }
299
299
  static get watchers() { return {
300
300
  "value": ["valueHandler"],
@@ -1 +1 @@
1
- {"file":"pn-page-nav.entry.js","mappings":"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","names":[],"sources":["src/components/navigation/pn-page-nav/menu/pn-page-nav.scss?tag=pn-page-nav","src/components/navigation/pn-page-nav/menu/pn-page-nav.tsx"],"sourcesContent":["@use 'src/globals/main';\n\npn-page-nav {\n display: block;\n position: relative;\n font-size: clamp(0.8em, 2vw, 1em);\n z-index: 5;\n}\n\n.pn-page-nav-wrapper {\n transform: translateZ(0);\n font-size: inherit;\n max-width: 100%;\n overflow: hidden;\n position: relative;\n display: inline-flex;\n border-radius: 3em;\n}\n\n.pn-page-nav {\n display: flex;\n align-items: center;\n border-radius: 3em;\n min-height: 3em;\n background: main.$blue900;\n border: 0.0625em solid main.$gray200;\n position: relative;\n overflow-x: auto;\n scroll-snap-type: x mandatory;\n\n &::-webkit-scrollbar {\n display: none;\n }\n}\n\n.pn-page-nav ul.pn-page-nav-items {\n display: flex;\n list-style-type: none;\n padding: 0.25em;\n margin: 0;\n position: relative;\n}\n\n.pn-page-nav-items > .pn-pn-bg {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n will-change: transform;\n left: 0;\n border-radius: 3em;\n transition:\n width 0.25s cubic-bezier(0.29, 0.15, 0.24, 0.97),\n transform 0.25s cubic-bezier(0.29, 0.15, 0.24, 0.97),\n background 0.15s,\n opacity 0.15s,\n box-shadow 0.15s;\n\n &.pn-pn-active {\n box-shadow:\n 0px 0.3px 0.9px rgba(0, 0, 0, 0.1),\n 0px 1.6px 3.6px rgba(0, 0, 0, 0.13);\n background: main.$blue700;\n z-index: 1;\n }\n\n &.pn-pn-hover {\n background: main.$white;\n opacity: 0;\n border: 0.0625em solid transparent;\n z-index: 0;\n }\n\n &.hidden {\n opacity: 0;\n }\n}\n\n@media (hover: hover) {\n ul.pn-page-nav-items:focus-within .pn-pn-hover,\n ul.pn-page-nav-items:hover .pn-pn-hover {\n opacity: 0.12;\n }\n}\n\n/*---------------------------------------ARROWS-------------------------------------------*/\npn-page-nav .pn-pn-arrows {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n left: 0;\n height: 100%;\n width: 100%;\n z-index: 3;\n display: flex;\n justify-content: space-between;\n align-items: center;\n pointer-events: none;\n padding: 0.125em 0.1em;\n\n svg {\n width: 1.5em;\n\n &.pn-icon-svg path {\n fill: main.$blue700;\n }\n }\n\n > * {\n transition:\n transform 0.2s,\n opacity 0.2s,\n background 0.1s,\n box-shadow 0.1s;\n pointer-events: all;\n height: 100%;\n aspect-ratio: 1;\n background: main.$white;\n display: flex;\n align-items: center;\n justify-content: center;\n outline: none;\n cursor: pointer;\n opacity: 0;\n will-change: transform;\n -webkit-tap-highlight-color: transparent;\n border-radius: 50%;\n border: 0.0625em solid main.$blue900;\n\n &.pn-pn-arrow-left {\n transform: translateX(-100%);\n }\n\n &.pn-pn-arrow-right {\n transform: translateX(100%);\n }\n\n @media screen and (max-width: 30em) {\n border: none;\n\n pn-icon .pn-icon-svg {\n width: 100%;\n height: 2em;\n animation: arrow 0.6s ease-in-out alternate infinite;\n\n path {\n fill: main.$white;\n }\n }\n\n &.pn-pn-arrow-left {\n background: linear-gradient(to left, transparent, main.$blue900 60%);\n border-radius: 50% 0 0 50%;\n }\n\n &.pn-pn-arrow-right {\n background: linear-gradient(to right, transparent, main.$blue900 40%);\n border-radius: 0 50% 50% 0;\n }\n }\n }\n\n &.pn-pn-left-visible .pn-pn-arrow-left,\n &.pn-pn-right-visible .pn-pn-arrow-right {\n opacity: 1;\n transform: translateX(0);\n }\n}\n\n@keyframes arrow {\n to {\n transform: translateX(10%);\n }\n}\n/*---------------------------------------/ARROWS-------------------------------------------*/\n\n/*---------------------------------------DROPDOWN-------------------------------------------*/\nbutton.pn-page-nav-dropdown-button {\n font-size: 1em;\n border-radius: 3em 0 0 3em;\n background: main.$blue900;\n color: main.$white;\n padding: 0.5em 1em 0.5em 1.5em;\n cursor: pointer;\n display: flex;\n align-items: center;\n border: none;\n transition: background 0.15s;\n outline: none;\n height: 100%;\n position: relative;\n margin: 0 0.5em 0 0;\n font-weight: 500;\n\n pn-icon {\n margin-left: 0.5em;\n }\n\n &:hover,\n &:focus {\n background: #263655;\n }\n\n &:focus {\n box-shadow:\n inset 0 0 0 0.1em main.$blue700,\n inset 0 0 0 0.2em main.$gray200;\n }\n\n &.pn-page-nav-dropdown-active {\n background: main.$blue700;\n\n &:hover,\n &:focus {\n background: main.$blue700;\n }\n }\n}\n\n.pn-page-nav-divider {\n height: 60%;\n background: main.$gray200;\n width: 0.1em;\n position: absolute;\n right: 0;\n transform: translateX(50%);\n}\n\nul.pn-page-nav-dropdown {\n position: absolute;\n left: 0;\n top: 110%;\n background: main.$blue900;\n border-radius: 0.5em;\n margin: 0;\n padding: 0;\n list-style-type: none;\n box-shadow:\n 0px 6.400000095367432px 14.399999618530273px 0px #00000021,\n 0px 1.2000000476837158px 3.5999999046325684px 0px #0000001a;\n font-size: inherit;\n display: none;\n}\n\nul.pn-page-nav-dropdown.pn-page-nav-dropdown-open {\n display: block;\n}\n/*---------------------------------------/DROPDOWN-------------------------------------------*/\n","import {\n Component,\n Element,\n Prop,\n h,\n Host,\n Listen,\n State,\n Watch,\n forceUpdate,\n EventEmitter,\n Event,\n} from '@stencil/core';\nimport { uuidv4 } from '@/globals/helpers';\nimport { angle_down, arrow_left, arrow_right } from 'pn-design-assets/pn-assets/icons.js';\n\n/**\n * @deprecated This component will be removed in v8. Please use the `pn-tablist` instead.\n * @see {@link https://portal.postnord.com/web-components/?path=/docs/components-navigation-tablist--docs} Use `pn-tablist` instead.\n *\n * @slot dropdown-item - Place your `pn-page-nav-dropdown-item` components here.\n */\n@Component({\n tag: 'pn-page-nav',\n styleUrl: 'pn-page-nav.scss',\n})\nexport class PnPageNav {\n mo: MutationObserver;\n\n navContainer: HTMLUListElement;\n navWrapper: HTMLElement;\n navItems: HTMLPnPageNavItemElement[] = [];\n\n dropdownButton: HTMLElement;\n dropdownEl: HTMLElement;\n dropdownItems: HTMLPnPageNavItemElement[];\n dropdownEls: HTMLPnPageNavDropdownItemElement[];\n\n eventHandler = this.keyboardEvents.bind(this);\n globalEventHandler = this.globalEvents.bind(this);\n\n activeBg: HTMLDivElement;\n hoverBg: HTMLDivElement;\n\n scrollRegistered: boolean = false;\n\n @Element() hostElement: HTMLElement;\n\n @State() currentSelection: HTMLElement;\n @State() showScrollArrows: boolean = false;\n @State() showLeftArrow: boolean = false;\n @State() showRightArrow: boolean = false;\n @State() dropdownOpen: boolean = false;\n @State() dropdownLinks: Array<string> = [];\n @State() dropdownActive: boolean = false;\n\n /** Currently active menu item value */\n @Prop({ mutable: true }) value: string;\n /** Pass a string which will be the text on the dropdown button. */\n @Prop() dropdown: string | boolean = false;\n /** Set a unique HTML ID. */\n @Prop() navid: string = `pn-page-nav-${uuidv4()}`;\n\n /** Emits the value of the selected item. */\n @Event() navchange: EventEmitter<string>;\n\n @Listen('itemselection')\n changeHandler({ target }) {\n this.currentSelection = target.closest('pn-page-nav-item');\n if (target.value) this.value = target.value;\n\n if (this.dropdownOpen) this.dropdownOpen = false;\n }\n\n @Listen('resize', { target: 'window' })\n handleResize() {\n this.rerender();\n }\n\n @Watch('value')\n valueHandler() {\n if (!this.value) this.currentSelection = null;\n this.calcHighlight(this.currentSelection, this.activeBg);\n\n this.navchange.emit(this.value);\n\n if (!this.dropdownActive) return;\n this.isDropdownItemActive();\n }\n\n @Watch('dropdownOpen')\n dropdownHandler() {\n if (this.dropdownOpen) {\n requestAnimationFrame(() => {\n this.addGlobalEventListeners();\n });\n\n return;\n }\n\n this.removeGlobalEventListeners();\n }\n\n /* ---------------------------------------LIFECYCLE--------------------------------------- */\n componentWillLoad() {\n if (!this.dropdown) return;\n this.dropdownEls = Array.from(this.hostElement.querySelectorAll('pn-page-nav-dropdown-item'));\n if (this.dropdownEls.length) {\n this.dropdownActive = true;\n this.initiateDropdown();\n }\n }\n\n componentDidLoad() {\n if (this.mo) this.mo.disconnect();\n this.mo = new MutationObserver(() => {\n forceUpdate(this.hostElement);\n this.setActiveNavItem();\n this.rerender();\n });\n this.mo.observe(this.hostElement, { childList: true, subtree: true });\n\n this.navWrapper = this.hostElement.querySelector('.pn-page-nav');\n this.navContainer = this.hostElement.querySelector('.pn-page-nav-items');\n this.activeBg = this.hostElement.querySelector('.pn-pn-active');\n this.hoverBg = this.hostElement.querySelector('.pn-pn-hover');\n\n this.hostElement.addEventListener('mouseover', ({ target }) =>\n this.calcHighlight(target as HTMLElement, this.hoverBg),\n );\n\n this.setActiveNavItem();\n this.rerender();\n }\n /* ---------------------------------------/LIFECYCLE--------------------------------------- */\n\n setActiveNavItem() {\n this.navItems = Array.from(this.hostElement.querySelectorAll('pn-page-nav-item'));\n this.navItems.forEach(navItemEl => {\n if (this.value === navItemEl.value) {\n this.currentSelection = navItemEl;\n } else {\n navItemEl.removeAttribute('selected');\n }\n\n navItemEl\n .querySelector('a')\n .addEventListener('focus', ({ target }) => this.calcHighlight(target as HTMLElement, this.hoverBg));\n });\n\n /* -----------------dropdown------------------ */\n if (!this.dropdownActive) return;\n this.dropdownItems = Array.from(this.hostElement.querySelectorAll('.pn-page-nav-dropdown-item'));\n\n //Check active state on each item\n this.isDropdownItemActive();\n\n //Store all values to check if dropdown button should be active\n this.dropdownLinks = this.dropdownItems.map((el, i) => {\n el.setAttribute('data-index', `${i}`);\n return (el.closest('pn-page-nav-dropdown-item') as any).value;\n });\n /* -----------------/dropdown------------------ */\n }\n\n rerender() {\n requestAnimationFrame(() => {\n this.calcHighlight(this.currentSelection, this.activeBg);\n this.scrollArrowRender();\n });\n }\n\n /*---------------------------------------HIGHLIGHT LOGIC-------------------------------------------*/\n calcHighlight(el: HTMLElement, bgEl: HTMLElement) {\n if (!el?.closest('pn-page-nav-item')) {\n bgEl?.classList.add('hidden');\n return;\n }\n\n if (bgEl) bgEl.classList.remove('hidden');\n\n const elRect = el.closest('pn-page-nav-item').getBoundingClientRect();\n const { left: hostLeft } = this.navContainer.getBoundingClientRect();\n const { left: navLeft, height: navHeight, width: navWidth } = elRect;\n\n const offset = navLeft - hostLeft + this.navContainer.scrollLeft;\n\n bgEl.style.setProperty('transform', `translate(${offset}px, -50%`);\n bgEl.style.setProperty('width', `${navWidth}px`);\n bgEl.style.setProperty('height', `${navHeight}px`);\n }\n /*---------------------------------------/HIGHLIGHT LOGIC-------------------------------------------*/\n\n /*---------------------------------------SCROLL ARROW LOGIC-------------------------------------------*/\n scrollArrowRender() {\n if (!this.navWrapper) return;\n if (this.navWrapper.scrollWidth > this.navWrapper.clientWidth) {\n this.showScrollArrows = true;\n\n if (!this.scrollRegistered) {\n this.navWrapper.addEventListener('scroll', this.scrollArrowRender.bind(this));\n this.scrollRegistered = true;\n }\n\n const amountScrolled = Math.round(this.navWrapper.scrollWidth - this.navWrapper.scrollLeft);\n const distanceToEnd = amountScrolled - this.navWrapper.clientWidth;\n const distanceToStart = this.navWrapper.scrollLeft;\n\n this.showLeftArrow = distanceToStart > 0;\n this.showRightArrow = distanceToEnd > 0;\n\n return;\n }\n\n this.showLeftArrow = false;\n this.showRightArrow = false;\n this.showScrollArrows = false;\n }\n\n scroll(val: number) {\n let amount = this.navWrapper.scrollLeft + val;\n\n this.navWrapper.scroll({\n left: amount,\n behavior: 'smooth',\n });\n }\n\n scrollArrowClasses() {\n let classNames = 'pn-pn-arrows ';\n\n if (this.showLeftArrow) classNames += 'pn-pn-left-visible ';\n if (this.showRightArrow) classNames += 'pn-pn-right-visible ';\n\n return classNames;\n }\n /*---------------------------------------/SCROLL ARROW LOGIC-------------------------------------------*/\n\n /* ---------------------------------------DROPDOWN LOGIC--------------------------------------- */\n\n initiateDropdown() {\n requestAnimationFrame(() => {\n this.dropdownButton = this.hostElement.querySelector('.pn-page-nav-dropdown-button');\n this.dropdownEl = this.hostElement.querySelector('.pn-page-nav-dropdown');\n\n this.addDropdownEventListeners();\n });\n }\n\n toggleDropdown() {\n this.dropdownOpen = !this.dropdownOpen;\n }\n\n isDropdownItemActive() {\n this.dropdownEls.forEach(el => {\n if (el.value && this.value === el.value) {\n el.setAttribute('active', 'true');\n return;\n }\n\n el.removeAttribute('active');\n });\n }\n\n /* -----------------events------------------ */\n /* -----------------temporary events------------------ */\n addDropdownEventListeners() {\n this.hostElement.addEventListener('keydown', this.eventHandler);\n this.hostElement.addEventListener('click', this.eventHandler);\n }\n\n addGlobalEventListeners() {\n const root: Document = this.hostElement.getRootNode() as Document;\n\n root.addEventListener('focusin', this.globalEventHandler);\n root.addEventListener('keydown', this.globalEventHandler);\n root.addEventListener('click', this.globalEventHandler);\n }\n\n removeGlobalEventListeners() {\n const root: Document = this.hostElement.getRootNode() as Document;\n\n root.removeEventListener('focusin', this.globalEventHandler);\n root.removeEventListener('keydown', this.globalEventHandler);\n root.removeEventListener('click', this.globalEventHandler);\n }\n /* -----------------/temporary events------------------ */\n\n /* -----------------Open dropdown with keyboard------------------ */\n keyboardEvents(e: KeyboardEvent) {\n const target: Element = e.composedPath()[0] as Element;\n\n // As long as the dropdown is closed, we only want it to react to keyboard input\n // is the user has focus on the button\n if (e.type === 'keydown') {\n if (!this.dropdownOpen && target === this.dropdownButton && ['ArrowUp', 'ArrowDown'].includes(e.code)) {\n this.dropdownOpen = true;\n\n requestAnimationFrame(() => {\n this.focusNextDropdownItem();\n });\n }\n }\n }\n /* -----------------/Open dropdown with keyboard------------------ */\n\n globalEvents(e) {\n const target: Element = e.composedPath()[0] as Element;\n\n if (e.type === 'keydown' && e.code === 'Escape') {\n this.dropdownOpen = false;\n this.dropdownButton.focus();\n }\n\n if (e.code === 'ArrowDown') this.focusNextDropdownItem();\n if (e.code === 'ArrowUp') this.focusPrevDropdownItem();\n\n if ((e.type === 'click' || e.type === 'focusin') && !this.dropdownEl.contains(target)) {\n this.dropdownOpen = false;\n }\n }\n /* -----------------/events------------------ */\n\n /* -----------------focusing------------------ */\n focusNextDropdownItem() {\n const { activeElement }: Document = this.hostElement.getRootNode() as Document;\n\n if (!activeElement.classList.contains('pn-page-nav-dropdown-item')) {\n this.dropdownItems[0].focus();\n return;\n }\n\n // focus next item\n const index = parseInt(activeElement.getAttribute('data-index'));\n\n if (index < this.dropdownItems.length - 1) {\n this.dropdownItems[index + 1].focus();\n }\n }\n\n focusPrevDropdownItem() {\n const { activeElement }: Document = this.hostElement.getRootNode() as Document;\n\n if (!activeElement.classList.contains('dropdown-item')) {\n this.dropdownItems[this.dropdownItems.length - 1].focus();\n }\n\n // focus previous item\n const index = parseInt(activeElement.getAttribute('data-index'));\n\n if (index > 0) {\n this.dropdownItems[index - 1].focus();\n return;\n }\n\n this.dropdownButton.focus();\n }\n /* -----------------/focusing------------------ */\n\n dropdownButtonClasses() {\n let classList = 'pn-page-nav-dropdown-button ';\n if (this.dropdownLinks.includes(this.value)) classList += 'pn-page-nav-dropdown-active ';\n\n return classList;\n }\n\n dropdownClasses() {\n let classList = 'pn-page-nav-dropdown ';\n\n if (this.dropdownOpen) classList += 'pn-page-nav-dropdown-open ';\n\n return classList;\n }\n /* ---------------------------------------/DROPDOWN LOGIC--------------------------------------- */\n\n render() {\n return (\n <Host>\n <div class=\"pn-page-nav-wrapper\">\n <nav class=\"pn-page-nav\">\n {this.dropdownActive && (\n <button\n type=\"button\"\n class={this.dropdownButtonClasses()}\n onClick={() => this.toggleDropdown()}\n aria-controls=\"page-nav-dropdown\"\n aria-expanded={`${this.dropdownOpen}`}\n >\n {this.dropdown}\n <pn-icon icon={angle_down} color=\"white\" small></pn-icon>\n <div class=\"pn-page-nav-divider\"></div>\n </button>\n )}\n\n <ul class=\"pn-page-nav-items\">\n <slot />\n <li class=\"pn-pn-bg pn-pn-active\" role=\"presentation\"></li>\n <li class=\"pn-pn-bg pn-pn-hover\" role=\"presentation\"></li>\n </ul>\n </nav>\n\n {this.showScrollArrows && (\n <div class={this.scrollArrowClasses()}>\n <button class=\"pn-pn-arrow-left\" onClick={() => this.scroll(-120)} tabindex=\"-1\">\n <pn-icon icon={arrow_left} color=\"white\"></pn-icon>\n </button>\n\n <button class=\"pn-pn-arrow-right\" onClick={() => this.scroll(120)} tabindex=\"-1\">\n <pn-icon icon={arrow_right} color=\"blue700\"></pn-icon>\n </button>\n </div>\n )}\n </div>\n\n {this.dropdownActive && (\n <ul id={this.navid} class={this.dropdownClasses()}>\n <slot name=\"dropdown-item\" />\n </ul>\n )}\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"pn-page-nav.entry.js","mappings":"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","names":[],"sources":["src/components/navigation/pn-page-nav/menu/pn-page-nav.scss?tag=pn-page-nav","src/components/navigation/pn-page-nav/menu/pn-page-nav.tsx"],"sourcesContent":["@use 'src/globals/main';\n\npn-page-nav {\n display: block;\n position: relative;\n font-size: clamp(0.8em, 2vw, 1em);\n z-index: 5;\n}\n\n.pn-page-nav-wrapper {\n transform: translateZ(0);\n font-size: inherit;\n max-width: 100%;\n overflow: hidden;\n position: relative;\n display: inline-flex;\n border-radius: 3em;\n}\n\n.pn-page-nav {\n display: flex;\n align-items: center;\n border-radius: 3em;\n min-height: 3em;\n background: main.$blue900;\n border: 0.0625em solid main.$gray200;\n position: relative;\n overflow-x: auto;\n scroll-snap-type: x mandatory;\n\n &::-webkit-scrollbar {\n display: none;\n }\n}\n\n.pn-page-nav ul.pn-page-nav-items {\n display: flex;\n list-style-type: none;\n padding: 0.25em;\n margin: 0;\n position: relative;\n}\n\n.pn-page-nav-items > .pn-pn-bg {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n will-change: transform;\n left: 0;\n border-radius: 3em;\n transition:\n width 0.25s cubic-bezier(0.29, 0.15, 0.24, 0.97),\n transform 0.25s cubic-bezier(0.29, 0.15, 0.24, 0.97),\n background 0.15s,\n opacity 0.15s,\n box-shadow 0.15s;\n\n &.pn-pn-active {\n box-shadow:\n 0px 0.3px 0.9px rgba(0, 0, 0, 0.1),\n 0px 1.6px 3.6px rgba(0, 0, 0, 0.13);\n background: main.$blue700;\n z-index: 1;\n }\n\n &.pn-pn-hover {\n background: main.$white;\n opacity: 0;\n border: 0.0625em solid transparent;\n z-index: 0;\n }\n\n &.hidden {\n opacity: 0;\n }\n}\n\n@media (hover: hover) {\n ul.pn-page-nav-items:focus-within .pn-pn-hover,\n ul.pn-page-nav-items:hover .pn-pn-hover {\n opacity: 0.12;\n }\n}\n\n/*---------------------------------------ARROWS-------------------------------------------*/\npn-page-nav .pn-pn-arrows {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n left: 0;\n height: 100%;\n width: 100%;\n z-index: 3;\n display: flex;\n justify-content: space-between;\n align-items: center;\n pointer-events: none;\n padding: 0.125em 0.1em;\n\n svg {\n width: 1.5em;\n\n &.pn-icon-svg path {\n fill: main.$blue700;\n }\n }\n\n > * {\n transition:\n transform 0.2s,\n opacity 0.2s,\n background 0.1s,\n box-shadow 0.1s;\n pointer-events: all;\n height: 100%;\n aspect-ratio: 1;\n background: main.$white;\n display: flex;\n align-items: center;\n justify-content: center;\n outline: none;\n cursor: pointer;\n opacity: 0;\n will-change: transform;\n -webkit-tap-highlight-color: transparent;\n border-radius: 50%;\n border: 0.0625em solid main.$blue900;\n\n &.pn-pn-arrow-left {\n transform: translateX(-100%);\n }\n\n &.pn-pn-arrow-right {\n transform: translateX(100%);\n }\n\n @media screen and (max-width: 30em) {\n border: none;\n\n pn-icon .pn-icon-svg {\n width: 100%;\n height: 2em;\n animation: arrow 0.6s ease-in-out alternate infinite;\n\n path {\n fill: main.$white;\n }\n }\n\n &.pn-pn-arrow-left {\n background: linear-gradient(to left, transparent, main.$blue900 60%);\n border-radius: 50% 0 0 50%;\n }\n\n &.pn-pn-arrow-right {\n background: linear-gradient(to right, transparent, main.$blue900 40%);\n border-radius: 0 50% 50% 0;\n }\n }\n }\n\n &.pn-pn-left-visible .pn-pn-arrow-left,\n &.pn-pn-right-visible .pn-pn-arrow-right {\n opacity: 1;\n transform: translateX(0);\n }\n}\n\n@keyframes arrow {\n to {\n transform: translateX(10%);\n }\n}\n/*---------------------------------------/ARROWS-------------------------------------------*/\n\n/*---------------------------------------DROPDOWN-------------------------------------------*/\nbutton.pn-page-nav-dropdown-button {\n font-size: 1em;\n border-radius: 3em 0 0 3em;\n background: main.$blue900;\n color: main.$white;\n padding: 0.5em 1em 0.5em 1.5em;\n cursor: pointer;\n display: flex;\n align-items: center;\n border: none;\n transition: background 0.15s;\n outline: none;\n height: 100%;\n position: relative;\n margin: 0 0.5em 0 0;\n font-weight: 500;\n\n pn-icon {\n margin-left: 0.5em;\n }\n\n &:hover,\n &:focus {\n background: #263655;\n }\n\n &:focus {\n box-shadow:\n inset 0 0 0 0.1em main.$blue700,\n inset 0 0 0 0.2em main.$gray200;\n }\n\n &.pn-page-nav-dropdown-active {\n background: main.$blue700;\n\n &:hover,\n &:focus {\n background: main.$blue700;\n }\n }\n}\n\n.pn-page-nav-divider {\n height: 60%;\n background: main.$gray200;\n width: 0.1em;\n position: absolute;\n right: 0;\n transform: translateX(50%);\n}\n\nul.pn-page-nav-dropdown {\n position: absolute;\n left: 0;\n top: 110%;\n background: main.$blue900;\n border-radius: 0.5em;\n margin: 0;\n padding: 0;\n list-style-type: none;\n box-shadow:\n 0px 6.400000095367432px 14.399999618530273px 0px #00000021,\n 0px 1.2000000476837158px 3.5999999046325684px 0px #0000001a;\n font-size: inherit;\n display: none;\n}\n\nul.pn-page-nav-dropdown.pn-page-nav-dropdown-open {\n display: block;\n}\n/*---------------------------------------/DROPDOWN-------------------------------------------*/\n","import {\n Component,\n Element,\n Prop,\n h,\n Host,\n Listen,\n State,\n Watch,\n forceUpdate,\n EventEmitter,\n Event,\n} from '@stencil/core';\nimport { uuidv4 } from '@/globals/helpers';\nimport { chevron_down, arrow_left, arrow_right } from 'pn-design-assets/pn-assets/icons.js';\n\n/**\n * @deprecated This component will be removed in v8. Please use the `pn-tablist` instead.\n * @see {@link https://portal.postnord.com/web-components/?path=/docs/components-navigation-tablist--docs} Use `pn-tablist` instead.\n *\n * @slot dropdown-item - Place your `pn-page-nav-dropdown-item` components here.\n */\n@Component({\n tag: 'pn-page-nav',\n styleUrl: 'pn-page-nav.scss',\n})\nexport class PnPageNav {\n mo: MutationObserver;\n\n navContainer: HTMLUListElement;\n navWrapper: HTMLElement;\n navItems: HTMLPnPageNavItemElement[] = [];\n\n dropdownButton: HTMLElement;\n dropdownEl: HTMLElement;\n dropdownItems: HTMLPnPageNavItemElement[];\n dropdownEls: HTMLPnPageNavDropdownItemElement[];\n\n eventHandler = this.keyboardEvents.bind(this);\n globalEventHandler = this.globalEvents.bind(this);\n\n activeBg: HTMLDivElement;\n hoverBg: HTMLDivElement;\n\n scrollRegistered: boolean = false;\n\n @Element() hostElement: HTMLElement;\n\n @State() currentSelection: HTMLElement;\n @State() showScrollArrows: boolean = false;\n @State() showLeftArrow: boolean = false;\n @State() showRightArrow: boolean = false;\n @State() dropdownOpen: boolean = false;\n @State() dropdownLinks: Array<string> = [];\n @State() dropdownActive: boolean = false;\n\n /** Currently active menu item value */\n @Prop({ mutable: true }) value: string;\n /** Pass a string which will be the text on the dropdown button. */\n @Prop() dropdown: string | boolean = false;\n /** Set a unique HTML ID. */\n @Prop() navid: string = `pn-page-nav-${uuidv4()}`;\n\n /** Emits the value of the selected item. */\n @Event() navchange: EventEmitter<string>;\n\n @Listen('itemselection')\n changeHandler({ target }) {\n this.currentSelection = target.closest('pn-page-nav-item');\n if (target.value) this.value = target.value;\n\n if (this.dropdownOpen) this.dropdownOpen = false;\n }\n\n @Listen('resize', { target: 'window' })\n handleResize() {\n this.rerender();\n }\n\n @Watch('value')\n valueHandler() {\n if (!this.value) this.currentSelection = null;\n this.calcHighlight(this.currentSelection, this.activeBg);\n\n this.navchange.emit(this.value);\n\n if (!this.dropdownActive) return;\n this.isDropdownItemActive();\n }\n\n @Watch('dropdownOpen')\n dropdownHandler() {\n if (this.dropdownOpen) {\n requestAnimationFrame(() => {\n this.addGlobalEventListeners();\n });\n\n return;\n }\n\n this.removeGlobalEventListeners();\n }\n\n /* ---------------------------------------LIFECYCLE--------------------------------------- */\n componentWillLoad() {\n if (!this.dropdown) return;\n this.dropdownEls = Array.from(this.hostElement.querySelectorAll('pn-page-nav-dropdown-item'));\n if (this.dropdownEls.length) {\n this.dropdownActive = true;\n this.initiateDropdown();\n }\n }\n\n componentDidLoad() {\n if (this.mo) this.mo.disconnect();\n this.mo = new MutationObserver(() => {\n forceUpdate(this.hostElement);\n this.setActiveNavItem();\n this.rerender();\n });\n this.mo.observe(this.hostElement, { childList: true, subtree: true });\n\n this.navWrapper = this.hostElement.querySelector('.pn-page-nav');\n this.navContainer = this.hostElement.querySelector('.pn-page-nav-items');\n this.activeBg = this.hostElement.querySelector('.pn-pn-active');\n this.hoverBg = this.hostElement.querySelector('.pn-pn-hover');\n\n this.hostElement.addEventListener('mouseover', ({ target }) =>\n this.calcHighlight(target as HTMLElement, this.hoverBg),\n );\n\n this.setActiveNavItem();\n this.rerender();\n }\n /* ---------------------------------------/LIFECYCLE--------------------------------------- */\n\n setActiveNavItem() {\n this.navItems = Array.from(this.hostElement.querySelectorAll('pn-page-nav-item'));\n this.navItems.forEach(navItemEl => {\n if (this.value === navItemEl.value) {\n this.currentSelection = navItemEl;\n } else {\n navItemEl.removeAttribute('selected');\n }\n\n navItemEl\n .querySelector('a')\n .addEventListener('focus', ({ target }) => this.calcHighlight(target as HTMLElement, this.hoverBg));\n });\n\n /* -----------------dropdown------------------ */\n if (!this.dropdownActive) return;\n this.dropdownItems = Array.from(this.hostElement.querySelectorAll('.pn-page-nav-dropdown-item'));\n\n //Check active state on each item\n this.isDropdownItemActive();\n\n //Store all values to check if dropdown button should be active\n this.dropdownLinks = this.dropdownItems.map((el, i) => {\n el.setAttribute('data-index', `${i}`);\n return (el.closest('pn-page-nav-dropdown-item') as any).value;\n });\n /* -----------------/dropdown------------------ */\n }\n\n rerender() {\n requestAnimationFrame(() => {\n this.calcHighlight(this.currentSelection, this.activeBg);\n this.scrollArrowRender();\n });\n }\n\n /*---------------------------------------HIGHLIGHT LOGIC-------------------------------------------*/\n calcHighlight(el: HTMLElement, bgEl: HTMLElement) {\n if (!el?.closest('pn-page-nav-item')) {\n bgEl?.classList.add('hidden');\n return;\n }\n\n if (bgEl) bgEl.classList.remove('hidden');\n\n const elRect = el.closest('pn-page-nav-item').getBoundingClientRect();\n const { left: hostLeft } = this.navContainer.getBoundingClientRect();\n const { left: navLeft, height: navHeight, width: navWidth } = elRect;\n\n const offset = navLeft - hostLeft + this.navContainer.scrollLeft;\n\n bgEl.style.setProperty('transform', `translate(${offset}px, -50%`);\n bgEl.style.setProperty('width', `${navWidth}px`);\n bgEl.style.setProperty('height', `${navHeight}px`);\n }\n /*---------------------------------------/HIGHLIGHT LOGIC-------------------------------------------*/\n\n /*---------------------------------------SCROLL ARROW LOGIC-------------------------------------------*/\n scrollArrowRender() {\n if (!this.navWrapper) return;\n if (this.navWrapper.scrollWidth > this.navWrapper.clientWidth) {\n this.showScrollArrows = true;\n\n if (!this.scrollRegistered) {\n this.navWrapper.addEventListener('scroll', this.scrollArrowRender.bind(this));\n this.scrollRegistered = true;\n }\n\n const amountScrolled = Math.round(this.navWrapper.scrollWidth - this.navWrapper.scrollLeft);\n const distanceToEnd = amountScrolled - this.navWrapper.clientWidth;\n const distanceToStart = this.navWrapper.scrollLeft;\n\n this.showLeftArrow = distanceToStart > 0;\n this.showRightArrow = distanceToEnd > 0;\n\n return;\n }\n\n this.showLeftArrow = false;\n this.showRightArrow = false;\n this.showScrollArrows = false;\n }\n\n scroll(val: number) {\n let amount = this.navWrapper.scrollLeft + val;\n\n this.navWrapper.scroll({\n left: amount,\n behavior: 'smooth',\n });\n }\n\n scrollArrowClasses() {\n let classNames = 'pn-pn-arrows ';\n\n if (this.showLeftArrow) classNames += 'pn-pn-left-visible ';\n if (this.showRightArrow) classNames += 'pn-pn-right-visible ';\n\n return classNames;\n }\n /*---------------------------------------/SCROLL ARROW LOGIC-------------------------------------------*/\n\n /* ---------------------------------------DROPDOWN LOGIC--------------------------------------- */\n\n initiateDropdown() {\n requestAnimationFrame(() => {\n this.dropdownButton = this.hostElement.querySelector('.pn-page-nav-dropdown-button');\n this.dropdownEl = this.hostElement.querySelector('.pn-page-nav-dropdown');\n\n this.addDropdownEventListeners();\n });\n }\n\n toggleDropdown() {\n this.dropdownOpen = !this.dropdownOpen;\n }\n\n isDropdownItemActive() {\n this.dropdownEls.forEach(el => {\n if (el.value && this.value === el.value) {\n el.setAttribute('active', 'true');\n return;\n }\n\n el.removeAttribute('active');\n });\n }\n\n /* -----------------events------------------ */\n /* -----------------temporary events------------------ */\n addDropdownEventListeners() {\n this.hostElement.addEventListener('keydown', this.eventHandler);\n this.hostElement.addEventListener('click', this.eventHandler);\n }\n\n addGlobalEventListeners() {\n const root: Document = this.hostElement.getRootNode() as Document;\n\n root.addEventListener('focusin', this.globalEventHandler);\n root.addEventListener('keydown', this.globalEventHandler);\n root.addEventListener('click', this.globalEventHandler);\n }\n\n removeGlobalEventListeners() {\n const root: Document = this.hostElement.getRootNode() as Document;\n\n root.removeEventListener('focusin', this.globalEventHandler);\n root.removeEventListener('keydown', this.globalEventHandler);\n root.removeEventListener('click', this.globalEventHandler);\n }\n /* -----------------/temporary events------------------ */\n\n /* -----------------Open dropdown with keyboard------------------ */\n keyboardEvents(e: KeyboardEvent) {\n const target: Element = e.composedPath()[0] as Element;\n\n // As long as the dropdown is closed, we only want it to react to keyboard input\n // is the user has focus on the button\n if (e.type === 'keydown') {\n if (!this.dropdownOpen && target === this.dropdownButton && ['ArrowUp', 'ArrowDown'].includes(e.code)) {\n this.dropdownOpen = true;\n\n requestAnimationFrame(() => {\n this.focusNextDropdownItem();\n });\n }\n }\n }\n /* -----------------/Open dropdown with keyboard------------------ */\n\n globalEvents(e) {\n const target: Element = e.composedPath()[0] as Element;\n\n if (e.type === 'keydown' && e.code === 'Escape') {\n this.dropdownOpen = false;\n this.dropdownButton.focus();\n }\n\n if (e.code === 'ArrowDown') this.focusNextDropdownItem();\n if (e.code === 'ArrowUp') this.focusPrevDropdownItem();\n\n if ((e.type === 'click' || e.type === 'focusin') && !this.dropdownEl.contains(target)) {\n this.dropdownOpen = false;\n }\n }\n /* -----------------/events------------------ */\n\n /* -----------------focusing------------------ */\n focusNextDropdownItem() {\n const { activeElement }: Document = this.hostElement.getRootNode() as Document;\n\n if (!activeElement.classList.contains('pn-page-nav-dropdown-item')) {\n this.dropdownItems[0].focus();\n return;\n }\n\n // focus next item\n const index = parseInt(activeElement.getAttribute('data-index'));\n\n if (index < this.dropdownItems.length - 1) {\n this.dropdownItems[index + 1].focus();\n }\n }\n\n focusPrevDropdownItem() {\n const { activeElement }: Document = this.hostElement.getRootNode() as Document;\n\n if (!activeElement.classList.contains('dropdown-item')) {\n this.dropdownItems[this.dropdownItems.length - 1].focus();\n }\n\n // focus previous item\n const index = parseInt(activeElement.getAttribute('data-index'));\n\n if (index > 0) {\n this.dropdownItems[index - 1].focus();\n return;\n }\n\n this.dropdownButton.focus();\n }\n /* -----------------/focusing------------------ */\n\n dropdownButtonClasses() {\n let classList = 'pn-page-nav-dropdown-button ';\n if (this.dropdownLinks.includes(this.value)) classList += 'pn-page-nav-dropdown-active ';\n\n return classList;\n }\n\n dropdownClasses() {\n let classList = 'pn-page-nav-dropdown ';\n\n if (this.dropdownOpen) classList += 'pn-page-nav-dropdown-open ';\n\n return classList;\n }\n /* ---------------------------------------/DROPDOWN LOGIC--------------------------------------- */\n\n render() {\n return (\n <Host>\n <div class=\"pn-page-nav-wrapper\">\n <nav class=\"pn-page-nav\">\n {this.dropdownActive && (\n <button\n type=\"button\"\n class={this.dropdownButtonClasses()}\n onClick={() => this.toggleDropdown()}\n aria-controls=\"page-nav-dropdown\"\n aria-expanded={`${this.dropdownOpen}`}\n >\n {this.dropdown}\n <pn-icon icon={chevron_down} color=\"white\" small></pn-icon>\n <div class=\"pn-page-nav-divider\"></div>\n </button>\n )}\n\n <ul class=\"pn-page-nav-items\">\n <slot />\n <li class=\"pn-pn-bg pn-pn-active\" role=\"presentation\"></li>\n <li class=\"pn-pn-bg pn-pn-hover\" role=\"presentation\"></li>\n </ul>\n </nav>\n\n {this.showScrollArrows && (\n <div class={this.scrollArrowClasses()}>\n <button class=\"pn-pn-arrow-left\" onClick={() => this.scroll(-120)} tabindex=\"-1\">\n <pn-icon icon={arrow_left} color=\"white\"></pn-icon>\n </button>\n\n <button class=\"pn-pn-arrow-right\" onClick={() => this.scroll(120)} tabindex=\"-1\">\n <pn-icon icon={arrow_right} color=\"blue700\"></pn-icon>\n </button>\n </div>\n )}\n </div>\n\n {this.dropdownActive && (\n <ul id={this.navid} class={this.dropdownClasses()}>\n <slot name=\"dropdown-item\" />\n </ul>\n )}\n </Host>\n );\n }\n}\n"],"version":3}
@@ -197,7 +197,7 @@ const PnPagination = class {
197
197
  return (h("pn-button", { arialabel: label, ariacurrent: current ? 'page' : null, href: this.getUrl(page), rel: current ? null : rel, appearance: "light", small: true, icon: icon, iconOnly: true, onPnClick: ({ detail }) => this.navigate({ page, event: detail }) }));
198
198
  }
199
199
  render() {
200
- return (h(Host, { key: 'd1cd7756a1bf0a5e5d4d59e8a5c8c6f759cee285' }, h("nav", { key: 'f7c4d02b8a1f147f849bf7c8b3093098745933c1', id: this.paginationId, class: "pn-pagination", "aria-label": this.label || this.translate('PAGINATION') }, this.useRowList() && (h("pn-select", { key: '1297805c338445d019524d2a51e11e786529d899', class: "pn-pagination-rows", label: this.rowsLabel || this.translate('ROWS_PAGE'), onChange: event => this.setRows(event) }, this.getRowList().map(item => (h("option", { value: item, selected: this.rows === Number(item), innerHTML: `${item}` }))))), h("div", { key: 'fdb8a131a50ed56deca325db959042a32f8d335b', class: "pn-pagination-container", "data-right": this.useRowList() }, this.renderJumpButton(), this.renderButton({ page: 1, dataAttr: 'first' }), this.renderDivider(), h("ol", { key: '6bb693d0b87cc6d95368525288dc1eaa2eef67fa', class: "pn-pagination-list", ref: el => (this.listElement = el) }, this.getPagination().map(item => this.renderItem(item))), this.renderDivider(true), this.renderButton({ page: this.pages, dataAttr: 'last' }), this.renderJumpButton(true)))));
200
+ return (h(Host, { key: '1f33db59423d42f0e7803588c1792eab786b8de7' }, h("nav", { key: '540f96e45b8d9f57ee74fa64873c4386ec5c5886', id: this.paginationId, class: "pn-pagination", "aria-label": this.label || this.translate('PAGINATION') }, this.useRowList() && (h("pn-select", { key: '4819db7a03b6ce337210679a72d0e33b684015e3', class: "pn-pagination-rows", label: this.rowsLabel || this.translate('ROWS_PAGE'), onChange: event => this.setRows(event) }, this.getRowList().map(item => (h("option", { value: item, selected: this.rows === Number(item), innerHTML: `${item}` }))))), h("div", { key: '653ae1faeda706b1f58b10597f392f582e758e52', class: "pn-pagination-container", "data-right": this.useRowList() }, this.renderJumpButton(), this.renderButton({ page: 1, dataAttr: 'first' }), this.renderDivider(), h("ol", { key: 'df640b8caf32ae986dbd0523b1a782df4910026f', class: "pn-pagination-list", ref: el => (this.listElement = el) }, this.getPagination().map(item => this.renderItem(item))), this.renderDivider(true), this.renderButton({ page: this.pages, dataAttr: 'last' }), this.renderJumpButton(true)))));
201
201
  }
202
202
  static get watchers() { return {
203
203
  "page": ["handlePage"],