@twobirds/microcomponents 0.0.25 → 0.0.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.microcomponents=t():e.microcomponents=t()}(this,(()=>(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){return null!=e&&"object"==typeof e}function n(e){return e.split("-").map((e=>e.charAt(0).toUpperCase()+e.slice(1))).join("")}function s(e,t){let r;return()=>{clearTimeout(r),r=setTimeout((function(){e(...arguments)}),t)}}function a(e,t){const n=Object.keys(e),s=Object.keys(t);if(n.length!==s.length)return!1;for(const s of n){const n=e[s],o=t[s],c=r(n)&&r(o);if(c&&!a(n,o)||!c&&n!==o)return!1}return!0}function o(e,t,n=null,s){let a=e.split(".");s||(s=t);let c=a.shift(),i=a.join(".");null!==n&&c.length&&void 0===t[c]&&(t[c]={});let l=t[c];return 0===i.length?null!==n?(t[c]=n,s):t[c]:r(t[c])?o(i,t[c],n,s):n?s:l[c]}function c(e,t){var n=Array.from(arguments);if(n.length){if(1===n.length)return n[1];if(n.length>2){for(;n.length>1;)n[0]=c(n[0],n[1]),n.splice(1,1);return n[0]}if("string"==typeof e){var s=e.match(/\{[^\{\}]*\}/g);s&&s.forEach((function(r){var n=o(r.substr(1,r.length-2),t);void 0!==n&&(e=e.replace(r,n))}))}else if(r(e))switch(e.constructor){case Object:Object.keys(e).forEach((function(r){e.hasOwnProperty(r)&&(e[r]=c(e[r],t))}));break;case Array:e.forEach((function(r,n,s){s[n]=c(e[n],t)}))}return e}console.error("no arguments give to parse")}function i(e){let t=document.createElement("template");return e=e.replace(/<([A-Za-z0-9\-]*)([^>\/]*)(\/>)/gi,"<$1$2></$1>"),t.innerHTML=e,t.content.normalize(),Array.from(t.content.childNodes)}e.r(t),e.d(t,{$d:()=>B,$t:()=>q,DC:()=>S,MC:()=>A,McBase:()=>w,McEvent:()=>h,addListener:()=>b,debounce:()=>s,deepEqual:()=>a,defineCE:()=>k,formValues:()=>F,getCE:()=>x,htmlToElements:()=>i,isObject:()=>r,kebabToPascal:()=>n,makeCO:()=>T,nameSpace:()=>o,parse:()=>c,removeListener:()=>g});var l=new Function("try {return this===window;}catch(e){ return false;}");let u=new Set;l()&&Object.keys(HTMLElement.prototype).filter((e=>/^on/.test(e))).forEach((e=>u.add(e)));class h{#e;#t=!1;#r=!1;constructor(e,t={},r="l"){this.#e=e,this.data=t,this.bubble=r}get type(){return this.#e}get stopped(){return this.#t}get immediateStopped(){return this.#r}stopPropagation(){this.#t=!0}stopImmediatePropagation(){this.stopPropagation(),this.#r=!0}}var f=new Function("try {return this===window;}catch(e){ return false;}");let d=new Set;function p(e,t){let r=[];return e.forEach((e=>{if(e&&e instanceof HTMLElement){const n=e?._mc;!t&&n?r=r.concat(Object.values(e._mc)):t&&n&&n[t]&&r.push(n[t])}})),r}function m(e,t,r=!0){let n=[];for(;e;){if(e._mc&&(t?t&&e._mc[t]&&n.push(e._mc[t]):n=n.concat(Object.values(e._mc)),r))return n;e=e.parentNode}return n}function y(e){return e&&e instanceof HTMLElement}function b(e,t,r,n=!1,s=!1){let a={once:!1};n&&(a.capture=n),s&&(a.once=s),e.addEventListener(t,r,a)}function g(e,t,r){e.removeEventListener(t,r)}function E(e,t,r={}){let n=e;if(!n._mc){let t=A?.debug;A.debug=!1,n._mc=new A(e),A.debug=t}const s=n._mc;return t.length&&!s[t]&&(s[t]=r,e instanceof HTMLElement&&e.setAttribute("_mc","")),r}function v(e,t){if(!t)return;const r=e?._mc||{};r&&r[t]&&delete r[t],!Object.keys(r).length&&e instanceof HTMLElement&&e.hasAttribute("_mc")&&e.removeAttribute("_mc")}function O(e,t,r={}){let n=e?._mc;n&&[...Object.values(n)].forEach((e=>{e?.trigger&&"function"==typeof e?.trigger&&e?.trigger(t,r)}))}f()&&Object.keys(HTMLElement.prototype).filter((e=>/^on/.test(e))).forEach((e=>d.add(e)));class w{#n;#s={};_mc={};constructor(e){this.#n=new WeakRef(e),this.constructor!==A&&this.constructor!==S&&Object.defineProperty(this,"_mc",{get(){return this.#s}})}get target(){return this.#n.deref()}}class A extends w{constructor(e){super(e);let t=this;t.constructor!==A&&t.constructor!==S&&setTimeout((()=>{t.trigger("init")}),0)}trigger(e,t={},r){let n=this;if(r=r||"l",n.constructor!==A&&n.constructor!==S){if(n instanceof A||n instanceof S){const n=this,s="string"!=typeof e?e:new h(e,t,r),a="on"+s.type[0].toUpperCase()+s.type.slice(1);if(s.bubble.indexOf("l")>-1&&(s.immediateStopped||"function"!=typeof n[a]||(n[a](s),n.hasOwnProperty(a)&&delete n[a])),s.stopped||"l"===s.bubble)return n;f()&&/[ud]/.test(s.bubble)&&n instanceof A&&setTimeout((()=>{-1===s.bubble.indexOf("l")&&(s.bubble+="l"),s.bubble.indexOf("u")>-1&&n.parent().forEach((e=>{e instanceof A&&e.trigger(s)})),s.bubble.indexOf("d")>-1&&n.children().forEach((e=>{e instanceof A&&e.trigger(s)}))}),0)}}else[...Object.getOwnPropertyNames(n)].forEach((s=>{n[s]?.trigger&&"function"==typeof n[s]?.trigger&&n[s]?.trigger(e,t,r)}))}}class S extends A{#s={};_mc={};constructor(e){super(e),this.constructor!==A&&this.constructor!==S&&Object.defineProperty(this,"_mc",{get(){return this.#s}})}static debug=!1;static add=E;static remove=v;static trigger=O;parent(e=""){let t=this.target;return y(t)?m(t.parentNode,e,!0):[]}ancestors(e=""){let t=this?.target;return y(t)?m(this.target.parentNode,e,!1):[]}children(e=""){let t=this?.target;if(!y(t))return[];const r=Math.random().toString().replace(".",""),n='[_mc]:not([temp_id="'+r+'"] [_mc] [_mc])';t.setAttribute("temp_id",r);const s=p([...t.querySelectorAll(n)],e);return t.removeAttribute("temp_id"),s}descendants(e=""){let t=this?.target;return y(t)?p([...t.querySelectorAll("*[_mc]")],e):[]}autoAttachListeners(){if(!f())return;const e=this.target;if(e instanceof HTMLElement){let t=this;Object.getOwnPropertyNames(t.constructor.prototype).filter((e=>/^on[A-Z]|one[A-Z]/.test(e)&&"function"==typeof t.constructor.prototype[e])).forEach((r=>{let n=/^one/.test(r),s=r.replace(/^on[e]{0,1}/,""),a=s.toLowerCase();n&&Object.defineProperty(this,"on"+s,{configurable:!0,enumerable:!1,writable:!0,value:e=>{t.constructor.prototype[r].bind(t)(e)}}),d.has("on"+a)&&b(e,a,(e=>{t.trigger(s,e)}),!1,n)}))}}}class j extends HTMLElement{constructor(){super()}connectedCallback(){S.trigger(this,"Connected")}disconnectedCallback(){S.trigger(this,"Disconnected")}adoptedCallback(){S.trigger(this,"Adopted")}attributeChangedCallback(e,t,r){S.trigger(this,"AttributeChanged",{name:e,oldValue:t,newValue:r})}}function k(e,t,r=[]){if(customElements.get(e))return void console.warn(`IGNORED: Custom element "${e}" is already defined!`);if(!e.includes("-"))throw new Error('createCustomElement: tagName must contain at least one hyphen ("-").');let s=n(e);customElements.define(e,function(e,t){return Object.defineProperty(t,"name",{value:e})}(s,class extends j{instance;constructor(e){super();let r=new t(this,e);S.add(this,s,r)}static get observedAttributes(){return r}}))}function x(e){return customElements.get(e)}const T=(e,t)=>{(t?[t]:[...Object.getOwnPropertyNames(e)]).forEach((t=>{if("_"===t[0]||void 0===e?.[t])return;let n,o=e[t];if(!o.prototype)switch(typeof o){case"string":n=String;break;case"number":n=Number;break;case"boolean":n=Boolean;break;case"object":n=o instanceof Array?Array:Object;break;default:return}let i=class extends n{constructor(e){super(e),this.constructor.callbacks=[],r(e)&&(this.constructor.bound=[],Object.getOwnPropertyNames(e).forEach((t=>{this[t]=e[t]})))}observe(e){return this.constructor.callbacks.push(e),this}bind(e){const t=this,n=r(t.valueOf()),s=t.constructor.bound;if(n){function a(e){if(e.nodeType&&3===e.nodeType){var r=Array.from(e.nodeValue&&e.nodeValue.match(/\{[^\{\}]*\}/g)||[]);if(r.length>0){var o=(i=e.nodeValue||"",function(t){var s,a=!1;return r&&(n?r.forEach((function(e){o.values[e]!==t[e]&&(o.values[e]=t[e],a=!0)})):(o.values=t,a=!0)),a&&(s=i,e.nodeValue=n?c(s,o.values):s.replace(/\{.*\}/g,o.values)),t});o.values=n?{}:void 0,r=Array.from(r).map((e=>e.replace(/[\{\}]/g,"").trim()));let t=n?{}:void 0;r.forEach((function(e){n&&(t[e]="")})),s.push(o)}Array.from(e.childNodes).forEach((function(e){a(e)})),t.notify()}var i;e.nodeType&&1===e.nodeType&&(Array.from(e.attributes).forEach((function(t){var r=Array.from(t.value&&t.value.match(/\{[^\{\}]*\}/g)||[]);if(r.length>0){var n=function(t){return function(s){var a,o=!1;return r&&r.forEach((function(e){n.values[e]!==s[e]&&(n.values[e]=s[e],o=!0)})),o&&(a=t,e.nodeValue=c(a,n.values)),s}}(t.value||"");n.values={},r=Array.from(r).map((e=>e.replace(/[\{\}]/g,"").trim()));let a={};r.forEach((function(e){a[e]=""})),s.push(n)}})),Array.from(e.childNodes).forEach((function(e){a(e)})),t.notify()),e.nodeType&&11===e.nodeType&&Array.from(e.childNodes).forEach((function(e){a(e)}))}a(e),s.length>0&&t.notify()}else console.warn("IGNORED - cannot bind a non-Object to the dom, IS:",typeof t.valueOf());return this}notify(){let e=this,t=r(e.valueOf())&&e.valueOf()instanceof Array==0?structuredClone(Object.assign({},e)):e.valueOf();return e.constructor.callbacks.forEach((e=>{e(t)})),r(e.valueOf())&&e.constructor.bound.forEach((e=>{e(t)})),this}},l=new i(o);Object.defineProperty(e,t,{enumerable:!0,get(){if(r(l.valueOf())){let e=structuredClone(Object.assign({},l));setTimeout(s((function(){a(structuredClone(Object.assign({},l)),e)||l.notify()}),0),0)}return l},set(e){if(typeof e==typeof l.valueOf())if(r(l.valueOf())&&l.valueOf()instanceof Array==0){let t=structuredClone(Object.assign({},l));e=structuredClone(Object.assign({},e));let r=l.constructor?.hasFormHandler??!1,n=l.constructor.callbacks,o=l.constructor.bound;l=new i(structuredClone(Object.assign({},e))),l.constructor.callbacks=r,l.constructor.callbacks=n,l.constructor.bound=o,setTimeout(s((function(){a(structuredClone(Object.assign({},l)),t)||l.notify()}),0),0)}else{let t=l.valueOf(),r=l.constructor.callbacks;l=new i(e),l.constructor.callbacks=r,e!==t&&l.notify()}else console.warn("IGNORED - cannot change observable types, IS:",typeof l.valueOf(),"- CANNOT BECOME:",typeof e)}}),e[t]=o}))},_=e=>{let t=new Set;return e.forEach((e=>{(e=e.trim()).split(" ").forEach((e=>{""!==e&&t.add(e)}))})),Array.from(t)},C=e=>{let t=B("input,select,textarea",e).array,r={};return t.forEach((t=>{const n=t.getAttribute("name")||"undefined";if(n){let s;switch((e=>e instanceof HTMLInputElement?"input":e instanceof HTMLSelectElement?"select":e instanceof HTMLTextAreaElement?"textarea":"")(t)){case"input":s=new L(t,e),Object.defineProperty(r,n,{enumerable:!0,configurable:!0,get:()=>s.val,set:e=>{s.val=e}});break;case"select":s=new M(t),Object.defineProperty(r,n,{enumerable:!0,configurable:!0,get:()=>s.val,set:e=>{s.val=e}});break;case"textarea":s=new P(t),Object.defineProperty(r,n,{enumerable:!0,configurable:!0,get:()=>s.val,set:e=>{s.val=e}});break;default:console.warn("handler missing:",n,"for",t)}}})),r};class N{constructor(e){}}class L extends N{#a;#e;#o;constructor(e,t){super(e),this.#a=e,this.#e=e.type,this.#o=t}get val(){let e,t=this;switch(t.#e){case"radio":const r=B(`input[type="radio"][name="${this.#a.getAttribute("name")}"]`,this.#o).filter((e=>e.checked));return r.length?(e=r.array[0],e.value):"";case"checkbox":return t.#a.checked;default:return t.#a.value}return""}set val(e){let t=this;switch(t.#e){case"radio":const r=`input[type="radio"][name="${this.#a.getAttribute("name")}"]`,n=B(r,this.#o);if(!n.length)return;if(""===e)return void n.forEach((e=>{e.checked&&(e.checked=!1)}));const s=n.filter((t=>t.getAttribute("value")===e));if(!s.length)return;return void(s.array[0].checked=!0);case"checkbox":t.#a.checked=e;break;default:t.#a.value=e}}}class M extends N{#a;#c=!1;constructor(e){super(e),this.#a=e,this.#c="select-multiple"===e.type}get val(){const e=[];return B(this.#a.querySelectorAll("option")).filter((e=>e.selected)).forEach((t=>{t.selected&&e.push(t.value)})),this.#c?e:e.length?e[0]:""}set val(e){e="string"==typeof e?[e]:e,B(this.#a.querySelectorAll("option")).forEach((t=>{e.indexOf(t.value)>-1?(t.setAttribute("selected",!0),t.selected=!0):(t.removeAttribute("selected"),t.selected=!1)}))}}class P extends N{#a;constructor(e){super(e),this.#a=e}get val(){return this.#a.value}set val(e){this.#a.value=e}}class H{#i=new Set;get set(){return this.#i}get array(){return Array.from(this.#i)}set set(e){this.#i=e}get length(){return this.#i.size}constructor(e,t=document.body){if(new Set,!e)return this}$t(e){let t=new $;return this.#i.forEach((e=>{e._mc&&Object.values(e._mc).forEach((e=>{t.set.add(e)}))})),e&&t.filter((t=>t.nameSpace===e)),t}add(e,t){let r=this;return B(e,t).forEach((e=>{r.#i.add(e)})),r}addClass(...e){return e=_(e),this.forEach((t=>{t.classList.add(...e)})),this}after(e,t){let r=this,n=B(e,t);return n.length?(n.first().forEach((e=>{r.array.reverse().forEach((t=>{t.after(e)}))})),r):r}append(e,t){let r=this.array[0],n=B(e,t);return r&&n.forEach((e=>{r.append(e)})),this}appendTo(e,t){let r=B(e,t).array[0];return r&&this.forEach((e=>{r.append(e)})),this}attr(e,t){let r=this,n={};return r.length?arguments.length?"string"==typeof e?void 0===t?[...r.set][0].getAttribute(e):null===t?([...r.set].forEach((t=>{t.removeAttribute(e)})),r):("object"==typeof t&&(t=JSON.stringify(t)),[...r.set].forEach((r=>{r.setAttribute(e,t)})),r):"object"==typeof e?([...r.set].forEach((t=>{Object.keys(e).forEach((r=>{B(t).attr(r,e.key)}))})),r):r:(Array.from([...r.set][0].attributes).forEach((e=>{n[e.name]=e.value})),n):r}before(e,t){let r=this,n=B(e,t);return n.length?(n.first().forEach((e=>{r.forEach((t=>{t.before(e)}))})),r):r}children(e,t){let r=this,n=new Set;if(r.#i.forEach((e=>{Array.from(e.children).forEach((e=>{n.add(e)}))})),r=B([...n]),e){let n=B(e,t);r.filter((e=>n.has(e)))}return r}descendants(e,t){let r=this,n=new Set;if(r.#i.forEach((e=>{e.querySelectorAll("*").forEach((e=>{n.add(e)}))})),r=B([...n]),e){let n=B(e,t);r.filter((e=>n.has(e)))}return r}empty(){return this.filter((e=>!1))}first(e,t){let r=this,n=new Set,s=!1;return e&&(s=B(e,t)),r.#i.forEach((e=>{e.parentNode&&n.add(e.parentNode.children[0])})),r=B([...n]),e&&r.filter((e=>s.has(e))),r}has(e){return this.#i.has(e)}hasClass(...e){return e=_(e),this.every((e=>Array.from(e.classList).every((t=>e.contains(t)))))}html(e){let t=this;return e?(t.forEach((t=>{t.parentNode?t.innerHTML=e:(()=>{console.warn("Cannot access the .innerHTML of a HTMLElement that hasnt been inserted yet",t),console.trace(t,this),console.info("If you called this from inside a Web Component constructor, consider using the %c[connected] event callback!","color: blue;")})()})),t):t.array[0].innerHTML}last(e,t){let r=this,n=new Set;if(r.#i.forEach((e=>{let t=e.parentNode?.children;t&&n.add(Array.from(t).at(-1))})),r=B([...n]),e){let n=B(e,t);r.filter((e=>n.has(e)))}return r}next(e,t){let r=this,n=new Set;if(r.#i.forEach((e=>{let t=e.parentNode?.children;if(t){let r=Array.from(t),s=r.indexOf(e)+1;s<r.length&&n.add(r.at(s))}})),r=B([...n]),e){let n=B(e,t);r.filter((e=>n.has(e)))}return r}normalize(){return this.#i.forEach((e=>{e.normalize()})),this}off(e,t){let r=e.indexOf(" ")>-1?e.split(" "):[e];return this.array.forEach((e=>{r.forEach((function(r){g(e,r,t)}))})),this}on(e,t,r=!1,n=!1){let s=this,a=e.indexOf(" ")>-1?e.split(" ").filter((e=>""!==e)):[e];function o(){o.cb.apply(s,Array.from(arguments))}return o.cb=t,s.forEach((e=>{a.forEach((function(t){b(e,t,o,r,n)}))})),o}one(e,t,r=!1){let n=this,s=e.indexOf(" ")>-1?e.split(" ").filter((e=>""!==e)):[e];function a(){a.cb.apply(n,Array.from(arguments))}return a.cb=t,n.forEach((e=>{s.forEach((function(t){b(e,t,a,r,!0)}))})),a}parent(e,t){let r=this,n=new Set;if(r.#i.forEach((e=>{e.parentNode&&"HTML"!==e.parentNode.tagName&&n.add(e.parentNode)})),r=B([...n]),e){let n=B(e,t);r.filter((e=>n.has(e)))}return r}parents(e,t){let r=this,n=new Set;if(r.#i.forEach((e=>{let t=e;for(;t.parentNode&&"HTML"!==t.parentNode.tagName;)t=t.parentNode,n.add(t)})),r=B([...n]),e){let n=B(e,t);r.filter((e=>n.has(e)))}return r}prepend(e,t){let r=this.array[0],n=B(e,t);return r&&n.forEach((e=>{r.prepend(e)})),this}prev(e,t){let r=this,n=new Set;if(r.#i.forEach((e=>{let t=e.parentNode?.children;if(t){let r=Array.from(t),s=r.indexOf(e)-1;s>-1&&n.add(r.at(s))}})),r=B([...n]),e){let n=B(e,t);r.filter((e=>n.has(e)))}return r}removeClass(...e){return e=_(e),this.forEach((t=>{t.classList.remove(...e)})),this}text(e){let t=this;return e?(t.forEach((t=>{t.parentNode?t.innerText=e:(()=>{console.warn("Cannot access the .textContent of a HTMLElement that hasnt been inserted yet",t),console.trace(t,this),console.info("If you called this from inside a Web Component constructor, consider using the %c[connected] event callback!","color: blue;")})()})),t):t.array[0].innerText??""}toggleClass(...e){return e=_(e),this.forEach((t=>{t.classList.toggle(...e)})),this}trigger(e,t={},r=!1,n=!1,s=!1){let a,o={bubbles:r,cancelable:n,composed:s},c=e.indexOf(" ")>-1?e.split(" "):[e];return this.#i.forEach((e=>{c.forEach((function(r){a=new Event(r,o),a.data=t,e.dispatchEvent(a)}))})),this}val(e,t){if(!this.length)return this;const r=this;let n,s=C(r.array[0]);var a;return e?null!=(a=e)&&"object"==typeof a?(Object.assign(s,e),n=r):"string"==typeof e&&(void 0===t?n=s[e]:(s[e]=t,n=r)):n=Object.assign({},s),n}values(e){const t=this;let r={};if(!t.length)return console.warn("no dom selection to search inputs in"),{};let n=C(t.array[0]);return Object.keys(n).forEach((e=>{r[e]=n[e]})),0===Object.keys(r).length&&console.warn("no inputs in this dom selection",t.array[0],r),e&&Object.keys(e).forEach((t=>{n.hasOwnProperty(t)&&(console.log("key found",t),n[t]=e[t])})),structuredClone(Object.assign(n))}at(e){return B(this.array.at(e))}concat(e){let t=this;return(e instanceof H?e.array:e).forEach((e=>{t.#i.add(e)})),t}entries(){return this.array.entries()}every(e,t){return this.array.every(e,t)}filter(e,t){return this.#i=new Set(this.array.filter(e,t)),this}forEach(e,t){return this.array.forEach(e,t),this}includes(e){return-1!==this.array.indexOf(e,0)}indexOf(e,t){return this.array.indexOf(e,t)}map(e,t){return this.array.map(e,t)}pop(){return this.array.pop()}push(...e){return e.forEach((e=>{this.#i.add(e)})),this}shift(){let e=this,t=e.#i.size?e.array[0]:void 0;return t&&e.#i.delete(t),t}slice(e,t){return B(this.array.slice(e,t))}some(e,t){return this.array.some(e,t)}splice(e,t,...r){let n=this.array;return n.splice(e,t,...r),B(n)}}class ${#i=new Set;get set(){return this.#i}get array(){return Array.from(this.#i)}set set(e){this.#i=e}get length(){return this.#i.size}set length(e){}constructor(e,t=document.body){if(!e)return this;B(e,t).forEach((e=>{q(e).forEach((e=>{this.#i.add(e)}))}))}$d(e,t=document.body){let r=new H,n=new Set,s=!!e||!1,a=new Set;return s&&(a=B(e,t).set),this.#i.forEach((e=>{s&&!a.has(e._tg)||n.add(e._tg)})),r.set=n,r}children(e){let t=this,r=new Set;return t.#i.forEach((t=>{t.children(e).forEach((e=>{r.add(e)}))})),t.#i=r,t}descendants(e){let t=this,r=new Set;return t.#i.forEach((t=>{t.descendants(e).forEach((e=>{r.add(e)}))})),t.#i=r,t}first(e){let t=this,r=new Set;return t.#i.forEach((e=>{e.parent().children().$d().first().$t().forEach((e=>{r.add(e)}))})),t.#i=r,e&&t.filter((t=>t.nameSpace=e)),t}has(e){return this.#i.has(e)}last(e){let t=this,r=new Set;return t.#i.forEach((e=>{e.parent().children().$d().last().$t().forEach((e=>{r.add(e)}))})),t.#i=r,e&&t.filter((t=>t.nameSpace=e)),t}next(e){let t=this,r=new Set;return t.#i.forEach((e=>{let t,n=new Set;for(t=e._tg;null!==t.nextElementSibling;)t=t.nextElementSibling,n.add(t);q([...n]).$d().first().$t().forEach((e=>{r.add(e)}))})),t.#i=r,e&&t.filter((t=>t.nameSpace=e)),t}ns(e){return this.filter((t=>t.nameSpace===e))}off(e,t){let r=e.indexOf(" ")>-1?e.split(" ").filter((e=>""!==e)):[e];return this.$d().array.forEach((e=>{r.forEach((function(r){g(e,`[TB]${r}`,t)}))})),this}on(e,t,r=!1){let n=this,s=e.indexOf(" ")>-1?e.split(" ").filter((e=>""!==e)):[e];function a(){a.cb.apply(n,Array.from(arguments))}return a.cb=t,n.forEach((e=>{s.forEach((function(t){b(e._tg,`[TB]${t}`,a,!1,r)}))})),a}one(e,t){let r=this,n=e.indexOf(" ")>-1?e.split(" ").filter((e=>""!==e)):[e];function s(){s.cb.apply(r,Array.from(arguments))}return s.cb=t,r.forEach((e=>{n.forEach((function(t){b(e._tg,`[TB]${t}`,s,!1,!0)}))})),s}parent(e){let t=this,r=new Set;return t.#i.forEach((t=>{t.parent(e).forEach((e=>{r.add(e)}))})),t.#i=r,t}parents(e){let t=this,r=new Set;return t.#i.forEach((t=>{t.parents(e).forEach((e=>{r.add(e)}))})),t.#i=r,t}prev(e){let t=this,r=new Set;return t.#i.forEach((e=>{let t,n=new Set;for(t=e._tg;null!==t.previousElementSibling;)t=t.previousElementSibling,n.add(t);q([...n]).$d().last().$t().forEach((e=>{r.add(e)}))})),t.#i=r,e&&t.filter((t=>t.nameSpace=e)),t}trigger(e,t={},r="l"){return this.forEach((n=>{n.trigger(e,t,r)})),this}at(e){return q(this.array.at(e))}concat(e){let t=this;return e.forEach((e=>{t.#i.add(e)})),t}entries(){return this.array.entries()}every(e,t){return this.array.every(e,t)}filter(e,t){return q(this.array.filter(e,t))}forEach(e,t){return this.array.forEach(e,t),this}includes(e){return-1!==this.array.indexOf(e)}indexOf(e,t){return this.array.indexOf(e,t)}map(e,t){return this.array.map(e,t)}pop(){let e=this.array,t=e.pop();return this.#i=new Set(e),t}push(e){return this.#i.add(e),this}shift(){let e=this.array.shift();return this.#i.delete(e),e}slice(e,t){return q(this.array.slice(e,t))}some(e,t){return this.array.some(e,t)}splice(e,t,...r){let n=this.array.splice(e,t,...r);return q(n)}}const B=(e,t=document)=>{let r=new Set;return e instanceof Array?(e.forEach((e=>{B(e,t).forEach((e=>{r.add(e)}))})),new H([...r])):new H(e,t)},q=(e,t=document)=>B(e,t).$t();class I{constructor(e){}}class V extends I{#a;#e;#o;constructor(e,t){super(e),this.#a=e,this.#e=e.type,this.#o=t}get val(){let e,t=this;switch(t.#e){case"radio":const r=[...(this.#o||document).querySelectorAll(`input[type="radio"][name="${this.#a.getAttribute("name")}"]`)].filter((e=>e.checked));return r.length?(e=r?.[0],e.value):"";case"checkbox":return t.#a.checked;default:return t.#a.value}return""}set val(e){let t=this;switch(t.#e){case"radio":const r=[...(this.#o||document).querySelectorAll(`input[type="radio"][name="${this.#a.getAttribute("name")}"]`)];if(!r.length)return;if(""===e)return void r.forEach((e=>{e.checked&&(e.checked=!1)}));const n=r.filter((t=>t.getAttribute("value")===e));if(!n.length)return;return void((n?.[0]).checked=!0);case"checkbox":t.#a.checked=e;break;default:t.#a.value=e}}}class z extends I{#a;#c=!1;constructor(e){super(e),this.#a=e,this.#c="select-multiple"===e.type}get val(){const e=[];return[...this.#a.querySelectorAll("option")].filter((e=>e.selected)).forEach((t=>{t.selected&&e.push(t.value)})),this.#c?e:e.length?e[0]:""}set val(e){e="string"==typeof e?[e]:e,[...this.#a.querySelectorAll("option")].forEach((t=>{e.indexOf(t.value)>-1?(t.setAttribute("selected","selected"),t.selected=!0):(t.removeAttribute("selected"),t.selected=!1)}))}}class D extends I{#a;constructor(e){super(e),this.#a=e}get val(){return this.#a.value}set val(e){this.#a.value=e}}const F=(e,t={},r,n)=>{let s=(e=>{let t=[...(e||document).querySelectorAll("input,select,textarea")],r={};return t.forEach((t=>{const n=t.getAttribute("name")||"undefined";if(n){let s;switch((e=>e instanceof HTMLInputElement?"input":e instanceof HTMLSelectElement?"select":e instanceof HTMLTextAreaElement?"textarea":"")(t)){case"input":s=new V(t,e),Object.defineProperty(r,n,{enumerable:!0,configurable:!0,get:()=>s.val,set:e=>{s.val=e}});break;case"select":s=new z(t),Object.defineProperty(r,n,{enumerable:!0,configurable:!0,get:()=>s.val,set:e=>{s.val=e}});break;case"textarea":s=new D(t),Object.defineProperty(r,n,{enumerable:!0,configurable:!0,get:()=>s.val,set:e=>{s.val=e}});break;default:console.warn("handler missing:",n,"for",t)}}})),r})(e);function a(e){Object.keys(e).forEach((t=>{s.hasOwnProperty(t)&&e.hasOwnProperty(t)&&(s[t]=e[t])}))}if(Object.keys(t).length>0&&a(t),void 0!==n){let t=r[n];t.constructor?.hasFormHandler||(t.constructor.hasFormHandler=!0,t.observe(a)),r[n].observe((()=>{})),[...e.querySelectorAll("input, textarea, select")].forEach((e=>{b(e,"keyup",(()=>{r[n]=structuredClone(Object.assign(s))})),b(e,"change",(()=>{r[n]=structuredClone(Object.assign(s))})),e instanceof HTMLSelectElement&&b(e,"select",(()=>{r[n]=structuredClone(Object.assign(s))}))}))}return n?r[n]:Object.assign({},s)};return t})()));
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.microcomponents=t():e.microcomponents=t()}(this,(()=>(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){return null!=e&&"object"==typeof e}function n(e){return e.split("-").map((e=>e.charAt(0).toUpperCase()+e.slice(1))).join("")}function s(e,t){let r;return()=>{clearTimeout(r),r=setTimeout((function(){e(...arguments)}),t)}}function a(e,t){const n=Object.keys(e),s=Object.keys(t);if(n.length!==s.length)return!1;for(const s of n){const n=e[s],o=t[s],i=r(n)&&r(o);if(i&&!a(n,o)||!i&&n!==o)return!1}return!0}function o(e,t,n=null,s){let a=e.split(".");s||(s=t);let i=a.shift(),c=a.join(".");null!==n&&i.length&&void 0===t[i]&&(t[i]={});let l=t[i];return 0===c.length?null!==n?(t[i]=n,s):t[i]:r(t[i])?o(c,t[i],n,s):n?s:l[i]}function i(e,t){var n=Array.from(arguments);if(n.length){if(1===n.length)return n[1];if(n.length>2){for(;n.length>1;)n[0]=i(n[0],n[1]),n.splice(1,1);return n[0]}if("string"==typeof e){var s=e.match(/\{[^\{\}]*\}/g);s&&s.forEach((function(r){var n=o(r.substr(1,r.length-2),t);void 0!==n&&(e=e.replace(r,n))}))}else if(r(e))switch(e.constructor){case Object:Object.keys(e).forEach((function(r){e.hasOwnProperty(r)&&(e[r]=i(e[r],t))}));break;case Array:e.forEach((function(r,n,s){s[n]=i(e[n],t)}))}return e}console.error("no arguments give to parse")}function c(e){let t=document.createElement("template");return e=e.replace(/<([A-Za-z0-9\-]*)([^>\/]*)(\/>)/gi,"<$1$2></$1>"),t.innerHTML=e,t.content.normalize(),Array.from(t.content.childNodes)}e.r(t),e.d(t,{$d:()=>I,$t:()=>B,DC:()=>S,MC:()=>A,McBase:()=>w,McEvent:()=>h,addListener:()=>b,debounce:()=>s,deepEqual:()=>a,defineCE:()=>k,formValues:()=>F,getCE:()=>x,htmlToElements:()=>c,isObject:()=>r,kebabToPascal:()=>n,makeCO:()=>T,nameSpace:()=>o,parse:()=>i,removeListener:()=>g});var l=new Function("try {return this===window;}catch(e){ return false;}");let u=new Set;l()&&Object.keys(HTMLElement.prototype).filter((e=>/^on/.test(e))).forEach((e=>u.add(e)));class h{#e;#t=!1;#r=!1;constructor(e,t={},r="l"){this.#e=e,this.data=t,this.bubble=r}get type(){return this.#e}get stopped(){return this.#t}get immediateStopped(){return this.#r}stopPropagation(){this.#t=!0}stopImmediatePropagation(){this.stopPropagation(),this.#r=!0}}var f=new Function("try {return this===window;}catch(e){ return false;}");let d=new Set;function p(e,t){let r=[];return e.forEach((e=>{if(e&&e instanceof HTMLElement){const n=e?._mc;!t&&n?r=r.concat(Object.values(e._mc)):t&&n&&n[t]&&r.push(n[t])}})),r}function m(e,t,r=!0){let n=[];for(;e;){if(e._mc&&(t?t&&e._mc[t]&&n.push(e._mc[t]):n=n.concat(Object.values(e._mc)),r))return n;e=e.parentNode}return n}function y(e){return e&&e instanceof HTMLElement}function b(e,t,r,n=!1,s=!1){let a={once:!1};n&&(a.capture=n),s&&(a.once=s),e.addEventListener(t,r,a)}function g(e,t,r){e.removeEventListener(t,r)}function E(e,t,r={}){let n=e;if(!n._mc){let t=S?.debug;S.debug=!1,n._mc=new S(e),S.debug=t}const s=n._mc;return t.length&&!s[t]&&(s[t]=r,e instanceof HTMLElement&&e.setAttribute("_mc","")),r}function v(e,t){if(!t)return;const r=e?._mc||{};r&&r[t]&&delete r[t],!Object.keys(r).length&&e instanceof HTMLElement&&e.hasAttribute("_mc")&&e.removeAttribute("_mc")}function O(e,t,r={}){let n=e?._mc;n&&[...Object.values(n)].forEach((e=>{e?.trigger&&"function"==typeof e?.trigger&&e?.trigger(t,r)}))}f()&&Object.keys(HTMLElement.prototype).filter((e=>/^on/.test(e))).forEach((e=>d.add(e)));class w{#n;#s={};constructor(e){this.#n=new WeakRef(e),this.constructor!==S&&Object.defineProperty(this,"_mc",{get(){return this.#s}})}get target(){return this.#n.deref()}}class A extends w{constructor(e){super(e);let t=this;setTimeout((()=>{t.trigger("Init"),setTimeout((()=>{let e=Object.keys(t?._mc);e.length&&e?.forEach((e=>{let r=t?._mc?.[e];r?.oneInit&&"function"==typeof r?.oneInit&&r.oneInit(new h("Init"))}))}),0)}),0),this.autoAttachListeners()}static trigger=O;trigger(e,t={},r){let n=this;if(r=r||"l",n.constructor!==A&&n.constructor!==S){if(n instanceof A||n instanceof S){const n=this,s="string"!=typeof e?e:new h(e,t,r),a="on"+s.type[0].toUpperCase()+s.type.slice(1);if(s.bubble.indexOf("l")>-1&&(s.immediateStopped||"function"!=typeof n[a]||(n[a](s),n.hasOwnProperty(a)&&delete n[a])),s.stopped||"l"===s.bubble)return n;f()&&/[ud]/.test(s.bubble)&&n instanceof A&&setTimeout((()=>{-1===s.bubble.indexOf("l")&&(s.bubble+="l"),s.bubble.indexOf("u")>-1&&n.parent().forEach((e=>{e instanceof A&&e.trigger(s)})),s.bubble.indexOf("d")>-1&&n.children().forEach((e=>{e instanceof A&&e.trigger(s)}))}),0)}}else[...Object.getOwnPropertyNames(n)].forEach((s=>{n[s]?.trigger&&"function"==typeof n[s]?.trigger&&n[s]?.trigger(e,t,r)}))}autoAttachListeners(){if(!f())return;const e=this.target;if(e instanceof HTMLElement){let t=this;Object.getOwnPropertyNames(t.constructor.prototype).filter((e=>/^on[A-Z]|one[A-Z]/.test(e)&&"function"==typeof t.constructor.prototype[e])).forEach((r=>{let n=/^one/.test(r),s=r.replace(/^on[e]{0,1}/,""),a=s.toLowerCase();n&&Object.defineProperty(this,"on"+s,{configurable:!0,enumerable:!1,writable:!0,value:e=>{t.constructor.prototype[r].bind(t)(e)}}),d.has("on"+a)&&b(e,a,(e=>{t.trigger(s,e)}),!1,n)}))}}}class S extends w{constructor(e){super(e);let t=this,r=t.constructor===S;setTimeout((()=>{t.trigger("Init"),r||setTimeout((()=>{let e=Object.keys(t?._mc);e.length&&e?.forEach((e=>{let r=t?._mc?.[e];r?.oneInit&&"function"==typeof r?.oneInit&&r.oneInit(new h("Init"))}))}),0)}),0),this.autoAttachListeners()}static debug=!1;static add=E;static remove=v;static trigger=O;get _mc(){return this._mc}trigger(e,t={},r){A.prototype.trigger.call(this,e,t,r)}autoAttachListeners(){A.prototype.autoAttachListeners.call(this)}parent(e=""){let t=this.target;return y(t)?m(t.parentNode,e,!0):[]}ancestors(e=""){let t=this?.target;return y(t)?m(this.target.parentNode,e,!1):[]}children(e=""){let t=this?.target;if(!y(t))return[];const r=Math.random().toString().replace(".",""),n='[_mc]:not([temp_id="'+r+'"] [_mc] [_mc])';t.setAttribute("temp_id",r);const s=p([...t.querySelectorAll(n)],e);return t.removeAttribute("temp_id"),s}descendants(e=""){let t=this?.target;return y(t)?p([...t.querySelectorAll("*[_mc]")],e):[]}}class j extends HTMLElement{constructor(){super()}connectedCallback(){S.trigger(this,"Connected")}disconnectedCallback(){S.trigger(this,"Disconnected")}adoptedCallback(){S.trigger(this,"Adopted")}attributeChangedCallback(e,t,r){S.trigger(this,"AttributeChanged",{name:e,oldValue:t,newValue:r})}}function k(e,t,r=[]){if(customElements.get(e))return void console.warn(`IGNORED: Custom element "${e}" is already defined!`);if(!e.includes("-"))throw new Error('createCustomElement: tagName must contain at least one hyphen ("-").');let s=n(e);customElements.define(e,function(e,t){return Object.defineProperty(t,"name",{value:e})}(s,class extends j{instance;constructor(e){super();let r=new t(this,e);S.add(this,s,r)}static get observedAttributes(){return r}}))}function x(e){return customElements.get(e)}const T=(e,t)=>{(t?[t]:[...Object.getOwnPropertyNames(e)]).forEach((t=>{if("_"===t[0]||void 0===e?.[t])return;let n,o=e[t];if(!o.prototype)switch(typeof o){case"string":n=String;break;case"number":n=Number;break;case"boolean":n=Boolean;break;case"object":n=o instanceof Array?Array:Object;break;default:return}let c=class extends n{constructor(e){super(e),this.constructor.callbacks=[],r(e)&&(this.constructor.bound=[],Object.getOwnPropertyNames(e).forEach((t=>{this[t]=e[t]})))}observe(e){return this.constructor.callbacks.push(e),this}bind(e){const t=this,n=r(t.valueOf()),s=t.constructor.bound;if(n){function a(e){if(e.nodeType&&3===e.nodeType){var r=Array.from(e.nodeValue&&e.nodeValue.match(/\{[^\{\}]*\}/g)||[]);if(r.length>0){var o=(c=e.nodeValue||"",function(t){var s,a=!1;return r&&(n?r.forEach((function(e){o.values[e]!==t[e]&&(o.values[e]=t[e],a=!0)})):(o.values=t,a=!0)),a&&(s=c,e.nodeValue=n?i(s,o.values):s.replace(/\{.*\}/g,o.values)),t});o.values=n?{}:void 0,r=Array.from(r).map((e=>e.replace(/[\{\}]/g,"").trim()));let t=n?{}:void 0;r.forEach((function(e){n&&(t[e]="")})),s.push(o)}Array.from(e.childNodes).forEach((function(e){a(e)})),t.notify()}var c;e.nodeType&&1===e.nodeType&&(Array.from(e.attributes).forEach((function(t){var r=Array.from(t.value&&t.value.match(/\{[^\{\}]*\}/g)||[]);if(r.length>0){var n=function(t){return function(s){var a,o=!1;return r&&r.forEach((function(e){n.values[e]!==s[e]&&(n.values[e]=s[e],o=!0)})),o&&(a=t,e.nodeValue=i(a,n.values)),s}}(t.value||"");n.values={},r=Array.from(r).map((e=>e.replace(/[\{\}]/g,"").trim()));let a={};r.forEach((function(e){a[e]=""})),s.push(n)}})),Array.from(e.childNodes).forEach((function(e){a(e)})),t.notify()),e.nodeType&&11===e.nodeType&&Array.from(e.childNodes).forEach((function(e){a(e)}))}a(e),s.length>0&&t.notify()}else console.warn("IGNORED - cannot bind a non-Object to the dom, IS:",typeof t.valueOf());return this}notify(){let e=this,t=r(e.valueOf())&&e.valueOf()instanceof Array==0?structuredClone(Object.assign({},e)):e.valueOf();return e.constructor.callbacks.forEach((e=>{e(t)})),r(e.valueOf())&&e.constructor.bound.forEach((e=>{e(t)})),this}},l=new c(o);Object.defineProperty(e,t,{enumerable:!0,get(){if(r(l.valueOf())){let e=structuredClone(Object.assign({},l));setTimeout(s((function(){a(structuredClone(Object.assign({},l)),e)||l.notify()}),0),0)}return l},set(e){if(typeof e==typeof l.valueOf())if(r(l.valueOf())&&l.valueOf()instanceof Array==0){let t=structuredClone(Object.assign({},l));e=structuredClone(Object.assign({},e));let r=l.constructor?.hasFormHandler??!1,n=l.constructor.callbacks,o=l.constructor.bound;l=new c(structuredClone(Object.assign({},e))),l.constructor.callbacks=r,l.constructor.callbacks=n,l.constructor.bound=o,setTimeout(s((function(){a(structuredClone(Object.assign({},l)),t)||l.notify()}),0),0)}else{let t=l.valueOf(),r=l.constructor.callbacks;l=new c(e),l.constructor.callbacks=r,e!==t&&l.notify()}else console.warn("IGNORED - cannot change observable types, IS:",typeof l.valueOf(),"- CANNOT BECOME:",typeof e)}}),e[t]=o}))},_=e=>{let t=new Set;return e.forEach((e=>{(e=e.trim()).split(" ").forEach((e=>{""!==e&&t.add(e)}))})),Array.from(t)},C=e=>{let t=I("input,select,textarea",e).array,r={};return t.forEach((t=>{const n=t.getAttribute("name")||"undefined";if(n){let s;switch((e=>e instanceof HTMLInputElement?"input":e instanceof HTMLSelectElement?"select":e instanceof HTMLTextAreaElement?"textarea":"")(t)){case"input":s=new N(t,e),Object.defineProperty(r,n,{enumerable:!0,configurable:!0,get:()=>s.val,set:e=>{s.val=e}});break;case"select":s=new M(t),Object.defineProperty(r,n,{enumerable:!0,configurable:!0,get:()=>s.val,set:e=>{s.val=e}});break;case"textarea":s=new P(t),Object.defineProperty(r,n,{enumerable:!0,configurable:!0,get:()=>s.val,set:e=>{s.val=e}});break;default:console.warn("handler missing:",n,"for",t)}}})),r};class L{constructor(e){}}class N extends L{#a;#e;#o;constructor(e,t){super(e),this.#a=e,this.#e=e.type,this.#o=t}get val(){let e,t=this;switch(t.#e){case"radio":const r=I(`input[type="radio"][name="${this.#a.getAttribute("name")}"]`,this.#o).filter((e=>e.checked));return r.length?(e=r.array[0],e.value):"";case"checkbox":return t.#a.checked;default:return t.#a.value}return""}set val(e){let t=this;switch(t.#e){case"radio":const r=`input[type="radio"][name="${this.#a.getAttribute("name")}"]`,n=I(r,this.#o);if(!n.length)return;if(""===e)return void n.forEach((e=>{e.checked&&(e.checked=!1)}));const s=n.filter((t=>t.getAttribute("value")===e));if(!s.length)return;return void(s.array[0].checked=!0);case"checkbox":t.#a.checked=e;break;default:t.#a.value=e}}}class M extends L{#a;#i=!1;constructor(e){super(e),this.#a=e,this.#i="select-multiple"===e.type}get val(){const e=[];return I(this.#a.querySelectorAll("option")).filter((e=>e.selected)).forEach((t=>{t.selected&&e.push(t.value)})),this.#i?e:e.length?e[0]:""}set val(e){e="string"==typeof e?[e]:e,I(this.#a.querySelectorAll("option")).forEach((t=>{e.indexOf(t.value)>-1?(t.setAttribute("selected",!0),t.selected=!0):(t.removeAttribute("selected"),t.selected=!1)}))}}class P extends L{#a;constructor(e){super(e),this.#a=e}get val(){return this.#a.value}set val(e){this.#a.value=e}}class H{#c=new Set;get set(){return this.#c}get array(){return Array.from(this.#c)}set set(e){this.#c=e}get length(){return this.#c.size}constructor(e,t=document.body){if(new Set,!e)return this}$t(e){let t=new $;return this.#c.forEach((e=>{e._mc&&Object.values(e._mc).forEach((e=>{t.set.add(e)}))})),e&&t.filter((t=>t.nameSpace===e)),t}add(e,t){let r=this;return I(e,t).forEach((e=>{r.#c.add(e)})),r}addClass(...e){return e=_(e),this.forEach((t=>{t.classList.add(...e)})),this}after(e,t){let r=this,n=I(e,t);return n.length?(n.first().forEach((e=>{r.array.reverse().forEach((t=>{t.after(e)}))})),r):r}append(e,t){let r=this.array[0],n=I(e,t);return r&&n.forEach((e=>{r.append(e)})),this}appendTo(e,t){let r=I(e,t).array[0];return r&&this.forEach((e=>{r.append(e)})),this}attr(e,t){let r=this,n={};return r.length?arguments.length?"string"==typeof e?void 0===t?[...r.set][0].getAttribute(e):null===t?([...r.set].forEach((t=>{t.removeAttribute(e)})),r):("object"==typeof t&&(t=JSON.stringify(t)),[...r.set].forEach((r=>{r.setAttribute(e,t)})),r):"object"==typeof e?([...r.set].forEach((t=>{Object.keys(e).forEach((r=>{I(t).attr(r,e.key)}))})),r):r:(Array.from([...r.set][0].attributes).forEach((e=>{n[e.name]=e.value})),n):r}before(e,t){let r=this,n=I(e,t);return n.length?(n.first().forEach((e=>{r.forEach((t=>{t.before(e)}))})),r):r}children(e,t){let r=this,n=new Set;if(r.#c.forEach((e=>{Array.from(e.children).forEach((e=>{n.add(e)}))})),r=I([...n]),e){let n=I(e,t);r.filter((e=>n.has(e)))}return r}descendants(e,t){let r=this,n=new Set;if(r.#c.forEach((e=>{e.querySelectorAll("*").forEach((e=>{n.add(e)}))})),r=I([...n]),e){let n=I(e,t);r.filter((e=>n.has(e)))}return r}empty(){return this.filter((e=>!1))}first(e,t){let r=this,n=new Set,s=!1;return e&&(s=I(e,t)),r.#c.forEach((e=>{e.parentNode&&n.add(e.parentNode.children[0])})),r=I([...n]),e&&r.filter((e=>s.has(e))),r}has(e){return this.#c.has(e)}hasClass(...e){return e=_(e),this.every((e=>Array.from(e.classList).every((t=>e.contains(t)))))}html(e){let t=this;return e?(t.forEach((t=>{t.parentNode?t.innerHTML=e:(()=>{console.warn("Cannot access the .innerHTML of a HTMLElement that hasnt been inserted yet",t),console.trace(t,this),console.info("If you called this from inside a Web Component constructor, consider using the %c[connected] event callback!","color: blue;")})()})),t):t.array[0].innerHTML}last(e,t){let r=this,n=new Set;if(r.#c.forEach((e=>{let t=e.parentNode?.children;t&&n.add(Array.from(t).at(-1))})),r=I([...n]),e){let n=I(e,t);r.filter((e=>n.has(e)))}return r}next(e,t){let r=this,n=new Set;if(r.#c.forEach((e=>{let t=e.parentNode?.children;if(t){let r=Array.from(t),s=r.indexOf(e)+1;s<r.length&&n.add(r.at(s))}})),r=I([...n]),e){let n=I(e,t);r.filter((e=>n.has(e)))}return r}normalize(){return this.#c.forEach((e=>{e.normalize()})),this}off(e,t){let r=e.indexOf(" ")>-1?e.split(" "):[e];return this.array.forEach((e=>{r.forEach((function(r){g(e,r,t)}))})),this}on(e,t,r=!1,n=!1){let s=this,a=e.indexOf(" ")>-1?e.split(" ").filter((e=>""!==e)):[e];function o(){o.cb.apply(s,Array.from(arguments))}return o.cb=t,s.forEach((e=>{a.forEach((function(t){b(e,t,o,r,n)}))})),o}one(e,t,r=!1){let n=this,s=e.indexOf(" ")>-1?e.split(" ").filter((e=>""!==e)):[e];function a(){a.cb.apply(n,Array.from(arguments))}return a.cb=t,n.forEach((e=>{s.forEach((function(t){b(e,t,a,r,!0)}))})),a}parent(e,t){let r=this,n=new Set;if(r.#c.forEach((e=>{e.parentNode&&"HTML"!==e.parentNode.tagName&&n.add(e.parentNode)})),r=I([...n]),e){let n=I(e,t);r.filter((e=>n.has(e)))}return r}parents(e,t){let r=this,n=new Set;if(r.#c.forEach((e=>{let t=e;for(;t.parentNode&&"HTML"!==t.parentNode.tagName;)t=t.parentNode,n.add(t)})),r=I([...n]),e){let n=I(e,t);r.filter((e=>n.has(e)))}return r}prepend(e,t){let r=this.array[0],n=I(e,t);return r&&n.forEach((e=>{r.prepend(e)})),this}prev(e,t){let r=this,n=new Set;if(r.#c.forEach((e=>{let t=e.parentNode?.children;if(t){let r=Array.from(t),s=r.indexOf(e)-1;s>-1&&n.add(r.at(s))}})),r=I([...n]),e){let n=I(e,t);r.filter((e=>n.has(e)))}return r}removeClass(...e){return e=_(e),this.forEach((t=>{t.classList.remove(...e)})),this}text(e){let t=this;return e?(t.forEach((t=>{t.parentNode?t.innerText=e:(()=>{console.warn("Cannot access the .textContent of a HTMLElement that hasnt been inserted yet",t),console.trace(t,this),console.info("If you called this from inside a Web Component constructor, consider using the %c[connected] event callback!","color: blue;")})()})),t):t.array[0].innerText??""}toggleClass(...e){return e=_(e),this.forEach((t=>{t.classList.toggle(...e)})),this}trigger(e,t={},r=!1,n=!1,s=!1){let a,o={bubbles:r,cancelable:n,composed:s},i=e.indexOf(" ")>-1?e.split(" "):[e];return this.#c.forEach((e=>{i.forEach((function(r){a=new Event(r,o),a.data=t,e.dispatchEvent(a)}))})),this}val(e,t){if(!this.length)return this;const r=this;let n,s=C(r.array[0]);var a;return e?null!=(a=e)&&"object"==typeof a?(Object.assign(s,e),n=r):"string"==typeof e&&(void 0===t?n=s[e]:(s[e]=t,n=r)):n=Object.assign({},s),n}values(e){const t=this;let r={};if(!t.length)return console.warn("no dom selection to search inputs in"),{};let n=C(t.array[0]);return Object.keys(n).forEach((e=>{r[e]=n[e]})),0===Object.keys(r).length&&console.warn("no inputs in this dom selection",t.array[0],r),e&&Object.keys(e).forEach((t=>{n.hasOwnProperty(t)&&(console.log("key found",t),n[t]=e[t])})),structuredClone(Object.assign(n))}at(e){return I(this.array.at(e))}concat(e){let t=this;return(e instanceof H?e.array:e).forEach((e=>{t.#c.add(e)})),t}entries(){return this.array.entries()}every(e,t){return this.array.every(e,t)}filter(e,t){return this.#c=new Set(this.array.filter(e,t)),this}forEach(e,t){return this.array.forEach(e,t),this}includes(e){return-1!==this.array.indexOf(e,0)}indexOf(e,t){return this.array.indexOf(e,t)}map(e,t){return this.array.map(e,t)}pop(){return this.array.pop()}push(...e){return e.forEach((e=>{this.#c.add(e)})),this}shift(){let e=this,t=e.#c.size?e.array[0]:void 0;return t&&e.#c.delete(t),t}slice(e,t){return I(this.array.slice(e,t))}some(e,t){return this.array.some(e,t)}splice(e,t,...r){let n=this.array;return n.splice(e,t,...r),I(n)}}class ${#c=new Set;get set(){return this.#c}get array(){return Array.from(this.#c)}set set(e){this.#c=e}get length(){return this.#c.size}set length(e){}constructor(e,t=document.body){if(!e)return this;I(e,t).forEach((e=>{B(e).forEach((e=>{this.#c.add(e)}))}))}$d(e,t=document.body){let r=new H,n=new Set,s=!!e||!1,a=new Set;return s&&(a=I(e,t).set),this.#c.forEach((e=>{s&&!a.has(e._tg)||n.add(e._tg)})),r.set=n,r}children(e){let t=this,r=new Set;return t.#c.forEach((t=>{t.children(e).forEach((e=>{r.add(e)}))})),t.#c=r,t}descendants(e){let t=this,r=new Set;return t.#c.forEach((t=>{t.descendants(e).forEach((e=>{r.add(e)}))})),t.#c=r,t}first(e){let t=this,r=new Set;return t.#c.forEach((e=>{e.parent().children().$d().first().$t().forEach((e=>{r.add(e)}))})),t.#c=r,e&&t.filter((t=>t.nameSpace=e)),t}has(e){return this.#c.has(e)}last(e){let t=this,r=new Set;return t.#c.forEach((e=>{e.parent().children().$d().last().$t().forEach((e=>{r.add(e)}))})),t.#c=r,e&&t.filter((t=>t.nameSpace=e)),t}next(e){let t=this,r=new Set;return t.#c.forEach((e=>{let t,n=new Set;for(t=e._tg;null!==t.nextElementSibling;)t=t.nextElementSibling,n.add(t);B([...n]).$d().first().$t().forEach((e=>{r.add(e)}))})),t.#c=r,e&&t.filter((t=>t.nameSpace=e)),t}ns(e){return this.filter((t=>t.nameSpace===e))}off(e,t){let r=e.indexOf(" ")>-1?e.split(" ").filter((e=>""!==e)):[e];return this.$d().array.forEach((e=>{r.forEach((function(r){g(e,`[TB]${r}`,t)}))})),this}on(e,t,r=!1){let n=this,s=e.indexOf(" ")>-1?e.split(" ").filter((e=>""!==e)):[e];function a(){a.cb.apply(n,Array.from(arguments))}return a.cb=t,n.forEach((e=>{s.forEach((function(t){b(e._tg,`[TB]${t}`,a,!1,r)}))})),a}one(e,t){let r=this,n=e.indexOf(" ")>-1?e.split(" ").filter((e=>""!==e)):[e];function s(){s.cb.apply(r,Array.from(arguments))}return s.cb=t,r.forEach((e=>{n.forEach((function(t){b(e._tg,`[TB]${t}`,s,!1,!0)}))})),s}parent(e){let t=this,r=new Set;return t.#c.forEach((t=>{t.parent(e).forEach((e=>{r.add(e)}))})),t.#c=r,t}parents(e){let t=this,r=new Set;return t.#c.forEach((t=>{t.parents(e).forEach((e=>{r.add(e)}))})),t.#c=r,t}prev(e){let t=this,r=new Set;return t.#c.forEach((e=>{let t,n=new Set;for(t=e._tg;null!==t.previousElementSibling;)t=t.previousElementSibling,n.add(t);B([...n]).$d().last().$t().forEach((e=>{r.add(e)}))})),t.#c=r,e&&t.filter((t=>t.nameSpace=e)),t}trigger(e,t={},r="l"){return this.forEach((n=>{n.trigger(e,t,r)})),this}at(e){return B(this.array.at(e))}concat(e){let t=this;return e.forEach((e=>{t.#c.add(e)})),t}entries(){return this.array.entries()}every(e,t){return this.array.every(e,t)}filter(e,t){return B(this.array.filter(e,t))}forEach(e,t){return this.array.forEach(e,t),this}includes(e){return-1!==this.array.indexOf(e)}indexOf(e,t){return this.array.indexOf(e,t)}map(e,t){return this.array.map(e,t)}pop(){let e=this.array,t=e.pop();return this.#c=new Set(e),t}push(e){return this.#c.add(e),this}shift(){let e=this.array.shift();return this.#c.delete(e),e}slice(e,t){return B(this.array.slice(e,t))}some(e,t){return this.array.some(e,t)}splice(e,t,...r){let n=this.array.splice(e,t,...r);return B(n)}}const I=(e,t=document)=>{let r=new Set;return e instanceof Array?(e.forEach((e=>{I(e,t).forEach((e=>{r.add(e)}))})),new H([...r])):new H(e,t)},B=(e,t=document)=>I(e,t).$t();class q{constructor(e){}}class V extends q{#a;#e;#o;constructor(e,t){super(e),this.#a=e,this.#e=e.type,this.#o=t}get val(){let e,t=this;switch(t.#e){case"radio":const r=[...(this.#o||document).querySelectorAll(`input[type="radio"][name="${this.#a.getAttribute("name")}"]`)].filter((e=>e.checked));return r.length?(e=r?.[0],e.value):"";case"checkbox":return t.#a.checked;default:return t.#a.value}return""}set val(e){let t=this;switch(t.#e){case"radio":const r=[...(this.#o||document).querySelectorAll(`input[type="radio"][name="${this.#a.getAttribute("name")}"]`)];if(!r.length)return;if(""===e)return void r.forEach((e=>{e.checked&&(e.checked=!1)}));const n=r.filter((t=>t.getAttribute("value")===e));if(!n.length)return;return void((n?.[0]).checked=!0);case"checkbox":t.#a.checked=e;break;default:t.#a.value=e}}}class z extends q{#a;#i=!1;constructor(e){super(e),this.#a=e,this.#i="select-multiple"===e.type}get val(){const e=[];return[...this.#a.querySelectorAll("option")].filter((e=>e.selected)).forEach((t=>{t.selected&&e.push(t.value)})),this.#i?e:e.length?e[0]:""}set val(e){e="string"==typeof e?[e]:e,[...this.#a.querySelectorAll("option")].forEach((t=>{e.indexOf(t.value)>-1?(t.setAttribute("selected","selected"),t.selected=!0):(t.removeAttribute("selected"),t.selected=!1)}))}}class D extends q{#a;constructor(e){super(e),this.#a=e}get val(){return this.#a.value}set val(e){this.#a.value=e}}const F=(e,t={},r,n)=>{let s=(e=>{let t=[...(e||document).querySelectorAll("input,select,textarea")],r={};return t.forEach((t=>{const n=t.getAttribute("name")||"undefined";if(n){let s;switch((e=>e instanceof HTMLInputElement?"input":e instanceof HTMLSelectElement?"select":e instanceof HTMLTextAreaElement?"textarea":"")(t)){case"input":s=new V(t,e),Object.defineProperty(r,n,{enumerable:!0,configurable:!0,get:()=>s.val,set:e=>{s.val=e}});break;case"select":s=new z(t),Object.defineProperty(r,n,{enumerable:!0,configurable:!0,get:()=>s.val,set:e=>{s.val=e}});break;case"textarea":s=new D(t),Object.defineProperty(r,n,{enumerable:!0,configurable:!0,get:()=>s.val,set:e=>{s.val=e}});break;default:console.warn("handler missing:",n,"for",t)}}})),r})(e);function a(e){Object.keys(e).forEach((t=>{s.hasOwnProperty(t)&&e.hasOwnProperty(t)&&(s[t]=e[t])}))}if(Object.keys(t).length>0&&a(t),void 0!==n){let t=r[n];t.constructor?.hasFormHandler||(t.constructor.hasFormHandler=!0,t.observe(a)),r[n].observe((()=>{})),[...e.querySelectorAll("input, textarea, select")].forEach((e=>{b(e,"keyup",(()=>{r[n]=structuredClone(Object.assign(s))})),b(e,"change",(()=>{r[n]=structuredClone(Object.assign(s))})),e instanceof HTMLSelectElement&&b(e,"select",(()=>{r[n]=structuredClone(Object.assign(s))}))}))}return n?r[n]:Object.assign({},s)};return t})()));
package/dist/test.ts CHANGED
@@ -85,9 +85,6 @@ defineCE(
85
85
 
86
86
  // render
87
87
  target.innerHTML = "Click Me";
88
-
89
- // automatically attach native DOM event handlers
90
- that.autoAttachListeners();
91
88
  }
92
89
 
93
90
  /*
@@ -111,7 +108,7 @@ defineCE(
111
108
 
112
109
  logger.info("oneClick handler", ev);
113
110
 
114
- this?._mc?.customEventTarget.trigger("customEvent");
111
+ this._mc.customEventTarget.trigger("customEvent");
115
112
 
116
113
  this.target.setAttribute("my-attribute", "testValue");
117
114
  }
@@ -128,27 +125,25 @@ defineCE(
128
125
  DC custom event handlers
129
126
  */
130
127
  oneInit(ev: McEvent) {
131
- let that = this;
132
-
133
- // add a public logger
134
- //that.target._mc.logger = new Logger(that.target, console, "[Logger]");
128
+ let that = this,
129
+ _mc = that._mc;
135
130
 
136
131
  let logger = that.target._mc.logger;
137
132
 
138
133
  logger.warn("oneInit handler", ev);
139
134
 
140
135
  // add a private event target
141
- that._mc.customEventTarget = new EvTarget(that);
136
+ _mc.customEventTarget = new EvTarget(that);
142
137
 
143
138
  // add a private adder
144
- that._mc.Adder = new Adder();
139
+ _mc.Adder = new Adder();
145
140
 
146
141
  // add callback for this.Counter changes
147
142
  ( that.Counter as any).observe((value: number) => {
148
143
  logger.log("Counter has changed to: " + value);
149
144
  });
150
145
 
151
- logger.log("add 1,2,3 =", that._mc.Adder.sum(1, 2, 3));
146
+ logger.log("add 1,2,3 =", _mc.Adder.sum(1, 2, 3));
152
147
  }
153
148
 
154
149
  onDoSomething(ev: McEvent) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@twobirds/microcomponents",
3
- "version": "0.0.25",
3
+ "version": "0.0.27",
4
4
  "description": "Micro Components Organization Class",
5
5
  "main": "./dist/microcomponents.ts",
6
6
  "types": "./dist/microcomponents.d.ts",
package/public/MC.js CHANGED
@@ -64,10 +64,10 @@ function add(target, key, element = {}) {
64
64
  let node = target;
65
65
  // create the _mc property if necessary
66
66
  if (!node._mc) {
67
- let _MC = MC, debug = MC?.debug;
68
- MC.debug = false;
69
- node._mc = new MC(target);
70
- MC.debug = debug;
67
+ let debug = DC?.debug;
68
+ DC.debug = false;
69
+ node._mc = new DC(target);
70
+ DC.debug = debug;
71
71
  }
72
72
  const _mc = node._mc;
73
73
  // add the element with the given property key to the _mc property
@@ -101,6 +101,7 @@ function trigger(target, ev, data = {}) {
101
101
  if (!_mc)
102
102
  return;
103
103
  [...Object.values(_mc)].forEach((mc) => {
104
+ //console.log( 'mc [', mc.constructor.name, ']', mc.constructor.prototype?.oneInit );
104
105
  if (mc?.trigger && typeof mc?.trigger === 'function') {
105
106
  mc?.trigger(ev, data);
106
107
  }
@@ -110,17 +111,15 @@ function trigger(target, ev, data = {}) {
110
111
  class McBase {
111
112
  #target; // avoid circular reference
112
113
  #_mc = {};
113
- _mc = {};
114
114
  constructor(target) {
115
115
  let that = this;
116
116
  this.#target = new WeakRef(target);
117
- if (this.constructor !== MC && this.constructor !== DC) {
117
+ if (this.constructor !== DC) {
118
118
  Object.defineProperty(this, "_mc", {
119
- get() {
120
- return this.#_mc;
121
- }
119
+ get() { return this.#_mc; }
122
120
  });
123
121
  }
122
+ ;
124
123
  }
125
124
  get target() {
126
125
  return this.#target.deref();
@@ -130,14 +129,29 @@ class MC extends McBase {
130
129
  constructor(target) {
131
130
  super(target);
132
131
  let that = this;
133
- if (that.constructor === MC || that.constructor === DC)
134
- return;
135
132
  setTimeout(() => {
136
- that.trigger('init');
133
+ that.trigger('Init');
134
+ setTimeout(() => {
135
+ let keys = Object.keys(that?._mc);
136
+ if (keys.length) {
137
+ //console.log( 'inner Inits on [', that.constructor.name, ']', keys );
138
+ keys?.forEach((key) => {
139
+ let mc = that?._mc?.[key];
140
+ //console.log( key, typeof mc?.oneInit, mc );
141
+ if (mc?.oneInit && typeof mc?.oneInit == 'function') {
142
+ mc.oneInit(new McEvent('Init'));
143
+ }
144
+ });
145
+ }
146
+ ;
147
+ }, 0);
137
148
  }, 0);
149
+ this.autoAttachListeners();
138
150
  }
151
+ static trigger = trigger;
139
152
  trigger(ev, data = {}, bubble) {
140
153
  let that = this;
154
+ //console.log( that, '.trigger(', ev, data, bubble, ')' );
141
155
  bubble = bubble || 'l';
142
156
  // run all triggers
143
157
  if (that.constructor === MC || that.constructor === DC) {
@@ -195,25 +209,80 @@ class MC extends McBase {
195
209
  }
196
210
  }
197
211
  }
212
+ autoAttachListeners() {
213
+ if (!isBrowser())
214
+ return;
215
+ const target = this.target;
216
+ if (target instanceof HTMLElement) {
217
+ let that = this;
218
+ Object
219
+ .getOwnPropertyNames(that.constructor.prototype)
220
+ .filter(key => /^on[A-Z]|one[A-Z]/.test(key) && typeof that.constructor.prototype[key] === 'function')
221
+ .forEach(key => {
222
+ let once = /^one/.test(key), withoutOnOne = key.replace(/^on[e]{0,1}/, ''), // preserves upper/lowercase for non-native events
223
+ nativeEventName = withoutOnOne.toLowerCase(), listener = (ev) => { that.trigger(withoutOnOne, ev); };
224
+ ;
225
+ if (once) {
226
+ // console.log( '...is only called once', that.constructor.prototype[key] );
227
+ Object.defineProperty(this, 'on' + withoutOnOne, {
228
+ configurable: true,
229
+ enumerable: false,
230
+ writable: true,
231
+ value: (ev) => {
232
+ // console.log( 'onceHandler execute:', that.constructor.prototype[key] );
233
+ (that.constructor.prototype[key]).bind(that)(ev);
234
+ }
235
+ });
236
+ }
237
+ if (nativeEventNames.has('on' + nativeEventName)) { // native event defined in HTMLElement
238
+ // console.log('added as native listener', target, nativeEventName );
239
+ addListener(target, nativeEventName, listener, false, once);
240
+ }
241
+ });
242
+ }
243
+ }
198
244
  }
199
245
  ;
200
- class DC extends MC {
201
- #_mc = {};
202
- _mc = {};
246
+ class DC extends McBase {
203
247
  constructor(target) {
204
248
  super(target);
205
- if (this.constructor !== MC && this.constructor !== DC) {
206
- Object.defineProperty(this, "_mc", {
207
- get() {
208
- return this.#_mc;
209
- }
210
- });
211
- }
249
+ let that = this, isDomMcInstance = that.constructor === DC;
250
+ setTimeout(() => {
251
+ that.trigger('Init');
252
+ if (!isDomMcInstance) {
253
+ setTimeout(() => {
254
+ let keys = Object.keys(that?._mc);
255
+ if (keys.length) {
256
+ //console.log( 'inner Inits on [', that.constructor.name, ']', keys );
257
+ keys?.forEach((key) => {
258
+ let mc = that?._mc?.[key];
259
+ //console.log( key, typeof mc?.oneInit, mc );
260
+ if (mc?.oneInit && typeof mc?.oneInit == 'function') {
261
+ mc.oneInit(new McEvent('Init'));
262
+ }
263
+ });
264
+ }
265
+ ;
266
+ }, 0);
267
+ }
268
+ }, 0);
269
+ this.autoAttachListeners();
212
270
  }
213
271
  static debug = false;
214
272
  static add = add;
215
273
  static remove = remove;
216
274
  static trigger = trigger;
275
+ get _mc() {
276
+ return this._mc;
277
+ }
278
+ trigger(ev, data = {}, bubble) {
279
+ MC.prototype.trigger.call(this, ev, data, bubble);
280
+ }
281
+ ;
282
+ autoAttachListeners() {
283
+ MC.prototype.autoAttachListeners.call(this);
284
+ }
285
+ ;
217
286
  parent(search = '') {
218
287
  let target = this.target;
219
288
  if (!isDOM(target))
@@ -245,39 +314,6 @@ class DC extends MC {
245
314
  const myDomElements = target.querySelectorAll('*[_mc]');
246
315
  return getMicroComponents([...myDomElements], search);
247
316
  }
248
- autoAttachListeners() {
249
- if (!isBrowser())
250
- return;
251
- const target = this.target;
252
- if (target instanceof HTMLElement) {
253
- let that = this;
254
- Object
255
- .getOwnPropertyNames(that.constructor.prototype)
256
- .filter(key => /^on[A-Z]|one[A-Z]/.test(key) && typeof that.constructor.prototype[key] === 'function')
257
- .forEach(key => {
258
- let once = /^one/.test(key), withoutOnOne = key.replace(/^on[e]{0,1}/, ''), // preserves upper/lowercase for non-native events
259
- nativeEventName = withoutOnOne.toLowerCase(), listener = (ev) => { that.trigger(withoutOnOne, ev); };
260
- ;
261
- // console.log('autoAttach', nativeEventName, withoutOnOne, once, listener);
262
- if (once) {
263
- // console.log( '...is only called once', that.constructor.prototype[key] );
264
- Object.defineProperty(this, 'on' + withoutOnOne, {
265
- configurable: true,
266
- enumerable: false,
267
- writable: true,
268
- value: (ev) => {
269
- // console.log( 'onceHandler execute:', that.constructor.prototype[key] );
270
- (that.constructor.prototype[key]).bind(that)(ev);
271
- }
272
- });
273
- }
274
- if (nativeEventNames.has('on' + nativeEventName)) { // native event defined in HTMLElement
275
- // console.log('added as native listener', target, nativeEventName );
276
- addListener(target, nativeEventName, listener, false, once);
277
- }
278
- });
279
- }
280
- }
281
317
  }
282
318
  ;
283
319
  export { addListener, removeListener, McBase, MC, DC, McEvent };
package/public/MC.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"MC.js","sourceRoot":"","sources":["../src/MC.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MC.js","sourceRoot":"","sources":["../src/MC.ts"],"names":[],"mappings":"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"}
package/public/MC.min.js CHANGED
@@ -200,10 +200,10 @@ function add(target, key, element = {}) {
200
200
  let node = target;
201
201
  // create the _mc property if necessary
202
202
  if (!node._mc) {
203
- let _MC = MC, debug = MC?.debug;
204
- MC.debug = false;
205
- node._mc = new MC(target);
206
- MC.debug = debug;
203
+ let debug = DC?.debug;
204
+ DC.debug = false;
205
+ node._mc = new DC(target);
206
+ DC.debug = debug;
207
207
  }
208
208
  const _mc = node._mc;
209
209
  // add the element with the given property key to the _mc property
@@ -237,6 +237,7 @@ function trigger(target, ev, data = {}) {
237
237
  if (!_mc)
238
238
  return;
239
239
  [...Object.values(_mc)].forEach((mc) => {
240
+ //console.log( 'mc [', mc.constructor.name, ']', mc.constructor.prototype?.oneInit );
240
241
  if (mc?.trigger && typeof mc?.trigger === 'function') {
241
242
  mc?.trigger(ev, data);
242
243
  }
@@ -246,17 +247,15 @@ function trigger(target, ev, data = {}) {
246
247
  class McBase {
247
248
  #target; // avoid circular reference
248
249
  #_mc = {};
249
- _mc = {};
250
250
  constructor(target) {
251
251
  let that = this;
252
252
  this.#target = new WeakRef(target);
253
- if (this.constructor !== MC && this.constructor !== DC) {
253
+ if (this.constructor !== DC) {
254
254
  Object.defineProperty(this, "_mc", {
255
- get() {
256
- return this.#_mc;
257
- }
255
+ get() { return this.#_mc; }
258
256
  });
259
257
  }
258
+ ;
260
259
  }
261
260
  get target() {
262
261
  return this.#target.deref();
@@ -266,14 +265,29 @@ class MC extends McBase {
266
265
  constructor(target) {
267
266
  super(target);
268
267
  let that = this;
269
- if (that.constructor === MC || that.constructor === DC)
270
- return;
271
268
  setTimeout(() => {
272
- that.trigger('init');
269
+ that.trigger('Init');
270
+ setTimeout(() => {
271
+ let keys = Object.keys(that?._mc);
272
+ if (keys.length) {
273
+ //console.log( 'inner Inits on [', that.constructor.name, ']', keys );
274
+ keys?.forEach((key) => {
275
+ let mc = that?._mc?.[key];
276
+ //console.log( key, typeof mc?.oneInit, mc );
277
+ if (mc?.oneInit && typeof mc?.oneInit == 'function') {
278
+ mc.oneInit(new McEvent('Init'));
279
+ }
280
+ });
281
+ }
282
+ ;
283
+ }, 0);
273
284
  }, 0);
285
+ this.autoAttachListeners();
274
286
  }
287
+ static trigger = trigger;
275
288
  trigger(ev, data = {}, bubble) {
276
289
  let that = this;
290
+ //console.log( that, '.trigger(', ev, data, bubble, ')' );
277
291
  bubble = bubble || 'l';
278
292
  // run all triggers
279
293
  if (that.constructor === MC || that.constructor === DC) {
@@ -331,25 +345,80 @@ class MC extends McBase {
331
345
  }
332
346
  }
333
347
  }
348
+ autoAttachListeners() {
349
+ if (!MC_isBrowser())
350
+ return;
351
+ const target = this.target;
352
+ if (target instanceof HTMLElement) {
353
+ let that = this;
354
+ Object
355
+ .getOwnPropertyNames(that.constructor.prototype)
356
+ .filter(key => /^on[A-Z]|one[A-Z]/.test(key) && typeof that.constructor.prototype[key] === 'function')
357
+ .forEach(key => {
358
+ let once = /^one/.test(key), withoutOnOne = key.replace(/^on[e]{0,1}/, ''), // preserves upper/lowercase for non-native events
359
+ nativeEventName = withoutOnOne.toLowerCase(), listener = (ev) => { that.trigger(withoutOnOne, ev); };
360
+ ;
361
+ if (once) {
362
+ // console.log( '...is only called once', that.constructor.prototype[key] );
363
+ Object.defineProperty(this, 'on' + withoutOnOne, {
364
+ configurable: true,
365
+ enumerable: false,
366
+ writable: true,
367
+ value: (ev) => {
368
+ // console.log( 'onceHandler execute:', that.constructor.prototype[key] );
369
+ (that.constructor.prototype[key]).bind(that)(ev);
370
+ }
371
+ });
372
+ }
373
+ if (MC_nativeEventNames.has('on' + nativeEventName)) { // native event defined in HTMLElement
374
+ // console.log('added as native listener', target, nativeEventName );
375
+ addListener(target, nativeEventName, listener, false, once);
376
+ }
377
+ });
378
+ }
379
+ }
334
380
  }
335
381
  ;
336
- class DC extends MC {
337
- #_mc = {};
338
- _mc = {};
382
+ class DC extends McBase {
339
383
  constructor(target) {
340
384
  super(target);
341
- if (this.constructor !== MC && this.constructor !== DC) {
342
- Object.defineProperty(this, "_mc", {
343
- get() {
344
- return this.#_mc;
345
- }
346
- });
347
- }
385
+ let that = this, isDomMcInstance = that.constructor === DC;
386
+ setTimeout(() => {
387
+ that.trigger('Init');
388
+ if (!isDomMcInstance) {
389
+ setTimeout(() => {
390
+ let keys = Object.keys(that?._mc);
391
+ if (keys.length) {
392
+ //console.log( 'inner Inits on [', that.constructor.name, ']', keys );
393
+ keys?.forEach((key) => {
394
+ let mc = that?._mc?.[key];
395
+ //console.log( key, typeof mc?.oneInit, mc );
396
+ if (mc?.oneInit && typeof mc?.oneInit == 'function') {
397
+ mc.oneInit(new McEvent('Init'));
398
+ }
399
+ });
400
+ }
401
+ ;
402
+ }, 0);
403
+ }
404
+ }, 0);
405
+ this.autoAttachListeners();
348
406
  }
349
407
  static debug = false;
350
408
  static add = add;
351
409
  static remove = remove;
352
410
  static trigger = trigger;
411
+ get _mc() {
412
+ return this._mc;
413
+ }
414
+ trigger(ev, data = {}, bubble) {
415
+ MC.prototype.trigger.call(this, ev, data, bubble);
416
+ }
417
+ ;
418
+ autoAttachListeners() {
419
+ MC.prototype.autoAttachListeners.call(this);
420
+ }
421
+ ;
353
422
  parent(search = '') {
354
423
  let target = this.target;
355
424
  if (!MC_isDOM(target))
@@ -381,39 +450,6 @@ class DC extends MC {
381
450
  const myDomElements = target.querySelectorAll('*[_mc]');
382
451
  return MC_getMicroComponents([...myDomElements], search);
383
452
  }
384
- autoAttachListeners() {
385
- if (!MC_isBrowser())
386
- return;
387
- const target = this.target;
388
- if (target instanceof HTMLElement) {
389
- let that = this;
390
- Object
391
- .getOwnPropertyNames(that.constructor.prototype)
392
- .filter(key => /^on[A-Z]|one[A-Z]/.test(key) && typeof that.constructor.prototype[key] === 'function')
393
- .forEach(key => {
394
- let once = /^one/.test(key), withoutOnOne = key.replace(/^on[e]{0,1}/, ''), // preserves upper/lowercase for non-native events
395
- nativeEventName = withoutOnOne.toLowerCase(), listener = (ev) => { that.trigger(withoutOnOne, ev); };
396
- ;
397
- // console.log('autoAttach', nativeEventName, withoutOnOne, once, listener);
398
- if (once) {
399
- // console.log( '...is only called once', that.constructor.prototype[key] );
400
- Object.defineProperty(this, 'on' + withoutOnOne, {
401
- configurable: true,
402
- enumerable: false,
403
- writable: true,
404
- value: (ev) => {
405
- // console.log( 'onceHandler execute:', that.constructor.prototype[key] );
406
- (that.constructor.prototype[key]).bind(that)(ev);
407
- }
408
- });
409
- }
410
- if (MC_nativeEventNames.has('on' + nativeEventName)) { // native event defined in HTMLElement
411
- // console.log('added as native listener', target, nativeEventName );
412
- addListener(target, nativeEventName, listener, false, once);
413
- }
414
- });
415
- }
416
- }
417
453
  }
418
454
  ;
419
455