@oslokommune/punkt-elements 13.5.13 → 13.6.1

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 (133) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/dist/{accordionitem-Csh7iSVG.cjs → accordionitem-BOmnm80g.cjs} +1 -1
  3. package/dist/{accordionitem-C9T3nlM0.js → accordionitem-B_h5XGCo.js} +4 -4
  4. package/dist/{alert-cUBtwi2k.js → alert-CTTm6ugp.js} +6 -6
  5. package/dist/{alert-7rUOhlNi.cjs → alert-ZP5-fqlt.cjs} +1 -1
  6. package/dist/{backlink-JbBNi3qg.cjs → backlink-BT7DO6rV.cjs} +1 -1
  7. package/dist/{backlink-C2jbzu0U.js → backlink-Bq8O2bt8.js} +3 -3
  8. package/dist/{button-B8rdtaHB.cjs → button-BfqxLnMT.cjs} +1 -1
  9. package/dist/{button-DhispFOY.js → button-x6Xw-5w0.js} +5 -5
  10. package/dist/{calendar-32W9p9uc.cjs → calendar-CL9O0tLP.cjs} +1 -1
  11. package/dist/{calendar-CJSxvwAq.js → calendar-ChphTIhk.js} +7 -7
  12. package/dist/{card-DBlFf1ry.cjs → card-BwLe5f50.cjs} +1 -1
  13. package/dist/{card-BDz4RWxK.js → card-DpUEM1tU.js} +7 -7
  14. package/dist/{checkbox-Gn7Wtk9h.cjs → checkbox-CH8xeK-0.cjs} +1 -1
  15. package/dist/{checkbox-ym7z6cpt.js → checkbox-DSAcMC-D.js} +4 -4
  16. package/dist/{class-map-BBG2gMX4.cjs → class-map-CG3vIaNm.cjs} +1 -1
  17. package/dist/{class-map-BpTj9gtz.js → class-map-Dw6Wrxwi.js} +1 -1
  18. package/dist/{combobox-D84REr9N.cjs → combobox-COuxR036.cjs} +1 -1
  19. package/dist/{combobox-BXP1PL0M.js → combobox-D3aPvdrE.js} +11 -11
  20. package/dist/{consent-BpcQFvbi.js → consent-CXp0bLvg.js} +3 -3
  21. package/dist/{consent-hYeFWNFr.cjs → consent-DFrsiYGQ.cjs} +1 -1
  22. package/dist/datepicker-CV73pLqD.cjs +169 -0
  23. package/dist/{datepicker-F3TwE9o7.js → datepicker-Ca552mbJ.js} +148 -111
  24. package/dist/{directive-helpers-BBbxqP2W.cjs → directive-helpers-_qHew-gi.cjs} +1 -1
  25. package/dist/{directive-helpers-r-kOS_Mf.js → directive-helpers-cAOIHg9K.js} +1 -1
  26. package/dist/element-D62wHiNU.cjs +27 -0
  27. package/dist/element-DJZPsA_J.js +722 -0
  28. package/dist/{heading-CNycsyMj.cjs → heading-BBzoDZGk.cjs} +1 -1
  29. package/dist/{heading-Bdh9absf.js → heading-CfxZa1QR.js} +1 -1
  30. package/dist/{helptext-B7eI0iBQ.js → helptext-8ykxyegi.js} +5 -5
  31. package/dist/{helptext-CzQX6YVE.cjs → helptext-D1fkGmfT.cjs} +1 -1
  32. package/dist/{icon-CC1js8eR.js → icon-B1-mkmwB.js} +1 -1
  33. package/dist/{icon-B_ryAy4Q.cjs → icon-__Hjt2XZ.cjs} +1 -1
  34. package/dist/{if-defined-Cni-RHLS.cjs → if-defined-CkVc_RJD.cjs} +1 -1
  35. package/dist/{if-defined-CmuO4Vz9.js → if-defined-D3lgJqT7.js} +1 -1
  36. package/dist/index.d.ts +24 -6
  37. package/dist/{input-element-NnrDmp4r.js → input-element-DQOVrqUZ.js} +2 -2
  38. package/dist/{input-element-C4xJoM-X.cjs → input-element-Y8sdrq9C.cjs} +1 -1
  39. package/dist/{input-wrapper-CZ-a00V7.cjs → input-wrapper-C9rZEgju.cjs} +1 -1
  40. package/dist/{input-wrapper-Dr__Sxql.js → input-wrapper-D_JdEqcO.js} +6 -6
  41. package/dist/{link-Cjl0xwSq.cjs → link-CyiVlb-7.cjs} +1 -1
  42. package/dist/{link-AIyVfcyH.js → link-DSSJYrtn.js} +4 -4
  43. package/dist/{linkcard-DqIvb54H.cjs → linkcard-fH9uydjS.cjs} +1 -1
  44. package/dist/{linkcard-9CNlyT0S.js → linkcard-g8JtooPU.js} +4 -4
  45. package/dist/{listbox-C4supLfR.cjs → listbox-BBO1d5Jd.cjs} +1 -1
  46. package/dist/{listbox-CLsSW32I.js → listbox-DJ7b3Wmc.js} +5 -5
  47. package/dist/{loader-h3d-3D7s.js → loader-Bzf1sPSg.js} +5 -5
  48. package/dist/{loader-DNidjwH-.cjs → loader-C-3l7kb9.cjs} +1 -1
  49. package/dist/{messagebox-CjPtPPrW.cjs → messagebox---xPIAwR.cjs} +1 -1
  50. package/dist/{messagebox-C8KQgCl_.js → messagebox-okJLeSpj.js} +5 -5
  51. package/dist/{modal-CRtxhCaP.cjs → modal-IjDRQfX1.cjs} +1 -1
  52. package/dist/{modal-Zj8yRX3K.js → modal-pohCsr_x.js} +5 -5
  53. package/dist/pkt-accordion.cjs +1 -1
  54. package/dist/pkt-accordion.js +2 -2
  55. package/dist/pkt-alert.cjs +1 -1
  56. package/dist/pkt-alert.js +1 -1
  57. package/dist/pkt-backlink.cjs +1 -1
  58. package/dist/pkt-backlink.js +1 -1
  59. package/dist/pkt-button.cjs +1 -1
  60. package/dist/pkt-button.js +1 -1
  61. package/dist/pkt-calendar.cjs +1 -1
  62. package/dist/pkt-calendar.js +1 -1
  63. package/dist/pkt-card.cjs +1 -1
  64. package/dist/pkt-card.js +1 -1
  65. package/dist/pkt-checkbox.cjs +1 -1
  66. package/dist/pkt-checkbox.js +1 -1
  67. package/dist/pkt-combobox.cjs +1 -1
  68. package/dist/pkt-combobox.js +1 -1
  69. package/dist/pkt-consent.cjs +1 -1
  70. package/dist/pkt-consent.js +1 -1
  71. package/dist/pkt-datepicker.cjs +1 -1
  72. package/dist/pkt-datepicker.js +3 -3
  73. package/dist/pkt-heading.cjs +1 -1
  74. package/dist/pkt-heading.js +1 -1
  75. package/dist/pkt-helptext.cjs +1 -1
  76. package/dist/pkt-helptext.js +1 -1
  77. package/dist/pkt-icon.cjs +1 -1
  78. package/dist/pkt-icon.js +1 -1
  79. package/dist/pkt-index.cjs +3 -3
  80. package/dist/pkt-index.js +55 -54
  81. package/dist/pkt-input-wrapper.cjs +1 -1
  82. package/dist/pkt-input-wrapper.js +1 -1
  83. package/dist/pkt-link.cjs +1 -1
  84. package/dist/pkt-link.js +1 -1
  85. package/dist/pkt-linkcard.cjs +1 -1
  86. package/dist/pkt-linkcard.js +1 -1
  87. package/dist/pkt-listbox.cjs +1 -1
  88. package/dist/pkt-listbox.js +1 -1
  89. package/dist/pkt-loader.cjs +1 -1
  90. package/dist/pkt-loader.js +1 -1
  91. package/dist/pkt-messagebox.cjs +1 -1
  92. package/dist/pkt-messagebox.js +1 -1
  93. package/dist/pkt-modal.cjs +1 -1
  94. package/dist/pkt-modal.js +1 -1
  95. package/dist/pkt-progressbar.cjs +1 -1
  96. package/dist/pkt-progressbar.js +2 -2
  97. package/dist/pkt-radiobutton.cjs +1 -1
  98. package/dist/pkt-radiobutton.js +1 -1
  99. package/dist/pkt-select.cjs +1 -1
  100. package/dist/pkt-select.js +1 -1
  101. package/dist/pkt-tag.cjs +1 -1
  102. package/dist/pkt-tag.js +1 -1
  103. package/dist/pkt-textarea.cjs +1 -1
  104. package/dist/pkt-textarea.js +1 -1
  105. package/dist/pkt-textinput.cjs +1 -1
  106. package/dist/pkt-textinput.js +1 -1
  107. package/dist/{progressbar-DhMBXkww.cjs → progressbar-DJzEC7cx.cjs} +1 -1
  108. package/dist/{progressbar-Dj_mI_A6.js → progressbar-DjsupQ7Y.js} +5 -5
  109. package/dist/{radiobutton-CWxiIVfA.js → radiobutton-Bz_qApF3.js} +5 -5
  110. package/dist/{radiobutton-CdT6v1oq.cjs → radiobutton-DEboKECm.cjs} +1 -1
  111. package/dist/{ref-BBYSqgeW.js → ref-BCGCor-j.js} +2 -2
  112. package/dist/{ref-iJtiv3o2.cjs → ref-BfgcOXko.cjs} +1 -1
  113. package/dist/{repeat-C8BeHwYx.js → repeat-B6qPUgAq.js} +2 -2
  114. package/dist/{repeat-CDsZqct8.cjs → repeat-DzibMwhi.cjs} +1 -1
  115. package/dist/{select-Be--DBcR.cjs → select-Cf1RWSsI.cjs} +1 -1
  116. package/dist/{select-VpX_cjMM.js → select-D7OQaUrQ.js} +6 -6
  117. package/dist/{state-DPobt-Yz.cjs → state-BkE_Rxl7.cjs} +1 -1
  118. package/dist/{state-Bo2bck5_.js → state-CPQXJ4Ct.js} +1 -1
  119. package/dist/{tag-Bbs0U_Au.cjs → tag-BKq07hGI.cjs} +1 -1
  120. package/dist/{tag-DyXzTY68.js → tag-NZ5oeGfw.js} +6 -6
  121. package/dist/{textarea-BZL8Mkm0.js → textarea-C0vTWTov.js} +9 -9
  122. package/dist/{textarea-CPXsMFUq.cjs → textarea-CXu8UUsY.cjs} +1 -1
  123. package/dist/{textinput-aNI5kibM.cjs → textinput-C6wccDhZ.cjs} +1 -1
  124. package/dist/{textinput-DjPhmmkB.js → textinput-CmZrfH4A.js} +8 -8
  125. package/package.json +2 -3
  126. package/src/components/accordion/accordionitem.ts +1 -1
  127. package/src/components/datepicker/date-tags.test.ts +126 -0
  128. package/src/components/datepicker/date-tags.ts +59 -0
  129. package/src/components/datepicker/datepicker.ts +13 -35
  130. package/src/components/index.ts +1 -0
  131. package/dist/datepicker-DonUad47.cjs +0 -164
  132. package/dist/element-6DBpyGQm.cjs +0 -238
  133. package/dist/element-CgEWt74-.js +0 -21288
@@ -0,0 +1,169 @@
1
+ "use strict";const c=require("./class-map-CG3vIaNm.cjs"),o=require("./if-defined-CkVc_RJD.cjs"),s=require("./element-D62wHiNU.cjs"),m=require("./state-BkE_Rxl7.cjs"),u=require("./calendar-CL9O0tLP.cjs"),y=require("./input-element-Y8sdrq9C.cjs"),n=require("./ref-BfgcOXko.cjs");require("./icon-__Hjt2XZ.cjs");require("./input-wrapper-C9rZEgju.cjs");const k=require("./repeat-DzibMwhi.cjs");require("./tag-BKq07hGI.cjs");const $=require("./stringutils-CkVRq4jP.cjs"),b=require("./pkt-slot-controller-BzddBp7z.cjs");var x=Object.defineProperty,D=Object.getOwnPropertyDescriptor,f=(p,t,e,i)=>{for(var a=i>1?void 0:i?D(t,e):t,l=p.length-1,h;l>=0;l--)(h=p[l])&&(a=(i?h(t,e,a):h(a))||a);return i&&a&&x(t,e,a),a};exports.PktDateTags=class extends s.PktElement{constructor(){super(...arguments),this.dates=[],this.dateformat="dd.MM.yyyy",this.className="pkt-datepicker__tags",this.idBase=$.uuidish()}render(){return this.classes={"pkt-date-tags":!0,[this.className]:!0},s.x`
2
+ <div class=${c.e(this.classes)} aria-live="polite">
3
+ ${Array.isArray(this.dates)&&this.dates[0]?k.c((this.dates??[]).filter(Boolean).sort(),t=>t,t=>{var e;return s.x` <pkt-tag
4
+ id=${this.idBase+t+"-tag"}
5
+ closeTag
6
+ @close=${()=>{this.dispatchEvent(new CustomEvent("date-tag-removed",{detail:t}))}}
7
+ .ariaLabel=${`${(e=this.strings)==null?void 0:e.calendar.deleteDate} ${u.fromISOtoLocal(t,this.dateformat)}`}
8
+ >
9
+ <time datetime=${t}>${u.fromISOtoLocal(t,this.dateformat)}</time>
10
+ </pkt-tag>`}):s.E}
11
+ </div>
12
+ `}};f([s.n({type:Array})],exports.PktDateTags.prototype,"dates",2);f([s.n({type:String})],exports.PktDateTags.prototype,"dateformat",2);f([s.n({type:String,attribute:"class"})],exports.PktDateTags.prototype,"className",2);f([s.n({type:String,attribute:"id-base"})],exports.PktDateTags.prototype,"idBase",2);exports.PktDateTags=f([s.t("pkt-date-tags")],exports.PktDateTags);const w={dateformat:{default:"dd.MM.yyyy"},min:{default:null},max:{default:null},weeknumbers:{default:!1},withcontrols:{default:!1},multiple:{default:!1},range:{default:!1}},d={props:w};var R=Object.defineProperty,C=Object.getOwnPropertyDescriptor,r=(p,t,e,i)=>{for(var a=i>1?void 0:i?C(t,e):t,l=p.length-1,h;l>=0;l--)(h=p[l])&&(a=(i?h(t,e,a):h(a))||a);return i&&a&&R(t,e,a),a};const v=p=>new Promise(t=>setTimeout(t,p));exports.PktDatepicker=class extends y.PktInputElement{constructor(){super(),this._valueProperty="",this._value=[],this.label="Datovelger",this.dateformat=d.props.dateformat.default,this.multiple=d.props.multiple.default,this.maxlength=null,this.range=d.props.range.default,this.showRangeLabels=!1,this.min=null,this.max=null,this.weeknumbers=d.props.weeknumbers.default,this.withcontrols=d.props.withcontrols.default,this.excludedates=[],this.excludeweekdays=[],this.currentmonth=null,this.calendarOpen=!1,this.timezone="Europe/Oslo",this.inputClasses={},this.buttonClasses={},this.inputRef=n.e(),this.inputRefTo=n.e(),this.btnRef=n.e(),this.calRef=n.e(),this.popupRef=n.e(),this.helptextSlot=n.e(),this.addToSelected=t=>{const e=t.target;if(!e.value)return;const i=this.min?u.newDate(this.min):null,a=this.max?u.newDate(this.max):null,l=u.newDate(e.value.split(",")[0]);l&&!isNaN(l.getTime())&&(!i||l>=i)&&(!a||l<=a)&&this.calRef.value&&this.calRef.value.handleDateSelect(l),e.value=""},this.slotController=new b.PktSlotController(this,this.helptextSlot)}get value(){return this._valueProperty}set value(t){const e=this._valueProperty;this._valueProperty=Array.isArray(t)?t.join(","):t||"",this.valueChanged(this._valueProperty,e),this.requestUpdate("value",e)}async connectedCallback(){super.connectedCallback();const t=navigator.userAgent,e=/iP(hone|od|ad)/.test(t);this.inputType=e?"text":"date",document&&document.body.addEventListener("click",i=>{var a,l;(a=this.inputRef)!=null&&a.value&&((l=this.btnRef)!=null&&l.value)&&!this.inputRef.value.contains(i.target)&&!(this.inputRefTo.value&&this.inputRefTo.value.contains(i.target))&&!this.btnRef.value.contains(i.target)&&!i.target.closest(".pkt-calendar-popup")&&this.calendarOpen&&(this.onBlur(),this.hideCalendar())}),document&&document.body.addEventListener("keydown",i=>{i.key==="Escape"&&this.calendarOpen&&this.hideCalendar()}),this.value&&(this._value=Array.isArray(this.value)?this.value.filter(Boolean):this.value.split(",").filter(Boolean)),this.min=this.min||d.props.min.default,this.max=this.max||d.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 v(20),this.handleCalendarPosition())}disconnectedCallback(){super.disconnectedCallback(),document&&document.body.removeEventListener("click",t=>{var e,i;(e=this.inputRef)!=null&&e.value&&((i=this.btnRef)!=null&&i.value)&&!this.inputRef.value.contains(t.target)&&!this.btnRef.value.contains(t.target)&&this.hideCalendar()})}onInput(){this.dispatchEvent(new Event("input",{bubbles:!0}))}valueChanged(t,e){if(t===e)return;let i=[];t&&(typeof t=="string"?i=t.split(",").filter(Boolean):i=String(t).split(",").filter(Boolean)),this._value=i;const a=i.join(",");this._valueProperty!==a&&(this._valueProperty=a),super.valueChanged(a,e)}attributeChangedCallback(t,e,i){t==="value"&&this.value!==e&&this.valueChanged(i,e),t==="excludedates"&&typeof this.excludedates=="string"&&(this.excludedates=(i==null?void 0:i.split(","))??[]),t==="excludeweekdays"&&typeof this.excludeweekdays=="string"&&(this.excludeweekdays=(i==null?void 0:i.split(","))??[]),super.attributeChangedCallback(t,e,i)}updated(t){if(t.has("value")){const e=Array.isArray(this.value)?this.value.join(","):this.value,i=t.get("value"),a=Array.isArray(i)?i.join(","):i;this.valueChanged(e,a)}t.has("multiple")&&(this.multiple&&!Array.isArray(this._value)?this._value=typeof this.value=="string"?this.value?this.value.split(",").filter(Boolean):[]:[]:!this.multiple&&Array.isArray(this._value)&&(this._value=this._value.filter(Boolean)),!this.multiple&&!this.range&&Array.isArray(this._value)&&(this._value=[this._value[0]??""])),super.updated(t)}renderInput(){return s.x`
13
+ <input
14
+ class="${c.e(this.inputClasses)}"
15
+ .type=${this.inputType}
16
+ id="${this.id}-input"
17
+ .value=${this._value[0]??""}
18
+ min=${o.o(this.min)}
19
+ max=${o.o(this.max)}
20
+ placeholder=${o.o(this.placeholder)}
21
+ ?readonly=${this.readonly}
22
+ aria-describedby="${this.id}-helptext"
23
+ @click=${t=>{t.preventDefault(),this.showCalendar()}}
24
+ ?disabled=${this.disabled}
25
+ @keydown=${t=>{var e,i;if(t.key===","&&((e=this.inputRef.value)==null||e.blur()),(t.key==="Space"||t.key===" ")&&(t.preventDefault(),this.toggleCalendar(t)),t.key==="Enter"){const a=this.internals.form;a?a.requestSubmit():(i=this.inputRef.value)==null||i.blur()}}}
26
+ @input=${t=>{this.onInput(),t.stopImmediatePropagation()}}
27
+ @focus=${()=>{this.onFocus(),this.isMobileSafari&&this.showCalendar()}}
28
+ @blur=${t=>{var e;(e=this.calRef.value)!=null&&e.contains(t.relatedTarget)||this.onBlur(),this.manageValidity(t.target),this.value=t.target.value}}
29
+ @change=${t=>{this.touched=!0,t.stopImmediatePropagation()}}
30
+ ${n.n(this.inputRef)}
31
+ />
32
+ `}renderRangeInput(){const t={"pkt-input-prefix":this.showRangeLabels,"pkt-hide":!this.showRangeLabels};return s.x`
33
+ ${this.showRangeLabels?s.x` <div class="pkt-input-prefix">${this.strings.generic.from}</div> `:s.E}
34
+ <input
35
+ class=${c.e(this.inputClasses)}
36
+ .type=${this.inputType}
37
+ id="${this.id}-input"
38
+ .value=${this._value[0]??""}
39
+ min=${o.o(this.min)}
40
+ max=${o.o(this.max)}
41
+ placeholder=${o.o(this.placeholder)}
42
+ ?readonly=${this.readonly}
43
+ ?disabled=${this.disabled}
44
+ @click=${e=>{e.preventDefault(),this.showCalendar()}}
45
+ @keydown=${e=>{var i,a;if(e.key===","&&((i=this.inputRef.value)==null||i.blur()),(e.key==="Space"||e.key===" ")&&(e.preventDefault(),this.toggleCalendar(e)),e.key==="Enter"){const l=this.internals.form;l?l.requestSubmit():(a=this.inputRefTo.value)==null||a.focus()}}}
46
+ @input=${e=>{this.onInput(),e.stopImmediatePropagation()}}
47
+ @focus=${()=>{this.onFocus(),this.isMobileSafari&&this.showCalendar()}}
48
+ @blur=${e=>{var i,a;if(e.target.value){this.manageValidity(e.target);const l=u.fromISOToDate(e.target.value);l&&this._value[0]!==e.target.value&&this._value[1]&&(this.clearInputValue(),(a=(i=this.calRef)==null?void 0:i.value)==null||a.handleDateSelect(l))}else this._value[0]&&this.clearInputValue()}}
49
+ @change=${e=>{e.stopImmediatePropagation()}}
50
+ ${n.n(this.inputRef)}
51
+ />
52
+ <div class="${c.e(t)}" id="${this.id}-to-label">
53
+ ${this.strings.generic.to}
54
+ </div>
55
+ ${this.showRangeLabels?s.E:s.x` <div class="pkt-input-separator">–</div> `}
56
+ <input
57
+ class=${c.e(this.inputClasses)}
58
+ .type=${this.inputType}
59
+ id="${this.id}-to"
60
+ aria-labelledby="${this.id}-to-label"
61
+ .value=${this._value[1]??""}
62
+ min=${o.o(this.min)}
63
+ max=${o.o(this.max)}
64
+ placeholder=${o.o(this.placeholder)}
65
+ ?readonly=${this.readonly}
66
+ ?disabled=${this.disabled}
67
+ @click=${e=>{e.preventDefault(),this.showCalendar()}}
68
+ @keydown=${e=>{var i,a;if(e.key===","&&((i=this.inputRefTo.value)==null||i.blur()),(e.key==="Space"||e.key===" ")&&(e.preventDefault(),this.toggleCalendar(e)),e.key==="Enter"){const l=this.internals.form;l?l.requestSubmit():(a=this.inputRefTo.value)==null||a.blur()}}}
69
+ @input=${e=>{this.onInput(),e.stopImmediatePropagation()}}
70
+ @focus=${()=>{this.onFocus(),this.isMobileSafari&&this.showCalendar()}}
71
+ @blur=${e=>{var i,a,l;if((i=this.calRef.value)!=null&&i.contains(e.relatedTarget)||this.onBlur(),e.target.value){this.manageValidity(e.target);const h=e.target.value;this.min&&this.min>h?this.internals.setValidity({rangeUnderflow:!0},this.strings.forms.messages.rangeUnderflow,e.target):this.max&&this.max<h&&this.internals.setValidity({rangeOverflow:!0},this.strings.forms.messages.rangeOverflow,e.target);const g=u.fromISOToDate(e.target.value);g&&this._value[1]!==u.formatISODate(g)&&((l=(a=this.calRef)==null?void 0:a.value)==null||l.handleDateSelect(g))}}}
72
+ @change=${e=>{this.touched=!0,e.stopImmediatePropagation()}}
73
+ ${n.n(this.inputRefTo)}
74
+ />
75
+ `}renderMultipleInput(){return s.x`
76
+ <input
77
+ class=${c.e(this.inputClasses)}
78
+ .type=${this.inputType}
79
+ id="${this.id}-input"
80
+ min=${o.o(this.min)}
81
+ max=${o.o(this.max)}
82
+ placeholder=${o.o(this.placeholder)}
83
+ ?readonly=${this.readonly}
84
+ ?disabled=${this.disabled||this.maxlength&&this._value.length>=this.maxlength}
85
+ @click=${t=>{t.preventDefault(),this.showCalendar()}}
86
+ @blur=${t=>{var e;(e=this.calRef.value)!=null&&e.contains(t.relatedTarget)||this.onBlur(),this.addToSelected(t)}}
87
+ @input=${t=>{this.onInput(),t.stopImmediatePropagation()}}
88
+ @focus=${()=>{this.onFocus(),this.isMobileSafari&&this.showCalendar()}}
89
+ @keydown=${t=>{var e;if(t.key===","&&(t.preventDefault(),this.addToSelected(t)),(t.key==="Space"||t.key===" ")&&(t.preventDefault(),this.toggleCalendar(t)),t.key==="Enter"){const i=this.internals.form;i?i.requestSubmit():(e=this.inputRef.value)==null||e.blur()}}}
90
+ @change=${t=>{this.touched=!0,t.stopImmediatePropagation()}}
91
+ ${n.n(this.inputRef)}
92
+ />
93
+ `}renderCalendar(){return s.x`<div
94
+ class="pkt-calendar-popup pkt-${this.calendarOpen?"show":"hide"}"
95
+ @focusout=${t=>{this.calendarOpen&&this.handleFocusOut(t)}}
96
+ id="${this.id}-popup"
97
+ ${n.n(this.popupRef)}
98
+ >
99
+ <pkt-calendar
100
+ id="${this.id}-calendar"
101
+ ?multiple=${this.multiple}
102
+ ?range=${this.range}
103
+ ?weeknumbers=${this.weeknumbers}
104
+ ?withcontrols=${this.withcontrols}
105
+ .maxMultiple=${this.maxlength}
106
+ .selected=${this._value}
107
+ .earliest=${this.min}
108
+ .latest=${this.max}
109
+ .excludedates=${Array.isArray(this.excludedates)?this.excludedates:this.excludedates.split(",")}
110
+ .excludeweekdays=${this.excludeweekdays}
111
+ .currentmonth=${this.currentmonth?u.parseISODateString(this.currentmonth):null}
112
+ @date-selected=${t=>{this.value=!this.multiple&&!this.range?t.detail[0]:Array.isArray(t.detail)?t.detail.join(","):t.detail,this._value=t.detail,this.inputRef.value&&(this.range&&this.inputRefTo.value?(this.inputRef.value.value=this._value[0]??"",this.inputRefTo.value.value=this._value[1]??"",this.manageValidity(this.inputRef.value),this.manageValidity(this.inputRefTo.value)):this.multiple||(this.inputRef.value.value=this._value.length?this._value[0]:"",this.manageValidity(this.inputRef.value)))}}
113
+ @close=${()=>{this.onBlur(),this.hideCalendar()}}
114
+ ${n.n(this.calRef)}
115
+ ></pkt-calendar>
116
+ </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,"pkt-datepicker__calendar-button":!0},s.x`
117
+ <pkt-input-wrapper
118
+ label="${this.label}"
119
+ forId="${this.id}-input"
120
+ ?counter=${this.multiple&&!!this.maxlength}
121
+ .counterCurrent=${this.value?this._value.length:0}
122
+ .counterMaxLength=${this.maxlength}
123
+ ?disabled=${this.disabled}
124
+ ?hasError=${this.hasError}
125
+ ?hasFieldset=${this.hasFieldset}
126
+ ?inline=${this.inline}
127
+ ?required=${this.required}
128
+ ?optionalTag=${this.optionalTag}
129
+ ?requiredTag=${this.requiredTag}
130
+ ?useWrapper=${this.useWrapper}
131
+ .optionalText=${this.optionalText}
132
+ .requiredText=${this.requiredText}
133
+ .tagText=${this.tagText}
134
+ .errorMessage=${this.errorMessage}
135
+ .helptext=${this.helptext}
136
+ .helptextDropdown=${this.helptextDropdown}
137
+ .helptextDropdownButton=${this.helptextDropdownButton}
138
+ .ariaDescribedBy=${this.ariaDescribedBy}
139
+ class="pkt-datepicker"
140
+ >
141
+ <div class="pkt-contents" ${n.n(this.helptextSlot)} name="helptext" slot="helptext"></div>
142
+ ${this.multiple?s.x`<pkt-date-tags
143
+ .dates=${this._value}
144
+ dateformat=${this.dateformat}
145
+ strings=${this.strings}
146
+ id-base=${this.id}
147
+ @date-tag-removed=${t=>{var e;(e=this.calRef.value)==null||e.handleDateSelect(u.fromISOToDate(t.detail))}}
148
+ ></pkt-date-tags>`:s.E}
149
+ <div
150
+ class="pkt-datepicker__inputs ${this.range&&this.showRangeLabels?"pkt-input__range-inputs":""}"
151
+ >
152
+ <div class="pkt-input__container">
153
+ ${this.range?this.renderRangeInput():this.multiple?this.renderMultipleInput():this.renderInput()}
154
+ <button
155
+ class="${c.e(this.buttonClasses)}"
156
+ type="button"
157
+ @click=${this.toggleCalendar}
158
+ @keydown=${t=>{(t.key==="Enter"||t.key===" "||t.key==="Space")&&(t.preventDefault(),this.toggleCalendar(t))}}
159
+ ?disabled=${this.disabled}
160
+ ${n.n(this.btnRef)}
161
+ >
162
+ <pkt-icon name="calendar"></pkt-icon>
163
+ <span class="pkt-btn__text">${this.strings.calendar.buttonAltText}</span>
164
+ </button>
165
+ </div>
166
+ </div>
167
+ </pkt-input-wrapper>
168
+ ${this.renderCalendar()}
169
+ `}handleCalendarPosition(){var t;if(this.popupRef.value&&this.inputRef.value){const e=this.multiple&&!!this.maxlength,i=((t=this.inputRef.value.parentElement)==null?void 0:t.getBoundingClientRect())||this.inputRef.value.getBoundingClientRect(),a=e?i.height+30:i.height,l=this.popupRef.value.getBoundingClientRect().height;let h=e?"calc(100% - 30px)":"100%";i&&i.top+l>window.innerHeight&&i.top-l>0&&(h=`calc(100% - ${a}px - ${l}px)`),this.popupRef.value.style.top=h}}handleFocusOut(t){this.contains(t.target)||(this.onBlur(),this.hideCalendar())}async showCalendar(){var t;this.calendarOpen=!0,await v(20),this.handleCalendarPosition(),this.isMobileSafari&&((t=this.calRef.value)==null||t.focusOnCurrentDate())}hideCalendar(){this.calendarOpen=!1}async toggleCalendar(t){t.preventDefault(),this.calendarOpen?this.hideCalendar():this.showCalendar()}clearInputValue(){this._value=[],this.value=""}};r([s.n({type:String,reflect:!0})],exports.PktDatepicker.prototype,"value",1);r([s.n({type:Array})],exports.PktDatepicker.prototype,"_value",2);r([s.n({type:String,reflect:!0})],exports.PktDatepicker.prototype,"label",2);r([s.n({type:String})],exports.PktDatepicker.prototype,"dateformat",2);r([s.n({type:Boolean,reflect:!0})],exports.PktDatepicker.prototype,"multiple",2);r([s.n({type:Number,reflect:!0})],exports.PktDatepicker.prototype,"maxlength",2);r([s.n({type:Boolean,reflect:!0})],exports.PktDatepicker.prototype,"range",2);r([s.n({type:Boolean})],exports.PktDatepicker.prototype,"showRangeLabels",2);r([s.n({type:String,reflect:!0})],exports.PktDatepicker.prototype,"min",2);r([s.n({type:String,reflect:!0})],exports.PktDatepicker.prototype,"max",2);r([s.n({type:Boolean})],exports.PktDatepicker.prototype,"weeknumbers",2);r([s.n({type:Boolean,reflect:!0})],exports.PktDatepicker.prototype,"withcontrols",2);r([s.n({converter:u.converters.csvToArray})],exports.PktDatepicker.prototype,"excludedates",2);r([s.n({converter:u.converters.csvToArray})],exports.PktDatepicker.prototype,"excludeweekdays",2);r([s.n({type:String})],exports.PktDatepicker.prototype,"currentmonth",2);r([s.n({type:Boolean,reflect:!0})],exports.PktDatepicker.prototype,"calendarOpen",2);r([s.n({type:String})],exports.PktDatepicker.prototype,"timezone",2);r([m.r()],exports.PktDatepicker.prototype,"inputClasses",2);r([m.r()],exports.PktDatepicker.prototype,"buttonClasses",2);exports.PktDatepicker=r([s.t("pkt-datepicker")],exports.PktDatepicker);