@aquera/nile-elements 1.3.4-beta-1.2 → 1.3.4-beta-1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/demo/index.html CHANGED
@@ -60,9 +60,9 @@ Do we need the option to select the to and from date? Like to comes first and fr
60
60
 
61
61
 
62
62
  <nile-date-picker
63
- range
64
63
  jumpToTypedDate
65
64
  inputFormat="DD.MM.YYYY"
65
+ range
66
66
  >
67
67
  <nile-input
68
68
  slot="trigger"
package/dist/index.js CHANGED
@@ -6413,7 +6413,7 @@ box-shadow: none;
6413
6413
  .allowClear="${this.allowClear}"
6414
6414
  ></nile-calendar>
6415
6415
  </nile-dropdown>
6416
- `}handleChanged(e){e.stopPropagation();const t=this.querySelector("nile-input");if(!this.range){const i=e.detail.value;return i&&t&&(t.value=this.formatDate(new Date(i)),t.emit("nile-input",{value:t.value})),this.emit("nile-change",{value:i}),void this.dropdown?.hide()}const i=e.detail.startDate,M=e.detail.endDate;if(t){let e="";i&&(e+=this.formatDate(new Date(i))),i&&M&&(e+=" - "+this.formatDate(new Date(M))),t.value=e,t.emit("nile-input",{value:e})}this.emit("nile-change",{start:i,end:M}),this.dropdown?.hide()}connectedCallback(){super.connectedCallback(),this.emit("nile-init")}disconnectedCallback(){super.disconnectedCallback(),this.emit("nile-destroy")}};e([ce({type:Boolean})],hn.prototype,"range",void 0),e([ce({type:Boolean})],hn.prototype,"hideTypes",void 0),e([ce({type:Boolean,reflect:!0})],hn.prototype,"doubleClickUnselect",void 0),e([ce({type:Boolean,reflect:!0})],hn.prototype,"allowClear",void 0),e([ce({type:Boolean})],hn.prototype,"open",void 0),e([ce({type:Boolean,attribute:"hide-time-zone"})],hn.prototype,"hideTimeZone",void 0),e([ce({type:String,reflect:!0})],hn.prototype,"type",void 0),e([ce({type:Boolean,attribute:"showManualInputs"})],hn.prototype,"showManualInputs",void 0),e([ce()],hn.prototype,"value",void 0),e([ce({type:Array,attribute:"hide-duration-fields"})],hn.prototype,"hideDurationFields",void 0),e([ce({attribute:"allowedDates"})],hn.prototype,"allowedDates",void 0),e([ce({type:Boolean,attribute:!0,reflect:!0})],hn.prototype,"jumpToTypedDate",void 0),e([ce({type:String,attribute:!0,reflect:!0})],hn.prototype,"inputFormat",void 0),e([Ie("nile-dropdown")],hn.prototype,"dropdown",void 0),hn=e([Ne("nile-date-picker")],hn);const Tn=r`
6416
+ `}handleChanged(e){e.stopPropagation();const t=e.detail,i=this.querySelector("nile-input");if(!this.range){const e=t.value;return e&&i&&(i.value=this.formatDate(new Date(e)),i.emit("nile-input",{value:i.value})),this.emit("nile-changed",t),this.emit("nile-change",t),void this.dropdown?.hide()}const M=t.startDate,n=t.endDate;if(i){let e="";M&&(e+=this.formatDate(new Date(M))),M&&n&&(e+=" - "+this.formatDate(new Date(n))),i.value=e,i.emit("nile-input",{value:e})}this.emit("nile-changed",t),this.emit("nile-change",t),this.dropdown?.hide()}connectedCallback(){super.connectedCallback(),this.emit("nile-init")}disconnectedCallback(){super.disconnectedCallback(),this.emit("nile-destroy")}};e([ce({type:Boolean})],hn.prototype,"range",void 0),e([ce({type:Boolean})],hn.prototype,"hideTypes",void 0),e([ce({type:Boolean,reflect:!0})],hn.prototype,"doubleClickUnselect",void 0),e([ce({type:Boolean,reflect:!0})],hn.prototype,"allowClear",void 0),e([ce({type:Boolean})],hn.prototype,"open",void 0),e([ce({type:Boolean,attribute:"hide-time-zone"})],hn.prototype,"hideTimeZone",void 0),e([ce({type:String,reflect:!0})],hn.prototype,"type",void 0),e([ce({type:Boolean,attribute:"showManualInputs"})],hn.prototype,"showManualInputs",void 0),e([ce()],hn.prototype,"value",void 0),e([ce({type:Array,attribute:"hide-duration-fields"})],hn.prototype,"hideDurationFields",void 0),e([ce({attribute:"allowedDates"})],hn.prototype,"allowedDates",void 0),e([ce({type:Boolean,attribute:!0,reflect:!0})],hn.prototype,"jumpToTypedDate",void 0),e([ce({type:String,attribute:!0,reflect:!0})],hn.prototype,"inputFormat",void 0),e([Ie("nile-dropdown")],hn.prototype,"dropdown",void 0),hn=e([Ne("nile-date-picker")],hn);const Tn=r`
6417
6417
  :host {
6418
6418
  -webkit-font-smoothing: var(--nile-webkit-font-smoothing, var(--ng-webkit-font-smoothing));
6419
6419
  -moz-osx-font-smoothing: var(--nile-moz-osx-font-smoothing, var(--ng-moz-osx-font-smoothing));
@@ -14703,7 +14703,7 @@ nile-rte-toolbar-item nile-button[data-active]::part(base):hover {
14703
14703
 
14704
14704
 
14705
14705
 
14706
- `,bS={bold:"format_bold",italic:"format_italic",underline:"format_underline",link:"link_2",left:"format_align_left",center:"format_align_middle",right:"format_align_right",justify:"format_align_justify",ul:"format_list_bulleted",ol:"format_list_numbered",clear:"format_clear"};let fS=class extends ae{constructor(){super(...arguments),this.value="",this.noStyles=!1,this.singleLineEditor=!1,this.placeholder="",this.mentions={},this.content="",this.previewEl=null,this.toolbarEl=null,this.lastRange=null,this.buttonMap=new Map,this.headingSelect=null,this.fontSelect=null,this.colorInput=null,this.bgColorInput=null,this.colorSwatchEl=null,this.bgSwatchEl=null,this.containerEl=null,this.mentionsEl=null,this.onEditorKeydown=e=>{if(this.singleLineEditor&&"Enter"===e.key&&e.shiftKey)return void e.preventDefault();if(e.ctrlKey&&"i"===e.key.toLowerCase()&&(e.preventDefault(),xS(this.editorEl,"em"),this.updateContent(),this.updateToolbarState()),this.singleLineEditor&&"Enter"===e.key)return void e.preventDefault();if("Tab"!==e.key)return;e.preventDefault(),this.focusAndRestore();const t=window.getSelection();if(!t||0===t.rangeCount)return;const i=t.getRangeAt(0);if(e.shiftKey){if(i.collapsed&&i.startContainer.nodeType===Node.TEXT_NODE){const e=i.startContainer,M=i.startOffset,n=e.data.slice(0,M),o=n.replace(/(\t|[ \u00a0]{2})$/,"");if(o.length!==n.length){e.data=o+e.data.slice(M);const i=document.createRange();i.setStart(e,o.length),i.collapse(!0),t.removeAllRanges(),t.addRange(i),this.updateContent(),this.updateToolbarState()}}return}i.deleteContents();const M=document.createTextNode("\t");i.insertNode(M);const n=document.createRange();n.setStartAfter(M),n.collapse(!0),t.removeAllRanges(),t.addRange(n),this.updateContent(),this.updateToolbarState()},this.onSelectionChange=()=>{if(!this.editorEl)return;const e=document.getSelection();if(!e||0===e.rangeCount)return;const t=e.getRangeAt(0);this.editorEl.contains(t.commonAncestorContainer)&&(this.lastRange=t.cloneRange(),this.updateToolbarState())}}createRenderRoot(){return this}injectCss(e){if(this.querySelector("style[data-rte-style]"))return;const t=document.createElement("style");t.setAttribute("data-rte-style","true"),t.textContent=e,this.insertBefore(t,this.firstChild)}connectedCallback(){super.connectedCallback(),this.injectCss(CS.cssText),this.ensureStructure(),this.placeholder&&this.editorEl&&(this.editorEl.dataset.placeholder=this.placeholder),this.value&&!this.editorEl.innerHTML.trim()&&(this.editorEl.innerHTML=this.value),this.content=this.editorEl.innerHTML,this.toolbarEl&&this.wireAuthoredToolbar(this.toolbarEl),this.mentionsEl=this.querySelector("nile-rte-mentions"),this.mentionsEl&&(this.mentionsEl.attach?.(this.editorEl,this),this.mentionsEl.setExternalConfig?.(this.mentions)),this.wireEditor(),document.addEventListener("selectionchange",this.onSelectionChange,{passive:!0}),this.updateToolbarState(),this.syncPreview()}ensureStructure(){this.toolbarEl=this.querySelector("nile-rte-toolbar"),this.previewEl=this.querySelector("nile-rte-preview"),this.containerEl=this.querySelector(".rte-container"),this.containerEl||(this.containerEl=document.createElement("div"),this.containerEl.className="rte-container",this.appendChild(this.containerEl)),this.ensureEditor(),this.toolbarEl&&this.toolbarEl.parentElement!==this.containerEl&&this.containerEl.appendChild(this.toolbarEl),this.editorEl.parentElement!==this.containerEl&&this.containerEl.appendChild(this.editorEl),this.previewEl&&(this.previewEl.parentElement!==this&&this.appendChild(this.previewEl),this.previewEl.previousElementSibling!==this.containerEl&&this.insertBefore(this.previewEl,this.containerEl.nextSibling))}updateContentWithMention(e){this.updateContent(),this.dispatchEvent(new CustomEvent("nile-change",{detail:{content:this.content,mention:e},bubbles:!0,composed:!0}))}disconnectedCallback(){document.removeEventListener("selectionchange",this.onSelectionChange),this.mentionsEl&&this.mentionsEl.detach&&this.mentionsEl.detach(),super.disconnectedCallback()}updated(e){e.has("value")&&this.editorEl&&this.value!==this.editorEl.innerHTML&&(this.editorEl.innerHTML=this.value||"<p><br></p>",this.content=this.editorEl.innerHTML,this.syncPreview()),e.has("singleLineEditor")&&(this.editorEl&&this.editorEl.classList.toggle("single-line",this.singleLineEditor),this.previewEl&&this.previewEl.classList.toggle("single-line",this.singleLineEditor))}ensureEditor(){if(this.editorEl=this.querySelector(".editor"),!this.editorEl){const e=document.createElement("article");e.className="editor",e.setAttribute("contenteditable","true"),this.editorEl=e}this.placeholder&&(this.editorEl.dataset.placeholder=this.placeholder),this.editorEl.innerHTML.trim()||(this.editorEl.innerHTML="<p><br></p>")}unwrapMention(e,t=!0){const i=e.parentNode;if(!i)return;const M=t?(e.textContent??"").replace(/\u200B/g,""):"",n=document.createTextNode(M);i.insertBefore(n,e),i.removeChild(e);const o=document.createRange();o.setStartAfter(n),o.collapse(!0);const r=window.getSelection();r?.removeAllRanges(),r?.addRange(o)}scrubBrokenMentions(){if(!this.editorEl)return;this.editorEl.querySelectorAll("span.mention").forEach((e=>{const t=e,i=t.getAttribute("data-mention-key"),M=t.getAttribute("data-mention-label"),n=t.getAttribute("data-mention-trigger")||"",o=(t.textContent??"").replace(/\u200B/g,"").trim(),r=!!i&&!!M&&o.length>0&&o.startsWith(n)&&o.includes(M);o&&r||this.unwrapMention(t,!0)}))}wireEditor(){this.editorEl.addEventListener("input",(()=>{this.ensureAtLeastOneParagraph(),this.scrubBrokenMentions(),this.updateContent(),this.updateToolbarState()})),this.editorEl.addEventListener("mouseup",(()=>{this.saveSelection(),this.updateToolbarState()})),this.editorEl.addEventListener("keyup",(e=>{this.saveSelection(),["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End"].includes(e.key)&&this.updateToolbarState()})),this.editorEl.addEventListener("keydown",this.onEditorKeydown)}wireAuthoredToolbar(e){this.buttonMap.clear(),this.headingSelect=null,this.fontSelect=null,this.colorInput=null,Array.from(e.children).forEach((e=>{const t=e.tagName.toLowerCase();if("nile-rte-select"!==t||"align"!==e.getAttribute("type")){if("nile-rte-link"===t)return e.editorEl=this.editorEl,void e.addEventListener("link-changed",(()=>{this.updateContent(),this.updateToolbarState()}));if("nile-rte-toolbar-item"===t){let t=e.querySelector(":scope > nile-button");const i=e.getAttribute("name")||"",M=e.getAttribute("label")||i,n=e.getAttribute("icon"),o=e.innerHTML.trim().length>0;if(t||(t=document.createElement("nile-button"),t.variant="tertiary",t.size="small"),n)t.innerHTML=`<nile-icon name="${n}" aria-label="${M}"></nile-icon>`,e.innerHTML="";else if(o)t.innerHTML=e.innerHTML,e.innerHTML="";else{const n=bS[i];n?t.innerHTML=`<nile-icon name="${n}" size="20" color="black" aria-label="${M}"></nile-icon>`:t.textContent=M||i,e.innerHTML=""}if(!t.isConnected){const i=document.createElement("nile-tooltip");i.setAttribute("content",M),i.appendChild(t),e.appendChild(i)}t.setAttribute("aria-label",M),t.addEventListener("mousedown",(e=>e.preventDefault())),t.addEventListener("click",(()=>this.onToolbarCommand(i)));const r=this.buttonMap.get(i)??[];return r.push(t),void this.buttonMap.set(i,r)}if("nile-rte-select"!==t)"nile-rte-color"!==t||e.addEventListener("change",(e=>{this.focusAndRestore();const{mode:t,value:i}=e.detail;"backColor"===t?ES(this.editorEl,"backgroundColor",i,"data-rte-bg"):function(e,t){ES(e,"color",t,"data-rte-color")}(this.editorEl,i),this.updateContent(),this.updateToolbarState()}));else{const t=e.getAttribute("type")||"";e.addEventListener("change",(e=>{this.focusAndRestore();const i=e.detail;"heading"===t?function(e,t){const i=document.getSelection();if(!i||0===i.rangeCount)return;const M=OS(i.getRangeAt(0).startContainer,e);if(!M)return;if(M.tagName.toLowerCase()===t)return;const n=document.createElement(t);for(;M.firstChild;)n.appendChild(M.firstChild);M.replaceWith(n);const o=document.createRange();o.selectNodeContents(n),o.collapse(!0),i.removeAllRanges(),i.addRange(o)}(this.editorEl,i):"font"===t&&SS(this.editorEl,i),this.updateContent(),this.updateToolbarState()}))}}else e.addEventListener("change",(e=>{this.focusAndRestore();const t=e.detail;pS(this.editorEl,t),this.updateContent(),this.updateToolbarState()}))}))}saveSelection(){const e=window.getSelection();e&&e.rangeCount&&(this.lastRange=e.getRangeAt(0).cloneRange())}restoreSelection(){if(!this.lastRange)return;const e=document.getSelection();e&&(e.removeAllRanges(),e.addRange(this.lastRange))}focusAndRestore(){this.editorEl?.focus(),this.restoreSelection()}getCleanContent(){const e=this.editorEl.cloneNode(!0);return e.querySelectorAll("*").forEach((e=>{e.removeAttribute("style")})),e.innerHTML}insertList(e){if(this.restoreSelection(),!this.lastRange)return;const t=document.createElement(e),i=this.lastRange.extractContents(),M=document.createElement("div");M.appendChild(i),Array.from(M.childNodes).forEach((e=>{if(e.nodeType===Node.TEXT_NODE&&!e.textContent?.trim())return;const i=document.createElement("li");i.appendChild(e),t.appendChild(i)})),this.lastRange.insertNode(t),this.afterListEdit(t)}afterListEdit(e){const t=document.createRange();t.setStartAfter(e),t.collapse(!0);const i=window.getSelection();i?.removeAllRanges(),i?.addRange(t),this.saveSelection(),this.updateContent(),this.updateToolbarState()}ensureAtLeastOneParagraph(){const e=this.editorEl;if(!e)return;const t=""===(e.textContent??"").replace(/\u200B/g,"").trim();if(0===e.childNodes.length||t)return void(e.innerHTML="<p><br></p>");if(!e.querySelector("p,h1,h2,h3,h4,h5,h6,ul,ol,table,blockquote,pre")){const t=document.createElement("p");for(;e.firstChild;)t.appendChild(e.firstChild);return t.hasChildNodes()||t.appendChild(document.createElement("br")),void e.appendChild(t)}e.querySelectorAll("p").forEach((e=>{""===(e.textContent??"").replace(/\u200B/g,"")&&(e.innerHTML.toLowerCase().includes("<br")||(e.innerHTML="<br>"))}))}onToolbarCommand(e){switch(this.focusAndRestore(),e){case"bold":xS(this.editorEl,"strong");break;case"italic":xS(this.editorEl,"em");break;case"underline":xS(this.editorEl,"u");break;case"left":pS(this.editorEl,"left");break;case"center":pS(this.editorEl,"center");break;case"right":pS(this.editorEl,"right");break;case"justify":pS(this.editorEl,"justify");break;case"ul":kS(this.editorEl,"ul"),this.updateContent(),this.updateToolbarState();break;case"ol":kS(this.editorEl,"ol"),this.updateContent(),this.updateToolbarState();break;case"link":break;case"clear":const e=document.createTreeWalker(this.editorEl,NodeFilter.SHOW_ELEMENT),t=[];for(;e.nextNode();){const i=e.currentNode;i.removeAttribute("style"),["B","STRONG","I","EM","U","SPAN","FONT"].includes(i.tagName)&&t.push(i)}for(const e of t){for(;e.firstChild;)e.parentNode?.insertBefore(e.firstChild,e);e.remove()}this.ensureAtLeastOneParagraph()}this.updateContent(),this.updateToolbarState()}setBtnActive(e,t){const i=this.buttonMap.get(e);if(i)for(const e of i)e.toggleAttribute("data-active",!!t)}updateToolbarState(){if(!this.editorEl)return;const e=document.getSelection();if(!e||0===e.rangeCount)return;const t=e.getRangeAt(0);if(!this.editorEl.contains(t.commonAncestorContainer))return;const i=function(e){for(;e&&!(e instanceof HTMLElement);)e=e.parentNode;return e}(t.startContainer)||this.editorEl,M=getComputedStyle(i),n=OS(t.startContainer,this.editorEl)||this.editorEl,o=(()=>{let e=i;for(;e&&e!==this.editorEl;){if(e instanceof HTMLElement){const t=e.tagName.toLowerCase();if("strong"===t||"b"===t)return!0;const i=getComputedStyle(e).fontWeight;if(parseInt(i,10)>=600)return!0}e=e.parentNode}return!1})(),r=(()=>{let e=i;for(;e&&e!==this.editorEl;){if(e instanceof HTMLElement){const t=e.tagName.toLowerCase();if("em"===t||"i"===t)return!0;if("italic"===getComputedStyle(e).fontStyle)return!0}e=e.parentNode}return!1})(),s=(()=>{let e=i;for(;e&&e!==this.editorEl;){if(e instanceof HTMLElement){const t=getComputedStyle(e).textDecorationLine;if(t&&t.includes("underline"))return!0;if("u"===e.tagName.toLowerCase())return!0}e=e.parentNode}return!1})(),a=!!i.closest("a"),l=n.style.textAlign||getComputedStyle(n).textAlign||"start",N="start"===l?"left":l,g=!!i.closest("li")&&i.closest("ul,ol")?.tagName.toLowerCase()||"";if(this.setBtnActive("bold",o),this.setBtnActive("italic",r),this.setBtnActive("underline",s),this.setBtnActive("link",a),this.setBtnActive("left","left"===N&&!["center","right","justify"].includes(N)),this.setBtnActive("center","center"===N),this.setBtnActive("right","right"===N),this.setBtnActive("justify","justify"===N),this.setBtnActive("ul","ul"===g),this.setBtnActive("ol","ol"===g),this.headingSelect){const e=n.tagName.toLowerCase(),t=["h1","h2","h3"].includes(e)?e:"p";this.headingSelect.value!==t&&(this.headingSelect.value=t)}if(this.fontSelect){const e=(M.fontFamily||"").replace(/["']/g,"").split(",")[0].trim().toLowerCase();if(e)for(const t of Array.from(this.fontSelect.options))if(t.value.toLowerCase()===e){this.fontSelect.value=t.value;break}}if(this.colorInput){const e=LS(M.color);e&&this.colorInput.value.toLowerCase()!==e.toLowerCase()&&(this.colorInput.value=e),this.colorSwatchEl&&(this.colorSwatchEl.style.backgroundColor=this.colorInput.value)}if(this.bgColorInput){const e=getComputedStyle(i).backgroundColor;if(e&&!/transparent|rgba\(\s*0\s*,\s*0\s*,\s*0\s*,\s*0\s*\)/i.test(e)){const t=LS(e);t&&this.bgColorInput.value.toLowerCase()!==t.toLowerCase()&&(this.bgColorInput.value=t)}this.bgSwatchEl&&(this.bgSwatchEl.style.backgroundColor=this.bgColorInput.value)}}syncPreview(){this.updateContent()}updateContent(){if(!this.editorEl)return;this.ensureAtLeastOneParagraph();const e=""===(this.editorEl.textContent??"").trim();this.editorEl.classList.toggle("empty",e);const t=this.editorEl.cloneNode(!0);if(this.noStyles)t.querySelectorAll("[style]").forEach((e=>e.removeAttribute("style")));else{const e=document.createTreeWalker(this.editorEl,NodeFilter.SHOW_ELEMENT),i=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT),M=["font-weight","font-style","text-decoration","color","background-color","font-size","font-family","text-align","line-height","letter-spacing","white-space","vertical-align","list-style-position","padding-inline-start"];for(;e.nextNode()&&i.nextNode();){const t=e.currentNode,n=i.currentNode,o=window.getComputedStyle(t),r=M.map((e=>`${e}:${o.getPropertyValue(e)}`)).join(";");r.trim()&&n.setAttribute("style",r)}}this.content=t.innerHTML,this.previewEl&&(this.previewEl.innerHTML=this.content),this.dispatchEvent(new CustomEvent("nile-change",{detail:{content:this.content},bubbles:!0,composed:!0}))}};e([ce({type:String,attribute:!0,reflect:!0})],fS.prototype,"value",void 0),e([ce({type:Boolean,attribute:!0,reflect:!0})],fS.prototype,"noStyles",void 0),e([ce({type:Boolean,attribute:"singlelineeditor",reflect:!0})],fS.prototype,"singleLineEditor",void 0),e([ce({type:String})],fS.prototype,"placeholder",void 0),e([ce({attribute:"mentions",reflect:!0,converter:{fromAttribute:e=>{try{const t=JSON.parse(e),i={};for(const e of Object.keys(t)){const M=t[e];Array.isArray(M)&&(i[e]=M.filter((e=>e&&"string"==typeof e.key&&"string"==typeof e.label)).map((e=>({key:e.key,label:e.label}))))}return i}catch{return{}}},toAttribute:e=>JSON.stringify(e)}})],fS.prototype,"mentions",void 0),e([De()],fS.prototype,"content",void 0),fS=e([Ne("nile-rich-text-editor")],fS);"undefined"!=typeof window&&(window.nileElementsVersion='"1.3.4-beta-1.2"',window.nileVersion="__NILE_VERSION__",window.process=window.process||{env:{NODE_ENV:"production"}});const vS=r`
14706
+ `,bS={bold:"format_bold",italic:"format_italic",underline:"format_underline",link:"link_2",left:"format_align_left",center:"format_align_middle",right:"format_align_right",justify:"format_align_justify",ul:"format_list_bulleted",ol:"format_list_numbered",clear:"format_clear"};let fS=class extends ae{constructor(){super(...arguments),this.value="",this.noStyles=!1,this.singleLineEditor=!1,this.placeholder="",this.mentions={},this.content="",this.previewEl=null,this.toolbarEl=null,this.lastRange=null,this.buttonMap=new Map,this.headingSelect=null,this.fontSelect=null,this.colorInput=null,this.bgColorInput=null,this.colorSwatchEl=null,this.bgSwatchEl=null,this.containerEl=null,this.mentionsEl=null,this.onEditorKeydown=e=>{if(this.singleLineEditor&&"Enter"===e.key&&e.shiftKey)return void e.preventDefault();if(e.ctrlKey&&"i"===e.key.toLowerCase()&&(e.preventDefault(),xS(this.editorEl,"em"),this.updateContent(),this.updateToolbarState()),this.singleLineEditor&&"Enter"===e.key)return void e.preventDefault();if("Tab"!==e.key)return;e.preventDefault(),this.focusAndRestore();const t=window.getSelection();if(!t||0===t.rangeCount)return;const i=t.getRangeAt(0);if(e.shiftKey){if(i.collapsed&&i.startContainer.nodeType===Node.TEXT_NODE){const e=i.startContainer,M=i.startOffset,n=e.data.slice(0,M),o=n.replace(/(\t|[ \u00a0]{2})$/,"");if(o.length!==n.length){e.data=o+e.data.slice(M);const i=document.createRange();i.setStart(e,o.length),i.collapse(!0),t.removeAllRanges(),t.addRange(i),this.updateContent(),this.updateToolbarState()}}return}i.deleteContents();const M=document.createTextNode("\t");i.insertNode(M);const n=document.createRange();n.setStartAfter(M),n.collapse(!0),t.removeAllRanges(),t.addRange(n),this.updateContent(),this.updateToolbarState()},this.onSelectionChange=()=>{if(!this.editorEl)return;const e=document.getSelection();if(!e||0===e.rangeCount)return;const t=e.getRangeAt(0);this.editorEl.contains(t.commonAncestorContainer)&&(this.lastRange=t.cloneRange(),this.updateToolbarState())}}createRenderRoot(){return this}injectCss(e){if(this.querySelector("style[data-rte-style]"))return;const t=document.createElement("style");t.setAttribute("data-rte-style","true"),t.textContent=e,this.insertBefore(t,this.firstChild)}connectedCallback(){super.connectedCallback(),this.injectCss(CS.cssText),this.ensureStructure(),this.placeholder&&this.editorEl&&(this.editorEl.dataset.placeholder=this.placeholder),this.value&&!this.editorEl.innerHTML.trim()&&(this.editorEl.innerHTML=this.value),this.content=this.editorEl.innerHTML,this.toolbarEl&&this.wireAuthoredToolbar(this.toolbarEl),this.mentionsEl=this.querySelector("nile-rte-mentions"),this.mentionsEl&&(this.mentionsEl.attach?.(this.editorEl,this),this.mentionsEl.setExternalConfig?.(this.mentions)),this.wireEditor(),document.addEventListener("selectionchange",this.onSelectionChange,{passive:!0}),this.updateToolbarState(),this.syncPreview()}ensureStructure(){this.toolbarEl=this.querySelector("nile-rte-toolbar"),this.previewEl=this.querySelector("nile-rte-preview"),this.containerEl=this.querySelector(".rte-container"),this.containerEl||(this.containerEl=document.createElement("div"),this.containerEl.className="rte-container",this.appendChild(this.containerEl)),this.ensureEditor(),this.toolbarEl&&this.toolbarEl.parentElement!==this.containerEl&&this.containerEl.appendChild(this.toolbarEl),this.editorEl.parentElement!==this.containerEl&&this.containerEl.appendChild(this.editorEl),this.previewEl&&(this.previewEl.parentElement!==this&&this.appendChild(this.previewEl),this.previewEl.previousElementSibling!==this.containerEl&&this.insertBefore(this.previewEl,this.containerEl.nextSibling))}updateContentWithMention(e){this.updateContent(),this.dispatchEvent(new CustomEvent("nile-change",{detail:{content:this.content,mention:e},bubbles:!0,composed:!0}))}disconnectedCallback(){document.removeEventListener("selectionchange",this.onSelectionChange),this.mentionsEl&&this.mentionsEl.detach&&this.mentionsEl.detach(),super.disconnectedCallback()}updated(e){e.has("value")&&this.editorEl&&this.value!==this.editorEl.innerHTML&&(this.editorEl.innerHTML=this.value||"<p><br></p>",this.content=this.editorEl.innerHTML,this.syncPreview()),e.has("singleLineEditor")&&(this.editorEl&&this.editorEl.classList.toggle("single-line",this.singleLineEditor),this.previewEl&&this.previewEl.classList.toggle("single-line",this.singleLineEditor))}ensureEditor(){if(this.editorEl=this.querySelector(".editor"),!this.editorEl){const e=document.createElement("article");e.className="editor",e.setAttribute("contenteditable","true"),this.editorEl=e}this.placeholder&&(this.editorEl.dataset.placeholder=this.placeholder),this.editorEl.innerHTML.trim()||(this.editorEl.innerHTML="<p><br></p>")}unwrapMention(e,t=!0){const i=e.parentNode;if(!i)return;const M=t?(e.textContent??"").replace(/\u200B/g,""):"",n=document.createTextNode(M);i.insertBefore(n,e),i.removeChild(e);const o=document.createRange();o.setStartAfter(n),o.collapse(!0);const r=window.getSelection();r?.removeAllRanges(),r?.addRange(o)}scrubBrokenMentions(){if(!this.editorEl)return;this.editorEl.querySelectorAll("span.mention").forEach((e=>{const t=e,i=t.getAttribute("data-mention-key"),M=t.getAttribute("data-mention-label"),n=t.getAttribute("data-mention-trigger")||"",o=(t.textContent??"").replace(/\u200B/g,"").trim(),r=!!i&&!!M&&o.length>0&&o.startsWith(n)&&o.includes(M);o&&r||this.unwrapMention(t,!0)}))}wireEditor(){this.editorEl.addEventListener("input",(()=>{this.ensureAtLeastOneParagraph(),this.scrubBrokenMentions(),this.updateContent(),this.updateToolbarState()})),this.editorEl.addEventListener("mouseup",(()=>{this.saveSelection(),this.updateToolbarState()})),this.editorEl.addEventListener("keyup",(e=>{this.saveSelection(),["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End"].includes(e.key)&&this.updateToolbarState()})),this.editorEl.addEventListener("keydown",this.onEditorKeydown)}wireAuthoredToolbar(e){this.buttonMap.clear(),this.headingSelect=null,this.fontSelect=null,this.colorInput=null,Array.from(e.children).forEach((e=>{const t=e.tagName.toLowerCase();if("nile-rte-select"!==t||"align"!==e.getAttribute("type")){if("nile-rte-link"===t)return e.editorEl=this.editorEl,void e.addEventListener("link-changed",(()=>{this.updateContent(),this.updateToolbarState()}));if("nile-rte-toolbar-item"===t){let t=e.querySelector(":scope > nile-button");const i=e.getAttribute("name")||"",M=e.getAttribute("label")||i,n=e.getAttribute("icon"),o=e.innerHTML.trim().length>0;if(t||(t=document.createElement("nile-button"),t.variant="tertiary",t.size="small"),n)t.innerHTML=`<nile-icon name="${n}" aria-label="${M}"></nile-icon>`,e.innerHTML="";else if(o)t.innerHTML=e.innerHTML,e.innerHTML="";else{const n=bS[i];n?t.innerHTML=`<nile-icon name="${n}" size="20" color="black" aria-label="${M}"></nile-icon>`:t.textContent=M||i,e.innerHTML=""}if(!t.isConnected){const i=document.createElement("nile-tooltip");i.setAttribute("content",M),i.appendChild(t),e.appendChild(i)}t.setAttribute("aria-label",M),t.addEventListener("mousedown",(e=>e.preventDefault())),t.addEventListener("click",(()=>this.onToolbarCommand(i)));const r=this.buttonMap.get(i)??[];return r.push(t),void this.buttonMap.set(i,r)}if("nile-rte-select"!==t)"nile-rte-color"!==t||e.addEventListener("change",(e=>{this.focusAndRestore();const{mode:t,value:i}=e.detail;"backColor"===t?ES(this.editorEl,"backgroundColor",i,"data-rte-bg"):function(e,t){ES(e,"color",t,"data-rte-color")}(this.editorEl,i),this.updateContent(),this.updateToolbarState()}));else{const t=e.getAttribute("type")||"";e.addEventListener("change",(e=>{this.focusAndRestore();const i=e.detail;"heading"===t?function(e,t){const i=document.getSelection();if(!i||0===i.rangeCount)return;const M=OS(i.getRangeAt(0).startContainer,e);if(!M)return;if(M.tagName.toLowerCase()===t)return;const n=document.createElement(t);for(;M.firstChild;)n.appendChild(M.firstChild);M.replaceWith(n);const o=document.createRange();o.selectNodeContents(n),o.collapse(!0),i.removeAllRanges(),i.addRange(o)}(this.editorEl,i):"font"===t&&SS(this.editorEl,i),this.updateContent(),this.updateToolbarState()}))}}else e.addEventListener("change",(e=>{this.focusAndRestore();const t=e.detail;pS(this.editorEl,t),this.updateContent(),this.updateToolbarState()}))}))}saveSelection(){const e=window.getSelection();e&&e.rangeCount&&(this.lastRange=e.getRangeAt(0).cloneRange())}restoreSelection(){if(!this.lastRange)return;const e=document.getSelection();e&&(e.removeAllRanges(),e.addRange(this.lastRange))}focusAndRestore(){this.editorEl?.focus(),this.restoreSelection()}getCleanContent(){const e=this.editorEl.cloneNode(!0);return e.querySelectorAll("*").forEach((e=>{e.removeAttribute("style")})),e.innerHTML}insertList(e){if(this.restoreSelection(),!this.lastRange)return;const t=document.createElement(e),i=this.lastRange.extractContents(),M=document.createElement("div");M.appendChild(i),Array.from(M.childNodes).forEach((e=>{if(e.nodeType===Node.TEXT_NODE&&!e.textContent?.trim())return;const i=document.createElement("li");i.appendChild(e),t.appendChild(i)})),this.lastRange.insertNode(t),this.afterListEdit(t)}afterListEdit(e){const t=document.createRange();t.setStartAfter(e),t.collapse(!0);const i=window.getSelection();i?.removeAllRanges(),i?.addRange(t),this.saveSelection(),this.updateContent(),this.updateToolbarState()}ensureAtLeastOneParagraph(){const e=this.editorEl;if(!e)return;const t=""===(e.textContent??"").replace(/\u200B/g,"").trim();if(0===e.childNodes.length||t)return void(e.innerHTML="<p><br></p>");if(!e.querySelector("p,h1,h2,h3,h4,h5,h6,ul,ol,table,blockquote,pre")){const t=document.createElement("p");for(;e.firstChild;)t.appendChild(e.firstChild);return t.hasChildNodes()||t.appendChild(document.createElement("br")),void e.appendChild(t)}e.querySelectorAll("p").forEach((e=>{""===(e.textContent??"").replace(/\u200B/g,"")&&(e.innerHTML.toLowerCase().includes("<br")||(e.innerHTML="<br>"))}))}onToolbarCommand(e){switch(this.focusAndRestore(),e){case"bold":xS(this.editorEl,"strong");break;case"italic":xS(this.editorEl,"em");break;case"underline":xS(this.editorEl,"u");break;case"left":pS(this.editorEl,"left");break;case"center":pS(this.editorEl,"center");break;case"right":pS(this.editorEl,"right");break;case"justify":pS(this.editorEl,"justify");break;case"ul":kS(this.editorEl,"ul"),this.updateContent(),this.updateToolbarState();break;case"ol":kS(this.editorEl,"ol"),this.updateContent(),this.updateToolbarState();break;case"link":break;case"clear":const e=document.createTreeWalker(this.editorEl,NodeFilter.SHOW_ELEMENT),t=[];for(;e.nextNode();){const i=e.currentNode;i.removeAttribute("style"),["B","STRONG","I","EM","U","SPAN","FONT"].includes(i.tagName)&&t.push(i)}for(const e of t){for(;e.firstChild;)e.parentNode?.insertBefore(e.firstChild,e);e.remove()}this.ensureAtLeastOneParagraph()}this.updateContent(),this.updateToolbarState()}setBtnActive(e,t){const i=this.buttonMap.get(e);if(i)for(const e of i)e.toggleAttribute("data-active",!!t)}updateToolbarState(){if(!this.editorEl)return;const e=document.getSelection();if(!e||0===e.rangeCount)return;const t=e.getRangeAt(0);if(!this.editorEl.contains(t.commonAncestorContainer))return;const i=function(e){for(;e&&!(e instanceof HTMLElement);)e=e.parentNode;return e}(t.startContainer)||this.editorEl,M=getComputedStyle(i),n=OS(t.startContainer,this.editorEl)||this.editorEl,o=(()=>{let e=i;for(;e&&e!==this.editorEl;){if(e instanceof HTMLElement){const t=e.tagName.toLowerCase();if("strong"===t||"b"===t)return!0;const i=getComputedStyle(e).fontWeight;if(parseInt(i,10)>=600)return!0}e=e.parentNode}return!1})(),r=(()=>{let e=i;for(;e&&e!==this.editorEl;){if(e instanceof HTMLElement){const t=e.tagName.toLowerCase();if("em"===t||"i"===t)return!0;if("italic"===getComputedStyle(e).fontStyle)return!0}e=e.parentNode}return!1})(),s=(()=>{let e=i;for(;e&&e!==this.editorEl;){if(e instanceof HTMLElement){const t=getComputedStyle(e).textDecorationLine;if(t&&t.includes("underline"))return!0;if("u"===e.tagName.toLowerCase())return!0}e=e.parentNode}return!1})(),a=!!i.closest("a"),l=n.style.textAlign||getComputedStyle(n).textAlign||"start",N="start"===l?"left":l,g=!!i.closest("li")&&i.closest("ul,ol")?.tagName.toLowerCase()||"";if(this.setBtnActive("bold",o),this.setBtnActive("italic",r),this.setBtnActive("underline",s),this.setBtnActive("link",a),this.setBtnActive("left","left"===N&&!["center","right","justify"].includes(N)),this.setBtnActive("center","center"===N),this.setBtnActive("right","right"===N),this.setBtnActive("justify","justify"===N),this.setBtnActive("ul","ul"===g),this.setBtnActive("ol","ol"===g),this.headingSelect){const e=n.tagName.toLowerCase(),t=["h1","h2","h3"].includes(e)?e:"p";this.headingSelect.value!==t&&(this.headingSelect.value=t)}if(this.fontSelect){const e=(M.fontFamily||"").replace(/["']/g,"").split(",")[0].trim().toLowerCase();if(e)for(const t of Array.from(this.fontSelect.options))if(t.value.toLowerCase()===e){this.fontSelect.value=t.value;break}}if(this.colorInput){const e=LS(M.color);e&&this.colorInput.value.toLowerCase()!==e.toLowerCase()&&(this.colorInput.value=e),this.colorSwatchEl&&(this.colorSwatchEl.style.backgroundColor=this.colorInput.value)}if(this.bgColorInput){const e=getComputedStyle(i).backgroundColor;if(e&&!/transparent|rgba\(\s*0\s*,\s*0\s*,\s*0\s*,\s*0\s*\)/i.test(e)){const t=LS(e);t&&this.bgColorInput.value.toLowerCase()!==t.toLowerCase()&&(this.bgColorInput.value=t)}this.bgSwatchEl&&(this.bgSwatchEl.style.backgroundColor=this.bgColorInput.value)}}syncPreview(){this.updateContent()}updateContent(){if(!this.editorEl)return;this.ensureAtLeastOneParagraph();const e=""===(this.editorEl.textContent??"").trim();this.editorEl.classList.toggle("empty",e);const t=this.editorEl.cloneNode(!0);if(this.noStyles)t.querySelectorAll("[style]").forEach((e=>e.removeAttribute("style")));else{const e=document.createTreeWalker(this.editorEl,NodeFilter.SHOW_ELEMENT),i=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT),M=["font-weight","font-style","text-decoration","color","background-color","font-size","font-family","text-align","line-height","letter-spacing","white-space","vertical-align","list-style-position","padding-inline-start"];for(;e.nextNode()&&i.nextNode();){const t=e.currentNode,n=i.currentNode,o=window.getComputedStyle(t),r=M.map((e=>`${e}:${o.getPropertyValue(e)}`)).join(";");r.trim()&&n.setAttribute("style",r)}}this.content=t.innerHTML,this.previewEl&&(this.previewEl.innerHTML=this.content),this.dispatchEvent(new CustomEvent("nile-change",{detail:{content:this.content},bubbles:!0,composed:!0}))}};e([ce({type:String,attribute:!0,reflect:!0})],fS.prototype,"value",void 0),e([ce({type:Boolean,attribute:!0,reflect:!0})],fS.prototype,"noStyles",void 0),e([ce({type:Boolean,attribute:"singlelineeditor",reflect:!0})],fS.prototype,"singleLineEditor",void 0),e([ce({type:String})],fS.prototype,"placeholder",void 0),e([ce({attribute:"mentions",reflect:!0,converter:{fromAttribute:e=>{try{const t=JSON.parse(e),i={};for(const e of Object.keys(t)){const M=t[e];Array.isArray(M)&&(i[e]=M.filter((e=>e&&"string"==typeof e.key&&"string"==typeof e.label)).map((e=>({key:e.key,label:e.label}))))}return i}catch{return{}}},toAttribute:e=>JSON.stringify(e)}})],fS.prototype,"mentions",void 0),e([De()],fS.prototype,"content",void 0),fS=e([Ne("nile-rich-text-editor")],fS);"undefined"!=typeof window&&(window.nileElementsVersion='"1.3.4-beta-1.3"',window.nileVersion="__NILE_VERSION__",window.process=window.process||{env:{NODE_ENV:"production"}});const vS=r`
14707
14707
  :host {
14708
14708
  --sidebar-width: 240px;
14709
14709
  --sidebar-collapsed-width: 70px;
@@ -1,2 +1,2 @@
1
- function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o;}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o;},_typeof(o);}System.register(["tslib","lit","lit/decorators.js","./nile-date-picker.css.cjs.js","../internal/nile-element.cjs.js"],function(_export,_context){"use strict";var e,t,i,n,s,l,r,_templateObject,a;function _taggedTemplateLiteral(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}));}function _slicedToArray(r,e){return _arrayWithHoles(r)||_iterableToArrayLimit(r,e)||_unsupportedIterableToArray(r,e)||_nonIterableRest();}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0;}}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n;}function _iterableToArrayLimit(r,l){var t=null==r?null:"undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(null!=t){var e,n,i,u,a=[],f=!0,o=!1;try{if(i=(t=t.call(r)).next,0===l){if(Object(t)!==t)return;f=!1;}else for(;!(f=(e=i.call(t)).done)&&(a.push(e.value),a.length!==l);f=!0);}catch(r){o=!0,n=r;}finally{try{if(!f&&null!=t["return"]&&(u=t["return"](),Object(u)!==u))return;}finally{if(o)throw n;}}return a;}}function _arrayWithHoles(r){if(Array.isArray(r))return r;}function _classCallCheck(a,n){if(!(a instanceof n))throw new TypeError("Cannot call a class as a function");}function _defineProperties(e,r){for(var t=0;t<r.length;t++){var o=r[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,_toPropertyKey(o.key),o);}}function _createClass(e,r,t){return r&&_defineProperties(e.prototype,r),t&&_defineProperties(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e;}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==_typeof(i)?i:i+"";}function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.");}return("string"===r?String:Number)(t);}function _callSuper(t,o,e){return o=_getPrototypeOf(o),_possibleConstructorReturn(t,_isNativeReflectConstruct()?Reflect.construct(o,e||[],_getPrototypeOf(t).constructor):o.apply(t,e));}function _possibleConstructorReturn(t,e){if(e&&("object"==_typeof(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(t);}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e;}function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));}catch(t){}return(_isNativeReflectConstruct=function _isNativeReflectConstruct(){return!!t;})();}function _superPropGet(t,o,e,r){var p=_get(_getPrototypeOf(1&r?t.prototype:t),o,e);return 2&r&&"function"==typeof p?function(t){return p.apply(e,t);}:p;}function _get(){return _get="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,r){var p=_superPropBase(e,t);if(p){var n=Object.getOwnPropertyDescriptor(p,t);return n.get?n.get.call(arguments.length<3?e:r):n.value;}},_get.apply(null,arguments);}function _superPropBase(t,o){for(;!{}.hasOwnProperty.call(t,o)&&null!==(t=_getPrototypeOf(t)););return t;}function _getPrototypeOf(t){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t);},_getPrototypeOf(t);}function _inherits(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&_setPrototypeOf(t,e);}function _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t;},_setPrototypeOf(t,e);}return{setters:[function(_tslib){e=_tslib.__decorate;},function(_lit){t=_lit.html;},function(_litDecoratorsJs){i=_litDecoratorsJs.property;n=_litDecoratorsJs.query;s=_litDecoratorsJs.customElement;},function(_nileDatePickerCssCjsJs){l=_nileDatePickerCssCjsJs.s;},function(_internalNileElementCjsJs){r=_internalNileElementCjsJs.N;}],execute:function execute(){_export("N",a=/*#__PURE__*/function(_r){function a(){var _this;_classCallCheck(this,a);_this=_callSuper(this,a,arguments),_this.range=!1,_this.hideTypes=!1,_this.doubleClickUnselect=!1,_this.allowClear=!1,_this.open=!1,_this.hideTimeZone=!1,_this.type="absolute",_this.showManualInputs=!1,_this.hideDurationFields=[],_this.allowedDates="{}",_this.jumpToTypedDate=!1,_this.inputFormat="DD/MM/YYYY";return _this;}_inherits(a,_r);return _createClass(a,[{key:"parseDate",value:function parseDate(e){if(!e)return null;var t=this.inputFormat,i=t.match(/[^A-Z]/i);if(!i)return null;var n=i[0];if(!e.includes(n))return null;var s=e.split(n),l=t.split(n);var r=null,_a=null,o=null;for(var _e=0;_e<l.length;_e++){var _t=l[_e],_i=s[_e];if(!_i)return null;if("DD"===_t){if(2!==_i.length)return null;r=Number(_i);}if("MM"===_t){if(2!==_i.length)return null;_a=Number(_i)-1;}if("YYYY"===_t){if(4!==_i.length)return null;o=Number(_i);}}if(null==r||null==_a||null==o)return null;var u=new Date(o,_a,r);return u.getFullYear()!==o||u.getMonth()!==_a||u.getDate()!==r?null:u;}},{key:"formatDate",value:function formatDate(e){if(!e)return"";var t=String(e.getDate()).padStart(2,"0"),i=String(e.getMonth()+1).padStart(2,"0"),n=e.getFullYear();switch(this.inputFormat){case"DD/MM/YYYY":default:return"".concat(t,"/").concat(i,"/").concat(n);case"MM/DD/YYYY":return"".concat(i,"/").concat(t,"/").concat(n);case"YYYY/MM/DD":return"".concat(n,"/").concat(i,"/").concat(t);case"YYYY.MM.DD":return"".concat(n,".").concat(i,".").concat(t);case"DD.MM.YYYY":return"".concat(t,".").concat(i,".").concat(n);}}},{key:"parseRange",value:function parseRange(e){if(!this.range)return{first:this.parseDate(e),second:null};if(!e.includes(" - "))return{first:this.parseDate(e),second:null};var _e$split=e.split(" - "),_e$split2=_slicedToArray(_e$split,2),t=_e$split2[0],i=_e$split2[1],n=this.parseDate(t);var s=null;return i&&i.length>=10&&(s=this.parseDate(i)),{first:n,second:s};}},{key:"jumpTo",value:function jumpTo(e){this.open=!0;var t=this.shadowRoot.querySelector("nile-calendar");t&&(t.currentYear=e.getFullYear(),t.currentMonth=e.getMonth(),t.value=e,t.valueAttribute=e.toISOString());}},{key:"syncRangeCalendar",value:function syncRangeCalendar(e,t){var i=this.shadowRoot.querySelector("nile-calendar");i&&this.range&&(e&&(i.startDate=e),t&&(i.endDate=t),e&&t&&e.getTime()>t.getTime()&&(i.startDate=t,i.endDate=e));}},{key:"firstUpdated",value:function firstUpdated(){var _superPropGet2,_this2=this;if((_superPropGet2=_superPropGet(a,"firstUpdated",this,3))!==null&&_superPropGet2!==void 0&&_superPropGet2([new Map()]),!this.jumpToTypedDate)return;var e=this.querySelector("nile-input");e&&e.addEventListener("nile-input",function(e){var t=e.detail.value,_this2$parseRange=_this2.parseRange(t),i=_this2$parseRange.first,n=_this2$parseRange.second;if(_this2.range){if(i&&!n&&(_this2.jumpTo(i),_this2.syncRangeCalendar(i,null)),i&&n){var _ref;var _e2=i,_t2=n;_e2.getTime()>_t2.getTime()&&(_ref=[_t2,_e2],_e2=_ref[0],_t2=_ref[1],_ref),_this2.jumpTo(_t2),_this2.syncRangeCalendar(_e2,_t2);}}else i&&_this2.jumpTo(i);});}},{key:"render",value:function render(){var _this3=this;return t(_templateObject||(_templateObject=_taggedTemplateLiteral(["\n <nile-dropdown .open=\"","\" part=\"dd-base\" .hoist=\"","\" distance=\"6\" exportparts=\"base\">\n <slot slot=\"trigger\" part=\"trigger\" name=\"trigger\"></slot>\n <nile-calendar\n .hideTypes=\"","\"\n \t.type=\"","\"\n value=\"","\"\n .range=\"","\"\n @nile-init=\"","\"\n @nile-destroy=\"","\"\n @nile-changed=\"","\"\n @nile-change=\"","\"\n .allowedDates=\"","\"\n @nile-type-change=\"","\"\n @nile-clear=\"","\"\n .hideDurationFields=\"","\"\n .showManualInputs=\"","\"\n .doubleClickUnselect=\"","\"\n .allowClear=\"","\"\n ></nile-calendar>\n </nile-dropdown>\n "])),this.open,!0,this.hideTypes,this.type,this.value,this.range,function(e){return e.stopPropagation();},function(e){return e.stopPropagation();},function(e){return e.stopPropagation();},this.handleChanged,this.allowedDates,function(e){e.stopPropagation(),_this3.emit("nile-type-change",e.detail);},function(e){e.stopPropagation(),_this3.emit("nile-clear");},this.hideDurationFields,this.showManualInputs,this.doubleClickUnselect,this.allowClear);}},{key:"handleChanged",value:function handleChanged(e){var _this$dropdown2;e.stopPropagation();var t=this.querySelector("nile-input");if(!this.range){var _this$dropdown;var _i2=e.detail.value;return _i2&&t&&(t.value=this.formatDate(new Date(_i2)),t.emit("nile-input",{value:t.value})),this.emit("nile-change",{value:_i2}),void((_this$dropdown=this.dropdown)===null||_this$dropdown===void 0?void 0:_this$dropdown.hide());}var i=e.detail.startDate,n=e.detail.endDate;if(t){var _e3="";i&&(_e3+=this.formatDate(new Date(i))),i&&n&&(_e3+=" - "+this.formatDate(new Date(n))),t.value=_e3,t.emit("nile-input",{value:_e3});}this.emit("nile-change",{start:i,end:n}),(_this$dropdown2=this.dropdown)===null||_this$dropdown2===void 0?void 0:_this$dropdown2.hide();}},{key:"connectedCallback",value:function connectedCallback(){_superPropGet(a,"connectedCallback",this,3)([]),this.emit("nile-init");}},{key:"disconnectedCallback",value:function disconnectedCallback(){_superPropGet(a,"disconnectedCallback",this,3)([]),this.emit("nile-destroy");}}],[{key:"styles",get:function get(){return[l];}}]);}(r));e([i({type:Boolean})],a.prototype,"range",void 0),e([i({type:Boolean})],a.prototype,"hideTypes",void 0),e([i({type:Boolean,reflect:!0})],a.prototype,"doubleClickUnselect",void 0),e([i({type:Boolean,reflect:!0})],a.prototype,"allowClear",void 0),e([i({type:Boolean})],a.prototype,"open",void 0),e([i({type:Boolean,attribute:"hide-time-zone"})],a.prototype,"hideTimeZone",void 0),e([i({type:String,reflect:!0})],a.prototype,"type",void 0),e([i({type:Boolean,attribute:"showManualInputs"})],a.prototype,"showManualInputs",void 0),e([i()],a.prototype,"value",void 0),e([i({type:Array,attribute:"hide-duration-fields"})],a.prototype,"hideDurationFields",void 0),e([i({attribute:"allowedDates"})],a.prototype,"allowedDates",void 0),e([i({type:Boolean,attribute:!0,reflect:!0})],a.prototype,"jumpToTypedDate",void 0),e([i({type:String,attribute:!0,reflect:!0})],a.prototype,"inputFormat",void 0),e([n("nile-dropdown")],a.prototype,"dropdown",void 0),_export("N",a=e([s("nile-date-picker")],a));}};});
1
+ function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o;}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o;},_typeof(o);}System.register(["tslib","lit","lit/decorators.js","./nile-date-picker.css.cjs.js","../internal/nile-element.cjs.js"],function(_export,_context){"use strict";var e,t,i,n,s,l,r,_templateObject,a;function _taggedTemplateLiteral(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}));}function _slicedToArray(r,e){return _arrayWithHoles(r)||_iterableToArrayLimit(r,e)||_unsupportedIterableToArray(r,e)||_nonIterableRest();}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0;}}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n;}function _iterableToArrayLimit(r,l){var t=null==r?null:"undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(null!=t){var e,n,i,u,a=[],f=!0,o=!1;try{if(i=(t=t.call(r)).next,0===l){if(Object(t)!==t)return;f=!1;}else for(;!(f=(e=i.call(t)).done)&&(a.push(e.value),a.length!==l);f=!0);}catch(r){o=!0,n=r;}finally{try{if(!f&&null!=t["return"]&&(u=t["return"](),Object(u)!==u))return;}finally{if(o)throw n;}}return a;}}function _arrayWithHoles(r){if(Array.isArray(r))return r;}function _classCallCheck(a,n){if(!(a instanceof n))throw new TypeError("Cannot call a class as a function");}function _defineProperties(e,r){for(var t=0;t<r.length;t++){var o=r[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,_toPropertyKey(o.key),o);}}function _createClass(e,r,t){return r&&_defineProperties(e.prototype,r),t&&_defineProperties(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e;}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==_typeof(i)?i:i+"";}function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.");}return("string"===r?String:Number)(t);}function _callSuper(t,o,e){return o=_getPrototypeOf(o),_possibleConstructorReturn(t,_isNativeReflectConstruct()?Reflect.construct(o,e||[],_getPrototypeOf(t).constructor):o.apply(t,e));}function _possibleConstructorReturn(t,e){if(e&&("object"==_typeof(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(t);}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e;}function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));}catch(t){}return(_isNativeReflectConstruct=function _isNativeReflectConstruct(){return!!t;})();}function _superPropGet(t,o,e,r){var p=_get(_getPrototypeOf(1&r?t.prototype:t),o,e);return 2&r&&"function"==typeof p?function(t){return p.apply(e,t);}:p;}function _get(){return _get="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,r){var p=_superPropBase(e,t);if(p){var n=Object.getOwnPropertyDescriptor(p,t);return n.get?n.get.call(arguments.length<3?e:r):n.value;}},_get.apply(null,arguments);}function _superPropBase(t,o){for(;!{}.hasOwnProperty.call(t,o)&&null!==(t=_getPrototypeOf(t)););return t;}function _getPrototypeOf(t){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t);},_getPrototypeOf(t);}function _inherits(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&_setPrototypeOf(t,e);}function _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t;},_setPrototypeOf(t,e);}return{setters:[function(_tslib){e=_tslib.__decorate;},function(_lit){t=_lit.html;},function(_litDecoratorsJs){i=_litDecoratorsJs.property;n=_litDecoratorsJs.query;s=_litDecoratorsJs.customElement;},function(_nileDatePickerCssCjsJs){l=_nileDatePickerCssCjsJs.s;},function(_internalNileElementCjsJs){r=_internalNileElementCjsJs.N;}],execute:function execute(){_export("N",a=/*#__PURE__*/function(_r){function a(){var _this;_classCallCheck(this,a);_this=_callSuper(this,a,arguments),_this.range=!1,_this.hideTypes=!1,_this.doubleClickUnselect=!1,_this.allowClear=!1,_this.open=!1,_this.hideTimeZone=!1,_this.type="absolute",_this.showManualInputs=!1,_this.hideDurationFields=[],_this.allowedDates="{}",_this.jumpToTypedDate=!1,_this.inputFormat="DD/MM/YYYY";return _this;}_inherits(a,_r);return _createClass(a,[{key:"parseDate",value:function parseDate(e){if(!e)return null;var t=this.inputFormat,i=t.match(/[^A-Z]/i);if(!i)return null;var n=i[0];if(!e.includes(n))return null;var s=e.split(n),l=t.split(n);var r=null,_a=null,o=null;for(var _e=0;_e<l.length;_e++){var _t=l[_e],_i=s[_e];if(!_i)return null;if("DD"===_t){if(2!==_i.length)return null;r=Number(_i);}if("MM"===_t){if(2!==_i.length)return null;_a=Number(_i)-1;}if("YYYY"===_t){if(4!==_i.length)return null;o=Number(_i);}}if(null==r||null==_a||null==o)return null;var h=new Date(o,_a,r);return h.getFullYear()!==o||h.getMonth()!==_a||h.getDate()!==r?null:h;}},{key:"formatDate",value:function formatDate(e){if(!e)return"";var t=String(e.getDate()).padStart(2,"0"),i=String(e.getMonth()+1).padStart(2,"0"),n=e.getFullYear();switch(this.inputFormat){case"DD/MM/YYYY":default:return"".concat(t,"/").concat(i,"/").concat(n);case"MM/DD/YYYY":return"".concat(i,"/").concat(t,"/").concat(n);case"YYYY/MM/DD":return"".concat(n,"/").concat(i,"/").concat(t);case"YYYY.MM.DD":return"".concat(n,".").concat(i,".").concat(t);case"DD.MM.YYYY":return"".concat(t,".").concat(i,".").concat(n);}}},{key:"parseRange",value:function parseRange(e){if(!this.range)return{first:this.parseDate(e),second:null};if(!e.includes(" - "))return{first:this.parseDate(e),second:null};var _e$split=e.split(" - "),_e$split2=_slicedToArray(_e$split,2),t=_e$split2[0],i=_e$split2[1],n=this.parseDate(t);var s=null;return i&&i.length>=10&&(s=this.parseDate(i)),{first:n,second:s};}},{key:"jumpTo",value:function jumpTo(e){this.open=!0;var t=this.shadowRoot.querySelector("nile-calendar");t&&(t.currentYear=e.getFullYear(),t.currentMonth=e.getMonth(),t.value=e,t.valueAttribute=e.toISOString());}},{key:"syncRangeCalendar",value:function syncRangeCalendar(e,t){var i=this.shadowRoot.querySelector("nile-calendar");i&&this.range&&(e&&(i.startDate=e),t&&(i.endDate=t),e&&t&&e.getTime()>t.getTime()&&(i.startDate=t,i.endDate=e));}},{key:"firstUpdated",value:function firstUpdated(){var _superPropGet2,_this2=this;if((_superPropGet2=_superPropGet(a,"firstUpdated",this,3))!==null&&_superPropGet2!==void 0&&_superPropGet2([new Map()]),!this.jumpToTypedDate)return;var e=this.querySelector("nile-input");e&&e.addEventListener("nile-input",function(e){var t=e.detail.value,_this2$parseRange=_this2.parseRange(t),i=_this2$parseRange.first,n=_this2$parseRange.second;if(_this2.range){if(i&&!n&&(_this2.jumpTo(i),_this2.syncRangeCalendar(i,null)),i&&n){var _ref;var _e2=i,_t2=n;_e2.getTime()>_t2.getTime()&&(_ref=[_t2,_e2],_e2=_ref[0],_t2=_ref[1],_ref),_this2.jumpTo(_t2),_this2.syncRangeCalendar(_e2,_t2);}}else i&&_this2.jumpTo(i);});}},{key:"render",value:function render(){var _this3=this;return t(_templateObject||(_templateObject=_taggedTemplateLiteral(["\n <nile-dropdown .open=\"","\" part=\"dd-base\" .hoist=\"","\" distance=\"6\" exportparts=\"base\">\n <slot slot=\"trigger\" part=\"trigger\" name=\"trigger\"></slot>\n <nile-calendar\n .hideTypes=\"","\"\n \t.type=\"","\"\n value=\"","\"\n .range=\"","\"\n @nile-init=\"","\"\n @nile-destroy=\"","\"\n @nile-changed=\"","\"\n @nile-change=\"","\"\n .allowedDates=\"","\"\n @nile-type-change=\"","\"\n @nile-clear=\"","\"\n .hideDurationFields=\"","\"\n .showManualInputs=\"","\"\n .doubleClickUnselect=\"","\"\n .allowClear=\"","\"\n ></nile-calendar>\n </nile-dropdown>\n "])),this.open,!0,this.hideTypes,this.type,this.value,this.range,function(e){return e.stopPropagation();},function(e){return e.stopPropagation();},function(e){return e.stopPropagation();},this.handleChanged,this.allowedDates,function(e){e.stopPropagation(),_this3.emit("nile-type-change",e.detail);},function(e){e.stopPropagation(),_this3.emit("nile-clear");},this.hideDurationFields,this.showManualInputs,this.doubleClickUnselect,this.allowClear);}},{key:"handleChanged",value:function handleChanged(e){var _this$dropdown2;e.stopPropagation();var t=e.detail,i=this.querySelector("nile-input");if(!this.range){var _this$dropdown;var _e3=t.value;return _e3&&i&&(i.value=this.formatDate(new Date(_e3)),i.emit("nile-input",{value:i.value})),this.emit("nile-changed",t),this.emit("nile-change",t),void((_this$dropdown=this.dropdown)===null||_this$dropdown===void 0?void 0:_this$dropdown.hide());}var n=t.startDate,s=t.endDate;if(i){var _e4="";n&&(_e4+=this.formatDate(new Date(n))),n&&s&&(_e4+=" - "+this.formatDate(new Date(s))),i.value=_e4,i.emit("nile-input",{value:_e4});}this.emit("nile-changed",t),this.emit("nile-change",t),(_this$dropdown2=this.dropdown)===null||_this$dropdown2===void 0?void 0:_this$dropdown2.hide();}},{key:"connectedCallback",value:function connectedCallback(){_superPropGet(a,"connectedCallback",this,3)([]),this.emit("nile-init");}},{key:"disconnectedCallback",value:function disconnectedCallback(){_superPropGet(a,"disconnectedCallback",this,3)([]),this.emit("nile-destroy");}}],[{key:"styles",get:function get(){return[l];}}]);}(r));e([i({type:Boolean})],a.prototype,"range",void 0),e([i({type:Boolean})],a.prototype,"hideTypes",void 0),e([i({type:Boolean,reflect:!0})],a.prototype,"doubleClickUnselect",void 0),e([i({type:Boolean,reflect:!0})],a.prototype,"allowClear",void 0),e([i({type:Boolean})],a.prototype,"open",void 0),e([i({type:Boolean,attribute:"hide-time-zone"})],a.prototype,"hideTimeZone",void 0),e([i({type:String,reflect:!0})],a.prototype,"type",void 0),e([i({type:Boolean,attribute:"showManualInputs"})],a.prototype,"showManualInputs",void 0),e([i()],a.prototype,"value",void 0),e([i({type:Array,attribute:"hide-duration-fields"})],a.prototype,"hideDurationFields",void 0),e([i({attribute:"allowedDates"})],a.prototype,"allowedDates",void 0),e([i({type:Boolean,attribute:!0,reflect:!0})],a.prototype,"jumpToTypedDate",void 0),e([i({type:String,attribute:!0,reflect:!0})],a.prototype,"inputFormat",void 0),e([n("nile-dropdown")],a.prototype,"dropdown",void 0),_export("N",a=e([s("nile-date-picker")],a));}};});
2
2
  //# sourceMappingURL=nile-date-picker.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nile-date-picker.cjs.js","sources":["../../../src/nile-date-picker/nile-date-picker.ts"],"sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nimport {\n LitElement,\n html,\n CSSResultArray,\n TemplateResult,\n} from 'lit';\nimport { customElement, query, property } from 'lit/decorators.js';\nimport { styles } from './nile-date-picker.css';\nimport NileElement from '../internal/nile-element';\nimport { NileDropdown } from '../nile-dropdown';\n\n/**\n * Nile icon component.\n *\n * @tag nile-date-picker\n *\n */\n@customElement('nile-date-picker')\nexport class NileDatePicker extends NileElement {\n /**\n * The styles for DatePicker\n * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`\n */\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n @property({ type: Boolean }) range = false;\n\n @property({ type: Boolean }) hideTypes = false;\n\n @property({ type: Boolean, reflect: true }) doubleClickUnselect = false;\n\n @property({ type: Boolean, reflect: true }) allowClear = false;\n\n @property({ type: Boolean }) open = false;\n\n @property({ type: Boolean, attribute: 'hide-time-zone' }) hideTimeZone = false;\n\n @property({ type: String, reflect: true }) type :'absolute' | 'relative' = 'absolute';\n\n @property({ type: Boolean, attribute: 'showManualInputs' })\n showManualInputs = false;\n\n @property() value: any;\n @property({ type: Array, attribute: 'hide-duration-fields' })\n hideDurationFields: any = [];\n\n @property({ attribute: 'allowedDates' }) allowedDates: any = '{}';\n\n // Jump to typed date activated by user\n @property({ type: Boolean, attribute: true, reflect: true }) jumpToTypedDate = false;\n\n // Strict input format\n @property({ type: String, attribute: true, reflect: true }) inputFormat = \"DD/MM/YYYY\";\n\n\n @query('nile-dropdown') dropdown: NileDropdown;\n\n /**\n * Render method\n * @slot This is a slot test\n */\n private parseDate(str: string): Date | null {\n if (!str) return null;\n\n const fmt = this.inputFormat; \n const sepMatch = fmt.match(/[^A-Z]/i);\n if (!sepMatch) return null;\n const sep = sepMatch[0];\n\n if (!str.includes(sep)) return null;\n\n const parts = str.split(sep);\n const fmtParts = fmt.split(sep);\n\n let day = null, month = null, year = null;\n\n for (let i = 0; i < fmtParts.length; i++) {\n const f = fmtParts[i];\n const v = parts[i];\n if (!v) return null;\n\n if (f === \"DD\") {\n if (v.length !== 2) return null;\n day = Number(v);\n }\n\n if (f === \"MM\") {\n if (v.length !== 2) return null;\n month = Number(v) - 1;\n }\n\n if (f === \"YYYY\") {\n if (v.length !== 4) return null;\n year = Number(v);\n }\n }\n\n if (day == null || month == null || year == null) return null;\n\n const d = new Date(year, month, day);\n if (\n d.getFullYear() !== year ||\n d.getMonth() !== month ||\n d.getDate() !== day\n ) return null;\n\n return d;\n }\n\n\n private formatDate(date: Date): string {\n if (!date) return \"\";\n \n const day = String(date.getDate()).padStart(2, \"0\");\n const month = String(date.getMonth() + 1).padStart(2, \"0\");\n const year = date.getFullYear();\n \n switch (this.inputFormat) {\n case \"DD/MM/YYYY\":\n return `${day}/${month}/${year}`;\n case \"MM/DD/YYYY\":\n return `${month}/${day}/${year}`;\n case \"YYYY/MM/DD\":\n return `${year}/${month}/${day}`;\n case \"YYYY.MM.DD\":\n return `${year}.${month}.${day}`;\n case \"DD.MM.YYYY\":\n return `${day}.${month}.${year}`;\n default:\n return `${day}/${month}/${year}`;\n }\n }\n\n private parseRange(input: string) {\n if (!this.range) {\n return { first: this.parseDate(input), second: null };\n }\n\n const RANGE_SEP = \" - \";\n\n if (!input.includes(RANGE_SEP)) {\n return { first: this.parseDate(input), second: null };\n }\n\n const [firstRaw, secondRaw] = input.split(RANGE_SEP);\n\n const first = this.parseDate(firstRaw);\n let second = null;\n\n if (secondRaw && secondRaw.length >= 10) {\n second = this.parseDate(secondRaw);\n }\n\n return { first, second };\n }\n\n private jumpTo(date: Date) {\n this.open = true;\n\n const cal = this.shadowRoot!.querySelector(\"nile-calendar\") as any;\n if (!cal) return;\n\n cal.currentYear = date.getFullYear();\n cal.currentMonth = date.getMonth();\n cal.value = date;\n cal.valueAttribute = date.toISOString();\n }\n\n private syncRangeCalendar(first: Date | null, second: Date | null) {\n const cal = this.shadowRoot!.querySelector(\"nile-calendar\") as any;\n if (!cal) return;\n\n if (!this.range) return; \n\n if (first) cal.startDate = first;\n if (second) cal.endDate = second;\n\n \n if (first && second && first.getTime() > second.getTime()) {\n cal.startDate = second;\n cal.endDate = first;\n }\n }\n firstUpdated() {\n super.firstUpdated?.(new Map());\n\n if (!this.jumpToTypedDate) return;\n\n const input = this.querySelector(\"nile-input\");\n if (!input) return;\n\n input.addEventListener(\"nile-input\", (e: any) => {\n const text = e.detail.value;\n const { first, second } = this.parseRange(text);\n\n if (!this.range) {\n if (first) this.jumpTo(first);\n return;\n }\n\n if (first && !second) {\n this.jumpTo(first);\n this.syncRangeCalendar(first, null);\n }\n\n if (first && second) {\n let start = first, end = second;\n if (start.getTime() > end.getTime()) {\n [start, end] = [end, start];\n }\n\n this.jumpTo(end);\n this.syncRangeCalendar(start, end);\n }\n });\n }\n\n \n render(): TemplateResult {\n return html`\n <nile-dropdown .open=\"${this.open}\" part=\"dd-base\" .hoist=\"${true}\" distance=\"6\" exportparts=\"base\">\n <slot slot=\"trigger\" part=\"trigger\" name=\"trigger\"></slot>\n <nile-calendar\n .hideTypes=\"${this.hideTypes}\"\n \t.type=\"${this.type}\"\n value=\"${this.value}\"\n .range=\"${this.range}\"\n @nile-init=\"${(e:CustomEvent)=>e.stopPropagation()}\"\n @nile-destroy=\"${(e:CustomEvent)=>e.stopPropagation()}\"\n @nile-changed=\"${(e:CustomEvent)=>e.stopPropagation()}\"\n @nile-change=\"${this.handleChanged}\"\n .allowedDates=\"${this.allowedDates}\"\n @nile-type-change=\"${(e:CustomEvent)=>{e.stopPropagation();this.emit('nile-type-change',e.detail)}}\"\n @nile-clear=\"${(e:CustomEvent)=>{e.stopPropagation();this.emit('nile-clear')}}\"\n .hideDurationFields=\"${this.hideDurationFields}\"\n .showManualInputs=\"${this.showManualInputs}\"\n .doubleClickUnselect=\"${this.doubleClickUnselect}\"\n .allowClear=\"${this.allowClear}\"\n ></nile-calendar>\n </nile-dropdown>\n `;\n }\n\n handleChanged(event: CustomEvent) {\n event.stopPropagation();\n \n const triggerInput = this.querySelector(\"nile-input\");\n \n if (!this.range) {\n const picked = event.detail.value;\n \n if (picked && triggerInput) {\n triggerInput.value = this.formatDate(new Date(picked));\n triggerInput.emit(\"nile-input\", { value: triggerInput.value });\n }\n \n this.emit(\"nile-change\", { value: picked });\n this.dropdown?.hide();\n return;\n }\n \n const start = event.detail.startDate;\n const end = event.detail.endDate;\n \n if (triggerInput) {\n let text = \"\";\n \n if (start) text += this.formatDate(new Date(start));\n if (start && end) text += \" - \" + this.formatDate(new Date(end));\n \n triggerInput.value = text;\n triggerInput.emit(\"nile-input\", { value: text });\n }\n \n this.emit(\"nile-change\", { start, end });\n this.dropdown?.hide();\n }\n \n\n connectedCallback() {\n super.connectedCallback();\n this.emit('nile-init');\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.emit('nile-destroy');\n }\n}\n\nexport default NileDatePicker;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-date-picker': NileDatePicker;\n }\n}\n"],"names":["NileDatePicker","a","constructor","this","range","hideTypes","doubleClickUnselect","allowClear","open","hideTimeZone","type","showManualInputs","hideDurationFields","allowedDates","jumpToTypedDate","inputFormat","_this","_inherits","_r","_createClass","key","value","parseDate","str","fmt","sepMatch","match","sep","includes","parts","split","fmtParts","day","month","year","i","length","f","v","Number","d","Date","getFullYear","getMonth","getDate","formatDate","date","String","padStart","concat","parseRange","input","first","second","_e$split","_e$split2","_slicedToArray","firstRaw","secondRaw","jumpTo","cal","shadowRoot","querySelector","currentYear","currentMonth","valueAttribute","toISOString","syncRangeCalendar","startDate","endDate","getTime","firstUpdated","super","Map","addEventListener","e","text","detail","_ref","start","end","render","_this3","html","_templateObject","_taggedTemplateLiteral","stopPropagation","handleChanged","emit","event","triggerInput","_this$dropdown","picked","dropdown","hide","connectedCallback","disconnectedCallback","get","styles","NileElement","__decorate","property","Boolean","prototype","reflect","attribute","Array","query","_export","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"nile-date-picker.cjs.js","sources":["../../../src/nile-date-picker/nile-date-picker.ts"],"sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nimport {\n LitElement,\n html,\n CSSResultArray,\n TemplateResult,\n} from 'lit';\nimport { customElement, query, property } from 'lit/decorators.js';\nimport { styles } from './nile-date-picker.css';\nimport NileElement from '../internal/nile-element';\nimport { NileDropdown } from '../nile-dropdown';\n\n/**\n * Nile icon component.\n *\n * @tag nile-date-picker\n *\n */\n@customElement('nile-date-picker')\nexport class NileDatePicker extends NileElement {\n /**\n * The styles for DatePicker\n * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`\n */\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n @property({ type: Boolean }) range = false;\n\n @property({ type: Boolean }) hideTypes = false;\n\n @property({ type: Boolean, reflect: true }) doubleClickUnselect = false;\n\n @property({ type: Boolean, reflect: true }) allowClear = false;\n\n @property({ type: Boolean }) open = false;\n\n @property({ type: Boolean, attribute: 'hide-time-zone' }) hideTimeZone = false;\n\n @property({ type: String, reflect: true }) type :'absolute' | 'relative' = 'absolute';\n\n @property({ type: Boolean, attribute: 'showManualInputs' })\n showManualInputs = false;\n\n @property() value: any;\n @property({ type: Array, attribute: 'hide-duration-fields' })\n hideDurationFields: any = [];\n\n @property({ attribute: 'allowedDates' }) allowedDates: any = '{}';\n\n // Jump to typed date activated by user\n @property({ type: Boolean, attribute: true, reflect: true }) jumpToTypedDate = false;\n\n // Strict input format\n @property({ type: String, attribute: true, reflect: true }) inputFormat = \"DD/MM/YYYY\";\n\n\n @query('nile-dropdown') dropdown: NileDropdown;\n\n /**\n * Render method\n * @slot This is a slot test\n */\n private parseDate(str: string): Date | null {\n if (!str) return null;\n\n const fmt = this.inputFormat; \n const sepMatch = fmt.match(/[^A-Z]/i);\n if (!sepMatch) return null;\n const sep = sepMatch[0];\n\n if (!str.includes(sep)) return null;\n\n const parts = str.split(sep);\n const fmtParts = fmt.split(sep);\n\n let day = null, month = null, year = null;\n\n for (let i = 0; i < fmtParts.length; i++) {\n const f = fmtParts[i];\n const v = parts[i];\n if (!v) return null;\n\n if (f === \"DD\") {\n if (v.length !== 2) return null;\n day = Number(v);\n }\n\n if (f === \"MM\") {\n if (v.length !== 2) return null;\n month = Number(v) - 1;\n }\n\n if (f === \"YYYY\") {\n if (v.length !== 4) return null;\n year = Number(v);\n }\n }\n\n if (day == null || month == null || year == null) return null;\n\n const d = new Date(year, month, day);\n if (\n d.getFullYear() !== year ||\n d.getMonth() !== month ||\n d.getDate() !== day\n ) return null;\n\n return d;\n }\n\n\n private formatDate(date: Date): string {\n if (!date) return \"\";\n \n const day = String(date.getDate()).padStart(2, \"0\");\n const month = String(date.getMonth() + 1).padStart(2, \"0\");\n const year = date.getFullYear();\n \n switch (this.inputFormat) {\n case \"DD/MM/YYYY\":\n return `${day}/${month}/${year}`;\n case \"MM/DD/YYYY\":\n return `${month}/${day}/${year}`;\n case \"YYYY/MM/DD\":\n return `${year}/${month}/${day}`;\n case \"YYYY.MM.DD\":\n return `${year}.${month}.${day}`;\n case \"DD.MM.YYYY\":\n return `${day}.${month}.${year}`;\n default:\n return `${day}/${month}/${year}`;\n }\n }\n\n private parseRange(input: string) {\n if (!this.range) {\n return { first: this.parseDate(input), second: null };\n }\n\n const RANGE_SEP = \" - \";\n\n if (!input.includes(RANGE_SEP)) {\n return { first: this.parseDate(input), second: null };\n }\n\n const [firstRaw, secondRaw] = input.split(RANGE_SEP);\n\n const first = this.parseDate(firstRaw);\n let second = null;\n\n if (secondRaw && secondRaw.length >= 10) {\n second = this.parseDate(secondRaw);\n }\n\n return { first, second };\n }\n\n private jumpTo(date: Date) {\n this.open = true;\n\n const cal = this.shadowRoot!.querySelector(\"nile-calendar\") as any;\n if (!cal) return;\n\n cal.currentYear = date.getFullYear();\n cal.currentMonth = date.getMonth();\n cal.value = date;\n cal.valueAttribute = date.toISOString();\n }\n\n private syncRangeCalendar(first: Date | null, second: Date | null) {\n const cal = this.shadowRoot!.querySelector(\"nile-calendar\") as any;\n if (!cal) return;\n\n if (!this.range) return; \n\n if (first) cal.startDate = first;\n if (second) cal.endDate = second;\n\n \n if (first && second && first.getTime() > second.getTime()) {\n cal.startDate = second;\n cal.endDate = first;\n }\n }\n firstUpdated() {\n super.firstUpdated?.(new Map());\n\n if (!this.jumpToTypedDate) return;\n\n const input = this.querySelector(\"nile-input\");\n if (!input) return;\n\n input.addEventListener(\"nile-input\", (e: any) => {\n const text = e.detail.value;\n const { first, second } = this.parseRange(text);\n\n if (!this.range) {\n if (first) this.jumpTo(first);\n return;\n }\n\n if (first && !second) {\n this.jumpTo(first);\n this.syncRangeCalendar(first, null);\n }\n\n if (first && second) {\n let start = first, end = second;\n if (start.getTime() > end.getTime()) {\n [start, end] = [end, start];\n }\n\n this.jumpTo(end);\n this.syncRangeCalendar(start, end);\n }\n });\n }\n\n \n render(): TemplateResult {\n return html`\n <nile-dropdown .open=\"${this.open}\" part=\"dd-base\" .hoist=\"${true}\" distance=\"6\" exportparts=\"base\">\n <slot slot=\"trigger\" part=\"trigger\" name=\"trigger\"></slot>\n <nile-calendar\n .hideTypes=\"${this.hideTypes}\"\n \t.type=\"${this.type}\"\n value=\"${this.value}\"\n .range=\"${this.range}\"\n @nile-init=\"${(e:CustomEvent)=>e.stopPropagation()}\"\n @nile-destroy=\"${(e:CustomEvent)=>e.stopPropagation()}\"\n @nile-changed=\"${(e:CustomEvent)=>e.stopPropagation()}\"\n @nile-change=\"${this.handleChanged}\"\n .allowedDates=\"${this.allowedDates}\"\n @nile-type-change=\"${(e:CustomEvent)=>{e.stopPropagation();this.emit('nile-type-change',e.detail)}}\"\n @nile-clear=\"${(e:CustomEvent)=>{e.stopPropagation();this.emit('nile-clear')}}\"\n .hideDurationFields=\"${this.hideDurationFields}\"\n .showManualInputs=\"${this.showManualInputs}\"\n .doubleClickUnselect=\"${this.doubleClickUnselect}\"\n .allowClear=\"${this.allowClear}\"\n ></nile-calendar>\n </nile-dropdown>\n `;\n }\n\n handleChanged(event: CustomEvent) {\n event.stopPropagation();\n \n const detail = event.detail; \n const triggerInput = this.querySelector(\"nile-input\");\n \n // SINGLE DATE\n if (!this.range) {\n const picked = detail.value;\n \n if (picked && triggerInput) {\n triggerInput.value = this.formatDate(new Date(picked));\n triggerInput.emit(\"nile-input\", { value: triggerInput.value });\n }\n \n \n this.emit(\"nile-changed\", detail);\n this.emit(\"nile-change\", detail);\n \n this.dropdown?.hide();\n return;\n }\n \n // RANGE MODE\n const start = detail.startDate;\n const end = detail.endDate;\n \n if (triggerInput) {\n let text = \"\";\n if (start) text += this.formatDate(new Date(start));\n if (start && end) text += \" - \" + this.formatDate(new Date(end));\n \n triggerInput.value = text;\n triggerInput.emit(\"nile-input\", { value: text });\n }\n \n \n this.emit(\"nile-changed\", detail);\n this.emit(\"nile-change\", detail);\n \n this.dropdown?.hide();\n }\n \n \n\n connectedCallback() {\n super.connectedCallback();\n this.emit('nile-init');\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.emit('nile-destroy');\n }\n}\n\nexport default NileDatePicker;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-date-picker': NileDatePicker;\n }\n}\n"],"names":["NileDatePicker","a","constructor","this","range","hideTypes","doubleClickUnselect","allowClear","open","hideTimeZone","type","showManualInputs","hideDurationFields","allowedDates","jumpToTypedDate","inputFormat","_this","_inherits","_r","_createClass","key","value","parseDate","str","fmt","sepMatch","match","sep","includes","parts","split","fmtParts","day","month","year","i","length","f","v","Number","d","Date","getFullYear","getMonth","getDate","formatDate","date","String","padStart","concat","parseRange","input","first","second","_e$split","_e$split2","_slicedToArray","firstRaw","secondRaw","jumpTo","cal","shadowRoot","querySelector","currentYear","currentMonth","valueAttribute","toISOString","syncRangeCalendar","startDate","endDate","getTime","firstUpdated","super","Map","addEventListener","e","text","detail","_ref","start","end","render","_this3","html","_templateObject","_taggedTemplateLiteral","stopPropagation","handleChanged","emit","event","triggerInput","_this$dropdown","picked","dropdown","hide","connectedCallback","disconnectedCallback","get","styles","NileElement","__decorate","property","Boolean","prototype","reflect","attribute","Array","query","_export","customElement"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import{__decorate as e}from"tslib";import{html as t}from"lit";import{property as i,query as n,customElement as s}from"lit/decorators.js";import{s as l}from"./nile-date-picker.css.esm.js";import{N as r}from"../internal/nile-element.esm.js";let a=class extends r{constructor(){super(...arguments),this.range=!1,this.hideTypes=!1,this.doubleClickUnselect=!1,this.allowClear=!1,this.open=!1,this.hideTimeZone=!1,this.type="absolute",this.showManualInputs=!1,this.hideDurationFields=[],this.allowedDates="{}",this.jumpToTypedDate=!1,this.inputFormat="DD/MM/YYYY"}static get styles(){return[l]}parseDate(e){if(!e)return null;const t=this.inputFormat,i=t.match(/[^A-Z]/i);if(!i)return null;const n=i[0];if(!e.includes(n))return null;const s=e.split(n),l=t.split(n);let r=null,a=null,o=null;for(let e=0;e<l.length;e++){const t=l[e],i=s[e];if(!i)return null;if("DD"===t){if(2!==i.length)return null;r=Number(i)}if("MM"===t){if(2!==i.length)return null;a=Number(i)-1}if("YYYY"===t){if(4!==i.length)return null;o=Number(i)}}if(null==r||null==a||null==o)return null;const u=new Date(o,a,r);return u.getFullYear()!==o||u.getMonth()!==a||u.getDate()!==r?null:u}formatDate(e){if(!e)return"";const t=String(e.getDate()).padStart(2,"0"),i=String(e.getMonth()+1).padStart(2,"0"),n=e.getFullYear();switch(this.inputFormat){case"DD/MM/YYYY":default:return`${t}/${i}/${n}`;case"MM/DD/YYYY":return`${i}/${t}/${n}`;case"YYYY/MM/DD":return`${n}/${i}/${t}`;case"YYYY.MM.DD":return`${n}.${i}.${t}`;case"DD.MM.YYYY":return`${t}.${i}.${n}`}}parseRange(e){if(!this.range)return{first:this.parseDate(e),second:null};if(!e.includes(" - "))return{first:this.parseDate(e),second:null};const[t,i]=e.split(" - "),n=this.parseDate(t);let s=null;return i&&i.length>=10&&(s=this.parseDate(i)),{first:n,second:s}}jumpTo(e){this.open=!0;const t=this.shadowRoot.querySelector("nile-calendar");t&&(t.currentYear=e.getFullYear(),t.currentMonth=e.getMonth(),t.value=e,t.valueAttribute=e.toISOString())}syncRangeCalendar(e,t){const i=this.shadowRoot.querySelector("nile-calendar");i&&this.range&&(e&&(i.startDate=e),t&&(i.endDate=t),e&&t&&e.getTime()>t.getTime()&&(i.startDate=t,i.endDate=e))}firstUpdated(){if(super.firstUpdated?.(new Map),!this.jumpToTypedDate)return;const e=this.querySelector("nile-input");e&&e.addEventListener("nile-input",(e=>{const t=e.detail.value,{first:i,second:n}=this.parseRange(t);if(this.range){if(i&&!n&&(this.jumpTo(i),this.syncRangeCalendar(i,null)),i&&n){let e=i,t=n;e.getTime()>t.getTime()&&([e,t]=[t,e]),this.jumpTo(t),this.syncRangeCalendar(e,t)}}else i&&this.jumpTo(i)}))}render(){return t`
1
+ import{__decorate as e}from"tslib";import{html as t}from"lit";import{property as i,query as n,customElement as s}from"lit/decorators.js";import{s as l}from"./nile-date-picker.css.esm.js";import{N as r}from"../internal/nile-element.esm.js";let a=class extends r{constructor(){super(...arguments),this.range=!1,this.hideTypes=!1,this.doubleClickUnselect=!1,this.allowClear=!1,this.open=!1,this.hideTimeZone=!1,this.type="absolute",this.showManualInputs=!1,this.hideDurationFields=[],this.allowedDates="{}",this.jumpToTypedDate=!1,this.inputFormat="DD/MM/YYYY"}static get styles(){return[l]}parseDate(e){if(!e)return null;const t=this.inputFormat,i=t.match(/[^A-Z]/i);if(!i)return null;const n=i[0];if(!e.includes(n))return null;const s=e.split(n),l=t.split(n);let r=null,a=null,o=null;for(let e=0;e<l.length;e++){const t=l[e],i=s[e];if(!i)return null;if("DD"===t){if(2!==i.length)return null;r=Number(i)}if("MM"===t){if(2!==i.length)return null;a=Number(i)-1}if("YYYY"===t){if(4!==i.length)return null;o=Number(i)}}if(null==r||null==a||null==o)return null;const h=new Date(o,a,r);return h.getFullYear()!==o||h.getMonth()!==a||h.getDate()!==r?null:h}formatDate(e){if(!e)return"";const t=String(e.getDate()).padStart(2,"0"),i=String(e.getMonth()+1).padStart(2,"0"),n=e.getFullYear();switch(this.inputFormat){case"DD/MM/YYYY":default:return`${t}/${i}/${n}`;case"MM/DD/YYYY":return`${i}/${t}/${n}`;case"YYYY/MM/DD":return`${n}/${i}/${t}`;case"YYYY.MM.DD":return`${n}.${i}.${t}`;case"DD.MM.YYYY":return`${t}.${i}.${n}`}}parseRange(e){if(!this.range)return{first:this.parseDate(e),second:null};if(!e.includes(" - "))return{first:this.parseDate(e),second:null};const[t,i]=e.split(" - "),n=this.parseDate(t);let s=null;return i&&i.length>=10&&(s=this.parseDate(i)),{first:n,second:s}}jumpTo(e){this.open=!0;const t=this.shadowRoot.querySelector("nile-calendar");t&&(t.currentYear=e.getFullYear(),t.currentMonth=e.getMonth(),t.value=e,t.valueAttribute=e.toISOString())}syncRangeCalendar(e,t){const i=this.shadowRoot.querySelector("nile-calendar");i&&this.range&&(e&&(i.startDate=e),t&&(i.endDate=t),e&&t&&e.getTime()>t.getTime()&&(i.startDate=t,i.endDate=e))}firstUpdated(){if(super.firstUpdated?.(new Map),!this.jumpToTypedDate)return;const e=this.querySelector("nile-input");e&&e.addEventListener("nile-input",(e=>{const t=e.detail.value,{first:i,second:n}=this.parseRange(t);if(this.range){if(i&&!n&&(this.jumpTo(i),this.syncRangeCalendar(i,null)),i&&n){let e=i,t=n;e.getTime()>t.getTime()&&([e,t]=[t,e]),this.jumpTo(t),this.syncRangeCalendar(e,t)}}else i&&this.jumpTo(i)}))}render(){return t`
2
2
  <nile-dropdown .open="${this.open}" part="dd-base" .hoist="${!0}" distance="6" exportparts="base">
3
3
  <slot slot="trigger" part="trigger" name="trigger"></slot>
4
4
  <nile-calendar
@@ -19,4 +19,4 @@ import{__decorate as e}from"tslib";import{html as t}from"lit";import{property as
19
19
  .allowClear="${this.allowClear}"
20
20
  ></nile-calendar>
21
21
  </nile-dropdown>
22
- `}handleChanged(e){e.stopPropagation();const t=this.querySelector("nile-input");if(!this.range){const i=e.detail.value;return i&&t&&(t.value=this.formatDate(new Date(i)),t.emit("nile-input",{value:t.value})),this.emit("nile-change",{value:i}),void this.dropdown?.hide()}const i=e.detail.startDate,n=e.detail.endDate;if(t){let e="";i&&(e+=this.formatDate(new Date(i))),i&&n&&(e+=" - "+this.formatDate(new Date(n))),t.value=e,t.emit("nile-input",{value:e})}this.emit("nile-change",{start:i,end:n}),this.dropdown?.hide()}connectedCallback(){super.connectedCallback(),this.emit("nile-init")}disconnectedCallback(){super.disconnectedCallback(),this.emit("nile-destroy")}};e([i({type:Boolean})],a.prototype,"range",void 0),e([i({type:Boolean})],a.prototype,"hideTypes",void 0),e([i({type:Boolean,reflect:!0})],a.prototype,"doubleClickUnselect",void 0),e([i({type:Boolean,reflect:!0})],a.prototype,"allowClear",void 0),e([i({type:Boolean})],a.prototype,"open",void 0),e([i({type:Boolean,attribute:"hide-time-zone"})],a.prototype,"hideTimeZone",void 0),e([i({type:String,reflect:!0})],a.prototype,"type",void 0),e([i({type:Boolean,attribute:"showManualInputs"})],a.prototype,"showManualInputs",void 0),e([i()],a.prototype,"value",void 0),e([i({type:Array,attribute:"hide-duration-fields"})],a.prototype,"hideDurationFields",void 0),e([i({attribute:"allowedDates"})],a.prototype,"allowedDates",void 0),e([i({type:Boolean,attribute:!0,reflect:!0})],a.prototype,"jumpToTypedDate",void 0),e([i({type:String,attribute:!0,reflect:!0})],a.prototype,"inputFormat",void 0),e([n("nile-dropdown")],a.prototype,"dropdown",void 0),a=e([s("nile-date-picker")],a);export{a as N};
22
+ `}handleChanged(e){e.stopPropagation();const t=e.detail,i=this.querySelector("nile-input");if(!this.range){const e=t.value;return e&&i&&(i.value=this.formatDate(new Date(e)),i.emit("nile-input",{value:i.value})),this.emit("nile-changed",t),this.emit("nile-change",t),void this.dropdown?.hide()}const n=t.startDate,s=t.endDate;if(i){let e="";n&&(e+=this.formatDate(new Date(n))),n&&s&&(e+=" - "+this.formatDate(new Date(s))),i.value=e,i.emit("nile-input",{value:e})}this.emit("nile-changed",t),this.emit("nile-change",t),this.dropdown?.hide()}connectedCallback(){super.connectedCallback(),this.emit("nile-init")}disconnectedCallback(){super.disconnectedCallback(),this.emit("nile-destroy")}};e([i({type:Boolean})],a.prototype,"range",void 0),e([i({type:Boolean})],a.prototype,"hideTypes",void 0),e([i({type:Boolean,reflect:!0})],a.prototype,"doubleClickUnselect",void 0),e([i({type:Boolean,reflect:!0})],a.prototype,"allowClear",void 0),e([i({type:Boolean})],a.prototype,"open",void 0),e([i({type:Boolean,attribute:"hide-time-zone"})],a.prototype,"hideTimeZone",void 0),e([i({type:String,reflect:!0})],a.prototype,"type",void 0),e([i({type:Boolean,attribute:"showManualInputs"})],a.prototype,"showManualInputs",void 0),e([i()],a.prototype,"value",void 0),e([i({type:Array,attribute:"hide-duration-fields"})],a.prototype,"hideDurationFields",void 0),e([i({attribute:"allowedDates"})],a.prototype,"allowedDates",void 0),e([i({type:Boolean,attribute:!0,reflect:!0})],a.prototype,"jumpToTypedDate",void 0),e([i({type:String,attribute:!0,reflect:!0})],a.prototype,"inputFormat",void 0),e([n("nile-dropdown")],a.prototype,"dropdown",void 0),a=e([s("nile-date-picker")],a);export{a as N};
@@ -204,19 +204,23 @@ let NileDatePicker = class NileDatePicker extends NileElement {
204
204
  }
205
205
  handleChanged(event) {
206
206
  event.stopPropagation();
207
+ const detail = event.detail;
207
208
  const triggerInput = this.querySelector("nile-input");
209
+ // SINGLE DATE
208
210
  if (!this.range) {
209
- const picked = event.detail.value;
211
+ const picked = detail.value;
210
212
  if (picked && triggerInput) {
211
213
  triggerInput.value = this.formatDate(new Date(picked));
212
214
  triggerInput.emit("nile-input", { value: triggerInput.value });
213
215
  }
214
- this.emit("nile-change", { value: picked });
216
+ this.emit("nile-changed", detail);
217
+ this.emit("nile-change", detail);
215
218
  this.dropdown?.hide();
216
219
  return;
217
220
  }
218
- const start = event.detail.startDate;
219
- const end = event.detail.endDate;
221
+ // RANGE MODE
222
+ const start = detail.startDate;
223
+ const end = detail.endDate;
220
224
  if (triggerInput) {
221
225
  let text = "";
222
226
  if (start)
@@ -226,7 +230,8 @@ let NileDatePicker = class NileDatePicker extends NileElement {
226
230
  triggerInput.value = text;
227
231
  triggerInput.emit("nile-input", { value: text });
228
232
  }
229
- this.emit("nile-change", { start, end });
233
+ this.emit("nile-changed", detail);
234
+ this.emit("nile-change", detail);
230
235
  this.dropdown?.hide();
231
236
  }
232
237
  connectedCallback() {
@@ -1 +1 @@
1
- {"version":3,"file":"nile-date-picker.js","sourceRoot":"","sources":["../../../src/nile-date-picker/nile-date-picker.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nimport {\n LitElement,\n html,\n CSSResultArray,\n TemplateResult,\n} from 'lit';\nimport { customElement, query, property } from 'lit/decorators.js';\nimport { styles } from './nile-date-picker.css';\nimport NileElement from '../internal/nile-element';\nimport { NileDropdown } from '../nile-dropdown';\n\n/**\n * Nile icon component.\n *\n * @tag nile-date-picker\n *\n */\n@customElement('nile-date-picker')\nexport class NileDatePicker extends NileElement {\n /**\n * The styles for DatePicker\n * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`\n */\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n @property({ type: Boolean }) range = false;\n\n @property({ type: Boolean }) hideTypes = false;\n\n @property({ type: Boolean, reflect: true }) doubleClickUnselect = false;\n\n @property({ type: Boolean, reflect: true }) allowClear = false;\n\n @property({ type: Boolean }) open = false;\n\n @property({ type: Boolean, attribute: 'hide-time-zone' }) hideTimeZone = false;\n\n @property({ type: String, reflect: true }) type :'absolute' | 'relative' = 'absolute';\n\n @property({ type: Boolean, attribute: 'showManualInputs' })\n showManualInputs = false;\n\n @property() value: any;\n @property({ type: Array, attribute: 'hide-duration-fields' })\n hideDurationFields: any = [];\n\n @property({ attribute: 'allowedDates' }) allowedDates: any = '{}';\n\n // Jump to typed date activated by user\n @property({ type: Boolean, attribute: true, reflect: true }) jumpToTypedDate = false;\n\n // Strict input format\n @property({ type: String, attribute: true, reflect: true }) inputFormat = \"DD/MM/YYYY\";\n\n\n @query('nile-dropdown') dropdown: NileDropdown;\n\n /**\n * Render method\n * @slot This is a slot test\n */\n private parseDate(str: string): Date | null {\n if (!str) return null;\n\n const fmt = this.inputFormat; \n const sepMatch = fmt.match(/[^A-Z]/i);\n if (!sepMatch) return null;\n const sep = sepMatch[0];\n\n if (!str.includes(sep)) return null;\n\n const parts = str.split(sep);\n const fmtParts = fmt.split(sep);\n\n let day = null, month = null, year = null;\n\n for (let i = 0; i < fmtParts.length; i++) {\n const f = fmtParts[i];\n const v = parts[i];\n if (!v) return null;\n\n if (f === \"DD\") {\n if (v.length !== 2) return null;\n day = Number(v);\n }\n\n if (f === \"MM\") {\n if (v.length !== 2) return null;\n month = Number(v) - 1;\n }\n\n if (f === \"YYYY\") {\n if (v.length !== 4) return null;\n year = Number(v);\n }\n }\n\n if (day == null || month == null || year == null) return null;\n\n const d = new Date(year, month, day);\n if (\n d.getFullYear() !== year ||\n d.getMonth() !== month ||\n d.getDate() !== day\n ) return null;\n\n return d;\n }\n\n\n private formatDate(date: Date): string {\n if (!date) return \"\";\n \n const day = String(date.getDate()).padStart(2, \"0\");\n const month = String(date.getMonth() + 1).padStart(2, \"0\");\n const year = date.getFullYear();\n \n switch (this.inputFormat) {\n case \"DD/MM/YYYY\":\n return `${day}/${month}/${year}`;\n case \"MM/DD/YYYY\":\n return `${month}/${day}/${year}`;\n case \"YYYY/MM/DD\":\n return `${year}/${month}/${day}`;\n case \"YYYY.MM.DD\":\n return `${year}.${month}.${day}`;\n case \"DD.MM.YYYY\":\n return `${day}.${month}.${year}`;\n default:\n return `${day}/${month}/${year}`;\n }\n }\n\n private parseRange(input: string) {\n if (!this.range) {\n return { first: this.parseDate(input), second: null };\n }\n\n const RANGE_SEP = \" - \";\n\n if (!input.includes(RANGE_SEP)) {\n return { first: this.parseDate(input), second: null };\n }\n\n const [firstRaw, secondRaw] = input.split(RANGE_SEP);\n\n const first = this.parseDate(firstRaw);\n let second = null;\n\n if (secondRaw && secondRaw.length >= 10) {\n second = this.parseDate(secondRaw);\n }\n\n return { first, second };\n }\n\n private jumpTo(date: Date) {\n this.open = true;\n\n const cal = this.shadowRoot!.querySelector(\"nile-calendar\") as any;\n if (!cal) return;\n\n cal.currentYear = date.getFullYear();\n cal.currentMonth = date.getMonth();\n cal.value = date;\n cal.valueAttribute = date.toISOString();\n }\n\n private syncRangeCalendar(first: Date | null, second: Date | null) {\n const cal = this.shadowRoot!.querySelector(\"nile-calendar\") as any;\n if (!cal) return;\n\n if (!this.range) return; \n\n if (first) cal.startDate = first;\n if (second) cal.endDate = second;\n\n \n if (first && second && first.getTime() > second.getTime()) {\n cal.startDate = second;\n cal.endDate = first;\n }\n }\n firstUpdated() {\n super.firstUpdated?.(new Map());\n\n if (!this.jumpToTypedDate) return;\n\n const input = this.querySelector(\"nile-input\");\n if (!input) return;\n\n input.addEventListener(\"nile-input\", (e: any) => {\n const text = e.detail.value;\n const { first, second } = this.parseRange(text);\n\n if (!this.range) {\n if (first) this.jumpTo(first);\n return;\n }\n\n if (first && !second) {\n this.jumpTo(first);\n this.syncRangeCalendar(first, null);\n }\n\n if (first && second) {\n let start = first, end = second;\n if (start.getTime() > end.getTime()) {\n [start, end] = [end, start];\n }\n\n this.jumpTo(end);\n this.syncRangeCalendar(start, end);\n }\n });\n }\n\n \n render(): TemplateResult {\n return html`\n <nile-dropdown .open=\"${this.open}\" part=\"dd-base\" .hoist=\"${true}\" distance=\"6\" exportparts=\"base\">\n <slot slot=\"trigger\" part=\"trigger\" name=\"trigger\"></slot>\n <nile-calendar\n .hideTypes=\"${this.hideTypes}\"\n \t.type=\"${this.type}\"\n value=\"${this.value}\"\n .range=\"${this.range}\"\n @nile-init=\"${(e:CustomEvent)=>e.stopPropagation()}\"\n @nile-destroy=\"${(e:CustomEvent)=>e.stopPropagation()}\"\n @nile-changed=\"${(e:CustomEvent)=>e.stopPropagation()}\"\n @nile-change=\"${this.handleChanged}\"\n .allowedDates=\"${this.allowedDates}\"\n @nile-type-change=\"${(e:CustomEvent)=>{e.stopPropagation();this.emit('nile-type-change',e.detail)}}\"\n @nile-clear=\"${(e:CustomEvent)=>{e.stopPropagation();this.emit('nile-clear')}}\"\n .hideDurationFields=\"${this.hideDurationFields}\"\n .showManualInputs=\"${this.showManualInputs}\"\n .doubleClickUnselect=\"${this.doubleClickUnselect}\"\n .allowClear=\"${this.allowClear}\"\n ></nile-calendar>\n </nile-dropdown>\n `;\n }\n\n handleChanged(event: CustomEvent) {\n event.stopPropagation();\n \n const triggerInput = this.querySelector(\"nile-input\");\n \n if (!this.range) {\n const picked = event.detail.value;\n \n if (picked && triggerInput) {\n triggerInput.value = this.formatDate(new Date(picked));\n triggerInput.emit(\"nile-input\", { value: triggerInput.value });\n }\n \n this.emit(\"nile-change\", { value: picked });\n this.dropdown?.hide();\n return;\n }\n \n const start = event.detail.startDate;\n const end = event.detail.endDate;\n \n if (triggerInput) {\n let text = \"\";\n \n if (start) text += this.formatDate(new Date(start));\n if (start && end) text += \" - \" + this.formatDate(new Date(end));\n \n triggerInput.value = text;\n triggerInput.emit(\"nile-input\", { value: text });\n }\n \n this.emit(\"nile-change\", { start, end });\n this.dropdown?.hide();\n }\n \n\n connectedCallback() {\n super.connectedCallback();\n this.emit('nile-init');\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.emit('nile-destroy');\n }\n}\n\nexport default NileDatePicker;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-date-picker': NileDatePicker;\n }\n}\n"]}
1
+ {"version":3,"file":"nile-date-picker.js","sourceRoot":"","sources":["../../../src/nile-date-picker/nile-date-picker.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nimport {\n LitElement,\n html,\n CSSResultArray,\n TemplateResult,\n} from 'lit';\nimport { customElement, query, property } from 'lit/decorators.js';\nimport { styles } from './nile-date-picker.css';\nimport NileElement from '../internal/nile-element';\nimport { NileDropdown } from '../nile-dropdown';\n\n/**\n * Nile icon component.\n *\n * @tag nile-date-picker\n *\n */\n@customElement('nile-date-picker')\nexport class NileDatePicker extends NileElement {\n /**\n * The styles for DatePicker\n * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`\n */\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n @property({ type: Boolean }) range = false;\n\n @property({ type: Boolean }) hideTypes = false;\n\n @property({ type: Boolean, reflect: true }) doubleClickUnselect = false;\n\n @property({ type: Boolean, reflect: true }) allowClear = false;\n\n @property({ type: Boolean }) open = false;\n\n @property({ type: Boolean, attribute: 'hide-time-zone' }) hideTimeZone = false;\n\n @property({ type: String, reflect: true }) type :'absolute' | 'relative' = 'absolute';\n\n @property({ type: Boolean, attribute: 'showManualInputs' })\n showManualInputs = false;\n\n @property() value: any;\n @property({ type: Array, attribute: 'hide-duration-fields' })\n hideDurationFields: any = [];\n\n @property({ attribute: 'allowedDates' }) allowedDates: any = '{}';\n\n // Jump to typed date activated by user\n @property({ type: Boolean, attribute: true, reflect: true }) jumpToTypedDate = false;\n\n // Strict input format\n @property({ type: String, attribute: true, reflect: true }) inputFormat = \"DD/MM/YYYY\";\n\n\n @query('nile-dropdown') dropdown: NileDropdown;\n\n /**\n * Render method\n * @slot This is a slot test\n */\n private parseDate(str: string): Date | null {\n if (!str) return null;\n\n const fmt = this.inputFormat; \n const sepMatch = fmt.match(/[^A-Z]/i);\n if (!sepMatch) return null;\n const sep = sepMatch[0];\n\n if (!str.includes(sep)) return null;\n\n const parts = str.split(sep);\n const fmtParts = fmt.split(sep);\n\n let day = null, month = null, year = null;\n\n for (let i = 0; i < fmtParts.length; i++) {\n const f = fmtParts[i];\n const v = parts[i];\n if (!v) return null;\n\n if (f === \"DD\") {\n if (v.length !== 2) return null;\n day = Number(v);\n }\n\n if (f === \"MM\") {\n if (v.length !== 2) return null;\n month = Number(v) - 1;\n }\n\n if (f === \"YYYY\") {\n if (v.length !== 4) return null;\n year = Number(v);\n }\n }\n\n if (day == null || month == null || year == null) return null;\n\n const d = new Date(year, month, day);\n if (\n d.getFullYear() !== year ||\n d.getMonth() !== month ||\n d.getDate() !== day\n ) return null;\n\n return d;\n }\n\n\n private formatDate(date: Date): string {\n if (!date) return \"\";\n \n const day = String(date.getDate()).padStart(2, \"0\");\n const month = String(date.getMonth() + 1).padStart(2, \"0\");\n const year = date.getFullYear();\n \n switch (this.inputFormat) {\n case \"DD/MM/YYYY\":\n return `${day}/${month}/${year}`;\n case \"MM/DD/YYYY\":\n return `${month}/${day}/${year}`;\n case \"YYYY/MM/DD\":\n return `${year}/${month}/${day}`;\n case \"YYYY.MM.DD\":\n return `${year}.${month}.${day}`;\n case \"DD.MM.YYYY\":\n return `${day}.${month}.${year}`;\n default:\n return `${day}/${month}/${year}`;\n }\n }\n\n private parseRange(input: string) {\n if (!this.range) {\n return { first: this.parseDate(input), second: null };\n }\n\n const RANGE_SEP = \" - \";\n\n if (!input.includes(RANGE_SEP)) {\n return { first: this.parseDate(input), second: null };\n }\n\n const [firstRaw, secondRaw] = input.split(RANGE_SEP);\n\n const first = this.parseDate(firstRaw);\n let second = null;\n\n if (secondRaw && secondRaw.length >= 10) {\n second = this.parseDate(secondRaw);\n }\n\n return { first, second };\n }\n\n private jumpTo(date: Date) {\n this.open = true;\n\n const cal = this.shadowRoot!.querySelector(\"nile-calendar\") as any;\n if (!cal) return;\n\n cal.currentYear = date.getFullYear();\n cal.currentMonth = date.getMonth();\n cal.value = date;\n cal.valueAttribute = date.toISOString();\n }\n\n private syncRangeCalendar(first: Date | null, second: Date | null) {\n const cal = this.shadowRoot!.querySelector(\"nile-calendar\") as any;\n if (!cal) return;\n\n if (!this.range) return; \n\n if (first) cal.startDate = first;\n if (second) cal.endDate = second;\n\n \n if (first && second && first.getTime() > second.getTime()) {\n cal.startDate = second;\n cal.endDate = first;\n }\n }\n firstUpdated() {\n super.firstUpdated?.(new Map());\n\n if (!this.jumpToTypedDate) return;\n\n const input = this.querySelector(\"nile-input\");\n if (!input) return;\n\n input.addEventListener(\"nile-input\", (e: any) => {\n const text = e.detail.value;\n const { first, second } = this.parseRange(text);\n\n if (!this.range) {\n if (first) this.jumpTo(first);\n return;\n }\n\n if (first && !second) {\n this.jumpTo(first);\n this.syncRangeCalendar(first, null);\n }\n\n if (first && second) {\n let start = first, end = second;\n if (start.getTime() > end.getTime()) {\n [start, end] = [end, start];\n }\n\n this.jumpTo(end);\n this.syncRangeCalendar(start, end);\n }\n });\n }\n\n \n render(): TemplateResult {\n return html`\n <nile-dropdown .open=\"${this.open}\" part=\"dd-base\" .hoist=\"${true}\" distance=\"6\" exportparts=\"base\">\n <slot slot=\"trigger\" part=\"trigger\" name=\"trigger\"></slot>\n <nile-calendar\n .hideTypes=\"${this.hideTypes}\"\n \t.type=\"${this.type}\"\n value=\"${this.value}\"\n .range=\"${this.range}\"\n @nile-init=\"${(e:CustomEvent)=>e.stopPropagation()}\"\n @nile-destroy=\"${(e:CustomEvent)=>e.stopPropagation()}\"\n @nile-changed=\"${(e:CustomEvent)=>e.stopPropagation()}\"\n @nile-change=\"${this.handleChanged}\"\n .allowedDates=\"${this.allowedDates}\"\n @nile-type-change=\"${(e:CustomEvent)=>{e.stopPropagation();this.emit('nile-type-change',e.detail)}}\"\n @nile-clear=\"${(e:CustomEvent)=>{e.stopPropagation();this.emit('nile-clear')}}\"\n .hideDurationFields=\"${this.hideDurationFields}\"\n .showManualInputs=\"${this.showManualInputs}\"\n .doubleClickUnselect=\"${this.doubleClickUnselect}\"\n .allowClear=\"${this.allowClear}\"\n ></nile-calendar>\n </nile-dropdown>\n `;\n }\n\n handleChanged(event: CustomEvent) {\n event.stopPropagation();\n \n const detail = event.detail; \n const triggerInput = this.querySelector(\"nile-input\");\n \n // SINGLE DATE\n if (!this.range) {\n const picked = detail.value;\n \n if (picked && triggerInput) {\n triggerInput.value = this.formatDate(new Date(picked));\n triggerInput.emit(\"nile-input\", { value: triggerInput.value });\n }\n \n \n this.emit(\"nile-changed\", detail);\n this.emit(\"nile-change\", detail);\n \n this.dropdown?.hide();\n return;\n }\n \n // RANGE MODE\n const start = detail.startDate;\n const end = detail.endDate;\n \n if (triggerInput) {\n let text = \"\";\n if (start) text += this.formatDate(new Date(start));\n if (start && end) text += \" - \" + this.formatDate(new Date(end));\n \n triggerInput.value = text;\n triggerInput.emit(\"nile-input\", { value: text });\n }\n \n \n this.emit(\"nile-changed\", detail);\n this.emit(\"nile-change\", detail);\n \n this.dropdown?.hide();\n }\n \n \n\n connectedCallback() {\n super.connectedCallback();\n this.emit('nile-init');\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.emit('nile-destroy');\n }\n}\n\nexport default NileDatePicker;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-date-picker': NileDatePicker;\n }\n}\n"]}