From 93364bc2031d3f47546d63eb2a019d4c76ce332c Mon Sep 17 00:00:00 2001 From: Geoff Doty Date: Sun, 1 Jun 2025 03:01:01 -0400 Subject: [PATCH] release v0.8.0 --- deno.json | 2 +- dist/uhm.js | 12 +++++------- dist/uhm.min.js | 3 ++- dist/uhm.min.js.map | 2 +- 4 files changed, 9 insertions(+), 10 deletions(-) diff --git a/deno.json b/deno.json index fce2035..77f45ac 100644 --- a/deno.json +++ b/deno.json @@ -1,6 +1,6 @@ { "name": "@n2geoff/uhm", - "version": "0.7.0", + "version": "0.8.0", "exports": "./index.js", "tasks": { "dev": "deno run --watch index.js", diff --git a/dist/uhm.js b/dist/uhm.js index 9ba2514..f81e305 100644 --- a/dist/uhm.js +++ b/dist/uhm.js @@ -121,7 +121,7 @@ var diff = { }, }; -/*! Uhm v0.7.0 | MIT LICENSE | https://github.com/n2geoff/uhm */ +/*! Uhm v0.8.0 | MIT LICENSE | https://github.com/n2geoff/uhm */ /** * App Builder @@ -129,20 +129,19 @@ var diff = { * Composes state, actions, view together as * mountable ui * + * @param {String} mount element or querySelector value * @param {Object} opts options bag of state, view, actions, and mount * @param {Object} opts.state initial app object state * @param {Function} opts.view function that returns dom. state and actions are passed in * @param {Object} opts.actions object functions includes and return state - * @param {String} opts.mount querySelector value * * @returns {Object} state and update() interface */ -function app(opts) { +function app(mount = 'body', opts = {}) { // initial setup const state = opts.state || {}; const view = opts.view || (() => null); const actions = opts.actions || {}; - const mount = opts.mount || 'body'; /** * Assigns Dispatch-able Actions into App @@ -168,7 +167,7 @@ function app(opts) { /** update dom */ const update = () => { - const parentNode = document.querySelector(mount); + const parentNode = typeof mount === 'string' ? document.querySelector(mount) : mount; let result = view(state, actions); // handle multiple nodes @@ -265,8 +264,7 @@ function h(tagName, props, ...children) { return el; } -// source: https://github.com/dy/xhtm | MIT - +/*! xhtm v1.6.2 | MIT LICENSE | https://github.com/dy/xhtm */ const FIELD = '\ue000', QUOTES = '\ue001'; function htm (statics) { diff --git a/dist/uhm.min.js b/dist/uhm.min.js index 3e782fb..fc44a1c 100644 --- a/dist/uhm.min.js +++ b/dist/uhm.min.js @@ -1,4 +1,5 @@ /*! Emerj v1.0.0 | MIT LICENSE | https://github.com/bryhoyt/emerj */ var diff={attrs(elem){const attrs={};for(let i=0;inode.id),"string"==typeof modified){const html=modified;(modified=document.createElement(base.tagName)).innerHTML=html}const nodesByKey={old:this.nodesByKey(base,opts.key),new:this.nodesByKey(modified,opts.key)};let idx;for(idx=0;modified.firstChild;idx++){const newNode=modified.removeChild(modified.firstChild);if(idx>=base.childNodes.length){base.appendChild(newNode);continue}let baseNode=base.childNodes[idx];const newKey=opts.key(newNode);if(opts.key(baseNode)||newKey){const match=newKey&&newKey in nodesByKey.old?nodesByKey.old[newKey]:newNode;match!==baseNode&&(baseNode=base.insertBefore(match,baseNode))}if(baseNode.nodeType!==newNode.nodeType||baseNode.tagName!==newNode.tagName)base.replaceChild(newNode,baseNode);else if([Node.TEXT_NODE,Node.COMMENT_NODE].indexOf(baseNode.nodeType)>=0){if(baseNode.textContent===newNode.textContent)continue;baseNode.textContent=newNode.textContent}else if(baseNode!==newNode){const attrs={base:this.attrs(baseNode),new:this.attrs(newNode)};for(const attr in attrs.base)attr in attrs.new||baseNode.removeAttribute(attr);for(const attr in attrs.new)attr in attrs.base&&attrs.base[attr]===attrs.new[attr]||baseNode.setAttribute(attr,attrs.new[attr]);this.merge(baseNode,newNode)}}for(;base.childNodes.length>idx;)base.removeChild(base.lastChild)}}; -/*! Uhm v0.7.0 | MIT LICENSE | https://github.com/n2geoff/uhm */function app(opts){const state=opts.state||{},view=opts.view||(()=>null),actions=opts.actions||{},mount=opts.mount||"body";const update=()=>{const parentNode=document.querySelector(mount);let result=view(state,actions);if(Array.isArray(result)){const fragment=document.createDocumentFragment();fragment.append(...result.filter((node=>null!=node))),result=fragment}else if("string"==typeof result){const temp=document.createElement(parentNode.tagName);temp.innerHTML=result,result=temp}diff.merge(parentNode,result)};return opts.view&&mount&&function(data,actions){Object.entries(actions).forEach((([name,action])=>{"function"==typeof action&&(actions[name]=(...args)=>{Object.assign(state,action(data,...args)),setTimeout((()=>update()),20)})})),update()}(state,actions),{state:state,update:update}}function h(tagName,props,...children){const el=tagName===DocumentFragment?document.createDocumentFragment():document.createElement(tagName),booleanAttrs=["disabled","checked","selected","hidden","readonly","required","open","autoplay","loop","muted"];if(null==props||"object"!=typeof props||Array.isArray(props))null!=props&&children.unshift(props);else for(const[key,value]of Object.entries(props))null!=value&&(booleanAttrs.includes(key)?!0===value?(el.setAttribute(key,""),el[key]=!0):!1===value&&(el.removeAttribute(key),el[key]=!1):key.startsWith("on")&&"function"==typeof value?el.addEventListener(key.slice(2).toLowerCase(),value):"class"!==key?"style"!==key||"object"!=typeof value?(el.setAttribute(key,value),key in el&&(el[key]=value)):Object.assign(el.style,value):el.className=value);for(const child of children)if(null!=child)if("string"==typeof(value=child)||"number"==typeof value)el.appendChild(document.createTextNode(child));else if(Array.isArray(child)){const fragment=document.createDocumentFragment();fragment.append(...child.filter((c=>null!=c))),el.appendChild(fragment)}else child instanceof Node?el.appendChild(child):"boolean"==typeof child?console.warn(`Boolean child ${child} passed to h() for tag "${tagName}". Booleans are not rendered.`):console.error(`Unsupported child type: ${typeof child} for tag "${tagName}" in h() function`);var value;return el}const FIELD="",QUOTES="";function htm(statics){let args,name,value,last,h=this,prev=0,current=[null],field=0,quotes=[],quote=0,level=0,pre=!1;const evaluate=(str,parts=[],raw)=>{let i=0;return(str=raw||""!==str?str.replace(/\ue001/g,(m=>quotes[quote++])):quotes[quote++].slice(1,-1))?(str.replace(/\ue000/g,((match,idx)=>(idx&&parts.push(str.slice(i,idx)),i=idx+1,parts.push(arguments[++field])))),i1?parts:parts[0]):str},up=()=>{[current,last,...args]=current,current.push(h(last,...args)),pre===level--&&(pre=!1)};return statics.join("").replace(//g,"").replace(//g,"").replace(/('|")[^\1]*?\1/g,(match=>(quotes.push(match),""))).replace(/(?:^|>)((?:[^<]|<[^\w\ue000\/?!>])*)(?:$|<)/g,((match,text,idx,str)=>{let tag,close;if(idx&&str.slice(prev,idx).replace(/(\S)\/$/,"$1 /").split(/\s+/).map(((part,i)=>{if("/"===part[0]){if(part=part.slice(1),EMPTY[part])return;close=tag||part||1}else if(i){if(part){let props=current[2]||(current[2]={});"..."===part.slice(0,3)?Object.assign(props,arguments[++field]):([name,value]=part.split("="),Array.isArray(value=props[evaluate(name)]=!value||evaluate(value))&&(value.toString=value.join.bind(value,"")))}}else{if(tag=evaluate(part),"string"==typeof tag)for(tag=tag.toLowerCase();CLOSE[current[1]+tag];)up();current=[current,tag,null],level++,!pre&&PRE[tag]&&(pre=level),EMPTY[tag]&&(close=tag)}})),close)for(current[0]||err(`Wrong close tag \`${close}\``),up();last!==close&&CLOSE[last];)up();prev=idx+match.length,pre||(text=text.replace(/\s*\n\s*/g,"").replace(/\s+/g," ")),text&&evaluate((last=0,text),current,!0)})),current[0]&&CLOSE[current[1]]&&up(),level&&err(`Unclosed \`${current[1]}\`.`),current.length<3?current[1]:(current.shift(),current)}const err=msg=>{throw SyntaxError(msg)},EMPTY=htm.empty={},CLOSE=htm.close={},PRE=htm.pre={},html=htm.bind(h);export{app,h,html}; +/*! Uhm v0.8.0 | MIT LICENSE | https://github.com/n2geoff/uhm */function app(mount="body",opts={}){const state=opts.state||{},view=opts.view||(()=>null),actions=opts.actions||{};const update=()=>{const parentNode="string"==typeof mount?document.querySelector(mount):mount;let result=view(state,actions);if(Array.isArray(result)){const fragment=document.createDocumentFragment();fragment.append(...result.filter((node=>null!=node))),result=fragment}else if("string"==typeof result){const temp=document.createElement(parentNode.tagName);temp.innerHTML=result,result=temp}diff.merge(parentNode,result)};return opts.view&&mount&&function(data,actions){Object.entries(actions).forEach((([name,action])=>{"function"==typeof action&&(actions[name]=(...args)=>{Object.assign(state,action(data,...args)),setTimeout((()=>update()),20)})})),update()}(state,actions),{state:state,update:update}}function h(tagName,props,...children){const el=tagName===DocumentFragment?document.createDocumentFragment():document.createElement(tagName),booleanAttrs=["disabled","checked","selected","hidden","readonly","required","open","autoplay","loop","muted"];if(null==props||"object"!=typeof props||Array.isArray(props))null!=props&&children.unshift(props);else for(const[key,value]of Object.entries(props))null!=value&&(booleanAttrs.includes(key)?!0===value?(el.setAttribute(key,""),el[key]=!0):!1===value&&(el.removeAttribute(key),el[key]=!1):key.startsWith("on")&&"function"==typeof value?el.addEventListener(key.slice(2).toLowerCase(),value):"class"!==key?"style"!==key||"object"!=typeof value?(el.setAttribute(key,value),key in el&&(el[key]=value)):Object.assign(el.style,value):el.className=value);for(const child of children)if(null!=child)if("string"==typeof(value=child)||"number"==typeof value)el.appendChild(document.createTextNode(child));else if(Array.isArray(child)){const fragment=document.createDocumentFragment();fragment.append(...child.filter((c=>null!=c))),el.appendChild(fragment)}else child instanceof Node?el.appendChild(child):"boolean"==typeof child?console.warn(`Boolean child ${child} passed to h() for tag "${tagName}". Booleans are not rendered.`):console.error(`Unsupported child type: ${typeof child} for tag "${tagName}" in h() function`);var value;return el} +/*! xhtm v1.6.2 | MIT LICENSE | https://github.com/dy/xhtm */const FIELD="",QUOTES="";function htm(statics){let args,name,value,last,h=this,prev=0,current=[null],field=0,quotes=[],quote=0,level=0,pre=!1;const evaluate=(str,parts=[],raw)=>{let i=0;return(str=raw||""!==str?str.replace(/\ue001/g,(m=>quotes[quote++])):quotes[quote++].slice(1,-1))?(str.replace(/\ue000/g,((match,idx)=>(idx&&parts.push(str.slice(i,idx)),i=idx+1,parts.push(arguments[++field])))),i1?parts:parts[0]):str},up=()=>{[current,last,...args]=current,current.push(h(last,...args)),pre===level--&&(pre=!1)};return statics.join("").replace(//g,"").replace(//g,"").replace(/('|")[^\1]*?\1/g,(match=>(quotes.push(match),""))).replace(/(?:^|>)((?:[^<]|<[^\w\ue000\/?!>])*)(?:$|<)/g,((match,text,idx,str)=>{let tag,close;if(idx&&str.slice(prev,idx).replace(/(\S)\/$/,"$1 /").split(/\s+/).map(((part,i)=>{if("/"===part[0]){if(part=part.slice(1),EMPTY[part])return;close=tag||part||1}else if(i){if(part){let props=current[2]||(current[2]={});"..."===part.slice(0,3)?Object.assign(props,arguments[++field]):([name,value]=part.split("="),Array.isArray(value=props[evaluate(name)]=!value||evaluate(value))&&(value.toString=value.join.bind(value,"")))}}else{if(tag=evaluate(part),"string"==typeof tag)for(tag=tag.toLowerCase();CLOSE[current[1]+tag];)up();current=[current,tag,null],level++,!pre&&PRE[tag]&&(pre=level),EMPTY[tag]&&(close=tag)}})),close)for(current[0]||err(`Wrong close tag \`${close}\``),up();last!==close&&CLOSE[last];)up();prev=idx+match.length,pre||(text=text.replace(/\s*\n\s*/g,"").replace(/\s+/g," ")),text&&evaluate((last=0,text),current,!0)})),current[0]&&CLOSE[current[1]]&&up(),level&&err(`Unclosed \`${current[1]}\`.`),current.length<3?current[1]:(current.shift(),current)}const err=msg=>{throw SyntaxError(msg)},EMPTY=htm.empty={},CLOSE=htm.close={},PRE=htm.pre={},html=htm.bind(h);export{app,h,html}; //# sourceMappingURL=true \ No newline at end of file diff --git a/dist/uhm.min.js.map b/dist/uhm.min.js.map index 90caa9d..6665579 100644 --- a/dist/uhm.min.js.map +++ b/dist/uhm.min.js.map @@ -1 +1 @@ -{"version":3,"names":["diff","attrs","elem","i","attributes","length","attr","name","value","nodesByKey","parent","makeKey","map","j","childNodes","key","merge","base","modified","opts","node","id","html","document","createElement","tagName","innerHTML","old","this","new","idx","firstChild","newNode","removeChild","appendChild","baseNode","newKey","match","insertBefore","nodeType","replaceChild","Node","TEXT_NODE","COMMENT_NODE","indexOf","textContent","removeAttribute","setAttribute","lastChild","app","state","view","actions","mount","update","parentNode","querySelector","result","Array","isArray","fragment","createDocumentFragment","append","filter","temp","data","Object","entries","forEach","action","args","assign","setTimeout","dispatch","h","props","children","el","DocumentFragment","booleanAttrs","unshift","includes","startsWith","addEventListener","slice","toLowerCase","style","className","child","createTextNode","c","console","warn","error","FIELD","QUOTES","htm","statics","last","prev","current","field","quotes","quote","level","pre","evaluate","str","parts","raw","replace","m","push","arguments","up","join","text","tag","close","split","part","EMPTY","toString","bind","CLOSE","PRE","err","shift","msg","SyntaxError","empty"],"sources":["dist/uhm.js"],"mappings":"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","ignoreList":[]} \ No newline at end of file +{"version":3,"names":["diff","attrs","elem","i","attributes","length","attr","name","value","nodesByKey","parent","makeKey","map","j","childNodes","key","merge","base","modified","opts","node","id","html","document","createElement","tagName","innerHTML","old","this","new","idx","firstChild","newNode","removeChild","appendChild","baseNode","newKey","match","insertBefore","nodeType","replaceChild","Node","TEXT_NODE","COMMENT_NODE","indexOf","textContent","removeAttribute","setAttribute","lastChild","app","mount","state","view","actions","update","parentNode","querySelector","result","Array","isArray","fragment","createDocumentFragment","append","filter","temp","data","Object","entries","forEach","action","args","assign","setTimeout","dispatch","h","props","children","el","DocumentFragment","booleanAttrs","unshift","includes","startsWith","addEventListener","slice","toLowerCase","style","className","child","createTextNode","c","console","warn","error","FIELD","QUOTES","htm","statics","last","prev","current","field","quotes","quote","level","pre","evaluate","str","parts","raw","replace","m","push","arguments","up","join","text","tag","close","split","part","EMPTY","toString","bind","CLOSE","PRE","err","shift","msg","SyntaxError","empty"],"sources":["dist/uhm.js"],"mappings":"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","ignoreList":[]} \ No newline at end of file