UNPKG

perlite

Version:

[![perlite logo](/docs/logo.svg)]()

3 lines (2 loc) 8.72 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("hyperactiv"),require("lit-html"),require("lit-html/directives/repeat"),require("lit-html/directives/cache"),require("lit-html/directives/until"),require("lit-html/directives/live"),require("lit-html/directives/guard"),require("lit-html/directives/class-map"),require("lit-html/directives/style-map"),require("lit-html/directives/if-defined"),require("lit-html/directives/async-append"),require("lit-html/directives/async-replace"),require("lit-html/directives/template-content"),require("lit-html/directives/unsafe-html"),require("lit-html/directives/unsafe-svg")):"function"==typeof define&&define.amd?define(["exports","hyperactiv","lit-html","lit-html/directives/repeat","lit-html/directives/cache","lit-html/directives/until","lit-html/directives/live","lit-html/directives/guard","lit-html/directives/class-map","lit-html/directives/style-map","lit-html/directives/if-defined","lit-html/directives/async-append","lit-html/directives/async-replace","lit-html/directives/template-content","lit-html/directives/unsafe-html","lit-html/directives/unsafe-svg"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).perlite={},e.hr,e.litHtml,e.repeat,e.cache,e.until,e.live,e.guard,e.classMap,e.styleMap,e.ifDefined,e.asyncAppend,e.asyncReplace,e.templateContent,e.unsafeHtml,e.unsafeSvg)}(this,(function(e,t,n,r,i,c,a,o,l,s,u,d,f,p,h,v){"use strict";function b(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var m=b(t);const y=e=>n.render(n.nothing,e),E=(...e)=>{};function g(e){if("true"===e||"false"===e)return"true"===e;if("null"===e)return null;if("undefined"!==e){if(""!==e&&!isNaN(Number(e)))return Number(e);try{return JSON.parse(e)}catch(e){}return e}}function j(e,t=!1){const n=e.replace(/-([a-z])/g,((e,t)=>t.toUpperCase()));return t?n.replace(/^\w/,(e=>e.toUpperCase())):n}function O(e){return e.replace(/[A-Z]/g,"-$&").toLowerCase()}const w=n.directive((e=>t=>e(t.element))),P=new WeakMap,k=n.directive(((e,...t)=>{const n=r=>{const i=r.element;if(P.has(r)){const[i,c]=P.get(r);c!==e?(i.destroy(),P.delete(r),n(r)):i.update(...t)}else{const n=e(i,...t);P.set(r,[n,e])}};return n})),q=n.directive((e=>t=>{if(!(t instanceof n.EventPart))throw new Error('"bind" directive can only be used in event listeners');const r=t.element,i=r instanceof HTMLInputElement,c=r instanceof HTMLSelectElement,a=r instanceof HTMLTextAreaElement,o=r instanceof HTMLButtonElement;if(!(i||c||a||o))throw new Error('"bind" directive can only be applied to input/select/textarea/button elements.');t.setValue((function(...t){let n=r.defaultValue;if(c&&r.options.length>0){const e=r.selectedIndex>=0?r.selectedIndex:0;n=r.options[e].value}else if(i)switch(r.type){case"number":case"range":n=r.valueAsNumber;break;case"checkbox":case"radio":n=!!r.checked;break;case"time":case"date":case"datetime":case"datetime-local":n=r.valueAsDate;break;default:n=r.value}else n=r.value;e.call(this,n,...t)}))})),V=n.directive((e=>t=>{if(!(t instanceof n.EventPart))throw new Error('"capture" directive can only be used in event listeners');t.setValue("object"==typeof e?{...e,capture:!0}:{handleEvent:e,capture:!0})})),x=n.directive((e=>t=>{if(!(t instanceof n.EventPart))throw new Error('"once" directive can only be used in event listeners');t.setValue("object"==typeof e?{...e,once:!0}:{handleEvent:e,once:!0})})),M=n.directive((e=>t=>{if(!(t instanceof n.EventPart))throw new Error('"passive" directive can only be used in event listeners');t.setValue("object"==typeof e?{...e,passive:!0}:{handleEvent:e,passive:!0})})),N=n.directive((e=>t=>{if(!(t instanceof n.EventPart))throw new Error('"prevent" directive can only be used in event listeners');const{handleEvent:r,...i}=e;t.setValue({handleEvent:function(t){t.preventDefault(),(r||e).call(this,t)},...i})})),T=n.directive(((e,t=!1)=>r=>{if(!(r instanceof n.EventPart))throw new Error('"stop" directive can only be used in event listeners');const{handleEvent:i,...c}=e;r.setValue({handleEvent:function(n){t?n.stopImmediatePropagation():n.stopPropagation(),(i||e).call(this,n)},...c})})),A=n.directive((e=>t=>{if(!(t instanceof n.EventPart))throw new Error('"self" directive can only be used in event listeners');const{handleEvent:r,...i}=e;t.setValue({handleEvent:function(t){t.target===t.currentTarget&&(r||e).call(this,t)},...i})})),{observe:L,computed:C,dispose:S}=m.default,H=({render:e=(()=>n.nothing),state:t={},target:r=document.body,...i},...c)=>{const a="function"==typeof t?t(...c):t;Object.entries(r.dataset).forEach((([e,t])=>{e in a&&(a[e]=g(t))}));const o=L(a,{batch:!0,deep:!0,bind:!0,...i}),l=(e,t,{bubbles:n=!1,cancelable:i=!0}={})=>{r.dispatchEvent(new CustomEvent(e,{detail:t,bubbles:n,cancelable:i}))};let s=!1;const u=()=>{n.render(e(o,l,...c),r),s||(l("mount",a),s=!0),l("update",a)},d=C((({computeAsync:e})=>s&&!document.contains(r)?v():(l("state",a),Promise.resolve().then((()=>e(u))).catch((e=>l("error",e)))))),f=new Set,p=new Set,h=new MutationObserver((e=>{e.forEach((e=>{if("attributes"!==e.type)return;const t=e.target,n=j(e.attributeName.replace("data-",""));if(!(n in o))return;const r=t.getAttribute(e.attributeName);if(r!==e.oldValue){const e=g(r);o[n]!==e&&(o[n]=e)}}))}));h.observe(r,{attributeFilter:Object.entries(a).reduce(((e,[t,n])=>("function"!=typeof n&&e.push("data-"+O(t)),e)),[]),attributeOldValue:!0,characterData:!1,childList:!1,subtree:!1});const v=(e=E)=>{h.disconnect(),S(d),p.forEach((e=>e())),p.clear(),l("destroy",a),f.forEach((e=>e())),f.clear(),y(r),e(a)};return{on:(e,t,n)=>{r.addEventListener(e,t,n);const i=()=>(r.removeEventListener(e,t,n),f.delete(i));return f.add(i),i},ctx:e=>e(...c),model:a,state:o,effect:(e,t)=>{const n=C(e,t),r=()=>(S(n),p.delete(r));return p.add(r),r},target:r,destroy:v,render:u}};Object.keys(n).forEach((function(t){"default"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})})),Object.keys(r).forEach((function(t){"default"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return r[t]}})})),Object.keys(i).forEach((function(t){"default"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return i[t]}})})),Object.keys(c).forEach((function(t){"default"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return c[t]}})})),Object.keys(a).forEach((function(t){"default"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return a[t]}})})),Object.keys(o).forEach((function(t){"default"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}})})),Object.keys(l).forEach((function(t){"default"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return l[t]}})})),Object.keys(s).forEach((function(t){"default"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return s[t]}})})),Object.keys(u).forEach((function(t){"default"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})})),Object.keys(d).forEach((function(t){"default"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return d[t]}})})),Object.keys(f).forEach((function(t){"default"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return f[t]}})})),Object.keys(p).forEach((function(t){"default"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return p[t]}})})),Object.keys(h).forEach((function(t){"default"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return h[t]}})})),Object.keys(v).forEach((function(t){"default"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return v[t]}})})),e.$=H,e.$$=({target:e,...t},...n)=>{e.length||(e=[e]);const r=Array.prototype.map.call(e,(e=>H({...t,target:e},...n)));return{...r,effect:(e,t)=>{const n=r.map((n=>n.effect(e(n.state),t)));return()=>n.forEach((e=>e()))},on:(...e)=>{const t=r.map((t=>t.on(...e)));return()=>t.forEach((e=>e()))},destroy:e=>r.forEach((t=>t.destroy(e))),render:()=>r.forEach((e=>e.render())),state:e=>{r.forEach((t=>e(t.state)))},ctx:e=>e(...n),forEach:Array.prototype.forEach.bind(r),target:e}},e.attrToVal=g,e.bind=q,e.call=(e,...t)=>function(...n){e.call(this,...n,...t)},e.camelCase=j,e.capture=V,e.computed=C,e.decorator=k,e.dispose=S,e.each=(e,t,n=(e=>e))=>r.repeat(e,n,t),e.kebabCase=O,e.memo=(e,t)=>{const n=new Map;return(...r)=>{let i;if("function"==typeof t){const c=t.apply(e,r);!1===c?(i=JSON.stringify(r),n.delete(i)):!0!==c&&(i=c)}if(void 0===i&&(i=JSON.stringify(r)),n.has(i))return n.get(i);const c=e.apply(e,r);return n.set(i,c),c}},e.noop=E,e.observe=L,e.once=x,e.passive=M,e.prevent=N,e.ref=w,e.self=A,e.stop=T,e.tick=(e=E)=>new Promise((e=>setTimeout(e))).then(e),e.unrender=y,Object.defineProperty(e,"__esModule",{value:!0})})); //# sourceMappingURL=index.min.js.map