@limetech/lime-elements
Version:
2 lines • 4.48 kB
JavaScript
import{r as t,c as i,h as e,H as s,g as r}from"./p-288f0842.js";import{c as o,i as n}from"./p-b8c91b22.js";import{b as a}from"./p-acd67e5c.js";import{i as l}from"./p-504ee819.js";import{b as h}from"./p-3357c5b4.js";import{i as c}from"./p-0b1af919.js";import{c as p}from"./p-ad52787a.js";import"./p-89524e09.js";import"./p-d251f404.js";import"./p-394c3702.js";import"./p-4f8562ee.js";import"./p-6f46165b.js";import"./p-c93050d6.js";import"./p-858c6b82.js";import"./p-9bdd72e2.js";import"./p-23071d2f.js";import"./p-87a34aa6.js";import"./p-d529bb7d.js";import"./p-669626e5.js";function f(t,i,e,s){var r=-1,o=t==null?0:t.length;while(++r<o){var n=t[r];i(s,n,e(n),t)}return s}function d(t,i){return function(e,s){if(e==null){return e}if(!l(e)){return t(e,s)}var r=e.length,o=i?r:-1,n=Object(e);while(i?o--:++o<r){if(s(n[o],o,n)===false){break}}return e}}var m=d(a);function u(t,i,e,s){m(t,(function(t,r,o){i(s,t,e(t),o)}));return s}function b(t,i){return function(e,s){var r=c(e)?f:u,o=i?i():{};return r(e,t,h(s),o)}}var j=b((function(t,i,e){t[e?0:1].push(i)}),(function(){return[[],[]]}));const g=":host(limel-file-dropzone){display:block;position:relative}.has-file-to-drop{animation:display-drop-zone 0.6s ease forwards;box-sizing:border-box;isolation:isolate;z-index:1;position:absolute;inset:0.25rem;overflow:hidden;display:flex;justify-content:center;align-items:center;gap:0.5rem;color:rgb(var(--contrast-700));border:0.125rem dashed rgb(var(--color-cyan-light));border-radius:0.75rem}.text-helpertext{display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.icon{width:clamp(2rem, 5vh, 7rem)}.text{font-size:clamp(1rem, 2vh, 1.75rem)}.helper-text{font-size:clamp(0.75rem, 1.5vh, 1rem)}@keyframes display-drop-zone{0%{background-color:rgb(var(--contrast-1100), 0);backdrop-filter:blur(0);-webkit-backdrop-filter:blur(0);scale:0.9;opacity:0}50%{scale:1;opacity:1}100%{background-color:rgb(var(--contrast-1100), 0.8);backdrop-filter:blur(0.25rem);-webkit-backdrop-filter:blur(0.25rem)}}";const v=class{constructor(s){t(this,s);this.filesSelected=i(this,"filesSelected",7);this.filesRejected=i(this,"filesRejected",7);this.renderOnDragLayout=()=>{if(this.disabled||!this.hasFileToDrop){return}return e("div",{class:"has-file-to-drop"},e("limel-icon",{class:"icon",name:"upload_2"}),e("div",{class:"text-helpertext"},this.renderText(),this.renderHelperText()))};this.renderText=()=>{if(!this.text){return}return e("span",{class:"text"},this.text)};this.renderHelperText=()=>{if(!this.helperText){return}return e("span",{class:"helper-text"},this.helperText)};this.handleDrop=t=>{t.stopPropagation();t.preventDefault();this.hasFileToDrop=false;if(this.disabled){return}const i=[...t.dataTransfer.files];const e=i.map(o);const[s,r]=j(e,(t=>n(t,this.accept)));if(s.length>0){this.filesSelected.emit(s)}if(r.length>0){this.filesRejected.emit(r)}};this.handleDragOver=t=>{this.hasFileToDrop=true;t.preventDefault()};this.handleDragLeave=t=>{this.hasFileToDrop=false;t.preventDefault()};this.accept="*";this.disabled=false;this.text=undefined;this.helperText="";this.hasFileToDrop=false}render(){return e(s,{onDrop:this.handleDrop,onDragOver:this.handleDragOver,onDragLeave:this.handleDragLeave},e("slot",null),this.renderOnDragLayout())}};v.style=g;const x=class{constructor(e){t(this,e);this.filesSelected=i(this,"filesSelected",7);this.fileInputId=p();this.handleClick=t=>{if(this.disabled){t.stopPropagation();t.preventDefault();return}this.triggerFileDialog();t.stopPropagation()};this.handleKeyUp=t=>{t.stopPropagation();t.preventDefault();if(t.code==="Enter"){this.triggerFileDialog()}};this.handleFileChange=t=>{const i=[...this.fileInput.files];if(i.length>0){t.stopPropagation();this.filesSelected.emit(i.map(o));this.fileInput.value=""}};this.accept="*";this.disabled=false;this.multiple=false}componentDidLoad(){this.fileInput=this.element.shadowRoot.getElementById(this.fileInputId)}render(){return e(s,{onClick:this.handleClick,onKeyUp:this.handleKeyUp,onKeyDown:this.handleKeyDown},e("input",{hidden:true,id:this.fileInputId,onChange:this.handleFileChange,type:"file",accept:this.accept,disabled:this.disabled,multiple:this.multiple}),e("slot",null))}handleKeyDown(t){if(t.code==="Tab"||t.code==="Backspace"||t.code==="Enter"){return}t.preventDefault();t.stopPropagation()}triggerFileDialog(){this.fileInput.click()}get element(){return r(this)}};export{v as limel_file_dropzone,x as limel_file_input};
//# sourceMappingURL=p-25247fea.entry.js.map