@kyndryl-design-system/shidoka-applications 2.70.7 → 2.70.9
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.
- package/components/reusable/blockCodeView/blockCodeView.d.ts +0 -1
- package/components/reusable/blockCodeView/blockCodeView.d.ts.map +1 -1
- package/components/reusable/blockCodeView/blockCodeView.js +4 -4
- package/components/reusable/blockCodeView/blockCodeView.js.map +1 -1
- package/components/reusable/blockCodeView/index.js +1 -1
- package/components/reusable/daterangepicker/daterangepicker.d.ts.map +1 -1
- package/components/reusable/daterangepicker/daterangepicker.js +5 -5
- package/components/reusable/daterangepicker/daterangepicker.js.map +1 -1
- package/index.js +1 -1
- package/package.json +1 -2
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { LitElement } from 'lit';
|
|
2
2
|
import 'prismjs/plugins/autoloader/prism-autoloader';
|
|
3
3
|
import 'prismjs/plugins/line-numbers/prism-line-numbers';
|
|
4
|
-
import 'prismjs-components-importer';
|
|
5
4
|
import '../button';
|
|
6
5
|
/**
|
|
7
6
|
* `<kyn-block-code-view>` component to display `<code>` snippets as standalone single-/multi-line block elements.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockCodeView.d.ts","sourceRoot":"","sources":["../../../../src/components/reusable/blockCodeView/blockCodeView.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,UAAU,EAAa,MAAM,KAAK,CAAC;AAOlD,OAAO,6CAA6C,CAAC;AACrD,OAAO,iDAAiD,CAAC;
|
|
1
|
+
{"version":3,"file":"blockCodeView.d.ts","sourceRoot":"","sources":["../../../../src/components/reusable/blockCodeView/blockCodeView.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,UAAU,EAAa,MAAM,KAAK,CAAC;AAOlD,OAAO,6CAA6C,CAAC;AACrD,OAAO,iDAAiD,CAAC;AAMzD,OAAO,WAAW,CAAC;AAwCnB;;;GAGG;AACH,qBACa,aAAc,SAAQ,UAAU;IAC3C,OAAgB,MAAM,4BAGpB;IAEF,wCAAwC;IAExC,QAAQ,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAa;IAE7D,qJAAqJ;IAErJ,QAAQ,CAAC,QAAQ,SAAM;IAEvB,uCAAuC;IAEvC,QAAQ,CAAC,WAAW,UAAS;IAE7B,0FAA0F;IAE1F,QAAQ,CAAC,eAAe,SAAK;IAE7B,kEAAkE;IAElE,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEzC,+DAA+D;IAE/D,QAAQ,CAAC,aAAa,SAAM;IAE5B,sDAAsD;IAEtD,QAAQ,CAAC,iBAAiB,UAAS;IAEnC,kEAAkE;IAElE,QAAQ,CAAC,kBAAkB,UAAS;IAEpC,6CAA6C;IAE7C,QAAQ,CAAC,cAAc,SAAM;IAE7B,+CAA+C;IAE/C,QAAQ,CAAC,yBAAyB,SAAM;IAExC,+EAA+E;IAE/E,QAAQ,CAAC,WAAW,SAAM;IAE1B,iCAAiC;IAEjC,QAAQ,CAAC,WAAW;;;MAAuB;IAE3C;;OAEG;IAEH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuB;IAEpD;;OAEG;IAEH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IAEvC;;OAEG;IAEH,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IAErC;;OAEG;IAEH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IAEtC;;OAEG;IAEH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA+B;IAE1D;;OAEG;IAEH,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAM;IAEzC;;OAEG;IAEH,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAQ;IAEjD;;OAEG;IAEH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAuB;IAE9C,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAkC/C,MAAM;IA6Bf,OAAO,CAAC,mBAAmB;IAiB3B,OAAO,CAAC,gBAAgB;IAwBxB,OAAO,CAAC,kBAAkB;IAuBjB,UAAU,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAMtD,OAAO,CAAC,aAAa;IAsDrB,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,cAAc;IAkCtB,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,iBAAiB;IAoBzB,OAAO,CAAC,uBAAuB;IAQ/B,OAAO,CAAC,uBAAuB;IAQ/B,OAAO,CAAC,aAAa;IAuBrB,OAAO,CAAC,uBAAuB;IAc/B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,QAAQ;IA0BhB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,cAAc;CAmBvB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,qBAAqB,EAAE,aAAa,CAAC;KACtC;CACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{__setFunctionName as e,__esDecorate as t,__runInitializers as i,__classPrivateFieldGet as o,__classPrivateFieldSet as a}from"tslib";import{unsafeSVG as n}from"lit-html/directives/unsafe-svg.js";import{css as s,LitElement as r,unsafeCSS as c,html as l}from"lit";import{customElement as d,property as h,state as p}from"lit/decorators.js";import{classMap as g}from"lit/directives/class-map.js";import{ifDefined as m}from"lit/directives/if-defined.js";import{deepmerge as u}from"deepmerge-ts";import k from"prismjs";import"prismjs/plugins/autoloader/prism-autoloader";import"prismjs/plugins/line-numbers/prism-line-numbers";import
|
|
1
|
+
import{__setFunctionName as e,__esDecorate as t,__runInitializers as i,__classPrivateFieldGet as o,__classPrivateFieldSet as a}from"tslib";import{unsafeSVG as n}from"lit-html/directives/unsafe-svg.js";import{css as s,LitElement as r,unsafeCSS as c,html as l}from"lit";import{customElement as d,property as h,state as p}from"lit/decorators.js";import{classMap as g}from"lit/directives/class-map.js";import{ifDefined as m}from"lit/directives/if-defined.js";import{deepmerge as u}from"deepmerge-ts";import k from"prismjs";import"prismjs/plugins/autoloader/prism-autoloader";import"prismjs/plugins/line-numbers/prism-line-numbers";import{a2 as v,a3 as y,g as b}from"../../../vendor/@kyndryl-design-system/shidoka-icons-oqOblwTK.js";import"../button/button.js";import"lit-html/directives/class-map.js";import"../../../common/helpers/helpers.js";import"../button/defs.js";var x,w=s`*,
|
|
2
2
|
*::before,
|
|
3
3
|
*::after {
|
|
4
4
|
box-sizing: border-box;
|
|
@@ -390,7 +390,7 @@ code.language-git:before {
|
|
|
390
390
|
opacity: 0.7;
|
|
391
391
|
display: inline-block;
|
|
392
392
|
padding-right: 15px;
|
|
393
|
-
}`,
|
|
393
|
+
}`,f=s`/**
|
|
394
394
|
* Shidoka Syntax Theme -- syntax highlighting for JavaScript, CSS and HTML
|
|
395
395
|
* Based on dabblet (http://dabblet.com)
|
|
396
396
|
* @author Hsu Ka An
|
|
@@ -637,7 +637,7 @@ code.language-git:before {
|
|
|
637
637
|
.shidoka-syntax-theme .code-snippet-wrapper pre *::-moz-selection {
|
|
638
638
|
background-color: light-dark(rgba(0, 0, 0, 0.3), rgba(255, 255, 255, 0.3));
|
|
639
639
|
color: inherit;
|
|
640
|
-
}`;k.plugins.autoloader.languages_path="
|
|
640
|
+
}`;const _={collapsed:"Collapsed",expanded:"Expanded"},S=k;(null===(x=S.plugins)||void 0===x?void 0:x.autoloader)&&(S.plugins.autoloader.languages_path="https://cdn.jsdelivr.net/npm/prismjs@1/components/");const L={markup:["<",">","/","div","span","class","id"],html:["<",">","/","div","span","class","id"],css:["{","}",":",";","#","."],javascript:["function","const","let","var","=>"],typescript:["interface","type",":","as"],python:["def","import","from","class"],java:["public","private","class","void"]};let z=(()=>{var s,x,S,z,T,C,H,O,E,N,j,B,M,$,V,W,A,q,R,D;let F,U,P,K,I,J,X,G,Q,Y,Z,ee,te,ie,oe,ae,ne,se,re,ce,le,de,he=[d("kyn-block-code-view")],pe=[],ge=r,me=[],ue=[],ke=[],ve=[],ye=[],be=[],xe=[],we=[],fe=[],_e=[],Se=[],Le=[],ze=[],Te=[],Ce=[],He=[],Oe=[],Ee=[],Ne=[],je=[],Be=[],Me=[],$e=[],Ve=[],We=[],Ae=[],qe=[],Re=[],De=[],Fe=[],Ue=[],Pe=[],Ke=[],Ie=[],Je=[],Xe=[],Ge=[],Qe=[],Ye=[],Ze=[];return U=class extends ge{get darkTheme(){return o(this,s,"f")}set darkTheme(e){a(this,s,e,"f")}get language(){return o(this,x,"f")}set language(e){a(this,x,e,"f")}get lineNumbers(){return o(this,S,"f")}set lineNumbers(e){a(this,S,e,"f")}get startLineNumber(){return o(this,z,"f")}set startLineNumber(e){a(this,z,e,"f")}get maxHeight(){return o(this,T,"f")}set maxHeight(e){a(this,T,e,"f")}get codeViewLabel(){return o(this,C,"f")}set codeViewLabel(e){a(this,C,e,"f")}get copyOptionVisible(){return o(this,H,"f")}set copyOptionVisible(e){a(this,H,e,"f")}get codeViewExpandable(){return o(this,O,"f")}set codeViewExpandable(e){a(this,O,e,"f")}get copyButtonText(){return o(this,E,"f")}set copyButtonText(e){a(this,E,e,"f")}get copyButtonDescriptionAttr(){return o(this,N,"f")}set copyButtonDescriptionAttr(e){a(this,N,e,"f")}get codeSnippet(){return o(this,j,"f")}set codeSnippet(e){a(this,j,e,"f")}get textStrings(){return o(this,B,"f")}set textStrings(e){a(this,B,e,"f")}get _textStrings(){return o(this,M,"f")}set _textStrings(e){a(this,M,e,"f")}get _isSingleLine(){return o(this,$,"f")}set _isSingleLine(e){a(this,$,e,"f")}get hasOverflow(){return o(this,V,"f")}set hasOverflow(e){a(this,V,e,"f")}get codeExpanded(){return o(this,W,"f")}set codeExpanded(e){a(this,W,e,"f")}get _copyState(){return o(this,A,"f")}set _copyState(e){a(this,A,e,"f")}get _effectiveLanguage(){return o(this,q,"f")}set _effectiveLanguage(e){a(this,q,e,"f")}get _codeFitsContainerOnLoad(){return o(this,R,"f")}set _codeFitsContainerOnLoad(e){a(this,R,e,"f")}get _expandedHeight(){return o(this,D,"f")}set _expandedHeight(e){a(this,D,e,"f")}updated(e){e.has("darkTheme")&&this.requestUpdate();const t=e.has("codeSnippet")||e.has("language")||e.has("maxHeight");e.has("lineNumbers")?setTimeout((()=>{this.highlightCode(),this.checkOverflow()}),0):t&&(this.highlightCode(),this.checkOverflow()),e.has("copyButtonText")&&(this._copyState={...this._copyState,text:this.copyButtonText}),e.has("startLineNumber")&&(this.startLineNumber<1&&(this.startLineNumber=1),this.highlightCode()),super.updated(e)}render(){const e=`${this.getContainerStyle()};`;return l`
|
|
641
641
|
${this.codeViewLabel?l`<div class="code-view__label">
|
|
642
642
|
<label>${this.codeViewLabel}</label>
|
|
643
643
|
</div>`:null}
|
|
@@ -681,5 +681,5 @@ code.language-git:before {
|
|
|
681
681
|
>
|
|
682
682
|
<span slot="icon" class="expand-icon">${n(b)}</span>
|
|
683
683
|
</kyn-button>
|
|
684
|
-
`}willUpdate(e){e.has("codeExpanded")&&(this._textStrings=u(f,this.textStrings))}highlightCode(){var e;const t=this.removeLeadingWhitespace(this.codeSnippet);this._isSingleLine=1===t.trim().split("\n").length,this._effectiveLanguage=this.language||this.detectLanguage(t);const i=null===(e=this.shadowRoot)||void 0===e?void 0:e.querySelector("pre"),o=null==i?void 0:i.querySelector("code");if(!o||!i)return;const a=i.querySelector(".line-numbers-rows");a&&a.remove(),o.className=`language-${this._effectiveLanguage}`,o.textContent=t,this.lineNumbers&&!this._isSingleLine?(i.classList.add("line-numbers"),i.setAttribute("data-start",String(this.startLineNumber))):(i.classList.remove("line-numbers"),i.removeAttribute("data-start")),setTimeout((()=>{k.highlightElement(o),setTimeout((()=>{var e;if(this.lineNumbers)try{(null===(e=k.plugins)||void 0===e?void 0:e.lineNumbers)&&(i.querySelector(".line-numbers-rows")||(k.hooks.run("complete",{element:o}),k.plugins.lineNumbers.resize(i))),i.querySelector(".line-numbers-rows")||this.addLineNumbers(i,o)}catch(e){console.warn("Line numbers initialization error:",e),this.addLineNumbers(i,o)}this.checkOverflow()}),50)}),0)}addLineNumbers(e,t){if(e.querySelector(".line-numbers-rows"))return;const i=(t.textContent||"").split("\n").length,o=Math.max(1,parseInt(e.getAttribute("data-start")||"1",10)),a=document.createElement("span");a.className="line-numbers-rows";const n=Array(i).fill("<span></span>").join("");a.innerHTML=n,e.appendChild(a),e.style.counterReset="linenumber "+(o-1)}detectLanguage(e){if(!e.trim())return"plaintext";const t=["markup","html","xml","svg","mathml","css","javascript","typescript","python","java","c","cpp"];let i={language:"plaintext",relevance:0};for(const o of t)if(k.languages[o]){const t=k.tokenize(e,k.languages[o]),a=this.calculateRelevance(t,o);a>i.relevance&&(i={language:o,relevance:a})}return"markup"===i.language?this.determineMarkupLanguage(e):i.language}calculateRelevance(e,t){return e.reduce(((e,i)=>("string"!=typeof i&&(e+=this.getTokenRelevance(i,t)),e)),0)}getTokenRelevance(e,t){let i=1+(e.alias?Array.isArray(e.alias)?e.alias.length:1:0);return this.isLanguageSpecificToken(e,t)&&(i+=2),e.content&&(Array.isArray(e.content)?i+=e.content.reduce(((e,i)=>e+("string"==typeof i?0:this.getTokenRelevance(i,t))),0):"string"!=typeof e.content&&(i+=this.getTokenRelevance(e.content,t))),i}isLanguageSpecificToken(e,t){return(_[t]||[]).some((t=>e.content.toString().includes(t)))}determineMarkupLanguage(e){return/<\/?[a-z][\s\S]*>/i.test(e)?"html":/<\?xml/i.test(e)?"xml":/<svg/i.test(e)?"svg":/<math/i.test(e)?"mathml":"markup"}checkOverflow(){setTimeout((()=>{requestAnimationFrame((()=>{var e;const t=null===(e=this.shadowRoot)||void 0===e?void 0:e.querySelector(".code-snippet-wrapper"),i=null==t?void 0:t.querySelector("pre");if(i&&t){const e=i.scrollHeight,o=this.codeExpanded?this._expandedHeight||t.clientHeight:null!==this.maxHeight?this.maxHeight:t.clientHeight;this.hasOverflow=e>o,this._codeFitsContainerOnLoad=e<=(this.maxHeight||t.clientHeight)}}))}),100)}removeLeadingWhitespace(e){if(!e)return"";const t=e.split("\n"),i=t.reduce(((e,t)=>{const i=t.match(/^[ \t]*/),o=i?i[0].length:0;return t.trim().length?Math.min(e,o):e}),1/0);return t.map((e=>e.slice(i))).join("\n").trim()}formatExampleCode(e){return{code:e}}copyCode(e){const t=this._copyState.text;navigator.clipboard.writeText(this.codeSnippet).then((()=>{this._copyState={copied:!0,text:t.length>1?"Copied!":""},this.requestUpdate(),this.dispatchEvent(new CustomEvent("on-copy",{detail:{origEvent:e,fullSnippet:this.formatExampleCode(this.codeSnippet)}})),setTimeout((()=>{this._copyState={copied:!1,text:t},this.requestUpdate()}),5e3)})).catch((e=>console.error("Failed to copy code:",e)))}getContainerStyle(){return this.codeExpanded?this._expandedHeight?`max-height: ${this._expandedHeight}px`:"":null!==this.maxHeight?`max-height: ${this.maxHeight}px`:""}expandCodeView(){var e;if(this.codeExpanded=!this.codeExpanded,this.codeExpanded){const t=null===(e=this.shadowRoot)||void 0===e?void 0:e.querySelector("pre");this._expandedHeight=(null==t?void 0:t.scrollHeight)||null}else this._expandedHeight=null;this.requestUpdate(),setTimeout((()=>this.checkOverflow()),0)}handleKeypress(e){const t=e.currentTarget,i=t.scrollHeight>t.clientHeight,o=t.scrollWidth>t.clientWidth;"ArrowDown"===e.key||"ArrowUp"===e.key?i&&(t.scrollTop+="ArrowDown"===e.key?40:-40,e.preventDefault()):"ArrowRight"!==e.key&&"ArrowLeft"!==e.key||o&&(t.scrollLeft+="ArrowRight"===e.key?40:-40,e.preventDefault())}constructor(){super(...arguments),s.set(this,i(this,me,"default")),S.set(this,(i(this,ue),i(this,ke,""))),L.set(this,(i(this,ve),i(this,ye,!1))),z.set(this,(i(this,be),i(this,xe,1))),T.set(this,(i(this,we),i(this,fe,null))),C.set(this,(i(this,_e),i(this,Se,""))),H.set(this,(i(this,Le),i(this,ze,!1))),O.set(this,(i(this,Te),i(this,Ce,!1))),E.set(this,(i(this,He),i(this,Oe,""))),N.set(this,(i(this,Ee),i(this,Ne,""))),j.set(this,(i(this,je),i(this,Be,""))),B.set(this,(i(this,Me),i(this,$e,f))),M.set(this,(i(this,Ve),i(this,We,f))),$.set(this,(i(this,Ae),i(this,qe,!1))),V.set(this,(i(this,Re),i(this,De,!1))),W.set(this,(i(this,Fe),i(this,Ue,!1))),A.set(this,(i(this,Pe),i(this,Ke,{copied:!1,text:""}))),q.set(this,(i(this,Ie),i(this,Je,""))),R.set(this,(i(this,Xe),i(this,Ge,!0))),D.set(this,(i(this,Qe),i(this,Ye,null))),i(this,Ze)}},s=new WeakMap,S=new WeakMap,L=new WeakMap,z=new WeakMap,T=new WeakMap,C=new WeakMap,H=new WeakMap,O=new WeakMap,E=new WeakMap,N=new WeakMap,j=new WeakMap,B=new WeakMap,M=new WeakMap,$=new WeakMap,V=new WeakMap,W=new WeakMap,A=new WeakMap,q=new WeakMap,R=new WeakMap,D=new WeakMap,e(U,"BlockCodeView"),(()=>{var e;const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null!==(e=ge[Symbol.metadata])&&void 0!==e?e:null):void 0;P=[h({type:String})],K=[h({type:String})],I=[h({type:Boolean})],J=[h({type:Number})],X=[h({type:Number})],G=[h({type:String})],Q=[h({type:Boolean})],Y=[h({type:Boolean})],Z=[h({type:String})],ee=[h({type:String})],te=[h({type:String})],ie=[h({type:Object})],oe=[p()],ae=[p()],ne=[p()],se=[p()],re=[p()],ce=[p()],le=[p()],de=[p()],t(U,null,P,{kind:"accessor",name:"darkTheme",static:!1,private:!1,access:{has:e=>"darkTheme"in e,get:e=>e.darkTheme,set:(e,t)=>{e.darkTheme=t}},metadata:i},me,ue),t(U,null,K,{kind:"accessor",name:"language",static:!1,private:!1,access:{has:e=>"language"in e,get:e=>e.language,set:(e,t)=>{e.language=t}},metadata:i},ke,ve),t(U,null,I,{kind:"accessor",name:"lineNumbers",static:!1,private:!1,access:{has:e=>"lineNumbers"in e,get:e=>e.lineNumbers,set:(e,t)=>{e.lineNumbers=t}},metadata:i},ye,be),t(U,null,J,{kind:"accessor",name:"startLineNumber",static:!1,private:!1,access:{has:e=>"startLineNumber"in e,get:e=>e.startLineNumber,set:(e,t)=>{e.startLineNumber=t}},metadata:i},xe,we),t(U,null,X,{kind:"accessor",name:"maxHeight",static:!1,private:!1,access:{has:e=>"maxHeight"in e,get:e=>e.maxHeight,set:(e,t)=>{e.maxHeight=t}},metadata:i},fe,_e),t(U,null,G,{kind:"accessor",name:"codeViewLabel",static:!1,private:!1,access:{has:e=>"codeViewLabel"in e,get:e=>e.codeViewLabel,set:(e,t)=>{e.codeViewLabel=t}},metadata:i},Se,Le),t(U,null,Q,{kind:"accessor",name:"copyOptionVisible",static:!1,private:!1,access:{has:e=>"copyOptionVisible"in e,get:e=>e.copyOptionVisible,set:(e,t)=>{e.copyOptionVisible=t}},metadata:i},ze,Te),t(U,null,Y,{kind:"accessor",name:"codeViewExpandable",static:!1,private:!1,access:{has:e=>"codeViewExpandable"in e,get:e=>e.codeViewExpandable,set:(e,t)=>{e.codeViewExpandable=t}},metadata:i},Ce,He),t(U,null,Z,{kind:"accessor",name:"copyButtonText",static:!1,private:!1,access:{has:e=>"copyButtonText"in e,get:e=>e.copyButtonText,set:(e,t)=>{e.copyButtonText=t}},metadata:i},Oe,Ee),t(U,null,ee,{kind:"accessor",name:"copyButtonDescriptionAttr",static:!1,private:!1,access:{has:e=>"copyButtonDescriptionAttr"in e,get:e=>e.copyButtonDescriptionAttr,set:(e,t)=>{e.copyButtonDescriptionAttr=t}},metadata:i},Ne,je),t(U,null,te,{kind:"accessor",name:"codeSnippet",static:!1,private:!1,access:{has:e=>"codeSnippet"in e,get:e=>e.codeSnippet,set:(e,t)=>{e.codeSnippet=t}},metadata:i},Be,Me),t(U,null,ie,{kind:"accessor",name:"textStrings",static:!1,private:!1,access:{has:e=>"textStrings"in e,get:e=>e.textStrings,set:(e,t)=>{e.textStrings=t}},metadata:i},$e,Ve),t(U,null,oe,{kind:"accessor",name:"_textStrings",static:!1,private:!1,access:{has:e=>"_textStrings"in e,get:e=>e._textStrings,set:(e,t)=>{e._textStrings=t}},metadata:i},We,Ae),t(U,null,ae,{kind:"accessor",name:"_isSingleLine",static:!1,private:!1,access:{has:e=>"_isSingleLine"in e,get:e=>e._isSingleLine,set:(e,t)=>{e._isSingleLine=t}},metadata:i},qe,Re),t(U,null,ne,{kind:"accessor",name:"hasOverflow",static:!1,private:!1,access:{has:e=>"hasOverflow"in e,get:e=>e.hasOverflow,set:(e,t)=>{e.hasOverflow=t}},metadata:i},De,Fe),t(U,null,se,{kind:"accessor",name:"codeExpanded",static:!1,private:!1,access:{has:e=>"codeExpanded"in e,get:e=>e.codeExpanded,set:(e,t)=>{e.codeExpanded=t}},metadata:i},Ue,Pe),t(U,null,re,{kind:"accessor",name:"_copyState",static:!1,private:!1,access:{has:e=>"_copyState"in e,get:e=>e._copyState,set:(e,t)=>{e._copyState=t}},metadata:i},Ke,Ie),t(U,null,ce,{kind:"accessor",name:"_effectiveLanguage",static:!1,private:!1,access:{has:e=>"_effectiveLanguage"in e,get:e=>e._effectiveLanguage,set:(e,t)=>{e._effectiveLanguage=t}},metadata:i},Je,Xe),t(U,null,le,{kind:"accessor",name:"_codeFitsContainerOnLoad",static:!1,private:!1,access:{has:e=>"_codeFitsContainerOnLoad"in e,get:e=>e._codeFitsContainerOnLoad,set:(e,t)=>{e._codeFitsContainerOnLoad=t}},metadata:i},Ge,Qe),t(U,null,de,{kind:"accessor",name:"_expandedHeight",static:!1,private:!1,access:{has:e=>"_expandedHeight"in e,get:e=>e._expandedHeight,set:(e,t)=>{e._expandedHeight=t}},metadata:i},Ye,Ze),t(null,F={value:U},he,{kind:"class",name:U.name,metadata:i},null,pe),U=F.value,i&&Object.defineProperty(U,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i})})(),U.styles=[c(x),c(w)],i(U,pe),U})();export{S as BlockCodeView};
|
|
684
|
+
`}willUpdate(e){e.has("codeExpanded")&&(this._textStrings=u(_,this.textStrings))}highlightCode(){var e;const t=this.removeLeadingWhitespace(this.codeSnippet);this._isSingleLine=1===t.trim().split("\n").length,this._effectiveLanguage=this.language||this.detectLanguage(t);const i=null===(e=this.shadowRoot)||void 0===e?void 0:e.querySelector("pre"),o=null==i?void 0:i.querySelector("code");if(!o||!i)return;const a=i.querySelector(".line-numbers-rows");a&&a.remove(),o.className=`language-${this._effectiveLanguage}`,o.textContent=t,this.lineNumbers&&!this._isSingleLine?(i.classList.add("line-numbers"),i.setAttribute("data-start",String(this.startLineNumber))):(i.classList.remove("line-numbers"),i.removeAttribute("data-start")),setTimeout((()=>{k.highlightElement(o),setTimeout((()=>{var e;if(this.lineNumbers)try{(null===(e=k.plugins)||void 0===e?void 0:e.lineNumbers)&&(i.querySelector(".line-numbers-rows")||(k.hooks.run("complete",{element:o}),k.plugins.lineNumbers.resize(i))),i.querySelector(".line-numbers-rows")||this.addLineNumbers(i,o)}catch(e){console.warn("Line numbers initialization error:",e),this.addLineNumbers(i,o)}this.checkOverflow()}),50)}),0)}addLineNumbers(e,t){if(e.querySelector(".line-numbers-rows"))return;const i=(t.textContent||"").split("\n").length,o=Math.max(1,parseInt(e.getAttribute("data-start")||"1",10)),a=document.createElement("span");a.className="line-numbers-rows";const n=Array(i).fill("<span></span>").join("");a.innerHTML=n,e.appendChild(a),e.style.counterReset="linenumber "+(o-1)}detectLanguage(e){if(!e.trim())return"plaintext";const t=["markup","html","xml","svg","mathml","css","javascript","typescript","python","java","c","cpp"];let i={language:"plaintext",relevance:0};for(const o of t)if(k.languages[o]){const t=k.tokenize(e,k.languages[o]),a=this.calculateRelevance(t,o);a>i.relevance&&(i={language:o,relevance:a})}return"markup"===i.language?this.determineMarkupLanguage(e):i.language}calculateRelevance(e,t){return e.reduce(((e,i)=>("string"!=typeof i&&(e+=this.getTokenRelevance(i,t)),e)),0)}getTokenRelevance(e,t){let i=1+(e.alias?Array.isArray(e.alias)?e.alias.length:1:0);return this.isLanguageSpecificToken(e,t)&&(i+=2),e.content&&(Array.isArray(e.content)?i+=e.content.reduce(((e,i)=>e+("string"==typeof i?0:this.getTokenRelevance(i,t))),0):"string"!=typeof e.content&&(i+=this.getTokenRelevance(e.content,t))),i}isLanguageSpecificToken(e,t){return(L[t]||[]).some((t=>e.content.toString().includes(t)))}determineMarkupLanguage(e){return/<\/?[a-z][\s\S]*>/i.test(e)?"html":/<\?xml/i.test(e)?"xml":/<svg/i.test(e)?"svg":/<math/i.test(e)?"mathml":"markup"}checkOverflow(){setTimeout((()=>{requestAnimationFrame((()=>{var e;const t=null===(e=this.shadowRoot)||void 0===e?void 0:e.querySelector(".code-snippet-wrapper"),i=null==t?void 0:t.querySelector("pre");if(i&&t){const e=i.scrollHeight,o=this.codeExpanded?this._expandedHeight||t.clientHeight:null!==this.maxHeight?this.maxHeight:t.clientHeight;this.hasOverflow=e>o,this._codeFitsContainerOnLoad=e<=(this.maxHeight||t.clientHeight)}}))}),100)}removeLeadingWhitespace(e){if(!e)return"";const t=e.split("\n"),i=t.reduce(((e,t)=>{const i=t.match(/^[ \t]*/),o=i?i[0].length:0;return t.trim().length?Math.min(e,o):e}),1/0);return t.map((e=>e.slice(i))).join("\n").trim()}formatExampleCode(e){return{code:e}}copyCode(e){const t=this._copyState.text;navigator.clipboard.writeText(this.codeSnippet).then((()=>{this._copyState={copied:!0,text:t.length>1?"Copied!":""},this.requestUpdate(),this.dispatchEvent(new CustomEvent("on-copy",{detail:{origEvent:e,fullSnippet:this.formatExampleCode(this.codeSnippet)}})),setTimeout((()=>{this._copyState={copied:!1,text:t},this.requestUpdate()}),5e3)})).catch((e=>console.error("Failed to copy code:",e)))}getContainerStyle(){return this.codeExpanded?this._expandedHeight?`max-height: ${this._expandedHeight}px`:"":null!==this.maxHeight?`max-height: ${this.maxHeight}px`:""}expandCodeView(){var e;if(this.codeExpanded=!this.codeExpanded,this.codeExpanded){const t=null===(e=this.shadowRoot)||void 0===e?void 0:e.querySelector("pre");this._expandedHeight=(null==t?void 0:t.scrollHeight)||null}else this._expandedHeight=null;this.requestUpdate(),setTimeout((()=>this.checkOverflow()),0)}handleKeypress(e){const t=e.currentTarget,i=t.scrollHeight>t.clientHeight,o=t.scrollWidth>t.clientWidth;"ArrowDown"===e.key||"ArrowUp"===e.key?i&&(t.scrollTop+="ArrowDown"===e.key?40:-40,e.preventDefault()):"ArrowRight"!==e.key&&"ArrowLeft"!==e.key||o&&(t.scrollLeft+="ArrowRight"===e.key?40:-40,e.preventDefault())}constructor(){super(...arguments),s.set(this,i(this,me,"default")),x.set(this,(i(this,ue),i(this,ke,""))),S.set(this,(i(this,ve),i(this,ye,!1))),z.set(this,(i(this,be),i(this,xe,1))),T.set(this,(i(this,we),i(this,fe,null))),C.set(this,(i(this,_e),i(this,Se,""))),H.set(this,(i(this,Le),i(this,ze,!1))),O.set(this,(i(this,Te),i(this,Ce,!1))),E.set(this,(i(this,He),i(this,Oe,""))),N.set(this,(i(this,Ee),i(this,Ne,""))),j.set(this,(i(this,je),i(this,Be,""))),B.set(this,(i(this,Me),i(this,$e,_))),M.set(this,(i(this,Ve),i(this,We,_))),$.set(this,(i(this,Ae),i(this,qe,!1))),V.set(this,(i(this,Re),i(this,De,!1))),W.set(this,(i(this,Fe),i(this,Ue,!1))),A.set(this,(i(this,Pe),i(this,Ke,{copied:!1,text:""}))),q.set(this,(i(this,Ie),i(this,Je,""))),R.set(this,(i(this,Xe),i(this,Ge,!0))),D.set(this,(i(this,Qe),i(this,Ye,null))),i(this,Ze)}},s=new WeakMap,x=new WeakMap,S=new WeakMap,z=new WeakMap,T=new WeakMap,C=new WeakMap,H=new WeakMap,O=new WeakMap,E=new WeakMap,N=new WeakMap,j=new WeakMap,B=new WeakMap,M=new WeakMap,$=new WeakMap,V=new WeakMap,W=new WeakMap,A=new WeakMap,q=new WeakMap,R=new WeakMap,D=new WeakMap,e(U,"BlockCodeView"),(()=>{var e;const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null!==(e=ge[Symbol.metadata])&&void 0!==e?e:null):void 0;P=[h({type:String})],K=[h({type:String})],I=[h({type:Boolean})],J=[h({type:Number})],X=[h({type:Number})],G=[h({type:String})],Q=[h({type:Boolean})],Y=[h({type:Boolean})],Z=[h({type:String})],ee=[h({type:String})],te=[h({type:String})],ie=[h({type:Object})],oe=[p()],ae=[p()],ne=[p()],se=[p()],re=[p()],ce=[p()],le=[p()],de=[p()],t(U,null,P,{kind:"accessor",name:"darkTheme",static:!1,private:!1,access:{has:e=>"darkTheme"in e,get:e=>e.darkTheme,set:(e,t)=>{e.darkTheme=t}},metadata:i},me,ue),t(U,null,K,{kind:"accessor",name:"language",static:!1,private:!1,access:{has:e=>"language"in e,get:e=>e.language,set:(e,t)=>{e.language=t}},metadata:i},ke,ve),t(U,null,I,{kind:"accessor",name:"lineNumbers",static:!1,private:!1,access:{has:e=>"lineNumbers"in e,get:e=>e.lineNumbers,set:(e,t)=>{e.lineNumbers=t}},metadata:i},ye,be),t(U,null,J,{kind:"accessor",name:"startLineNumber",static:!1,private:!1,access:{has:e=>"startLineNumber"in e,get:e=>e.startLineNumber,set:(e,t)=>{e.startLineNumber=t}},metadata:i},xe,we),t(U,null,X,{kind:"accessor",name:"maxHeight",static:!1,private:!1,access:{has:e=>"maxHeight"in e,get:e=>e.maxHeight,set:(e,t)=>{e.maxHeight=t}},metadata:i},fe,_e),t(U,null,G,{kind:"accessor",name:"codeViewLabel",static:!1,private:!1,access:{has:e=>"codeViewLabel"in e,get:e=>e.codeViewLabel,set:(e,t)=>{e.codeViewLabel=t}},metadata:i},Se,Le),t(U,null,Q,{kind:"accessor",name:"copyOptionVisible",static:!1,private:!1,access:{has:e=>"copyOptionVisible"in e,get:e=>e.copyOptionVisible,set:(e,t)=>{e.copyOptionVisible=t}},metadata:i},ze,Te),t(U,null,Y,{kind:"accessor",name:"codeViewExpandable",static:!1,private:!1,access:{has:e=>"codeViewExpandable"in e,get:e=>e.codeViewExpandable,set:(e,t)=>{e.codeViewExpandable=t}},metadata:i},Ce,He),t(U,null,Z,{kind:"accessor",name:"copyButtonText",static:!1,private:!1,access:{has:e=>"copyButtonText"in e,get:e=>e.copyButtonText,set:(e,t)=>{e.copyButtonText=t}},metadata:i},Oe,Ee),t(U,null,ee,{kind:"accessor",name:"copyButtonDescriptionAttr",static:!1,private:!1,access:{has:e=>"copyButtonDescriptionAttr"in e,get:e=>e.copyButtonDescriptionAttr,set:(e,t)=>{e.copyButtonDescriptionAttr=t}},metadata:i},Ne,je),t(U,null,te,{kind:"accessor",name:"codeSnippet",static:!1,private:!1,access:{has:e=>"codeSnippet"in e,get:e=>e.codeSnippet,set:(e,t)=>{e.codeSnippet=t}},metadata:i},Be,Me),t(U,null,ie,{kind:"accessor",name:"textStrings",static:!1,private:!1,access:{has:e=>"textStrings"in e,get:e=>e.textStrings,set:(e,t)=>{e.textStrings=t}},metadata:i},$e,Ve),t(U,null,oe,{kind:"accessor",name:"_textStrings",static:!1,private:!1,access:{has:e=>"_textStrings"in e,get:e=>e._textStrings,set:(e,t)=>{e._textStrings=t}},metadata:i},We,Ae),t(U,null,ae,{kind:"accessor",name:"_isSingleLine",static:!1,private:!1,access:{has:e=>"_isSingleLine"in e,get:e=>e._isSingleLine,set:(e,t)=>{e._isSingleLine=t}},metadata:i},qe,Re),t(U,null,ne,{kind:"accessor",name:"hasOverflow",static:!1,private:!1,access:{has:e=>"hasOverflow"in e,get:e=>e.hasOverflow,set:(e,t)=>{e.hasOverflow=t}},metadata:i},De,Fe),t(U,null,se,{kind:"accessor",name:"codeExpanded",static:!1,private:!1,access:{has:e=>"codeExpanded"in e,get:e=>e.codeExpanded,set:(e,t)=>{e.codeExpanded=t}},metadata:i},Ue,Pe),t(U,null,re,{kind:"accessor",name:"_copyState",static:!1,private:!1,access:{has:e=>"_copyState"in e,get:e=>e._copyState,set:(e,t)=>{e._copyState=t}},metadata:i},Ke,Ie),t(U,null,ce,{kind:"accessor",name:"_effectiveLanguage",static:!1,private:!1,access:{has:e=>"_effectiveLanguage"in e,get:e=>e._effectiveLanguage,set:(e,t)=>{e._effectiveLanguage=t}},metadata:i},Je,Xe),t(U,null,le,{kind:"accessor",name:"_codeFitsContainerOnLoad",static:!1,private:!1,access:{has:e=>"_codeFitsContainerOnLoad"in e,get:e=>e._codeFitsContainerOnLoad,set:(e,t)=>{e._codeFitsContainerOnLoad=t}},metadata:i},Ge,Qe),t(U,null,de,{kind:"accessor",name:"_expandedHeight",static:!1,private:!1,access:{has:e=>"_expandedHeight"in e,get:e=>e._expandedHeight,set:(e,t)=>{e._expandedHeight=t}},metadata:i},Ye,Ze),t(null,F={value:U},he,{kind:"class",name:U.name,metadata:i},null,pe),U=F.value,i&&Object.defineProperty(U,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i})})(),U.styles=[c(w),c(f)],i(U,pe),U})();export{z as BlockCodeView};
|
|
685
685
|
//# sourceMappingURL=blockCodeView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockCodeView.js","sources":["../../../../src/components/reusable/blockCodeView/blockCodeView.ts"],"sourcesContent":["import { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';\nimport { html, LitElement, unsafeCSS } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { deepmerge } from 'deepmerge-ts';\n\nimport Prism from 'prismjs';\nimport 'prismjs/plugins/autoloader/prism-autoloader';\nimport 'prismjs/plugins/line-numbers/prism-line-numbers';\nimport 'prismjs-components-importer';\nPrism.plugins.autoloader.languages_path = 'node_modules/prismjs/components/';\n\nimport copyIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/20/copy.svg';\nimport checkmarkIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/20/checkmark.svg';\nimport chevronDown from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/chevron-down.svg';\n\nimport '../button';\n\nimport BlockCodeViewStyles from './blockCodeView.scss?inline';\nimport ShidokaSyntaxTheme from '../../../common/scss/shidoka-syntax-theme.scss?inline';\n\ninterface LanguageMatch {\n language: string;\n relevance: number;\n}\n\nconst _defaultTextStrings = {\n collapsed: 'Collapsed',\n expanded: 'Expanded',\n};\n\nconst LANGUAGE_SPECIFIC_TOKENS: Record<string, string[]> = {\n markup: ['<', '>', '/', 'div', 'span', 'class', 'id'],\n html: ['<', '>', '/', 'div', 'span', 'class', 'id'],\n css: ['{', '}', ':', ';', '#', '.'],\n javascript: ['function', 'const', 'let', 'var', '=>'],\n typescript: ['interface', 'type', ':', 'as'],\n python: ['def', 'import', 'from', 'class'],\n java: ['public', 'private', 'class', 'void'],\n};\n\n/**\n * `<kyn-block-code-view>` component to display `<code>` snippets as standalone single-/multi-line block elements.\n * @fires on-copy - Emits when the copy button is clicked.\n */\n@customElement('kyn-block-code-view')\nexport class BlockCodeView extends LitElement {\n static override styles = [\n unsafeCSS(BlockCodeViewStyles),\n unsafeCSS(ShidokaSyntaxTheme),\n ];\n\n /** Sets background and text theming. */\n @property({ type: String })\n accessor darkTheme: 'light' | 'dark' | 'default' = 'default';\n\n /** If empty string, attempt language syntax auto-detection. Setting a value will override auto-detection and manually configure desired language. */\n @property({ type: String })\n accessor language = '';\n\n /** Optionally display line numbers. */\n @property({ type: Boolean })\n accessor lineNumbers = false;\n\n /** Sets the starting line number when lineNumbers is true. Must be a positive integer. */\n @property({ type: Number })\n accessor startLineNumber = 1;\n\n /** Customizable max-height setting for code snippet container. */\n @property({ type: Number })\n accessor maxHeight: number | null = null;\n\n /** Optionally displayed label above code snippet container. */\n @property({ type: String })\n accessor codeViewLabel = '';\n\n /** Optionally display button to copy code snippet. */\n @property({ type: Boolean })\n accessor copyOptionVisible = false;\n\n /** Optionally display button to expand code snippet container. */\n @property({ type: Boolean })\n accessor codeViewExpandable = false;\n\n /** Sets copy code button text (optional). */\n @property({ type: String })\n accessor copyButtonText = '';\n\n /** Sets copy button description attr value. */\n @property({ type: String })\n accessor copyButtonDescriptionAttr = '';\n\n /** Sets code snippet for display -- NOTE: original formatting is preserved. */\n @property({ type: String })\n accessor codeSnippet = '';\n\n /** Text string customization. */\n @property({ type: Object })\n accessor textStrings = _defaultTextStrings;\n\n /** Internal text strings.\n * @internal\n */\n @state()\n private accessor _textStrings = _defaultTextStrings;\n\n /** Auto-detect whether code snippet is single line (boolean) -- styled accordingly (boolean).\n * @internal\n */\n @state()\n private accessor _isSingleLine = false;\n\n /** Auto-detect whether code snippet exceeds the max-height allowance (boolean).\n * @internal\n */\n @state()\n private accessor hasOverflow = false;\n\n /** Value indicating whether overflow code sample is expanded (boolean).\n * @internal\n */\n @state()\n private accessor codeExpanded = false;\n\n /** Copy key-values to communicate copy button styling and state.\n * @internal\n */\n @state()\n private accessor _copyState = { copied: false, text: '' };\n\n /** Detected language for the code snippet.\n * @internal\n */\n @state()\n private accessor _effectiveLanguage = '';\n\n /** Code snippet fits into the height of the container -- no expansion needed.\n * @internal\n */\n @state()\n private accessor _codeFitsContainerOnLoad = true;\n\n /** If expandable -- height of the container when fully expanded.\n * @internal\n */\n @state()\n private accessor _expandedHeight: number | null = null;\n\n override updated(changedProperties: Map<string, unknown>) {\n if (changedProperties.has('darkTheme')) this.requestUpdate();\n\n const codeChanged =\n changedProperties.has('codeSnippet') ||\n changedProperties.has('language') ||\n changedProperties.has('maxHeight');\n\n // race condition guard: force complete re-highlighting when line numbers toggle\n if (changedProperties.has('lineNumbers')) {\n setTimeout(() => {\n this.highlightCode();\n this.checkOverflow();\n }, 0);\n } else if (codeChanged) {\n this.highlightCode();\n this.checkOverflow();\n }\n\n if (changedProperties.has('copyButtonText')) {\n this._copyState = { ...this._copyState, text: this.copyButtonText };\n }\n\n if (changedProperties.has('startLineNumber')) {\n // Ensure startLineNumber is at least 1\n if (this.startLineNumber < 1) {\n this.startLineNumber = 1;\n }\n this.highlightCode();\n }\n\n super.updated(changedProperties);\n }\n\n override render() {\n const containerStyle = `${this.getContainerStyle()};`;\n return html`\n ${this.codeViewLabel\n ? html`<div class=\"code-view__label\">\n <label>${this.codeViewLabel}</label>\n </div>`\n : null}\n <div class=\"${this.getContainerClasses()}\" style=\"${containerStyle}\">\n <div class=\"code-snippet-wrapper\">\n <pre\n @keydown=${this.handleKeypress}\n role=\"region\"\n class=${this.lineNumbers && !this._isSingleLine\n ? 'line-numbers'\n : 'no-line-numbers'}\n data-start=${ifDefined(\n this.lineNumbers ? Math.max(1, this.startLineNumber) : undefined\n )}\n >\n <code tabindex=\"0\" class=\"language-${this\n ._effectiveLanguage}\"></code>\n </pre>\n </div>\n ${this.renderCopyButton()} ${this.renderExpandButton()}\n </div>\n `;\n }\n\n private getContainerClasses() {\n return classMap({\n 'code-view__container': true,\n 'single-line': this._isSingleLine,\n 'multi-line': !this._isSingleLine,\n 'copy-button-text-true':\n this.copyButtonText && this.copyButtonText.length > 0,\n 'copy-button-text-false': !this.copyButtonText,\n 'shidoka-syntax-theme': true,\n 'shidoka-syntax-theme--dark': this.darkTheme === 'dark',\n 'shidoka-syntax-theme--light': this.darkTheme === 'light',\n 'expanded-code-view': this.codeExpanded,\n 'has-overflow': this.hasOverflow,\n 'copy-active': this._copyState?.copied,\n });\n }\n\n private renderCopyButton() {\n if (!this.copyOptionVisible) return null;\n return html`\n <kyn-button\n class=\"code-view__copy-button\"\n kind=\"secondary\"\n size=\"small\"\n iconPosition=\"left\"\n ?disabled=${this._copyState.copied}\n description=${ifDefined(this.copyButtonDescriptionAttr)}\n @click=${this.copyCode}\n >\n <span slot=\"icon\" class=\"copy-icon\">\n ${this._copyState.copied\n ? unsafeSVG(checkmarkIcon)\n : unsafeSVG(copyIcon)}\n </span>\n ${this._copyState.text\n ? html`<span class=\"copy-text\">${this._copyState.text}</span>`\n : null}\n </kyn-button>\n `;\n }\n\n private renderExpandButton() {\n if (\n !this.codeViewExpandable ||\n (!this.hasOverflow && this._codeFitsContainerOnLoad)\n )\n return null;\n return html`\n <kyn-button\n class=\"code-view__expand-button\"\n kind=\"ghost\"\n size=\"small\"\n iconPosition=\"left\"\n outlineOnly\n description=${this.codeExpanded\n ? this._textStrings.collapsed\n : this._textStrings.expanded}\n @click=${this.expandCodeView}\n >\n <span slot=\"icon\" class=\"expand-icon\">${unsafeSVG(chevronDown)}</span>\n </kyn-button>\n `;\n }\n\n override willUpdate(changedProps: Map<string, unknown>) {\n if (changedProps.has('codeExpanded')) {\n this._textStrings = deepmerge(_defaultTextStrings, this.textStrings);\n }\n }\n\n private highlightCode() {\n const processedCode = this.removeLeadingWhitespace(this.codeSnippet);\n this._isSingleLine = processedCode.trim().split('\\n').length === 1;\n this._effectiveLanguage =\n this.language || this.detectLanguage(processedCode);\n\n const preEl = this.shadowRoot?.querySelector('pre');\n const codeEl = preEl?.querySelector('code');\n\n if (!codeEl || !preEl) return;\n\n const existingLineNumbers = preEl.querySelector('.line-numbers-rows');\n if (existingLineNumbers) {\n existingLineNumbers.remove();\n }\n\n codeEl.className = `language-${this._effectiveLanguage}`;\n codeEl.textContent = processedCode;\n\n if (this.lineNumbers && !this._isSingleLine) {\n preEl.classList.add('line-numbers');\n preEl.setAttribute('data-start', String(this.startLineNumber));\n } else {\n preEl.classList.remove('line-numbers');\n preEl.removeAttribute('data-start');\n }\n\n setTimeout(() => {\n Prism.highlightElement(codeEl);\n\n setTimeout(() => {\n if (this.lineNumbers) {\n try {\n if ((Prism as any).plugins?.lineNumbers) {\n if (!preEl.querySelector('.line-numbers-rows')) {\n (Prism as any).hooks.run('complete', { element: codeEl });\n (Prism as any).plugins.lineNumbers.resize(preEl);\n }\n }\n\n if (!preEl.querySelector('.line-numbers-rows')) {\n this.addLineNumbers(preEl, codeEl);\n }\n } catch (e) {\n console.warn('Line numbers initialization error:', e);\n this.addLineNumbers(preEl, codeEl);\n }\n }\n\n this.checkOverflow();\n }, 50);\n }, 0);\n }\n\n private addLineNumbers(preEl: HTMLElement, codeEl: HTMLElement) {\n if (preEl.querySelector('.line-numbers-rows')) return;\n\n const linesCount = (codeEl.textContent || '').split('\\n').length;\n const startLineNumber = Math.max(\n 1,\n parseInt(preEl.getAttribute('data-start') || '1', 10)\n );\n\n const lineNumbersWrapper = document.createElement('span');\n lineNumbersWrapper.className = 'line-numbers-rows';\n\n const spans = Array(linesCount).fill('<span></span>').join('');\n lineNumbersWrapper.innerHTML = spans;\n\n preEl.appendChild(lineNumbersWrapper);\n preEl.style.counterReset = `linenumber ${startLineNumber - 1}`;\n }\n\n private detectLanguage(code: string): string {\n if (!code.trim()) return 'plaintext';\n\n const languages = [\n 'markup',\n 'html',\n 'xml',\n 'svg',\n 'mathml',\n 'css',\n 'javascript',\n 'typescript',\n 'python',\n 'java',\n 'c',\n 'cpp',\n ];\n let bestMatch: LanguageMatch = { language: 'plaintext', relevance: 0 };\n\n for (const lang of languages) {\n if (Prism.languages[lang]) {\n const tokens = Prism.tokenize(code, Prism.languages[lang]);\n const relevance = this.calculateRelevance(tokens, lang);\n if (relevance > bestMatch.relevance) {\n bestMatch = { language: lang, relevance };\n }\n }\n }\n\n return bestMatch.language === 'markup'\n ? this.determineMarkupLanguage(code)\n : bestMatch.language;\n }\n\n private calculateRelevance(\n tokens: (string | Prism.Token)[],\n language: string\n ): number {\n return tokens.reduce((relevance, token) => {\n if (typeof token !== 'string') {\n relevance += this.getTokenRelevance(token, language);\n }\n return relevance;\n }, 0);\n }\n\n private getTokenRelevance(token: Prism.Token, language: string): number {\n let relevance =\n 1 +\n (token.alias ? (Array.isArray(token.alias) ? token.alias.length : 1) : 0);\n if (this.isLanguageSpecificToken(token, language)) relevance += 2;\n if (token.content) {\n if (Array.isArray(token.content)) {\n relevance += token.content.reduce(\n (acc, t) =>\n acc +\n (typeof t === 'string' ? 0 : this.getTokenRelevance(t, language)),\n 0\n );\n } else if (typeof token.content !== 'string') {\n relevance += this.getTokenRelevance(token.content, language);\n }\n }\n return relevance;\n }\n\n private isLanguageSpecificToken(\n token: Prism.Token,\n language: string\n ): boolean {\n const specificTokens = LANGUAGE_SPECIFIC_TOKENS[language] || [];\n return specificTokens.some((t) => token.content.toString().includes(t));\n }\n\n private determineMarkupLanguage(code: string): string {\n if (/<\\/?[a-z][\\s\\S]*>/i.test(code)) return 'html';\n if (/<\\?xml/i.test(code)) return 'xml';\n if (/<svg/i.test(code)) return 'svg';\n if (/<math/i.test(code)) return 'mathml';\n return 'markup';\n }\n\n private checkOverflow() {\n setTimeout(() => {\n requestAnimationFrame(() => {\n const container = this.shadowRoot?.querySelector(\n '.code-snippet-wrapper'\n ) as HTMLElement;\n const pre = container?.querySelector('pre') as HTMLElement;\n if (pre && container) {\n const naturalHeight = pre.scrollHeight;\n const calcHeight = this.codeExpanded\n ? this._expandedHeight || container.clientHeight\n : this.maxHeight !== null\n ? this.maxHeight\n : container.clientHeight;\n\n this.hasOverflow = naturalHeight > calcHeight;\n this._codeFitsContainerOnLoad =\n naturalHeight <= (this.maxHeight || container.clientHeight);\n }\n });\n }, 100);\n }\n\n private removeLeadingWhitespace(code: string): string {\n if (!code) return '';\n const lines = code.split('\\n');\n const minIndent = lines.reduce((min, line) => {\n const match = line.match(/^[ \\t]*/);\n const indent = match ? match[0].length : 0;\n return line.trim().length ? Math.min(min, indent) : min;\n }, Infinity);\n return lines\n .map((line) => line.slice(minIndent))\n .join('\\n')\n .trim();\n }\n\n private formatExampleCode(code: string) {\n return { code };\n }\n\n private copyCode(e: Event) {\n const originalText = this._copyState.text;\n navigator.clipboard\n .writeText(this.codeSnippet)\n .then(() => {\n this._copyState = {\n copied: true,\n text: originalText.length > 1 ? 'Copied!' : '',\n };\n this.requestUpdate();\n this.dispatchEvent(\n new CustomEvent('on-copy', {\n detail: {\n origEvent: e,\n fullSnippet: this.formatExampleCode(this.codeSnippet),\n },\n })\n );\n setTimeout(() => {\n this._copyState = { copied: false, text: originalText };\n this.requestUpdate();\n }, 5000);\n })\n .catch((err) => console.error('Failed to copy code:', err));\n }\n\n private getContainerStyle(): string {\n if (this.codeExpanded) {\n return this._expandedHeight\n ? `max-height: ${this._expandedHeight}px`\n : '';\n }\n return this.maxHeight !== null ? `max-height: ${this.maxHeight}px` : '';\n }\n\n private expandCodeView() {\n this.codeExpanded = !this.codeExpanded;\n\n if (this.codeExpanded) {\n const pre = this.shadowRoot?.querySelector('pre') as HTMLElement;\n this._expandedHeight = pre?.scrollHeight || null;\n } else {\n this._expandedHeight = null;\n }\n\n this.requestUpdate();\n setTimeout(() => this.checkOverflow(), 0);\n }\n\n private handleKeypress(e: KeyboardEvent) {\n const pre = e.currentTarget as HTMLPreElement;\n const scrollAmount = 40;\n\n const isVerticallyScrollable = pre.scrollHeight > pre.clientHeight;\n const isHorizontallyScrollable = pre.scrollWidth > pre.clientWidth;\n\n if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {\n if (isVerticallyScrollable) {\n pre.scrollTop += e.key === 'ArrowDown' ? scrollAmount : -scrollAmount;\n e.preventDefault();\n }\n } else if (e.key === 'ArrowRight' || e.key === 'ArrowLeft') {\n if (isHorizontallyScrollable) {\n pre.scrollLeft += e.key === 'ArrowRight' ? scrollAmount : -scrollAmount;\n e.preventDefault();\n }\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-block-code-view': BlockCodeView;\n }\n}\n"],"names":["Prism","plugins","autoloader","languages_path","_defaultTextStrings","collapsed","expanded","LANGUAGE_SPECIFIC_TOKENS","markup","html","css","javascript","typescript","python","java","BlockCodeView","customElement","LitElement","_classThis","_classSuper","darkTheme","__classPrivateFieldGet","this","_BlockCodeView_darkTheme_accessor_storage","value","__classPrivateFieldSet","language","_BlockCodeView_language_accessor_storage","lineNumbers","_BlockCodeView_lineNumbers_accessor_storage","startLineNumber","_BlockCodeView_startLineNumber_accessor_storage","maxHeight","_BlockCodeView_maxHeight_accessor_storage","codeViewLabel","_BlockCodeView_codeViewLabel_accessor_storage","copyOptionVisible","_BlockCodeView_copyOptionVisible_accessor_storage","codeViewExpandable","_BlockCodeView_codeViewExpandable_accessor_storage","copyButtonText","_BlockCodeView_copyButtonText_accessor_storage","copyButtonDescriptionAttr","_BlockCodeView_copyButtonDescriptionAttr_accessor_storage","codeSnippet","_BlockCodeView_codeSnippet_accessor_storage","textStrings","_BlockCodeView_textStrings_accessor_storage","_textStrings","_BlockCodeView__textStrings_accessor_storage","_isSingleLine","_BlockCodeView__isSingleLine_accessor_storage","hasOverflow","_BlockCodeView_hasOverflow_accessor_storage","codeExpanded","_BlockCodeView_codeExpanded_accessor_storage","_copyState","_BlockCodeView__copyState_accessor_storage","_effectiveLanguage","_BlockCodeView__effectiveLanguage_accessor_storage","_codeFitsContainerOnLoad","_BlockCodeView__codeFitsContainerOnLoad_accessor_storage","_expandedHeight","_BlockCodeView__expandedHeight_accessor_storage","updated","changedProperties","has","requestUpdate","codeChanged","setTimeout","highlightCode","checkOverflow","text","super","render","containerStyle","getContainerStyle","getContainerClasses","handleKeypress","ifDefined","Math","max","undefined","renderCopyButton","renderExpandButton","classMap","length","_a","copied","copyCode","unsafeSVG","checkmarkIcon","copyIcon","expandCodeView","chevronDown","willUpdate","changedProps","deepmerge","processedCode","removeLeadingWhitespace","trim","split","detectLanguage","preEl","shadowRoot","querySelector","codeEl","existingLineNumbers","remove","className","textContent","classList","add","setAttribute","String","removeAttribute","highlightElement","hooks","run","element","resize","addLineNumbers","e","console","warn","linesCount","parseInt","getAttribute","lineNumbersWrapper","document","createElement","spans","Array","fill","join","innerHTML","appendChild","style","counterReset","code","languages","bestMatch","relevance","lang","tokens","tokenize","calculateRelevance","determineMarkupLanguage","reduce","token","getTokenRelevance","alias","isArray","isLanguageSpecificToken","content","acc","t","some","toString","includes","test","requestAnimationFrame","container","pre","naturalHeight","scrollHeight","calcHeight","clientHeight","lines","minIndent","min","line","match","indent","Infinity","map","slice","formatExampleCode","originalText","navigator","clipboard","writeText","then","dispatchEvent","CustomEvent","detail","origEvent","fullSnippet","catch","err","error","currentTarget","isVerticallyScrollable","isHorizontallyScrollable","scrollWidth","clientWidth","key","scrollTop","preventDefault","scrollLeft","set","__runInitializers","_darkTheme_initializers","_darkTheme_extraInitializers","_language_initializers","_language_extraInitializers","_lineNumbers_initializers","_lineNumbers_extraInitializers","_startLineNumber_initializers","_startLineNumber_extraInitializers","_maxHeight_initializers","_maxHeight_extraInitializers","_codeViewLabel_initializers","_codeViewLabel_extraInitializers","_copyOptionVisible_initializers","_copyOptionVisible_extraInitializers","_codeViewExpandable_initializers","_codeViewExpandable_extraInitializers","_copyButtonText_initializers","_copyButtonText_extraInitializers","_copyButtonDescriptionAttr_initializers","_copyButtonDescriptionAttr_extraInitializers","_codeSnippet_initializers","_codeSnippet_extraInitializers","_textStrings_initializers","_textStrings_extraInitializers","__textStrings_initializers","__textStrings_extraInitializers","__isSingleLine_initializers","__isSingleLine_extraInitializers","_hasOverflow_initializers","_hasOverflow_extraInitializers","_codeExpanded_initializers","_codeExpanded_extraInitializers","__copyState_initializers","__copyState_extraInitializers","__effectiveLanguage_initializers","__effectiveLanguage_extraInitializers","__codeFitsContainerOnLoad_initializers","__codeFitsContainerOnLoad_extraInitializers","__expandedHeight_initializers","_darkTheme_decorators","property","type","_language_decorators","_lineNumbers_decorators","Boolean","_startLineNumber_decorators","Number","_maxHeight_decorators","_codeViewLabel_decorators","_copyOptionVisible_decorators","_codeViewExpandable_decorators","_copyButtonText_decorators","_copyButtonDescriptionAttr_decorators","_codeSnippet_decorators","_textStrings_decorators","Object","__textStrings_decorators","state","__isSingleLine_decorators","_hasOverflow_decorators","_codeExpanded_decorators","__copyState_decorators","__effectiveLanguage_decorators","__codeFitsContainerOnLoad_decorators","__expandedHeight_decorators","__esDecorate","kind","name","static","private","access","obj","get","metadata","_metadata","__expandedHeight_extraInitializers","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","BlockCodeViewStyles","ShidokaSyntaxTheme"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAWAA,EAAMC,QAAQC,WAAWC,eAAiB,mCAgB1C,MAAMC,EAAsB,CAC1BC,UAAW,YACXC,SAAU,YAGNC,EAAqD,CACzDC,OAAQ,CAAC,IAAK,IAAK,IAAK,MAAO,OAAQ,QAAS,MAChDC,KAAM,CAAC,IAAK,IAAK,IAAK,MAAO,OAAQ,QAAS,MAC9CC,IAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KAC/BC,WAAY,CAAC,WAAY,QAAS,MAAO,MAAO,MAChDC,WAAY,CAAC,YAAa,OAAQ,IAAK,MACvCC,OAAQ,CAAC,MAAO,SAAU,OAAQ,SAClCC,KAAM,CAAC,SAAU,UAAW,QAAS,aAQ1BC,EAAa,iHADzBC,EAAc,iCACoBC,yPAARC,EAAA,cAAQC,GAQjC,aAASC,GAAS,OAAAC,EAAAC,KAAAC,EAAA,IAAA,CAAlB,aAASH,CAASI,GAAAC,EAAAH,KAAAC,EAAAC,EAAA,IAAA,CAIlB,YAASE,GAAQ,OAAAL,EAAAC,KAAAK,EAAA,IAAA,CAAjB,YAASD,CAAQF,GAAAC,EAAAH,KAAAK,EAAAH,EAAA,IAAA,CAIjB,eAASI,GAAW,OAAAP,EAAAC,KAAAO,EAAA,IAAA,CAApB,eAASD,CAAWJ,GAAAC,EAAAH,KAAAO,EAAAL,EAAA,IAAA,CAIpB,mBAASM,GAAe,OAAAT,EAAAC,KAAAS,EAAA,IAAA,CAAxB,mBAASD,CAAeN,GAAAC,EAAAH,KAAAS,EAAAP,EAAA,IAAA,CAIxB,aAASQ,GAAS,OAAAX,EAAAC,KAAAW,EAAA,IAAA,CAAlB,aAASD,CAASR,GAAAC,EAAAH,KAAAW,EAAAT,EAAA,IAAA,CAIlB,iBAASU,GAAa,OAAAb,EAAAC,KAAAa,EAAA,IAAA,CAAtB,iBAASD,CAAaV,GAAAC,EAAAH,KAAAa,EAAAX,EAAA,IAAA,CAItB,qBAASY,GAAiB,OAAAf,EAAAC,KAAAe,EAAA,IAAA,CAA1B,qBAASD,CAAiBZ,GAAAC,EAAAH,KAAAe,EAAAb,EAAA,IAAA,CAI1B,sBAASc,GAAkB,OAAAjB,EAAAC,KAAAiB,EAAA,IAAA,CAA3B,sBAASD,CAAkBd,GAAAC,EAAAH,KAAAiB,EAAAf,EAAA,IAAA,CAI3B,kBAASgB,GAAc,OAAAnB,EAAAC,KAAAmB,EAAA,IAAA,CAAvB,kBAASD,CAAchB,GAAAC,EAAAH,KAAAmB,EAAAjB,EAAA,IAAA,CAIvB,6BAASkB,GAAyB,OAAArB,EAAAC,KAAAqB,EAAA,IAAA,CAAlC,6BAASD,CAAyBlB,GAAAC,EAAAH,KAAAqB,EAAAnB,EAAA,IAAA,CAIlC,eAASoB,GAAW,OAAAvB,EAAAC,KAAAuB,EAAA,IAAA,CAApB,eAASD,CAAWpB,GAAAC,EAAAH,KAAAuB,EAAArB,EAAA,IAAA,CAIpB,eAASsB,GAAW,OAAAzB,EAAAC,KAAAyB,EAAA,IAAA,CAApB,eAASD,CAAWtB,GAAAC,EAAAH,KAAAyB,EAAAvB,EAAA,IAAA,CAMpB,gBAAiBwB,GAAY,OAAA3B,EAAAC,KAAA2B,EAAA,IAAA,CAA7B,gBAAiBD,CAAYxB,GAAAC,EAAAH,KAAA2B,EAAAzB,EAAA,IAAA,CAM7B,iBAAiB0B,GAAa,OAAA7B,EAAAC,KAAA6B,EAAA,IAAA,CAA9B,iBAAiBD,CAAa1B,GAAAC,EAAAH,KAAA6B,EAAA3B,EAAA,IAAA,CAM9B,eAAiB4B,GAAW,OAAA/B,EAAAC,KAAA+B,EAAA,IAAA,CAA5B,eAAiBD,CAAW5B,GAAAC,EAAAH,KAAA+B,EAAA7B,EAAA,IAAA,CAM5B,gBAAiB8B,GAAY,OAAAjC,EAAAC,KAAAiC,EAAA,IAAA,CAA7B,gBAAiBD,CAAY9B,GAAAC,EAAAH,KAAAiC,EAAA/B,EAAA,IAAA,CAM7B,cAAiBgC,GAAU,OAAAnC,EAAAC,KAAAmC,EAAA,IAAA,CAA3B,cAAiBD,CAAUhC,GAAAC,EAAAH,KAAAmC,EAAAjC,EAAA,IAAA,CAM3B,sBAAiBkC,GAAkB,OAAArC,EAAAC,KAAAqC,EAAA,IAAA,CAAnC,sBAAiBD,CAAkBlC,GAAAC,EAAAH,KAAAqC,EAAAnC,EAAA,IAAA,CAMnC,4BAAiBoC,GAAwB,OAAAvC,EAAAC,KAAAuC,EAAA,IAAA,CAAzC,4BAAiBD,CAAwBpC,GAAAC,EAAAH,KAAAuC,EAAArC,EAAA,IAAA,CAMzC,mBAAiBsC,GAAe,OAAAzC,EAAAC,KAAAyC,EAAA,IAAA,CAAhC,mBAAiBD,CAAetC,GAAAC,EAAAH,KAAAyC,EAAAvC,EAAA,IAAA,CAEvB,OAAAwC,CAAQC,GACXA,EAAkBC,IAAI,cAAc5C,KAAK6C,gBAE7C,MAAMC,EACJH,EAAkBC,IAAI,gBACtBD,EAAkBC,IAAI,aACtBD,EAAkBC,IAAI,aAGpBD,EAAkBC,IAAI,eACxBG,YAAW,KACT/C,KAAKgD,gBACLhD,KAAKiD,eAAe,GACnB,GACMH,IACT9C,KAAKgD,gBACLhD,KAAKiD,iBAGHN,EAAkBC,IAAI,oBACxB5C,KAAKkC,WAAa,IAAKlC,KAAKkC,WAAYgB,KAAMlD,KAAKkB,iBAGjDyB,EAAkBC,IAAI,qBAEpB5C,KAAKQ,gBAAkB,IACzBR,KAAKQ,gBAAkB,GAEzBR,KAAKgD,iBAGPG,MAAMT,QAAQC,GAGP,MAAAS,GACP,MAAMC,EAAiB,GAAGrD,KAAKsD,uBAC/B,OAAOnE,CAAI;QACPa,KAAKY,cACHzB,CAAI;qBACOa,KAAKY;kBAEhB;oBACUZ,KAAKuD,iCAAiCF;;;uBAGnCrD,KAAKwD;;oBAERxD,KAAKM,cAAgBN,KAAK4B,cAC9B,eACA;yBACS6B,EACXzD,KAAKM,YAAcoD,KAAKC,IAAI,EAAG3D,KAAKQ,sBAAmBoD;;iDAGpB5D,KACpCoC;;;UAGHpC,KAAK6D,sBAAsB7D,KAAK8D;;MAKhC,mBAAAP,SACN,OAAOQ,EAAS,CACd,wBAAwB,EACxB,cAAe/D,KAAK4B,cACpB,cAAe5B,KAAK4B,cACpB,wBACE5B,KAAKkB,gBAAkBlB,KAAKkB,eAAe8C,OAAS,EACtD,0BAA2BhE,KAAKkB,eAChC,wBAAwB,EACxB,6BAAiD,SAAnBlB,KAAKF,UACnC,8BAAkD,UAAnBE,KAAKF,UACpC,qBAAsBE,KAAKgC,aAC3B,eAAgBhC,KAAK8B,YACrB,sBAAemC,EAAAjE,KAAKkC,iCAAYgC,SAI5B,gBAAAL,GACN,OAAK7D,KAAKc,kBACH3B,CAAI;;;;;;oBAMKa,KAAKkC,WAAWgC;sBACdT,EAAUzD,KAAKoB;iBACpBpB,KAAKmE;;;YAGVnE,KAAKkC,WAAWgC,OACdE,EAAUC,GACVD,EAAUE;;UAEdtE,KAAKkC,WAAWgB,KACd/D,CAAI,2BAA2Ba,KAAKkC,WAAWgB,cAC/C;;MAlB4B,KAuB9B,kBAAAY,GACN,OACG9D,KAAKgB,qBACJhB,KAAK8B,aAAe9B,KAAKsC,yBAEpB,KACFnD,CAAI;;;;;;;sBAOOa,KAAKgC,aACfhC,KAAK0B,aAAa3C,UAClBiB,KAAK0B,aAAa1C;iBACbgB,KAAKuE;;gDAE0BH,EAAUI;;MAK/C,UAAAC,CAAWC,GACdA,EAAa9B,IAAI,kBACnB5C,KAAK0B,aAAeiD,EAAU7F,EAAqBkB,KAAKwB,cAIpD,aAAAwB,SACN,MAAM4B,EAAgB5E,KAAK6E,wBAAwB7E,KAAKsB,aACxDtB,KAAK4B,cAA4D,IAA5CgD,EAAcE,OAAOC,MAAM,MAAMf,OACtDhE,KAAKoC,mBACHpC,KAAKI,UAAYJ,KAAKgF,eAAeJ,GAEvC,MAAMK,EAAuB,QAAfhB,EAAAjE,KAAKkF,kBAAU,IAAAjB,OAAA,EAAAA,EAAEkB,cAAc,OACvCC,EAASH,aAAK,EAALA,EAAOE,cAAc,QAEpC,IAAKC,IAAWH,EAAO,OAEvB,MAAMI,EAAsBJ,EAAME,cAAc,sBAC5CE,GACFA,EAAoBC,SAGtBF,EAAOG,UAAY,YAAYvF,KAAKoC,qBACpCgD,EAAOI,YAAcZ,EAEjB5E,KAAKM,cAAgBN,KAAK4B,eAC5BqD,EAAMQ,UAAUC,IAAI,gBACpBT,EAAMU,aAAa,aAAcC,OAAO5F,KAAKQ,oBAE7CyE,EAAMQ,UAAUH,OAAO,gBACvBL,EAAMY,gBAAgB,eAGxB9C,YAAW,KACTrE,EAAMoH,iBAAiBV,GAEvBrC,YAAW,WACT,GAAI/C,KAAKM,YACP,KAC4B,UAArB5B,EAAcC,eAAO,IAAAsF,OAAA,EAAAA,EAAE3D,eACrB2E,EAAME,cAAc,wBACtBzG,EAAcqH,MAAMC,IAAI,WAAY,CAAEC,QAASb,IAC/C1G,EAAcC,QAAQ2B,YAAY4F,OAAOjB,KAIzCA,EAAME,cAAc,uBACvBnF,KAAKmG,eAAelB,EAAOG,GAE7B,MAAOgB,GACPC,QAAQC,KAAK,qCAAsCF,GACnDpG,KAAKmG,eAAelB,EAAOG,GAI/BpF,KAAKiD,eAAe,GACnB,GAAG,GACL,GAGG,cAAAkD,CAAelB,EAAoBG,GACzC,GAAIH,EAAME,cAAc,sBAAuB,OAE/C,MAAMoB,GAAcnB,EAAOI,aAAe,IAAIT,MAAM,MAAMf,OACpDxD,EAAkBkD,KAAKC,IAC3B,EACA6C,SAASvB,EAAMwB,aAAa,eAAiB,IAAK,KAG9CC,EAAqBC,SAASC,cAAc,QAClDF,EAAmBnB,UAAY,oBAE/B,MAAMsB,EAAQC,MAAMP,GAAYQ,KAAK,iBAAiBC,KAAK,IAC3DN,EAAmBO,UAAYJ,EAE/B5B,EAAMiC,YAAYR,GAClBzB,EAAMkC,MAAMC,aAAe,eAAc5G,EAAkB,GAGrD,cAAAwE,CAAeqC,GACrB,IAAKA,EAAKvC,OAAQ,MAAO,YAEzB,MAAMwC,EAAY,CAChB,SACA,OACA,MACA,MACA,SACA,MACA,aACA,aACA,SACA,OACA,IACA,OAEF,IAAIC,EAA2B,CAAEnH,SAAU,YAAaoH,UAAW,GAEnE,IAAK,MAAMC,KAAQH,EACjB,GAAI5I,EAAM4I,UAAUG,GAAO,CACzB,MAAMC,EAAShJ,EAAMiJ,SAASN,EAAM3I,EAAM4I,UAAUG,IAC9CD,EAAYxH,KAAK4H,mBAAmBF,EAAQD,GAC9CD,EAAYD,EAAUC,YACxBD,EAAY,CAAEnH,SAAUqH,EAAMD,cAKpC,MAA8B,WAAvBD,EAAUnH,SACbJ,KAAK6H,wBAAwBR,GAC7BE,EAAUnH,SAGR,kBAAAwH,CACNF,EACAtH,GAEA,OAAOsH,EAAOI,QAAO,CAACN,EAAWO,KACV,iBAAVA,IACTP,GAAaxH,KAAKgI,kBAAkBD,EAAO3H,IAEtCoH,IACN,GAGG,iBAAAQ,CAAkBD,EAAoB3H,GAC5C,IAAIoH,EACF,GACCO,EAAME,MAASnB,MAAMoB,QAAQH,EAAME,OAASF,EAAME,MAAMjE,OAAS,EAAK,GAczE,OAbIhE,KAAKmI,wBAAwBJ,EAAO3H,KAAWoH,GAAa,GAC5DO,EAAMK,UACJtB,MAAMoB,QAAQH,EAAMK,SACtBZ,GAAaO,EAAMK,QAAQN,QACzB,CAACO,EAAKC,IACJD,GACc,iBAANC,EAAiB,EAAItI,KAAKgI,kBAAkBM,EAAGlI,KACzD,GAEgC,iBAAlB2H,EAAMK,UACtBZ,GAAaxH,KAAKgI,kBAAkBD,EAAMK,QAAShI,KAGhDoH,EAGD,uBAAAW,CACNJ,EACA3H,GAGA,OADuBnB,EAAyBmB,IAAa,IACvCmI,MAAMD,GAAMP,EAAMK,QAAQI,WAAWC,SAASH,KAG9D,uBAAAT,CAAwBR,GAC9B,MAAI,qBAAqBqB,KAAKrB,GAAc,OACxC,UAAUqB,KAAKrB,GAAc,MAC7B,QAAQqB,KAAKrB,GAAc,MAC3B,SAASqB,KAAKrB,GAAc,SACzB,SAGD,aAAApE,GACNF,YAAW,KACT4F,uBAAsB,WACpB,MAAMC,EAA2B,QAAf3E,EAAAjE,KAAKkF,kBAAU,IAAAjB,OAAA,EAAAA,EAAEkB,cACjC,yBAEI0D,EAAMD,aAAS,EAATA,EAAWzD,cAAc,OACrC,GAAI0D,GAAOD,EAAW,CACpB,MAAME,EAAgBD,EAAIE,aACpBC,EAAahJ,KAAKgC,aACpBhC,KAAKwC,iBAAmBoG,EAAUK,aACf,OAAnBjJ,KAAKU,UACLV,KAAKU,UACLkI,EAAUK,aAEdjJ,KAAK8B,YAAcgH,EAAgBE,EACnChJ,KAAKsC,yBACHwG,IAAkB9I,KAAKU,WAAakI,EAAUK,iBAElD,GACD,KAGG,uBAAApE,CAAwBwC,GAC9B,IAAKA,EAAM,MAAO,GAClB,MAAM6B,EAAQ7B,EAAKtC,MAAM,MACnBoE,EAAYD,EAAMpB,QAAO,CAACsB,EAAKC,KACnC,MAAMC,EAAQD,EAAKC,MAAM,WACnBC,EAASD,EAAQA,EAAM,GAAGtF,OAAS,EACzC,OAAOqF,EAAKvE,OAAOd,OAASN,KAAK0F,IAAIA,EAAKG,GAAUH,CAAG,GACtDI,KACH,OAAON,EACJO,KAAKJ,GAASA,EAAKK,MAAMP,KACzBnC,KAAK,MACLlC,OAGG,iBAAA6E,CAAkBtC,GACxB,MAAO,CAAEA,QAGH,QAAAlD,CAASiC,GACf,MAAMwD,EAAe5J,KAAKkC,WAAWgB,KACrC2G,UAAUC,UACPC,UAAU/J,KAAKsB,aACf0I,MAAK,KACJhK,KAAKkC,WAAa,CAChBgC,QAAQ,EACRhB,KAAM0G,EAAa5F,OAAS,EAAI,UAAY,IAE9ChE,KAAK6C,gBACL7C,KAAKiK,cACH,IAAIC,YAAY,UAAW,CACzBC,OAAQ,CACNC,UAAWhE,EACXiE,YAAarK,KAAK2J,kBAAkB3J,KAAKsB,iBAI/CyB,YAAW,KACT/C,KAAKkC,WAAa,CAAEgC,QAAQ,EAAOhB,KAAM0G,GACzC5J,KAAK6C,eAAe,GACnB,IAAK,IAETyH,OAAOC,GAAQlE,QAAQmE,MAAM,uBAAwBD,KAGlD,iBAAAjH,GACN,OAAItD,KAAKgC,aACAhC,KAAKwC,gBACR,eAAexC,KAAKwC,oBACpB,GAEoB,OAAnBxC,KAAKU,UAAqB,eAAeV,KAAKU,cAAgB,GAG/D,cAAA6D,SAGN,GAFAvE,KAAKgC,cAAgBhC,KAAKgC,aAEtBhC,KAAKgC,aAAc,CACrB,MAAM6G,EAAqB,QAAf5E,EAAAjE,KAAKkF,kBAAU,IAAAjB,OAAA,EAAAA,EAAEkB,cAAc,OAC3CnF,KAAKwC,iBAAkBqG,aAAG,EAAHA,EAAKE,eAAgB,UAE5C/I,KAAKwC,gBAAkB,KAGzBxC,KAAK6C,gBACLE,YAAW,IAAM/C,KAAKiD,iBAAiB,GAGjC,cAAAO,CAAe4C,GACrB,MAAMyC,EAAMzC,EAAEqE,cAGRC,EAAyB7B,EAAIE,aAAeF,EAAII,aAChD0B,EAA2B9B,EAAI+B,YAAc/B,EAAIgC,YAEzC,cAAVzE,EAAE0E,KAAiC,YAAV1E,EAAE0E,IACzBJ,IACF7B,EAAIkC,WAAuB,cAAV3E,EAAE0E,IAPF,OAQjB1E,EAAE4E,kBAEe,eAAV5E,EAAE0E,KAAkC,cAAV1E,EAAE0E,KACjCH,IACF9B,EAAIoC,YAAwB,eAAV7E,EAAE0E,IAZH,OAajB1E,EAAE4E,oDAveC/K,EAAAiL,IAAAlL,KAAAmL,EAAAnL,KAAAoL,GAA0C,YAI1C/K,EAAA6K,IAAAlL,MAAAmL,EAAAnL,KAAAqL,IAAAF,EAAAnL,KAAAsL,GAAW,MAIX/K,EAAA2K,IAAAlL,MAAAmL,EAAAnL,KAAAuL,IAAAJ,EAAAnL,KAAAwL,IAAc,KAId/K,EAAAyK,IAAAlL,MAAAmL,EAAAnL,KAAAyL,IAAAN,EAAAnL,KAAA0L,GAAkB,KAIlB/K,EAAAuK,IAAAlL,MAAAmL,EAAAnL,KAAA2L,IAAAR,EAAAnL,KAAA4L,GAA2B,QAI3B/K,EAAAqK,IAAAlL,MAAAmL,EAAAnL,KAAA6L,IAAAV,EAAAnL,KAAA8L,GAAgB,MAIhB/K,EAAAmK,IAAAlL,MAAAmL,EAAAnL,KAAA+L,IAAAZ,EAAAnL,KAAAgM,IAAoB,KAIpB/K,EAAAiK,IAAAlL,MAAAmL,EAAAnL,KAAAiM,IAAAd,EAAAnL,KAAAkM,IAAqB,KAIrB/K,EAAA+J,IAAAlL,MAAAmL,EAAAnL,KAAAmM,IAAAhB,EAAAnL,KAAAoM,GAAiB,MAIjB/K,EAAA6J,IAAAlL,MAAAmL,EAAAnL,KAAAqM,IAAAlB,EAAAnL,KAAAsM,GAA4B,MAI5B/K,EAAA2J,IAAAlL,MAAAmL,EAAAnL,KAAAuM,IAAApB,EAAAnL,KAAAwM,GAAc,MAId/K,EAAAyJ,IAAAlL,MAAAmL,EAAAnL,KAAAyM,IAAAtB,EAAAnL,KAAA0M,GAAc5N,KAMN6C,EAAAuJ,IAAAlL,MAAAmL,EAAAnL,KAAA2M,IAAAxB,EAAAnL,KAAA4M,GAAe9N,KAMf+C,EAAAqJ,IAAAlL,MAAAmL,EAAAnL,KAAA6M,IAAA1B,EAAAnL,KAAA8M,IAAgB,KAMhB/K,EAAAmJ,IAAAlL,MAAAmL,EAAAnL,KAAA+M,IAAA5B,EAAAnL,KAAAgN,IAAc,KAMd/K,EAAAiJ,IAAAlL,MAAAmL,EAAAnL,KAAAiN,IAAA9B,EAAAnL,KAAAkN,IAAe,KAMf/K,EAAA+I,IAAAlL,MAAAmL,EAAAnL,KAAAmN,IAAAhC,EAAAnL,KAAAoN,GAAa,CAAElJ,QAAQ,EAAOhB,KAAM,OAMpCb,EAAA6I,IAAAlL,MAAAmL,EAAAnL,KAAAqN,IAAAlC,EAAAnL,KAAAsN,GAAqB,MAMrB/K,EAAA2I,IAAAlL,MAAAmL,EAAAnL,KAAAuN,IAAApC,EAAAnL,KAAAwN,IAA2B,KAM3B/K,EAAAyI,IAAAlL,MAAAmL,EAAAnL,KAAAyN,IAAAtC,EAAAnL,KAAA0N,GAAiC,ycA7FjDC,EAAA,CAAAC,EAAS,CAAEC,KAAMjI,UAIjBkI,EAAA,CAAAF,EAAS,CAAEC,KAAMjI,UAIjBmI,EAAA,CAAAH,EAAS,CAAEC,KAAMG,WAIjBC,EAAA,CAAAL,EAAS,CAAEC,KAAMK,UAIjBC,EAAA,CAAAP,EAAS,CAAEC,KAAMK,UAIjBE,EAAA,CAAAR,EAAS,CAAEC,KAAMjI,UAIjByI,EAAA,CAAAT,EAAS,CAAEC,KAAMG,WAIjBM,EAAA,CAAAV,EAAS,CAAEC,KAAMG,WAIjBO,EAAA,CAAAX,EAAS,CAAEC,KAAMjI,UAIjB4I,GAAA,CAAAZ,EAAS,CAAEC,KAAMjI,UAIjB6I,GAAA,CAAAb,EAAS,CAAEC,KAAMjI,UAIjB8I,GAAA,CAAAd,EAAS,CAAEC,KAAMc,UAMjBC,GAAA,CAAAC,KAMAC,GAAA,CAAAD,KAMAE,GAAA,CAAAF,KAMAG,GAAA,CAAAH,KAMAI,GAAA,CAAAJ,KAMAK,GAAA,CAAAL,KAMAM,GAAA,CAAAN,KAMAO,GAAA,CAAAP,KA3FDQ,EAAAzP,EAAA,KAAA+N,EAAA,CAAA2B,KAAA,WAAAC,KAAA,YAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA9M,IAAA+M,GAAA,cAAAA,EAAAC,IAAAD,GAAAA,EAAS7P,UAASoL,IAAA,CAAAyE,EAAAzP,KAAAyP,EAAT7P,UAASI,CAAA,GAAA2P,SAAAC,GAAA1E,GAAAC,IAIlBgE,EAAAzP,EAAA,KAAAkO,EAAA,CAAAwB,KAAA,WAAAC,KAAA,WAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA9M,IAAA+M,GAAA,aAAAA,EAAAC,IAAAD,GAAAA,EAASvP,SAAQ8K,IAAA,CAAAyE,EAAAzP,KAAAyP,EAARvP,SAAQF,CAAA,GAAA2P,SAAAC,GAAAxE,GAAAC,IAIjB8D,EAAAzP,EAAA,KAAAmO,EAAA,CAAAuB,KAAA,WAAAC,KAAA,cAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA9M,IAAA+M,GAAA,gBAAAA,EAAAC,IAAAD,GAAAA,EAASrP,YAAW4K,IAAA,CAAAyE,EAAAzP,KAAAyP,EAAXrP,YAAWJ,CAAA,GAAA2P,SAAAC,GAAAtE,GAAAC,IAIpB4D,EAAAzP,EAAA,KAAAqO,EAAA,CAAAqB,KAAA,WAAAC,KAAA,kBAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA9M,IAAA+M,GAAA,oBAAAA,EAAAC,IAAAD,GAAAA,EAASnP,gBAAe0K,IAAA,CAAAyE,EAAAzP,KAAAyP,EAAfnP,gBAAeN,CAAA,GAAA2P,SAAAC,GAAApE,GAAAC,IAIxB0D,EAAAzP,EAAA,KAAAuO,EAAA,CAAAmB,KAAA,WAAAC,KAAA,YAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA9M,IAAA+M,GAAA,cAAAA,EAAAC,IAAAD,GAAAA,EAASjP,UAASwK,IAAA,CAAAyE,EAAAzP,KAAAyP,EAATjP,UAASR,CAAA,GAAA2P,SAAAC,GAAAlE,GAAAC,IAIlBwD,EAAAzP,EAAA,KAAAwO,EAAA,CAAAkB,KAAA,WAAAC,KAAA,gBAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA9M,IAAA+M,GAAA,kBAAAA,EAAAC,IAAAD,GAAAA,EAAS/O,cAAasK,IAAA,CAAAyE,EAAAzP,KAAAyP,EAAb/O,cAAaV,CAAA,GAAA2P,SAAAC,GAAAhE,GAAAC,IAItBsD,EAAAzP,EAAA,KAAAyO,EAAA,CAAAiB,KAAA,WAAAC,KAAA,oBAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA9M,IAAA+M,GAAA,sBAAAA,EAAAC,IAAAD,GAAAA,EAAS7O,kBAAiBoK,IAAA,CAAAyE,EAAAzP,KAAAyP,EAAjB7O,kBAAiBZ,CAAA,GAAA2P,SAAAC,GAAA9D,GAAAC,IAI1BoD,EAAAzP,EAAA,KAAA0O,EAAA,CAAAgB,KAAA,WAAAC,KAAA,qBAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA9M,IAAA+M,GAAA,uBAAAA,EAAAC,IAAAD,GAAAA,EAAS3O,mBAAkBkK,IAAA,CAAAyE,EAAAzP,KAAAyP,EAAlB3O,mBAAkBd,CAAA,GAAA2P,SAAAC,GAAA5D,GAAAC,IAI3BkD,EAAAzP,EAAA,KAAA2O,EAAA,CAAAe,KAAA,WAAAC,KAAA,iBAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA9M,IAAA+M,GAAA,mBAAAA,EAAAC,IAAAD,GAAAA,EAASzO,eAAcgK,IAAA,CAAAyE,EAAAzP,KAAAyP,EAAdzO,eAAchB,CAAA,GAAA2P,SAAAC,GAAA1D,GAAAC,IAIvBgD,EAAAzP,EAAA,KAAA4O,GAAA,CAAAc,KAAA,WAAAC,KAAA,4BAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA9M,IAAA+M,GAAA,8BAAAA,EAAAC,IAAAD,GAAAA,EAASvO,0BAAyB8J,IAAA,CAAAyE,EAAAzP,KAAAyP,EAAzBvO,0BAAyBlB,CAAA,GAAA2P,SAAAC,GAAAxD,GAAAC,IAIlC8C,EAAAzP,EAAA,KAAA6O,GAAA,CAAAa,KAAA,WAAAC,KAAA,cAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA9M,IAAA+M,GAAA,gBAAAA,EAAAC,IAAAD,GAAAA,EAASrO,YAAW4J,IAAA,CAAAyE,EAAAzP,KAAAyP,EAAXrO,YAAWpB,CAAA,GAAA2P,SAAAC,GAAAtD,GAAAC,IAIpB4C,EAAAzP,EAAA,KAAA8O,GAAA,CAAAY,KAAA,WAAAC,KAAA,cAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA9M,IAAA+M,GAAA,gBAAAA,EAAAC,IAAAD,GAAAA,EAASnO,YAAW0J,IAAA,CAAAyE,EAAAzP,KAAAyP,EAAXnO,YAAWtB,CAAA,GAAA2P,SAAAC,GAAApD,GAAAC,IAMpB0C,EAAAzP,EAAA,KAAAgP,GAAA,CAAAU,KAAA,WAAAC,KAAA,eAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA9M,IAAA+M,GAAA,iBAAAA,EAAAC,IAAAD,GAAAA,EAAiBjO,aAAYwJ,IAAA,CAAAyE,EAAAzP,KAAAyP,EAAZjO,aAAYxB,CAAA,GAAA2P,SAAAC,GAAAlD,GAAAC,IAM7BwC,EAAAzP,EAAA,KAAAkP,GAAA,CAAAQ,KAAA,WAAAC,KAAA,gBAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA9M,IAAA+M,GAAA,kBAAAA,EAAAC,IAAAD,GAAAA,EAAiB/N,cAAasJ,IAAA,CAAAyE,EAAAzP,KAAAyP,EAAb/N,cAAa1B,CAAA,GAAA2P,SAAAC,GAAAhD,GAAAC,IAM9BsC,EAAAzP,EAAA,KAAAmP,GAAA,CAAAO,KAAA,WAAAC,KAAA,cAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA9M,IAAA+M,GAAA,gBAAAA,EAAAC,IAAAD,GAAAA,EAAiB7N,YAAWoJ,IAAA,CAAAyE,EAAAzP,KAAAyP,EAAX7N,YAAW5B,CAAA,GAAA2P,SAAAC,GAAA9C,GAAAC,IAM5BoC,EAAAzP,EAAA,KAAAoP,GAAA,CAAAM,KAAA,WAAAC,KAAA,eAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA9M,IAAA+M,GAAA,iBAAAA,EAAAC,IAAAD,GAAAA,EAAiB3N,aAAYkJ,IAAA,CAAAyE,EAAAzP,KAAAyP,EAAZ3N,aAAY9B,CAAA,GAAA2P,SAAAC,GAAA5C,GAAAC,IAM7BkC,EAAAzP,EAAA,KAAAqP,GAAA,CAAAK,KAAA,WAAAC,KAAA,aAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA9M,IAAA+M,GAAA,eAAAA,EAAAC,IAAAD,GAAAA,EAAiBzN,WAAUgJ,IAAA,CAAAyE,EAAAzP,KAAAyP,EAAVzN,WAAUhC,CAAA,GAAA2P,SAAAC,GAAA1C,GAAAC,IAM3BgC,EAAAzP,EAAA,KAAAsP,GAAA,CAAAI,KAAA,WAAAC,KAAA,qBAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA9M,IAAA+M,GAAA,uBAAAA,EAAAC,IAAAD,GAAAA,EAAiBvN,mBAAkB8I,IAAA,CAAAyE,EAAAzP,KAAAyP,EAAlBvN,mBAAkBlC,CAAA,GAAA2P,SAAAC,GAAAxC,GAAAC,IAMnC8B,EAAAzP,EAAA,KAAAuP,GAAA,CAAAG,KAAA,WAAAC,KAAA,2BAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA9M,IAAA+M,GAAA,6BAAAA,EAAAC,IAAAD,GAAAA,EAAiBrN,yBAAwB4I,IAAA,CAAAyE,EAAAzP,KAAAyP,EAAxBrN,yBAAwBpC,CAAA,GAAA2P,SAAAC,GAAAtC,GAAAC,IAMzC4B,EAAAzP,EAAA,KAAAwP,GAAA,CAAAE,KAAA,WAAAC,KAAA,kBAAAC,QAAA,EAAAC,SAAA,EAAAC,OAAA,CAAA9M,IAAA+M,GAAA,oBAAAA,EAAAC,IAAAD,GAAAA,EAAiBnN,gBAAe0I,IAAA,CAAAyE,EAAAzP,KAAAyP,EAAfnN,gBAAetC,CAAA,GAAA2P,SAAAC,GAAApC,GAAAqC,IApGlCV,EAAA,KAAAW,EAAA,CAAA9P,MAAAN,GAAAqQ,GAAA,CAAAX,KAAA,QAAAC,KAAA3P,EAAA2P,KAAAM,SAAAC,GAAA,KAAAI,kHACkBtQ,EAAAuQ,OAAS,CACvBC,EAAUC,GACVD,EAAUE,IAHDnF,EAAAvL,EAAAsQ,OAAa"}
|
|
1
|
+
{"version":3,"file":"blockCodeView.js","sources":["../../../../src/components/reusable/blockCodeView/blockCodeView.ts"],"sourcesContent":["import { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';\nimport { html, LitElement, unsafeCSS } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { deepmerge } from 'deepmerge-ts';\n\nimport Prism from 'prismjs';\nimport 'prismjs/plugins/autoloader/prism-autoloader';\nimport 'prismjs/plugins/line-numbers/prism-line-numbers';\n\nimport copyIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/20/copy.svg';\nimport checkmarkIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/20/checkmark.svg';\nimport chevronDown from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/chevron-down.svg';\n\nimport '../button';\n\nimport BlockCodeViewStyles from './blockCodeView.scss?inline';\nimport ShidokaSyntaxTheme from '../../../common/scss/shidoka-syntax-theme.scss?inline';\n\ninterface LanguageMatch {\n language: string;\n relevance: number;\n}\n\nconst _defaultTextStrings = {\n collapsed: 'Collapsed',\n expanded: 'Expanded',\n};\n\ntype PrismWithAutoloader = typeof Prism & {\n plugins?: {\n autoloader?: {\n languages_path?: string;\n };\n };\n};\n\nconst prismWithAutoloader = Prism as PrismWithAutoloader;\n\nif (prismWithAutoloader.plugins?.autoloader) {\n prismWithAutoloader.plugins.autoloader.languages_path =\n 'https://cdn.jsdelivr.net/npm/prismjs@1/components/';\n}\n\nconst LANGUAGE_SPECIFIC_TOKENS: Record<string, string[]> = {\n markup: ['<', '>', '/', 'div', 'span', 'class', 'id'],\n html: ['<', '>', '/', 'div', 'span', 'class', 'id'],\n css: ['{', '}', ':', ';', '#', '.'],\n javascript: ['function', 'const', 'let', 'var', '=>'],\n typescript: ['interface', 'type', ':', 'as'],\n python: ['def', 'import', 'from', 'class'],\n java: ['public', 'private', 'class', 'void'],\n};\n\n/**\n * `<kyn-block-code-view>` component to display `<code>` snippets as standalone single-/multi-line block elements.\n * @fires on-copy - Emits when the copy button is clicked.\n */\n@customElement('kyn-block-code-view')\nexport class BlockCodeView extends LitElement {\n static override styles = [\n unsafeCSS(BlockCodeViewStyles),\n unsafeCSS(ShidokaSyntaxTheme),\n ];\n\n /** Sets background and text theming. */\n @property({ type: String })\n accessor darkTheme: 'light' | 'dark' | 'default' = 'default';\n\n /** If empty string, attempt language syntax auto-detection. Setting a value will override auto-detection and manually configure desired language. */\n @property({ type: String })\n accessor language = '';\n\n /** Optionally display line numbers. */\n @property({ type: Boolean })\n accessor lineNumbers = false;\n\n /** Sets the starting line number when lineNumbers is true. Must be a positive integer. */\n @property({ type: Number })\n accessor startLineNumber = 1;\n\n /** Customizable max-height setting for code snippet container. */\n @property({ type: Number })\n accessor maxHeight: number | null = null;\n\n /** Optionally displayed label above code snippet container. */\n @property({ type: String })\n accessor codeViewLabel = '';\n\n /** Optionally display button to copy code snippet. */\n @property({ type: Boolean })\n accessor copyOptionVisible = false;\n\n /** Optionally display button to expand code snippet container. */\n @property({ type: Boolean })\n accessor codeViewExpandable = false;\n\n /** Sets copy code button text (optional). */\n @property({ type: String })\n accessor copyButtonText = '';\n\n /** Sets copy button description attr value. */\n @property({ type: String })\n accessor copyButtonDescriptionAttr = '';\n\n /** Sets code snippet for display -- NOTE: original formatting is preserved. */\n @property({ type: String })\n accessor codeSnippet = '';\n\n /** Text string customization. */\n @property({ type: Object })\n accessor textStrings = _defaultTextStrings;\n\n /** Internal text strings.\n * @internal\n */\n @state()\n private accessor _textStrings = _defaultTextStrings;\n\n /** Auto-detect whether code snippet is single line (boolean) -- styled accordingly (boolean).\n * @internal\n */\n @state()\n private accessor _isSingleLine = false;\n\n /** Auto-detect whether code snippet exceeds the max-height allowance (boolean).\n * @internal\n */\n @state()\n private accessor hasOverflow = false;\n\n /** Value indicating whether overflow code sample is expanded (boolean).\n * @internal\n */\n @state()\n private accessor codeExpanded = false;\n\n /** Copy key-values to communicate copy button styling and state.\n * @internal\n */\n @state()\n private accessor _copyState = { copied: false, text: '' };\n\n /** Detected language for the code snippet.\n * @internal\n */\n @state()\n private accessor _effectiveLanguage = '';\n\n /** Code snippet fits into the height of the container -- no expansion needed.\n * @internal\n */\n @state()\n private accessor _codeFitsContainerOnLoad = true;\n\n /** If expandable -- height of the container when fully expanded.\n * @internal\n */\n @state()\n private accessor _expandedHeight: number | null = null;\n\n override updated(changedProperties: Map<string, unknown>) {\n if (changedProperties.has('darkTheme')) this.requestUpdate();\n\n const codeChanged =\n changedProperties.has('codeSnippet') ||\n changedProperties.has('language') ||\n changedProperties.has('maxHeight');\n\n // race condition guard: force complete re-highlighting when line numbers toggle\n if (changedProperties.has('lineNumbers')) {\n setTimeout(() => {\n this.highlightCode();\n this.checkOverflow();\n }, 0);\n } else if (codeChanged) {\n this.highlightCode();\n this.checkOverflow();\n }\n\n if (changedProperties.has('copyButtonText')) {\n this._copyState = { ...this._copyState, text: this.copyButtonText };\n }\n\n if (changedProperties.has('startLineNumber')) {\n // Ensure startLineNumber is at least 1\n if (this.startLineNumber < 1) {\n this.startLineNumber = 1;\n }\n this.highlightCode();\n }\n\n super.updated(changedProperties);\n }\n\n override render() {\n const containerStyle = `${this.getContainerStyle()};`;\n return html`\n ${this.codeViewLabel\n ? html`<div class=\"code-view__label\">\n <label>${this.codeViewLabel}</label>\n </div>`\n : null}\n <div class=\"${this.getContainerClasses()}\" style=\"${containerStyle}\">\n <div class=\"code-snippet-wrapper\">\n <pre\n @keydown=${this.handleKeypress}\n role=\"region\"\n class=${this.lineNumbers && !this._isSingleLine\n ? 'line-numbers'\n : 'no-line-numbers'}\n data-start=${ifDefined(\n this.lineNumbers ? Math.max(1, this.startLineNumber) : undefined\n )}\n >\n <code tabindex=\"0\" class=\"language-${this\n ._effectiveLanguage}\"></code>\n </pre>\n </div>\n ${this.renderCopyButton()} ${this.renderExpandButton()}\n </div>\n `;\n }\n\n private getContainerClasses() {\n return classMap({\n 'code-view__container': true,\n 'single-line': this._isSingleLine,\n 'multi-line': !this._isSingleLine,\n 'copy-button-text-true':\n this.copyButtonText && this.copyButtonText.length > 0,\n 'copy-button-text-false': !this.copyButtonText,\n 'shidoka-syntax-theme': true,\n 'shidoka-syntax-theme--dark': this.darkTheme === 'dark',\n 'shidoka-syntax-theme--light': this.darkTheme === 'light',\n 'expanded-code-view': this.codeExpanded,\n 'has-overflow': this.hasOverflow,\n 'copy-active': this._copyState?.copied,\n });\n }\n\n private renderCopyButton() {\n if (!this.copyOptionVisible) return null;\n return html`\n <kyn-button\n class=\"code-view__copy-button\"\n kind=\"secondary\"\n size=\"small\"\n iconPosition=\"left\"\n ?disabled=${this._copyState.copied}\n description=${ifDefined(this.copyButtonDescriptionAttr)}\n @click=${this.copyCode}\n >\n <span slot=\"icon\" class=\"copy-icon\">\n ${this._copyState.copied\n ? unsafeSVG(checkmarkIcon)\n : unsafeSVG(copyIcon)}\n </span>\n ${this._copyState.text\n ? html`<span class=\"copy-text\">${this._copyState.text}</span>`\n : null}\n </kyn-button>\n `;\n }\n\n private renderExpandButton() {\n if (\n !this.codeViewExpandable ||\n (!this.hasOverflow && this._codeFitsContainerOnLoad)\n )\n return null;\n return html`\n <kyn-button\n class=\"code-view__expand-button\"\n kind=\"ghost\"\n size=\"small\"\n iconPosition=\"left\"\n outlineOnly\n description=${this.codeExpanded\n ? this._textStrings.collapsed\n : this._textStrings.expanded}\n @click=${this.expandCodeView}\n >\n <span slot=\"icon\" class=\"expand-icon\">${unsafeSVG(chevronDown)}</span>\n </kyn-button>\n `;\n }\n\n override willUpdate(changedProps: Map<string, unknown>) {\n if (changedProps.has('codeExpanded')) {\n this._textStrings = deepmerge(_defaultTextStrings, this.textStrings);\n }\n }\n\n private highlightCode() {\n const processedCode = this.removeLeadingWhitespace(this.codeSnippet);\n this._isSingleLine = processedCode.trim().split('\\n').length === 1;\n this._effectiveLanguage =\n this.language || this.detectLanguage(processedCode);\n\n const preEl = this.shadowRoot?.querySelector('pre');\n const codeEl = preEl?.querySelector('code');\n\n if (!codeEl || !preEl) return;\n\n const existingLineNumbers = preEl.querySelector('.line-numbers-rows');\n if (existingLineNumbers) {\n existingLineNumbers.remove();\n }\n\n codeEl.className = `language-${this._effectiveLanguage}`;\n codeEl.textContent = processedCode;\n\n if (this.lineNumbers && !this._isSingleLine) {\n preEl.classList.add('line-numbers');\n preEl.setAttribute('data-start', String(this.startLineNumber));\n } else {\n preEl.classList.remove('line-numbers');\n preEl.removeAttribute('data-start');\n }\n\n setTimeout(() => {\n Prism.highlightElement(codeEl);\n\n setTimeout(() => {\n if (this.lineNumbers) {\n try {\n if ((Prism as any).plugins?.lineNumbers) {\n if (!preEl.querySelector('.line-numbers-rows')) {\n (Prism as any).hooks.run('complete', { element: codeEl });\n (Prism as any).plugins.lineNumbers.resize(preEl);\n }\n }\n\n if (!preEl.querySelector('.line-numbers-rows')) {\n this.addLineNumbers(preEl, codeEl);\n }\n } catch (e) {\n console.warn('Line numbers initialization error:', e);\n this.addLineNumbers(preEl, codeEl);\n }\n }\n\n this.checkOverflow();\n }, 50);\n }, 0);\n }\n\n private addLineNumbers(preEl: HTMLElement, codeEl: HTMLElement) {\n if (preEl.querySelector('.line-numbers-rows')) return;\n\n const linesCount = (codeEl.textContent || '').split('\\n').length;\n const startLineNumber = Math.max(\n 1,\n parseInt(preEl.getAttribute('data-start') || '1', 10)\n );\n\n const lineNumbersWrapper = document.createElement('span');\n lineNumbersWrapper.className = 'line-numbers-rows';\n\n const spans = Array(linesCount).fill('<span></span>').join('');\n lineNumbersWrapper.innerHTML = spans;\n\n preEl.appendChild(lineNumbersWrapper);\n preEl.style.counterReset = `linenumber ${startLineNumber - 1}`;\n }\n\n private detectLanguage(code: string): string {\n if (!code.trim()) return 'plaintext';\n\n const languages = [\n 'markup',\n 'html',\n 'xml',\n 'svg',\n 'mathml',\n 'css',\n 'javascript',\n 'typescript',\n 'python',\n 'java',\n 'c',\n 'cpp',\n ];\n let bestMatch: LanguageMatch = { language: 'plaintext', relevance: 0 };\n\n for (const lang of languages) {\n if (Prism.languages[lang]) {\n const tokens = Prism.tokenize(code, Prism.languages[lang]);\n const relevance = this.calculateRelevance(tokens, lang);\n if (relevance > bestMatch.relevance) {\n bestMatch = { language: lang, relevance };\n }\n }\n }\n\n return bestMatch.language === 'markup'\n ? this.determineMarkupLanguage(code)\n : bestMatch.language;\n }\n\n private calculateRelevance(\n tokens: (string | Prism.Token)[],\n language: string\n ): number {\n return tokens.reduce((relevance, token) => {\n if (typeof token !== 'string') {\n relevance += this.getTokenRelevance(token, language);\n }\n return relevance;\n }, 0);\n }\n\n private getTokenRelevance(token: Prism.Token, language: string): number {\n let relevance =\n 1 +\n (token.alias ? (Array.isArray(token.alias) ? token.alias.length : 1) : 0);\n if (this.isLanguageSpecificToken(token, language)) relevance += 2;\n if (token.content) {\n if (Array.isArray(token.content)) {\n relevance += token.content.reduce(\n (acc, t) =>\n acc +\n (typeof t === 'string' ? 0 : this.getTokenRelevance(t, language)),\n 0\n );\n } else if (typeof token.content !== 'string') {\n relevance += this.getTokenRelevance(token.content, language);\n }\n }\n return relevance;\n }\n\n private isLanguageSpecificToken(\n token: Prism.Token,\n language: string\n ): boolean {\n const specificTokens = LANGUAGE_SPECIFIC_TOKENS[language] || [];\n return specificTokens.some((t) => token.content.toString().includes(t));\n }\n\n private determineMarkupLanguage(code: string): string {\n if (/<\\/?[a-z][\\s\\S]*>/i.test(code)) return 'html';\n if (/<\\?xml/i.test(code)) return 'xml';\n if (/<svg/i.test(code)) return 'svg';\n if (/<math/i.test(code)) return 'mathml';\n return 'markup';\n }\n\n private checkOverflow() {\n setTimeout(() => {\n requestAnimationFrame(() => {\n const container = this.shadowRoot?.querySelector(\n '.code-snippet-wrapper'\n ) as HTMLElement;\n const pre = container?.querySelector('pre') as HTMLElement;\n if (pre && container) {\n const naturalHeight = pre.scrollHeight;\n const calcHeight = this.codeExpanded\n ? this._expandedHeight || container.clientHeight\n : this.maxHeight !== null\n ? this.maxHeight\n : container.clientHeight;\n\n this.hasOverflow = naturalHeight > calcHeight;\n this._codeFitsContainerOnLoad =\n naturalHeight <= (this.maxHeight || container.clientHeight);\n }\n });\n }, 100);\n }\n\n private removeLeadingWhitespace(code: string): string {\n if (!code) return '';\n const lines = code.split('\\n');\n const minIndent = lines.reduce((min, line) => {\n const match = line.match(/^[ \\t]*/);\n const indent = match ? match[0].length : 0;\n return line.trim().length ? Math.min(min, indent) : min;\n }, Infinity);\n return lines\n .map((line) => line.slice(minIndent))\n .join('\\n')\n .trim();\n }\n\n private formatExampleCode(code: string) {\n return { code };\n }\n\n private copyCode(e: Event) {\n const originalText = this._copyState.text;\n navigator.clipboard\n .writeText(this.codeSnippet)\n .then(() => {\n this._copyState = {\n copied: true,\n text: originalText.length > 1 ? 'Copied!' : '',\n };\n this.requestUpdate();\n this.dispatchEvent(\n new CustomEvent('on-copy', {\n detail: {\n origEvent: e,\n fullSnippet: this.formatExampleCode(this.codeSnippet),\n },\n })\n );\n setTimeout(() => {\n this._copyState = { copied: false, text: originalText };\n this.requestUpdate();\n }, 5000);\n })\n .catch((err) => console.error('Failed to copy code:', err));\n }\n\n private getContainerStyle(): string {\n if (this.codeExpanded) {\n return this._expandedHeight\n ? `max-height: ${this._expandedHeight}px`\n : '';\n }\n return this.maxHeight !== null ? `max-height: ${this.maxHeight}px` : '';\n }\n\n private expandCodeView() {\n this.codeExpanded = !this.codeExpanded;\n\n if (this.codeExpanded) {\n const pre = this.shadowRoot?.querySelector('pre') as HTMLElement;\n this._expandedHeight = pre?.scrollHeight || null;\n } else {\n this._expandedHeight = null;\n }\n\n this.requestUpdate();\n setTimeout(() => this.checkOverflow(), 0);\n }\n\n private handleKeypress(e: KeyboardEvent) {\n const pre = e.currentTarget as HTMLPreElement;\n const scrollAmount = 40;\n\n const isVerticallyScrollable = pre.scrollHeight > pre.clientHeight;\n const isHorizontallyScrollable = pre.scrollWidth > pre.clientWidth;\n\n if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {\n if (isVerticallyScrollable) {\n pre.scrollTop += e.key === 'ArrowDown' ? scrollAmount : -scrollAmount;\n e.preventDefault();\n }\n } else if (e.key === 'ArrowRight' || e.key === 'ArrowLeft') {\n if (isHorizontallyScrollable) {\n pre.scrollLeft += e.key === 'ArrowRight' ? scrollAmount : -scrollAmount;\n e.preventDefault();\n }\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-block-code-view': BlockCodeView;\n }\n}\n"],"names":["_defaultTextStrings","collapsed","expanded","prismWithAutoloader","Prism","plugins","_a","autoloader","languages_path","LANGUAGE_SPECIFIC_TOKENS","markup","html","css","javascript","typescript","python","java","BlockCodeView","customElement","LitElement","_classThis","_classSuper","darkTheme","__classPrivateFieldGet","this","_BlockCodeView_darkTheme_accessor_storage","value","__classPrivateFieldSet","language","_BlockCodeView_language_accessor_storage","lineNumbers","_BlockCodeView_lineNumbers_accessor_storage","startLineNumber","_BlockCodeView_startLineNumber_accessor_storage","maxHeight","_BlockCodeView_maxHeight_accessor_storage","codeViewLabel","_BlockCodeView_codeViewLabel_accessor_storage","copyOptionVisible","_BlockCodeView_copyOptionVisible_accessor_storage","codeViewExpandable","_BlockCodeView_codeViewExpandable_accessor_storage","copyButtonText","_BlockCodeView_copyButtonText_accessor_storage","copyButtonDescriptionAttr","_BlockCodeView_copyButtonDescriptionAttr_accessor_storage","codeSnippet","_BlockCodeView_codeSnippet_accessor_storage","textStrings","_BlockCodeView_textStrings_accessor_storage","_textStrings","_BlockCodeView__textStrings_accessor_storage","_isSingleLine","_BlockCodeView__isSingleLine_accessor_storage","hasOverflow","_BlockCodeView_hasOverflow_accessor_storage","codeExpanded","_BlockCodeView_codeExpanded_accessor_storage","_copyState","_BlockCodeView__copyState_accessor_storage","_effectiveLanguage","_BlockCodeView__effectiveLanguage_accessor_storage","_codeFitsContainerOnLoad","_BlockCodeView__codeFitsContainerOnLoad_accessor_storage","_expandedHeight","_BlockCodeView__expandedHeight_accessor_storage","updated","changedProperties","has","requestUpdate","codeChanged","setTimeout","highlightCode","checkOverflow","text","super","render","containerStyle","getContainerStyle","getContainerClasses","handleKeypress","ifDefined","Math","max","undefined","renderCopyButton","renderExpandButton","classMap","length","copied","copyCode","unsafeSVG","checkmarkIcon","copyIcon","expandCodeView","chevronDown","willUpdate","changedProps","deepmerge","processedCode","removeLeadingWhitespace","trim","split","detectLanguage","preEl","shadowRoot","querySelector","codeEl","existingLineNumbers","remove","className","textContent","classList","add","setAttribute","String","removeAttribute","highlightElement","hooks","run","element","resize","addLineNumbers","e","console","warn","linesCount","parseInt","getAttribute","lineNumbersWrapper","document","createElement","spans","Array","fill","join","innerHTML","appendChild","style","counterReset","code","languages","bestMatch","relevance","lang","tokens","tokenize","calculateRelevance","determineMarkupLanguage","reduce","token","getTokenRelevance","alias","isArray","isLanguageSpecificToken","content","acc","t","some","toString","includes","test","requestAnimationFrame","container","pre","naturalHeight","scrollHeight","calcHeight","clientHeight","lines","minIndent","min","line","match","indent","Infinity","map","slice","formatExampleCode","originalText","navigator","clipboard","writeText","then","dispatchEvent","CustomEvent","detail","origEvent","fullSnippet","catch","err","error","currentTarget","isVerticallyScrollable","isHorizontallyScrollable","scrollWidth","clientWidth","key","scrollTop","preventDefault","scrollLeft","set","__runInitializers","_darkTheme_initializers","_darkTheme_extraInitializers","_language_initializers","_language_extraInitializers","_lineNumbers_initializers","_lineNumbers_extraInitializers","_startLineNumber_initializers","_startLineNumber_extraInitializers","_maxHeight_initializers","_maxHeight_extraInitializers","_codeViewLabel_initializers","_codeViewLabel_extraInitializers","_copyOptionVisible_initializers","_copyOptionVisible_extraInitializers","_codeViewExpandable_initializers","_codeViewExpandable_extraInitializers","_copyButtonText_initializers","_copyButtonText_extraInitializers","_copyButtonDescriptionAttr_initializers","_copyButtonDescriptionAttr_extraInitializers","_codeSnippet_initializers","_codeSnippet_extraInitializers","_textStrings_initializers","_textStrings_extraInitializers","__textStrings_initializers","__textStrings_extraInitializers","__isSingleLine_initializers","__isSingleLine_extraInitializers","_hasOverflow_initializers","_hasOverflow_extraInitializers","_codeExpanded_initializers","_codeExpanded_extraInitializers","__copyState_initializers","__copyState_extraInitializers","__effectiveLanguage_initializers","__effectiveLanguage_extraInitializers","__codeFitsContainerOnLoad_initializers","__codeFitsContainerOnLoad_extraInitializers","__expandedHeight_initializers","_darkTheme_decorators","property","type","_language_decorators","_lineNumbers_decorators","Boolean","_startLineNumber_decorators","Number","_maxHeight_decorators","_codeViewLabel_decorators","_copyOptionVisible_decorators","_codeViewExpandable_decorators","_copyButtonText_decorators","_copyButtonDescriptionAttr_decorators","_codeSnippet_decorators","_textStrings_decorators","Object","__textStrings_decorators","state","__isSingleLine_decorators","_hasOverflow_decorators","_codeExpanded_decorators","__copyState_decorators","__effectiveLanguage_decorators","__codeFitsContainerOnLoad_decorators","__expandedHeight_decorators","__esDecorate","kind","name","static","private","access","obj","get","metadata","_metadata","__expandedHeight_extraInitializers","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","BlockCodeViewStyles","ShidokaSyntaxTheme"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{BlockCodeView}from"./blockCodeView.js";import"tslib";import"lit-html/directives/unsafe-svg.js";import"lit";import"lit/decorators.js";import"lit/directives/class-map.js";import"lit/directives/if-defined.js";import"deepmerge-ts";import"prismjs";import"prismjs/plugins/autoloader/prism-autoloader";import"prismjs/plugins/line-numbers/prism-line-numbers";import"
|
|
1
|
+
export{BlockCodeView}from"./blockCodeView.js";import"tslib";import"lit-html/directives/unsafe-svg.js";import"lit";import"lit/decorators.js";import"lit/directives/class-map.js";import"lit/directives/if-defined.js";import"deepmerge-ts";import"prismjs";import"prismjs/plugins/autoloader/prism-autoloader";import"prismjs/plugins/line-numbers/prism-line-numbers";import"../../../vendor/@kyndryl-design-system/shidoka-icons-oqOblwTK.js";import"../button/button.js";import"lit-html/directives/class-map.js";import"../../../common/helpers/helpers.js";import"../button/defs.js";
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daterangepicker.d.ts","sourceRoot":"","sources":["../../../../src/components/reusable/daterangepicker/daterangepicker.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"daterangepicker.d.ts","sourceRoot":"","sources":["../../../../src/components/reusable/daterangepicker/daterangepicker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{__setFunctionName as t,__esDecorate as e,__runInitializers as i,__classPrivateFieldGet as a,__classPrivateFieldSet as s}from"tslib";import{css as n,LitElement as r,unsafeCSS as l,html as o}from"lit";import{customElement as d,property as c,state as h,query as u}from"lit/decorators.js";import{classMap as p}from"lit/directives/class-map.js";import{FormMixin as m}from"../../../common/mixins/form-input.js";import{unsafeSVG as g}from"lit-html/directives/unsafe-svg.js";import{DateRangeEditableMode as f,getPlaceholder as v,injectFlatpickrStyles as k,updateEnableTime as b,clearFlatpickrInput as y,emitValue as
|
|
1
|
+
import{__setFunctionName as t,__esDecorate as e,__runInitializers as i,__classPrivateFieldGet as a,__classPrivateFieldSet as s}from"tslib";import{css as n,LitElement as r,unsafeCSS as l,html as o}from"lit";import{customElement as d,property as c,state as h,query as u}from"lit/decorators.js";import{classMap as p}from"lit/directives/class-map.js";import{FormMixin as m}from"../../../common/mixins/form-input.js";import{unsafeSVG as g}from"lit-html/directives/unsafe-svg.js";import{DateRangeEditableMode as f,getPlaceholder as v,injectFlatpickrStyles as k,updateEnableTime as b,clearFlatpickrInput as y,emitValue as D,initializeSingleAnchorFlatpickr as x,getModalContainer as w,setCalendarAttributes as _,hideEmptyYear as I,getFlatpickrOptions as E,applyDateRangeEditingRestrictions as S,preventFlatpickrOpen as F,handleInputClick as z,handleInputFocus as M,loadLocale as T}from"../../../common/helpers/flatpickr.js";import"../button/button.js";import{c as A}from"../../../shidoka-flatpickr-theme-DpNQHCIC.js";import{c as $,q as O,r as R}from"../../../vendor/@kyndryl-design-system/shidoka-icons-oqOblwTK.js";import"flatpickr";import"flatpickr/dist/esm/plugins/rangePlugin";import"flatpickr/dist/esm/l10n/default.js";import"../../../common/flatpickrLangs.js";import"../../../common/helpers/flatpickrOverlayPosition.js";import"lit/directives/if-defined.js";import"lit-html/directives/class-map.js";import"../../../common/helpers/helpers.js";import"../button/defs.js";var C=n`*,
|
|
2
2
|
*::before,
|
|
3
3
|
*::after {
|
|
4
4
|
box-sizing: border-box;
|
|
@@ -602,7 +602,7 @@ input {
|
|
|
602
602
|
}
|
|
603
603
|
.date-range-picker__disabled ::slotted(*) {
|
|
604
604
|
pointer-events: none;
|
|
605
|
-
}`;const P={requiredText:"Required",clearAll:"Clear",pleaseSelectDate:"Please select a date",pleaseSelectValidDate:"Please select a valid date",pleaseSelectBothDates:"Please select a start and end date.",dateRange:"Date range",noDateSelected:"No dates selected",startDateSelected:"Start date selected: {0}. Please select end date.",invalidDateRange:"Invalid date range: End date cannot be earlier than start date",dateRangeSelected:"Selected date range: {0} to {1}",lockedStartDate:"Start date is locked",lockedEndDate:"End date is locked",dateLocked:"Date is locked",dateNotAvailable:"Date is not available",dateInSelectedRange:"Date is in selected range"};let L=(()=>{var n,L,N,W,V,q,j,Y,H,B,U,K,G,J,Q,X,Z,tt,et,it,at,st,nt,rt,lt,ot,dt,ct,ht,ut,pt,mt,gt;let ft,vt,kt,bt,yt,xt,wt,
|
|
605
|
+
}`;const P={requiredText:"Required",clearAll:"Clear",pleaseSelectDate:"Please select a date",pleaseSelectValidDate:"Please select a valid date",pleaseSelectBothDates:"Please select a start and end date.",dateRange:"Date range",noDateSelected:"No dates selected",startDateSelected:"Start date selected: {0}. Please select end date.",invalidDateRange:"Invalid date range: End date cannot be earlier than start date",dateRangeSelected:"Selected date range: {0} to {1}",lockedStartDate:"Start date is locked",lockedEndDate:"End date is locked",dateLocked:"Date is locked",dateNotAvailable:"Date is not available",dateInSelectedRange:"Date is in selected range"};let L=(()=>{var n,L,N,W,V,q,j,Y,H,B,U,K,G,J,Q,X,Z,tt,et,it,at,st,nt,rt,lt,ot,dt,ct,ht,ut,pt,mt,gt;let ft,vt,kt,bt,yt,Dt,xt,wt,_t,It,Et,St,Ft,zt,Mt,Tt,At,$t,Ot,Rt,Ct,Pt,Lt,Nt,Wt,Vt,qt,jt,Yt,Ht,Bt,Ut,Kt,Gt,Jt,Qt=[d("kyn-date-range-picker")],Xt=[],Zt=m(r),te=[],ee=[],ie=[],ae=[],se=[],ne=[],re=[],le=[],oe=[],de=[],ce=[],he=[],ue=[],pe=[],me=[],ge=[],fe=[],ve=[],ke=[],be=[],ye=[],De=[],xe=[],we=[],_e=[],Ie=[],Ee=[],Se=[],Fe=[],ze=[],Me=[],Te=[],Ae=[],$e=[],Oe=[],Re=[],Ce=[],Pe=[],Le=[],Ne=[],We=[],Ve=[],qe=[],je=[],Ye=[],He=[],Be=[],Ue=[],Ke=[],Ge=[],Je=[],Qe=[],Xe=[],Ze=[],ti=[],ei=[],ii=[],ai=[],si=[],ni=[],ri=[],li=[],oi=[],di=[],ci=[],hi=[];return vt=class extends Zt{constructor(){super(...arguments),n.set(this,i(this,te,"")),L.set(this,(i(this,ee),i(this,ie,"en"))),N.set(this,(i(this,ae),i(this,se,"Y-m-d"))),W.set(this,(i(this,ne),i(this,re,null))),V.set(this,(i(this,le),i(this,oe,f.BOTH))),q.set(this,(i(this,de),i(this,ce,""))),this.value=(i(this,he),[null,null]),j.set(this,i(this,ue,"")),Y.set(this,(i(this,pe),i(this,me,[]))),H.set(this,(i(this,ge),i(this,fe,[]))),B.set(this,(i(this,ve),i(this,ke,[]))),U.set(this,(i(this,be),i(this,ye,""))),K.set(this,(i(this,De),i(this,xe,!1))),G.set(this,(i(this,we),i(this,_e,"md"))),J.set(this,(i(this,Ie),i(this,Ee,!1))),Q.set(this,(i(this,Se),i(this,Fe,!1))),X.set(this,(i(this,ze),i(this,Me,null))),Z.set(this,(i(this,Te),i(this,Ae,""))),tt.set(this,(i(this,$e),i(this,Oe,!1))),et.set(this,(i(this,Re),i(this,Ce,""))),it.set(this,(i(this,Pe),i(this,Le,""))),at.set(this,(i(this,Ne),i(this,We,""))),st.set(this,(i(this,Ve),i(this,qe,""))),nt.set(this,(i(this,je),i(this,Ye,""))),rt.set(this,(i(this,He),i(this,Be,!1))),lt.set(this,(i(this,Ue),i(this,Ke,!1))),ot.set(this,(i(this,Ge),i(this,Je,void 0))),dt.set(this,(i(this,Qe),i(this,Xe,null))),ct.set(this,(i(this,Ze),i(this,ti,!1))),ht.set(this,(i(this,ei),i(this,ii,P))),ut.set(this,(i(this,ai),i(this,si,{...P}))),pt.set(this,(i(this,ni),i(this,ri,!1))),mt.set(this,(i(this,li),i(this,oi,!1))),gt.set(this,(i(this,di),i(this,ci,!1))),this._initialized=(i(this,hi),!1),this._isDestroyed=!1,this._submitListener=null,this.debouncedUpdate=this.debounce((async()=>{if(this.flatpickrInstance&&!this._isDestroyed)try{await this.initializeFlatpickr()}catch(t){"development"===process.env.NODE_ENV&&t instanceof Error&&!t.message.includes("calendarContainer")&&!t.message.includes("selectedDates")&&console.warn("DateRangePicker update info:",t.message)}}),100),this.handleResize=this.debounce((async()=>{if(this.flatpickrInstance&&!this._isDestroyed)try{await this.initializeFlatpickr()}catch(t){"development"===process.env.NODE_ENV&&t instanceof Error&&!t.message.includes("calendarContainer")&&!t.message.includes("selectedDates")&&console.debug("DateRangePicker resize info:",t.message)}}),250)}get label(){return a(this,n,"f")}set label(t){s(this,n,t,"f")}get locale(){return a(this,L,"f")}set locale(t){s(this,L,t,"f")}get dateFormat(){return a(this,N,"f")}set dateFormat(t){s(this,N,t,"f")}get defaultDate(){return a(this,W,"f")}set defaultDate(t){s(this,W,t,"f")}get rangeEditMode(){return a(this,V,"f")}set rangeEditMode(t){s(this,V,t,"f")}get defaultErrorMessage(){return a(this,q,"f")}set defaultErrorMessage(t){s(this,q,t,"f")}get warnText(){return a(this,j,"f")}set warnText(t){s(this,j,t,"f")}get disable(){return a(this,Y,"f")}set disable(t){s(this,Y,t,"f")}get _processedDisableDates(){return a(this,H,"f")}set _processedDisableDates(t){s(this,H,t,"f")}get enable(){return a(this,B,"f")}set enable(t){s(this,B,t,"f")}get caption(){return a(this,U,"f")}set caption(t){s(this,U,t,"f")}get required(){return a(this,K,"f")}set required(t){s(this,K,t,"f")}get size(){return a(this,G,"f")}set size(t){s(this,G,t,"f")}get dateRangePickerDisabled(){return a(this,J,"f")}set dateRangePickerDisabled(t){s(this,J,t,"f")}get readonly(){return a(this,Q,"f")}set readonly(t){s(this,Q,t,"f")}get twentyFourHourFormat(){return a(this,X,"f")}set twentyFourHourFormat(t){s(this,X,t,"f")}get minDate(){return a(this,Z,"f")}set minDate(t){s(this,Z,t,"f")}get allowManualInput(){return a(this,tt,"f")}set allowManualInput(t){s(this,tt,t,"f")}get maxDate(){return a(this,et,"f")}set maxDate(t){s(this,et,t,"f")}get errorAriaLabel(){return a(this,it,"f")}set errorAriaLabel(t){s(this,it,t,"f")}get errorTitle(){return a(this,at,"f")}set errorTitle(t){s(this,at,t,"f")}get warningAriaLabel(){return a(this,st,"f")}set warningAriaLabel(t){s(this,st,t,"f")}get warningTitle(){return a(this,nt,"f")}set warningTitle(t){s(this,nt,t,"f")}get staticPosition(){return a(this,rt,"f")}set staticPosition(t){s(this,rt,t,"f")}get _enableTime(){return a(this,lt,"f")}set _enableTime(t){s(this,lt,t,"f")}get flatpickrInstance(){return a(this,ot,"f")}set flatpickrInstance(t){s(this,ot,t,"f")}get _inputEl(){return a(this,dt,"f")}set _inputEl(t){s(this,dt,t,"f")}get _hasInteracted(){return a(this,ct,"f")}set _hasInteracted(t){s(this,ct,t,"f")}get textStrings(){return a(this,ht,"f")}set textStrings(t){s(this,ht,t,"f")}get _textStrings(){return a(this,ut,"f")}set _textStrings(t){s(this,ut,t,"f")}get _isClearing(){return a(this,pt,"f")}set _isClearing(t){s(this,pt,t,"f")}get _shouldFlatpickrOpen(){return a(this,mt,"f")}set _shouldFlatpickrOpen(t){s(this,mt,t,"f")}get _hasInitialDefaultDate(){return a(this,gt,"f")}set _hasInitialDefaultDate(t){s(this,gt,t,"f")}debounce(t,e){let i=null;return(...a)=>{null!==i&&window.clearTimeout(i),i=window.setTimeout((()=>{t(...a),i=null}),e)}}generateRandomId(t){return`${t}-${Math.random().toString(36).slice(2,11)}`}connectedCallback(){super.connectedCallback(),this.addEventListener("change",this._onChange),this.addEventListener("reset",this._handleFormReset),window.addEventListener("resize",this.handleResize),this._internals.form&&(this._submitListener=t=>{this._validate(!0,!0),this._internals.checkValidity()||t.preventDefault()},this._internals.form.addEventListener("submit",this._submitListener)),(!this.value||Array.isArray(this.value)&&this.value.every((t=>null===t)))&&this.defaultDate&&(this._hasInitialDefaultDate=!0,Array.isArray(this.defaultDate)&&1===this.defaultDate.length&&(this._hasInteracted=!0))}disconnectedCallback(){var t;this._isDestroyed=!0,super.disconnectedCallback(),this.removeEventListener("change",this._onChange),this.removeEventListener("reset",this._handleFormReset),window.removeEventListener("resize",this.handleResize),this._internals.form&&this._submitListener&&(this._internals.form.removeEventListener("submit",this._submitListener),this._submitListener=null),null===(t=this.flatpickrInstance)||void 0===t||t.destroy(),this.flatpickrInstance=void 0}hasValue(){var t;return!!(null===(t=this._inputEl)||void 0===t?void 0:t.value)||(this.value&&Array.isArray(this.value)&&2===this.value.length?null!==this.value[0]||null!==this.value[1]:!!this.defaultDate&&(Array.isArray(this.defaultDate)?this.defaultDate.length>0&&!this.defaultDate.every((t=>!t||""===t)):!!this.defaultDate))}updateFormValue(){if(!this._internals||!this._inputEl)return;const[t,e]=this.value;if(t instanceof Date&&e instanceof Date){const i=[t.toISOString(),e.toISOString()].join(",");this._internals.setFormValue(i),this.name&&this._inputEl.setAttribute("value",i)}else this._internals.setFormValue(""),this.name&&this._inputEl.removeAttribute("value")}render(){var t;const e=`${this.name}-error-message`,i=`${this.name}-warning-message`,a=this.name?this.generateRandomId(this.name):this.generateRandomId("date-range-picker"),s=null!==(t=this.name)&&void 0!==t?t:"",n=v(this.dateFormat,!0),r=this.hasValue()&&!this.readonly&&this.rangeEditMode!==f.START&&this.rangeEditMode!==f.END&&this.rangeEditMode!==f.NONE;return o`
|
|
606
606
|
<div class=${p(this.getDateRangePickerClasses())}>
|
|
607
607
|
<div
|
|
608
608
|
class="label-text"
|
|
@@ -650,7 +650,7 @@ input {
|
|
|
650
650
|
@click=${this._handleClear}
|
|
651
651
|
>
|
|
652
652
|
<span style="display:flex;" slot="icon">
|
|
653
|
-
${g(
|
|
653
|
+
${g($)}
|
|
654
654
|
</span>
|
|
655
655
|
</kyn-button>`:o`<span
|
|
656
656
|
class="input-icon ${this.dateRangePickerDisabled?"is-disabled":""}"
|
|
@@ -694,7 +694,7 @@ input {
|
|
|
694
694
|
role="img"
|
|
695
695
|
aria-label=${this.errorAriaLabel||"Error message icon"}
|
|
696
696
|
>
|
|
697
|
-
${g(
|
|
697
|
+
${g(R)}
|
|
698
698
|
</span>
|
|
699
699
|
${this.invalidText||this._internalValidationMsg||this.defaultErrorMessage}
|
|
700
700
|
</div>
|
|
@@ -712,5 +712,5 @@ input {
|
|
|
712
712
|
>
|
|
713
713
|
${this.warnText}
|
|
714
714
|
</div>
|
|
715
|
-
`:null}getDateRangePickerClasses(){return{"date-range-picker":!0,"date-range-picker__enable-time":this._enableTime,"date-range-picker__disabled":this.dateRangePickerDisabled}}parseDateString(t){if(!t||!t.trim())return null;t=t.trim();const e=this.dateFormat||"Y-m-d";if(t.includes("T")){const e=new Date(t);return isNaN(e.getTime())?null:e}if(t.includes(" ")){const i=t.split(/\s+/),a=i[0],s=i[1]||"";let n=i[2]?i[2].toUpperCase():void 0;const r=a.split("-").map(Number);let l,o,d;switch(e){case"Y-m-d":default:[l,o,d]=r;break;case"m-d-Y":[o,d,l]=r;break;case"d-m-Y":[d,o,l]=r}if(!l||!o||!d)return null;let c=0,h=0,u=0;if(s){const t=s.split(":");if(c=parseInt(t[0],10),t.length>1)if(t[1].includes(" ")){const[e,i]=t[1].split(" ");h=parseInt(e,10),n=i?i.toUpperCase():n}else h=parseInt(t[1],10);t.length>2&&(u=parseInt(t[2],10)),n&&("PM"===n&&c<12?c+=12:"AM"===n&&12===c&&(c=0))}const p=new Date(l,o-1,d,c,h,u);return isNaN(p.getTime())?null:p}const i={"Y-m-d":/^\d{4}-\d{2}-\d{2}$/,"m-d-Y":/^\d{2}-\d{2}-\d{4}$/,"d-m-Y":/^\d{2}-\d{2}-\d{4}$/,"Y-m-d h:i K":/^\d{4}-\d{2}-\d{2}( \d{1,2}:\d{2} [AP]M)?$/}[e];if(!i||!i.test(t))return null;const a=t.split(" ")[0].split("-").map(Number);let s,n,r;switch(e){case"Y-m-d":default:[s,n,r]=a;break;case"m-d-Y":[n,r,s]=a;break;case"d-m-Y":[r,n,s]=a}if(!s||!n||!r)return null;const l=new Date(s,n-1,r);return isNaN(l.getTime())?null:l}async firstUpdated(t){if(super.firstUpdated(t),!this._initialized){k($.toString()),this._initialized=!0,this._enableTime=b(this.dateFormat),await this.updateComplete,this.setupAnchor();if((!this.value||2===this.value.length&&null===this.value[0]&&null===this.value[1])&&this._hasInitialDefaultDate&&this.defaultDate){const t=this.processDefaultDates(this.defaultDate);t&&t.length>0&&(1===t.length?(this.value=[t[0],null],this._hasInteracted=!0):t.length>=2&&(this.value=[t[0],t[1]]),null===this.value[0]&&null===this.value[1]||this.updateFormValue(),this._validate(!0,!1))}setTimeout((()=>{(Array.isArray(this.defaultDate)&&1===this.defaultDate.length||2===this.value.length&&(null!==this.value[0]&&null===this.value[1]||null===this.value[0]&&null!==this.value[1]))&&(this._hasInteracted=!0,this._validate(!0,!1))}),0)}}updated(t){var e,i,a;if(super.updated(t),t.has("textStrings")&&(this._textStrings={...P,...this.textStrings},this.flatpickrInstance&&this.rangeEditMode!==f.BOTH&&this.updateFlatpickrOptions()),t.has("dateRangePickerDisabled")&&this.dateRangePickerDisabled||t.has("readonly")&&this.readonly){if(this.dateRangePickerDisabled||this.readonly)return void(null===(e=this.flatpickrInstance)||void 0===e||e.close());this.value[0]&&this.value[1]&&this.setInitialDates()}if(t.has("rangeEditMode")&&this.flatpickrInstance){if(Array.isArray(this.defaultDate)&&2===this.defaultDate.length)if(this.rangeEditMode===f.START&&!this.defaultDate[0]&&this.defaultDate[1]){const t=this.processDefaultDates([this.defaultDate[1]]);1===t.length&&(this.value=[null,t[0]])}else if(this.rangeEditMode===f.END&&this.defaultDate[0]&&!this.defaultDate[1]){const t=this.processDefaultDates([this.defaultDate[0]]);1===t.length&&(this.value=[t[0],null])}this.flatpickrInstance.destroy(),setTimeout((()=>{this.initializeFlatpickr().then((()=>{this._inputEl&&this.flatpickrInstance&&(this._inputEl.value=this.flatpickrInstance.input.value,this.flatpickrInstance.redraw(),this.updateFormValue())}))}),0)}if(t.has("value")&&!this.dateRangePickerDisabled&&this.flatpickrInstance&&!this._isClearing){const t=this.value;if(t.every((t=>null===t)))this._isClearing=!0,this.flatpickrInstance.clear(),this._isClearing=!1,this._inputEl&&(this._inputEl.value="",this.updateFormValue());else{const e=this.flatpickrInstance.selectedDates;2===e.length&&e[0]&&e[1]&&e[0].getTime()===(null===(i=t[0])||void 0===i?void 0:i.getTime())&&e[1].getTime()===(null===(a=t[1])||void 0===a?void 0:a.getTime())||this.setInitialDates(),(null!==t[0]&&null===t[1]||null===t[0]&&null!==t[1])&&(this._hasInteracted=!0,this._validate(!0,!1))}}if(t.has("defaultDate")){if(this.defaultDate&&this.value.every((t=>null===t))){const t=this.processDefaultDates(this.defaultDate);if(this.value=2===t.length?[t[0],t[1]]:1===t.length?[t[0],null]:[null,null],Array.isArray(this.defaultDate)&&2===this.defaultDate.length)if(this.rangeEditMode===f.START&&!this.defaultDate[0]&&this.defaultDate[1]){const t=this.processDefaultDates([this.defaultDate[1]]);1===t.length&&(this.value=[null,t[0]])}else if(this.rangeEditMode===f.END&&this.defaultDate[0]&&!this.defaultDate[1]){const t=this.processDefaultDates([this.defaultDate[0]]);1===t.length&&(this.value=[t[0],null])}this.updateFormValue(),this.requestUpdate()}this.flatpickrInstance&&(this.flatpickrInstance.destroy(),this.initializeFlatpickr().then((()=>{this._inputEl&&this.flatpickrInstance&&(this._inputEl.value=this.flatpickrInstance.input.value,this.flatpickrInstance.redraw(),this.updateFormValue())})))}t.has("disable")&&(Array.isArray(this.disable)?this._processedDisableDates=this.disable.map((t=>{if(t instanceof Date)return t;if("number"==typeof t)return new Date(t);if("string"==typeof t){const[e,i,a]=t.split("-").map(Number);if(!isNaN(e)&&!isNaN(i)&&!isNaN(a))return new Date(e,i-1,a)}return t})):this._processedDisableDates=[],this.flatpickrInstance&&this.updateFlatpickrOptions()),(t.has("dateFormat")||t.has("minDate")||t.has("maxDate")||t.has("locale")||t.has("twentyFourHourFormat"))&&this.flatpickrInstance&&!this._isClearing&&(this._enableTime=b(this.dateFormat),this.updateFlatpickrOptions()),t.has("allowManualInput")&&this.syncAllowInput()}syncAllowInput(){this.flatpickrInstance&&(this.flatpickrInstance.set("allowInput",this.allowManualInput),!this.readonly&&this._inputEl&&(this._inputEl.readOnly=!this.allowManualInput))}async setupAnchor(){if(this._inputEl)try{await this.initializeFlatpickr()}catch(t){console.error("Error setting up flatpickr:",t)}}normalizeToDate(t){if(!t)return null;if(t instanceof Date)return isNaN(t.getTime())?null:t;if("number"==typeof t){const e=new Date(t);return isNaN(e.getTime())?null:e}return"string"==typeof t?this.parseDateString(t):null}processDefaultDates(t){if(!t)return[];const e=(Array.isArray(t)?t:[t]).map((t=>t instanceof Date?t:"string"==typeof t?this.parseDateString(t):null)).filter((t=>t instanceof Date&&!isNaN(t.getTime())));if(2===e.length&&e[1]<e[0])return console.error("Invalid date range: End date cannot be earlier than start date"),this.invalidText=this._textStrings.invalidDateRange,[e[0]];const i=this.normalizeToDate(this.minDate),a=this.normalizeToDate(this.maxDate),s=e.filter((t=>(!i||t>=i)&&(!a||t<=a)));return s.length!==e.length&&(console.error("Invalid date(s) provided in defaultDate",s),this.invalidText=this._textStrings.pleaseSelectValidDate,this.defaultDate=null),s}async _clearInput(t={reinitFlatpickr:!0}){var e,i;if(this.rangeEditMode===f.NONE)return;this.value=[null,null],this.defaultDate=null,await y(this.flatpickrInstance,null!==(e=this._inputEl)&&void 0!==e?e:void 0,(()=>{this.updateFormValue()})),x(this,"on-change",{dates:this.value,dateString:null===(i=this._inputEl)||void 0===i?void 0:i.value,source:"clear"}),this._validate(!0,!1),await this.updateComplete,t.reinitFlatpickr&&(await this.initializeFlatpickr(),this.requestUpdate())}async _handleClear(t){t.preventDefault(),t.stopPropagation(),this._isClearing=!0;try{await this._clearInput()}finally{this._isClearing=!1}}async handleClose(){this._hasInteracted=!0,this._validate(!0,!1),await this.updateComplete}async initializeFlatpickr(){var t;if(!this._isDestroyed)if(this._inputEl&&this._inputEl.isConnected){this.dateFormat||(console.warn("Date format not set, using default Y-m-d"),this.dateFormat="Y-m-d");try{if(null===(t=this.flatpickrInstance)||void 0===t||t.destroy(),this.flatpickrInstance=await w({inputEl:this._inputEl,getFlatpickrOptions:()=>this.getComponentFlatpickrOptions(),setCalendarAttributes:t=>{try{if(!(null==t?void 0:t.calendarContainer))throw new Error("Calendar container not available");const e=D(this);_(t,e!==document.body),t.calendarContainer.setAttribute("aria-label","Date range calendar")}catch(t){console.warn("Error setting calendar attributes:",t)}},setInitialDates:()=>this.setInitialDates()}),!this.flatpickrInstance)throw new Error("Failed to initialize Flatpickr instance");I(),this._validate(!1,!1)}catch(t){console.error("Error initializing Flatpickr:",t),t instanceof Error&&console.error("Error details:",t.message)}}else console.warn("Cannot initialize Flatpickr: input element not available or not connected to DOM")}async updateFlatpickrOptions(){this.flatpickrInstance?await this.debouncedUpdate():console.warn("Cannot update options: Flatpickr instance not available")}async getComponentFlatpickrOptions(){var t,e;if(this.dateFormat||(this.dateFormat="Y-m-d"),!this._inputEl)return{};const i=D(this),a=await E({locale:this.locale||"en",dateFormat:this.dateFormat,defaultDate:null!==(t=this.defaultDate)&&void 0!==t?t:void 0,enableTime:this._enableTime,twentyFourHourFormat:null!==(e=this.twentyFourHourFormat)&&void 0!==e?e:void 0,inputEl:this._inputEl,minDate:this.minDate,maxDate:this.maxDate,enable:this.enable,disable:this._processedDisableDates,mode:"range",closeOnSelect:!1,allowInput:this.allowManualInput,loadLocale:T,onOpen:this.handleOpen.bind(this),onClose:this.handleClose.bind(this),onChange:this.handleDateChange.bind(this),appendTo:i,noCalendar:!1,static:this.staticPosition}),s=a.onOpen;a.onOpen=(t,e,i)=>{"function"==typeof s?s(t,e,i):Array.isArray(s)&&s.forEach((a=>a(t,e,i))),setTimeout((()=>{const t=i.calendarContainer.querySelector(".flatpickr-day:not(.flatpickr-disabled)");t&&t.focus()}),0)};const n=a.onReady;return a.onReady=(t,e,i)=>{"function"==typeof n?n(t,e,i):Array.isArray(n)&&n.forEach((a=>a(t,e,i)));i.calendarContainer.addEventListener("keydown",(t=>{if("Enter"!==t.key)return;const e=t.target;if(!e.classList.contains("flatpickr-day")||e.classList.contains("flatpickr-disabled"))return;t.preventDefault();const a=i.selectedDates;0===a.length?i.setDate([e.dateObj],!0):1===a.length&&(i.setDate([a[0],e.dateObj],!0),i.close())}))},this.rangeEditMode!==f.BOTH?F(a,this.rangeEditMode,this.value,{lockedStartDate:this._textStrings.lockedStartDate,lockedEndDate:this._textStrings.lockedEndDate,dateLocked:this._textStrings.dateLocked,dateNotAvailable:this._textStrings.dateNotAvailable,dateInSelectedRange:this._textStrings.dateInSelectedRange}):a}setInitialDates(){if(this.flatpickrInstance)try{this.dateFormat||(this.dateFormat="Y-m-d");if(!(Array.isArray(this.value)&&2===this.value.length&&(null!==this.value[0]||null!==this.value[1]))&&this.defaultDate){const t=this.processDefaultDates(this.defaultDate);return void(2===t.length?(this.flatpickrInstance.setDate(t,!0),this.flatpickrInstance.redraw(),this.value=t,this._inputEl.value=this.flatpickrInstance.input.value,this.updateFormValue()):1===t.length&&(this.flatpickrInstance.setDate([t[0]],!0),this.flatpickrInstance.redraw(),this.value=[t[0],null],this._inputEl.value=this.flatpickrInstance.input.value,this.updateFormValue(),this._validate(!0,!1)))}if(Array.isArray(this.value)&&2===this.value.length){const t=this.value.map((t=>t instanceof Date?t:this.parseDateString(t))).filter((t=>null!==t));2===t.length&&(this.flatpickrInstance.setDate(t,!0),this.flatpickrInstance.redraw(),this._inputEl.value=this.flatpickrInstance.input.value,this.updateFormValue())}}catch(t){console.error("Error in setInitialDates:",t.message)}}handleOpen(){var t;this.readonly?null===(t=this.flatpickrInstance)||void 0===t||t.close():(this._shouldFlatpickrOpen=!0,this._isInvalid=!1,this.requestUpdate())}async handleDateChange(t,e){if(this._hasInteracted=!0,!this._isClearing){if(0===t.length)this.value=[null,null],this._inputEl&&(this._inputEl.value="",this.updateFormValue()),x(this,"on-change",{dates:this.value,source:"clear"});else if(1===t.length)this.value=[t[0],null],this._inputEl&&(this._inputEl.value=e,this.updateFormValue()),x(this,"on-change",{dates:[t[0].toISOString()],dateString:e,source:"date-selection"});else{this.value=[t[0],t[1]];const e=t.map((t=>t.toISOString())),i=this.flatpickrInstance.input.value;this._inputEl&&(this._inputEl.value=i,this.updateFormValue()),x(this,"on-change",{dates:e,dateString:i,source:"date-selection"})}this.updateSelectedDateRangeAria(t),this._validate(!0,!1)}}updateSelectedDateRangeAria(t){var e;if(!this._inputEl)return;const i=null===(e=this.shadowRoot)||void 0===e?void 0:e.getElementById(`${this._inputEl.id}-announcer`);if(!i)return;let a="";a=0===t.length?this._textStrings.noDateSelected:1===t.length?this._textStrings.startDateSelected.replace("{0}",t[0].toLocaleDateString(this.locale)):this._textStrings.dateRangeSelected.replace("{0}",t[0].toLocaleDateString(this.locale)).replace("{1}",t[1].toLocaleDateString(this.locale)),i.textContent=a}setShouldFlatpickrOpen(t){this._shouldFlatpickrOpen=t}closeFlatpickr(){var t;null===(t=this.flatpickrInstance)||void 0===t||t.close()}preventFlatpickrOpen(t){S(t,this.setShouldFlatpickrOpen.bind(this))}handleInputClickEvent(){try{this._shouldFlatpickrOpen=!0,z(this.setShouldFlatpickrOpen.bind(this)),!this.flatpickrInstance||this.flatpickrInstance.isOpen||this.readonly||this.dateRangePickerDisabled||setTimeout((()=>{this.flatpickrInstance&&!this.flatpickrInstance.isOpen&&this.flatpickrInstance.open()}),0)}catch(t){console.warn("Error handling input click event:",t)}}handleInputFocusEvent(){try{this._shouldFlatpickrOpen=!0,M(this._shouldFlatpickrOpen,this.closeFlatpickr.bind(this),this.setShouldFlatpickrOpen.bind(this)),!this.flatpickrInstance||this.flatpickrInstance.isOpen||this.readonly||this.dateRangePickerDisabled||setTimeout((()=>{this.flatpickrInstance&&!this.flatpickrInstance.isOpen&&this.flatpickrInstance.open()}),0)}catch(t){console.warn("Error handling input focus event:",t)}}_validate(t,e){var i;if(!(this._inputEl&&this._inputEl instanceof HTMLInputElement))return;if(this.dateRangePickerDisabled)return this._internals.setValidity({},"",this._inputEl),this._isInvalid=!1,void(this._internalValidationMsg="");t&&(this._hasInteracted=!0);const a=this._hasInteracted||e||!!this.invalidText,s=[this.value[0],this.value[1]].filter((t=>null!==t)).length;let n=this._inputEl.validity,r=this._inputEl.validationMessage;(null===(i=this.flatpickrInstance)||void 0===i?void 0:i.isOpen)?(n={...n,valueMissing:!1,customError:!1},r=""):1===s?(n={...n,customError:!0},r=this._textStrings.pleaseSelectBothDates):this.required&&0===s?(n={...n,valueMissing:!0},r=this.defaultErrorMessage||this._textStrings.pleaseSelectDate):(n={...n,valueMissing:!1,customError:!1},r=""),this.invalidText&&(n={...n,customError:!0},r=this.invalidText);const l=!n.valueMissing&&!n.customError;l||r||(r=this._textStrings.pleaseSelectValidDate),this._internals.setValidity(n,r,this._inputEl),this._isInvalid=!l&&a,this._internalValidationMsg=r,e&&this._internals.reportValidity(),this.requestUpdate()}_onChange(){this._validate(!0,!1)}_handleFormReset(){var t;this.value=[null,null],null===(t=this.flatpickrInstance)||void 0===t||t.clear(),this._hasInteracted=!1,this._validate(!1,!1)}getValue(){var t,e;if(this.flatpickrInstance){const i=this.flatpickrInstance.selectedDates;return[null!==(t=i[0])&&void 0!==t?t:null,null!==(e=i[1])&&void 0!==e?e:null]}return this.value}setValue(t){var e,i;const a=!t||Array.isArray(t)&&t.every((t=>null===t));this._isClearing=a;try{if(this.flatpickrInstance){if(a)this.flatpickrInstance.clear();else{const e=t.filter((t=>t instanceof Date));this.flatpickrInstance.setDate(e,!0)}const s=this.flatpickrInstance.selectedDates,n=null!==(e=s[0])&&void 0!==e?e:null,r=null!==(i=s[1])&&void 0!==i?i:null;this.value=[n,r],this._inputEl&&(this._inputEl.value=a?"":this.flatpickrInstance.input.value,this.updateFormValue())}else this.value=t;this.requestUpdate("value")}finally{this._isClearing=!1}}},n=new WeakMap,L=new WeakMap,N=new WeakMap,W=new WeakMap,V=new WeakMap,q=new WeakMap,j=new WeakMap,Y=new WeakMap,H=new WeakMap,B=new WeakMap,U=new WeakMap,K=new WeakMap,G=new WeakMap,J=new WeakMap,Q=new WeakMap,X=new WeakMap,Z=new WeakMap,tt=new WeakMap,et=new WeakMap,it=new WeakMap,at=new WeakMap,st=new WeakMap,nt=new WeakMap,rt=new WeakMap,lt=new WeakMap,ot=new WeakMap,dt=new WeakMap,ct=new WeakMap,ht=new WeakMap,ut=new WeakMap,pt=new WeakMap,mt=new WeakMap,gt=new WeakMap,t(vt,"DateRangePicker"),(()=>{var t;const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null!==(t=Zt[Symbol.metadata])&&void 0!==t?t:null):void 0;kt=[c({type:String})],bt=[c({type:String})],yt=[c({type:String})],xt=[c({type:Array})],wt=[c({type:String})],Dt=[c({type:String})],_t=[c({type:String})],It=[c({type:Array})],Et=[h()],Ft=[c({type:Array})],St=[c({type:String})],zt=[c({type:Boolean})],Mt=[c({type:String})],Tt=[c({type:Boolean})],$t=[c({type:Boolean})],At=[c({type:Boolean})],Ot=[c({type:String})],Ct=[c({type:Boolean})],Rt=[c({type:String})],Pt=[c({type:String})],Lt=[c({type:String})],Nt=[c({type:String})],Wt=[c({type:String})],Vt=[c({type:Boolean})],qt=[h()],jt=[h()],Yt=[u("input")],Ht=[h()],Bt=[c({type:Object})],Ut=[h()],Kt=[h()],Gt=[h()],Jt=[h()],e(vt,null,kt,{kind:"accessor",name:"label",static:!1,private:!1,access:{has:t=>"label"in t,get:t=>t.label,set:(t,e)=>{t.label=e}},metadata:i},te,ee),e(vt,null,bt,{kind:"accessor",name:"locale",static:!1,private:!1,access:{has:t=>"locale"in t,get:t=>t.locale,set:(t,e)=>{t.locale=e}},metadata:i},ie,ae),e(vt,null,yt,{kind:"accessor",name:"dateFormat",static:!1,private:!1,access:{has:t=>"dateFormat"in t,get:t=>t.dateFormat,set:(t,e)=>{t.dateFormat=e}},metadata:i},se,ne),e(vt,null,xt,{kind:"accessor",name:"defaultDate",static:!1,private:!1,access:{has:t=>"defaultDate"in t,get:t=>t.defaultDate,set:(t,e)=>{t.defaultDate=e}},metadata:i},re,le),e(vt,null,wt,{kind:"accessor",name:"rangeEditMode",static:!1,private:!1,access:{has:t=>"rangeEditMode"in t,get:t=>t.rangeEditMode,set:(t,e)=>{t.rangeEditMode=e}},metadata:i},oe,de),e(vt,null,Dt,{kind:"accessor",name:"defaultErrorMessage",static:!1,private:!1,access:{has:t=>"defaultErrorMessage"in t,get:t=>t.defaultErrorMessage,set:(t,e)=>{t.defaultErrorMessage=e}},metadata:i},ce,he),e(vt,null,_t,{kind:"accessor",name:"warnText",static:!1,private:!1,access:{has:t=>"warnText"in t,get:t=>t.warnText,set:(t,e)=>{t.warnText=e}},metadata:i},ue,pe),e(vt,null,It,{kind:"accessor",name:"disable",static:!1,private:!1,access:{has:t=>"disable"in t,get:t=>t.disable,set:(t,e)=>{t.disable=e}},metadata:i},me,ge),e(vt,null,Et,{kind:"accessor",name:"_processedDisableDates",static:!1,private:!1,access:{has:t=>"_processedDisableDates"in t,get:t=>t._processedDisableDates,set:(t,e)=>{t._processedDisableDates=e}},metadata:i},fe,ve),e(vt,null,Ft,{kind:"accessor",name:"enable",static:!1,private:!1,access:{has:t=>"enable"in t,get:t=>t.enable,set:(t,e)=>{t.enable=e}},metadata:i},ke,be),e(vt,null,St,{kind:"accessor",name:"caption",static:!1,private:!1,access:{has:t=>"caption"in t,get:t=>t.caption,set:(t,e)=>{t.caption=e}},metadata:i},ye,xe),e(vt,null,zt,{kind:"accessor",name:"required",static:!1,private:!1,access:{has:t=>"required"in t,get:t=>t.required,set:(t,e)=>{t.required=e}},metadata:i},we,De),e(vt,null,Mt,{kind:"accessor",name:"size",static:!1,private:!1,access:{has:t=>"size"in t,get:t=>t.size,set:(t,e)=>{t.size=e}},metadata:i},_e,Ie),e(vt,null,Tt,{kind:"accessor",name:"dateRangePickerDisabled",static:!1,private:!1,access:{has:t=>"dateRangePickerDisabled"in t,get:t=>t.dateRangePickerDisabled,set:(t,e)=>{t.dateRangePickerDisabled=e}},metadata:i},Ee,Fe),e(vt,null,$t,{kind:"accessor",name:"readonly",static:!1,private:!1,access:{has:t=>"readonly"in t,get:t=>t.readonly,set:(t,e)=>{t.readonly=e}},metadata:i},Se,ze),e(vt,null,At,{kind:"accessor",name:"twentyFourHourFormat",static:!1,private:!1,access:{has:t=>"twentyFourHourFormat"in t,get:t=>t.twentyFourHourFormat,set:(t,e)=>{t.twentyFourHourFormat=e}},metadata:i},Me,Te),e(vt,null,Ot,{kind:"accessor",name:"minDate",static:!1,private:!1,access:{has:t=>"minDate"in t,get:t=>t.minDate,set:(t,e)=>{t.minDate=e}},metadata:i},$e,Ae),e(vt,null,Ct,{kind:"accessor",name:"allowManualInput",static:!1,private:!1,access:{has:t=>"allowManualInput"in t,get:t=>t.allowManualInput,set:(t,e)=>{t.allowManualInput=e}},metadata:i},Oe,Ce),e(vt,null,Rt,{kind:"accessor",name:"maxDate",static:!1,private:!1,access:{has:t=>"maxDate"in t,get:t=>t.maxDate,set:(t,e)=>{t.maxDate=e}},metadata:i},Re,Pe),e(vt,null,Pt,{kind:"accessor",name:"errorAriaLabel",static:!1,private:!1,access:{has:t=>"errorAriaLabel"in t,get:t=>t.errorAriaLabel,set:(t,e)=>{t.errorAriaLabel=e}},metadata:i},Le,Ne),e(vt,null,Lt,{kind:"accessor",name:"errorTitle",static:!1,private:!1,access:{has:t=>"errorTitle"in t,get:t=>t.errorTitle,set:(t,e)=>{t.errorTitle=e}},metadata:i},We,Ve),e(vt,null,Nt,{kind:"accessor",name:"warningAriaLabel",static:!1,private:!1,access:{has:t=>"warningAriaLabel"in t,get:t=>t.warningAriaLabel,set:(t,e)=>{t.warningAriaLabel=e}},metadata:i},qe,je),e(vt,null,Wt,{kind:"accessor",name:"warningTitle",static:!1,private:!1,access:{has:t=>"warningTitle"in t,get:t=>t.warningTitle,set:(t,e)=>{t.warningTitle=e}},metadata:i},Ye,He),e(vt,null,Vt,{kind:"accessor",name:"staticPosition",static:!1,private:!1,access:{has:t=>"staticPosition"in t,get:t=>t.staticPosition,set:(t,e)=>{t.staticPosition=e}},metadata:i},Be,Ue),e(vt,null,qt,{kind:"accessor",name:"_enableTime",static:!1,private:!1,access:{has:t=>"_enableTime"in t,get:t=>t._enableTime,set:(t,e)=>{t._enableTime=e}},metadata:i},Ke,Ge),e(vt,null,jt,{kind:"accessor",name:"flatpickrInstance",static:!1,private:!1,access:{has:t=>"flatpickrInstance"in t,get:t=>t.flatpickrInstance,set:(t,e)=>{t.flatpickrInstance=e}},metadata:i},Je,Qe),e(vt,null,Yt,{kind:"accessor",name:"_inputEl",static:!1,private:!1,access:{has:t=>"_inputEl"in t,get:t=>t._inputEl,set:(t,e)=>{t._inputEl=e}},metadata:i},Xe,Ze),e(vt,null,Ht,{kind:"accessor",name:"_hasInteracted",static:!1,private:!1,access:{has:t=>"_hasInteracted"in t,get:t=>t._hasInteracted,set:(t,e)=>{t._hasInteracted=e}},metadata:i},ti,ei),e(vt,null,Bt,{kind:"accessor",name:"textStrings",static:!1,private:!1,access:{has:t=>"textStrings"in t,get:t=>t.textStrings,set:(t,e)=>{t.textStrings=e}},metadata:i},ii,ai),e(vt,null,Ut,{kind:"accessor",name:"_textStrings",static:!1,private:!1,access:{has:t=>"_textStrings"in t,get:t=>t._textStrings,set:(t,e)=>{t._textStrings=e}},metadata:i},si,ni),e(vt,null,Kt,{kind:"accessor",name:"_isClearing",static:!1,private:!1,access:{has:t=>"_isClearing"in t,get:t=>t._isClearing,set:(t,e)=>{t._isClearing=e}},metadata:i},ri,li),e(vt,null,Gt,{kind:"accessor",name:"_shouldFlatpickrOpen",static:!1,private:!1,access:{has:t=>"_shouldFlatpickrOpen"in t,get:t=>t._shouldFlatpickrOpen,set:(t,e)=>{t._shouldFlatpickrOpen=e}},metadata:i},oi,di),e(vt,null,Jt,{kind:"accessor",name:"_hasInitialDefaultDate",static:!1,private:!1,access:{has:t=>"_hasInitialDefaultDate"in t,get:t=>t._hasInitialDefaultDate,set:(t,e)=>{t._hasInitialDefaultDate=e}},metadata:i},ci,hi),e(null,ft={value:vt},Qt,{kind:"class",name:vt.name,metadata:i},null,Xt),vt=ft.value,i&&Object.defineProperty(vt,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i})})(),vt.styles=[l(R),l($)],i(vt,Xt),vt})();export{L as DateRangePicker};
|
|
715
|
+
`:null}getDateRangePickerClasses(){return{"date-range-picker":!0,"date-range-picker__enable-time":this._enableTime,"date-range-picker__disabled":this.dateRangePickerDisabled}}parseDateString(t){if(!t||!t.trim())return null;t=t.trim();const e=this.dateFormat||"Y-m-d";if(t.includes("T")){const e=new Date(t);return isNaN(e.getTime())?null:e}if(t.includes(" ")){const i=t.split(/\s+/),a=i[0],s=i[1]||"";let n=i[2]?i[2].toUpperCase():void 0;const r=a.split("-").map(Number);let l,o,d;switch(e){case"Y-m-d":default:[l,o,d]=r;break;case"m-d-Y":[o,d,l]=r;break;case"d-m-Y":[d,o,l]=r}if(!l||!o||!d)return null;let c=0,h=0,u=0;if(s){const t=s.split(":");if(c=parseInt(t[0],10),t.length>1)if(t[1].includes(" ")){const[e,i]=t[1].split(" ");h=parseInt(e,10),n=i?i.toUpperCase():n}else h=parseInt(t[1],10);t.length>2&&(u=parseInt(t[2],10)),n&&("PM"===n&&c<12?c+=12:"AM"===n&&12===c&&(c=0))}const p=new Date(l,o-1,d,c,h,u);return isNaN(p.getTime())?null:p}const i={"Y-m-d":/^\d{4}-\d{2}-\d{2}$/,"m-d-Y":/^\d{2}-\d{2}-\d{4}$/,"d-m-Y":/^\d{2}-\d{2}-\d{4}$/,"Y-m-d h:i K":/^\d{4}-\d{2}-\d{2}( \d{1,2}:\d{2} [AP]M)?$/}[e];if(!i||!i.test(t))return null;const a=t.split(" ")[0].split("-").map(Number);let s,n,r;switch(e){case"Y-m-d":default:[s,n,r]=a;break;case"m-d-Y":[n,r,s]=a;break;case"d-m-Y":[r,n,s]=a}if(!s||!n||!r)return null;const l=new Date(s,n-1,r);return isNaN(l.getTime())?null:l}async firstUpdated(t){if(super.firstUpdated(t),!this._initialized){k(A.toString()),this._initialized=!0,this._enableTime=b(this.dateFormat),await this.updateComplete,this.setupAnchor();if((!this.value||2===this.value.length&&null===this.value[0]&&null===this.value[1])&&this._hasInitialDefaultDate&&this.defaultDate){const t=this.processDefaultDates(this.defaultDate);t&&t.length>0&&(1===t.length?(this.value=[t[0],null],this._hasInteracted=!0):t.length>=2&&(this.value=[t[0],t[1]]),null===this.value[0]&&null===this.value[1]||this.updateFormValue(),this._validate(!0,!1))}setTimeout((()=>{(Array.isArray(this.defaultDate)&&1===this.defaultDate.length||2===this.value.length&&(null!==this.value[0]&&null===this.value[1]||null===this.value[0]&&null!==this.value[1]))&&(this._hasInteracted=!0,this._validate(!0,!1))}),0)}}updated(t){var e,i,a;if(super.updated(t),t.has("textStrings")&&(this._textStrings={...P,...this.textStrings},this.flatpickrInstance&&this.rangeEditMode!==f.BOTH&&this.updateFlatpickrOptions()),t.has("dateRangePickerDisabled")&&this.dateRangePickerDisabled||t.has("readonly")&&this.readonly){if(this.dateRangePickerDisabled||this.readonly)return void(null===(e=this.flatpickrInstance)||void 0===e||e.close());this.value[0]&&this.value[1]&&this.setInitialDates()}if(t.has("rangeEditMode")&&this.flatpickrInstance){if(Array.isArray(this.defaultDate)&&2===this.defaultDate.length)if(this.rangeEditMode===f.START&&!this.defaultDate[0]&&this.defaultDate[1]){const t=this.processDefaultDates([this.defaultDate[1]]);1===t.length&&(this.value=[null,t[0]])}else if(this.rangeEditMode===f.END&&this.defaultDate[0]&&!this.defaultDate[1]){const t=this.processDefaultDates([this.defaultDate[0]]);1===t.length&&(this.value=[t[0],null])}this.flatpickrInstance.destroy(),setTimeout((()=>{this.initializeFlatpickr().then((()=>{this._inputEl&&this.flatpickrInstance&&(this._inputEl.value=this.flatpickrInstance.input.value,this.flatpickrInstance.redraw(),this.updateFormValue())}))}),0)}if(t.has("value")&&!this.dateRangePickerDisabled&&this.flatpickrInstance&&!this._isClearing){const t=this.value;if(t.every((t=>null===t)))this._isClearing=!0,this.flatpickrInstance.clear(),this._isClearing=!1,this._inputEl&&(this._inputEl.value="",this.updateFormValue()),this.updateSelectedDateRangeAria([]);else{const e=this.flatpickrInstance.selectedDates;2===e.length&&e[0]&&e[1]&&e[0].getTime()===(null===(i=t[0])||void 0===i?void 0:i.getTime())&&e[1].getTime()===(null===(a=t[1])||void 0===a?void 0:a.getTime())||this.setInitialDates();const s=this.flatpickrInstance.selectedDates.length>0?this.flatpickrInstance.selectedDates:t.filter((t=>t instanceof Date));s.length>0&&this.updateSelectedDateRangeAria(s),(null!==t[0]&&null===t[1]||null===t[0]&&null!==t[1])&&(this._hasInteracted=!0,this._validate(!0,!1))}}if(t.has("defaultDate")){if(this.defaultDate&&this.value.every((t=>null===t))){const t=this.processDefaultDates(this.defaultDate);if(this.value=2===t.length?[t[0],t[1]]:1===t.length?[t[0],null]:[null,null],Array.isArray(this.defaultDate)&&2===this.defaultDate.length)if(this.rangeEditMode===f.START&&!this.defaultDate[0]&&this.defaultDate[1]){const t=this.processDefaultDates([this.defaultDate[1]]);1===t.length&&(this.value=[null,t[0]])}else if(this.rangeEditMode===f.END&&this.defaultDate[0]&&!this.defaultDate[1]){const t=this.processDefaultDates([this.defaultDate[0]]);1===t.length&&(this.value=[t[0],null])}this.updateFormValue(),this.requestUpdate()}this.flatpickrInstance&&(this.flatpickrInstance.destroy(),this.initializeFlatpickr().then((()=>{this._inputEl&&this.flatpickrInstance&&(this._inputEl.value=this.flatpickrInstance.input.value,this.flatpickrInstance.redraw(),this.updateFormValue())})))}t.has("disable")&&(Array.isArray(this.disable)?this._processedDisableDates=this.disable.map((t=>{if(t instanceof Date)return t;if("number"==typeof t)return new Date(t);if("string"==typeof t){const[e,i,a]=t.split("-").map(Number);if(!isNaN(e)&&!isNaN(i)&&!isNaN(a))return new Date(e,i-1,a)}return t})):this._processedDisableDates=[],this.flatpickrInstance&&this.updateFlatpickrOptions()),(t.has("dateFormat")||t.has("minDate")||t.has("maxDate")||t.has("locale")||t.has("twentyFourHourFormat"))&&this.flatpickrInstance&&!this._isClearing&&(this._enableTime=b(this.dateFormat),this.updateFlatpickrOptions()),t.has("allowManualInput")&&this.syncAllowInput()}syncAllowInput(){this.flatpickrInstance&&(this.flatpickrInstance.set("allowInput",this.allowManualInput),!this.readonly&&this._inputEl&&(this._inputEl.readOnly=!this.allowManualInput))}async setupAnchor(){if(this._inputEl)try{await this.initializeFlatpickr()}catch(t){console.error("Error setting up flatpickr:",t)}}normalizeToDate(t){if(!t)return null;if(t instanceof Date)return isNaN(t.getTime())?null:t;if("number"==typeof t){const e=new Date(t);return isNaN(e.getTime())?null:e}return"string"==typeof t?this.parseDateString(t):null}processDefaultDates(t){if(!t)return[];const e=(Array.isArray(t)?t:[t]).map((t=>t instanceof Date?t:"string"==typeof t?this.parseDateString(t):null)).filter((t=>t instanceof Date&&!isNaN(t.getTime())));if(2===e.length&&e[1]<e[0])return console.error("Invalid date range: End date cannot be earlier than start date"),this.invalidText=this._textStrings.invalidDateRange,[e[0]];const i=this.normalizeToDate(this.minDate),a=this.normalizeToDate(this.maxDate),s=e.filter((t=>(!i||t>=i)&&(!a||t<=a)));return s.length!==e.length&&(console.error("Invalid date(s) provided in defaultDate",s),this.invalidText=this._textStrings.pleaseSelectValidDate,this.defaultDate=null),s}async _clearInput(t={reinitFlatpickr:!0}){var e,i;if(this.rangeEditMode===f.NONE)return;this.value=[null,null],this.defaultDate=null,await y(this.flatpickrInstance,null!==(e=this._inputEl)&&void 0!==e?e:void 0,(()=>{this.updateFormValue()})),this.updateSelectedDateRangeAria([]),D(this,"on-change",{dates:this.value,dateString:null===(i=this._inputEl)||void 0===i?void 0:i.value,source:"clear"}),this._validate(!0,!1),await this.updateComplete,t.reinitFlatpickr&&(await this.initializeFlatpickr(),this.requestUpdate())}async _handleClear(t){t.preventDefault(),t.stopPropagation(),this._isClearing=!0;try{await this._clearInput()}finally{this._isClearing=!1}}async handleClose(){this._hasInteracted=!0,this._validate(!0,!1),await this.updateComplete}async initializeFlatpickr(){var t;if(!this._isDestroyed)if(this._inputEl&&this._inputEl.isConnected){this.dateFormat||(console.warn("Date format not set, using default Y-m-d"),this.dateFormat="Y-m-d");try{if(null===(t=this.flatpickrInstance)||void 0===t||t.destroy(),this.flatpickrInstance=await x({inputEl:this._inputEl,getFlatpickrOptions:()=>this.getComponentFlatpickrOptions(),setCalendarAttributes:t=>{try{if(!(null==t?void 0:t.calendarContainer))throw new Error("Calendar container not available");const e=w(this);_(t,e!==document.body),t.calendarContainer.setAttribute("aria-label","Date range calendar")}catch(t){console.warn("Error setting calendar attributes:",t)}},setInitialDates:()=>this.setInitialDates()}),!this.flatpickrInstance)throw new Error("Failed to initialize Flatpickr instance");I(),this._validate(!1,!1)}catch(t){console.error("Error initializing Flatpickr:",t),t instanceof Error&&console.error("Error details:",t.message)}}else console.warn("Cannot initialize Flatpickr: input element not available or not connected to DOM")}async updateFlatpickrOptions(){this.flatpickrInstance?await this.debouncedUpdate():console.warn("Cannot update options: Flatpickr instance not available")}async getComponentFlatpickrOptions(){var t,e;if(this.dateFormat||(this.dateFormat="Y-m-d"),!this._inputEl)return{};const i=w(this),a=await E({locale:this.locale||"en",dateFormat:this.dateFormat,defaultDate:null!==(t=this.defaultDate)&&void 0!==t?t:void 0,enableTime:this._enableTime,twentyFourHourFormat:null!==(e=this.twentyFourHourFormat)&&void 0!==e?e:void 0,inputEl:this._inputEl,minDate:this.minDate,maxDate:this.maxDate,enable:this.enable,disable:this._processedDisableDates,mode:"range",closeOnSelect:!1,allowInput:this.allowManualInput,loadLocale:T,onOpen:this.handleOpen.bind(this),onClose:this.handleClose.bind(this),onChange:this.handleDateChange.bind(this),appendTo:i,noCalendar:!1,static:this.staticPosition}),s=a.onOpen;a.onOpen=(t,e,i)=>{"function"==typeof s?s(t,e,i):Array.isArray(s)&&s.forEach((a=>a(t,e,i))),setTimeout((()=>{const t=i.calendarContainer.querySelector(".flatpickr-day:not(.flatpickr-disabled)");t&&t.focus()}),0)};const n=a.onReady;return a.onReady=(t,e,i)=>{"function"==typeof n?n(t,e,i):Array.isArray(n)&&n.forEach((a=>a(t,e,i)));i.calendarContainer.addEventListener("keydown",(t=>{if("Enter"!==t.key)return;const e=t.target;if(!e.classList.contains("flatpickr-day")||e.classList.contains("flatpickr-disabled"))return;t.preventDefault();const a=i.selectedDates;0===a.length?i.setDate([e.dateObj],!0):1===a.length&&(i.setDate([a[0],e.dateObj],!0),i.close())}))},this.rangeEditMode!==f.BOTH?S(a,this.rangeEditMode,this.value,{lockedStartDate:this._textStrings.lockedStartDate,lockedEndDate:this._textStrings.lockedEndDate,dateLocked:this._textStrings.dateLocked,dateNotAvailable:this._textStrings.dateNotAvailable,dateInSelectedRange:this._textStrings.dateInSelectedRange}):a}setInitialDates(){if(this.flatpickrInstance)try{this.dateFormat||(this.dateFormat="Y-m-d");if(!(Array.isArray(this.value)&&2===this.value.length&&(null!==this.value[0]||null!==this.value[1]))&&this.defaultDate){const t=this.processDefaultDates(this.defaultDate);return void(2===t.length?(this.flatpickrInstance.setDate(t,!0),this.flatpickrInstance.redraw(),this.value=t,this._inputEl.value=this.flatpickrInstance.input.value,this.updateFormValue()):1===t.length&&(this.flatpickrInstance.setDate([t[0]],!0),this.flatpickrInstance.redraw(),this.value=[t[0],null],this._inputEl.value=this.flatpickrInstance.input.value,this.updateFormValue(),this._validate(!0,!1)))}if(Array.isArray(this.value)&&2===this.value.length){const t=this.value.map((t=>t instanceof Date?t:this.parseDateString(t))).filter((t=>null!==t));2===t.length&&(this.flatpickrInstance.setDate(t,!0),this.flatpickrInstance.redraw(),this._inputEl.value=this.flatpickrInstance.input.value,this.updateFormValue())}}catch(t){console.error("Error in setInitialDates:",t.message)}}handleOpen(){var t;this.readonly?null===(t=this.flatpickrInstance)||void 0===t||t.close():(this._shouldFlatpickrOpen=!0,this._isInvalid=!1,this.requestUpdate())}async handleDateChange(t,e){if(this._hasInteracted=!0,!this._isClearing){if(0===t.length)this.value=[null,null],this._inputEl&&(this._inputEl.value="",this.updateFormValue()),D(this,"on-change",{dates:this.value,source:"clear"});else if(1===t.length)this.value=[t[0],null],this._inputEl&&(this._inputEl.value=e,this.updateFormValue()),D(this,"on-change",{dates:[t[0].toISOString()],dateString:e,source:"date-selection"});else{this.value=[t[0],t[1]];const e=t.map((t=>t.toISOString())),i=this.flatpickrInstance.input.value;this._inputEl&&(this._inputEl.value=i,this.updateFormValue()),D(this,"on-change",{dates:e,dateString:i,source:"date-selection"})}this.updateSelectedDateRangeAria(t),this._validate(!0,!1)}}updateSelectedDateRangeAria(t){var e;if(!this._inputEl)return;const i=null===(e=this.shadowRoot)||void 0===e?void 0:e.getElementById(`${this._inputEl.id}-announcer`);if(!i)return;let a="";a=0===t.length?this._textStrings.noDateSelected:1===t.length?this._textStrings.startDateSelected.replace("{0}",t[0].toLocaleDateString(this.locale)):this._textStrings.dateRangeSelected.replace("{0}",t[0].toLocaleDateString(this.locale)).replace("{1}",t[1].toLocaleDateString(this.locale)),i.textContent=a}setShouldFlatpickrOpen(t){this._shouldFlatpickrOpen=t}closeFlatpickr(){var t;null===(t=this.flatpickrInstance)||void 0===t||t.close()}preventFlatpickrOpen(t){F(t,this.setShouldFlatpickrOpen.bind(this))}handleInputClickEvent(){try{this._shouldFlatpickrOpen=!0,z(this.setShouldFlatpickrOpen.bind(this)),!this.flatpickrInstance||this.flatpickrInstance.isOpen||this.readonly||this.dateRangePickerDisabled||setTimeout((()=>{this.flatpickrInstance&&!this.flatpickrInstance.isOpen&&this.flatpickrInstance.open()}),0)}catch(t){console.warn("Error handling input click event:",t)}}handleInputFocusEvent(){try{this._shouldFlatpickrOpen=!0,M(this._shouldFlatpickrOpen,this.closeFlatpickr.bind(this),this.setShouldFlatpickrOpen.bind(this)),!this.flatpickrInstance||this.flatpickrInstance.isOpen||this.readonly||this.dateRangePickerDisabled||setTimeout((()=>{this.flatpickrInstance&&!this.flatpickrInstance.isOpen&&this.flatpickrInstance.open()}),0)}catch(t){console.warn("Error handling input focus event:",t)}}_validate(t,e){var i;if(!(this._inputEl&&this._inputEl instanceof HTMLInputElement))return;if(this.dateRangePickerDisabled)return this._internals.setValidity({},"",this._inputEl),this._isInvalid=!1,void(this._internalValidationMsg="");t&&(this._hasInteracted=!0);const a=this._hasInteracted||e||!!this.invalidText,s=[this.value[0],this.value[1]].filter((t=>null!==t)).length;let n=this._inputEl.validity,r=this._inputEl.validationMessage;(null===(i=this.flatpickrInstance)||void 0===i?void 0:i.isOpen)?(n={...n,valueMissing:!1,customError:!1},r=""):1===s?(n={...n,customError:!0},r=this._textStrings.pleaseSelectBothDates):this.required&&0===s?(n={...n,valueMissing:!0},r=this.defaultErrorMessage||this._textStrings.pleaseSelectDate):(n={...n,valueMissing:!1,customError:!1},r=""),this.invalidText&&(n={...n,customError:!0},r=this.invalidText);const l=!n.valueMissing&&!n.customError;l||r||(r=this._textStrings.pleaseSelectValidDate),this._internals.setValidity(n,r,this._inputEl),this._isInvalid=!l&&a,this._internalValidationMsg=r,e&&this._internals.reportValidity(),this.requestUpdate()}_onChange(){this._validate(!0,!1)}_handleFormReset(){var t;this.value=[null,null],null===(t=this.flatpickrInstance)||void 0===t||t.clear(),this._hasInteracted=!1,this._validate(!1,!1),this.updateSelectedDateRangeAria([])}getValue(){var t,e;if(this.flatpickrInstance){const i=this.flatpickrInstance.selectedDates;return[null!==(t=i[0])&&void 0!==t?t:null,null!==(e=i[1])&&void 0!==e?e:null]}return this.value}setValue(t){var e,i;const a=!t||Array.isArray(t)&&t.every((t=>null===t));this._isClearing=a;try{if(this.flatpickrInstance){if(a)this.flatpickrInstance.clear();else{const e=t.filter((t=>t instanceof Date));this.flatpickrInstance.setDate(e,!0)}const s=this.flatpickrInstance.selectedDates,n=null!==(e=s[0])&&void 0!==e?e:null,r=null!==(i=s[1])&&void 0!==i?i:null;this.value=[n,r],this._inputEl&&(this._inputEl.value=a?"":this.flatpickrInstance.input.value,this.updateFormValue()),a?this.updateSelectedDateRangeAria([]):this.updateSelectedDateRangeAria(s)}else this.value=t;this.requestUpdate("value")}finally{this._isClearing=!1}}},n=new WeakMap,L=new WeakMap,N=new WeakMap,W=new WeakMap,V=new WeakMap,q=new WeakMap,j=new WeakMap,Y=new WeakMap,H=new WeakMap,B=new WeakMap,U=new WeakMap,K=new WeakMap,G=new WeakMap,J=new WeakMap,Q=new WeakMap,X=new WeakMap,Z=new WeakMap,tt=new WeakMap,et=new WeakMap,it=new WeakMap,at=new WeakMap,st=new WeakMap,nt=new WeakMap,rt=new WeakMap,lt=new WeakMap,ot=new WeakMap,dt=new WeakMap,ct=new WeakMap,ht=new WeakMap,ut=new WeakMap,pt=new WeakMap,mt=new WeakMap,gt=new WeakMap,t(vt,"DateRangePicker"),(()=>{var t;const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null!==(t=Zt[Symbol.metadata])&&void 0!==t?t:null):void 0;kt=[c({type:String})],bt=[c({type:String})],yt=[c({type:String})],Dt=[c({type:Array})],xt=[c({type:String})],wt=[c({type:String})],_t=[c({type:String})],It=[c({type:Array})],Et=[h()],St=[c({type:Array})],Ft=[c({type:String})],zt=[c({type:Boolean})],Mt=[c({type:String})],Tt=[c({type:Boolean})],At=[c({type:Boolean})],$t=[c({type:Boolean})],Ot=[c({type:String})],Rt=[c({type:Boolean})],Ct=[c({type:String})],Pt=[c({type:String})],Lt=[c({type:String})],Nt=[c({type:String})],Wt=[c({type:String})],Vt=[c({type:Boolean})],qt=[h()],jt=[h()],Yt=[u("input")],Ht=[h()],Bt=[c({type:Object})],Ut=[h()],Kt=[h()],Gt=[h()],Jt=[h()],e(vt,null,kt,{kind:"accessor",name:"label",static:!1,private:!1,access:{has:t=>"label"in t,get:t=>t.label,set:(t,e)=>{t.label=e}},metadata:i},te,ee),e(vt,null,bt,{kind:"accessor",name:"locale",static:!1,private:!1,access:{has:t=>"locale"in t,get:t=>t.locale,set:(t,e)=>{t.locale=e}},metadata:i},ie,ae),e(vt,null,yt,{kind:"accessor",name:"dateFormat",static:!1,private:!1,access:{has:t=>"dateFormat"in t,get:t=>t.dateFormat,set:(t,e)=>{t.dateFormat=e}},metadata:i},se,ne),e(vt,null,Dt,{kind:"accessor",name:"defaultDate",static:!1,private:!1,access:{has:t=>"defaultDate"in t,get:t=>t.defaultDate,set:(t,e)=>{t.defaultDate=e}},metadata:i},re,le),e(vt,null,xt,{kind:"accessor",name:"rangeEditMode",static:!1,private:!1,access:{has:t=>"rangeEditMode"in t,get:t=>t.rangeEditMode,set:(t,e)=>{t.rangeEditMode=e}},metadata:i},oe,de),e(vt,null,wt,{kind:"accessor",name:"defaultErrorMessage",static:!1,private:!1,access:{has:t=>"defaultErrorMessage"in t,get:t=>t.defaultErrorMessage,set:(t,e)=>{t.defaultErrorMessage=e}},metadata:i},ce,he),e(vt,null,_t,{kind:"accessor",name:"warnText",static:!1,private:!1,access:{has:t=>"warnText"in t,get:t=>t.warnText,set:(t,e)=>{t.warnText=e}},metadata:i},ue,pe),e(vt,null,It,{kind:"accessor",name:"disable",static:!1,private:!1,access:{has:t=>"disable"in t,get:t=>t.disable,set:(t,e)=>{t.disable=e}},metadata:i},me,ge),e(vt,null,Et,{kind:"accessor",name:"_processedDisableDates",static:!1,private:!1,access:{has:t=>"_processedDisableDates"in t,get:t=>t._processedDisableDates,set:(t,e)=>{t._processedDisableDates=e}},metadata:i},fe,ve),e(vt,null,St,{kind:"accessor",name:"enable",static:!1,private:!1,access:{has:t=>"enable"in t,get:t=>t.enable,set:(t,e)=>{t.enable=e}},metadata:i},ke,be),e(vt,null,Ft,{kind:"accessor",name:"caption",static:!1,private:!1,access:{has:t=>"caption"in t,get:t=>t.caption,set:(t,e)=>{t.caption=e}},metadata:i},ye,De),e(vt,null,zt,{kind:"accessor",name:"required",static:!1,private:!1,access:{has:t=>"required"in t,get:t=>t.required,set:(t,e)=>{t.required=e}},metadata:i},xe,we),e(vt,null,Mt,{kind:"accessor",name:"size",static:!1,private:!1,access:{has:t=>"size"in t,get:t=>t.size,set:(t,e)=>{t.size=e}},metadata:i},_e,Ie),e(vt,null,Tt,{kind:"accessor",name:"dateRangePickerDisabled",static:!1,private:!1,access:{has:t=>"dateRangePickerDisabled"in t,get:t=>t.dateRangePickerDisabled,set:(t,e)=>{t.dateRangePickerDisabled=e}},metadata:i},Ee,Se),e(vt,null,At,{kind:"accessor",name:"readonly",static:!1,private:!1,access:{has:t=>"readonly"in t,get:t=>t.readonly,set:(t,e)=>{t.readonly=e}},metadata:i},Fe,ze),e(vt,null,$t,{kind:"accessor",name:"twentyFourHourFormat",static:!1,private:!1,access:{has:t=>"twentyFourHourFormat"in t,get:t=>t.twentyFourHourFormat,set:(t,e)=>{t.twentyFourHourFormat=e}},metadata:i},Me,Te),e(vt,null,Ot,{kind:"accessor",name:"minDate",static:!1,private:!1,access:{has:t=>"minDate"in t,get:t=>t.minDate,set:(t,e)=>{t.minDate=e}},metadata:i},Ae,$e),e(vt,null,Rt,{kind:"accessor",name:"allowManualInput",static:!1,private:!1,access:{has:t=>"allowManualInput"in t,get:t=>t.allowManualInput,set:(t,e)=>{t.allowManualInput=e}},metadata:i},Oe,Re),e(vt,null,Ct,{kind:"accessor",name:"maxDate",static:!1,private:!1,access:{has:t=>"maxDate"in t,get:t=>t.maxDate,set:(t,e)=>{t.maxDate=e}},metadata:i},Ce,Pe),e(vt,null,Pt,{kind:"accessor",name:"errorAriaLabel",static:!1,private:!1,access:{has:t=>"errorAriaLabel"in t,get:t=>t.errorAriaLabel,set:(t,e)=>{t.errorAriaLabel=e}},metadata:i},Le,Ne),e(vt,null,Lt,{kind:"accessor",name:"errorTitle",static:!1,private:!1,access:{has:t=>"errorTitle"in t,get:t=>t.errorTitle,set:(t,e)=>{t.errorTitle=e}},metadata:i},We,Ve),e(vt,null,Nt,{kind:"accessor",name:"warningAriaLabel",static:!1,private:!1,access:{has:t=>"warningAriaLabel"in t,get:t=>t.warningAriaLabel,set:(t,e)=>{t.warningAriaLabel=e}},metadata:i},qe,je),e(vt,null,Wt,{kind:"accessor",name:"warningTitle",static:!1,private:!1,access:{has:t=>"warningTitle"in t,get:t=>t.warningTitle,set:(t,e)=>{t.warningTitle=e}},metadata:i},Ye,He),e(vt,null,Vt,{kind:"accessor",name:"staticPosition",static:!1,private:!1,access:{has:t=>"staticPosition"in t,get:t=>t.staticPosition,set:(t,e)=>{t.staticPosition=e}},metadata:i},Be,Ue),e(vt,null,qt,{kind:"accessor",name:"_enableTime",static:!1,private:!1,access:{has:t=>"_enableTime"in t,get:t=>t._enableTime,set:(t,e)=>{t._enableTime=e}},metadata:i},Ke,Ge),e(vt,null,jt,{kind:"accessor",name:"flatpickrInstance",static:!1,private:!1,access:{has:t=>"flatpickrInstance"in t,get:t=>t.flatpickrInstance,set:(t,e)=>{t.flatpickrInstance=e}},metadata:i},Je,Qe),e(vt,null,Yt,{kind:"accessor",name:"_inputEl",static:!1,private:!1,access:{has:t=>"_inputEl"in t,get:t=>t._inputEl,set:(t,e)=>{t._inputEl=e}},metadata:i},Xe,Ze),e(vt,null,Ht,{kind:"accessor",name:"_hasInteracted",static:!1,private:!1,access:{has:t=>"_hasInteracted"in t,get:t=>t._hasInteracted,set:(t,e)=>{t._hasInteracted=e}},metadata:i},ti,ei),e(vt,null,Bt,{kind:"accessor",name:"textStrings",static:!1,private:!1,access:{has:t=>"textStrings"in t,get:t=>t.textStrings,set:(t,e)=>{t.textStrings=e}},metadata:i},ii,ai),e(vt,null,Ut,{kind:"accessor",name:"_textStrings",static:!1,private:!1,access:{has:t=>"_textStrings"in t,get:t=>t._textStrings,set:(t,e)=>{t._textStrings=e}},metadata:i},si,ni),e(vt,null,Kt,{kind:"accessor",name:"_isClearing",static:!1,private:!1,access:{has:t=>"_isClearing"in t,get:t=>t._isClearing,set:(t,e)=>{t._isClearing=e}},metadata:i},ri,li),e(vt,null,Gt,{kind:"accessor",name:"_shouldFlatpickrOpen",static:!1,private:!1,access:{has:t=>"_shouldFlatpickrOpen"in t,get:t=>t._shouldFlatpickrOpen,set:(t,e)=>{t._shouldFlatpickrOpen=e}},metadata:i},oi,di),e(vt,null,Jt,{kind:"accessor",name:"_hasInitialDefaultDate",static:!1,private:!1,access:{has:t=>"_hasInitialDefaultDate"in t,get:t=>t._hasInitialDefaultDate,set:(t,e)=>{t._hasInitialDefaultDate=e}},metadata:i},ci,hi),e(null,ft={value:vt},Qt,{kind:"class",name:vt.name,metadata:i},null,Xt),vt=ft.value,i&&Object.defineProperty(vt,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i})})(),vt.styles=[l(C),l(A)],i(vt,Xt),vt})();export{L as DateRangePicker};
|
|
716
716
|
//# sourceMappingURL=daterangepicker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daterangepicker.js","sources":["../../../../src/components/reusable/daterangepicker/daterangepicker.ts"],"sourcesContent":["import { html, LitElement, PropertyValues, unsafeCSS } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { FormMixin } from '../../../common/mixins/form-input';\nimport { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';\nimport { langsArray } from '../../../common/flatpickrLangs';\nimport { DateRangeEditableMode } from '../../../common/helpers/flatpickr';\nimport {\n injectFlatpickrStyles,\n initializeSingleAnchorFlatpickr,\n getFlatpickrOptions,\n getPlaceholder,\n preventFlatpickrOpen,\n handleInputClick,\n handleInputFocus,\n setCalendarAttributes,\n loadLocale,\n emitValue,\n updateEnableTime,\n hideEmptyYear,\n getModalContainer,\n applyDateRangeEditingRestrictions,\n clearFlatpickrInput,\n} from '../../../common/helpers/flatpickr';\nimport '../../reusable/button';\n\nimport { BaseOptions } from 'flatpickr/dist/types/options';\nimport type { Instance } from 'flatpickr/dist/types/instance';\n\nimport DateRangePickerStyles from './daterangepicker.scss?inline';\nimport ShidokaFlatpickrTheme from '../../../common/scss/shidoka-flatpickr-theme.scss?inline';\n\nimport errorIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/close-filled.svg';\nimport calendarIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/24/calendar.svg';\nimport clearIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/close-simple.svg';\n\ntype SupportedLocale = (typeof langsArray)[number];\n\nconst _defaultTextStrings = {\n requiredText: 'Required',\n clearAll: 'Clear',\n pleaseSelectDate: 'Please select a date',\n pleaseSelectValidDate: 'Please select a valid date',\n pleaseSelectBothDates: 'Please select a start and end date.',\n dateRange: 'Date range',\n noDateSelected: 'No dates selected',\n startDateSelected: 'Start date selected: {0}. Please select end date.',\n invalidDateRange:\n 'Invalid date range: End date cannot be earlier than start date',\n dateRangeSelected: 'Selected date range: {0} to {1}',\n\n lockedStartDate: 'Start date is locked',\n lockedEndDate: 'End date is locked',\n dateLocked: 'Date is locked',\n dateNotAvailable: 'Date is not available',\n dateInSelectedRange: 'Date is in selected range',\n};\n\n/**\n * Date Range Picker: uses Flatpickr library, range picker implementation -- `https://flatpickr.js.org/examples/#range-calendar`\n * @fires on-change - Emitted when the selected date range changes. Event.detail has the shape:\n * { dates: string[] | (Date | null)[] | null, dateString?: string, source?: string }\n * - dates: array of ISO strings for selected dates (length 1 or 2), or an array containing Date/null values,\n * or null/empty when cleared.\n * - dateString: the display string from the input (may be empty when cleared)\n * - source: 'clear' when the value was cleared; otherwise may be 'date-selection' or undefined.\n * @slot tooltip - Slot for tooltip.\n * @attr {string} [name=''] - The name of the input, used for form submission.\n * @attr {string} [invalidText=''] - The custom validation message when the input is invalid.\n */\n@customElement('kyn-date-range-picker')\nexport class DateRangePicker extends FormMixin(LitElement) {\n static override styles = [\n unsafeCSS(DateRangePickerStyles),\n unsafeCSS(ShidokaFlatpickrTheme),\n ];\n\n /** Label text. */\n @property({ type: String })\n accessor label = '';\n\n /** Sets and dynamically imports specific l10n calendar localization. */\n @property({ type: String })\n accessor locale: SupportedLocale | string = 'en';\n\n /** Sets flatpickr value to define how the date will be displayed in the input box (ex: `Y-m-d H:i`). */\n @property({ type: String })\n accessor dateFormat = 'Y-m-d';\n\n /** Sets the initial selected date(s). For range mode, provide an array of date strings matching dateFormat (e.g. [\"2024-01-01\", \"2024-01-07\"]). */\n @property({ type: Array })\n accessor defaultDate: string[] | null = null;\n\n /** Controls which parts of the date range are editable. */\n @property({ type: String })\n accessor rangeEditMode: DateRangeEditableMode = DateRangeEditableMode.BOTH;\n\n /** Sets default error message. */\n @property({ type: String })\n accessor defaultErrorMessage = '';\n\n /**\n * Current date range value for the component.\n *\n * - Uncontrolled: populated from `defaultDate` and user selections.\n * - Controlled: can be set from the host (e.g. Vue `:value`) as a tuple\n * `[startDate, endDate]`, where each entry is a `Date` or `null`.\n *\n * When both `defaultDate` and `value` are provided, `value` takes precedence.\n */\n override value: [Date | null, Date | null] = [null, null];\n\n /** Sets validation warning messaging. */\n @property({ type: String })\n accessor warnText = '';\n\n /** Sets flatpickr options setting to disable specific dates. Accepts array of dates in Y-m-d format, timestamps, or Date objects. */\n @property({ type: Array })\n accessor disable: (string | number | Date)[] = [];\n\n /** Internal storage for processed disable dates */\n @state()\n private accessor _processedDisableDates: (string | number | Date)[] = [];\n\n /** Sets flatpickr options setting to enable specific dates. */\n @property({ type: Array })\n accessor enable: (string | number | Date)[] = [];\n\n /** Sets caption to be displayed under primary date picker elements. */\n @property({ type: String })\n accessor caption = '';\n\n /** Sets date range picker form input value to required. */\n @property({ type: Boolean })\n accessor required = false;\n\n /** Input size. \"sm\", \"md\", or \"lg\". */\n @property({ type: String })\n accessor size = 'md';\n\n /** Sets entire date range picker form element to enabled/disabled. */\n @property({ type: Boolean })\n accessor dateRangePickerDisabled = false;\n\n /** Sets entire date range picker form element to readonly. */\n @property({ type: Boolean })\n accessor readonly = false;\n\n /** Sets 24-hour formatting true/false.\n * Defaults to 12H for all `en-` locales and 24H for all other locales.\n */\n @property({ type: Boolean })\n accessor twentyFourHourFormat: boolean | null = null;\n\n /** Sets lower boundary of date range picker date selection. */\n @property({ type: String })\n accessor minDate: string | number | Date = '';\n\n /** Allows manual input of date/time string that matches dateFormat when true. */\n @property({ type: Boolean })\n accessor allowManualInput = false;\n\n /** Sets upper boundary of date range picker date selection. */\n @property({ type: String })\n accessor maxDate: string | number | Date = '';\n\n /** Sets aria label attribute for error message. */\n @property({ type: String })\n accessor errorAriaLabel = '';\n\n /** Sets title attribute for error message. */\n @property({ type: String })\n accessor errorTitle = '';\n\n /** Sets aria label attribute for warning message. */\n @property({ type: String })\n accessor warningAriaLabel = '';\n\n /** Sets title attribute for warning message. */\n @property({ type: String })\n accessor warningTitle = '';\n\n /** Sets whether the Flatpickr calendar UI should use static positioning. */\n @property({ type: Boolean })\n accessor staticPosition = false;\n\n /** Sets flatpickr enableTime value based on detected dateFormat.\n * @internal\n */\n @state()\n private accessor _enableTime = false;\n\n /** Flatpickr instantiation.\n * @internal\n */\n @state()\n private accessor flatpickrInstance: Instance | undefined;\n\n /**\n * Queries the input DOM element.\n * @internal\n */\n @query('input')\n private accessor _inputEl: HTMLInputElement | null = null;\n\n /**\n * Sets whether user has interacted with datepicker for error handling.\n * @internal\n */\n @state()\n private accessor _hasInteracted = false;\n\n /** Customizable text strings. */\n @property({ type: Object })\n accessor textStrings = _defaultTextStrings;\n\n /** Internal text strings.\n * @internal\n */\n @state()\n accessor _textStrings = { ..._defaultTextStrings };\n\n /** Tracks if we're in a clear operation to prevent duplicate events\n * @internal\n */\n @state()\n private accessor _isClearing = false;\n\n /** Control flag to prevent Flatpickr from opening when clicking caption, error, label, or warning elements.\n * @internal\n */\n @state()\n private accessor _shouldFlatpickrOpen = false;\n\n /** Track if we initially had a defaultDate when the component was first connected\n * @internal\n */\n @state()\n private accessor _hasInitialDefaultDate = false;\n\n /** Track initialization state\n * @internal\n */\n private _initialized = false;\n\n /** Track destroyed state\n * @internal\n */\n private _isDestroyed = false;\n\n /** Store submit event listener reference for cleanup\n * @internal\n */\n private _submitListener: ((e: SubmitEvent) => void) | null = null;\n\n private debounce<T extends (...args: unknown[]) => unknown>(\n func: T,\n wait: number\n ): (...args: Parameters<T>) => void {\n let timeout: number | null = null;\n\n return (...args: Parameters<T>) => {\n if (timeout !== null) {\n window.clearTimeout(timeout);\n }\n\n timeout = window.setTimeout(() => {\n void func(...args);\n timeout = null;\n }, wait);\n };\n }\n\n private debouncedUpdate = this.debounce(async () => {\n if (!this.flatpickrInstance || this._isDestroyed) return;\n try {\n await this.initializeFlatpickr();\n } catch (error) {\n if (\n process.env.NODE_ENV === 'development' &&\n error instanceof Error &&\n !error.message.includes('calendarContainer') &&\n !error.message.includes('selectedDates')\n ) {\n console.warn('DateRangePicker update info:', error.message);\n }\n }\n }, 100);\n\n private handleResize = this.debounce(async () => {\n if (this.flatpickrInstance && !this._isDestroyed) {\n try {\n await this.initializeFlatpickr();\n } catch (error) {\n if (\n process.env.NODE_ENV === 'development' &&\n error instanceof Error &&\n !error.message.includes('calendarContainer') &&\n !error.message.includes('selectedDates')\n ) {\n console.debug('DateRangePicker resize info:', error.message);\n }\n }\n }\n }, 250);\n\n private generateRandomId(prefix: string): string {\n return `${prefix}-${Math.random().toString(36).slice(2, 11)}`;\n }\n\n override connectedCallback() {\n super.connectedCallback();\n this.addEventListener('change', this._onChange);\n this.addEventListener('reset', this._handleFormReset);\n window.addEventListener('resize', this.handleResize);\n\n if (this._internals.form) {\n this._submitListener = (e: SubmitEvent) => {\n this._validate(true, true);\n if (!this._internals.checkValidity()) {\n e.preventDefault();\n }\n };\n this._internals.form.addEventListener('submit', this._submitListener);\n }\n\n if (\n (!this.value ||\n (Array.isArray(this.value) &&\n this.value.every((date) => date === null))) &&\n this.defaultDate\n ) {\n this._hasInitialDefaultDate = true;\n if (Array.isArray(this.defaultDate) && this.defaultDate.length === 1) {\n this._hasInteracted = true;\n }\n }\n }\n\n override disconnectedCallback() {\n this._isDestroyed = true;\n super.disconnectedCallback();\n this.removeEventListener('change', this._onChange);\n this.removeEventListener('reset', this._handleFormReset);\n window.removeEventListener('resize', this.handleResize);\n\n if (this._internals.form && this._submitListener) {\n this._internals.form.removeEventListener('submit', this._submitListener);\n this._submitListener = null;\n }\n\n this.flatpickrInstance?.destroy();\n this.flatpickrInstance = undefined;\n }\n\n private hasValue(): boolean {\n if (this._inputEl?.value) return true;\n if (this.value && Array.isArray(this.value) && this.value.length === 2) {\n return this.value[0] !== null || this.value[1] !== null;\n }\n if (this.defaultDate) {\n if (Array.isArray(this.defaultDate)) {\n return (\n this.defaultDate.length > 0 &&\n !this.defaultDate.every((date) => !date || date === '')\n );\n }\n return !!this.defaultDate;\n }\n return false;\n }\n\n private updateFormValue() {\n if (!this._internals || !this._inputEl) return;\n\n const [start, end] = this.value;\n\n if (start instanceof Date && end instanceof Date) {\n const formattedValue = [start.toISOString(), end.toISOString()].join(',');\n this._internals.setFormValue(formattedValue);\n\n if (this.name) {\n this._inputEl.setAttribute('value', formattedValue);\n }\n } else {\n this._internals.setFormValue('');\n if (this.name) {\n this._inputEl.removeAttribute('value');\n }\n }\n }\n\n override render() {\n const errorId = `${this.name}-error-message`;\n const warningId = `${this.name}-warning-message`;\n const anchorId = this.name\n ? this.generateRandomId(this.name)\n : this.generateRandomId('date-range-picker');\n const descriptionId = this.name ?? '';\n const placeholder = getPlaceholder(this.dateFormat, true);\n\n const showClearButton =\n this.hasValue() &&\n !this.readonly &&\n this.rangeEditMode !== DateRangeEditableMode.START &&\n this.rangeEditMode !== DateRangeEditableMode.END &&\n this.rangeEditMode !== DateRangeEditableMode.NONE;\n return html`\n <div class=${classMap(this.getDateRangePickerClasses())}>\n <div\n class=\"label-text\"\n ?readonly=${this.readonly}\n @mousedown=${this.preventFlatpickrOpen}\n @click=${this.preventFlatpickrOpen}\n aria-disabled=${this.dateRangePickerDisabled ? 'true' : 'false'}\n id=${`label-${anchorId}`}\n >\n ${this.required\n ? html`<abbr\n class=\"required\"\n title=${this._textStrings.requiredText}\n role=\"img\"\n aria-label=${this._textStrings.requiredText}\n >\n *\n </abbr>`\n : null}\n ${this.label}\n <slot name=\"tooltip\"></slot>\n </div>\n\n <div class=\"input-wrapper\">\n <input\n class=\"${classMap({\n [`size--${this.size}`]: true,\n 'input-custom': true,\n 'is-readonly': this.readonly,\n })}\"\n type=\"text\"\n id=${anchorId}\n name=${this.name}\n placeholder=${placeholder}\n ?disabled=${this.dateRangePickerDisabled}\n ?readonly=${!this.dateRangePickerDisabled && this.readonly}\n ?required=${this.required}\n ?invalid=${this._isInvalid}\n aria-invalid=${this._isInvalid ? 'true' : 'false'}\n aria-labelledby=${`label-${anchorId}`}\n autocomplete=\"off\"\n @click=${this.handleInputClickEvent}\n @focus=${this.handleInputFocusEvent}\n />\n ${showClearButton\n ? html`<kyn-button\n ?disabled=${this.dateRangePickerDisabled}\n class=\"clear-button\"\n kind=\"ghost\"\n size=\"small\"\n description=${this._textStrings.clearAll}\n @click=${this._handleClear}\n >\n <span style=\"display:flex;\" slot=\"icon\">\n ${unsafeSVG(clearIcon)}\n </span>\n </kyn-button>`\n : html`<span\n class=\"input-icon ${this.dateRangePickerDisabled\n ? 'is-disabled'\n : ''}\"\n aria-hidden=\"true\"\n @click=${this.handleInputClickEvent}\n >\n ${unsafeSVG(calendarIcon)}\n </span>`}\n </div>\n\n <div\n id=${`${anchorId}-announcer`}\n class=\"sr-only\"\n aria-live=\"polite\"\n ></div>\n\n ${this.caption\n ? html`<div\n id=${descriptionId}\n class=\"caption\"\n aria-disabled=${this.dateRangePickerDisabled ? 'true' : 'false'}\n @mousedown=${this.preventFlatpickrOpen}\n @click=${this.preventFlatpickrOpen}\n >\n ${this.caption}\n </div>`\n : ''}\n ${this.renderValidationMessage(errorId, warningId)}\n </div>\n `;\n }\n\n private renderValidationMessage(errorId: string, warningId: string) {\n if (this.dateRangePickerDisabled) return null;\n\n if (this.invalidText || (this._isInvalid && this._hasInteracted)) {\n return html`\n <div\n id=${errorId}\n class=\"error error-text\"\n role=\"alert\"\n title=${this.errorTitle || 'Error'}\n @mousedown=${this.preventFlatpickrOpen}\n @click=${this.preventFlatpickrOpen}\n tabindex=\"0\"\n @keydown=${(e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n this.preventFlatpickrOpen(e);\n }\n }}\n >\n <span\n class=\"error-icon\"\n role=\"img\"\n aria-label=${this.errorAriaLabel || 'Error message icon'}\n >\n ${unsafeSVG(errorIcon)}\n </span>\n ${this.invalidText ||\n this._internalValidationMsg ||\n this.defaultErrorMessage}\n </div>\n `;\n }\n\n if (this.warnText) {\n return html`\n <div\n id=${warningId}\n class=\"warn warn-text\"\n role=\"alert\"\n aria-label=${this.warningAriaLabel || 'Warning message'}\n title=${this.warningTitle || 'Warning'}\n @mousedown=${this.preventFlatpickrOpen}\n @click=${this.preventFlatpickrOpen}\n tabindex=\"0\"\n @keydown=${(e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n this.preventFlatpickrOpen(e);\n }\n }}\n >\n ${this.warnText}\n </div>\n `;\n }\n\n return null;\n }\n\n private getDateRangePickerClasses() {\n return {\n 'date-range-picker': true,\n 'date-range-picker__enable-time': this._enableTime,\n 'date-range-picker__disabled': this.dateRangePickerDisabled,\n };\n }\n\n private parseDateString(dateStr: string): Date | null {\n if (!dateStr || !dateStr.trim()) return null;\n dateStr = dateStr.trim();\n\n const dateFormat = this.dateFormat || 'Y-m-d';\n\n if (dateStr.includes('T')) {\n const date = new Date(dateStr);\n return isNaN(date.getTime()) ? null : date;\n }\n\n if (dateStr.includes(' ')) {\n const parts = dateStr.split(/\\s+/);\n const datePart = parts[0];\n const timePart = parts[1] || '';\n let ampm = parts[2] ? parts[2].toUpperCase() : undefined;\n const dateTokens = datePart.split('-').map(Number);\n let year: number, month: number, day: number;\n\n switch (dateFormat) {\n case 'Y-m-d':\n [year, month, day] = dateTokens;\n break;\n case 'm-d-Y':\n [month, day, year] = dateTokens;\n break;\n case 'd-m-Y':\n [day, month, year] = dateTokens;\n break;\n default:\n [year, month, day] = dateTokens;\n }\n\n if (!year || !month || !day) return null;\n\n let hours = 0;\n let minutes = 0;\n let seconds = 0;\n\n if (timePart) {\n const timeComponents = timePart.split(':');\n hours = parseInt(timeComponents[0], 10);\n\n if (timeComponents.length > 1) {\n if (timeComponents[1].includes(' ')) {\n const [mins, token] = timeComponents[1].split(' ');\n minutes = parseInt(mins, 10);\n ampm = token ? token.toUpperCase() : ampm;\n } else {\n minutes = parseInt(timeComponents[1], 10);\n }\n }\n\n if (timeComponents.length > 2) {\n seconds = parseInt(timeComponents[2], 10);\n }\n\n if (ampm) {\n if (ampm === 'PM' && hours < 12) {\n hours += 12;\n } else if (ampm === 'AM' && hours === 12) {\n hours = 0;\n }\n }\n }\n\n const date = new Date(year, month - 1, day, hours, minutes, seconds);\n return isNaN(date.getTime()) ? null : date;\n }\n\n const formats: { [key: string]: RegExp } = {\n 'Y-m-d': /^\\d{4}-\\d{2}-\\d{2}$/,\n 'm-d-Y': /^\\d{2}-\\d{2}-\\d{4}$/,\n 'd-m-Y': /^\\d{2}-\\d{2}-\\d{4}$/,\n 'Y-m-d h:i K': /^\\d{4}-\\d{2}-\\d{2}( \\d{1,2}:\\d{2} [AP]M)?$/,\n };\n const pattern = formats[dateFormat];\n if (!pattern || !pattern.test(dateStr)) return null;\n\n const datePart = dateStr.split(' ')[0];\n const dateTokens = datePart.split('-').map(Number);\n let year: number, month: number, day: number;\n\n switch (dateFormat) {\n case 'Y-m-d':\n [year, month, day] = dateTokens;\n break;\n case 'm-d-Y':\n [month, day, year] = dateTokens;\n break;\n case 'd-m-Y':\n [day, month, year] = dateTokens;\n break;\n default:\n [year, month, day] = dateTokens;\n }\n\n if (!year || !month || !day) return null;\n const date = new Date(year, month - 1, day);\n return isNaN(date.getTime()) ? null : date;\n }\n\n override async firstUpdated(changedProperties: PropertyValues) {\n super.firstUpdated(changedProperties);\n if (!this._initialized) {\n injectFlatpickrStyles(ShidokaFlatpickrTheme.toString());\n this._initialized = true;\n\n this._enableTime = updateEnableTime(this.dateFormat);\n\n await this.updateComplete;\n this.setupAnchor();\n\n const valueEmpty =\n !this.value ||\n (this.value.length === 2 &&\n this.value[0] === null &&\n this.value[1] === null);\n\n if (valueEmpty && this._hasInitialDefaultDate && this.defaultDate) {\n const processedDates = this.processDefaultDates(this.defaultDate);\n if (processedDates && processedDates.length > 0) {\n if (processedDates.length === 1) {\n this.value = [processedDates[0], null];\n this._hasInteracted = true;\n } else if (processedDates.length >= 2) {\n this.value = [processedDates[0], processedDates[1]];\n }\n\n if (this.value[0] !== null || this.value[1] !== null) {\n this.updateFormValue();\n }\n\n this._validate(true, false);\n }\n }\n\n setTimeout(() => {\n if (Array.isArray(this.defaultDate) && this.defaultDate.length === 1) {\n this._hasInteracted = true;\n this._validate(true, false);\n } else if (\n this.value.length === 2 &&\n ((this.value[0] !== null && this.value[1] === null) ||\n (this.value[0] === null && this.value[1] !== null))\n ) {\n this._hasInteracted = true;\n this._validate(true, false);\n }\n }, 0);\n }\n }\n\n override updated(changedProperties: PropertyValues) {\n super.updated(changedProperties);\n\n if (changedProperties.has('textStrings')) {\n this._textStrings = { ..._defaultTextStrings, ...this.textStrings };\n\n if (\n this.flatpickrInstance &&\n this.rangeEditMode !== DateRangeEditableMode.BOTH\n ) {\n this.updateFlatpickrOptions();\n }\n }\n\n if (\n (changedProperties.has('dateRangePickerDisabled') &&\n this.dateRangePickerDisabled) ||\n (changedProperties.has('readonly') && this.readonly)\n ) {\n if (this.dateRangePickerDisabled || this.readonly) {\n this.flatpickrInstance?.close();\n return;\n } else if (this.value[0] && this.value[1]) {\n this.setInitialDates();\n }\n }\n\n if (changedProperties.has('rangeEditMode') && this.flatpickrInstance) {\n if (Array.isArray(this.defaultDate) && this.defaultDate.length === 2) {\n if (\n this.rangeEditMode === DateRangeEditableMode.START &&\n !this.defaultDate[0] &&\n this.defaultDate[1]\n ) {\n const processedDate = this.processDefaultDates([this.defaultDate[1]]);\n if (processedDate.length === 1) {\n this.value = [null, processedDate[0]];\n }\n } else if (\n this.rangeEditMode === DateRangeEditableMode.END &&\n this.defaultDate[0] &&\n !this.defaultDate[1]\n ) {\n const processedDate = this.processDefaultDates([this.defaultDate[0]]);\n if (processedDate.length === 1) {\n this.value = [processedDate[0], null];\n }\n }\n }\n\n this.flatpickrInstance.destroy();\n setTimeout(() => {\n this.initializeFlatpickr().then(() => {\n if (this._inputEl && this.flatpickrInstance) {\n this._inputEl.value = this.flatpickrInstance.input.value;\n this.flatpickrInstance.redraw();\n this.updateFormValue();\n }\n });\n }, 0);\n }\n\n if (\n changedProperties.has('value') &&\n !this.dateRangePickerDisabled &&\n this.flatpickrInstance &&\n !this._isClearing\n ) {\n const newValue = this.value;\n if (newValue.every((v) => v === null)) {\n this._isClearing = true;\n this.flatpickrInstance.clear();\n this._isClearing = false;\n if (this._inputEl) {\n this._inputEl.value = '';\n this.updateFormValue();\n }\n } else {\n const currentDates = this.flatpickrInstance.selectedDates;\n if (\n currentDates.length !== 2 ||\n !currentDates[0] ||\n !currentDates[1] ||\n currentDates[0].getTime() !== newValue[0]?.getTime() ||\n currentDates[1].getTime() !== newValue[1]?.getTime()\n ) {\n this.setInitialDates();\n }\n\n if (\n (newValue[0] !== null && newValue[1] === null) ||\n (newValue[0] === null && newValue[1] !== null)\n ) {\n this._hasInteracted = true;\n this._validate(true, false);\n }\n }\n }\n\n if (changedProperties.has('defaultDate')) {\n if (this.defaultDate && this.value.every((v) => v === null)) {\n const dates = this.processDefaultDates(this.defaultDate);\n this.value =\n dates.length === 2\n ? ([dates[0], dates[1]] as [Date, Date])\n : dates.length === 1\n ? ([dates[0], null] as [Date, null])\n : ([null, null] as [null, null]);\n\n if (Array.isArray(this.defaultDate) && this.defaultDate.length === 2) {\n if (\n this.rangeEditMode === DateRangeEditableMode.START &&\n !this.defaultDate[0] &&\n this.defaultDate[1]\n ) {\n const processedDate = this.processDefaultDates([\n this.defaultDate[1],\n ]);\n if (processedDate.length === 1) {\n this.value = [null, processedDate[0]];\n }\n } else if (\n this.rangeEditMode === DateRangeEditableMode.END &&\n this.defaultDate[0] &&\n !this.defaultDate[1]\n ) {\n const processedDate = this.processDefaultDates([\n this.defaultDate[0],\n ]);\n if (processedDate.length === 1) {\n this.value = [processedDate[0], null];\n }\n }\n }\n\n this.updateFormValue();\n this.requestUpdate();\n }\n\n if (this.flatpickrInstance) {\n this.flatpickrInstance.destroy();\n this.initializeFlatpickr().then(() => {\n if (this._inputEl && this.flatpickrInstance) {\n this._inputEl.value = this.flatpickrInstance.input.value;\n this.flatpickrInstance.redraw();\n this.updateFormValue();\n }\n });\n }\n }\n\n if (changedProperties.has('disable')) {\n if (Array.isArray(this.disable)) {\n this._processedDisableDates = this.disable.map((date) => {\n if (date instanceof Date) return date;\n if (typeof date === 'number') return new Date(date);\n if (typeof date === 'string') {\n const [year, month, day] = date.split('-').map(Number);\n if (!isNaN(year) && !isNaN(month) && !isNaN(day)) {\n return new Date(year, month - 1, day);\n }\n }\n return date;\n });\n } else {\n this._processedDisableDates = [];\n }\n if (this.flatpickrInstance) {\n this.updateFlatpickrOptions();\n }\n }\n\n if (\n (changedProperties.has('dateFormat') ||\n changedProperties.has('minDate') ||\n changedProperties.has('maxDate') ||\n changedProperties.has('locale') ||\n changedProperties.has('twentyFourHourFormat')) &&\n this.flatpickrInstance &&\n !this._isClearing\n ) {\n this._enableTime = updateEnableTime(this.dateFormat);\n this.updateFlatpickrOptions();\n }\n\n if (changedProperties.has('allowManualInput')) {\n this.syncAllowInput();\n }\n }\n\n private syncAllowInput(): void {\n if (!this.flatpickrInstance) return;\n this.flatpickrInstance.set('allowInput', this.allowManualInput);\n if (!this.readonly && this._inputEl) {\n this._inputEl.readOnly = !this.allowManualInput;\n }\n }\n\n private async setupAnchor() {\n if (!this._inputEl) {\n return;\n }\n\n try {\n await this.initializeFlatpickr();\n } catch (error) {\n console.error('Error setting up flatpickr:', error);\n }\n }\n\n private normalizeToDate(value: string | number | Date | ''): Date | null {\n if (!value) return null;\n\n if (value instanceof Date) {\n return isNaN(value.getTime()) ? null : value;\n }\n\n if (typeof value === 'number') {\n const d = new Date(value);\n return isNaN(d.getTime()) ? null : d;\n }\n\n if (typeof value === 'string') {\n return this.parseDateString(value);\n }\n\n return null;\n }\n\n private processDefaultDates(\n defaultDate: string | string[] | Date | Date[] | null\n ): Date[] {\n if (!defaultDate) return [];\n\n const rawValues = Array.isArray(defaultDate) ? defaultDate : [defaultDate];\n\n const parsed = rawValues.map((d) => {\n if (d instanceof Date) return d;\n if (typeof d === 'string') return this.parseDateString(d);\n return null;\n });\n\n const validDates = parsed.filter(\n (date): date is Date => date instanceof Date && !isNaN(date.getTime())\n );\n\n if (validDates.length === 2 && validDates[1] < validDates[0]) {\n console.error(\n 'Invalid date range: End date cannot be earlier than start date'\n );\n this.invalidText = this._textStrings.invalidDateRange;\n return [validDates[0]];\n }\n\n const min = this.normalizeToDate(this.minDate);\n const max = this.normalizeToDate(this.maxDate);\n\n const inRange = validDates.filter((d) => {\n return (!min || d >= min) && (!max || d <= max);\n });\n\n if (inRange.length !== validDates.length) {\n console.error('Invalid date(s) provided in defaultDate', inRange);\n this.invalidText = this._textStrings.pleaseSelectValidDate;\n this.defaultDate = null;\n }\n\n return inRange;\n }\n\n private async _clearInput(\n options: { reinitFlatpickr?: boolean } = { reinitFlatpickr: true }\n ) {\n if (this.rangeEditMode === DateRangeEditableMode.NONE) {\n return;\n }\n\n const newValue: [Date | null, Date | null] = [null, null];\n const preservedDateExists = false;\n\n this.value = newValue;\n this.defaultDate = null;\n\n if (preservedDateExists) {\n if (this.flatpickrInstance) {\n this.flatpickrInstance.clear();\n\n const datesToSet = newValue.filter(\n (date): date is Date => date !== null\n );\n if (datesToSet.length > 0) {\n this.flatpickrInstance.setDate(datesToSet, true);\n }\n }\n\n this.updateFormValue();\n } else {\n await clearFlatpickrInput(\n this.flatpickrInstance,\n this._inputEl ?? undefined,\n () => {\n this.updateFormValue();\n }\n );\n }\n\n emitValue(this, 'on-change', {\n dates: this.value,\n dateString: this._inputEl?.value,\n source: 'clear',\n });\n\n this._validate(true, false);\n await this.updateComplete;\n\n if (options.reinitFlatpickr) {\n await this.initializeFlatpickr();\n this.requestUpdate();\n }\n }\n\n private async _handleClear(event: Event) {\n event.preventDefault();\n event.stopPropagation();\n this._isClearing = true;\n try {\n await this._clearInput();\n } finally {\n this._isClearing = false;\n }\n }\n\n public async handleClose() {\n this._hasInteracted = true;\n this._validate(true, false);\n await this.updateComplete;\n }\n\n public async initializeFlatpickr() {\n if (this._isDestroyed) {\n return;\n }\n\n if (!this._inputEl || !this._inputEl.isConnected) {\n console.warn(\n 'Cannot initialize Flatpickr: input element not available or not connected to DOM'\n );\n return;\n }\n\n if (!this.dateFormat) {\n console.warn('Date format not set, using default Y-m-d');\n this.dateFormat = 'Y-m-d';\n }\n\n try {\n this.flatpickrInstance?.destroy();\n this.flatpickrInstance = await initializeSingleAnchorFlatpickr({\n inputEl: this._inputEl,\n getFlatpickrOptions: () => this.getComponentFlatpickrOptions(),\n setCalendarAttributes: (instance) => {\n try {\n if (!instance?.calendarContainer) {\n throw new Error('Calendar container not available');\n }\n const container = getModalContainer(this);\n setCalendarAttributes(instance, container !== document.body);\n instance.calendarContainer.setAttribute(\n 'aria-label',\n 'Date range calendar'\n );\n } catch (error) {\n console.warn('Error setting calendar attributes:', error);\n }\n },\n setInitialDates: () => this.setInitialDates(),\n });\n\n if (!this.flatpickrInstance) {\n throw new Error('Failed to initialize Flatpickr instance');\n }\n\n hideEmptyYear();\n this._validate(false, false);\n } catch (error) {\n console.error('Error initializing Flatpickr:', error);\n\n if (error instanceof Error) {\n console.error('Error details:', error.message);\n }\n }\n }\n\n public async updateFlatpickrOptions() {\n if (!this.flatpickrInstance) {\n console.warn('Cannot update options: Flatpickr instance not available');\n return;\n }\n await this.debouncedUpdate();\n }\n\n public async getComponentFlatpickrOptions(): Promise<Partial<BaseOptions>> {\n if (!this.dateFormat) {\n this.dateFormat = 'Y-m-d';\n }\n\n if (!this._inputEl) {\n return {};\n }\n\n const container = getModalContainer(this);\n const options = await getFlatpickrOptions({\n locale: this.locale || 'en',\n dateFormat: this.dateFormat,\n defaultDate: this.defaultDate ?? undefined,\n enableTime: this._enableTime,\n twentyFourHourFormat: this.twentyFourHourFormat ?? undefined,\n inputEl: this._inputEl,\n minDate: this.minDate,\n maxDate: this.maxDate,\n enable: this.enable,\n disable: this._processedDisableDates,\n mode: 'range',\n closeOnSelect: false,\n allowInput: this.allowManualInput,\n loadLocale,\n onOpen: this.handleOpen.bind(this),\n onClose: this.handleClose.bind(this),\n onChange: this.handleDateChange.bind(this),\n appendTo: container,\n noCalendar: false,\n static: this.staticPosition,\n });\n\n const origOnOpen = options.onOpen;\n options.onOpen = (selectedDates, dateStr, instance) => {\n if (typeof origOnOpen === 'function') {\n origOnOpen(selectedDates, dateStr, instance);\n } else if (Array.isArray(origOnOpen)) {\n origOnOpen.forEach((fn) => fn(selectedDates, dateStr, instance));\n }\n setTimeout(() => {\n const firstDay = instance.calendarContainer.querySelector<HTMLElement>(\n '.flatpickr-day:not(.flatpickr-disabled)'\n );\n if (firstDay) firstDay.focus();\n }, 0);\n };\n\n const origOnReady = options.onReady;\n options.onReady = (_sel, _str, instance) => {\n if (typeof origOnReady === 'function') {\n origOnReady(_sel, _str, instance);\n } else if (Array.isArray(origOnReady)) {\n origOnReady.forEach((fn) => fn(_sel, _str, instance));\n }\n const handler = (e: KeyboardEvent) => {\n if (e.key !== 'Enter') return;\n const target = e.target as HTMLElement & { dateObj: Date };\n if (\n !target.classList.contains('flatpickr-day') ||\n target.classList.contains('flatpickr-disabled')\n ) {\n return;\n }\n e.preventDefault();\n const sel = instance.selectedDates;\n if (sel.length === 0) {\n instance.setDate([target.dateObj], true);\n } else if (sel.length === 1) {\n instance.setDate([sel[0], target.dateObj], true);\n instance.close();\n }\n };\n instance.calendarContainer.addEventListener('keydown', handler);\n };\n\n if (this.rangeEditMode !== DateRangeEditableMode.BOTH) {\n return applyDateRangeEditingRestrictions(\n options,\n this.rangeEditMode,\n this.value,\n {\n lockedStartDate: this._textStrings.lockedStartDate,\n lockedEndDate: this._textStrings.lockedEndDate,\n dateLocked: this._textStrings.dateLocked,\n dateNotAvailable: this._textStrings.dateNotAvailable,\n dateInSelectedRange: this._textStrings.dateInSelectedRange,\n }\n );\n }\n\n return options;\n }\n\n public setInitialDates() {\n if (!this.flatpickrInstance) return;\n\n try {\n if (!this.dateFormat) {\n this.dateFormat = 'Y-m-d';\n }\n\n const hasValidValue =\n Array.isArray(this.value) &&\n this.value.length === 2 &&\n (this.value[0] !== null || this.value[1] !== null);\n\n if (!hasValidValue && this.defaultDate) {\n const validDates = this.processDefaultDates(this.defaultDate);\n if (validDates.length === 2) {\n this.flatpickrInstance.setDate(validDates, true);\n this.flatpickrInstance.redraw();\n this.value = validDates as [Date, Date];\n this._inputEl!.value = this.flatpickrInstance.input.value;\n this.updateFormValue();\n } else if (validDates.length === 1) {\n this.flatpickrInstance.setDate([validDates[0]], true);\n this.flatpickrInstance.redraw();\n this.value = [validDates[0], null];\n this._inputEl!.value = this.flatpickrInstance.input.value;\n this.updateFormValue();\n this._validate(true, false);\n }\n return;\n }\n\n if (Array.isArray(this.value) && this.value.length === 2) {\n const validDates = (this.value as (string | Date)[])\n .map((d) => (d instanceof Date ? d : this.parseDateString(d)))\n .filter((d): d is Date => d !== null);\n\n if (validDates.length === 2) {\n this.flatpickrInstance.setDate(validDates, true);\n this.flatpickrInstance.redraw();\n this._inputEl!.value = this.flatpickrInstance.input.value;\n this.updateFormValue();\n }\n }\n } catch (e) {\n console.error('Error in setInitialDates:', (e as Error).message);\n }\n }\n\n public handleOpen() {\n if (this.readonly) {\n this.flatpickrInstance?.close();\n return;\n }\n\n this._shouldFlatpickrOpen = true;\n this._isInvalid = false;\n this.requestUpdate();\n }\n\n public async handleDateChange(selectedDates: Date[], dateStr: string) {\n this._hasInteracted = true;\n\n if (this._isClearing) return;\n\n if (selectedDates.length === 0) {\n this.value = [null, null];\n if (this._inputEl) {\n this._inputEl.value = '';\n this.updateFormValue();\n }\n emitValue(this, 'on-change', { dates: this.value, source: 'clear' });\n } else if (selectedDates.length === 1) {\n this.value = [selectedDates[0], null];\n\n if (this._inputEl) {\n this._inputEl.value = dateStr;\n this.updateFormValue();\n }\n\n emitValue(this, 'on-change', {\n dates: [selectedDates[0].toISOString()],\n dateString: dateStr,\n source: 'date-selection',\n });\n } else {\n this.value = [selectedDates[0], selectedDates[1]];\n const iso = selectedDates.map((d) => d.toISOString());\n const display = this.flatpickrInstance!.input.value;\n if (this._inputEl) {\n this._inputEl.value = display;\n this.updateFormValue();\n }\n emitValue(this, 'on-change', {\n dates: iso,\n dateString: display,\n source: 'date-selection',\n });\n }\n\n this.updateSelectedDateRangeAria(selectedDates);\n this._validate(true, false);\n }\n\n private updateSelectedDateRangeAria(selectedDates: Date[]) {\n if (!this._inputEl) return;\n const announcer = this.shadowRoot?.getElementById(\n `${this._inputEl.id}-announcer`\n );\n\n if (!announcer) return;\n\n let announcement = '';\n\n if (selectedDates.length === 0) {\n announcement = this._textStrings.noDateSelected;\n } else if (selectedDates.length === 1) {\n announcement = this._textStrings.startDateSelected.replace(\n '{0}',\n selectedDates[0].toLocaleDateString(this.locale)\n );\n } else {\n announcement = this._textStrings.dateRangeSelected\n .replace('{0}', selectedDates[0].toLocaleDateString(this.locale))\n .replace('{1}', selectedDates[1].toLocaleDateString(this.locale));\n }\n\n announcer.textContent = announcement;\n }\n\n private setShouldFlatpickrOpen(value: boolean) {\n this._shouldFlatpickrOpen = value;\n }\n\n private closeFlatpickr() {\n this.flatpickrInstance?.close();\n }\n\n private preventFlatpickrOpen(event: Event) {\n preventFlatpickrOpen(event, this.setShouldFlatpickrOpen.bind(this));\n }\n\n private handleInputClickEvent() {\n try {\n this._shouldFlatpickrOpen = true;\n\n handleInputClick(this.setShouldFlatpickrOpen.bind(this));\n\n if (\n this.flatpickrInstance &&\n !this.flatpickrInstance.isOpen &&\n !this.readonly &&\n !this.dateRangePickerDisabled\n ) {\n setTimeout(() => {\n if (this.flatpickrInstance && !this.flatpickrInstance.isOpen) {\n this.flatpickrInstance.open();\n }\n }, 0);\n }\n } catch (e) {\n console.warn('Error handling input click event:', e);\n }\n }\n\n private handleInputFocusEvent() {\n try {\n this._shouldFlatpickrOpen = true;\n\n handleInputFocus(\n this._shouldFlatpickrOpen,\n this.closeFlatpickr.bind(this),\n this.setShouldFlatpickrOpen.bind(this)\n );\n\n if (\n this.flatpickrInstance &&\n !this.flatpickrInstance.isOpen &&\n !this.readonly &&\n !this.dateRangePickerDisabled\n ) {\n setTimeout(() => {\n if (this.flatpickrInstance && !this.flatpickrInstance.isOpen) {\n this.flatpickrInstance.open();\n }\n }, 0);\n }\n } catch (e) {\n console.warn('Error handling input focus event:', e);\n }\n }\n\n private _validate(interacted: boolean, report: boolean) {\n if (!this._inputEl || !(this._inputEl instanceof HTMLInputElement)) return;\n\n if (this.dateRangePickerDisabled) {\n this._internals.setValidity({}, '', this._inputEl);\n this._isInvalid = false;\n this._internalValidationMsg = '';\n return;\n }\n\n if (interacted) {\n this._hasInteracted = true;\n }\n\n const shouldShowValidationErrors =\n this._hasInteracted || report || !!this.invalidText;\n\n const selectedCount = [this.value[0], this.value[1]].filter(\n (d) => d !== null\n ).length;\n let validity = this._inputEl.validity;\n let validationMessage = this._inputEl.validationMessage;\n\n if (this.flatpickrInstance?.isOpen) {\n validity = { ...validity, valueMissing: false, customError: false };\n validationMessage = '';\n } else if (selectedCount === 1) {\n validity = { ...validity, customError: true };\n validationMessage = this._textStrings.pleaseSelectBothDates;\n } else if (this.required && selectedCount === 0) {\n validity = { ...validity, valueMissing: true };\n validationMessage =\n this.defaultErrorMessage || this._textStrings.pleaseSelectDate;\n } else {\n validity = { ...validity, valueMissing: false, customError: false };\n validationMessage = '';\n }\n\n if (this.invalidText) {\n validity = { ...validity, customError: true };\n validationMessage = this.invalidText;\n }\n\n const isValid = !validity.valueMissing && !validity.customError;\n if (!isValid && !validationMessage) {\n validationMessage = this._textStrings.pleaseSelectValidDate;\n }\n\n this._internals.setValidity(validity, validationMessage, this._inputEl);\n\n this._isInvalid = !isValid && shouldShowValidationErrors;\n this._internalValidationMsg = validationMessage;\n\n if (report) this._internals.reportValidity();\n this.requestUpdate();\n }\n\n private _onChange() {\n this._validate(true, false);\n }\n\n private _handleFormReset() {\n this.value = [null, null];\n this.flatpickrInstance?.clear();\n this._hasInteracted = false;\n this._validate(false, false);\n }\n\n public getValue(): [Date | null, Date | null] {\n if (this.flatpickrInstance) {\n const selected = this.flatpickrInstance.selectedDates;\n\n const start = selected[0] ?? null;\n const end = selected[1] ?? null;\n\n return [start, end];\n }\n\n return this.value;\n }\n\n public setValue(newValue: [Date | null, Date | null]): void {\n const isClear =\n !newValue ||\n (Array.isArray(newValue) && newValue.every((d) => d === null));\n\n this._isClearing = isClear;\n\n try {\n if (this.flatpickrInstance) {\n if (isClear) {\n this.flatpickrInstance.clear();\n } else {\n const datesToSet = newValue.filter(\n (d): d is Date => d instanceof Date\n );\n this.flatpickrInstance.setDate(datesToSet, true);\n }\n\n const selected = this.flatpickrInstance.selectedDates;\n const start = selected[0] ?? null;\n const end = selected[1] ?? null;\n\n this.value = [start, end];\n\n if (this._inputEl) {\n if (isClear) {\n this._inputEl.value = '';\n } else {\n this._inputEl.value = this.flatpickrInstance.input.value;\n }\n this.updateFormValue();\n }\n } else {\n this.value = newValue;\n }\n\n this.requestUpdate('value');\n } finally {\n this._isClearing = false;\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-date-range-picker': DateRangePicker;\n }\n}\n"],"names":["_defaultTextStrings","requiredText","clearAll","pleaseSelectDate","pleaseSelectValidDate","pleaseSelectBothDates","dateRange","noDateSelected","startDateSelected","invalidDateRange","dateRangeSelected","lockedStartDate","lockedEndDate","dateLocked","dateNotAvailable","dateInSelectedRange","DateRangePicker","customElement","FormMixin","LitElement","_classThis","_classSuper","_DateRangePicker_label_accessor_storage","set","this","__runInitializers","_label_initializers","_DateRangePicker_locale_accessor_storage","_label_extraInitializers","_locale_initializers","_DateRangePicker_dateFormat_accessor_storage","_locale_extraInitializers","_dateFormat_initializers","_DateRangePicker_defaultDate_accessor_storage","_dateFormat_extraInitializers","_defaultDate_initializers","_DateRangePicker_rangeEditMode_accessor_storage","_defaultDate_extraInitializers","_rangeEditMode_initializers","DateRangeEditableMode","BOTH","_DateRangePicker_defaultErrorMessage_accessor_storage","_rangeEditMode_extraInitializers","_defaultErrorMessage_initializers","value","_DateRangePicker_warnText_accessor_storage","_warnText_initializers","_DateRangePicker_disable_accessor_storage","_warnText_extraInitializers","_disable_initializers","_DateRangePicker__processedDisableDates_accessor_storage","_disable_extraInitializers","__processedDisableDates_initializers","_DateRangePicker_enable_accessor_storage","__processedDisableDates_extraInitializers","_enable_initializers","_DateRangePicker_caption_accessor_storage","_enable_extraInitializers","_caption_initializers","_DateRangePicker_required_accessor_storage","_caption_extraInitializers","_required_initializers","_DateRangePicker_size_accessor_storage","_required_extraInitializers","_size_initializers","_DateRangePicker_dateRangePickerDisabled_accessor_storage","_size_extraInitializers","_dateRangePickerDisabled_initializers","_DateRangePicker_readonly_accessor_storage","_dateRangePickerDisabled_extraInitializers","_readonly_initializers","_DateRangePicker_twentyFourHourFormat_accessor_storage","_readonly_extraInitializers","_twentyFourHourFormat_initializers","_DateRangePicker_minDate_accessor_storage","_twentyFourHourFormat_extraInitializers","_minDate_initializers","_DateRangePicker_allowManualInput_accessor_storage","_minDate_extraInitializers","_allowManualInput_initializers","_DateRangePicker_maxDate_accessor_storage","_allowManualInput_extraInitializers","_maxDate_initializers","_DateRangePicker_errorAriaLabel_accessor_storage","_maxDate_extraInitializers","_errorAriaLabel_initializers","_DateRangePicker_errorTitle_accessor_storage","_errorAriaLabel_extraInitializers","_errorTitle_initializers","_DateRangePicker_warningAriaLabel_accessor_storage","_errorTitle_extraInitializers","_warningAriaLabel_initializers","_DateRangePicker_warningTitle_accessor_storage","_warningAriaLabel_extraInitializers","_warningTitle_initializers","_DateRangePicker_staticPosition_accessor_storage","_warningTitle_extraInitializers","_staticPosition_initializers","_DateRangePicker__enableTime_accessor_storage","_staticPosition_extraInitializers","__enableTime_initializers","_DateRangePicker_flatpickrInstance_accessor_storage","__enableTime_extraInitializers","_flatpickrInstance_initializers","_DateRangePicker__inputEl_accessor_storage","_flatpickrInstance_extraInitializers","__inputEl_initializers","_DateRangePicker__hasInteracted_accessor_storage","__inputEl_extraInitializers","__hasInteracted_initializers","_DateRangePicker_textStrings_accessor_storage","__hasInteracted_extraInitializers","_textStrings_initializers","_DateRangePicker__textStrings_accessor_storage","_textStrings_extraInitializers","__textStrings_initializers","_DateRangePicker__isClearing_accessor_storage","__textStrings_extraInitializers","__isClearing_initializers","_DateRangePicker__shouldFlatpickrOpen_accessor_storage","__isClearing_extraInitializers","__shouldFlatpickrOpen_initializers","_DateRangePicker__hasInitialDefaultDate_accessor_storage","__shouldFlatpickrOpen_extraInitializers","__hasInitialDefaultDate_initializers","_initialized","__hasInitialDefaultDate_extraInitializers","_isDestroyed","_submitListener","debouncedUpdate","debounce","async","flatpickrInstance","initializeFlatpickr","error","process","env","NODE_ENV","Error","message","includes","console","warn","handleResize","debug","label","__classPrivateFieldGet","__classPrivateFieldSet","locale","dateFormat","defaultDate","rangeEditMode","defaultErrorMessage","warnText","disable","_processedDisableDates","enable","caption","required","size","dateRangePickerDisabled","readonly","twentyFourHourFormat","minDate","allowManualInput","maxDate","errorAriaLabel","errorTitle","warningAriaLabel","warningTitle","staticPosition","_enableTime","_inputEl","_hasInteracted","textStrings","_textStrings","_isClearing","_shouldFlatpickrOpen","_hasInitialDefaultDate","func","wait","timeout","args","window","clearTimeout","setTimeout","generateRandomId","prefix","Math","random","toString","slice","connectedCallback","super","addEventListener","_onChange","_handleFormReset","_internals","form","e","_validate","checkValidity","preventDefault","Array","isArray","every","date","length","disconnectedCallback","removeEventListener","_a","destroy","undefined","hasValue","updateFormValue","start","end","Date","formattedValue","toISOString","join","setFormValue","name","setAttribute","removeAttribute","render","errorId","warningId","anchorId","descriptionId","placeholder","getPlaceholder","showClearButton","START","END","NONE","html","classMap","getDateRangePickerClasses","preventFlatpickrOpen","_isInvalid","handleInputClickEvent","handleInputFocusEvent","_handleClear","unsafeSVG","clearIcon","calendarIcon","renderValidationMessage","invalidText","key","errorIcon","_internalValidationMsg","parseDateString","dateStr","trim","isNaN","getTime","parts","split","datePart","timePart","ampm","toUpperCase","dateTokens","map","Number","year","month","day","hours","minutes","seconds","timeComponents","parseInt","mins","token","pattern","test","firstUpdated","changedProperties","injectFlatpickrStyles","ShidokaFlatpickrTheme","updateEnableTime","updateComplete","setupAnchor","processedDates","processDefaultDates","updated","has","updateFlatpickrOptions","close","setInitialDates","processedDate","then","input","redraw","newValue","v","clear","currentDates","selectedDates","_b","_c","dates","requestUpdate","syncAllowInput","readOnly","normalizeToDate","d","validDates","filter","min","max","inRange","_clearInput","options","reinitFlatpickr","clearFlatpickrInput","emitValue","dateString","source","event","stopPropagation","handleClose","isConnected","initializeSingleAnchorFlatpickr","inputEl","getFlatpickrOptions","getComponentFlatpickrOptions","setCalendarAttributes","instance","calendarContainer","container","getModalContainer","document","body","hideEmptyYear","enableTime","mode","closeOnSelect","allowInput","loadLocale","onOpen","handleOpen","bind","onClose","onChange","handleDateChange","appendTo","noCalendar","static","origOnOpen","forEach","fn","firstDay","querySelector","focus","origOnReady","onReady","_sel","_str","target","classList","contains","sel","setDate","dateObj","applyDateRangeEditingRestrictions","iso","display","updateSelectedDateRangeAria","announcer","shadowRoot","getElementById","id","announcement","replace","toLocaleDateString","textContent","setShouldFlatpickrOpen","closeFlatpickr","handleInputClick","isOpen","open","handleInputFocus","interacted","report","HTMLInputElement","setValidity","shouldShowValidationErrors","selectedCount","validity","validationMessage","valueMissing","customError","isValid","reportValidity","getValue","selected","setValue","isClear","datesToSet","_label_decorators","property","type","String","_locale_decorators","_dateFormat_decorators","_defaultDate_decorators","_rangeEditMode_decorators","_defaultErrorMessage_decorators","_warnText_decorators","_disable_decorators","__processedDisableDates_decorators","state","_enable_decorators","_caption_decorators","_required_decorators","Boolean","_size_decorators","_dateRangePickerDisabled_decorators","_readonly_decorators","_twentyFourHourFormat_decorators","_minDate_decorators","_allowManualInput_decorators","_maxDate_decorators","_errorAriaLabel_decorators","_errorTitle_decorators","_warningAriaLabel_decorators","_warningTitle_decorators","_staticPosition_decorators","__enableTime_decorators","_flatpickrInstance_decorators","query","__hasInteracted_decorators","_textStrings_decorators","Object","__textStrings_decorators","__isClearing_decorators","__shouldFlatpickrOpen_decorators","__hasInitialDefaultDate_decorators","__esDecorate","kind","private","access","obj","get","metadata","_metadata","_defaultErrorMessage_extraInitializers","__inputEl_decorators","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","DateRangePickerStyles"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"daterangepicker.js","sources":["../../../../src/components/reusable/daterangepicker/daterangepicker.ts"],"sourcesContent":["import { html, LitElement, PropertyValues, unsafeCSS } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { FormMixin } from '../../../common/mixins/form-input';\nimport { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';\nimport { langsArray } from '../../../common/flatpickrLangs';\nimport { DateRangeEditableMode } from '../../../common/helpers/flatpickr';\nimport {\n injectFlatpickrStyles,\n initializeSingleAnchorFlatpickr,\n getFlatpickrOptions,\n getPlaceholder,\n preventFlatpickrOpen,\n handleInputClick,\n handleInputFocus,\n setCalendarAttributes,\n loadLocale,\n emitValue,\n updateEnableTime,\n hideEmptyYear,\n getModalContainer,\n applyDateRangeEditingRestrictions,\n clearFlatpickrInput,\n} from '../../../common/helpers/flatpickr';\nimport '../../reusable/button';\n\nimport { BaseOptions } from 'flatpickr/dist/types/options';\nimport type { Instance } from 'flatpickr/dist/types/instance';\n\nimport DateRangePickerStyles from './daterangepicker.scss?inline';\nimport ShidokaFlatpickrTheme from '../../../common/scss/shidoka-flatpickr-theme.scss?inline';\n\nimport errorIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/close-filled.svg';\nimport calendarIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/24/calendar.svg';\nimport clearIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/close-simple.svg';\n\ntype SupportedLocale = (typeof langsArray)[number];\n\nconst _defaultTextStrings = {\n requiredText: 'Required',\n clearAll: 'Clear',\n pleaseSelectDate: 'Please select a date',\n pleaseSelectValidDate: 'Please select a valid date',\n pleaseSelectBothDates: 'Please select a start and end date.',\n dateRange: 'Date range',\n noDateSelected: 'No dates selected',\n startDateSelected: 'Start date selected: {0}. Please select end date.',\n invalidDateRange:\n 'Invalid date range: End date cannot be earlier than start date',\n dateRangeSelected: 'Selected date range: {0} to {1}',\n\n lockedStartDate: 'Start date is locked',\n lockedEndDate: 'End date is locked',\n dateLocked: 'Date is locked',\n dateNotAvailable: 'Date is not available',\n dateInSelectedRange: 'Date is in selected range',\n};\n\n/**\n * Date Range Picker: uses Flatpickr library, range picker implementation -- `https://flatpickr.js.org/examples/#range-calendar`\n * @fires on-change - Emitted when the selected date range changes. Event.detail has the shape:\n * { dates: string[] | (Date | null)[] | null, dateString?: string, source?: string }\n * - dates: array of ISO strings for selected dates (length 1 or 2), or an array containing Date/null values,\n * or null/empty when cleared.\n * - dateString: the display string from the input (may be empty when cleared)\n * - source: 'clear' when the value was cleared; otherwise may be 'date-selection' or undefined.\n * @slot tooltip - Slot for tooltip.\n * @attr {string} [name=''] - The name of the input, used for form submission.\n * @attr {string} [invalidText=''] - The custom validation message when the input is invalid.\n */\n@customElement('kyn-date-range-picker')\nexport class DateRangePicker extends FormMixin(LitElement) {\n static override styles = [\n unsafeCSS(DateRangePickerStyles),\n unsafeCSS(ShidokaFlatpickrTheme),\n ];\n\n /** Label text. */\n @property({ type: String })\n accessor label = '';\n\n /** Sets and dynamically imports specific l10n calendar localization. */\n @property({ type: String })\n accessor locale: SupportedLocale | string = 'en';\n\n /** Sets flatpickr value to define how the date will be displayed in the input box (ex: `Y-m-d H:i`). */\n @property({ type: String })\n accessor dateFormat = 'Y-m-d';\n\n /** Sets the initial selected date(s). For range mode, provide an array of date strings matching dateFormat (e.g. [\"2024-01-01\", \"2024-01-07\"]). */\n @property({ type: Array })\n accessor defaultDate: string[] | null = null;\n\n /** Controls which parts of the date range are editable. */\n @property({ type: String })\n accessor rangeEditMode: DateRangeEditableMode = DateRangeEditableMode.BOTH;\n\n /** Sets default error message. */\n @property({ type: String })\n accessor defaultErrorMessage = '';\n\n /**\n * Current date range value for the component.\n *\n * - Uncontrolled: populated from `defaultDate` and user selections.\n * - Controlled: can be set from the host (e.g. Vue `:value`) as a tuple\n * `[startDate, endDate]`, where each entry is a `Date` or `null`.\n *\n * When both `defaultDate` and `value` are provided, `value` takes precedence.\n */\n override value: [Date | null, Date | null] = [null, null];\n\n /** Sets validation warning messaging. */\n @property({ type: String })\n accessor warnText = '';\n\n /** Sets flatpickr options setting to disable specific dates. Accepts array of dates in Y-m-d format, timestamps, or Date objects. */\n @property({ type: Array })\n accessor disable: (string | number | Date)[] = [];\n\n /** Internal storage for processed disable dates */\n @state()\n private accessor _processedDisableDates: (string | number | Date)[] = [];\n\n /** Sets flatpickr options setting to enable specific dates. */\n @property({ type: Array })\n accessor enable: (string | number | Date)[] = [];\n\n /** Sets caption to be displayed under primary date picker elements. */\n @property({ type: String })\n accessor caption = '';\n\n /** Sets date range picker form input value to required. */\n @property({ type: Boolean })\n accessor required = false;\n\n /** Input size. \"sm\", \"md\", or \"lg\". */\n @property({ type: String })\n accessor size = 'md';\n\n /** Sets entire date range picker form element to enabled/disabled. */\n @property({ type: Boolean })\n accessor dateRangePickerDisabled = false;\n\n /** Sets entire date range picker form element to readonly. */\n @property({ type: Boolean })\n accessor readonly = false;\n\n /** Sets 24-hour formatting true/false.\n * Defaults to 12H for all `en-` locales and 24H for all other locales.\n */\n @property({ type: Boolean })\n accessor twentyFourHourFormat: boolean | null = null;\n\n /** Sets lower boundary of date range picker date selection. */\n @property({ type: String })\n accessor minDate: string | number | Date = '';\n\n /** Allows manual input of date/time string that matches dateFormat when true. */\n @property({ type: Boolean })\n accessor allowManualInput = false;\n\n /** Sets upper boundary of date range picker date selection. */\n @property({ type: String })\n accessor maxDate: string | number | Date = '';\n\n /** Sets aria label attribute for error message. */\n @property({ type: String })\n accessor errorAriaLabel = '';\n\n /** Sets title attribute for error message. */\n @property({ type: String })\n accessor errorTitle = '';\n\n /** Sets aria label attribute for warning message. */\n @property({ type: String })\n accessor warningAriaLabel = '';\n\n /** Sets title attribute for warning message. */\n @property({ type: String })\n accessor warningTitle = '';\n\n /** Sets whether the Flatpickr calendar UI should use static positioning. */\n @property({ type: Boolean })\n accessor staticPosition = false;\n\n /** Sets flatpickr enableTime value based on detected dateFormat.\n * @internal\n */\n @state()\n private accessor _enableTime = false;\n\n /** Flatpickr instantiation.\n * @internal\n */\n @state()\n private accessor flatpickrInstance: Instance | undefined;\n\n /**\n * Queries the input DOM element.\n * @internal\n */\n @query('input')\n private accessor _inputEl: HTMLInputElement | null = null;\n\n /**\n * Sets whether user has interacted with datepicker for error handling.\n * @internal\n */\n @state()\n private accessor _hasInteracted = false;\n\n /** Customizable text strings. */\n @property({ type: Object })\n accessor textStrings = _defaultTextStrings;\n\n /** Internal text strings.\n * @internal\n */\n @state()\n accessor _textStrings = { ..._defaultTextStrings };\n\n /** Tracks if we're in a clear operation to prevent duplicate events\n * @internal\n */\n @state()\n private accessor _isClearing = false;\n\n /** Control flag to prevent Flatpickr from opening when clicking caption, error, label, or warning elements.\n * @internal\n */\n @state()\n private accessor _shouldFlatpickrOpen = false;\n\n /** Track if we initially had a defaultDate when the component was first connected\n * @internal\n */\n @state()\n private accessor _hasInitialDefaultDate = false;\n\n /** Track initialization state\n * @internal\n */\n private _initialized = false;\n\n /** Track destroyed state\n * @internal\n */\n private _isDestroyed = false;\n\n /** Store submit event listener reference for cleanup\n * @internal\n */\n private _submitListener: ((e: SubmitEvent) => void) | null = null;\n\n private debounce<T extends (...args: unknown[]) => unknown>(\n func: T,\n wait: number\n ): (...args: Parameters<T>) => void {\n let timeout: number | null = null;\n\n return (...args: Parameters<T>) => {\n if (timeout !== null) {\n window.clearTimeout(timeout);\n }\n\n timeout = window.setTimeout(() => {\n void func(...args);\n timeout = null;\n }, wait);\n };\n }\n\n private debouncedUpdate = this.debounce(async () => {\n if (!this.flatpickrInstance || this._isDestroyed) return;\n try {\n await this.initializeFlatpickr();\n } catch (error) {\n if (\n process.env.NODE_ENV === 'development' &&\n error instanceof Error &&\n !error.message.includes('calendarContainer') &&\n !error.message.includes('selectedDates')\n ) {\n console.warn('DateRangePicker update info:', error.message);\n }\n }\n }, 100);\n\n private handleResize = this.debounce(async () => {\n if (this.flatpickrInstance && !this._isDestroyed) {\n try {\n await this.initializeFlatpickr();\n } catch (error) {\n if (\n process.env.NODE_ENV === 'development' &&\n error instanceof Error &&\n !error.message.includes('calendarContainer') &&\n !error.message.includes('selectedDates')\n ) {\n console.debug('DateRangePicker resize info:', error.message);\n }\n }\n }\n }, 250);\n\n private generateRandomId(prefix: string): string {\n return `${prefix}-${Math.random().toString(36).slice(2, 11)}`;\n }\n\n override connectedCallback() {\n super.connectedCallback();\n this.addEventListener('change', this._onChange);\n this.addEventListener('reset', this._handleFormReset);\n window.addEventListener('resize', this.handleResize);\n\n if (this._internals.form) {\n this._submitListener = (e: SubmitEvent) => {\n this._validate(true, true);\n if (!this._internals.checkValidity()) {\n e.preventDefault();\n }\n };\n this._internals.form.addEventListener('submit', this._submitListener);\n }\n\n if (\n (!this.value ||\n (Array.isArray(this.value) &&\n this.value.every((date) => date === null))) &&\n this.defaultDate\n ) {\n this._hasInitialDefaultDate = true;\n if (Array.isArray(this.defaultDate) && this.defaultDate.length === 1) {\n this._hasInteracted = true;\n }\n }\n }\n\n override disconnectedCallback() {\n this._isDestroyed = true;\n super.disconnectedCallback();\n this.removeEventListener('change', this._onChange);\n this.removeEventListener('reset', this._handleFormReset);\n window.removeEventListener('resize', this.handleResize);\n\n if (this._internals.form && this._submitListener) {\n this._internals.form.removeEventListener('submit', this._submitListener);\n this._submitListener = null;\n }\n\n this.flatpickrInstance?.destroy();\n this.flatpickrInstance = undefined;\n }\n\n private hasValue(): boolean {\n if (this._inputEl?.value) return true;\n if (this.value && Array.isArray(this.value) && this.value.length === 2) {\n return this.value[0] !== null || this.value[1] !== null;\n }\n if (this.defaultDate) {\n if (Array.isArray(this.defaultDate)) {\n return (\n this.defaultDate.length > 0 &&\n !this.defaultDate.every((date) => !date || date === '')\n );\n }\n return !!this.defaultDate;\n }\n return false;\n }\n\n private updateFormValue() {\n if (!this._internals || !this._inputEl) return;\n\n const [start, end] = this.value;\n\n if (start instanceof Date && end instanceof Date) {\n const formattedValue = [start.toISOString(), end.toISOString()].join(',');\n this._internals.setFormValue(formattedValue);\n\n if (this.name) {\n this._inputEl.setAttribute('value', formattedValue);\n }\n } else {\n this._internals.setFormValue('');\n if (this.name) {\n this._inputEl.removeAttribute('value');\n }\n }\n }\n\n override render() {\n const errorId = `${this.name}-error-message`;\n const warningId = `${this.name}-warning-message`;\n const anchorId = this.name\n ? this.generateRandomId(this.name)\n : this.generateRandomId('date-range-picker');\n const descriptionId = this.name ?? '';\n const placeholder = getPlaceholder(this.dateFormat, true);\n\n const showClearButton =\n this.hasValue() &&\n !this.readonly &&\n this.rangeEditMode !== DateRangeEditableMode.START &&\n this.rangeEditMode !== DateRangeEditableMode.END &&\n this.rangeEditMode !== DateRangeEditableMode.NONE;\n return html`\n <div class=${classMap(this.getDateRangePickerClasses())}>\n <div\n class=\"label-text\"\n ?readonly=${this.readonly}\n @mousedown=${this.preventFlatpickrOpen}\n @click=${this.preventFlatpickrOpen}\n aria-disabled=${this.dateRangePickerDisabled ? 'true' : 'false'}\n id=${`label-${anchorId}`}\n >\n ${this.required\n ? html`<abbr\n class=\"required\"\n title=${this._textStrings.requiredText}\n role=\"img\"\n aria-label=${this._textStrings.requiredText}\n >\n *\n </abbr>`\n : null}\n ${this.label}\n <slot name=\"tooltip\"></slot>\n </div>\n\n <div class=\"input-wrapper\">\n <input\n class=\"${classMap({\n [`size--${this.size}`]: true,\n 'input-custom': true,\n 'is-readonly': this.readonly,\n })}\"\n type=\"text\"\n id=${anchorId}\n name=${this.name}\n placeholder=${placeholder}\n ?disabled=${this.dateRangePickerDisabled}\n ?readonly=${!this.dateRangePickerDisabled && this.readonly}\n ?required=${this.required}\n ?invalid=${this._isInvalid}\n aria-invalid=${this._isInvalid ? 'true' : 'false'}\n aria-labelledby=${`label-${anchorId}`}\n autocomplete=\"off\"\n @click=${this.handleInputClickEvent}\n @focus=${this.handleInputFocusEvent}\n />\n ${showClearButton\n ? html`<kyn-button\n ?disabled=${this.dateRangePickerDisabled}\n class=\"clear-button\"\n kind=\"ghost\"\n size=\"small\"\n description=${this._textStrings.clearAll}\n @click=${this._handleClear}\n >\n <span style=\"display:flex;\" slot=\"icon\">\n ${unsafeSVG(clearIcon)}\n </span>\n </kyn-button>`\n : html`<span\n class=\"input-icon ${this.dateRangePickerDisabled\n ? 'is-disabled'\n : ''}\"\n aria-hidden=\"true\"\n @click=${this.handleInputClickEvent}\n >\n ${unsafeSVG(calendarIcon)}\n </span>`}\n </div>\n\n <div\n id=${`${anchorId}-announcer`}\n class=\"sr-only\"\n aria-live=\"polite\"\n ></div>\n\n ${this.caption\n ? html`<div\n id=${descriptionId}\n class=\"caption\"\n aria-disabled=${this.dateRangePickerDisabled ? 'true' : 'false'}\n @mousedown=${this.preventFlatpickrOpen}\n @click=${this.preventFlatpickrOpen}\n >\n ${this.caption}\n </div>`\n : ''}\n ${this.renderValidationMessage(errorId, warningId)}\n </div>\n `;\n }\n\n private renderValidationMessage(errorId: string, warningId: string) {\n if (this.dateRangePickerDisabled) return null;\n\n if (this.invalidText || (this._isInvalid && this._hasInteracted)) {\n return html`\n <div\n id=${errorId}\n class=\"error error-text\"\n role=\"alert\"\n title=${this.errorTitle || 'Error'}\n @mousedown=${this.preventFlatpickrOpen}\n @click=${this.preventFlatpickrOpen}\n tabindex=\"0\"\n @keydown=${(e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n this.preventFlatpickrOpen(e);\n }\n }}\n >\n <span\n class=\"error-icon\"\n role=\"img\"\n aria-label=${this.errorAriaLabel || 'Error message icon'}\n >\n ${unsafeSVG(errorIcon)}\n </span>\n ${this.invalidText ||\n this._internalValidationMsg ||\n this.defaultErrorMessage}\n </div>\n `;\n }\n\n if (this.warnText) {\n return html`\n <div\n id=${warningId}\n class=\"warn warn-text\"\n role=\"alert\"\n aria-label=${this.warningAriaLabel || 'Warning message'}\n title=${this.warningTitle || 'Warning'}\n @mousedown=${this.preventFlatpickrOpen}\n @click=${this.preventFlatpickrOpen}\n tabindex=\"0\"\n @keydown=${(e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n this.preventFlatpickrOpen(e);\n }\n }}\n >\n ${this.warnText}\n </div>\n `;\n }\n\n return null;\n }\n\n private getDateRangePickerClasses() {\n return {\n 'date-range-picker': true,\n 'date-range-picker__enable-time': this._enableTime,\n 'date-range-picker__disabled': this.dateRangePickerDisabled,\n };\n }\n\n private parseDateString(dateStr: string): Date | null {\n if (!dateStr || !dateStr.trim()) return null;\n dateStr = dateStr.trim();\n\n const dateFormat = this.dateFormat || 'Y-m-d';\n\n if (dateStr.includes('T')) {\n const date = new Date(dateStr);\n return isNaN(date.getTime()) ? null : date;\n }\n\n if (dateStr.includes(' ')) {\n const parts = dateStr.split(/\\s+/);\n const datePart = parts[0];\n const timePart = parts[1] || '';\n let ampm = parts[2] ? parts[2].toUpperCase() : undefined;\n const dateTokens = datePart.split('-').map(Number);\n let year: number, month: number, day: number;\n\n switch (dateFormat) {\n case 'Y-m-d':\n [year, month, day] = dateTokens;\n break;\n case 'm-d-Y':\n [month, day, year] = dateTokens;\n break;\n case 'd-m-Y':\n [day, month, year] = dateTokens;\n break;\n default:\n [year, month, day] = dateTokens;\n }\n\n if (!year || !month || !day) return null;\n\n let hours = 0;\n let minutes = 0;\n let seconds = 0;\n\n if (timePart) {\n const timeComponents = timePart.split(':');\n hours = parseInt(timeComponents[0], 10);\n\n if (timeComponents.length > 1) {\n if (timeComponents[1].includes(' ')) {\n const [mins, token] = timeComponents[1].split(' ');\n minutes = parseInt(mins, 10);\n ampm = token ? token.toUpperCase() : ampm;\n } else {\n minutes = parseInt(timeComponents[1], 10);\n }\n }\n\n if (timeComponents.length > 2) {\n seconds = parseInt(timeComponents[2], 10);\n }\n\n if (ampm) {\n if (ampm === 'PM' && hours < 12) {\n hours += 12;\n } else if (ampm === 'AM' && hours === 12) {\n hours = 0;\n }\n }\n }\n\n const date = new Date(year, month - 1, day, hours, minutes, seconds);\n return isNaN(date.getTime()) ? null : date;\n }\n\n const formats: { [key: string]: RegExp } = {\n 'Y-m-d': /^\\d{4}-\\d{2}-\\d{2}$/,\n 'm-d-Y': /^\\d{2}-\\d{2}-\\d{4}$/,\n 'd-m-Y': /^\\d{2}-\\d{2}-\\d{4}$/,\n 'Y-m-d h:i K': /^\\d{4}-\\d{2}-\\d{2}( \\d{1,2}:\\d{2} [AP]M)?$/,\n };\n const pattern = formats[dateFormat];\n if (!pattern || !pattern.test(dateStr)) return null;\n\n const datePart = dateStr.split(' ')[0];\n const dateTokens = datePart.split('-').map(Number);\n let year: number, month: number, day: number;\n\n switch (dateFormat) {\n case 'Y-m-d':\n [year, month, day] = dateTokens;\n break;\n case 'm-d-Y':\n [month, day, year] = dateTokens;\n break;\n case 'd-m-Y':\n [day, month, year] = dateTokens;\n break;\n default:\n [year, month, day] = dateTokens;\n }\n\n if (!year || !month || !day) return null;\n const date = new Date(year, month - 1, day);\n return isNaN(date.getTime()) ? null : date;\n }\n\n override async firstUpdated(changedProperties: PropertyValues) {\n super.firstUpdated(changedProperties);\n if (!this._initialized) {\n injectFlatpickrStyles(ShidokaFlatpickrTheme.toString());\n this._initialized = true;\n\n this._enableTime = updateEnableTime(this.dateFormat);\n\n await this.updateComplete;\n this.setupAnchor();\n\n const valueEmpty =\n !this.value ||\n (this.value.length === 2 &&\n this.value[0] === null &&\n this.value[1] === null);\n\n if (valueEmpty && this._hasInitialDefaultDate && this.defaultDate) {\n const processedDates = this.processDefaultDates(this.defaultDate);\n if (processedDates && processedDates.length > 0) {\n if (processedDates.length === 1) {\n this.value = [processedDates[0], null];\n this._hasInteracted = true;\n } else if (processedDates.length >= 2) {\n this.value = [processedDates[0], processedDates[1]];\n }\n\n if (this.value[0] !== null || this.value[1] !== null) {\n this.updateFormValue();\n }\n\n this._validate(true, false);\n }\n }\n\n setTimeout(() => {\n if (Array.isArray(this.defaultDate) && this.defaultDate.length === 1) {\n this._hasInteracted = true;\n this._validate(true, false);\n } else if (\n this.value.length === 2 &&\n ((this.value[0] !== null && this.value[1] === null) ||\n (this.value[0] === null && this.value[1] !== null))\n ) {\n this._hasInteracted = true;\n this._validate(true, false);\n }\n }, 0);\n }\n }\n\n override updated(changedProperties: PropertyValues) {\n super.updated(changedProperties);\n\n if (changedProperties.has('textStrings')) {\n this._textStrings = { ..._defaultTextStrings, ...this.textStrings };\n\n if (\n this.flatpickrInstance &&\n this.rangeEditMode !== DateRangeEditableMode.BOTH\n ) {\n this.updateFlatpickrOptions();\n }\n }\n\n if (\n (changedProperties.has('dateRangePickerDisabled') &&\n this.dateRangePickerDisabled) ||\n (changedProperties.has('readonly') && this.readonly)\n ) {\n if (this.dateRangePickerDisabled || this.readonly) {\n this.flatpickrInstance?.close();\n return;\n } else if (this.value[0] && this.value[1]) {\n this.setInitialDates();\n }\n }\n\n if (changedProperties.has('rangeEditMode') && this.flatpickrInstance) {\n if (Array.isArray(this.defaultDate) && this.defaultDate.length === 2) {\n if (\n this.rangeEditMode === DateRangeEditableMode.START &&\n !this.defaultDate[0] &&\n this.defaultDate[1]\n ) {\n const processedDate = this.processDefaultDates([this.defaultDate[1]]);\n if (processedDate.length === 1) {\n this.value = [null, processedDate[0]];\n }\n } else if (\n this.rangeEditMode === DateRangeEditableMode.END &&\n this.defaultDate[0] &&\n !this.defaultDate[1]\n ) {\n const processedDate = this.processDefaultDates([this.defaultDate[0]]);\n if (processedDate.length === 1) {\n this.value = [processedDate[0], null];\n }\n }\n }\n\n this.flatpickrInstance.destroy();\n setTimeout(() => {\n this.initializeFlatpickr().then(() => {\n if (this._inputEl && this.flatpickrInstance) {\n this._inputEl.value = this.flatpickrInstance.input.value;\n this.flatpickrInstance.redraw();\n this.updateFormValue();\n }\n });\n }, 0);\n }\n\n if (\n changedProperties.has('value') &&\n !this.dateRangePickerDisabled &&\n this.flatpickrInstance &&\n !this._isClearing\n ) {\n const newValue = this.value;\n if (newValue.every((v) => v === null)) {\n this._isClearing = true;\n this.flatpickrInstance.clear();\n this._isClearing = false;\n\n if (this._inputEl) {\n this._inputEl.value = '';\n this.updateFormValue();\n }\n\n // no dates selected\n this.updateSelectedDateRangeAria([]);\n } else {\n const currentDates = this.flatpickrInstance.selectedDates;\n if (\n currentDates.length !== 2 ||\n !currentDates[0] ||\n !currentDates[1] ||\n currentDates[0].getTime() !== newValue[0]?.getTime() ||\n currentDates[1].getTime() !== newValue[1]?.getTime()\n ) {\n this.setInitialDates();\n }\n\n const announcedDates =\n this.flatpickrInstance.selectedDates.length > 0\n ? this.flatpickrInstance.selectedDates\n : newValue.filter((d): d is Date => d instanceof Date);\n\n if (announcedDates.length > 0) {\n this.updateSelectedDateRangeAria(announcedDates);\n }\n\n if (\n (newValue[0] !== null && newValue[1] === null) ||\n (newValue[0] === null && newValue[1] !== null)\n ) {\n this._hasInteracted = true;\n this._validate(true, false);\n }\n }\n }\n\n if (changedProperties.has('defaultDate')) {\n if (this.defaultDate && this.value.every((v) => v === null)) {\n const dates = this.processDefaultDates(this.defaultDate);\n this.value =\n dates.length === 2\n ? ([dates[0], dates[1]] as [Date, Date])\n : dates.length === 1\n ? ([dates[0], null] as [Date, null])\n : ([null, null] as [null, null]);\n\n if (Array.isArray(this.defaultDate) && this.defaultDate.length === 2) {\n if (\n this.rangeEditMode === DateRangeEditableMode.START &&\n !this.defaultDate[0] &&\n this.defaultDate[1]\n ) {\n const processedDate = this.processDefaultDates([\n this.defaultDate[1],\n ]);\n if (processedDate.length === 1) {\n this.value = [null, processedDate[0]];\n }\n } else if (\n this.rangeEditMode === DateRangeEditableMode.END &&\n this.defaultDate[0] &&\n !this.defaultDate[1]\n ) {\n const processedDate = this.processDefaultDates([\n this.defaultDate[0],\n ]);\n if (processedDate.length === 1) {\n this.value = [processedDate[0], null];\n }\n }\n }\n\n this.updateFormValue();\n this.requestUpdate();\n }\n\n if (this.flatpickrInstance) {\n this.flatpickrInstance.destroy();\n this.initializeFlatpickr().then(() => {\n if (this._inputEl && this.flatpickrInstance) {\n this._inputEl.value = this.flatpickrInstance.input.value;\n this.flatpickrInstance.redraw();\n this.updateFormValue();\n }\n });\n }\n }\n\n if (changedProperties.has('disable')) {\n if (Array.isArray(this.disable)) {\n this._processedDisableDates = this.disable.map((date) => {\n if (date instanceof Date) return date;\n if (typeof date === 'number') return new Date(date);\n if (typeof date === 'string') {\n const [year, month, day] = date.split('-').map(Number);\n if (!isNaN(year) && !isNaN(month) && !isNaN(day)) {\n return new Date(year, month - 1, day);\n }\n }\n return date;\n });\n } else {\n this._processedDisableDates = [];\n }\n if (this.flatpickrInstance) {\n this.updateFlatpickrOptions();\n }\n }\n\n if (\n (changedProperties.has('dateFormat') ||\n changedProperties.has('minDate') ||\n changedProperties.has('maxDate') ||\n changedProperties.has('locale') ||\n changedProperties.has('twentyFourHourFormat')) &&\n this.flatpickrInstance &&\n !this._isClearing\n ) {\n this._enableTime = updateEnableTime(this.dateFormat);\n this.updateFlatpickrOptions();\n }\n\n if (changedProperties.has('allowManualInput')) {\n this.syncAllowInput();\n }\n }\n\n private syncAllowInput(): void {\n if (!this.flatpickrInstance) return;\n this.flatpickrInstance.set('allowInput', this.allowManualInput);\n if (!this.readonly && this._inputEl) {\n this._inputEl.readOnly = !this.allowManualInput;\n }\n }\n\n private async setupAnchor() {\n if (!this._inputEl) {\n return;\n }\n\n try {\n await this.initializeFlatpickr();\n } catch (error) {\n console.error('Error setting up flatpickr:', error);\n }\n }\n\n private normalizeToDate(value: string | number | Date | ''): Date | null {\n if (!value) return null;\n\n if (value instanceof Date) {\n return isNaN(value.getTime()) ? null : value;\n }\n\n if (typeof value === 'number') {\n const d = new Date(value);\n return isNaN(d.getTime()) ? null : d;\n }\n\n if (typeof value === 'string') {\n return this.parseDateString(value);\n }\n\n return null;\n }\n\n private processDefaultDates(\n defaultDate: string | string[] | Date | Date[] | null\n ): Date[] {\n if (!defaultDate) return [];\n\n const rawValues = Array.isArray(defaultDate) ? defaultDate : [defaultDate];\n\n const parsed = rawValues.map((d) => {\n if (d instanceof Date) return d;\n if (typeof d === 'string') return this.parseDateString(d);\n return null;\n });\n\n const validDates = parsed.filter(\n (date): date is Date => date instanceof Date && !isNaN(date.getTime())\n );\n\n if (validDates.length === 2 && validDates[1] < validDates[0]) {\n console.error(\n 'Invalid date range: End date cannot be earlier than start date'\n );\n this.invalidText = this._textStrings.invalidDateRange;\n return [validDates[0]];\n }\n\n const min = this.normalizeToDate(this.minDate);\n const max = this.normalizeToDate(this.maxDate);\n\n const inRange = validDates.filter((d) => {\n return (!min || d >= min) && (!max || d <= max);\n });\n\n if (inRange.length !== validDates.length) {\n console.error('Invalid date(s) provided in defaultDate', inRange);\n this.invalidText = this._textStrings.pleaseSelectValidDate;\n this.defaultDate = null;\n }\n\n return inRange;\n }\n\n private async _clearInput(\n options: { reinitFlatpickr?: boolean } = { reinitFlatpickr: true }\n ) {\n if (this.rangeEditMode === DateRangeEditableMode.NONE) {\n return;\n }\n\n const newValue: [Date | null, Date | null] = [null, null];\n const preservedDateExists = false;\n\n this.value = newValue;\n this.defaultDate = null;\n\n if (preservedDateExists) {\n if (this.flatpickrInstance) {\n this.flatpickrInstance.clear();\n\n const datesToSet = newValue.filter(\n (date): date is Date => date !== null\n );\n if (datesToSet.length > 0) {\n this.flatpickrInstance.setDate(datesToSet, true);\n }\n }\n\n this.updateFormValue();\n } else {\n await clearFlatpickrInput(\n this.flatpickrInstance,\n this._inputEl ?? undefined,\n () => {\n this.updateFormValue();\n }\n );\n }\n\n this.updateSelectedDateRangeAria([]);\n\n emitValue(this, 'on-change', {\n dates: this.value,\n dateString: this._inputEl?.value,\n source: 'clear',\n });\n\n this._validate(true, false);\n await this.updateComplete;\n\n if (options.reinitFlatpickr) {\n await this.initializeFlatpickr();\n this.requestUpdate();\n }\n }\n\n private async _handleClear(event: Event) {\n event.preventDefault();\n event.stopPropagation();\n this._isClearing = true;\n try {\n await this._clearInput();\n } finally {\n this._isClearing = false;\n }\n }\n\n public async handleClose() {\n this._hasInteracted = true;\n this._validate(true, false);\n await this.updateComplete;\n }\n\n public async initializeFlatpickr() {\n if (this._isDestroyed) {\n return;\n }\n\n if (!this._inputEl || !this._inputEl.isConnected) {\n console.warn(\n 'Cannot initialize Flatpickr: input element not available or not connected to DOM'\n );\n return;\n }\n\n if (!this.dateFormat) {\n console.warn('Date format not set, using default Y-m-d');\n this.dateFormat = 'Y-m-d';\n }\n\n try {\n this.flatpickrInstance?.destroy();\n this.flatpickrInstance = await initializeSingleAnchorFlatpickr({\n inputEl: this._inputEl,\n getFlatpickrOptions: () => this.getComponentFlatpickrOptions(),\n setCalendarAttributes: (instance) => {\n try {\n if (!instance?.calendarContainer) {\n throw new Error('Calendar container not available');\n }\n const container = getModalContainer(this);\n setCalendarAttributes(instance, container !== document.body);\n instance.calendarContainer.setAttribute(\n 'aria-label',\n 'Date range calendar'\n );\n } catch (error) {\n console.warn('Error setting calendar attributes:', error);\n }\n },\n setInitialDates: () => this.setInitialDates(),\n });\n\n if (!this.flatpickrInstance) {\n throw new Error('Failed to initialize Flatpickr instance');\n }\n\n hideEmptyYear();\n this._validate(false, false);\n } catch (error) {\n console.error('Error initializing Flatpickr:', error);\n\n if (error instanceof Error) {\n console.error('Error details:', error.message);\n }\n }\n }\n\n public async updateFlatpickrOptions() {\n if (!this.flatpickrInstance) {\n console.warn('Cannot update options: Flatpickr instance not available');\n return;\n }\n await this.debouncedUpdate();\n }\n\n public async getComponentFlatpickrOptions(): Promise<Partial<BaseOptions>> {\n if (!this.dateFormat) {\n this.dateFormat = 'Y-m-d';\n }\n\n if (!this._inputEl) {\n return {};\n }\n\n const container = getModalContainer(this);\n const options = await getFlatpickrOptions({\n locale: this.locale || 'en',\n dateFormat: this.dateFormat,\n defaultDate: this.defaultDate ?? undefined,\n enableTime: this._enableTime,\n twentyFourHourFormat: this.twentyFourHourFormat ?? undefined,\n inputEl: this._inputEl,\n minDate: this.minDate,\n maxDate: this.maxDate,\n enable: this.enable,\n disable: this._processedDisableDates,\n mode: 'range',\n closeOnSelect: false,\n allowInput: this.allowManualInput,\n loadLocale,\n onOpen: this.handleOpen.bind(this),\n onClose: this.handleClose.bind(this),\n onChange: this.handleDateChange.bind(this),\n appendTo: container,\n noCalendar: false,\n static: this.staticPosition,\n });\n\n const origOnOpen = options.onOpen;\n options.onOpen = (selectedDates, dateStr, instance) => {\n if (typeof origOnOpen === 'function') {\n origOnOpen(selectedDates, dateStr, instance);\n } else if (Array.isArray(origOnOpen)) {\n origOnOpen.forEach((fn) => fn(selectedDates, dateStr, instance));\n }\n setTimeout(() => {\n const firstDay = instance.calendarContainer.querySelector<HTMLElement>(\n '.flatpickr-day:not(.flatpickr-disabled)'\n );\n if (firstDay) firstDay.focus();\n }, 0);\n };\n\n const origOnReady = options.onReady;\n options.onReady = (_sel, _str, instance) => {\n if (typeof origOnReady === 'function') {\n origOnReady(_sel, _str, instance);\n } else if (Array.isArray(origOnReady)) {\n origOnReady.forEach((fn) => fn(_sel, _str, instance));\n }\n const handler = (e: KeyboardEvent) => {\n if (e.key !== 'Enter') return;\n const target = e.target as HTMLElement & { dateObj: Date };\n if (\n !target.classList.contains('flatpickr-day') ||\n target.classList.contains('flatpickr-disabled')\n ) {\n return;\n }\n e.preventDefault();\n const sel = instance.selectedDates;\n if (sel.length === 0) {\n instance.setDate([target.dateObj], true);\n } else if (sel.length === 1) {\n instance.setDate([sel[0], target.dateObj], true);\n instance.close();\n }\n };\n instance.calendarContainer.addEventListener('keydown', handler);\n };\n\n if (this.rangeEditMode !== DateRangeEditableMode.BOTH) {\n return applyDateRangeEditingRestrictions(\n options,\n this.rangeEditMode,\n this.value,\n {\n lockedStartDate: this._textStrings.lockedStartDate,\n lockedEndDate: this._textStrings.lockedEndDate,\n dateLocked: this._textStrings.dateLocked,\n dateNotAvailable: this._textStrings.dateNotAvailable,\n dateInSelectedRange: this._textStrings.dateInSelectedRange,\n }\n );\n }\n\n return options;\n }\n\n public setInitialDates() {\n if (!this.flatpickrInstance) return;\n\n try {\n if (!this.dateFormat) {\n this.dateFormat = 'Y-m-d';\n }\n\n const hasValidValue =\n Array.isArray(this.value) &&\n this.value.length === 2 &&\n (this.value[0] !== null || this.value[1] !== null);\n\n if (!hasValidValue && this.defaultDate) {\n const validDates = this.processDefaultDates(this.defaultDate);\n if (validDates.length === 2) {\n this.flatpickrInstance.setDate(validDates, true);\n this.flatpickrInstance.redraw();\n this.value = validDates as [Date, Date];\n this._inputEl!.value = this.flatpickrInstance.input.value;\n this.updateFormValue();\n } else if (validDates.length === 1) {\n this.flatpickrInstance.setDate([validDates[0]], true);\n this.flatpickrInstance.redraw();\n this.value = [validDates[0], null];\n this._inputEl!.value = this.flatpickrInstance.input.value;\n this.updateFormValue();\n this._validate(true, false);\n }\n return;\n }\n\n if (Array.isArray(this.value) && this.value.length === 2) {\n const validDates = (this.value as (string | Date)[])\n .map((d) => (d instanceof Date ? d : this.parseDateString(d)))\n .filter((d): d is Date => d !== null);\n\n if (validDates.length === 2) {\n this.flatpickrInstance.setDate(validDates, true);\n this.flatpickrInstance.redraw();\n this._inputEl!.value = this.flatpickrInstance.input.value;\n this.updateFormValue();\n }\n }\n } catch (e) {\n console.error('Error in setInitialDates:', (e as Error).message);\n }\n }\n\n public handleOpen() {\n if (this.readonly) {\n this.flatpickrInstance?.close();\n return;\n }\n\n this._shouldFlatpickrOpen = true;\n this._isInvalid = false;\n this.requestUpdate();\n }\n\n public async handleDateChange(selectedDates: Date[], dateStr: string) {\n this._hasInteracted = true;\n\n if (this._isClearing) return;\n\n if (selectedDates.length === 0) {\n this.value = [null, null];\n if (this._inputEl) {\n this._inputEl.value = '';\n this.updateFormValue();\n }\n emitValue(this, 'on-change', { dates: this.value, source: 'clear' });\n } else if (selectedDates.length === 1) {\n this.value = [selectedDates[0], null];\n\n if (this._inputEl) {\n this._inputEl.value = dateStr;\n this.updateFormValue();\n }\n\n emitValue(this, 'on-change', {\n dates: [selectedDates[0].toISOString()],\n dateString: dateStr,\n source: 'date-selection',\n });\n } else {\n this.value = [selectedDates[0], selectedDates[1]];\n const iso = selectedDates.map((d) => d.toISOString());\n const display = this.flatpickrInstance!.input.value;\n if (this._inputEl) {\n this._inputEl.value = display;\n this.updateFormValue();\n }\n emitValue(this, 'on-change', {\n dates: iso,\n dateString: display,\n source: 'date-selection',\n });\n }\n\n this.updateSelectedDateRangeAria(selectedDates);\n this._validate(true, false);\n }\n\n private updateSelectedDateRangeAria(selectedDates: Date[]) {\n if (!this._inputEl) return;\n const announcer = this.shadowRoot?.getElementById(\n `${this._inputEl.id}-announcer`\n );\n\n if (!announcer) return;\n\n let announcement = '';\n\n if (selectedDates.length === 0) {\n announcement = this._textStrings.noDateSelected;\n } else if (selectedDates.length === 1) {\n announcement = this._textStrings.startDateSelected.replace(\n '{0}',\n selectedDates[0].toLocaleDateString(this.locale)\n );\n } else {\n announcement = this._textStrings.dateRangeSelected\n .replace('{0}', selectedDates[0].toLocaleDateString(this.locale))\n .replace('{1}', selectedDates[1].toLocaleDateString(this.locale));\n }\n\n announcer.textContent = announcement;\n }\n\n private setShouldFlatpickrOpen(value: boolean) {\n this._shouldFlatpickrOpen = value;\n }\n\n private closeFlatpickr() {\n this.flatpickrInstance?.close();\n }\n\n private preventFlatpickrOpen(event: Event) {\n preventFlatpickrOpen(event, this.setShouldFlatpickrOpen.bind(this));\n }\n\n private handleInputClickEvent() {\n try {\n this._shouldFlatpickrOpen = true;\n\n handleInputClick(this.setShouldFlatpickrOpen.bind(this));\n\n if (\n this.flatpickrInstance &&\n !this.flatpickrInstance.isOpen &&\n !this.readonly &&\n !this.dateRangePickerDisabled\n ) {\n setTimeout(() => {\n if (this.flatpickrInstance && !this.flatpickrInstance.isOpen) {\n this.flatpickrInstance.open();\n }\n }, 0);\n }\n } catch (e) {\n console.warn('Error handling input click event:', e);\n }\n }\n\n private handleInputFocusEvent() {\n try {\n this._shouldFlatpickrOpen = true;\n\n handleInputFocus(\n this._shouldFlatpickrOpen,\n this.closeFlatpickr.bind(this),\n this.setShouldFlatpickrOpen.bind(this)\n );\n\n if (\n this.flatpickrInstance &&\n !this.flatpickrInstance.isOpen &&\n !this.readonly &&\n !this.dateRangePickerDisabled\n ) {\n setTimeout(() => {\n if (this.flatpickrInstance && !this.flatpickrInstance.isOpen) {\n this.flatpickrInstance.open();\n }\n }, 0);\n }\n } catch (e) {\n console.warn('Error handling input focus event:', e);\n }\n }\n\n private _validate(interacted: boolean, report: boolean) {\n if (!this._inputEl || !(this._inputEl instanceof HTMLInputElement)) return;\n\n if (this.dateRangePickerDisabled) {\n this._internals.setValidity({}, '', this._inputEl);\n this._isInvalid = false;\n this._internalValidationMsg = '';\n return;\n }\n\n if (interacted) {\n this._hasInteracted = true;\n }\n\n const shouldShowValidationErrors =\n this._hasInteracted || report || !!this.invalidText;\n\n const selectedCount = [this.value[0], this.value[1]].filter(\n (d) => d !== null\n ).length;\n let validity = this._inputEl.validity;\n let validationMessage = this._inputEl.validationMessage;\n\n if (this.flatpickrInstance?.isOpen) {\n validity = { ...validity, valueMissing: false, customError: false };\n validationMessage = '';\n } else if (selectedCount === 1) {\n validity = { ...validity, customError: true };\n validationMessage = this._textStrings.pleaseSelectBothDates;\n } else if (this.required && selectedCount === 0) {\n validity = { ...validity, valueMissing: true };\n validationMessage =\n this.defaultErrorMessage || this._textStrings.pleaseSelectDate;\n } else {\n validity = { ...validity, valueMissing: false, customError: false };\n validationMessage = '';\n }\n\n if (this.invalidText) {\n validity = { ...validity, customError: true };\n validationMessage = this.invalidText;\n }\n\n const isValid = !validity.valueMissing && !validity.customError;\n if (!isValid && !validationMessage) {\n validationMessage = this._textStrings.pleaseSelectValidDate;\n }\n\n this._internals.setValidity(validity, validationMessage, this._inputEl);\n\n this._isInvalid = !isValid && shouldShowValidationErrors;\n this._internalValidationMsg = validationMessage;\n\n if (report) this._internals.reportValidity();\n this.requestUpdate();\n }\n\n private _onChange() {\n this._validate(true, false);\n }\n\n private _handleFormReset() {\n this.value = [null, null];\n this.flatpickrInstance?.clear();\n this._hasInteracted = false;\n this._validate(false, false);\n\n this.updateSelectedDateRangeAria([]);\n }\n\n public getValue(): [Date | null, Date | null] {\n if (this.flatpickrInstance) {\n const selected = this.flatpickrInstance.selectedDates;\n\n const start = selected[0] ?? null;\n const end = selected[1] ?? null;\n\n return [start, end];\n }\n\n return this.value;\n }\n\n public setValue(newValue: [Date | null, Date | null]): void {\n const isClear =\n !newValue ||\n (Array.isArray(newValue) && newValue.every((d) => d === null));\n\n this._isClearing = isClear;\n\n try {\n if (this.flatpickrInstance) {\n if (isClear) {\n this.flatpickrInstance.clear();\n } else {\n const datesToSet = newValue.filter(\n (d): d is Date => d instanceof Date\n );\n this.flatpickrInstance.setDate(datesToSet, true);\n }\n\n const selected = this.flatpickrInstance.selectedDates;\n const start = selected[0] ?? null;\n const end = selected[1] ?? null;\n\n this.value = [start, end];\n\n if (this._inputEl) {\n if (isClear) {\n this._inputEl.value = '';\n } else {\n this._inputEl.value = this.flatpickrInstance.input.value;\n }\n this.updateFormValue();\n }\n\n if (isClear) {\n this.updateSelectedDateRangeAria([]);\n } else {\n this.updateSelectedDateRangeAria(selected);\n }\n } else {\n this.value = newValue;\n }\n\n this.requestUpdate('value');\n } finally {\n this._isClearing = false;\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-date-range-picker': DateRangePicker;\n }\n}\n"],"names":["_defaultTextStrings","requiredText","clearAll","pleaseSelectDate","pleaseSelectValidDate","pleaseSelectBothDates","dateRange","noDateSelected","startDateSelected","invalidDateRange","dateRangeSelected","lockedStartDate","lockedEndDate","dateLocked","dateNotAvailable","dateInSelectedRange","DateRangePicker","customElement","FormMixin","LitElement","_classThis","_classSuper","_DateRangePicker_label_accessor_storage","set","this","__runInitializers","_label_initializers","_DateRangePicker_locale_accessor_storage","_label_extraInitializers","_locale_initializers","_DateRangePicker_dateFormat_accessor_storage","_locale_extraInitializers","_dateFormat_initializers","_DateRangePicker_defaultDate_accessor_storage","_dateFormat_extraInitializers","_defaultDate_initializers","_DateRangePicker_rangeEditMode_accessor_storage","_defaultDate_extraInitializers","_rangeEditMode_initializers","DateRangeEditableMode","BOTH","_DateRangePicker_defaultErrorMessage_accessor_storage","_rangeEditMode_extraInitializers","_defaultErrorMessage_initializers","value","_DateRangePicker_warnText_accessor_storage","_warnText_initializers","_DateRangePicker_disable_accessor_storage","_warnText_extraInitializers","_disable_initializers","_DateRangePicker__processedDisableDates_accessor_storage","_disable_extraInitializers","__processedDisableDates_initializers","_DateRangePicker_enable_accessor_storage","__processedDisableDates_extraInitializers","_enable_initializers","_DateRangePicker_caption_accessor_storage","_enable_extraInitializers","_caption_initializers","_DateRangePicker_required_accessor_storage","_caption_extraInitializers","_required_initializers","_DateRangePicker_size_accessor_storage","_required_extraInitializers","_size_initializers","_DateRangePicker_dateRangePickerDisabled_accessor_storage","_size_extraInitializers","_dateRangePickerDisabled_initializers","_DateRangePicker_readonly_accessor_storage","_dateRangePickerDisabled_extraInitializers","_readonly_initializers","_DateRangePicker_twentyFourHourFormat_accessor_storage","_readonly_extraInitializers","_twentyFourHourFormat_initializers","_DateRangePicker_minDate_accessor_storage","_twentyFourHourFormat_extraInitializers","_minDate_initializers","_DateRangePicker_allowManualInput_accessor_storage","_minDate_extraInitializers","_allowManualInput_initializers","_DateRangePicker_maxDate_accessor_storage","_allowManualInput_extraInitializers","_maxDate_initializers","_DateRangePicker_errorAriaLabel_accessor_storage","_maxDate_extraInitializers","_errorAriaLabel_initializers","_DateRangePicker_errorTitle_accessor_storage","_errorAriaLabel_extraInitializers","_errorTitle_initializers","_DateRangePicker_warningAriaLabel_accessor_storage","_errorTitle_extraInitializers","_warningAriaLabel_initializers","_DateRangePicker_warningTitle_accessor_storage","_warningAriaLabel_extraInitializers","_warningTitle_initializers","_DateRangePicker_staticPosition_accessor_storage","_warningTitle_extraInitializers","_staticPosition_initializers","_DateRangePicker__enableTime_accessor_storage","_staticPosition_extraInitializers","__enableTime_initializers","_DateRangePicker_flatpickrInstance_accessor_storage","__enableTime_extraInitializers","_flatpickrInstance_initializers","_DateRangePicker__inputEl_accessor_storage","_flatpickrInstance_extraInitializers","__inputEl_initializers","_DateRangePicker__hasInteracted_accessor_storage","__inputEl_extraInitializers","__hasInteracted_initializers","_DateRangePicker_textStrings_accessor_storage","__hasInteracted_extraInitializers","_textStrings_initializers","_DateRangePicker__textStrings_accessor_storage","_textStrings_extraInitializers","__textStrings_initializers","_DateRangePicker__isClearing_accessor_storage","__textStrings_extraInitializers","__isClearing_initializers","_DateRangePicker__shouldFlatpickrOpen_accessor_storage","__isClearing_extraInitializers","__shouldFlatpickrOpen_initializers","_DateRangePicker__hasInitialDefaultDate_accessor_storage","__shouldFlatpickrOpen_extraInitializers","__hasInitialDefaultDate_initializers","_initialized","__hasInitialDefaultDate_extraInitializers","_isDestroyed","_submitListener","debouncedUpdate","debounce","async","flatpickrInstance","initializeFlatpickr","error","process","env","NODE_ENV","Error","message","includes","console","warn","handleResize","debug","label","__classPrivateFieldGet","__classPrivateFieldSet","locale","dateFormat","defaultDate","rangeEditMode","defaultErrorMessage","warnText","disable","_processedDisableDates","enable","caption","required","size","dateRangePickerDisabled","readonly","twentyFourHourFormat","minDate","allowManualInput","maxDate","errorAriaLabel","errorTitle","warningAriaLabel","warningTitle","staticPosition","_enableTime","_inputEl","_hasInteracted","textStrings","_textStrings","_isClearing","_shouldFlatpickrOpen","_hasInitialDefaultDate","func","wait","timeout","args","window","clearTimeout","setTimeout","generateRandomId","prefix","Math","random","toString","slice","connectedCallback","super","addEventListener","_onChange","_handleFormReset","_internals","form","e","_validate","checkValidity","preventDefault","Array","isArray","every","date","length","disconnectedCallback","removeEventListener","_a","destroy","undefined","hasValue","updateFormValue","start","end","Date","formattedValue","toISOString","join","setFormValue","name","setAttribute","removeAttribute","render","errorId","warningId","anchorId","descriptionId","placeholder","getPlaceholder","showClearButton","START","END","NONE","html","classMap","getDateRangePickerClasses","preventFlatpickrOpen","_isInvalid","handleInputClickEvent","handleInputFocusEvent","_handleClear","unsafeSVG","clearIcon","calendarIcon","renderValidationMessage","invalidText","key","errorIcon","_internalValidationMsg","parseDateString","dateStr","trim","isNaN","getTime","parts","split","datePart","timePart","ampm","toUpperCase","dateTokens","map","Number","year","month","day","hours","minutes","seconds","timeComponents","parseInt","mins","token","pattern","test","firstUpdated","changedProperties","injectFlatpickrStyles","ShidokaFlatpickrTheme","updateEnableTime","updateComplete","setupAnchor","processedDates","processDefaultDates","updated","has","updateFlatpickrOptions","close","setInitialDates","processedDate","then","input","redraw","newValue","v","clear","updateSelectedDateRangeAria","currentDates","selectedDates","_b","_c","announcedDates","filter","d","dates","requestUpdate","syncAllowInput","readOnly","normalizeToDate","validDates","min","max","inRange","_clearInput","options","reinitFlatpickr","clearFlatpickrInput","emitValue","dateString","source","event","stopPropagation","handleClose","isConnected","initializeSingleAnchorFlatpickr","inputEl","getFlatpickrOptions","getComponentFlatpickrOptions","setCalendarAttributes","instance","calendarContainer","container","getModalContainer","document","body","hideEmptyYear","enableTime","mode","closeOnSelect","allowInput","loadLocale","onOpen","handleOpen","bind","onClose","onChange","handleDateChange","appendTo","noCalendar","static","origOnOpen","forEach","fn","firstDay","querySelector","focus","origOnReady","onReady","_sel","_str","target","classList","contains","sel","setDate","dateObj","applyDateRangeEditingRestrictions","iso","display","announcer","shadowRoot","getElementById","id","announcement","replace","toLocaleDateString","textContent","setShouldFlatpickrOpen","closeFlatpickr","handleInputClick","isOpen","open","handleInputFocus","interacted","report","HTMLInputElement","setValidity","shouldShowValidationErrors","selectedCount","validity","validationMessage","valueMissing","customError","isValid","reportValidity","getValue","selected","setValue","isClear","datesToSet","_label_decorators","property","type","String","_locale_decorators","_dateFormat_decorators","_defaultDate_decorators","_rangeEditMode_decorators","_defaultErrorMessage_decorators","_warnText_decorators","_disable_decorators","__processedDisableDates_decorators","state","_enable_decorators","_caption_decorators","_required_decorators","Boolean","_size_decorators","_dateRangePickerDisabled_decorators","_readonly_decorators","_twentyFourHourFormat_decorators","_minDate_decorators","_allowManualInput_decorators","_maxDate_decorators","_errorAriaLabel_decorators","_errorTitle_decorators","_warningAriaLabel_decorators","_warningTitle_decorators","_staticPosition_decorators","__enableTime_decorators","_flatpickrInstance_decorators","query","__hasInteracted_decorators","_textStrings_decorators","Object","__textStrings_decorators","__isClearing_decorators","__shouldFlatpickrOpen_decorators","__hasInitialDefaultDate_decorators","__esDecorate","kind","private","access","obj","get","metadata","_metadata","_defaultErrorMessage_extraInitializers","__inputEl_decorators","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","DateRangePickerStyles"],"mappings":"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"}
|
package/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{Header}from"./components/global/header/header.js";export{HeaderNav}from"./components/global/header/headerNav.js";export{HeaderLink}from"./components/global/header/headerLink.js";export{HeaderCategory}from"./components/global/header/headerCategory.js";export{HeaderDivider}from"./components/global/header/headerDivider.js";export{HeaderFlyouts}from"./components/global/header/headerFlyouts.js";export{HeaderFlyout}from"./components/global/header/headerFlyout.js";export{HeaderUserProfile}from"./components/global/header/headerUserProfile.js";export{HeaderPanelLink}from"./components/global/header/headerPanelLink.js";export{HeaderNotificationPanel}from"./components/global/header/headerNotificationPanel.js";export{LocalNav}from"./components/global/localNav/localNav.js";export{LocalNavLink}from"./components/global/localNav/localNavLink.js";export{LocalNavDivider}from"./components/global/localNav/localNavDivider.js";export{Footer}from"./components/global/footer/footer.js";export{UiShell}from"./components/global/uiShell/uiShell.js";export{RadioButton}from"./components/reusable/radioButton/radioButton.js";export{RadioButtonGroup}from"./components/reusable/radioButton/radioButtonGroup.js";export{Checkbox}from"./components/reusable/checkbox/checkbox.js";export{CheckboxGroup}from"./components/reusable/checkbox/checkboxGroup.js";export{CheckboxSubgroup}from"./components/reusable/checkbox/checkboxSubgroup.js";export{TextInput}from"./components/reusable/textInput/textInput.js";export{TextArea}from"./components/reusable/textArea/textArea.js";export{Avatar}from"./components/reusable/avatar/avatar.js";export{ToggleButton}from"./components/reusable/toggleButton/toggleButton.js";export{Dropdown}from"./components/reusable/dropdown/dropdown.js";export{DropdownOption}from"./components/reusable/dropdown/dropdownOption.js";export{DropdownCategory}from"./components/reusable/dropdown/dropdownCategory.js";import"./components/reusable/dropdown/enhancedDropdownOption.js";export{DatePicker}from"./components/reusable/datePicker/datepicker.js";export{DateRangePicker}from"./components/reusable/daterangepicker/daterangepicker.js";export{TimePicker}from"./components/reusable/timepicker/timepicker.js";export{ProgressBar}from"./components/reusable/progressBar/progressBar.js";export{BlockCodeView}from"./components/reusable/blockCodeView/blockCodeView.js";export{InlineCodeView}from"./components/reusable/inlineCodeView/inlineCodeView.js";export{Breadcrumbs}from"./components/reusable/breadcrumbs/breadcrumbs.js";export{T as Table}from"./table-CT51Uy4V.js";export{TableCell}from"./components/reusable/table/table-cell.js";export{TableRow}from"./components/reusable/table/table-row.js";export{TableBody}from"./components/reusable/table/table-body.js";export{TableHead}from"./components/reusable/table/table-head.js";export{TableHeader}from"./components/reusable/table/table-header.js";export{TableFoot}from"./components/reusable/table/table-foot.js";export{TableFooter}from"./components/reusable/table/table-footer.js";export{TableLegend}from"./components/reusable/table/table-legend.js";export{TableLegendItem}from"./components/reusable/table/table-legend-item.js";export{TableToolbar}from"./components/reusable/table/table-toolbar.js";export{TableContainer}from"./components/reusable/table/table-container.js";export{TableHeaderRow}from"./components/reusable/table/table-header-row.js";export{TableExpandedRow}from"./components/reusable/table/table-expanded-row.js";import"./components/reusable/table/table.skeleton.js";export{Pagination}from"./components/reusable/pagination/Pagination.js";import"./components/reusable/pagination/pagination-items-range.js";import"./components/reusable/pagination/pagination-page-size-dropdown.js";import"./components/reusable/pagination/pagination-navigation-buttons.js";import"./components/reusable/pagination/pagination.skeleton.js";export{OverflowMenu}from"./components/reusable/overflowMenu/overflowMenu.js";export{OverflowMenuItem}from"./components/reusable/overflowMenu/overflowMenuItem.js";export{Tabs}from"./components/reusable/tabs/tabs.js";export{Tab}from"./components/reusable/tabs/tab.js";export{TabPanel}from"./components/reusable/tabs/tabPanel.js";export{Modal}from"./components/reusable/modal/modal.js";export{Tooltip}from"./components/reusable/tooltip/tooltip.js";export{Tag}from"./components/reusable/tag/tag.js";export{TagGroup}from"./components/reusable/tag/tagGroup.js";import"./components/reusable/tag/tag.skeleton.js";export{GlobalFilter}from"./components/reusable/globalFilter/globalFilter.js";export{SideDrawer}from"./components/reusable/sideDrawer/sideDrawer.js";export{PageTitle}from"./components/reusable/pagetitle/pageTitle.js";export{Notification}from"./components/reusable/notification/notification.js";export{NotificationContainer}from"./components/reusable/notification/notificationContainer.js";export{Widget}from"./components/reusable/widget/widget.js";export{WidgetDragHandle}from"./components/reusable/widget/widgetDragHandle.js";export{WidgetGridstack}from"./components/reusable/widget/widgetGridstack.js";export{Search}from"./components/reusable/search/search.js";export{Loader}from"./components/reusable/loaders/loader.js";export{LoaderInline}from"./components/reusable/loaders/inline.js";export{Skeleton}from"./components/reusable/loaders/skeleton.js";export{NumberInput}from"./components/reusable/numberInput/numberInput.js";export{SliderInput}from"./components/reusable/sliderInput/sliderInput.js";export{Popover}from"./components/reusable/popover/popover.js";export{createOptionsArray,debounce,stringToReactHtml}from"./common/helpers/helpers.js";export{Config,WidgetConstraints,WidgetSizes}from"./common/helpers/gridstack.js";export{SwiperConfig}from"./common/helpers/swiper.js";export{Stepper}from"./components/reusable/stepper/stepper.js";export{StepperItem}from"./components/reusable/stepper/stepperItem.js";export{StepperItemChild}from"./components/reusable/stepper/stepperItemChild.js";export{Button}from"./components/reusable/button/button.js";export{Link}from"./components/reusable/link/link.js";export{Accordion}from"./components/reusable/accordion/accordion.js";export{AccordionItem}from"./components/reusable/accordion/accordionItem.js";export{Card}from"./components/reusable/card/card.js";import"./components/reusable/card/vitalCard.skeleton.js";import"./components/reusable/card/informationalCard.skeleton.js";export{SplitButton}from"./components/reusable/splitButton/splitButton.js";export{SplitButtonOption}from"./components/reusable/splitButton/splitButtonOption.js";export{FloatingContainer}from"./components/reusable/floatingContainer/floatingContainer.js";export{AISourcesFeedback}from"./components/ai/sourcesFeedback/aiSourcesFeedback.js";export{InlineConfirm}from"./components/reusable/inlineConfirm/inlineConfirm.js";export{ColorInput}from"./components/reusable/colorInput/colorInput.js";export{MetaData}from"./components/reusable/metaData/metaData.js";export{Divider}from"./components/reusable/divider/divider.js";import"tslib";import"lit";import"lit/decorators.js";import"lit/directives/class-map.js";import"lit-html/directives/unsafe-html.js";import"./vendor/@kyndryl-design-system/shidoka-foundation-7uii0Jz8.js";import"lit-html/directives/unsafe-svg.js";import"./vendor/@kyndryl-design-system/shidoka-icons-oqOblwTK.js";import"query-selector-shadow-dom";import"deepmerge-ts";import"./common/mixins/form-input.js";import"lit-html/directives/class-map.js";import"lit/directives/if-defined.js";import"./common/helpers/flatpickr.js";import"flatpickr";import"flatpickr/dist/esm/plugins/rangePlugin";import"flatpickr/dist/esm/l10n/default.js";import"./common/flatpickrLangs.js";import"./common/helpers/flatpickrOverlayPosition.js";import"./shidoka-flatpickr-theme-DpNQHCIC.js";import"prismjs";import"prismjs/plugins/autoloader/prism-autoloader";import"prismjs/plugins/line-numbers/prism-line-numbers";import"
|
|
1
|
+
export{Header}from"./components/global/header/header.js";export{HeaderNav}from"./components/global/header/headerNav.js";export{HeaderLink}from"./components/global/header/headerLink.js";export{HeaderCategory}from"./components/global/header/headerCategory.js";export{HeaderDivider}from"./components/global/header/headerDivider.js";export{HeaderFlyouts}from"./components/global/header/headerFlyouts.js";export{HeaderFlyout}from"./components/global/header/headerFlyout.js";export{HeaderUserProfile}from"./components/global/header/headerUserProfile.js";export{HeaderPanelLink}from"./components/global/header/headerPanelLink.js";export{HeaderNotificationPanel}from"./components/global/header/headerNotificationPanel.js";export{LocalNav}from"./components/global/localNav/localNav.js";export{LocalNavLink}from"./components/global/localNav/localNavLink.js";export{LocalNavDivider}from"./components/global/localNav/localNavDivider.js";export{Footer}from"./components/global/footer/footer.js";export{UiShell}from"./components/global/uiShell/uiShell.js";export{RadioButton}from"./components/reusable/radioButton/radioButton.js";export{RadioButtonGroup}from"./components/reusable/radioButton/radioButtonGroup.js";export{Checkbox}from"./components/reusable/checkbox/checkbox.js";export{CheckboxGroup}from"./components/reusable/checkbox/checkboxGroup.js";export{CheckboxSubgroup}from"./components/reusable/checkbox/checkboxSubgroup.js";export{TextInput}from"./components/reusable/textInput/textInput.js";export{TextArea}from"./components/reusable/textArea/textArea.js";export{Avatar}from"./components/reusable/avatar/avatar.js";export{ToggleButton}from"./components/reusable/toggleButton/toggleButton.js";export{Dropdown}from"./components/reusable/dropdown/dropdown.js";export{DropdownOption}from"./components/reusable/dropdown/dropdownOption.js";export{DropdownCategory}from"./components/reusable/dropdown/dropdownCategory.js";import"./components/reusable/dropdown/enhancedDropdownOption.js";export{DatePicker}from"./components/reusable/datePicker/datepicker.js";export{DateRangePicker}from"./components/reusable/daterangepicker/daterangepicker.js";export{TimePicker}from"./components/reusable/timepicker/timepicker.js";export{ProgressBar}from"./components/reusable/progressBar/progressBar.js";export{BlockCodeView}from"./components/reusable/blockCodeView/blockCodeView.js";export{InlineCodeView}from"./components/reusable/inlineCodeView/inlineCodeView.js";export{Breadcrumbs}from"./components/reusable/breadcrumbs/breadcrumbs.js";export{T as Table}from"./table-CT51Uy4V.js";export{TableCell}from"./components/reusable/table/table-cell.js";export{TableRow}from"./components/reusable/table/table-row.js";export{TableBody}from"./components/reusable/table/table-body.js";export{TableHead}from"./components/reusable/table/table-head.js";export{TableHeader}from"./components/reusable/table/table-header.js";export{TableFoot}from"./components/reusable/table/table-foot.js";export{TableFooter}from"./components/reusable/table/table-footer.js";export{TableLegend}from"./components/reusable/table/table-legend.js";export{TableLegendItem}from"./components/reusable/table/table-legend-item.js";export{TableToolbar}from"./components/reusable/table/table-toolbar.js";export{TableContainer}from"./components/reusable/table/table-container.js";export{TableHeaderRow}from"./components/reusable/table/table-header-row.js";export{TableExpandedRow}from"./components/reusable/table/table-expanded-row.js";import"./components/reusable/table/table.skeleton.js";export{Pagination}from"./components/reusable/pagination/Pagination.js";import"./components/reusable/pagination/pagination-items-range.js";import"./components/reusable/pagination/pagination-page-size-dropdown.js";import"./components/reusable/pagination/pagination-navigation-buttons.js";import"./components/reusable/pagination/pagination.skeleton.js";export{OverflowMenu}from"./components/reusable/overflowMenu/overflowMenu.js";export{OverflowMenuItem}from"./components/reusable/overflowMenu/overflowMenuItem.js";export{Tabs}from"./components/reusable/tabs/tabs.js";export{Tab}from"./components/reusable/tabs/tab.js";export{TabPanel}from"./components/reusable/tabs/tabPanel.js";export{Modal}from"./components/reusable/modal/modal.js";export{Tooltip}from"./components/reusable/tooltip/tooltip.js";export{Tag}from"./components/reusable/tag/tag.js";export{TagGroup}from"./components/reusable/tag/tagGroup.js";import"./components/reusable/tag/tag.skeleton.js";export{GlobalFilter}from"./components/reusable/globalFilter/globalFilter.js";export{SideDrawer}from"./components/reusable/sideDrawer/sideDrawer.js";export{PageTitle}from"./components/reusable/pagetitle/pageTitle.js";export{Notification}from"./components/reusable/notification/notification.js";export{NotificationContainer}from"./components/reusable/notification/notificationContainer.js";export{Widget}from"./components/reusable/widget/widget.js";export{WidgetDragHandle}from"./components/reusable/widget/widgetDragHandle.js";export{WidgetGridstack}from"./components/reusable/widget/widgetGridstack.js";export{Search}from"./components/reusable/search/search.js";export{Loader}from"./components/reusable/loaders/loader.js";export{LoaderInline}from"./components/reusable/loaders/inline.js";export{Skeleton}from"./components/reusable/loaders/skeleton.js";export{NumberInput}from"./components/reusable/numberInput/numberInput.js";export{SliderInput}from"./components/reusable/sliderInput/sliderInput.js";export{Popover}from"./components/reusable/popover/popover.js";export{createOptionsArray,debounce,stringToReactHtml}from"./common/helpers/helpers.js";export{Config,WidgetConstraints,WidgetSizes}from"./common/helpers/gridstack.js";export{SwiperConfig}from"./common/helpers/swiper.js";export{Stepper}from"./components/reusable/stepper/stepper.js";export{StepperItem}from"./components/reusable/stepper/stepperItem.js";export{StepperItemChild}from"./components/reusable/stepper/stepperItemChild.js";export{Button}from"./components/reusable/button/button.js";export{Link}from"./components/reusable/link/link.js";export{Accordion}from"./components/reusable/accordion/accordion.js";export{AccordionItem}from"./components/reusable/accordion/accordionItem.js";export{Card}from"./components/reusable/card/card.js";import"./components/reusable/card/vitalCard.skeleton.js";import"./components/reusable/card/informationalCard.skeleton.js";export{SplitButton}from"./components/reusable/splitButton/splitButton.js";export{SplitButtonOption}from"./components/reusable/splitButton/splitButtonOption.js";export{FloatingContainer}from"./components/reusable/floatingContainer/floatingContainer.js";export{AISourcesFeedback}from"./components/ai/sourcesFeedback/aiSourcesFeedback.js";export{InlineConfirm}from"./components/reusable/inlineConfirm/inlineConfirm.js";export{ColorInput}from"./components/reusable/colorInput/colorInput.js";export{MetaData}from"./components/reusable/metaData/metaData.js";export{Divider}from"./components/reusable/divider/divider.js";import"tslib";import"lit";import"lit/decorators.js";import"lit/directives/class-map.js";import"lit-html/directives/unsafe-html.js";import"./vendor/@kyndryl-design-system/shidoka-foundation-7uii0Jz8.js";import"lit-html/directives/unsafe-svg.js";import"./vendor/@kyndryl-design-system/shidoka-icons-oqOblwTK.js";import"query-selector-shadow-dom";import"deepmerge-ts";import"./common/mixins/form-input.js";import"lit-html/directives/class-map.js";import"lit/directives/if-defined.js";import"./common/helpers/flatpickr.js";import"flatpickr";import"flatpickr/dist/esm/plugins/rangePlugin";import"flatpickr/dist/esm/l10n/default.js";import"./common/flatpickrLangs.js";import"./common/helpers/flatpickrOverlayPosition.js";import"./shidoka-flatpickr-theme-DpNQHCIC.js";import"prismjs";import"prismjs/plugins/autoloader/prism-autoloader";import"prismjs/plugins/line-numbers/prism-line-numbers";import"@lit/context";import"./components/reusable/table/table-context.js";import"./components/reusable/table/defs.js";import"./pagination-0XbKxe9y.js";import"lit/directives/unsafe-html.js";import"lit/directives/unsafe-svg.js";import"./tag-ehM901IX.js";import"./components/reusable/badge/badge.js";import"gridstack";import"lottie-web";import"./inline-CxNcYPfA.js";import"@floating-ui/dom";import"./common/helpers/popoverHelper.js";import"./components/reusable/button/defs.js";import"./components/reusable/link/defs.js";import"./cardSample-BCIwY1rJ.js";import"./components/reusable/splitButton/defs.js";
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kyndryl-design-system/shidoka-applications",
|
|
3
|
-
"version": "2.70.
|
|
3
|
+
"version": "2.70.9",
|
|
4
4
|
"description": "Shidoka Web Components for Applications",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "index.js",
|
|
@@ -38,7 +38,6 @@
|
|
|
38
38
|
"lit": "^3.3.0",
|
|
39
39
|
"lottie-web": "^5.12.2",
|
|
40
40
|
"prismjs": "^1.30.0",
|
|
41
|
-
"prismjs-components-importer": "^0.2.0",
|
|
42
41
|
"query-selector-shadow-dom": "^1.0.1",
|
|
43
42
|
"shadow-dom-testing-library": "^1.12.0",
|
|
44
43
|
"swiper": "^11.1.12",
|