@oslokommune/punkt-elements 16.7.3 → 16.7.4

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 (248) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/accordion-BB1JrONI.cjs +34 -0
  3. package/dist/accordion-nNH87Y60.js +130 -0
  4. package/dist/alert-BEEnTiCb.cjs +33 -0
  5. package/dist/alert-ePJuDtmm.js +171 -0
  6. package/dist/async-directive-B9P1Qa0k.cjs +1 -0
  7. package/dist/async-directive-CaQiqjyV.js +55 -0
  8. package/dist/backlink-Ba03LlbB.cjs +13 -0
  9. package/dist/backlink-CiwXrQYD.js +38 -0
  10. package/dist/booleanish-BmcOU-43.js +11 -0
  11. package/dist/booleanish-jJLlnr6-.cjs +1 -0
  12. package/dist/breadcrumbs-CD1zib3s.cjs +43 -0
  13. package/dist/breadcrumbs-CpuVqWhF.js +76 -0
  14. package/dist/button-BIpd1xJh.js +95 -0
  15. package/dist/button-D-TOBaJB.cjs +27 -0
  16. package/dist/calendar-BzEtOJla.js +2031 -0
  17. package/dist/calendar-E5jJLt8D.cjs +90 -0
  18. package/dist/card-BYJu1MYm.js +339 -0
  19. package/dist/card-CUFhMVim.cjs +87 -0
  20. package/dist/checkbox-BARDb9iV.cjs +31 -0
  21. package/dist/checkbox-Cspxcvt_.js +111 -0
  22. package/dist/class-map-C8HuhNzZ.js +27 -0
  23. package/dist/class-map-CJ-msbHs.cjs +1 -0
  24. package/dist/classutils-DEL164Ur.js +7 -0
  25. package/dist/classutils-z8YsPlOf.cjs +1 -0
  26. package/dist/combobox-BcdLZRDU.js +984 -0
  27. package/dist/combobox-CGbFTWq_.cjs +135 -0
  28. package/dist/consent-DeB_5sWH.js +197 -0
  29. package/dist/consent-hwu7pp3S.cjs +11 -0
  30. package/dist/datepicker-DpmlsnH_.cjs +273 -0
  31. package/dist/datepicker-OVd8pmnZ.js +1125 -0
  32. package/dist/dialog-polyfill.esm-1hPr0gl9.js +280 -0
  33. package/dist/dialog-polyfill.esm-D3Oinvk0.cjs +1 -0
  34. package/dist/directive-3THFsVew.js +28 -0
  35. package/dist/directive-CJ2giQBZ.cjs +1 -0
  36. package/dist/directive-helpers-D1QSxY17.cjs +1 -0
  37. package/dist/directive-helpers-Dkv2gKgs.js +25 -0
  38. package/dist/element-DjtxO-1r.cjs +2 -0
  39. package/dist/element-cZ85T_aa.js +693 -0
  40. package/dist/element-with-slot-4J2o3SeU.js +166 -0
  41. package/dist/element-with-slot-CWoTGA1B.cjs +1 -0
  42. package/dist/header-DWgPgGfS.cjs +304 -0
  43. package/dist/header-a6ztVNp3.js +782 -0
  44. package/dist/heading-BgSWIRii.cjs +1 -0
  45. package/dist/heading-DiQLPxdf.js +73 -0
  46. package/dist/helptext-CCBKKLus.js +65 -0
  47. package/dist/helptext-D-3QfZv5.cjs +24 -0
  48. package/dist/icon-Co72KtgF.js +86 -0
  49. package/dist/icon-Dr8sfT2X.cjs +1 -0
  50. package/dist/if-defined-Cjj8qN-Z.js +5 -0
  51. package/dist/if-defined-XKOD_t_V.cjs +1 -0
  52. package/dist/index.d.ts +1 -2
  53. package/dist/input-element-B1yxcfz4.cjs +1 -0
  54. package/dist/input-element-Bw1s6NlF.js +643 -0
  55. package/dist/input-wrapper-BRuVELpK.cjs +54 -0
  56. package/dist/input-wrapper-CDyHTR1V.js +164 -0
  57. package/dist/input-wrapper-Dwd-_sKm.cjs +1 -0
  58. package/dist/input-wrapper-YfTmpSSY.js +117 -0
  59. package/dist/link-CKAFMz9j.js +89 -0
  60. package/dist/link-CyTCpI0k.cjs +7 -0
  61. package/dist/linkcard-B0KOGaGj.js +55 -0
  62. package/dist/linkcard-BE4-FewK.cjs +13 -0
  63. package/dist/listbox-DCA2JoPV.cjs +106 -0
  64. package/dist/listbox-DuBgTFvH.js +397 -0
  65. package/dist/loader-6kFZUErT.js +66 -0
  66. package/dist/loader-CX2rsC01.cjs +16 -0
  67. package/dist/messagebox-Cwlg5sOr.js +110 -0
  68. package/dist/messagebox-Din9X53b.cjs +13 -0
  69. package/dist/modal-C_wtsh9m.js +209 -0
  70. package/dist/modal-DS_wUOIv.cjs +36 -0
  71. package/dist/pkt-accordion.cjs +1 -1
  72. package/dist/pkt-accordion.js +2 -7
  73. package/dist/pkt-alert.cjs +1 -1
  74. package/dist/pkt-alert.js +2 -5
  75. package/dist/pkt-backlink.cjs +1 -1
  76. package/dist/pkt-backlink.js +2 -5
  77. package/dist/pkt-breadcrumbs.cjs +1 -43
  78. package/dist/pkt-breadcrumbs.js +2 -81
  79. package/dist/pkt-button.cjs +1 -1
  80. package/dist/pkt-button.js +2 -5
  81. package/dist/pkt-calendar.cjs +1 -1
  82. package/dist/pkt-calendar.js +2 -5
  83. package/dist/pkt-card.cjs +1 -1
  84. package/dist/pkt-card.js +2 -5
  85. package/dist/pkt-checkbox.cjs +1 -1
  86. package/dist/pkt-checkbox.js +2 -5
  87. package/dist/pkt-combobox.cjs +1 -1
  88. package/dist/pkt-combobox.js +2 -5
  89. package/dist/pkt-consent.cjs +1 -1
  90. package/dist/pkt-consent.js +2 -5
  91. package/dist/pkt-datepicker.cjs +1 -1
  92. package/dist/pkt-datepicker.js +5 -9
  93. package/dist/pkt-header.cjs +1 -304
  94. package/dist/pkt-header.js +2 -861
  95. package/dist/pkt-heading.cjs +1 -1
  96. package/dist/pkt-heading.js +2 -5
  97. package/dist/pkt-helptext.cjs +1 -1
  98. package/dist/pkt-helptext.js +2 -5
  99. package/dist/pkt-icon.cjs +1 -1
  100. package/dist/pkt-icon.js +2 -5
  101. package/dist/pkt-index.cjs +1 -1
  102. package/dist/pkt-index.js +30 -66
  103. package/dist/pkt-input-wrapper.cjs +1 -1
  104. package/dist/pkt-input-wrapper.js +2 -5
  105. package/dist/pkt-link.cjs +1 -1
  106. package/dist/pkt-link.js +2 -5
  107. package/dist/pkt-linkcard.cjs +1 -1
  108. package/dist/pkt-linkcard.js +2 -5
  109. package/dist/pkt-listbox.cjs +1 -1
  110. package/dist/pkt-listbox.js +2 -5
  111. package/dist/pkt-loader.cjs +1 -1
  112. package/dist/pkt-loader.js +2 -5
  113. package/dist/pkt-messagebox.cjs +1 -1
  114. package/dist/pkt-messagebox.js +2 -5
  115. package/dist/pkt-modal.cjs +1 -1
  116. package/dist/pkt-modal.js +2 -5
  117. package/dist/pkt-options-controller-CRrI6WMk.js +43 -0
  118. package/dist/pkt-options-controller-CXUGx134.cjs +1 -0
  119. package/dist/pkt-progressbar.cjs +1 -1
  120. package/dist/pkt-progressbar.js +2 -5
  121. package/dist/pkt-radiobutton.cjs +1 -1
  122. package/dist/pkt-radiobutton.js +2 -5
  123. package/dist/pkt-select.cjs +1 -1
  124. package/dist/pkt-select.js +2 -5
  125. package/dist/pkt-tabs.cjs +1 -1
  126. package/dist/pkt-tabs.js +2 -7
  127. package/dist/pkt-tag.cjs +1 -1
  128. package/dist/pkt-tag.js +2 -5
  129. package/dist/pkt-textarea.cjs +1 -1
  130. package/dist/pkt-textarea.js +2 -5
  131. package/dist/pkt-textinput.cjs +1 -1
  132. package/dist/pkt-textinput.js +2 -5
  133. package/dist/pkt-timepicker.cjs +1 -191
  134. package/dist/pkt-timepicker.js +2 -560
  135. package/dist/progressbar-CdXtmOBb.cjs +17 -0
  136. package/dist/progressbar-Dy9AiYQz.js +113 -0
  137. package/dist/radiobutton-GOnpUbCW.cjs +31 -0
  138. package/dist/radiobutton-V_KPbup_.js +84 -0
  139. package/dist/ref-BaJ0mBT_.cjs +1 -0
  140. package/dist/ref-RS8Uv6uC.js +30 -0
  141. package/dist/repeat-Cepr3469.js +57 -0
  142. package/dist/repeat-CqcDYBxr.cjs +1 -0
  143. package/dist/select-BSAFd8Wa.js +164 -0
  144. package/dist/select-C2i8sOk5.cjs +49 -0
  145. package/dist/tabs-D8nL9rWx.cjs +37 -0
  146. package/dist/tabs-Y7utmJi9.js +318 -0
  147. package/dist/tag-DLthw5b4.cjs +27 -0
  148. package/dist/tag-VwykmuQR.js +179 -0
  149. package/dist/textarea-D7aGOyDf.cjs +46 -0
  150. package/dist/textarea-DYOBhJrN.js +115 -0
  151. package/dist/textinput-BUgntXnM.js +124 -0
  152. package/dist/textinput-DFh8_9cx.cjs +70 -0
  153. package/dist/timepicker-BIfE7KKJ.cjs +191 -0
  154. package/dist/timepicker-DaSwn1FA.js +503 -0
  155. package/dist/utils-CUqCKGvp.js +7 -0
  156. package/dist/utils-CjAbIttF.cjs +1 -0
  157. package/package.json +6 -6
  158. package/src/components/alert/alert.test.ts +1 -1
  159. package/src/components/alert/alert.ts +6 -6
  160. package/src/components/datepicker/datepicker-utils.test.ts +16 -23
  161. package/dist/accordionitem-_9AiCIvd.cjs +0 -34
  162. package/dist/accordionitem-dCfSrxh5.js +0 -140
  163. package/dist/alert-BtOk8yRH.cjs +0 -33
  164. package/dist/alert-DlY2_grU.js +0 -117
  165. package/dist/async-directive-CMzWMlZ5.js +0 -65
  166. package/dist/async-directive-DoMuclel.cjs +0 -5
  167. package/dist/backlink-Ce5Vldop.js +0 -49
  168. package/dist/backlink-y3dwjKPC.cjs +0 -13
  169. package/dist/booleanish-BKVonob4.cjs +0 -1
  170. package/dist/booleanish-C9R0tdXH.js +0 -11
  171. package/dist/button-B_TXwNzt.cjs +0 -27
  172. package/dist/button-BiY-wlKF.js +0 -139
  173. package/dist/calendar-B2pji2zn.cjs +0 -90
  174. package/dist/calendar-DhjQDC4C.js +0 -2140
  175. package/dist/card-BwMNB5Bb.cjs +0 -87
  176. package/dist/card-CGlmcMSR.js +0 -233
  177. package/dist/checkbox-BsJZYA26.js +0 -147
  178. package/dist/checkbox-CTY8f_qn.cjs +0 -31
  179. package/dist/class-map-CEnykyO_.js +0 -34
  180. package/dist/class-map-CsENJXf1.cjs +0 -5
  181. package/dist/classutils-BwNK82ZQ.cjs +0 -1
  182. package/dist/classutils-RQs1k6D9.js +0 -7
  183. package/dist/combobox-DSB5WOxg.js +0 -815
  184. package/dist/combobox-DbICIgKG.cjs +0 -135
  185. package/dist/consent-DkOQpbsg.cjs +0 -11
  186. package/dist/consent-SNWV_mMU.js +0 -175
  187. package/dist/datepicker-BEWl9iz3.cjs +0 -273
  188. package/dist/datepicker-euHyzXnb.js +0 -1170
  189. package/dist/dialog-polyfill.esm-CPKZe7AL.cjs +0 -1
  190. package/dist/dialog-polyfill.esm-CbjBMXAG.js +0 -395
  191. package/dist/directive-C7oCP5Bh.cjs +0 -5
  192. package/dist/directive-helpers-BP2WOx60.cjs +0 -5
  193. package/dist/directive-helpers-rm-28gIj.js +0 -38
  194. package/dist/directive-oAbCiebi.js +0 -27
  195. package/dist/element-CPpT3rFQ.js +0 -638
  196. package/dist/element-gR_VtSiD.cjs +0 -27
  197. package/dist/element-with-slot-Dqk6-TRR.js +0 -240
  198. package/dist/element-with-slot-ZX-up7jO.cjs +0 -1
  199. package/dist/heading-D2tVS6lS.js +0 -103
  200. package/dist/heading-DrzbgDb6.cjs +0 -1
  201. package/dist/helptext-BKtU4mas.js +0 -82
  202. package/dist/helptext-DcRC7wW2.cjs +0 -24
  203. package/dist/icon-CxQcIa5F.js +0 -105
  204. package/dist/icon-q81vqPK_.cjs +0 -9
  205. package/dist/if-defined-B0krMLad.js +0 -10
  206. package/dist/if-defined-BOW3ODSj.cjs +0 -5
  207. package/dist/input-element-8nLwuQS4.js +0 -837
  208. package/dist/input-element-DdVhUvva.cjs +0 -1
  209. package/dist/input-wrapper-Bs4CRNst.js +0 -181
  210. package/dist/input-wrapper-Bv9aqqVq.cjs +0 -54
  211. package/dist/input-wrapper-CDgenrYA.js +0 -6
  212. package/dist/input-wrapper-EoSAbU-U.cjs +0 -1
  213. package/dist/link-C0rl-86s.cjs +0 -7
  214. package/dist/link-Cdqgl60z.js +0 -55
  215. package/dist/linkcard-Dimu7Rlx.cjs +0 -13
  216. package/dist/linkcard-Lbq_UhjZ.js +0 -56
  217. package/dist/listbox-Bia4_tvN.js +0 -440
  218. package/dist/listbox-La2GZQei.cjs +0 -106
  219. package/dist/loader-D1ugDXGV.cjs +0 -16
  220. package/dist/loader-DyN6RGC5.js +0 -95
  221. package/dist/messagebox-BGMVm2t9.js +0 -71
  222. package/dist/messagebox-M0yIgCz9.cjs +0 -13
  223. package/dist/modal-CMO1RtIi.cjs +0 -36
  224. package/dist/modal-DjPQDE-Z.js +0 -156
  225. package/dist/pkt-options-controller-5LXbEzuk.cjs +0 -1
  226. package/dist/pkt-options-controller-B5YalfCb.js +0 -39
  227. package/dist/progressbar-BqlMzkM_.cjs +0 -21
  228. package/dist/progressbar-sbHDFC12.js +0 -162
  229. package/dist/radiobutton-5ZqVVtTT.cjs +0 -31
  230. package/dist/radiobutton-D8Ai8ETa.js +0 -113
  231. package/dist/ref-Bg_Swj5w.js +0 -42
  232. package/dist/ref-CL-Xk9Xm.cjs +0 -5
  233. package/dist/repeat-BD8TKgJb.js +0 -61
  234. package/dist/repeat-Cfq8CDlf.cjs +0 -5
  235. package/dist/select-De-n8on9.js +0 -230
  236. package/dist/select-dTWibR6_.cjs +0 -49
  237. package/dist/state-C_1EOo3D.js +0 -12
  238. package/dist/state-Dg-53wQ8.cjs +0 -5
  239. package/dist/tabitem-B9-jeV97.js +0 -334
  240. package/dist/tabitem-BnhzqfW3.cjs +0 -65
  241. package/dist/tag-CbwO8yvD.cjs +0 -27
  242. package/dist/tag-D4FI5t3y.js +0 -117
  243. package/dist/textarea-BmLaKzsc.cjs +0 -50
  244. package/dist/textarea-CMiSJaYL.js +0 -133
  245. package/dist/textinput-em9y4yrL.cjs +0 -70
  246. package/dist/textinput-r8udK0IX.js +0 -152
  247. package/dist/utils-DznhwRXm.js +0 -8
  248. package/dist/utils-byXsEz1u.cjs +0 -1
@@ -1,304 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("./element-with-slot-ZX-up7jO.cjs"),t=require("./element-gR_VtSiD.cjs"),f=require("./if-defined-BOW3ODSj.cjs"),p=require("./booleanish-BKVonob4.cjs"),g=require("./state-Dg-53wQ8.cjs"),b=require("./class-map-CsENJXf1.cjs"),u=require("./ref-CL-Xk9Xm.cjs");require("./button-B_TXwNzt.cjs");require("./icon-q81vqPK_.cjs");require("./link-C0rl-86s.cjs");require("./textinput-em9y4yrL.cjs");const $=r=>typeof r.target=="string"?{title:r.title,iconName:r.iconName,href:r.target}:{title:r.title,iconName:r.iconName,onClick:r.target},M=r=>$(r),y=r=>{if(!r)return;const e=typeof r=="string"?new Date(r):r;if(!isNaN(e.getTime()))return e.toLocaleDateString("nb-NO",{day:"numeric",month:"long",year:"numeric",hour:"2-digit",minute:"2-digit"})};var _=Object.defineProperty,v=(r,e,n,s)=>{for(var o=void 0,c=r.length-1,d;c>=0;c--)(d=r[c])&&(o=d(e,n,o)||o);return o&&_(e,n,o),o};class k extends t.PktElement{constructor(){super(...arguments),this.canChangeRepresentation=!1,this.logoutOnClick=!1}handleChangeRepresentation(){this.dispatchEvent(new CustomEvent("change-representation",{bubbles:!0,composed:!0}))}handleLogout(){this.dispatchEvent(new CustomEvent("log-out",{bubbles:!0,composed:!0}))}handleMenuItemClick(e){"onClick"in e&&typeof e.onClick=="function"&&e.onClick()}renderLinkOrButton(e,n){const s="href"in e,o=b.e({"pkt-user-menu__link":!0,"pkt-link-button":!s,"pkt-link":!s,"pkt-link--icon-left":!s,[n||""]:!!n});return s?t.b`
2
- <pkt-link
3
- icon-name=${e.iconName||t.A}
4
- href=${e.href}
5
- aria-hidden="true"
6
- class="pkt-user-menu__link ${n||""}"
7
- >
8
- ${e.title}
9
- </pkt-link>
10
- `:t.b`
11
- <button class=${o} type="button" @click=${()=>this.handleMenuItemClick(e)}>
12
- ${e.iconName?t.b`<pkt-icon
13
- name=${e.iconName}
14
- class="pkt-link__icon"
15
- aria-hidden="true"
16
- ></pkt-icon>`:t.A}
17
- ${e.title}
18
- </button>
19
- `}renderLinkSection(e){return t.b`
20
- <ul class="pkt-user-menu__sublist">
21
- ${e.map(n=>t.b`
22
- <li class="pkt-user-menu__subitem">${this.renderLinkOrButton(n)}</li>
23
- `)}
24
- </ul>
25
- `}render(){var n;const e=(n=this.userMenu)==null?void 0:n.map(M);return t.b`
26
- <nav class="pkt-user-menu" aria-label="Meny for innlogget bruker">
27
- <ul class="pkt-user-menu__list">
28
- <!-- User section -->
29
- ${this.user?t.b`
30
- <li class="pkt-user-menu__item">
31
- <div class="pkt-user-menu__label">Pålogget som</div>
32
- <div class="pkt-user-menu__name" translate="no">${this.user.name}</div>
33
- ${this.formattedLastLoggedIn?t.b`
34
- <div class="pkt-user-menu__last-logged-in">
35
- Sist pålogget: <time>${this.formattedLastLoggedIn}</time>
36
- </div>
37
- `:t.A}
38
- </li>
39
- `:t.A}
40
-
41
- <!-- User menu items -->
42
- ${e&&e.length>0?t.b`
43
- <li class="pkt-user-menu__item">${this.renderLinkSection(e)}</li>
44
- `:t.A}
45
-
46
- <!-- Representing section -->
47
- ${this.representing?t.b`
48
- <li class="pkt-user-menu__item">
49
- <div class="pkt-user-menu__label">Representerer</div>
50
- <div class="pkt-user-menu__name" translate="no">${this.representing.name}</div>
51
- ${this.representing.orgNumber?t.b`<div class="pkt-user-menu__org-number">
52
- Org.nr. ${this.representing.orgNumber}
53
- </div>`:t.A}
54
- ${this.canChangeRepresentation?t.b`
55
- <ul class="pkt-user-menu__sublist mt-size-16">
56
- <li class="pkt-user-menu__subitem">
57
- ${this.renderLinkOrButton({title:"Endre organisasjon",iconName:"cogwheel",onClick:()=>this.handleChangeRepresentation()})}
58
- </li>
59
- </ul>
60
- `:t.A}
61
- </li>
62
- `:t.A}
63
-
64
- <!-- Change representation without representing object -->
65
- ${!this.representing&&this.canChangeRepresentation?t.b`
66
- <li class="pkt-user-menu__item">
67
- <ul class="pkt-user-menu__sublist">
68
- <li class="pkt-user-menu__subitem">
69
- ${this.renderLinkOrButton({title:"Endre organisasjon",iconName:"cogwheel",onClick:()=>this.handleChangeRepresentation()})}
70
- </li>
71
- </ul>
72
- </li>
73
- `:t.A}
74
-
75
- <!-- Logout -->
76
- ${this.logoutOnClick?t.b`
77
- <li class="pkt-user-menu__item">
78
- ${this.renderLinkOrButton({title:"Logg ut",iconName:"exit",onClick:()=>this.handleLogout()})}
79
- </li>
80
- `:t.A}
81
- </ul>
82
- </nav>
83
- `}}v([t.n({type:Object})],k.prototype,"user");v([t.n({type:String,attribute:"formatted-last-logged-in"})],k.prototype,"formattedLastLoggedIn");v([t.n({type:Object})],k.prototype,"representing");v([t.n({type:Array,attribute:"user-menu"})],k.prototype,"userMenu");v([t.n({type:Boolean,attribute:"can-change-representation",converter:p.booleanishConverter})],k.prototype,"canChangeRepresentation");v([t.n({type:Boolean,attribute:"logout-on-click",converter:p.booleanishConverter})],k.prototype,"logoutOnClick");try{t.t("pkt-header-user-menu")(k)}catch{console.warn("Forsøker å definere <pkt-header-user-menu>, men den er allerede definert")}var S=Object.defineProperty,a=(r,e,n,s)=>{for(var o=void 0,c=r.length-1,d;c>=0;c--)(d=r[c])&&(o=d(e,n,o)||o);return o&&S(e,n,o),o};const C="https://punkt-cdn.oslo.kommune.no/latest/logos/";class i extends m.PktElementWithSlot{constructor(){super(...arguments),this.searchPlaceholder="Søk",this.searchValue="",this.mobileBreakpoint=768,this.tabletBreakpoint=1280,this.openedMenu="none",this.logOutButtonPlacement="none",this.position="fixed",this.scrollBehavior="hide",this.slotMenuVariant="icon-only",this.slotMenuText="Meny",this.hideLogo=!1,this.compact=!1,this.showSearch=!1,this.canChangeRepresentation=!1,this.hasLogOut=!1,this.isMobile=!1,this.isTablet=!1,this.openMenu="none",this.isHidden=!1,this.componentWidth=typeof window<"u"?window.innerWidth:0,this.alignSlotRight=!1,this.alignSearchRight=!1,this.headerRef=u.e(),this.userContainerRef=u.e(),this.slotContainerRef=u.e(),this.searchContainerRef=u.e(),this.slotContentRef=u.e(),this.searchMenuRef=u.e(),this.lastScrollPosition=0,this.savedScrollY=0,this.lastFocusedElement=null,this.shouldRestoreFocus=!1,this.handleScroll=()=>{if(!this.shouldHideOnScroll)return;const e=window.pageYOffset||document.documentElement.scrollTop;e<0||Math.abs(e-this.lastScrollPosition)<60||(this.isHidden=e>this.lastScrollPosition,this.lastScrollPosition=e)},this.handleClickOutside=e=>{const n=e.target;this.user&&this.openMenu==="user"&&!n.closest(".pkt-header-service__user-container")&&(this.openMenu="none"),this.openMenu==="slot"&&!n.closest(".pkt-header-service__slot-container")&&(this.openMenu="none"),this.openMenu==="search"&&!n.closest(".pkt-header-service__search-container")&&!n.closest(".pkt-header-service__search-input")&&(this.openMenu="none")},this.handleFocusOut=(e,n)=>{const s=e.relatedTarget;let o;switch(n){case"user":o=this.userContainerRef;break;case"slot":o=this.slotContainerRef;break;case"search":o=this.searchContainerRef;break;default:return}const c=o.value;c&&(!s||!c.contains(s))&&(this.openMenu="none")},this.handleEscapeKey=e=>{e.key==="Escape"&&this.openMenu!=="none"&&(e.preventDefault(),this.shouldRestoreFocus=!0,this.openMenu="none")}}connectedCallback(){super.connectedCallback(),this.setupScrollListener()}disconnectedCallback(){var e;super.disconnectedCallback(),(e=this.resizeObserver)==null||e.disconnect(),window.removeEventListener("scroll",this.handleScroll),this.unlockScroll()}firstUpdated(){this.setupResizeObserver()}updated(e){if(super.updated(e),e.has("openedMenu")&&this.openedMenu!==this.openMenu&&(this.openMenu=this.openedMenu),(e.has("mobileBreakpoint")||e.has("tabletBreakpoint"))&&(this.updateIsMobile(),this.updateIsTablet()),e.has("openMenu")){const n=e.get("openMenu");this.openMenu!=="none"&&(n==="none"||n===void 0)?(document.addEventListener("mousedown",this.handleClickOutside),document.addEventListener("keydown",this.handleEscapeKey),(this.openMenu==="slot"||this.openMenu==="search")&&requestAnimationFrame(()=>{this.checkDropdownAlignment(this.openMenu)})):this.openMenu==="none"&&n!=="none"&&(document.removeEventListener("mousedown",this.handleClickOutside),document.removeEventListener("keydown",this.handleEscapeKey),this.restoreFocus())}(e.has("openMenu")||e.has("isMobile"))&&this.updateScrollLock()}setupResizeObserver(){const e=this.headerRef.value;e&&(this.componentWidth=e.offsetWidth,this.updateIsMobile(),this.updateIsTablet(),this.resizeObserver=new ResizeObserver(n=>{for(const s of n)s.borderBoxSize&&s.borderBoxSize.length>0?this.componentWidth=s.borderBoxSize[0].inlineSize:this.componentWidth=s.contentRect.width,this.updateIsMobile(),this.updateIsTablet()}),this.resizeObserver.observe(e))}updateIsMobile(){this.isMobile=this.componentWidth<this.mobileBreakpoint}updateIsTablet(){this.isTablet=this.componentWidth<this.tabletBreakpoint}updateScrollLock(){this.position==="fixed"&&this.isMobile&&this.openMenu!=="none"?this.lockScroll():this.unlockScroll()}lockScroll(){const e=document.body,n=document.documentElement;this.savedScrollY=window.scrollY||window.pageYOffset;const s=window.innerWidth-n.clientWidth;s>0&&(e.style.paddingRight=`${s}px`),e.style.position="fixed",e.style.top=`-${this.savedScrollY}px`,e.style.left="0",e.style.right="0",e.style.width="100%",e.style.overflow="hidden",n.classList.add("is-scroll-locked")}unlockScroll(){const e=document.body,n=document.documentElement;n.classList.contains("is-scroll-locked")&&(e.style.removeProperty("position"),e.style.removeProperty("top"),e.style.removeProperty("left"),e.style.removeProperty("right"),e.style.removeProperty("width"),e.style.removeProperty("overflow"),e.style.removeProperty("padding-right"),n.classList.remove("is-scroll-locked"),window.scrollTo({top:this.savedScrollY}))}setupScrollListener(){window.addEventListener("scroll",this.handleScroll)}restoreFocus(){this.shouldRestoreFocus&&this.lastFocusedElement&&document.contains(this.lastFocusedElement)&&this.lastFocusedElement.focus(),this.lastFocusedElement=null,this.shouldRestoreFocus=!1}checkDropdownAlignment(e){const n=e==="slot"?this.slotContainerRef:this.searchContainerRef,s=e==="slot"?this.slotContentRef:this.searchMenuRef;if(!n.value||!s.value||!this.isTablet||this.isMobile)return;const o=n.value.getBoundingClientRect(),c=s.value.offsetWidth,d=o.left+c>window.innerWidth;e==="slot"?this.alignSlotRight=d:this.alignSearchRight=d}handleMenuToggle(e){this.openMenu!=="none"?this.openMenu="none":(this.lastFocusedElement=document.activeElement,this.openMenu=e)}handleLogoClick(e){this.dispatchEvent(new CustomEvent("logo-click",{bubbles:!0,composed:!0,detail:{originalEvent:e}}))}handleServiceClick(e){this.dispatchEvent(new CustomEvent("service-click",{bubbles:!0,composed:!0,detail:{originalEvent:e}}))}handleLogout(){this.dispatchEvent(new CustomEvent("log-out",{bubbles:!0,composed:!0}))}handleSearch(e){this.dispatchEvent(new CustomEvent("search",{detail:{query:e},bubbles:!0,composed:!0}))}handleSearchChange(e){this.dispatchEvent(new CustomEvent("search-change",{detail:{query:e},bubbles:!0,composed:!0}))}handleSearchInputChange(e){const n=e.target.value;this.handleSearchChange(n)}handleSearchKeyDown(e){e.key==="Enter"&&this.handleSearch(e.target.value)}get formattedLastLoggedIn(){var e;return y((e=this.user)==null?void 0:e.lastLoggedIn)}get isFixed(){return this.position==="fixed"}get shouldHideOnScroll(){return this.scrollBehavior==="hide"}get showLogoutInHeader(){return this.hasLogOut&&(this.logOutButtonPlacement==="header"||this.logOutButtonPlacement==="both")}get showLogoutInUserMenu(){return this.hasLogOut&&(this.logOutButtonPlacement==="userMenu"||this.logOutButtonPlacement==="both")}renderLogo(){if(this.hideLogo)return t.A;const e=t.b`
84
- <pkt-icon name="oslologo" aria-hidden="true" path=${C}></pkt-icon>
85
- `;return this.logoLink&&typeof this.logoLink=="string"?t.b`
86
- <span class="pkt-header-service__logo">
87
- <a href=${this.logoLink} aria-label="Tilbake til forside" @click=${this.handleLogoClick}>
88
- ${e}
89
- </a>
90
- </span>
91
- `:this.hasAttribute("logo-link")?t.b`
92
- <span class="pkt-header-service__logo">
93
- <button
94
- aria-label="Tilbake til forside"
95
- class="pkt-link-button pkt-link pkt-header-service__logo-link"
96
- @click=${this.handleLogoClick}
97
- >
98
- ${e}
99
- </button>
100
- </span>
101
- `:t.b`
102
- <span class="pkt-header-service__logo" @click=${this.handleLogoClick}>${e}</span>
103
- `}renderServiceName(){return this.serviceName?this.serviceLink&&typeof this.serviceLink=="string"?t.b`
104
- <span class="pkt-header-service__service-name">
105
- <pkt-link
106
- href=${this.serviceLink}
107
- class="pkt-header-service__service-link"
108
- @click=${this.handleServiceClick}
109
- >
110
- ${this.serviceName}
111
- </pkt-link>
112
- </span>
113
- `:this.hasAttribute("service-link")?t.b`
114
- <span class="pkt-header-service__service-name">
115
- <button
116
- class="pkt-link-button pkt-link pkt-header-service__service-link"
117
- @click=${this.handleServiceClick}
118
- >
119
- ${this.serviceName}
120
- </button>
121
- </span>
122
- `:t.b`
123
- <span class="pkt-header-service__service-name" @click=${this.handleServiceClick}>
124
- <span class="pkt-header-service__service-link">${this.serviceName}</span>
125
- </span>
126
- `:t.A}renderSlotContainer(){if(!this.hasSlotContent())return t.A;const e=b.e({"pkt-header-service__slot-container":!0,"is-open":this.openMenu==="slot"}),n=b.e({"pkt-header-service__slot-content":!0,"align-right":this.alignSlotRight});return t.b`
127
- <div
128
- class=${e}
129
- @focusout=${s=>this.handleFocusOut(s,"slot")}
130
- ${u.n(this.slotContainerRef)}
131
- >
132
- ${this.isTablet&&this.hasSlotContent()?t.b`
133
- <pkt-button
134
- skin="secondary"
135
- variant=${this.slotMenuVariant}
136
- iconName="menu"
137
- size=${this.isMobile?"small":"medium"}
138
- state=${this.openMenu==="slot"?"active":"normal"}
139
- @click=${()=>this.handleMenuToggle("slot")}
140
- aria-expanded=${this.openMenu==="slot"}
141
- aria-controls="mobile-slot-menu"
142
- aria-label="Åpne meny"
143
- >
144
- ${this.slotMenuText}
145
- </pkt-button>
146
- `:t.A}
147
- <div
148
- class=${n}
149
- id="mobile-slot-menu"
150
- role=${this.isTablet?"menu":t.A}
151
- aria-label=${this.isTablet?"Meny":t.A}
152
- ${u.n(this.slotContentRef)}
153
- >
154
- ${m.slotContent(this)}
155
- </div>
156
- </div>
157
- `}renderSearch(){if(!this.showSearch)return t.A;if(this.isTablet){const e=b.e({"pkt-header-service__search-container":!0,"is-open":this.openMenu==="search"}),n=b.e({"pkt-header-service__mobile-menu":!0,"is-open":this.openMenu==="search","align-right":this.alignSearchRight});return t.b`
158
- <div
159
- class=${e}
160
- @focusout=${s=>this.handleFocusOut(s,"search")}
161
- ${u.n(this.searchContainerRef)}
162
- >
163
- <pkt-button
164
- skin="secondary"
165
- variant="icon-only"
166
- iconName="magnifying-glass-big"
167
- size=${this.isMobile?"small":"medium"}
168
- @click=${()=>this.handleMenuToggle("search")}
169
- state=${this.openMenu==="search"?"active":"normal"}
170
- aria-expanded=${this.openMenu==="search"}
171
- aria-controls="mobile-search-menu"
172
- aria-label="Åpne søkefelt"
173
- >
174
- Søk
175
- </pkt-button>
176
- <div class=${n} ${u.n(this.searchMenuRef)}>
177
- ${this.openMenu==="search"?t.b`
178
- <pkt-textinput
179
- id="mobile-search-menu"
180
- class="pkt-header-service__search-input"
181
- type="search"
182
- label="Søk"
183
- useWrapper="false"
184
- placeholder=${this.searchPlaceholder}
185
- value=${this.searchValue}
186
- autofocus
187
- fullwidth
188
- @input=${this.handleSearchInputChange}
189
- @keydown=${s=>{s.key==="Enter"&&this.handleSearch(s.target.value)}}
190
- ></pkt-textinput>
191
- `:t.A}
192
- </div>
193
- </div>
194
- `}return t.b`
195
- <pkt-textinput
196
- id="header-service-search"
197
- class="pkt-header-service__search-input"
198
- type="search"
199
- label="Søk"
200
- useWrapper="false"
201
- placeholder=${this.searchPlaceholder}
202
- value=${this.searchValue}
203
- @input=${this.handleSearchInputChange}
204
- @keydown=${this.handleSearchKeyDown}
205
- ></pkt-textinput>
206
- `}renderUserButton(){var n;if(!this.user)return t.A;const e=b.e({"pkt-header-service__user-menu":this.isMobile===!1,"pkt-header-service__mobile-menu":this.isMobile===!0,"is-open":this.openMenu==="user"});return t.b`
207
- <div
208
- class="pkt-header-service__user-container"
209
- @focusout=${s=>this.handleFocusOut(s,"user")}
210
- ${u.n(this.userContainerRef)}
211
- >
212
- <pkt-button
213
- class=${b.e({"pkt-header-service__user-button":!0,"pkt-header-service__user-button--mobile":this.isMobile})}
214
- skin="secondary"
215
- size=${this.isMobile?"small":"medium"}
216
- state=${this.openMenu==="user"?"active":"normal"}
217
- variant="icons-right-and-left"
218
- iconName="user"
219
- secondIconName=${this.openMenu==="user"?"chevron-thin-up":"chevron-thin-down"}
220
- @click=${()=>this.handleMenuToggle("user")}
221
- >
222
- <span class="pkt-sr-only">Brukermeny: </span>
223
- <span>${((n=this.representing)==null?void 0:n.name)||this.user.name}</span>
224
- </pkt-button>
225
- ${this.openMenu==="user"&&this.user?t.b`
226
- <div class=${e}>
227
- <pkt-header-user-menu
228
- .user=${this.user}
229
- formatted-last-logged-in=${this.formattedLastLoggedIn||t.A}
230
- .representing=${this.representing}
231
- .userMenu=${this.userMenu}
232
- ?can-change-representation=${this.canChangeRepresentation}
233
- ?logout-on-click=${this.showLogoutInUserMenu}
234
- @change-representation=${()=>this.dispatchEvent(new CustomEvent("change-representation",{bubbles:!0,composed:!0}))}
235
- @log-out=${this.handleLogout}
236
- ></pkt-header-user-menu>
237
- </div>
238
- `:t.A}
239
- </div>
240
- `}renderHeader(){const e=b.e({"pkt-header-service":!0,"pkt-header-service--compact":this.compact,"pkt-header-service--mobile":this.isMobile,"pkt-header-service--tablet":this.isTablet,"pkt-header-service--fixed":this.isFixed,"pkt-header-service--scroll-to-hide":this.shouldHideOnScroll,"pkt-header-service--hidden":this.isHidden}),n=b.e({"pkt-header-service__logo-area":!0,"pkt-header-service__logo-area--without-service":!this.serviceName});return t.b`
241
- <header class=${e} ${u.n(this.headerRef)}>
242
- <div class=${n}>${this.renderLogo()} ${this.renderServiceName()}</div>
243
-
244
- ${this.hasSlotContent()||this.showSearch||this.showLogoutInHeader?t.b`<div class="pkt-header-service__content">
245
- ${this.renderSlotContainer()} ${this.renderSearch()}
246
- ${this.isTablet&&this.showLogoutInHeader?t.b`
247
- <pkt-button
248
- skin="secondary"
249
- size=${this.isMobile?"small":"medium"}
250
- variant="icon-only"
251
- iconName="exit"
252
- @click=${this.handleLogout}
253
- >
254
- Logg ut
255
- </pkt-button>
256
- `:t.A}
257
- </div>`:t.A}
258
- ${this.user||!this.isTablet&&this.showLogoutInHeader?t.b`<div class="pkt-header-service__user">
259
- ${this.renderUserButton()}
260
- ${!this.isTablet&&this.showLogoutInHeader?t.b`
261
- <pkt-button
262
- skin="tertiary"
263
- size="medium"
264
- variant="icon-right"
265
- iconName="exit"
266
- @click=${this.handleLogout}
267
- >
268
- Logg ut
269
- </pkt-button>
270
- `:t.A}
271
- </div>`:t.A}
272
- </header>
273
- `}render(){const e=this.renderHeader();if(this.isFixed){const n=b.e({"pkt-header-service-spacer":!0,"pkt-header-service-spacer--compact":this.compact,"pkt-header-service-spacer--has-user":!!this.user,"pkt-header-service-spacer--mobile":this.isMobile});return t.b`
274
- <div class="pkt-header-service-wrapper">
275
- ${e}
276
- <div class=${n}></div>
277
- </div>
278
- `}return e}}a([t.n({type:String,attribute:"service-name"})],i.prototype,"serviceName");a([t.n({type:String,attribute:"service-link"})],i.prototype,"serviceLink");a([t.n({type:String,attribute:"logo-link"})],i.prototype,"logoLink");a([t.n({type:String,attribute:"search-placeholder"})],i.prototype,"searchPlaceholder");a([t.n({type:String,attribute:"search-value"})],i.prototype,"searchValue");a([t.n({type:Number,attribute:"mobile-breakpoint"})],i.prototype,"mobileBreakpoint");a([t.n({type:Number,attribute:"tablet-breakpoint"})],i.prototype,"tabletBreakpoint");a([t.n({type:String,attribute:"opened-menu"})],i.prototype,"openedMenu");a([t.n({type:String,attribute:"log-out-button-placement"})],i.prototype,"logOutButtonPlacement");a([t.n({type:String})],i.prototype,"position");a([t.n({type:String,attribute:"scroll-behavior"})],i.prototype,"scrollBehavior");a([t.n({type:String,attribute:"slot-menu-variant"})],i.prototype,"slotMenuVariant");a([t.n({type:String,attribute:"slot-menu-text"})],i.prototype,"slotMenuText");a([t.n({type:Boolean,attribute:"hide-logo",converter:p.booleanishConverter})],i.prototype,"hideLogo");a([t.n({type:Boolean,converter:p.booleanishConverter})],i.prototype,"compact");a([t.n({type:Boolean,attribute:"show-search",converter:p.booleanishConverter})],i.prototype,"showSearch");a([t.n({type:Boolean,attribute:"can-change-representation",converter:p.booleanishConverter})],i.prototype,"canChangeRepresentation");a([t.n({type:Boolean,attribute:"has-log-out",converter:p.booleanishConverter})],i.prototype,"hasLogOut");a([t.n({type:Object})],i.prototype,"user");a([t.n({type:Array,attribute:"user-menu"})],i.prototype,"userMenu");a([t.n({type:Object})],i.prototype,"representing");a([g.r()],i.prototype,"isMobile");a([g.r()],i.prototype,"isTablet");a([g.r()],i.prototype,"openMenu");a([g.r()],i.prototype,"isHidden");a([g.r()],i.prototype,"componentWidth");a([g.r()],i.prototype,"alignSlotRight");a([g.r()],i.prototype,"alignSearchRight");try{t.t("pkt-header-service")(i)}catch{console.warn("Forsøker å definere <pkt-header-service>, men den er allerede definert")}var L=Object.defineProperty,h=(r,e,n,s)=>{for(var o=void 0,c=r.length-1,d;c>=0;c--)(d=r[c])&&(o=d(e,n,o)||o);return o&&L(e,n,o),o};class l extends m.PktElementWithSlot{constructor(){super(...arguments),this.searchPlaceholder="Søk",this.searchValue="",this.mobileBreakpoint=768,this.tabletBreakpoint=1280,this.openedMenu="none",this.logOutButtonPlacement="none",this.position="fixed",this.scrollBehavior="hide",this.slotMenuVariant="icon-only",this.slotMenuText="Meny",this.hideLogo=!1,this.compact=!1,this.showSearch=!1,this.canChangeRepresentation=!1,this.hasLogOut=!1}firstUpdated(e){super.firstUpdated(e),this.emitDeprecationWarnings()}emitDeprecationWarnings(){this.userMenuFooter!==void 0&&console.warn("[PktHeader] userMenuFooter is deprecated. Use userMenu instead."),this.userOptions!==void 0&&console.warn("[PktHeader] userOptions is deprecated. Use userMenu instead.")}get effectiveUserMenu(){const e=this.userMenu||[],n=this.userMenuFooter||[],s=this.userOptions||[];return n.length||s.length?[...e,...s,...n]:this.userMenu}render(){return t.b`
279
- <pkt-header-service
280
- service-name=${f.o(this.serviceName)}
281
- service-link=${f.o(this.serviceLink)}
282
- logo-link=${f.o(this.logoLink)}
283
- search-placeholder=${this.searchPlaceholder}
284
- search-value=${this.searchValue}
285
- mobile-breakpoint=${this.mobileBreakpoint}
286
- tablet-breakpoint=${this.tabletBreakpoint}
287
- opened-menu=${this.openedMenu}
288
- log-out-button-placement=${this.logOutButtonPlacement}
289
- position=${this.position}
290
- scroll-behavior=${this.scrollBehavior}
291
- slot-menu-variant=${this.slotMenuVariant}
292
- slot-menu-text=${this.slotMenuText}
293
- .hideLogo=${this.hideLogo}
294
- .compact=${this.compact}
295
- .showSearch=${this.showSearch}
296
- .canChangeRepresentation=${this.canChangeRepresentation}
297
- .hasLogOut=${this.hasLogOut}
298
- .user=${this.user}
299
- .userMenu=${this.effectiveUserMenu}
300
- .representing=${this.representing}
301
- >
302
- ${this.hasSlotContent()?t.b`<div class="pkt-contents">${m.slotContent(this)}</div>`:t.A}
303
- </pkt-header-service>
304
- `}}h([t.n({type:String,attribute:"service-name"})],l.prototype,"serviceName");h([t.n({type:String,attribute:"service-link"})],l.prototype,"serviceLink");h([t.n({type:String,attribute:"logo-link"})],l.prototype,"logoLink");h([t.n({type:String,attribute:"search-placeholder"})],l.prototype,"searchPlaceholder");h([t.n({type:String,attribute:"search-value"})],l.prototype,"searchValue");h([t.n({type:Number,attribute:"mobile-breakpoint"})],l.prototype,"mobileBreakpoint");h([t.n({type:Number,attribute:"tablet-breakpoint"})],l.prototype,"tabletBreakpoint");h([t.n({type:String,attribute:"opened-menu"})],l.prototype,"openedMenu");h([t.n({type:String,attribute:"log-out-button-placement"})],l.prototype,"logOutButtonPlacement");h([t.n({type:String})],l.prototype,"position");h([t.n({type:String,attribute:"scroll-behavior"})],l.prototype,"scrollBehavior");h([t.n({type:String,attribute:"slot-menu-variant"})],l.prototype,"slotMenuVariant");h([t.n({type:String,attribute:"slot-menu-text"})],l.prototype,"slotMenuText");h([t.n({type:Boolean,attribute:"hide-logo",converter:p.booleanishConverter})],l.prototype,"hideLogo");h([t.n({type:Boolean,converter:p.booleanishConverter})],l.prototype,"compact");h([t.n({type:Boolean,attribute:"show-search",converter:p.booleanishConverter})],l.prototype,"showSearch");h([t.n({type:Boolean,attribute:"can-change-representation",converter:p.booleanishConverter})],l.prototype,"canChangeRepresentation");h([t.n({type:Boolean,attribute:"has-log-out",converter:p.booleanishConverter})],l.prototype,"hasLogOut");h([t.n({type:Object})],l.prototype,"user");h([t.n({type:Array,attribute:"user-menu"})],l.prototype,"userMenu");h([t.n({type:Object})],l.prototype,"representing");h([t.n({type:Array,attribute:"user-menu-footer"})],l.prototype,"userMenuFooter");h([t.n({type:Array,attribute:"user-options"})],l.prototype,"userOptions");try{t.t("pkt-header")(l)}catch{console.warn("Forsøker å definere <pkt-header>, men den er allerede definert")}exports.PktHeader=l;exports.PktHeaderService=i;exports.PktHeaderUserMenu=k;exports.formatLastLoggedIn=y;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./header-DWgPgGfS.cjs`);exports.PktHeader=e.t,exports.PktHeaderService=e.n,exports.PktHeaderUserMenu=e.r,exports.formatLastLoggedIn=e.i;