UNPKG

mithril-materialized

Version:
3 lines (2 loc) 33 kB
import e from"mithril";function t(){return t=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var i in a)Object.prototype.hasOwnProperty.call(a,i)&&(e[i]=a[i])}return e},t.apply(this,arguments)}function a(e,t){if(null==e)return{};var a,i,l={},o=Object.keys(e);for(i=0;i<o.length;i++)t.indexOf(a=o[i])>=0||(l[a]=e[a]);return l}const i=()=>"idxxxxxxxx".replace(/[x]/g,()=>(16*Math.random()|0).toString(16)),l=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}),o=e=>!isNaN(parseFloat(e))&&isFinite(e),n=(e,t=2,a="0")=>String(e).padStart(t,a),s=["label","id","isMandatory","isActive","className"],r={view:({attrs:t})=>e("span.mandatory",t,"*")},c=()=>({view:i=>{let{attrs:{label:l,id:o,isMandatory:n,isActive:c,className:d}}=i,p=a(i.attrs,s);return l?e("label",t({},p,{className:[d,c?"active":""].filter(Boolean).join(" ").trim(),for:o}),[e.trust(l),n?e(r):void 0]):void 0}}),d=()=>({view:({attrs:{helperText:t,dataError:a,dataSuccess:i,className:l}})=>t||a||i?e("span.helper-text.left",{className:l,"data-error":a,"data-success":i},t?e.trust(t):""):void 0}),p=["label","helperText","initialValue","onchange","newRow","className","style","iconName","isMandatory"],m=()=>{const l={id:i()};return{view:({attrs:i})=>{const o=i.id||l.id,{label:n,helperText:s,initialValue:r,onchange:m,newRow:u,className:h="col s12",style:v,iconName:g,isMandatory:f}=i,b=a(i,p);return e(".input-field"+(u?".clear":""),{className:u?h+" clear":h,style:v},[g?e("i.material-icons.prefix",g):"",e("input",t({},b,{className:"autocomplete",type:"text",tabindex:0,id:o,oncreate:({dom:e})=>{M.Autocomplete.init(e,i)},onchange:m?e=>{e.target&&e.target.value&&m(e.target.value)}:void 0,value:r})),e(c,{label:n,id:o,isMandatory:f,isActive:r}),e(d,{helperText:s})])}}},u=["iconName"],h=()=>({view:t=>{let{attrs:{iconName:i}}=t,l=a(t.attrs,u);return e("i.material-icons",l,i)}}),v=["modalId","tooltip","tooltipPostion","iconName","iconClass","label","className","attr"],g=(i,l,o="")=>()=>({view:({attrs:n})=>{const{modalId:s,tooltip:r,tooltipPostion:c,iconName:d,iconClass:p,label:m,className:u,attr:g}=n,f=a(n,v),b=[s?"modal-trigger":"",r?"tooltipped":"",l,u].filter(Boolean).join(" ").trim();return e(i,t({},f,g,{className:b,href:s?`#${s}`:void 0,"data-position":r?c||"top":void 0,"data-tooltip":r||void 0,type:o}),d?e(h,{iconName:d,className:p||"left"}):void 0,m||void 0)}}),f=g("a","waves-effect waves-light btn","button"),b=g("a","waves-effect waves-light btn-large","button"),y=g("a","waves-effect waves-light btn-small","button"),w=g("a","waves-effect waves-teal btn-flat","button"),x=g("button","btn-floating btn-large waves-effect waves-light","button"),k=g("button","btn waves-effect waves-light","submit"),N=["href","src","alt"],I=()=>({view:i=>{let{attrs:{href:l,src:o,alt:n}}=i,s=a(i.attrs,N);return e("a.carousel-item",t({},s,{href:l}),e("img",{src:o,alt:n}))}}),A=()=>({view:({attrs:t})=>{const{items:a}=t;return a&&a.length>0?e(".carousel",{oncreate:({dom:e})=>{M.Carousel.init(e,t)}},a.map(t=>e(I,t))):void 0}}),C=()=>{const t={chipsData:[],selectedChip:null,focused:!1,inputValue:"",inputId:i(),autocompleteItems:[],selectedAutocompleteIndex:-1,showAutocomplete:!1};let a=null;const l=()=>{var e;if(null==(e=a)||null==(e=e.attrs.autocompleteOptions)||!e.data)return void(t.autocompleteItems=[]);const{data:i,minLength:l=1}=a.attrs.autocompleteOptions,o=t.inputValue.toLowerCase();if(o.length<l)return t.autocompleteItems=[],void(t.showAutocomplete=!1);const n=(e=>Array.isArray(e)?e.map(e=>"string"==typeof e?{tag:e}:e):Object.entries(e).map(([e,t])=>({tag:e,value:t||e})))(i),s=n.filter(e=>e.tag.toLowerCase().includes(o));t.autocompleteItems=s.slice(0,a.attrs.autocompleteOptions.limit||Infinity),t.showAutocomplete=t.autocompleteItems.length>0,t.selectedAutocompleteIndex=-1},o=e=>{n({tag:e.tag,image:e.image,alt:e.alt}),t.inputValue="",t.showAutocomplete=!1,t.selectedAutocompleteIndex=-1},n=e=>{if(!a)return;const{limit:i=Infinity,onChipAdd:l,onchange:o}=a.attrs;!((e,t)=>!(!e.tag||""===e.tag.trim()||t.some(t=>t.tag===e.tag)))(e,t.chipsData)||t.chipsData.length>=i||(t.chipsData=[...t.chipsData,e],t.inputValue="",l&&l(e),o&&o(t.chipsData))},s=e=>{if(!a)return;const{onChipDelete:i,onchange:l}=a.attrs,o=t.chipsData[e];t.chipsData=t.chipsData.filter((t,a)=>a!==e),t.selectedChip=null,i&&i(o),l&&l(t.chipsData)},r=e=>{if(!a)return;const{onChipSelect:i}=a.attrs;t.selectedChip=e,i&&t.chipsData[e]&&i(t.chipsData[e])},p=i=>{const l=i.target;if(t.showAutocomplete){if("ArrowDown"===i.key){var c;i.preventDefault(),t.selectedAutocompleteIndex=Math.min(t.selectedAutocompleteIndex+1,t.autocompleteItems.length-1);const l=null==(c=a)?void 0:c.dom.querySelector(".autocomplete-item.selected");return l&&l.scrollIntoView({block:"nearest"}),void e.redraw()}if("ArrowUp"===i.key){var d;i.preventDefault(),t.selectedAutocompleteIndex=Math.max(t.selectedAutocompleteIndex-1,-1);const l=null==(d=a)?void 0:d.dom.querySelector(".autocomplete-item.selected");return l&&l.scrollIntoView({block:"nearest"}),void e.redraw()}if("Enter"===i.key&&t.selectedAutocompleteIndex>=0)return i.preventDefault(),void o(t.autocompleteItems[t.selectedAutocompleteIndex])}"Enter"===i.key&&l.value.trim()?(i.preventDefault(),n({tag:l.value.trim()})):"Backspace"===i.key&&!l.value&&t.chipsData.length>0?(i.preventDefault(),s(t.chipsData.length-1)):"ArrowLeft"===i.key&&!l.value&&t.chipsData.length&&(i.preventDefault(),r(t.chipsData.length-1))};return{oninit:({attrs:e})=>{t.chipsData=e.data||[]},oncreate:e=>{a=e},onremove:()=>{a=null},view:({attrs:i})=>{const{id:n,required:m,isMandatory:u=m,className:h="col s12",label:v,helperText:g,placeholder:f,secondaryPlaceholder:b}=i;return e(".input-field",{id:n,className:h},[e(".chips.chips-initial",{class:`chips-container ${t.focused?"focused":""} ${f?"chips-placeholder":""}`},[t.chipsData.map((i,l)=>e(".chip",{key:`${i.tag}-${l}`,tabindex:0,class:t.selectedChip===l?"selected":"",onkeydown:e=>((e,i)=>{if("Backspace"===e.key||"Delete"===e.key){e.preventDefault(),s(i);const a=Math.max(i-1,0);t.chipsData.length&&r(a)}else if("ArrowLeft"===e.key&&i>0)r(i-1);else if("ArrowRight"===e.key)if(i<t.chipsData.length-1)r(i+1);else{var l;const e=null==(l=a)?void 0:l.dom.querySelector(".chips-input");e&&e.focus()}})(e,l)},[i.image&&e("img",{src:i.image,alt:i.alt||i.tag}),i.tag,e("i.material-icons.close",{onclick:e=>{e.stopPropagation(),s(l)}},"close")])),e("input.chips-input.input",{id:t.inputId,title:"label",value:t.inputValue,placeholder:!t.chipsData.length&&f?f:t.chipsData.length&&b?b:"",oninput:e=>{t.inputValue=e.target.value,l()},onfocus:()=>{t.focused=!0,t.selectedChip=null,l()},onblur:()=>{t.focused=!1,setTimeout(()=>{t.showAutocomplete=!1,t.selectedChip=null,e.redraw()},150)},onkeydown:p}),t.showAutocomplete&&e("ul.autocomplete-content.dropdown-content",{style:{display:"block",opacity:1,transform:"scaleX(1) scaleY(1)",position:"absolute",width:"100%",left:0,top:"100%",maxHeight:"200px",overflow:"auto",zIndex:1e3,backgroundColor:"#fff",boxShadow:"0 2px 2px 0 rgba(0,0,0,0.14), 0 3px 1px -2px rgba(0,0,0,0.12), 0 1px 5px 0 rgba(0,0,0,0.2)"}},t.autocompleteItems.map((a,i)=>e("li.autocomplete-item",{key:a.tag,class:t.selectedAutocompleteIndex===i?"selected":"",style:{padding:"12px 16px",cursor:"pointer",backgroundColor:t.selectedAutocompleteIndex===i?"#eee":"transparent"},onmousedown:e=>{e.preventDefault(),o(a)},onmouseover:()=>{t.selectedAutocompleteIndex=i}},[a.image&&e("img.autocomplete-item-image",{src:a.image,alt:a.alt||a.tag,style:{width:"24px",height:"24px",marginRight:"8px",verticalAlign:"middle"}}),e("span.autocomplete-item-text",a.tag)])))]),v&&e(c,{label:v,id:t.inputId,isMandatory:u,isActive:!!(t.focused||t.chipsData.length||f)}),g&&e(d,{helperText:g})])}}},T=["newRow","code","language","className"],D=()=>({view:({attrs:i})=>{const{newRow:l,code:o,language:n,className:s}=i,r=a(i,T),c=n||"lang-TypeScript",d=c.replace("lang-",""),p=o instanceof Array?o.join("\n"):o,m=[l?"clear":"",c,s].filter(Boolean).join(" ").trim();return e("pre.codeblock"+(l?".clear":""),i,[e("div",e("label",d)),e("code",t({},r,{className:m}),p)])}}),V=()=>({view:({attrs:{header:t,body:a,active:i,iconName:l}})=>e(i?"li.active":"li",[t||l?e(".collapsible-header",[l?e("i.material-icons",l):void 0,t?"string"==typeof t?e("span",t):t:void 0]):void 0,a?e(".collapsible-body",a):void 0])}),O=()=>({oncreate:({dom:e,attrs:t})=>{M.Collapsible.init(e,t)},view:({attrs:t})=>{const{items:a,class:i,className:l,style:o,id:n}=t;return a&&a.length>0?e("ul.collapsible",{class:i||l,style:o,id:n},a.map(t=>e(V,t))):void 0}}),S=["header","items","mode"],R=["title","active","href"],L=["items","header"],j=["items","header","mode"];var B;!function(e){e[e.BASIC=0]="BASIC",e[e.LINKS=1]="LINKS",e[e.AVATAR=2]="AVATAR"}(B||(B={}));const $=e=>e&&/https?:\/\//.test(e),E=()=>({view:({attrs:t})=>{const{href:a,iconName:i="send",onclick:l,style:o={cursor:"pointer"}}=t,n={href:a,style:o,className:"secondary-content",onclick:l?()=>l(t):void 0};return $(a)||!a?e("a[target=_]",n,e(h,{iconName:i})):e(e.route.Link,n,e(h,{iconName:i}))}}),F=(e="")=>/\./.test(e),K=()=>({view:({attrs:{item:t,mode:a}})=>{const{title:i,content:l="",active:o,iconName:n,avatar:s,className:r,onclick:c}=t;return a===B.AVATAR?e("li.collection-item.avatar",{className:o?"active":"",onclick:c?()=>c(t):void 0},[F(s)?e("img.circle",{src:s}):e("i.material-icons.circle",{className:r},s),e("span.title",i),e("p",e.trust(l)),e(E,t)]):e("li.collection-item",{className:o?"active":""},n?e("div",[i,e(E,t)]):i)}}),_=()=>({view:t=>{let{attrs:{header:i,items:l,mode:o=B.BASIC}}=t,n=a(t.attrs,S);const s=l.map(t=>e(K,{key:t.id,item:t,mode:o}));return i?e("ul.collection.with-header",n,[e("li.collection-header",e("h4",i)),s]):e("ul.collection",n,s)}}),P=()=>({view:({attrs:{item:i}})=>{const{title:l,active:o,href:n}=i,s=t({},a(i,R),{className:"collection-item "+(o?"active":""),href:n});return $(n)||!n?e("a[target=_]",s,l):e(e.route.Link,s,l)}}),z=()=>({view:t=>{let{attrs:{items:i,header:l}}=t,o=a(t.attrs,L);return l?e(".collection.with-header",o,[e(".collection-header",e("h4",l)),i.map(t=>e(P,{key:t.id,item:t}))]):e(".collection",o,i.map(t=>e(P,{key:t.id,item:t})))}}),H=()=>({view:i=>{let{attrs:{items:l,header:o,mode:n=B.BASIC}}=i,s=a(i.attrs,j);return o||l&&l.length>0?n===B.LINKS?e(z,t({header:o,items:l},s)):e(_,t({header:o,items:l,mode:n},s)):void 0}}),U=["key","label","onchange","disabled","items","iconName","helperText","style","className"],q=()=>{const t={};return{oninit:({attrs:{id:e=i(),initialValue:a,checkedId:l}})=>{t.id=e,t.initialValue=a||l},view:i=>{let{attrs:{key:l,label:o,onchange:n,disabled:s=!1,items:r,iconName:c,helperText:p,style:m,className:u="col s12"}}=i,h=a(i.attrs,U);const{id:v,initialValue:g}=t,f=g?r.filter(e=>e.id?e.id===g:e.label===g).shift():void 0,b=f?f.label:o||"Select";return e(".input-field",{className:u,key:l,style:m},[c?e("i.material-icons.prefix",c):void 0,e(d,{helperText:p}),e("a.dropdown-trigger.btn.truncate[href=#]",{"data-target":v,disabled:s,className:"col s12",style:m||(c?"margin: 0.2em 0 0 3em;":void 0),oncreate:({dom:e})=>{M.Dropdown.init(e,h)}},b),e("ul.dropdown-content",{id:v},r.map(a=>e("li[tabindex=-1]",{className:a.divider?"divider":""},a.divider?void 0:e("a",{onclick:n?()=>{t.initialValue=a.id||a.label,n(t.initialValue)}:void 0},[a.iconName?e("i.material-icons",a.iconName):void 0,a.label]))))])}}},W=["className","iconName","iconClass","position","style","buttons"],Y=()=>({view:t=>{let{attrs:{className:i,iconName:l,iconClass:o="large",position:n,style:s=("left"===n||"inline-left"===n?"position: absolute; display: inline-block; left: 24px;":"right"===n||"inline-right"===n?"position: absolute; display: inline-block; right: 24px;":void 0),buttons:r}}=t,c=a(t.attrs,W);const d=e(".fixed-action-btn",{style:s,oncreate:({dom:e})=>M.FloatingActionButton.init(e,c)},[e("a.btn-floating.btn-large",{className:i},e("i.material-icons",{classNames:o},l)),r?e("ul",r.map(t=>e("li",e("a.btn-floating",{className:t.className,onclick:e=>t.onClick&&t.onClick(e)},e("i.material-icons",{className:t.iconClass},t.iconName))))):void 0]);return"inline-right"===n||"inline-left"===n?e("div",{style:"position: relative; height: 70px;"},d):d}}),X=["className","helperText","iconName","id","initialValue","isMandatory","label","onchange","onkeydown","onkeypress","onkeyup","onblur","style"],G=["className","dataError","dataSuccess","helperText","iconName","id","initialValue","isMandatory","label","maxLength","newRow","onchange","onkeydown","onkeypress","onkeyup","onblur","style","validate"],J=()=>{const l={id:i()};return{view:({attrs:i})=>{const{className:o="col s12",helperText:n,iconName:s,id:r=l.id,initialValue:p,isMandatory:m,label:u,onchange:h,onkeydown:v,onkeypress:g,onkeyup:f,onblur:b,style:y}=i,w=a(i,X);return e(".input-field",{className:o,style:y},[s?e("i.material-icons.prefix",s):"",e("textarea.materialize-textarea",t({},w,{id:r,tabindex:0,oncreate:({dom:e})=>{M.textareaAutoResize(e),i.maxLength&&M.CharacterCounter.init(e)},onchange:h?e=>{const t=e.target;h(t&&"string"==typeof t.value?t.value:"")}:void 0,value:p,onkeyup:f?e=>{f(e,e.target.value)}:void 0,onkeydown:v?e=>{v(e,e.target.value)}:void 0,onkeypress:g?e=>{g(e,e.target.value)}:void 0,onblur:b})),e(c,{label:u,id:r,isMandatory:m,isActive:p||i.placeholder}),e(d,{helperText:n})])}}},Q=(l,o="")=>()=>{const n={id:i()},s=e=>{const t=e.value;return!t||"number"!==l&&"range"!==l?t:+t},r=(e,t)=>{e.setCustomValidity("boolean"==typeof t?t?"":"Custom validation failed":t)};return{view:({attrs:i})=>{const{className:p="col s12",dataError:m,dataSuccess:u,helperText:h,iconName:v,id:g=n.id,initialValue:f,isMandatory:b,label:y,maxLength:w,newRow:x,onchange:k,onkeydown:N,onkeypress:I,onkeyup:A,onblur:C,style:T,validate:D}=i,V=a(i,G),O=[x?"clear":"",o,p].filter(Boolean).join(" ").trim();return e(".input-field",{className:O,style:T},[v?e("i.material-icons.prefix",v):void 0,e("input.validate",t({},V,{type:l,tabindex:0,id:g,oncreate:({dom:e})=>{(({autofocus:e})=>!!e&&("boolean"==typeof e?e:e()))(i)&&e.focus(),w&&M.CharacterCounter.init(e),"range"===l&&M.Range.init(e)},onkeyup:A?e=>{A(e,s(e.target))}:void 0,onkeydown:N?e=>{N(e,s(e.target))}:void 0,onkeypress:I?e=>{I(e,s(e.target))}:void 0,onblur:C,onupdate:D?({dom:e})=>{const t=e;r(t,D(s(t),t))}:void 0,onchange:e=>{const t=e.target;if(t){const e=s(t);k&&k(e),D&&r(t,D(e,t))}},value:f})),e(c,{label:y,id:g,isMandatory:b,isActive:!(void 0===f&&!i.placeholder&&"number"!==l&&"color"!==l&&"range"!==l)}),e(d,{helperText:h,dataError:m,dataSuccess:u})])}}},Z=Q("text"),ee=Q("password"),te=Q("number"),ae=Q("url"),ie=Q("color"),le=Q("range",".range-field"),oe=Q("email"),ne=()=>{let t,a=!1;return{view:({attrs:i})=>{const{multiple:l,disabled:o,initialValue:n,placeholder:s,onchange:r,className:c="col s12",accept:d,label:p="File"}=i,m=d?d instanceof Array?d.join(", "):d:void 0;return e(".file-field.input-field",{className:i.class||c},[e(".btn",[e("span",p),e("input[type=file]",{title:p,accept:m,multiple:l,disabled:o,onchange:r?e=>{const t=e.target;t&&t.files&&r&&(a=!0,r(t.files))}:void 0})]),e(".file-path-wrapper",e("input.file-path.validate[type=text]",{placeholder:s,oncreate:({dom:e})=>{t=e,n&&(t.value=n)}})),(a||n)&&e("a.waves-effect.waves-teal.btn-flat",{style:{float:"right",position:"relative",top:"-3rem",padding:0},onclick:()=>{a=!1,t.value="",r&&r({})}},e("i.material-icons","clear"))])}}},se=()=>({view:({attrs:{className:t="col s12",onchange:a,label:i,checked:l,disabled:o,description:n,style:s}})=>e("div",{className:t,style:s},e("label",[e("input[type=checkbox][tabindex=0]",{checked:l,disabled:o,onclick:a?e=>{e.target&&void 0!==e.target.checked&&a(e.target.checked)}:void 0}),i?"string"==typeof i?e("span",i):i:void 0]),n&&e(d,{className:"input-checkbox-desc",helperText:n}))}),re=()=>{const t={},a=e=>t.checkedIds.indexOf(e)>=0;return{oninit:({attrs:{initialValue:e,checkedId:a}})=>{const i=a||e;t.checkedId=a,t.checkedIds=i?i instanceof Array?[...i]:[i]:[]},view:({attrs:{label:i,id:l,options:o,checkedId:n,description:s,className:r="col s12",style:p,disabled:m,checkboxClass:u,newRow:h,isMandatory:v,onchange:g}})=>{n&&t.checkedId!==n&&(t.checkedId=n,t.checkedIds=n instanceof Array?n:[n]);const f=g?(e,a)=>{const i=t.checkedIds.filter(t=>t!==e);a&&i.push(e),t.checkedIds=i,g(i)}:void 0,b=[h?"clear":"",r].filter(Boolean).join(" ").trim();return e("div",{className:b,style:p},[e("div",{className:"input-field options"},e(c,{id:l,label:i,isMandatory:v})),e(d,{helperText:s}),...o.map(t=>e(se,{disabled:m||t.disabled,label:t.label,onchange:f?e=>f(t.id,e):void 0,className:t.className||u,checked:a(t.id),description:t.description}))])}}},ce=()=>{const t=e=>a.curKey=a.id=e,a={elementId:i(),id:"",curKey:"",kvc:(t,a,i)=>{const{keyClass:l=".col.s4",valueClass:o=".col.s8"}=i,n=a instanceof Array?a.join(", "):"boolean"==typeof a?e(se,{label:" ",checked:a,disabled:!0,className:"checkbox-in-collection"}):a.toString();return{title:e(".row",{style:"margin-bottom: 0"},[e(l,e("b",t)),e(o,n)])}}},l=()=>{a.id="",a.curKey=""};return{oninit:({attrs:{keyValueConverter:e,id:t}})=>{e&&(a.kvc=e),t&&(a.elementId=t)},view:({attrs:{className:i="col s12",disabled:o,disallowArrays:n,header:s,iconName:r,iconNameKey:d=(r?"label":void 0),isMandatory:p,label:m,labelKey:u="Key",labelValue:h="Value",properties:v,keyClass:g,valueClass:f,onchange:b,falsy:y=["false"],truthy:x=["true"]}})=>{const k=()=>b?b(v):void 0,N=((e,i)=>Object.keys(e).map(t=>({key:t,value:e[t]})).map(e=>((e,i)=>{const l=i.onclick;return i.id=i.id||e,i.active=e===a.curKey,i.onclick=l?()=>t(e)&&l(i):()=>t(e),i})(e.key,a.kvc(e.key,e.value,{keyClass:i.keyClass,valueClass:i.valueClass}))))(v,{keyClass:g,valueClass:f}),I=a.curKey,A=v[I],C="boolean"==typeof A||"number"==typeof A?A:A?A instanceof Array?`[${A.join(", ")}]`:A:"",M=a.elementId;return[e(".map-editor",e(".input-field",{className:i,style:"min-height: 1.5em;"},[r?e("i.material-icons.prefix",r):"",e(c,{label:m,isMandatory:p,isActive:N.length>0}),e(H,{id:M,items:N,mode:B.LINKS,header:s})])),o?void 0:[e(Z,{label:u,iconName:d,className:"col s5",initialValue:I,onchange:e=>{a.curKey=e,a.id&&(delete v[a.id],v[e]=A,a.id=e),k()}}),"string"==typeof C?e(J,{label:h,initialValue:C,className:"col s7",onchange:e=>{const t=(i=y,x.indexOf(a=e)>=0||!(i.indexOf(a)>=0)&&void 0);var a,i;const l=void 0===t&&/^\s*\d+\s*$/i.test(e)?+e:void 0;v[I]="boolean"==typeof t?t:"number"==typeof l?l:((e,t=!1)=>{if(t)return e;if(!e)return;const a=/\s*\[(.*)\]\s*/gi.exec(e);return a&&2===a.length?a[1].split(",").map(e=>e.trim()).map(e=>/^\d+$/g.test(e)?+e:e):void 0})(e,n)||e,k()}}):"number"==typeof C?e(te,{label:h,initialValue:C,className:"col s7",onchange:e=>{v[I]=e,k()}}):e(se,{label:h,checked:C,className:"input-field col s7",onchange:e=>{v[I]=e,k()}}),e(".col.s12.right-align",[e(w,{iconName:"add",onclick:l}),e(w,{iconName:"delete",disabled:!I,onclick:()=>{delete v[I],l(),k()}})])]]}}},de=()=>({oncreate:({dom:e,attrs:t})=>{M.Materialbox.init(e,t)},view:({attrs:t})=>e("img.materialboxed",t)}),pe=()=>({oncreate:({dom:e,attrs:{options:t,onCreate:a}})=>{const i=M.Modal.init(e,t);a&&a(i)},view:({attrs:{id:a,title:i,description:l,fixedFooter:o,bottomSheet:n,buttons:s,richContent:r,className:c}})=>{const d=[c,o?"modal-fixed-footer":"",n?"bottom-sheet":""].filter(Boolean).join(" ").trim();return e(".modal",{id:a,className:d},[e(".modal-content",[e("h4",i),r&&"string"==typeof l?e.trust(l||""):"string"==typeof l?e("p",l):l]),s?e(".modal-footer",s.map(a=>e(w,t({},a,{className:"modal-close"})))):void 0])}}),me=()=>({view:({attrs:{title:t,href:a,active:i,disabled:l}})=>e("li",{className:i?"active":l?"disabled":"waves-effect"},"number"==typeof t?e(e.route.Link,{href:a},t):t)}),ue=()=>{const a={pagIndex:0};return{view:({attrs:{items:i,curPage:l=1,size:o=Math.min(9,i.length)}})=>{const{pagIndex:n}=a,s=n*o,r=s+o,c=n>0,d=r<i.length,p=[{title:e("a",{onclick:()=>c&&a.pagIndex--},e("i.material-icons","chevron_left")),disabled:!c},...i.filter((e,t)=>s<=t&&t<r),{title:e("a",{onclick:()=>d&&a.pagIndex++},e("i.material-icons","chevron_right")),disabled:!d}];return e("ul.pagination",p.map((a,i)=>e(me,t({title:s+i},a,{active:s+i===l}))))}}},he=()=>({oncreate:({dom:e,attrs:t})=>{M.Parallax.init(e,t)},view:({attrs:{src:t}})=>t?e(".parallax-container",e(".parallax",e("img",{src:t}))):void 0}),ve=["label","helperText","initialValue","newRow","className","iconName","isMandatory","onchange","disabled"],ge=["label","helperText","initialValue","newRow","className","iconName","isMandatory","onchange","disabled"],fe=()=>{const l={id:i()};return{view:i=>{let{attrs:{label:o,helperText:n,initialValue:s,newRow:r,className:p="col s12",iconName:m,isMandatory:u,onchange:h,disabled:v}}=i,g=a(i.attrs,ve);const f=l.id,b=h?()=>l.dp&&h(l.dp.date):void 0,y=[r?"clear":"",p].filter(Boolean).join(" ").trim();return e(".input-field",{className:y,onremove:()=>l.dp&&l.dp.destroy()},[m?e("i.material-icons.prefix",m):"",e("input",t({},g,{type:"text",tabindex:0,className:"datepicker",id:f,disabled:v,oncreate:({dom:e})=>{l.dp=M.Datepicker.init(e,t({format:"yyyy/mm/dd",showClearBtn:!0,setDefaultDate:!0,defaultDate:s?new Date(s):new Date},g,{onClose:b}))}})),e(c,{label:o,id:f,isMandatory:u,isActive:!!s}),e(d,{helperText:n})])}}},be=()=>{const l={id:i()};return{view:i=>{let{attrs:{label:o,helperText:n,initialValue:s,newRow:r,className:p="col s12",iconName:m,isMandatory:u,onchange:h,disabled:v}}=i,g=a(i.attrs,ge);const f=l.id,b=new Date,y=h?()=>l.tp&&h(l.tp.time||s||`${b.getHours()}:${b.getMinutes()}`):void 0,w=["input-field","timepicker",r?"clear":"",p].filter(Boolean).join(" ").trim();return e("div",{className:w,onremove:()=>l.tp&&l.tp.destroy()},[m?e("i.material-icons.prefix",m):"",e("input",t({},g,{type:"text",tabindex:0,id:f,disabled:v,value:s,oncreate:({dom:e})=>{l.tp=M.Timepicker.init(e,t({twelveHour:!1,showClearBtn:!0,defaultTime:s},g,{onCloseEnd:y}))}})),e(c,{label:o,id:f,isMandatory:u,isActive:s}),e(d,{helperText:n})])}}},ye=()=>({view:({attrs:{id:t,groupId:a,label:i,onchange:l,className:o="col s12",checked:n,disabled:s}})=>e("div",{className:o},e("label",[e("input[type=radio][tabindex=0]",{name:a,disabled:s,checked:n,onclick:l?()=>l(t):void 0}),e("span",e.trust(i))]))}),we=()=>{const a={groupId:i()};return{oninit:({attrs:{checkedId:e,initialValue:t}})=>{a.oldCheckedId=e,a.checkedId=e||t},view:({attrs:{id:i,checkedId:l,newRow:o,className:n="col s12",label:s="",disabled:r,description:d,options:p,isMandatory:m,checkboxClass:u,onchange:h}})=>{a.oldCheckedId!==l&&(a.oldCheckedId=a.checkedId=l);const{groupId:v,checkedId:g}=a,f=e=>{a.checkedId=e,h&&h(e)};return o&&(n+=" clear"),e("div",{id:i,className:n},[e("div",{className:"input-field options"},e(c,{id:i,label:s,isMandatory:m})),d?e("p.helper-text",e.trust(d)):"",...p.map(a=>e(ye,t({},a,{onchange:f,groupId:v,disabled:r,className:u,checked:a.id===g})))])}}},xe=()=>{const t={},a=e=>e.map(e=>e.id).join(""),i=(e,t,a=!1)=>a||(t instanceof Array&&(e||"number"==typeof e)?t.indexOf(e)>=0:t===e);return{oninit:({attrs:{checkedId:e,initialValue:i,options:l}})=>{t.ids=a(l);const o=e||i;t.checkedId=e instanceof Array?[...e]:e,t.initialValue=null!=o?o instanceof Array?o.filter(e=>null!=e):[o]:[]},view:({attrs:{id:l,newRow:n,className:s="col s12",checkedId:r,key:p,options:m,multiple:u,label:h,helperText:v,placeholder:g="",isMandatory:f,iconName:b,disabled:y,classes:w="",dropdownOptions:x,onchange:k}})=>{t.checkedId!==r&&(t.initialValue=r?r instanceof Array?r:[r]:void 0);const{initialValue:N}=t,I=k?u?()=>{const e=t.instance&&t.instance.getSelectedValues(),a=e?e.length>0&&o(e[0])?e.map(e=>+e):e.filter(e=>null!==e||void 0!==e):void 0;t.initialValue=a||[],k(t.initialValue)}:e=>{if(e&&e.currentTarget){const a=e.currentTarget,i=o(a.value)?+a.value:a.value;t.initialValue=void 0!==typeof i?[i]:[]}t.initialValue&&k(t.initialValue)}:void 0;n&&(s+=" clear");const A=!m.some(e=>i(e.id,N)),C=m.reduce((e,t)=>(t.group&&e.indexOf(t.group)<0&&e.push(t.group),e),[]);return e(".input-field.select-space",{className:s,key:p,oncreate:u?({dom:e})=>t.wrapper=e:void 0},[b&&e("i.material-icons.prefix",b),e("select",{id:l,title:h,disabled:y,multiple:u,oncreate:({dom:e})=>{t.instance=M.FormSelect.init(e,{classes:w,dropdownOptions:x})},onupdate:({dom:e})=>{if(u){const e=b?1:0;!t.inputEl&&t.wrapper&&t.wrapper.childNodes&&t.wrapper.childNodes.length>0&&t.wrapper.childNodes[e].childNodes&&t.wrapper.childNodes[e].childNodes[0]&&(t.inputEl=t.wrapper.childNodes[e].childNodes[0]),t.inputEl&&t.inputEl.value&&t.inputEl.value.startsWith(`${g}, `)&&(t.inputEl.value=t.inputEl.value.replace(`${g}, `,""))}const i=a(m);let l=r&&t.checkedId!==r.toString();t.ids!==i&&(t.ids=i,l=!0),(t.checkedId instanceof Array&&r instanceof Array?t.checkedId.join()!==r.join():t.checkedId!==r)&&(t.checkedId=r,l=!0),l&&(t.instance=M.FormSelect.init(e,{classes:w,dropdownOptions:x}))},onchange:I},e("option",{value:"",disabled:!0,selected:!!A||void 0},g),0===C.length?m.map((t,a)=>{var l;return e("option",{value:t.id,title:t.title||void 0,disabled:t.disabled?"true":void 0,"data-icon":t.img||void 0,selected:i(t.id,N,0===a&&A&&!g)},null==(l=t.label)?void 0:l.replace("&amp;","&"))}):C.map(t=>e("optgroup",{label:t},m.filter(e=>e.group===t).map((t,a)=>{var l;return e("option",{value:t.id,title:t.title||void 0,disabled:t.disabled?"true":void 0,"data-icon":t.img||void 0,selected:i(t.id,N,0===a&&A&&!g)},null==(l=t.label)?void 0:l.replace("&amp;","&"))})))),e(c,{label:h,isMandatory:f}),v&&e(d,{helperText:v})])}}},ke=["label","left","right","disabled","newRow","onchange","checked","isMandatory","className"],Ne=()=>{const t={id:i()};return{view:({attrs:i})=>{const l=i.id||t.id,{label:o,left:n,right:s,disabled:r,newRow:d,onchange:p,checked:m,isMandatory:u,className:h="col s12"}=i,v=a(i,ke),g=["input-field",d?"clear":"",h].filter(Boolean).join(" ").trim();return e("div",{className:g},[o?e(c,{label:o||"",id:l,isMandatory:u,className:"active"}):void 0,e(".switch",v,e("label",[n||"Off",e("input[type=checkbox]",{id:l,disabled:r,checked:m,onclick:p?e=>{e.target&&void 0!==e.target.checked&&p(e.target.checked)}:void 0}),e("span.lever"),s||"On"]))])}}},Ie=()=>{const t={},a=(e,t)=>t||e.replace(/ /g,"").toLowerCase();return{view:({attrs:{tabWidth:i,selectedTabId:l,tabs:o,className:n,style:s,duration:r,onShow:c,swipeable:d,responsiveThreshold:p}})=>{const m=o.filter(e=>e.active).shift(),u=l||(m?a(m.title,m.id):""),h=["fill"===i?"tabs-fixed-width":"",n].filter(Boolean).join(" ").trim();return e(".row",[e(".col.s12",e("ul.tabs",{className:h,style:s,oncreate:({dom:e})=>{t.instance=M.Tabs.init(e,{duration:r,onShow:c,responsiveThreshold:p,swipeable:d})},onupdate:()=>{if(u){const e=document.getElementById(`tab_${u}`);e&&e.click()}},onremove:()=>t.instance.destroy()},o.map(({className:t,title:l,id:n,active:s,disabled:r,target:c,href:d})=>{const p=["fixed"===i?`col s${Math.floor(12/o.length)}`:"",t].filter(Boolean).join(" ").trim(),m=a(l,n);return e("li.tab",{className:p,disabled:r},e("a",{id:`tab_${m}`,className:s?"active":"",target:c,href:d||`#${m}`},l))}))),o.filter(({href:e})=>void 0===e).map(({id:t,title:i,vnode:l,contentClass:o})=>e(".col.s12",{id:a(i,t),className:o},l))])}}},Ae=()=>({view:({attrs:{id:t,title:a,datetime:i,active:l,content:o,iconName:n,dateFormatter:s,timeFormatter:r,onSelect:c}})=>e("li",{id:t,className:l?"active":void 0,onclick:c?()=>c({id:t,title:a,datetime:i,active:l,content:o}):void 0,style:c?"cursor: pointer;":void 0},[e(".mm_time",{datetime:i},[e("span",s(i)),e("span",r(i))]),n?e(".mm_icon",e("i.material-icons",n)):void 0,e(".mm_label",[a?"string"==typeof a?e("h5",a):a:void 0,o?"string"==typeof o?e("p",o):o:void 0])])}),Ce=()=>{const a=e=>`${e.getUTCDate()}/${e.getUTCMonth()+1}/${e.getUTCFullYear()}`,i=e=>`${n(e.getUTCHours())}:${n(e.getUTCMinutes())}`;return{view:({attrs:{items:l,onSelect:o,timeFormatter:n=i,dateFormatter:s=a}})=>e("ul.mm_timeline",l.map(a=>e(Ae,t({onSelect:o,dateFormatter:s,timeFormatter:n},a))))}},Me=()=>{const t={isOpen:!1,selectedOptions:[],searchTerm:"",options:[],inputRef:null,dropdownRef:null,focusedIndex:-1,onchange:null},a=a=>{const i=a.target;t.inputRef&&t.inputRef.contains(i)?(t.isOpen=!t.isOpen,e.redraw()):t.dropdownRef&&!t.dropdownRef.contains(i)&&(t.isOpen=!1,e.redraw())},i=a=>{if(!t.isOpen)return;const i=t.options.filter(e=>(e.label||e.id.toString()).toLowerCase().includes((t.searchTerm||"").toLowerCase())&&!t.selectedOptions.some(t=>t.id===e.id));switch(a.key){case"ArrowDown":a.preventDefault(),t.focusedIndex=Math.min(t.focusedIndex+1,i.length-1),e.redraw();break;case"ArrowUp":a.preventDefault(),t.focusedIndex=Math.max(t.focusedIndex-1,-1),e.redraw();break;case"Enter":a.preventDefault(),t.focusedIndex>=0&&t.focusedIndex<i.length&&l(i[t.focusedIndex]);break;case"Escape":a.preventDefault(),t.isOpen=!1,t.focusedIndex=-1,e.redraw()}},l=a=>{a.disabled||(t.selectedOptions=t.selectedOptions.some(e=>e.id===a.id)?t.selectedOptions.filter(e=>e.id!==a.id):[...t.selectedOptions,a],t.searchTerm="",t.focusedIndex=-1,t.onchange&&t.onchange(t.selectedOptions.map(e=>e.id)),e.redraw())};return{oninit:({attrs:{options:e=[],initialValue:a=[],onchange:i}})=>{t.options=e,t.selectedOptions=e.filter(e=>a.includes(e.id)),t.onchange=i},oncreate(){document.addEventListener("click",a),document.addEventListener("keydown",i)},onremove(){document.removeEventListener("click",a),document.removeEventListener("keydown",i)},view({attrs:{oncreateNewOption:a,className:i,placeholder:o,searchPlaceholder:n="Search options...",noOptionsFound:s="No options found",label:r,maxHeight:c="25rem"}}){const d=t.options.filter(e=>(e.label||e.id.toString()).toLowerCase().includes((t.searchTerm||"").toLowerCase())&&!t.selectedOptions.some(t=>t.id===e.id)),p=a&&t.searchTerm&&!d.some(e=>(e.label||e.id.toString()).toLowerCase()===t.searchTerm.toLowerCase());return e(".multi-select-dropdown.input-field",{className:i},[e("label",{class:o||t.selectedOptions.length>0?"active":""},r),e(".dropdown-trigger",{oncreate:({dom:e})=>{t.inputRef=e},style:{borderBottom:"2px solid #d1d5db",display:"flex",justifyContent:"space-between",alignItems:"center",cursor:"pointer"}},[e(".selected-options",{style:{display:"flex",flexWrap:"wrap",minHeight:"50px",paddingTop:"12px"}},0===t.selectedOptions.length?[e("span",o)]:t.selectedOptions.map(a=>e(".chip",[a.label||a.id.toString(),e("button",{onclick:i=>{i.stopPropagation(),(a=>{t.selectedOptions=t.selectedOptions.filter(e=>e.id!==a.id),t.onchange&&t.onchange(t.selectedOptions.map(e=>e.id)),e.redraw()})(a)},style:{marginLeft:"0.25rem",background:"none",border:"none",cursor:"pointer"}},"×")]))),e("svg.caret",{class:"caret",height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg"},[e("path",{d:"M7 10l5 5 5-5z"}),e("path",{d:"M0 0h24v24H0z",fill:"none"})])]),t.isOpen&&e(".dropdown-menu",{oncreate:({dom:e})=>{t.dropdownRef=e},onremove:()=>{t.dropdownRef=null},style:{position:"absolute",width:"98%",marginTop:"0.4rem",zIndex:1e3}},[e("ul.dropdown-content.select-dropdown",{style:{maxHeight:c,opacity:1,display:"block",width:"100%"}},[e("li",{class:"search-wrapper",style:{padding:"0 16px",position:"relative"}},[e("input",{type:"text",placeholder:n,value:t.searchTerm||"",oninput:a=>{t.searchTerm=a.target.value,t.focusedIndex=-1,e.redraw()},style:{width:"100%",outline:"none",fontSize:"0.875rem"}})]),...0!==d.length||p?[]:[e("li",{style:{padding:"0.5rem",textAlign:"center",color:"#9ca3af"}},s)],...p?[e("li",{onclick:async()=>{const e=await a(t.searchTerm);l(e)},style:{display:"flex",alignItems:"center",cursor:"pointer",background:t.focusedIndex===d.length?"#f3f4f6":""}},[e("span",`+ "${t.searchTerm}"`)])]:[],...d.map((a,i)=>e("li",{onclick:()=>l(a),class:a.disabled?"disabled":void 0,style:{display:"flex",alignItems:"center",cursor:a.disabled?"not-allowed":"pointer",background:t.focusedIndex===i?"#f3f4f6":""}},e("span",[e("input",{type:"checkbox",checked:t.selectedOptions.some(e=>e.id===a.id),style:{marginRight:"0.5rem"}}),a.label||a.id.toString()])))])])])}}};export{P as AnchorItem,m as Autocomplete,f as Button,g as ButtonFactory,A as Carousel,I as CarouselItem,C as Chips,D as CodeBlock,O as Collapsible,V as CollapsibleItem,H as Collection,B as CollectionMode,ie as ColorInput,fe as DatePicker,q as Dropdown,oe as EmailInput,ne as FileInput,w as FlatButton,Y as FloatingActionButton,d as HelperText,h as Icon,se as InputCheckbox,c as Label,b as LargeButton,K as ListItem,r as Mandatory,ce as MapEditor,de as MaterialBox,pe as ModalPanel,te as NumberInput,re as Options,ue as Pagination,he as Parallax,ee as PasswordInput,ye as RadioButton,we as RadioButtons,le as RangeInput,x as RoundIconButton,Me as SearchSelect,E as SecondaryContent,xe as Select,y as SmallButton,k as SubmitButton,Ne as Switch,Ie as Tabs,J as TextArea,Z as TextInput,be as TimePicker,Ce as Timeline,ae as UrlInput,o as isNumeric,n as padLeft,i as uniqueId,l as uuid4}; //# sourceMappingURL=index.modern.js.map