mirror of
https://github.com/jaandrle/deka-dom-el
synced 2025-07-01 20:32:13 +02:00
🐛 update dom-common.js setDelete to setDeleteAttr
This commit is contained in:
@ -1,8 +1,8 @@
|
||||
/** @type {Map<string, boolean>} */
|
||||
export const prop_cache= new Map(JSON.parse('[["#text,textContent",true],["HTMLElement,textContent",true],["HTMLElement,className",true]]'));
|
||||
export const prop_process= { setDelete };
|
||||
export const prop_process= { setDeleteAttr };
|
||||
import { isUndef } from './helpers.js';
|
||||
function setDelete(obj, prop, val){
|
||||
function setDeleteAttr(obj, prop, val){
|
||||
/* Issue
|
||||
For some native attrs you can unset only to set empty string.
|
||||
This can be confusing as it is seen in inspector `<… id=""`.
|
||||
|
@ -36,7 +36,7 @@ export function createElement(tag, attributes, ...connect){
|
||||
export { createElement as el };
|
||||
|
||||
import { prop_cache, prop_process } from './dom-common.js';
|
||||
const { setDelete }= prop_process;
|
||||
const { setDeleteAttr }= prop_process;
|
||||
export function assign(element, ...attributes){
|
||||
const s= signals(this);
|
||||
if(!attributes.length) return element;
|
||||
@ -71,7 +71,7 @@ export function assign(element, ...attributes){
|
||||
if(!is_svg) break;
|
||||
return element.appendChild(document.createTextNode(attr));
|
||||
}
|
||||
return isPropSetter(element, key) ? setDelete(element, key, attr) : setRemoveAttr(key, attr);
|
||||
return isPropSetter(element, key) ? setDeleteAttr(element, key, attr) : setRemoveAttr(key, attr);
|
||||
});
|
||||
return element;
|
||||
}
|
||||
@ -109,7 +109,8 @@ function getPropDescriptor(p, key, level= 0){
|
||||
}
|
||||
|
||||
/** @template {Record<any, any>} T @param {T} obj @param {(param: [ keyof T, T[keyof T] ])=> void} cb */
|
||||
function forEachEntries(obj, cb){ return Object.entries(obj).forEach(([ key, val ])=> cb(key, val)); }
|
||||
function forEachEntries(obj, cb){ return Object.entries(obj).forEach(([ key, val ])=> key && cb(key, val)); }
|
||||
|
||||
function setRemove(obj, prop, key, val){ return obj[ (isUndef(val) ? "remove" : "set") + prop ](key, val); }
|
||||
function setRemoveNS(obj, prop, key, val, ns= null){ return obj[ (isUndef(val) ? "remove" : "set") + prop + "NS" ](ns, key, val); }
|
||||
function setDelete(obj, key, val){ Reflect.set(obj, key, val); if(!isUndef(val)) return; return Reflect.deleteProperty(obj, key); }
|
||||
|
Reference in New Issue
Block a user