@oslokommune/punkt-elements 12.18.0 → 12.18.2

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 (126) hide show
  1. package/dist/alert-BbVWu2lm.cjs +27 -0
  2. package/dist/alert-Dh6A96vo.js +159 -0
  3. package/dist/{index-D2jSRMrn.js → calendar-BUqcNvfI.js} +41 -29
  4. package/dist/calendar-QSulz7im.cjs +108 -0
  5. package/dist/card-B0GPdG5M.cjs +23 -0
  6. package/dist/card-kWt0BA2a.js +170 -0
  7. package/dist/{class-map-a5HUzP83.cjs → class-map-Boa7BqCc.cjs} +2 -2
  8. package/dist/{class-map-CBvUV2N3.js → class-map-hz16xq5a.js} +9 -10
  9. package/dist/datepicker-BhavwiBZ.js +659 -0
  10. package/dist/datepicker-vX74tb3R.cjs +154 -0
  11. package/dist/helptext--4FLdAWi.js +194 -0
  12. package/dist/helptext-iZEgxz2U.cjs +23 -0
  13. package/dist/icon-CdMQ6zBT.cjs +250 -0
  14. package/dist/{index-CFDwiDTU.js → icon-wUXeHiBk.js} +7371 -7559
  15. package/dist/if-defined-DEDlGbAc.cjs +5 -0
  16. package/dist/if-defined-ZFE4ti2t.js +10 -0
  17. package/dist/index.d.ts +49 -51
  18. package/dist/input-element-BQTCZtNQ.js +185 -0
  19. package/dist/input-element-DNklGY_O.cjs +1 -0
  20. package/dist/{input-wrapper-DVXNuxVu.js → input-wrapper-BTQk3W8T.js} +10 -11
  21. package/dist/input-wrapper-D-PNRJB_.cjs +46 -0
  22. package/dist/link-BpqavGSD.cjs +8 -0
  23. package/dist/link-Bx9nVgZi.js +108 -0
  24. package/dist/linkcard-CUrbzjLK.js +53 -0
  25. package/dist/linkcard-DSu3A4Yx.cjs +13 -0
  26. package/dist/messagebox-C1aWoQbu.cjs +12 -0
  27. package/dist/messagebox-LpiVQIoM.js +107 -0
  28. package/dist/modal-Avai5eVz.cjs +30 -0
  29. package/dist/{modal-lQfiTbGh.js → modal-Co1YFmHi.js} +7 -8
  30. package/dist/pkt-alert.cjs +1 -27
  31. package/dist/pkt-alert.js +4 -158
  32. package/dist/pkt-calendar.cjs +1 -1
  33. package/dist/pkt-calendar.js +4 -7
  34. package/dist/pkt-card.cjs +1 -23
  35. package/dist/pkt-card.js +4 -169
  36. package/dist/pkt-datepicker.cjs +1 -154
  37. package/dist/pkt-datepicker.js +4 -657
  38. package/dist/pkt-helptext.cjs +1 -1
  39. package/dist/pkt-helptext.js +1 -1
  40. package/dist/pkt-icon.cjs +1 -1
  41. package/dist/pkt-icon.js +4 -4
  42. package/dist/pkt-index.cjs +29 -1
  43. package/dist/pkt-index.js +127 -32
  44. package/dist/pkt-input-wrapper.cjs +1 -1
  45. package/dist/pkt-input-wrapper.js +1 -1
  46. package/dist/pkt-link.cjs +1 -8
  47. package/dist/pkt-link.js +4 -108
  48. package/dist/pkt-linkcard.cjs +1 -1
  49. package/dist/pkt-linkcard.js +1 -1
  50. package/dist/pkt-messagebox.cjs +1 -12
  51. package/dist/pkt-messagebox.js +4 -106
  52. package/dist/pkt-modal.cjs +1 -1
  53. package/dist/pkt-modal.js +1 -1
  54. package/dist/pkt-progressbar.cjs +1 -1
  55. package/dist/pkt-progressbar.js +2 -2
  56. package/dist/pkt-tag.cjs +1 -17
  57. package/dist/pkt-tag.js +4 -149
  58. package/dist/pkt-textarea.cjs +1 -1
  59. package/dist/pkt-textarea.js +1 -1
  60. package/dist/pkt-textinput.cjs +1 -1
  61. package/dist/pkt-textinput.js +1 -1
  62. package/dist/{progressbar-1PEs_SMc.js → progressbar-BS_oawSB.js} +42 -47
  63. package/dist/{progressbar-BlzTFI9U.cjs → progressbar-CuXkbAhJ.cjs} +7 -11
  64. package/dist/ref-DCOsLZQg.cjs +13 -0
  65. package/dist/{ref-Dzme4zb6.js → ref-DuFGTLVX.js} +26 -27
  66. package/dist/state-BfyXV7EL.js +12 -0
  67. package/dist/state-SKYD8kRO.cjs +5 -0
  68. package/dist/stringutils-CkVRq4jP.cjs +1 -0
  69. package/dist/stringutils-DJjRa8dG.js +7 -0
  70. package/dist/tag-CGy2mSLE.cjs +17 -0
  71. package/dist/tag-DGFgUF3l.js +150 -0
  72. package/dist/textarea-BFWHQHLs.cjs +48 -0
  73. package/dist/{textarea-BXzQA_ub.js → textarea-BYtGXst8.js} +29 -29
  74. package/dist/{textinput-52G3CfwA.cjs → textinput-33wZwZ4O.cjs} +2 -2
  75. package/dist/{textinput-CTNWiIaP.js → textinput-IgHewJDJ.js} +23 -23
  76. package/package.json +2 -2
  77. package/src/components/alert/alert.ts +115 -0
  78. package/src/components/alert/index.ts +4 -113
  79. package/src/components/calendar/calendar.ts +711 -0
  80. package/src/components/calendar/index.ts +3 -711
  81. package/src/components/card/card.ts +78 -0
  82. package/src/components/card/index.ts +4 -77
  83. package/src/components/datepicker/datepicker.ts +619 -0
  84. package/src/components/datepicker/index.ts +3 -618
  85. package/src/components/helptext/helptext.ts +2 -2
  86. package/src/components/icon/icon.ts +99 -0
  87. package/src/components/icon/index.ts +3 -98
  88. package/src/components/index.ts +21 -17
  89. package/src/components/input-wrapper/input-wrapper.ts +2 -2
  90. package/src/components/link/index.ts +3 -56
  91. package/src/components/link/link.ts +57 -0
  92. package/src/components/linkcard/index.ts +1 -1
  93. package/src/components/linkcard/linkcard.ts +5 -6
  94. package/src/components/messagebox/index.ts +4 -69
  95. package/src/components/messagebox/messagebox.ts +69 -0
  96. package/src/components/modal/index.ts +0 -1
  97. package/src/components/modal/modal.ts +5 -7
  98. package/src/components/progressbar/progressbar.ts +2 -2
  99. package/src/components/tag/index.ts +4 -109
  100. package/src/components/tag/tag.ts +118 -0
  101. package/src/components/textarea/textarea.ts +5 -4
  102. package/src/components/textinput/textinput.ts +3 -3
  103. package/dist/component-template.d.ts +0 -8
  104. package/dist/converters-DNCwIFwr.js +0 -17
  105. package/dist/converters-DhM11VlY.cjs +0 -1
  106. package/dist/custom-element-B-TlBwRu.cjs +0 -9
  107. package/dist/custom-element-CWfU4dcr.js +0 -38
  108. package/dist/element.d.ts +0 -8
  109. package/dist/helptext-DBolvFI4.js +0 -72
  110. package/dist/helptext-_fMLOOCL.cjs +0 -23
  111. package/dist/index-CR7t1zY9.cjs +0 -238
  112. package/dist/index-CmTjXoAb.cjs +0 -9
  113. package/dist/index-RwtTBIhT.js +0 -88
  114. package/dist/index-tvpcg-ad.cjs +0 -108
  115. package/dist/input-wrapper-tJE-X4Ac.cjs +0 -46
  116. package/dist/linkcard-BHokvuVN.js +0 -55
  117. package/dist/linkcard-CUXMP6BH.cjs +0 -13
  118. package/dist/modal-CjsQgmmH.cjs +0 -30
  119. package/dist/pkt-component-template.cjs +0 -29
  120. package/dist/pkt-component-template.js +0 -100
  121. package/dist/pkt-element.cjs +0 -1
  122. package/dist/pkt-element.js +0 -5
  123. package/dist/ref-CA2-0S_W.cjs +0 -13
  124. package/dist/textarea-D_ud1Mpa.cjs +0 -48
  125. package/src/components/component-template/index.ts +0 -129
  126. package/src/components/element/index.ts +0 -353
@@ -0,0 +1,154 @@
1
+ "use strict";const $=require("./class-map-Boa7BqCc.cjs"),k=require("./if-defined-DEDlGbAc.cjs"),s=require("./icon-CdMQ6zBT.cjs"),T=require("./state-SKYD8kRO.cjs"),g=require("./calendar-QSulz7im.cjs"),S=require("./input-element-DNklGY_O.cjs"),r=require("./ref-DCOsLZQg.cjs");require("./input-wrapper-D-PNRJB_.cjs");require("./tag-CGy2mSLE.cjs");/**
2
+ * @license
3
+ * Copyright 2017 Google LLC
4
+ * SPDX-License-Identifier: BSD-3-Clause
5
+ */const R=(o,e,t)=>{const i=new Map;for(let a=e;a<=t;a++)i.set(o[a],a);return i},P=s.e(class extends s.i{constructor(o){if(super(o),o.type!==s.t$1.CHILD)throw Error("repeat() can only be used in text expressions")}dt(o,e,t){let i;t===void 0?t=e:e!==void 0&&(i=e);const a=[],n=[];let l=0;for(const c of o)a[l]=i?i(c,l):l,n[l]=t(c,l),l++;return{values:n,keys:a}}render(o,e,t){return this.dt(o,e,t).values}update(o,[e,t,i]){const a=r.p(o),{values:n,keys:l}=this.dt(e,t,i);if(!Array.isArray(a))return this.ut=l,n;const c=this.ut??(this.ut=[]),m=[];let b,w,u=0,h=a.length-1,d=0,f=n.length-1;for(;u<=h&&d<=f;)if(a[u]===null)u++;else if(a[h]===null)h--;else if(c[u]===l[d])m[d]=r.v(a[u],n[d]),u++,d++;else if(c[h]===l[f])m[f]=r.v(a[h],n[f]),h--,f--;else if(c[u]===l[f])m[f]=r.v(a[u],n[f]),r.r(o,m[f+1],a[u]),u++,f--;else if(c[h]===l[d])m[d]=r.v(a[h],n[d]),r.r(o,a[u],a[h]),h--,d++;else if(b===void 0&&(b=R(l,d,f),w=R(c,u,h)),b.has(c[u]))if(b.has(c[h])){const v=w.get(l[d]),x=v!==void 0?a[v]:null;if(x===null){const D=r.r(o,a[u]);r.v(D,n[d]),m[d]=D}else m[d]=r.v(x,n[d]),r.r(o,a[u],x),a[v]=null;d++}else r.M(a[h]),h--;else r.M(a[u]),u++;for(;d<=f;){const v=r.r(o,m[f+1]);r.v(v,n[d]),m[d++]=v}for(;u<=h;){const v=a[u++];v!==null&&r.M(v)}return this.ut=l,r.m(o,m),s.T}}),I="pkt-datepicker",_=!0,O={name:{type:"string",name:"Navn",description:"Navn som sendes brukes i skjema ved innsending"},label:{type:"string",name:"Etikett",description:"Tekst som vises over datovelgeren"},helptext:{type:"string",name:"Hjelpetekst",description:"Hjelpetekst som vises over datovelgeren"},helptextDropdown:{type:"string",name:"Utvidet hjelpetekst",description:"Hjelpetekst som vises i en lukket boks man kan åpne"},helptextDropdownButton:{type:"string",name:"Knappetekst for hjelpetekst",description:"Tekst som vises på knappen for å åpne/lukke utvidet hjelpetekst",default:"Les mer"},dateformat:{name:"Datoformat",description:"Datoformat for valgte datoer i flervalgsmodus",type:"string",default:"dd.MM.yyyy"},currentmonth:{name:"Nåværende måned",type:"ISOdatestring",description:"Måneden som skal vises i datovelgeren"},value:{name:"Verdi",type:"ISOdatestring",variant:"multiple",reflect:!0,description:"Kommaseparert liste av valgte datoer"},excludeweekdays:{name:"Utelat ukedager",type:"string",description:"Kommaseparert liste over ukedager (1-7) som skal ekskluderes"},excludedates:{name:"Utelat datoer",type:"ISOdatestring",variant:"multiple",description:"Kommaseparert liste over datoer som skal ekskluderes"},min:{name:"Tidligst tillatt",type:"ISOdatestring",default:null,description:"Første tillate dato i datovelgeren"},max:{name:"Senest tillatt",type:"ISOdatestring",default:null,description:"Siste tillate dato i datovelgeren"},weeknumbers:{name:"Vis ukenummer",type:"boolean",reflect:!0,default:!1,description:"Vis ukedager i datovelgerens kalender"},withcontrols:{name:"Med kontroller",type:"boolean",reflect:!0,default:!1,description:"Vis avanserte velgere for måned og år"},multiple:{name:"Flervalg",type:"boolean",reflect:!0,default:!1,description:"Tillat valg av flere enn én dato i samme velger"},maxlength:{name:"Maks antall",description:"Maks valgte datoer i flervalgsmodus",type:"number"},range:{name:"Datotidsrom",type:"boolean",reflect:!0,default:!1,description:"Tillat å velge et tidsrom mellom to datoer i samme velger"},hasError:{type:"boolean",name:"Feil",default:!1,description:"Viser feiltilstand for datovelgeren"},errorMessage:{type:"string",name:"Feilmelding",description:"Tekst som vises under datovelgeren ved feiltilstand"},disabled:{type:"boolean",name:"Deaktivert",default:!1,reflect:!0,description:"Er datovelgeren deaktivert?"},fullwidth:{type:"boolean",name:"Full bredde",default:!1,reflect:!0,description:"Skal datovelgeren ta opp hele bredden?"},required:{type:"boolean",name:"Påkrevd",default:!1,reflect:!0,description:"Er datovelgeren påkrevd?"},requiredTag:{type:"boolean",name:"Vise påkrevd-merking",default:!1,description:"Viser en merking som indikerer at datovelgeren er påkrevd"},requiredText:{type:"string",name:"Påkrevd-tekst",default:"Må fylles ut",description:"Tekst som vises i påkrevd-merkingen"},optionalTag:{type:"boolean",name:"Vise valgfritt-merking",default:!1,description:"Viser en merking som indikerer at datovelgeren er valgfri"},optionalText:{type:"string",name:"Valgfritt-tekst",default:"Valgfritt",description:"Tekst som vises i valgfritt-merkingen"},useWrapper:{type:"boolean",name:"Bruk wrapper",description:"Indikerer at feltet skal ha synlig label og hjelpetekst",displayAsFalse:!0,default:!0},id:{type:"string",name:"ID",description:"Unik identifikasjon for datovelgeren"}},E={change:{type:"Event",description:"Returnerer valgt dato som streng i ISO-format"},"value-change":{type:"CustomEvent",description:"Returnerer en <code>array</code> med valgte datoer i ISO-format"},toggleHelpText:{type:"CustomEvent",description:"Returnerer <code>event.detail { isOpen: true }</code> eller <code>event.detail { isOpen: false }</code> når hjelpeteksten åpnes eller lukkes"}},y={name:I,"css-class":"pkt-datepicker",isElement:_,props:O,events:E};var M=Object.defineProperty,B=Object.getOwnPropertyDescriptor,p=(o,e,t,i)=>{for(var a=i>1?void 0:i?B(e,t):e,n=o.length-1,l;n>=0;n--)(l=o[n])&&(a=(i?l(e,t,a):l(a))||a);return i&&a&&M(e,t,a),a};const C=o=>new Promise(e=>setTimeout(e,o));exports.PktDatepicker=class extends S.PktInputElement{constructor(){super(...arguments),this.value="",this._value=this.value?Array.isArray(this.value)?this.value:this.value.split(","):[],this.label="Datovelger",this.dateformat=y.props.dateformat.default,this.multiple=y.props.multiple.default,this.maxlength=null,this.range=y.props.range.default,this.showRangeLabels=!1,this.min=null,this.max=null,this.weeknumbers=y.props.weeknumbers.default,this.withcontrols=y.props.withcontrols.default,this.excludedates=[],this.excludeweekdays=[],this.currentmonth=null,this.calendarOpen=!1,this.timezone="Europe/Oslo",this.inputClasses={},this.buttonClasses={},this.inputRef=r.e(),this.inputRefTo=r.e(),this.btnRef=r.e(),this.calRef=r.e(),this.popupRef=r.e(),this.addToSelected=e=>{const t=e.target;if(!t.value)return;const i=this.min?g.newDate(this.min):null,a=this.max?g.newDate(this.max):null,n=g.newDate(t.value.split(",")[0]);n&&!isNaN(n.getTime())&&(!i||n>=i)&&(!a||n<=a)&&this.calRef.value&&this.calRef.value.handleDateSelect(n),t.value=""}}async connectedCallback(){super.connectedCallback(),this.isMobileSafari=/iP(ad|od|hone)/i.test(window.navigator.userAgent)&&!!navigator.userAgent.match(/Version\/[\d\.]+.*Safari/),this.inputType=this.isMobileSafari?"text":"date",document&&document.body.addEventListener("click",e=>{var t,i;(t=this.inputRef)!=null&&t.value&&((i=this.btnRef)!=null&&i.value)&&!this.inputRef.value.contains(e.target)&&!(this.inputRefTo.value&&this.inputRefTo.value.contains(e.target))&&!this.btnRef.value.contains(e.target)&&!e.target.closest(".pkt-calendar-popup")&&this.calendarOpen&&(this.onBlur(),this.hideCalendar())}),this.value.length&&this._value.length===0&&(this._value=Array.isArray(this.value)?this.value:this.value.split(",")),this.min=this.min||y.props.min.default,this.max=this.max||y.props.max.default,typeof this.excludedates=="string"&&(this.excludedates=this.excludedates.split(",")),typeof this.excludeweekdays=="string"&&(this.excludeweekdays=this.excludeweekdays.split(",")),(this.multiple||this.range)&&this.name&&!this.name.endsWith("[]")&&(this.name=this.name+"[]"),this.calendarOpen&&(await C(20),this.handleCalendarPosition())}disconnectedCallback(){super.disconnectedCallback(),document&&document.body.removeEventListener("click",e=>{var t,i;(t=this.inputRef)!=null&&t.value&&((i=this.btnRef)!=null&&i.value)&&!this.inputRef.value.contains(e.target)&&!this.btnRef.value.contains(e.target)&&this.hideCalendar()})}attributeChangedCallback(e,t,i){if(e==="value"){if(this.range&&(i==null?void 0:i.split(",").length)===1)return;this.value!==t&&this.valueChanged(i,t)}e==="excludedates"&&typeof this.excludedates=="string"&&(this.excludedates=(i==null?void 0:i.split(","))??[]),e==="excludeweekdays"&&typeof this.excludeweekdays=="string"&&(this.excludeweekdays=(i==null?void 0:i.split(","))??[]),super.attributeChangedCallback(e,t,i)}updated(e){if(e.has("value")){if(this.range&&this.value.length===1)return;this.valueChanged(this.value,e.get("value"))}super.updated(e)}renderInput(){return s.x`
6
+ <input
7
+ class="${$.e(this.inputClasses)}"
8
+ .type=${this.inputType}
9
+ id="${this.id}-input"
10
+ .value=${this._value[0]??""}
11
+ min=${k.o(this.min)}
12
+ max=${k.o(this.max)}
13
+ @click=${e=>{e.preventDefault(),this.showCalendar()}}
14
+ ?disabled=${this.disabled}
15
+ @keydown=${e=>{var t;(e.key===","||e.key==="Enter")&&((t=this.inputRef.value)==null||t.blur()),(e.key==="Space"||e.key===" ")&&(e.preventDefault(),this.toggleCalendar(e))}}
16
+ @input=${e=>{this.onInput(),e.stopImmediatePropagation()}}
17
+ @focus=${()=>{this.onFocus(),this.isMobileSafari&&this.showCalendar()}}
18
+ @blur=${e=>{var t;(t=this.calRef.value)!=null&&t.contains(e.relatedTarget)||this.onBlur(),this.manageValidity(e.target),this.value=e.target.value}}
19
+ @change=${e=>{e.stopImmediatePropagation()}}
20
+ ${r.n(this.inputRef)}
21
+ />
22
+ `}renderRangeInput(){const e={"pkt-input-prefix":this.showRangeLabels,"pkt-hide":!this.showRangeLabels};return s.x`
23
+ ${this.showRangeLabels?s.x` <div class="pkt-input-prefix">${this.strings.generic.from}</div> `:s.E}
24
+ <input
25
+ class=${$.e(this.inputClasses)}
26
+ .type=${this.inputType}
27
+ id="${this.id}-input"
28
+ .value=${this._value[0]??""}
29
+ min=${k.o(this.min)}
30
+ max=${k.o(this.max)}
31
+ ?disabled=${this.disabled}
32
+ @click=${t=>{t.preventDefault(),this.showCalendar()}}
33
+ @keydown=${t=>{var i;(t.key===","||t.key==="Enter")&&((i=this.inputRef.value)==null||i.blur()),(t.key==="Space"||t.key===" ")&&(t.preventDefault(),this.toggleCalendar(t))}}
34
+ @input=${t=>{this.onInput(),t.stopImmediatePropagation()}}
35
+ @focus=${()=>{this.onFocus(),this.isMobileSafari&&this.showCalendar()}}
36
+ @blur=${t=>{var i,a;if(t.target.value){this.manageValidity(t.target);const n=g.fromISOToDate(t.target.value);n&&this._value[0]!==t.target.value&&this._value[1]&&(this.clearInputValue(),(a=(i=this.calRef)==null?void 0:i.value)==null||a.handleDateSelect(n))}else this._value[0]&&this.clearInputValue()}}
37
+ @change=${t=>{t.stopImmediatePropagation()}}
38
+ ${r.n(this.inputRef)}
39
+ />
40
+ <div class="${$.e(e)}" id="${this.id}-to-label">
41
+ ${this.strings.generic.to}
42
+ </div>
43
+ ${this.showRangeLabels?s.E:s.x` <div class="pkt-input-separator">–</div> `}
44
+ <input
45
+ class=${$.e(this.inputClasses)}
46
+ .type=${this.inputType}
47
+ id="${this.id}-to"
48
+ aria-labelledby="${this.id}-to-label"
49
+ .value=${this._value[1]??""}
50
+ min=${k.o(this.min)}
51
+ max=${k.o(this.max)}
52
+ ?disabled=${this.disabled}
53
+ @click=${t=>{t.preventDefault(),this.showCalendar()}}
54
+ @keydown=${t=>{var i;(t.key===","||t.key==="Enter")&&((i=this.inputRefTo.value)==null||i.blur()),(t.key==="Space"||t.key===" ")&&(t.preventDefault(),this.toggleCalendar(t))}}
55
+ @input=${t=>{this.onInput(),t.stopImmediatePropagation()}}
56
+ @focus=${()=>{this.onFocus(),this.isMobileSafari&&this.showCalendar()}}
57
+ @blur=${t=>{var i,a,n;if((i=this.calRef.value)!=null&&i.contains(t.relatedTarget)||this.onBlur(),t.target.value){this.manageValidity(t.target);const l=t.target.value;this.min&&this.min>l?this.internals.setValidity({rangeUnderflow:!0},this.strings.forms.messages.rangeUnderflow,t.target):this.max&&this.max<l&&this.internals.setValidity({rangeOverflow:!0},this.strings.forms.messages.rangeOverflow,t.target);const c=g.fromISOToDate(t.target.value);c&&this._value[1]!==g.formatISODate(c)&&((n=(a=this.calRef)==null?void 0:a.value)==null||n.handleDateSelect(c))}}}
58
+ @change=${t=>{t.stopImmediatePropagation()}}
59
+ ${r.n(this.inputRefTo)}
60
+ />
61
+ `}renderMultipleInput(){return s.x`
62
+ <input
63
+ class=${$.e(this.inputClasses)}
64
+ .type=${this.inputType}
65
+ id="${this.id}-input"
66
+ min=${k.o(this.min)}
67
+ max=${k.o(this.max)}
68
+ ?disabled=${this.disabled||this.maxlength&&this._value.length>=this.maxlength}
69
+ @click=${e=>{e.preventDefault(),this.showCalendar()}}
70
+ @blur=${e=>{var t;(t=this.calRef.value)!=null&&t.contains(e.relatedTarget)||this.onBlur(),this.addToSelected(e)}}
71
+ @input=${e=>{this.onInput(),e.stopImmediatePropagation()}}
72
+ @focus=${()=>{this.onFocus(),this.isMobileSafari&&this.showCalendar()}}
73
+ @keydown=${e=>{(e.key===","||e.key==="Enter")&&(e.preventDefault(),this.addToSelected(e)),(e.key==="Space"||e.key===" ")&&(e.preventDefault(),this.toggleCalendar(e))}}
74
+ @change=${e=>{e.stopImmediatePropagation()}}
75
+ ${r.n(this.inputRef)}
76
+ />
77
+ `}renderTags(){return s.x`
78
+ <div class="pkt-datepicker__tags" aria-live="polite">
79
+ ${this._value[0]?P(this._value??[],e=>e,e=>s.x`
80
+ <pkt-tag
81
+ .id="${this.id+e+"-tag"}"
82
+ closeTag
83
+ ariaLabel="${this.strings.calendar.deleteDate} ${g.fromISOtoLocal(e,this.dateformat)}"
84
+ @close=${()=>{var t;return(t=this.calRef.value)==null?void 0:t.handleDateSelect(g.fromISOToDate(e))}}
85
+ ><time datetime="${e}">${g.fromISOtoLocal(e,this.dateformat)}</time></pkt-tag
86
+ >
87
+ `):s.E}
88
+ </div>
89
+ `}renderCalendar(){return s.x`<div
90
+ class="pkt-calendar-popup pkt-${this.calendarOpen?"show":"hide"}"
91
+ @focusout=${e=>{this.calendarOpen&&this.handleFocusOut(e)}}
92
+ id="${this.id}-popup"
93
+ ${r.n(this.popupRef)}
94
+ >
95
+ <pkt-calendar
96
+ id="${this.id}-calendar"
97
+ ?multiple=${this.multiple}
98
+ ?range=${this.range}
99
+ ?weeknumbers=${this.weeknumbers}
100
+ ?withcontrols=${this.withcontrols}
101
+ .maxMultiple=${this.maxlength}
102
+ .selected=${this._value}
103
+ .earliest=${this.min}
104
+ .latest=${this.max}
105
+ .excludedates=${Array.isArray(this.excludedates)?this.excludedates:this.excludedates.split(",")}
106
+ .excludeweekdays=${this.excludeweekdays}
107
+ .currentmonth=${this.currentmonth?g.newDate(this.currentmonth):null}
108
+ @date-selected=${e=>{this.value=!this.multiple&&!this.range?e.detail[0]:e.detail,this._value=e.detail,this.inputRef.value&&(this.range&&this.inputRefTo.value?(this.inputRef.value.value=this._value[0]??"",this.inputRefTo.value.value=this._value[1]??""):this.multiple||(this.inputRef.value.value=this._value.length?this._value[0]:""))}}
109
+ @close=${()=>{this.onBlur(),this.hideCalendar()}}
110
+ ${r.n(this.calRef)}
111
+ ></pkt-calendar>
112
+ </div>`}render(){return this.inputClasses={"pkt-input":!0,"pkt-datepicker__input":!0,"pkt-input--fullwidth":this.fullwidth,"pkt-datepicker--hasrangelabels":this.showRangeLabels,"pkt-datepicker--multiple":this.multiple,"pkt-datepicker--range":this.range},this.buttonClasses={"pkt-input-icon":!0,"pkt-btn":!0,"pkt-btn--icon-only":!0,"pkt-btn--tertiary":!0},s.x`
113
+ <pkt-input-wrapper
114
+ label="${this.label}"
115
+ forId="${this.id}-input"
116
+ ?counter=${this.multiple&&!!this.maxlength}
117
+ .counterCurrent=${this.value?this._value.length:0}
118
+ .counterMaxLength=${this.maxlength}
119
+ ?disabled=${this.disabled}
120
+ ?hasError=${this.hasError}
121
+ ?required=${this.required}
122
+ ?optionalTag=${this.optionalTag}
123
+ ?requiredTag=${this.requiredTag}
124
+ ?useWrapper=${this.useWrapper}
125
+ .optionalText=${this.optionalText}
126
+ .requiredText=${this.requiredText}
127
+ .errorMessage=${this.errorMessage}
128
+ .helptext=${this.helptext}
129
+ .helptextDropdown=${this.helptextDropdown}
130
+ .helptextDropdownButton=${this.helptextDropdownButton}
131
+ .ariaDescribedBy=${this.ariaDescribedBy}
132
+ class="pkt-datepicker"
133
+ >
134
+ ${this.multiple?this.renderTags():s.E}
135
+ <div
136
+ class="pkt-datepicker__inputs ${this.range&&this.showRangeLabels?"pkt-input__range-inputs":""}"
137
+ >
138
+ <div class="pkt-input__container">
139
+ ${this.range?this.renderRangeInput():this.multiple?this.renderMultipleInput():this.renderInput()}
140
+ <button
141
+ class="${$.e(this.buttonClasses)}"
142
+ type="button"
143
+ @click=${this.toggleCalendar}
144
+ ?disabled=${this.disabled}
145
+ ${r.n(this.btnRef)}
146
+ >
147
+ <pkt-icon name="calendar"></pkt-icon>
148
+ <span class="pkt-btn__text">${this.strings.calendar.buttonAltText}</span>
149
+ </button>
150
+ </div>
151
+ </div>
152
+ </pkt-input-wrapper>
153
+ ${this.renderCalendar()}
154
+ `}handleCalendarPosition(){var e;if(this.popupRef.value&&this.inputRef.value){const t=this.multiple&&!!this.maxlength,i=((e=this.inputRef.value.parentElement)==null?void 0:e.getBoundingClientRect())||this.inputRef.value.getBoundingClientRect(),a=t?i.height+30:i.height,n=this.popupRef.value.getBoundingClientRect().height;let l=t?"calc(100% - 30px)":"100%";i&&i.top+n>window.innerHeight&&i.top-n>0&&(l=`calc(100% - ${a}px - ${n}px)`),this.popupRef.value.style.top=l}}handleFocusOut(e){this.contains(e.target)||(this.onBlur(),this.hideCalendar())}async showCalendar(){var e;this.calendarOpen=!0,await C(20),this.handleCalendarPosition(),this.isMobileSafari&&((e=this.calRef.value)==null||e.focusOnCurrentDate())}hideCalendar(){this.calendarOpen=!1}async toggleCalendar(e){e.preventDefault(),this.calendarOpen?this.hideCalendar():this.showCalendar()}};p([s.n({type:String,reflect:!0})],exports.PktDatepicker.prototype,"value",2);p([s.n({type:Array})],exports.PktDatepicker.prototype,"_value",2);p([s.n({type:String,reflect:!0})],exports.PktDatepicker.prototype,"label",2);p([s.n({type:String})],exports.PktDatepicker.prototype,"dateformat",2);p([s.n({type:Boolean,reflect:!0})],exports.PktDatepicker.prototype,"multiple",2);p([s.n({type:Number,reflect:!0})],exports.PktDatepicker.prototype,"maxlength",2);p([s.n({type:Boolean,reflect:!0})],exports.PktDatepicker.prototype,"range",2);p([s.n({type:Boolean})],exports.PktDatepicker.prototype,"showRangeLabels",2);p([s.n({type:String,reflect:!0})],exports.PktDatepicker.prototype,"min",2);p([s.n({type:String,reflect:!0})],exports.PktDatepicker.prototype,"max",2);p([s.n({type:Boolean})],exports.PktDatepicker.prototype,"weeknumbers",2);p([s.n({type:Boolean,reflect:!0})],exports.PktDatepicker.prototype,"withcontrols",2);p([s.n({converter:g.converters.csvToArray})],exports.PktDatepicker.prototype,"excludedates",2);p([s.n({converter:g.converters.csvToArray})],exports.PktDatepicker.prototype,"excludeweekdays",2);p([s.n({type:String})],exports.PktDatepicker.prototype,"currentmonth",2);p([s.n({type:Boolean,reflect:!0})],exports.PktDatepicker.prototype,"calendarOpen",2);p([s.n({type:String})],exports.PktDatepicker.prototype,"timezone",2);p([T.r()],exports.PktDatepicker.prototype,"inputClasses",2);p([T.r()],exports.PktDatepicker.prototype,"buttonClasses",2);exports.PktDatepicker=p([s.t("pkt-datepicker")],exports.PktDatepicker);
@@ -0,0 +1,194 @@
1
+ import { P as u, x as i, n as l, t as h, o as m, E as k } from "./icon-wUXeHiBk.js";
2
+ import { e as c } from "./class-map-hz16xq5a.js";
3
+ import { r as f } from "./state-BfyXV7EL.js";
4
+ import { u as x } from "./stringutils-DJjRa8dG.js";
5
+ const v = "pkt-inputwrapper", g = !0, y = {
6
+ toggleHelpText: {
7
+ description: "Event for å vise eller skjule hjelpetekst i dropdown"
8
+ }
9
+ }, b = {
10
+ forId: {
11
+ name: "For ID",
12
+ description: "Id-en til skjemaelementet som dette wrapper rundt",
13
+ type: "string",
14
+ required: !0
15
+ },
16
+ label: {
17
+ name: "Merkelapp",
18
+ description: "Merkelapp for skjemaelementet",
19
+ type: "string",
20
+ required: !0
21
+ },
22
+ helptext: {
23
+ name: "Hjelpetekst",
24
+ description: "Hjelpetekst for skjemaelementet",
25
+ type: "string"
26
+ },
27
+ helptextDropdown: {
28
+ name: "Hjelpetekst i dropdown",
29
+ description: "Hjelpetekst som vises i ekspanderende felt",
30
+ type: "string"
31
+ },
32
+ helptextDropdownButton: {
33
+ name: "Tekst i hjelpetekst-knapp",
34
+ description: "Tekst som vises i knappen for å vise hjelpetekst i dropdown",
35
+ default: "Les mer <span class='pkt-sr-only'>om feltet</span>",
36
+ type: "string"
37
+ },
38
+ ariaDescribedby: {
39
+ name: "aria-describedby",
40
+ description: "Id-en til elementet som beskriver skjemaelementet",
41
+ type: "string"
42
+ },
43
+ counter: {
44
+ name: "Teller",
45
+ description: "Teller for antall tegn i skjemaelementet",
46
+ type: "boolean",
47
+ default: !1
48
+ },
49
+ counterCurrent: {
50
+ name: "Tellerverdi",
51
+ description: "Tellerens nåværende verdi",
52
+ type: "number"
53
+ },
54
+ counterMaxLength: {
55
+ name: "Maks tegn i teller",
56
+ description: "Maks antall tegn som kan skrives i skjemaelementet",
57
+ type: "number"
58
+ },
59
+ optionalTag: {
60
+ name: "Vise valgfritt-merking",
61
+ description: "Viser en merking som indikerer at feltet er valgfritt",
62
+ type: "boolean",
63
+ default: !1
64
+ },
65
+ optionalText: {
66
+ name: "Valgfritt-tekst",
67
+ description: "Tekst som vises i valgfritt-merkingen",
68
+ type: "string",
69
+ default: "Valgfritt"
70
+ },
71
+ requiredTag: {
72
+ name: "Vise påkrevd-merking",
73
+ description: "Viser en merking som indikerer at feltet er påkrevd",
74
+ type: "boolean",
75
+ default: !1
76
+ },
77
+ requiredText: {
78
+ name: "Påkrevd-tekst",
79
+ description: "Tekst som vises i påkrevd-merkingen",
80
+ type: "string",
81
+ default: "Må fylles ut"
82
+ },
83
+ hasError: {
84
+ name: "Feil",
85
+ description: "Indikerer at skjemaelementet har en feil",
86
+ type: "boolean",
87
+ default: !1
88
+ },
89
+ errorMessage: {
90
+ name: "Feilmelding",
91
+ description: "Feilmelding som vises i tilknytning til skjemaelementet",
92
+ type: "string"
93
+ },
94
+ disabled: {
95
+ name: "Deaktivert",
96
+ description: "Indikerer at skjemaelementet er deaktivert",
97
+ type: "boolean",
98
+ default: !1
99
+ },
100
+ inline: {
101
+ name: "Inline",
102
+ description: "Indikerer at skjemaelementet skal flyte sammen med sidens innhold",
103
+ type: "boolean",
104
+ default: !1
105
+ },
106
+ hasFieldset: {
107
+ name: "Har fieldset",
108
+ description: "Indikerer at skjemaelementet er en del av et fieldset",
109
+ type: "boolean",
110
+ default: !1
111
+ },
112
+ useWrapper: {
113
+ name: "Bruk wrapper",
114
+ description: "Indikerer om skjemaelementet skal bruke en wrapper",
115
+ type: "boolean",
116
+ displayAsFalse: !0,
117
+ default: !0
118
+ }
119
+ }, w = {
120
+ name: v,
121
+ "css-class": "pkt-inputwrapper",
122
+ isElement: g,
123
+ events: y,
124
+ props: b
125
+ };
126
+ var j = Object.defineProperty, T = Object.getOwnPropertyDescriptor, n = (p, r, o, s) => {
127
+ for (var e = s > 1 ? void 0 : s ? T(r, o) : r, a = p.length - 1, d; a >= 0; a--)
128
+ (d = p[a]) && (e = (s ? d(r, o, e) : d(e)) || e);
129
+ return s && e && j(r, o, e), e;
130
+ };
131
+ let t = class extends u {
132
+ constructor() {
133
+ super(), this.forId = x(), this.helptext = "", this.helptextDropdown = "", this.helptextDropdownButton = w.props.helptextDropdownButton.default, this.isHelpTextOpen = !1;
134
+ }
135
+ render() {
136
+ const p = () => {
137
+ this.isHelpTextOpen = !this.isHelpTextOpen, this.dispatchEvent(
138
+ new CustomEvent("toggleHelpText", {
139
+ bubbles: !0,
140
+ detail: { isOpen: !this.isHelpTextOpen }
141
+ })
142
+ );
143
+ };
144
+ return i`${this.helptext || this.helptextDropdown ? i`<div>
145
+ ${this.helptext ? i`<div class="pkt-inputwrapper__helptext" id="${this.forId}-helptext">
146
+ ${m(this.helptext)}
147
+ </div>` : k}
148
+ ${this.helptextDropdown ? i`<div class="pkt-inputwrapper__helptext-expandable">
149
+ <button
150
+ class="pkt-link pkt-link--icon-right pkt-btn pkt-btn--small pkt-btn--tertiary pkt-btn--icon-right"
151
+ type="button"
152
+ @click=${p}
153
+ >
154
+ <pkt-icon
155
+ class="pkt-btn__icon"
156
+ name="${this.isHelpTextOpen ? "chevron-thin-up" : "chevron-thin-down"}"
157
+ ></pkt-icon>
158
+ <span class="pkt-btn__text">${m(this.helptextDropdownButton)}</span>
159
+ </button>
160
+ <div
161
+ class="${c({
162
+ "pkt-inputwrapper__helptext": !0,
163
+ "pkt-inputwrapper__helptext-expandable-open": this.isHelpTextOpen,
164
+ "pkt-inputwrapper__helptext-expandable-closed": !this.isHelpTextOpen
165
+ })}"
166
+ >
167
+ ${m(this.helptextDropdown)}
168
+ </div>
169
+ </div>` : k}
170
+ </div>` : k}`;
171
+ }
172
+ };
173
+ n([
174
+ l({ type: String, reflect: !0 })
175
+ ], t.prototype, "forId", 2);
176
+ n([
177
+ l({ type: String, reflect: !0 })
178
+ ], t.prototype, "helptext", 2);
179
+ n([
180
+ l({ type: String, reflect: !0 })
181
+ ], t.prototype, "helptextDropdown", 2);
182
+ n([
183
+ l({ type: String, reflect: !0 })
184
+ ], t.prototype, "helptextDropdownButton", 2);
185
+ n([
186
+ f()
187
+ ], t.prototype, "isHelpTextOpen", 2);
188
+ t = n([
189
+ h("pkt-helptext")
190
+ ], t);
191
+ export {
192
+ t as P,
193
+ w as s
194
+ };
@@ -0,0 +1,23 @@
1
+ "use strict";const e=require("./icon-CdMQ6zBT.cjs"),d=require("./class-map-Boa7BqCc.cjs"),k=require("./state-SKYD8kRO.cjs"),m=require("./stringutils-CkVRq4jP.cjs"),u="pkt-inputwrapper",c=!0,h={toggleHelpText:{description:"Event for å vise eller skjule hjelpetekst i dropdown"}},x={forId:{name:"For ID",description:"Id-en til skjemaelementet som dette wrapper rundt",type:"string",required:!0},label:{name:"Merkelapp",description:"Merkelapp for skjemaelementet",type:"string",required:!0},helptext:{name:"Hjelpetekst",description:"Hjelpetekst for skjemaelementet",type:"string"},helptextDropdown:{name:"Hjelpetekst i dropdown",description:"Hjelpetekst som vises i ekspanderende felt",type:"string"},helptextDropdownButton:{name:"Tekst i hjelpetekst-knapp",description:"Tekst som vises i knappen for å vise hjelpetekst i dropdown",default:"Les mer <span class='pkt-sr-only'>om feltet</span>",type:"string"},ariaDescribedby:{name:"aria-describedby",description:"Id-en til elementet som beskriver skjemaelementet",type:"string"},counter:{name:"Teller",description:"Teller for antall tegn i skjemaelementet",type:"boolean",default:!1},counterCurrent:{name:"Tellerverdi",description:"Tellerens nåværende verdi",type:"number"},counterMaxLength:{name:"Maks tegn i teller",description:"Maks antall tegn som kan skrives i skjemaelementet",type:"number"},optionalTag:{name:"Vise valgfritt-merking",description:"Viser en merking som indikerer at feltet er valgfritt",type:"boolean",default:!1},optionalText:{name:"Valgfritt-tekst",description:"Tekst som vises i valgfritt-merkingen",type:"string",default:"Valgfritt"},requiredTag:{name:"Vise påkrevd-merking",description:"Viser en merking som indikerer at feltet er påkrevd",type:"boolean",default:!1},requiredText:{name:"Påkrevd-tekst",description:"Tekst som vises i påkrevd-merkingen",type:"string",default:"Må fylles ut"},hasError:{name:"Feil",description:"Indikerer at skjemaelementet har en feil",type:"boolean",default:!1},errorMessage:{name:"Feilmelding",description:"Feilmelding som vises i tilknytning til skjemaelementet",type:"string"},disabled:{name:"Deaktivert",description:"Indikerer at skjemaelementet er deaktivert",type:"boolean",default:!1},inline:{name:"Inline",description:"Indikerer at skjemaelementet skal flyte sammen med sidens innhold",type:"boolean",default:!1},hasFieldset:{name:"Har fieldset",description:"Indikerer at skjemaelementet er en del av et fieldset",type:"boolean",default:!1},useWrapper:{name:"Bruk wrapper",description:"Indikerer om skjemaelementet skal bruke en wrapper",type:"boolean",displayAsFalse:!0,default:!0}},a={name:u,"css-class":"pkt-inputwrapper",isElement:c,events:h,props:x};var f=Object.defineProperty,g=Object.getOwnPropertyDescriptor,r=(i,n,p,s)=>{for(var t=s>1?void 0:s?g(n,p):n,l=i.length-1,o;l>=0;l--)(o=i[l])&&(t=(s?o(n,p,t):o(t))||t);return s&&t&&f(n,p,t),t};exports.PktHelptext=class extends e.PktElement{constructor(){super(),this.forId=m.uuidish(),this.helptext="",this.helptextDropdown="",this.helptextDropdownButton=a.props.helptextDropdownButton.default,this.isHelpTextOpen=!1}render(){const n=()=>{this.isHelpTextOpen=!this.isHelpTextOpen,this.dispatchEvent(new CustomEvent("toggleHelpText",{bubbles:!0,detail:{isOpen:!this.isHelpTextOpen}}))},p=()=>this.helptext||this.helptextDropdown?e.x`<div>
2
+ ${this.helptext?e.x`<div class="pkt-inputwrapper__helptext" id="${this.forId}-helptext">
3
+ ${e.o(this.helptext)}
4
+ </div>`:e.E}
5
+ ${this.helptextDropdown?e.x`<div class="pkt-inputwrapper__helptext-expandable">
6
+ <button
7
+ class="pkt-link pkt-link--icon-right pkt-btn pkt-btn--small pkt-btn--tertiary pkt-btn--icon-right"
8
+ type="button"
9
+ @click=${n}
10
+ >
11
+ <pkt-icon
12
+ class="pkt-btn__icon"
13
+ name="${this.isHelpTextOpen?"chevron-thin-up":"chevron-thin-down"}"
14
+ ></pkt-icon>
15
+ <span class="pkt-btn__text">${e.o(this.helptextDropdownButton)}</span>
16
+ </button>
17
+ <div
18
+ class="${d.e({"pkt-inputwrapper__helptext":!0,"pkt-inputwrapper__helptext-expandable-open":this.isHelpTextOpen,"pkt-inputwrapper__helptext-expandable-closed":!this.isHelpTextOpen})}"
19
+ >
20
+ ${e.o(this.helptextDropdown)}
21
+ </div>
22
+ </div>`:e.E}
23
+ </div>`:e.E;return e.x`${p()}`}};r([e.n({type:String,reflect:!0})],exports.PktHelptext.prototype,"forId",2);r([e.n({type:String,reflect:!0})],exports.PktHelptext.prototype,"helptext",2);r([e.n({type:String,reflect:!0})],exports.PktHelptext.prototype,"helptextDropdown",2);r([e.n({type:String,reflect:!0})],exports.PktHelptext.prototype,"helptextDropdownButton",2);r([k.r()],exports.PktHelptext.prototype,"isHelpTextOpen",2);exports.PktHelptext=r([e.t("pkt-helptext")],exports.PktHelptext);exports.specs=a;