@twobirds/microcomponents 0.0.39 → 0.0.42

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.
Files changed (44) hide show
  1. package/assets/my-tag.css +5 -0
  2. package/assets/test.html +21 -12
  3. package/dist/microcomponents.min.js +1 -1
  4. package/dist/observables.d.ts.map +1 -1
  5. package/dist/observables.min.js +1 -1
  6. package/dist/observables.ts +33 -2
  7. package/dist/test.ts +11 -7
  8. package/package.json +1 -1
  9. package/public/assets/search.js +1 -1
  10. package/public/classes/MC.DC.html +13 -13
  11. package/public/classes/MC.MC.html +14 -12
  12. package/public/classes/MC.McBase.html +4 -4
  13. package/public/classes/MC.McEvent.html +13 -13
  14. package/public/functions/MC.addListener.html +1 -1
  15. package/public/functions/MC.removeListener.html +1 -1
  16. package/public/functions/elements.defineCE.html +1 -1
  17. package/public/functions/elements.getCE.html +1 -1
  18. package/public/functions/formValues.formValues.html +1 -1
  19. package/public/functions/observables.observe.html +1 -1
  20. package/public/functions/selectors._d.html +1 -1
  21. package/public/functions/selectors._t.html +1 -1
  22. package/public/interfaces/MC.HTMLMcElement.html +2 -2
  23. package/public/interfaces/selectors.DSelector.html +55 -55
  24. package/public/interfaces/selectors.TSelector.html +37 -37
  25. package/public/microcomponents.min.js +1 -1
  26. package/public/modules/MC.html +1 -1
  27. package/public/modules/elements.html +1 -1
  28. package/public/modules/formValues.html +1 -1
  29. package/public/modules/observables.html +1 -1
  30. package/public/modules/selectors.html +1 -1
  31. package/public/my-tag.css +5 -0
  32. package/public/observables.js +29 -2
  33. package/public/observables.js.map +1 -1
  34. package/public/observables.min.js +1 -1
  35. package/public/src/observables.ts +33 -2
  36. package/public/src/test.ts +11 -7
  37. package/public/test.html +21 -12
  38. package/public/test.js +8 -7
  39. package/public/test.js.map +1 -1
  40. package/public/types/observables.Observable.html +5 -5
  41. package/public/types/selectors.selection.html +1 -1
  42. package/public/types/selectors.singleSelector.html +1 -1
  43. package/src/observables.ts +33 -2
  44. package/src/test.ts +11 -7
package/public/my-tag.css CHANGED
@@ -3,12 +3,17 @@ my-tag > button {
3
3
  margin: 3px;
4
4
  padding: 2px 5px;
5
5
  display: inline-block;
6
+ width: 8em;
6
7
  }
7
8
 
8
9
  my-tag.clicked > button {
9
10
  border-color: blue;
10
11
  }
11
12
 
13
+ my-tag.overClicked > button {
14
+ border-color: orange;
15
+ }
16
+
12
17
  my-tag > button:hover {
13
18
  border-color: red;
14
19
  }
@@ -34,14 +34,20 @@ function getPlaceholders(target) {
34
34
  //console.log('getPlaceholders()', target, result);
35
35
  return [...placeholders];
36
36
  }
37
+ const inputs = [HTMLInputElement, HTMLSelectElement, HTMLTextAreaElement];
37
38
  class Placeholders extends DC {
38
39
  data = {};
39
40
  placeholders = [];
41
+ #oldDisplay = '';
40
42
  constructor(target) {
41
43
  super(target);
42
44
  let that = this;
43
45
  getPlaceholders(target).forEach((property) => (that.data[property] = ''));
44
46
  observe(that);
47
+ that.#oldDisplay = target.style.display;
48
+ if (!inputs.includes(target.constructor)) {
49
+ target.style.display = 'none';
50
+ }
45
51
  that.#attachCallbacks();
46
52
  }
47
53
  #attachCallbacks() {
@@ -79,6 +85,20 @@ class Placeholders extends DC {
79
85
  phs.forEach((placeholder) => {
80
86
  result = result.replace(placeholder, data[placeholder.replace(/[\{\}]/g, '')]);
81
87
  });
88
+ // if (!inputs.includes((target as any).constructor)) return;
89
+ // console.log(
90
+ // target,
91
+ // data,
92
+ // that.#oldDisplay,
93
+ // Object.keys(data).some((key) => {
94
+ // return !!data[key];
95
+ // })
96
+ // );
97
+ if (Object.keys(data).some((key) => {
98
+ return !!data[key];
99
+ })) {
100
+ target.style.display = that.#oldDisplay;
101
+ }
82
102
  //console.log('cb nodeValue', phs, data, template, childNode, result);
83
103
  childNode.nodeValue = result;
84
104
  })(childNode.nodeValue));
@@ -96,7 +116,7 @@ class Placeholders extends DC {
96
116
  }
97
117
  }
98
118
  function getPlaceholderElements(target) {
99
- let elements = [target]
119
+ let elements = (target instanceof HTMLElement ? [target] : [])
100
120
  .concat([...target.querySelectorAll('*')])
101
121
  .filter((e) => !!getPlaceholders(e).length);
102
122
  return elements;
@@ -163,7 +183,14 @@ export const observe = (target, propertyName) => {
163
183
  if (iso) {
164
184
  makePlaceHolders(target);
165
185
  this.constructor.callbacks.push((data) => {
166
- DC.trigger(target, 'data', flattenObject(data), 'ld');
186
+ // avoid bubbling for speed
187
+ new DC(target)
188
+ .descendants('_placeholders')
189
+ .forEach((e) => {
190
+ if (!e)
191
+ return;
192
+ e.trigger('data', flattenObject(data));
193
+ });
167
194
  });
168
195
  that.notify();
169
196
  }
@@ -1 +1 @@
1
- {"version":3,"file":"observables.js","sourceRoot":"","sources":["../src/observables.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"observables.js","sourceRoot":"","sources":["../src/observables.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.observables=e():t.observables=e()}(this,(()=>(()=>{"use strict";var t={d:(e,r)=>{for(var o in r)t.o(r,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){let e={};return[...Object.keys(t)].sort().forEach((o=>{var n;(n=t[o])&&n.constructor&&n.constructor===Object?e[o]=r(t[o]):e[o]=t[o]})),e}function o(t,e=!0){let n={};return[...Object.getOwnPropertyNames(t)].forEach((e=>{if(t[e]&&t[e].constructor&&t[e].constructor===Object){const r=o(t[e],!1);for(const t in r)n[e+"."+t]=r[t]}else n[e]=t[e]})),e?r(n):n}function n(t,e){return JSON.stringify(o(t))===JSON.stringify(o(e))}function c(t,e){let r;return()=>{clearTimeout(r),r=setTimeout((function(){t(...arguments)}),e)}}t.r(e),t.d(e,{observe:()=>_});var a=new Function("try {return this===window;}catch(e){ return false;}");let s=new Set;a()&&Object.keys(HTMLElement.prototype).filter((t=>/^on/.test(t))).forEach((t=>s.add(t)));class i{#t;#e=!1;#r=!1;constructor(t,e={},r="l"){this.#t=t,this.data=e,this.bubble=r}get type(){return this.#t}get stopped(){return this.#e}get immediateStopped(){return this.#r}stopPropagation(){this.#e=!0}stopImmediatePropagation(){this.stopPropagation(),this.#r=!0}}var l=new Function("try {return this===window;}catch(e){ return false;}");let u=new Set;function f(t,e){let r=[];return t.forEach((t=>{if(t&&t instanceof HTMLElement){const o=t?._mc;!e&&o?r=r.concat(Object.values(t._mc)):e&&o&&o[e]&&r.push(o[e])}})),r}function b(t,e,r=!0){let o=[];for(;t;){if(t._mc&&(e?e&&t._mc[e]&&o.push(t._mc[e]):o=o.concat(Object.values(t._mc)),r))return o;t=t.parentNode}return o}function d(t){return t&&t instanceof HTMLElement}function p(t,e,r={}){let o=t;if(!o._mc){let e=v?.debug;v.debug=!1,o._mc=new v(t),v.debug=e,delete o._mc._mc}const n=o._mc;return e.length&&!n[e]&&(n[e]=r,t instanceof HTMLElement&&t.setAttribute("_mc","")),r}function g(t,e){if(!e)return;const r=t?._mc||{};r&&r[e]&&delete r[e],!Object.keys(r).length&&t instanceof HTMLElement&&t.hasAttribute("_mc")&&t.removeAttribute("_mc")}function h(t,e,r={},o="l"){let n=t?._mc;if(!n)return;let c=e instanceof i?new i(e.type,e.data,"l"):new i(e,r,"l"),a="string"!=typeof e?e:new i(e,r,o);[...Object.values(n)].forEach((t=>{t?.trigger&&"function"==typeof t?.trigger&&t?.trigger(c)})),/[ud]/.test(a.bubble)&&m(t,a)}function m(t,e){/[ud]/.test(e.bubble)&&setTimeout((()=>{if(-1===e.bubble.indexOf("l")&&(e.bubble+="l"),e.bubble.indexOf("u")>-1){let r=b(t,"",!0)?.[0].target;r&&v.trigger(r,e)}e.bubble.indexOf("d")>-1&&new Set(t._mc.children().map((t=>t?.target))).forEach((t=>{t&&v.trigger(t,e)}))}),0)}l()&&Object.keys(HTMLElement.prototype).filter((t=>/^on/.test(t))).forEach((t=>u.add(t)));class y{#o;constructor(t,e=!1){var r;this.#o=new WeakRef(t||{}),(r=this).constructor!==v&&setTimeout((()=>{r.trigger("Init")}),0),function(t){if(!l()||t.constructor===v)return;const e=t.target;if(e instanceof HTMLElement){let r=t;Object.getOwnPropertyNames(r.constructor.prototype).filter((t=>/^on[A-Z]|one[A-Z]/.test(t)&&"function"==typeof r.constructor.prototype[t])).forEach((o=>{let n=/^one/.test(o),c=o.replace(/^on[e]{0,1}/,""),a=c.toLowerCase();n&&Object.defineProperty(t,"on"+c,{configurable:!0,enumerable:!1,writable:!0,value:t=>{r.constructor.prototype[o].bind(r)(t)}}),u.has("on"+a)&&function(t,e,r,o=!1,n=!1){let c={once:!1};o&&(c.capture=o),n&&(c.once=n),t.addEventListener(e,r,c)}(e,a,(t=>{r.trigger(c,t)}),!1,n)}))}}(this)}get target(){return this.#o.deref()}}class O extends y{_mc={};constructor(t){super(t)}static trigger=h;trigger(t,e={},r="l"){let o=this;if(o.constructor===O||o.constructor===v){let n=t instanceof i?new i(t.type,t.data,"l"):new i(t,e,"l"),c="string"!=typeof t?t:new i(t,e,r);return[...Object.getOwnPropertyNames(o)].forEach((t=>{o[t]?.trigger&&"function"==typeof o[t]?.trigger&&o[t]?.trigger(n)})),void(/[ud]/.test(c.bubble)&&m(o.target,c))}if(o instanceof O||o instanceof v){const o=this,n="string"!=typeof t?t:new i(t,e,r),c="on"+n.type[0].toUpperCase()+n.type.slice(1);if(n.bubble.indexOf("l")>-1&&(n.immediateStopped||"function"!=typeof o[c]||(o[c](n),o.hasOwnProperty(c)&&delete o[c])),n.stopped||"l"===n.bubble)return o;/[ud]/.test(n.bubble)&&m(o.target,n)}}}class v extends y{_mc={};constructor(t,e=!1){super(t)}static add=p;static remove=g;static trigger=h;trigger(t,e={},r){O.prototype.trigger.call(this,t,e,r)}parent(t=""){let e=this.target;return d(e)?b(e.parentNode,t,!0):[]}ancestors(t=""){let e=this?.target;return d(e)?b(this.target.parentNode,t,!1):[]}children(t=""){let e=this?.target;if(!d(e))return[];const r=Math.random().toString().replace(".",""),o='[_mc]:not([temp_id="'+r+'"] [_mc] [_mc])';e.setAttribute("temp_id",r);const n=f([...e.querySelectorAll(o)],t);return e.removeAttribute("temp_id"),n}descendants(t=""){let e=this?.target;return d(e)?f([...e.querySelectorAll("*[_mc]")],t):[]}}function w(t){return null!=t&&"object"==typeof t}function j(t){let e=new Set,r=/\{[^\{\}]*\}/g;return t.getAttributeNames().filter((e=>t.getAttribute(e)?.match(r))).forEach((o=>{new Set(t.getAttribute(o)?.match(r)).forEach((t=>e.add(t.replace(/[\{\}]/g,""))))})),[...t.childNodes].filter((t=>3===t.nodeType&&(t.nodeValue||"").match(r))).forEach((t=>{(t.nodeValue||"").match(r).forEach((t=>{e.add(t.replace(/[\{\}]/g,""))}))})),[...e].map((t=>t.replace(/[\{\}]/g,""))),[...e]}class E extends v{data={};placeholders=[];constructor(t){super(t);let e=this;j(t).forEach((t=>e.data[t]="")),_(e),e.#n()}#n(){let t=this,e=t.target;e.getAttributeNames().filter((t=>e.getAttribute(t)?.match(/\{[^\{\}]*\}/g))).forEach((r=>{let o=new Set(e.getAttribute(r)?.match(/\{[^\{\}]*\}/g));var n;t.data.observe((n=e.getAttribute(r),t=>{let c=n;o.forEach((e=>{c=c.replace(e,t[e.replace(/[\{\}]/g,"")])})),e.setAttribute(r,c)}))})),[...e.childNodes].filter((t=>3===t.nodeType&&(t.nodeValue||"").match(/\{[^\{\}]*\}/g))).forEach((e=>{let r=new Set(e.nodeValue.match(/\{[^\{\}]*\}/g));var o;t.data.observe((o=e.nodeValue,t=>{let n=o;r.forEach((e=>{n=n.replace(e,t[e.replace(/[\{\}]/g,"")])})),e.nodeValue=n}))}))}onData(t){let e=this,r={};Object.keys(t.data).forEach((o=>{e.data.hasOwnProperty(o)&&(r[o]=t.data[o])})),JSON.stringify(r)!==JSON.stringify(e.data)&&Object.assign(e.data,r)}}const _=(t,e)=>{(e?[e]:[...Object.getOwnPropertyNames(t)]).forEach((e=>{if("_"===e[0]||void 0===t?.[e])return;let r,a=t[e];if(!a.prototype)switch(typeof a){case"string":r=String;break;case"number":r=Number;break;case"boolean":r=Boolean;break;case"object":r=a instanceof Array?Array:Object;break;default:return}let s=class extends r{constructor(t){super(t),this.constructor.callbacks=[],w(t)&&(this.constructor.bound=[],Object.getOwnPropertyNames(t).forEach((e=>{this[e]=t[e]})))}observe(t){return this.constructor.callbacks.push(t),this}bind(t){const e=this;return w(e.valueOf())?(function(t){var e;(e=t,[e].concat([...e.querySelectorAll("*")]).filter((t=>!!j(t).length))).forEach((t=>{t?._mc?._placeholders||v.add(t,"_placeholders",new E(t))}))}(t),this.constructor.callbacks.push((e=>{v.trigger(t,"data",o(e),"ld")})),e.notify()):console.warn("IGNORED - cannot bind a non-Object to the dom, IS:",typeof e.valueOf(),e),this}notify(){let t=this,e=w(t.valueOf())&&t.valueOf()instanceof Array==0?structuredClone(Object.assign({},t)):t.valueOf();return t.constructor.callbacks.forEach((t=>{t(e)})),w(t.valueOf())&&t.constructor.bound.forEach((t=>{t(e)})),this}},i=new s(a);Object.defineProperty(t,e,{enumerable:!0,get(){if(w(i.valueOf())){let t=structuredClone(Object.assign({},i));setTimeout(c((function(){n(structuredClone(Object.assign({},i)),t)||i.notify()}),0),0)}return i},set(t){if(typeof t==typeof i.valueOf())if(w(i.valueOf())&&i.valueOf()instanceof Array==0){let e=structuredClone(Object.assign({},i));t=structuredClone(Object.assign({},t));let r=i.constructor?.hasFormHandler??!1,o=i.constructor.callbacks,a=i.constructor.bound;i=new s(structuredClone(Object.assign({},t))),i.constructor.callbacks=r,i.constructor.callbacks=o,i.constructor.bound=a,setTimeout(c((function(){n(structuredClone(Object.assign({},i)),e)||i.notify()}),0),0)}else{let e=i.valueOf(),r=i.constructor.callbacks;i=new s(t),i.constructor.callbacks=r,t!==e&&i.notify()}else console.warn("IGNORED - cannot change observable types, IS:",typeof i.valueOf(),i,"- CANNOT BECOME:",typeof t)}}),t[e]=a}))};return e})()));
1
+ !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.observables=e():t.observables=e()}(this,(()=>(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){let e={};return[...Object.keys(t)].sort().forEach((n=>{var o;(o=t[n])&&o.constructor&&o.constructor===Object?e[n]=r(t[n]):e[n]=t[n]})),e}function n(t,e=!0){let o={};return[...Object.getOwnPropertyNames(t)].forEach((e=>{if(t[e]&&t[e].constructor&&t[e].constructor===Object){const r=n(t[e],!1);for(const t in r)o[e+"."+t]=r[t]}else o[e]=t[e]})),e?r(o):o}function o(t,e){return JSON.stringify(n(t))===JSON.stringify(n(e))}function c(t,e){let r;return()=>{clearTimeout(r),r=setTimeout((function(){t(...arguments)}),e)}}t.r(e),t.d(e,{observe:()=>S});var a=new Function("try {return this===window;}catch(e){ return false;}");let s=new Set;a()&&Object.keys(HTMLElement.prototype).filter((t=>/^on/.test(t))).forEach((t=>s.add(t)));class i{#t;#e=!1;#r=!1;constructor(t,e={},r="l"){this.#t=t,this.data=e,this.bubble=r}get type(){return this.#t}get stopped(){return this.#e}get immediateStopped(){return this.#r}stopPropagation(){this.#e=!0}stopImmediatePropagation(){this.stopPropagation(),this.#r=!0}}var l=new Function("try {return this===window;}catch(e){ return false;}");let u=new Set;function f(t,e){let r=[];return t.forEach((t=>{if(t&&t instanceof HTMLElement){const n=t?._mc;!e&&n?r=r.concat(Object.values(t._mc)):e&&n&&n[e]&&r.push(n[e])}})),r}function d(t,e,r=!0){let n=[];for(;t;){if(t._mc&&(e?e&&t._mc[e]&&n.push(t._mc[e]):n=n.concat(Object.values(t._mc)),r))return n;t=t.parentNode}return n}function b(t){return t&&t instanceof HTMLElement}function p(t,e,r={}){let n=t;if(!n._mc){let e=E?.debug;E.debug=!1,n._mc=new E(t),E.debug=e,delete n._mc._mc}const o=n._mc;return e.length&&!o[e]&&(o[e]=r,t instanceof HTMLElement&&t.setAttribute("_mc","")),r}function g(t,e){if(!e)return;const r=t?._mc||{};r&&r[e]&&delete r[e],!Object.keys(r).length&&t instanceof HTMLElement&&t.hasAttribute("_mc")&&t.removeAttribute("_mc")}function h(t,e,r={},n="l"){let o=t?._mc;if(!o)return;let c=e instanceof i?new i(e.type,e.data,"l"):new i(e,r,"l"),a="string"!=typeof e?e:new i(e,r,n);[...Object.values(o)].forEach((t=>{t?.trigger&&"function"==typeof t?.trigger&&t?.trigger(c)})),/[ud]/.test(a.bubble)&&m(t,a)}function m(t,e){/[ud]/.test(e.bubble)&&setTimeout((()=>{if(-1===e.bubble.indexOf("l")&&(e.bubble+="l"),e.bubble.indexOf("u")>-1){let r=d(t,"",!0)?.[0].target;r&&E.trigger(r,e)}e.bubble.indexOf("d")>-1&&new Set(t._mc.children().map((t=>t?.target))).forEach((t=>{t&&E.trigger(t,e)}))}),0)}l()&&Object.keys(HTMLElement.prototype).filter((t=>/^on/.test(t))).forEach((t=>u.add(t)));class y{#n;constructor(t,e=!1){var r;this.#n=new WeakRef(t||{}),(r=this).constructor!==E&&setTimeout((()=>{r.trigger("Init")}),0),function(t){if(!l()||t.constructor===E)return;const e=t.target;if(e instanceof HTMLElement){let r=t;Object.getOwnPropertyNames(r.constructor.prototype).filter((t=>/^on[A-Z]|one[A-Z]/.test(t)&&"function"==typeof r.constructor.prototype[t])).forEach((n=>{let o=/^one/.test(n),c=n.replace(/^on[e]{0,1}/,""),a=c.toLowerCase();o&&Object.defineProperty(t,"on"+c,{configurable:!0,enumerable:!1,writable:!0,value:t=>{r.constructor.prototype[n].bind(r)(t)}}),u.has("on"+a)&&function(t,e,r,n=!1,o=!1){let c={once:!1};n&&(c.capture=n),o&&(c.once=o),t.addEventListener(e,r,c)}(e,a,(t=>{r.trigger(c,t)}),!1,o)}))}}(this)}get target(){return this.#n.deref()}}class O extends y{_mc={};constructor(t){super(t)}static trigger=h;trigger(t,e={},r="l"){let n=this;if(n.constructor===O||n.constructor===E){let o=t instanceof i?new i(t.type,t.data,"l"):new i(t,e,"l"),c="string"!=typeof t?t:new i(t,e,r);return[...Object.getOwnPropertyNames(n)].forEach((t=>{n[t]?.trigger&&"function"==typeof n[t]?.trigger&&n[t]?.trigger(o)})),void(/[ud]/.test(c.bubble)&&m(n.target,c))}if(n instanceof O||n instanceof E){const n=this,o="string"!=typeof t?t:new i(t,e,r),c="on"+o.type[0].toUpperCase()+o.type.slice(1);if(o.bubble.indexOf("l")>-1&&(o.immediateStopped||"function"!=typeof n[c]||(n[c](o),n.hasOwnProperty(c)&&delete n[c])),o.stopped||"l"===o.bubble)return n;/[ud]/.test(o.bubble)&&m(n.target,o)}}}class E extends y{_mc={};constructor(t,e=!1){super(t)}static add=p;static remove=g;static trigger=h;trigger(t,e={},r){O.prototype.trigger.call(this,t,e,r)}parent(t=""){let e=this.target;return b(e)?d(e.parentNode,t,!0):[]}ancestors(t=""){let e=this?.target;return b(e)?d(this.target.parentNode,t,!1):[]}children(t=""){let e=this?.target;if(!b(e))return[];const r=Math.random().toString().replace(".",""),n='[_mc]:not([temp_id="'+r+'"] [_mc] [_mc])';e.setAttribute("temp_id",r);const o=f([...e.querySelectorAll(n)],t);return e.removeAttribute("temp_id"),o}descendants(t=""){let e=this?.target;return b(e)?f([...e.querySelectorAll("*[_mc]")],t):[]}}function v(t){return null!=t&&"object"==typeof t}function w(t){let e=new Set,r=/\{[^\{\}]*\}/g;return t.getAttributeNames().filter((e=>t.getAttribute(e)?.match(r))).forEach((n=>{new Set(t.getAttribute(n)?.match(r)).forEach((t=>e.add(t.replace(/[\{\}]/g,""))))})),[...t.childNodes].filter((t=>3===t.nodeType&&(t.nodeValue||"").match(r))).forEach((t=>{(t.nodeValue||"").match(r).forEach((t=>{e.add(t.replace(/[\{\}]/g,""))}))})),[...e].map((t=>t.replace(/[\{\}]/g,""))),[...e]}const j=[HTMLInputElement,HTMLSelectElement,HTMLTextAreaElement];class _ extends E{data={};placeholders=[];#o="";constructor(t){super(t);let e=this;w(t).forEach((t=>e.data[t]="")),S(e),e.#o=t.style.display,j.includes(t.constructor)||(t.style.display="none"),e.#c()}#c(){let t=this,e=t.target;e.getAttributeNames().filter((t=>e.getAttribute(t)?.match(/\{[^\{\}]*\}/g))).forEach((r=>{let n=new Set(e.getAttribute(r)?.match(/\{[^\{\}]*\}/g));var o;t.data.observe((o=e.getAttribute(r),t=>{let c=o;n.forEach((e=>{c=c.replace(e,t[e.replace(/[\{\}]/g,"")])})),e.setAttribute(r,c)}))})),[...e.childNodes].filter((t=>3===t.nodeType&&(t.nodeValue||"").match(/\{[^\{\}]*\}/g))).forEach((r=>{let n=new Set(r.nodeValue.match(/\{[^\{\}]*\}/g));var o;t.data.observe((o=r.nodeValue,c=>{let a=o;n.forEach((t=>{a=a.replace(t,c[t.replace(/[\{\}]/g,"")])})),Object.keys(c).some((t=>!!c[t]))&&(e.style.display=t.#o),r.nodeValue=a}))}))}onData(t){let e=this,r={};Object.keys(t.data).forEach((n=>{e.data.hasOwnProperty(n)&&(r[n]=t.data[n])})),JSON.stringify(r)!==JSON.stringify(e.data)&&Object.assign(e.data,r)}}const S=(t,e)=>{(e?[e]:[...Object.getOwnPropertyNames(t)]).forEach((e=>{if("_"===e[0]||void 0===t?.[e])return;let r,a=t[e];if(!a.prototype)switch(typeof a){case"string":r=String;break;case"number":r=Number;break;case"boolean":r=Boolean;break;case"object":r=a instanceof Array?Array:Object;break;default:return}let s=class extends r{constructor(t){super(t),this.constructor.callbacks=[],v(t)&&(this.constructor.bound=[],Object.getOwnPropertyNames(t).forEach((e=>{this[e]=t[e]})))}observe(t){return this.constructor.callbacks.push(t),this}bind(t){const e=this;return v(e.valueOf())?(function(t){var e;(e=t,(e instanceof HTMLElement?[e]:[]).concat([...e.querySelectorAll("*")]).filter((t=>!!w(t).length))).forEach((t=>{t?._mc?._placeholders||E.add(t,"_placeholders",new _(t))}))}(t),this.constructor.callbacks.push((e=>{new E(t).descendants("_placeholders").forEach((t=>{t&&t.trigger("data",n(e))}))})),e.notify()):console.warn("IGNORED - cannot bind a non-Object to the dom, IS:",typeof e.valueOf(),e),this}notify(){let t=this,e=v(t.valueOf())&&t.valueOf()instanceof Array==0?structuredClone(Object.assign({},t)):t.valueOf();return t.constructor.callbacks.forEach((t=>{t(e)})),v(t.valueOf())&&t.constructor.bound.forEach((t=>{t(e)})),this}},i=new s(a);Object.defineProperty(t,e,{enumerable:!0,get(){if(v(i.valueOf())){let t=structuredClone(Object.assign({},i));setTimeout(c((function(){o(structuredClone(Object.assign({},i)),t)||i.notify()}),0),0)}return i},set(t){if(typeof t==typeof i.valueOf())if(v(i.valueOf())&&i.valueOf()instanceof Array==0){let e=structuredClone(Object.assign({},i));t=structuredClone(Object.assign({},t));let r=i.constructor?.hasFormHandler??!1,n=i.constructor.callbacks,a=i.constructor.bound;i=new s(structuredClone(Object.assign({},t))),i.constructor.callbacks=r,i.constructor.callbacks=n,i.constructor.bound=a,setTimeout(c((function(){o(structuredClone(Object.assign({},i)),e)||i.notify()}),0),0)}else{let e=i.valueOf(),r=i.constructor.callbacks;i=new s(t),i.constructor.callbacks=r,t!==e&&i.notify()}else console.warn("IGNORED - cannot change observable types, IS:",typeof i.valueOf(),i,"- CANNOT BECOME:",typeof t)}}),t[e]=a}))};return e})()));
@@ -59,15 +59,22 @@ function getPlaceholders(target: HTMLElement): string[] {
59
59
  return [...placeholders];
60
60
  }
61
61
 
62
+ const inputs = [HTMLInputElement, HTMLSelectElement, HTMLTextAreaElement];
63
+
62
64
  class Placeholders extends DC {
63
65
  data: LooseObject = {};
64
66
  placeholders: string[] = [];
67
+ #oldDisplay: string = '';
65
68
 
66
69
  constructor(target: HTMLElement) {
67
70
  super(target);
68
71
  let that = this;
69
72
  getPlaceholders(target).forEach((property) => (that.data[property] = ''));
70
73
  observe(that);
74
+ that.#oldDisplay = target.style.display;
75
+ if (!inputs.includes((target as any).constructor)) {
76
+ target.style.display = 'none';
77
+ }
71
78
  that.#attachCallbacks();
72
79
  }
73
80
 
@@ -127,6 +134,22 @@ class Placeholders extends DC {
127
134
  data[placeholder.replace(/[\{\}]/g, '')]
128
135
  );
129
136
  });
137
+ // if (!inputs.includes((target as any).constructor)) return;
138
+ // console.log(
139
+ // target,
140
+ // data,
141
+ // that.#oldDisplay,
142
+ // Object.keys(data).some((key) => {
143
+ // return !!data[key];
144
+ // })
145
+ // );
146
+ if (
147
+ Object.keys(data).some((key) => {
148
+ return !!data[key];
149
+ })
150
+ ) {
151
+ target.style.display = that.#oldDisplay;
152
+ }
130
153
  //console.log('cb nodeValue', phs, data, template, childNode, result);
131
154
  childNode.nodeValue = result;
132
155
  })(childNode.nodeValue)
@@ -149,7 +172,9 @@ class Placeholders extends DC {
149
172
  function getPlaceholderElements(
150
173
  target: HTMLElement | DocumentFragment | ShadowRoot
151
174
  ): HTMLElement[] {
152
- let elements: Array<HTMLElement | DocumentFragment | ShadowRoot> = [target]
175
+ let elements: Array<HTMLElement> = (
176
+ target instanceof HTMLElement ? [target] : []
177
+ )
153
178
  .concat([...(target.querySelectorAll('*') as unknown as HTMLElement[])])
154
179
  .filter((e) => !!getPlaceholders(e as HTMLElement).length);
155
180
  return elements as HTMLElement[];
@@ -231,7 +256,13 @@ export const observe = (target: LooseObject, propertyName?: string) => {
231
256
  if (iso) {
232
257
  makePlaceHolders(target);
233
258
  (this.constructor as any).callbacks.push((data: LooseObject) => {
234
- DC.trigger(target, 'data', flattenObject(data), 'ld');
259
+ // avoid bubbling for speed
260
+ new DC(target as HTMLMcElement)
261
+ .descendants('_placeholders')
262
+ .forEach((e) => {
263
+ if (!e) return;
264
+ e.trigger('data', flattenObject(data));
265
+ });
235
266
  });
236
267
  that.notify();
237
268
  } else {
@@ -94,7 +94,6 @@ defineCE(
94
94
  let that = this; // minifier help
95
95
 
96
96
  // hide
97
- target.setAttribute('style', 'display:none');
98
97
 
99
98
  // render
100
99
  target.innerHTML = this.#template;
@@ -120,7 +119,7 @@ defineCE(
120
119
  (that.Dom as Observable).bind(that.target);
121
120
 
122
121
  // show
123
- setTimeout(() => that.target.removeAttribute('style'), 100);
122
+ //setTimeout(() => that.target.removeAttribute('style'), 100);
124
123
  }
125
124
 
126
125
  onAttributeChanged(ev: McEvent) {
@@ -129,8 +128,13 @@ defineCE(
129
128
  }
130
129
 
131
130
  onClick(ev: McEvent) {
132
- this.Dom.counter++;
133
- (this.target as HTMLElement).classList.add('clicked');
131
+ const that = this,
132
+ c = this.Dom.counter++;
133
+ (ev.data as PointerEvent).stopPropagation();
134
+ (this.target as HTMLElement).classList.remove('clicked');
135
+ (this.target as HTMLElement).classList.add(
136
+ that.Dom.counter > 9 ? 'overClicked' : 'clicked'
137
+ );
134
138
  }
135
139
  },
136
140
  ['language']
@@ -146,7 +150,7 @@ stress test
146
150
  let start = new Date().getTime();
147
151
 
148
152
  // create 100 elements
149
- for (let x = 0; x < 100; x++) {
153
+ for (let x = 0; x < 1000; x++) {
150
154
  fragment.append(new MyTag());
151
155
  }
152
156
 
@@ -162,10 +166,10 @@ console test
162
166
  */
163
167
 
164
168
  setTimeout(() => {
165
- console.clear();
169
+ // console.clear();
166
170
 
167
171
  console.log(
168
- '%c \n\nStress Test:\n\n %cInstancing 100 web components: %c %s ms.',
172
+ '%c \n\nStress Test:\n\n %cInstancing 1000 web components: %c %s ms.',
169
173
  'font-weight: bold; color: black;',
170
174
  'font-weight: normal;',
171
175
  'font-weight: bold; color: blue;',
package/public/test.html CHANGED
@@ -1,14 +1,23 @@
1
1
  <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>Micro Components Manual Test</title>
7
- <link rel="icon" type="image/svg+xml" sizes="any" href="MicroComponents.svg" />
8
- <link href="./my-tag.css" rel="stylesheet" />
9
- <script type="module" src="./test.js"></script>
10
- </head>
11
- <body>
12
- Open the debugger, read console, then:&nbsp;
13
- </body>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>Micro Components Manual Test</title>
7
+ <link
8
+ rel="icon"
9
+ type="image/svg+xml"
10
+ sizes="any"
11
+ href="MicroComponents.svg"
12
+ />
13
+ <link href="./my-tag.css" rel="stylesheet" />
14
+ <script src="./microcomponents.min.js"></script>
15
+ <script>
16
+ Object.assign(window, microcomponents); // make global
17
+ </script>
18
+ <script type="module" src="./test.js"></script>
19
+ </head>
20
+ <body>
21
+ Open the debugger, read console, then:<br />
22
+ </body>
14
23
  </html>
package/public/test.js CHANGED
@@ -58,7 +58,6 @@ defineCE(
58
58
  super(target);
59
59
  let that = this; // minifier help
60
60
  // hide
61
- target.setAttribute('style', 'display:none');
62
61
  // render
63
62
  target.innerHTML = this.#template;
64
63
  // add public translator
@@ -73,15 +72,17 @@ defineCE(
73
72
  // bind Dom to target
74
73
  that.Dom.bind(that.target);
75
74
  // show
76
- setTimeout(() => that.target.removeAttribute('style'), 100);
75
+ //setTimeout(() => that.target.removeAttribute('style'), 100);
77
76
  }
78
77
  onAttributeChanged(ev) {
79
78
  //console.log(ev);
80
79
  this.target._mc.translator.Language = ev.data.newValue;
81
80
  }
82
81
  onClick(ev) {
83
- this.Dom.counter++;
84
- this.target.classList.add('clicked');
82
+ const that = this, c = this.Dom.counter++;
83
+ ev.data.stopPropagation();
84
+ this.target.classList.remove('clicked');
85
+ this.target.classList.add(that.Dom.counter > 9 ? 'overClicked' : 'clicked');
85
86
  }
86
87
  }, ['language']);
87
88
  let MyTag = getCE('my-tag'), fragment = new DocumentFragment();
@@ -90,7 +91,7 @@ stress test
90
91
  */
91
92
  let start = new Date().getTime();
92
93
  // create 100 elements
93
- for (let x = 0; x < 100; x++) {
94
+ for (let x = 0; x < 1000; x++) {
94
95
  fragment.append(new MyTag());
95
96
  }
96
97
  let end = new Date().getTime();
@@ -101,8 +102,8 @@ document.body.appendChild(fragment);
101
102
  console test
102
103
  */
103
104
  setTimeout(() => {
104
- console.clear();
105
- console.log('%c \n\nStress Test:\n\n %cInstancing 100 web components: %c %s ms.', 'font-weight: bold; color: black;', 'font-weight: normal;', 'font-weight: bold; color: blue;', end - start);
105
+ // console.clear();
106
+ console.log('%c \n\nStress Test:\n\n %cInstancing 1000 web components: %c %s ms.', 'font-weight: bold; color: black;', 'font-weight: normal;', 'font-weight: bold; color: blue;', end - start);
106
107
  document.body.appendChild(new MyTag());
107
108
  let element = document.querySelector('my-tag');
108
109
  console.log("\n\n%cInspect this tag:%c \n( ...to see the inner structure in the '._mc' property )\n\n %O %c %s", 'font-weight: bold;', 'font-weight: normal;', element, 'font-weight: bold;', '\n\nLook up code in the debugger: test.js\n\n');
@@ -1 +1 @@
1
- {"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":"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"}
@@ -16,22 +16,22 @@
16
16
  <li><a href="../modules/observables.html">observables</a></li>
17
17
  <li><a href="observables.Observable.html">Observable</a></li></ul>
18
18
  <h1>Type alias Observable</h1></div>
19
- <div class="tsd-signature">Observable<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span><br/><span>    </span>bind<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">(</span>target<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">HTMLElement</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">ShadowRoot</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">; </span><br/><span>    </span>notify<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">; </span><br/><span>    </span>observe<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">(</span>cb<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Callback</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span></div>
19
+ <div class="tsd-signature">Observable<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span><br/><span>    </span>bind<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">(</span>target<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">HTMLElement</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">DocumentFragment</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">ShadowRoot</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">; </span><br/><span>    </span>notify<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">; </span><br/><span>    </span>observe<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">(</span>cb<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Callback</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span></div>
20
20
  <div class="tsd-type-declaration">
21
21
  <h4>Type declaration</h4>
22
22
  <ul class="tsd-parameters">
23
23
  <li class="tsd-parameter">
24
- <h5>bind<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">(</span>target<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">HTMLElement</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">ShadowRoot</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">)</span></h5>
24
+ <h5>bind<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">(</span>target<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">HTMLElement</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">DocumentFragment</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">ShadowRoot</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">)</span></h5>
25
25
  <ul class="tsd-parameters">
26
26
  <li class="tsd-parameter-signature">
27
27
  <ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-property">
28
- <li class="tsd-signature" id="__type.bind.__type-1.__type-2"><span class="tsd-signature-symbol">(</span>target<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">HTMLElement</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">ShadowRoot</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
28
+ <li class="tsd-signature" id="__type.bind.__type-1.__type-2"><span class="tsd-signature-symbol">(</span>target<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">HTMLElement</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">DocumentFragment</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">ShadowRoot</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
29
29
  <li class="tsd-description">
30
30
  <div class="tsd-parameters">
31
31
  <h4 class="tsd-parameters-title">Parameters</h4>
32
32
  <ul class="tsd-parameter-list">
33
33
  <li>
34
- <h5>target: <span class="tsd-signature-type">HTMLElement</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">ShadowRoot</span></h5></li></ul></div>
34
+ <h5>target: <span class="tsd-signature-type">HTMLElement</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">DocumentFragment</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">ShadowRoot</span></h5></li></ul></div>
35
35
  <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4></li></ul></li></ul></li>
36
36
  <li class="tsd-parameter">
37
37
  <h5>notify<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">)</span></h5>
@@ -55,7 +55,7 @@
55
55
  <h5>cb: <span class="tsd-signature-type">Callback</span></h5></li></ul></div>
56
56
  <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4></li></ul></li></ul></li></ul></div><aside class="tsd-sources">
57
57
  <ul>
58
- <li>Defined in <a href="https://gitlab.com/twoBirds/microcomponents/-/blob/84a05c1/src/observables.ts#L344">src/observables.ts:344</a></li></ul></aside></div>
58
+ <li>Defined in <a href="https://gitlab.com/twoBirds/microcomponents/-/blob/a01d81a/src/observables.ts#L169">src/observables.ts:169</a></li></ul></aside></div>
59
59
  <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
60
60
  <div class="tsd-navigation settings">
61
61
  <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
@@ -18,7 +18,7 @@
18
18
  <h1>Type alias selection</h1></div>
19
19
  <div class="tsd-signature">selection<span class="tsd-signature-symbol">:</span> <a href="selectors.singleSelector.html" class="tsd-signature-type" data-tsd-kind="Type alias">singleSelector</a><span class="tsd-signature-symbol"> | </span><a href="selectors.singleSelector.html" class="tsd-signature-type" data-tsd-kind="Type alias">singleSelector</a><span class="tsd-signature-symbol">[]</span></div><aside class="tsd-sources">
20
20
  <ul>
21
- <li>Defined in <a href="https://gitlab.com/twoBirds/microcomponents/-/blob/84a05c1/src/selectors.ts#L1634">src/selectors.ts:1634</a></li></ul></aside></div>
21
+ <li>Defined in <a href="https://gitlab.com/twoBirds/microcomponents/-/blob/a01d81a/src/selectors.ts#L1634">src/selectors.ts:1634</a></li></ul></aside></div>
22
22
  <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
23
23
  <div class="tsd-navigation settings">
24
24
  <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
@@ -18,7 +18,7 @@
18
18
  <h1>Type alias singleSelector</h1></div>
19
19
  <div class="tsd-signature">single<wbr/>Selector<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">ShadowRoot</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">HTMLElement</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">HTMLElement</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">HTMLCollection</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">NodeList</span><span class="tsd-signature-symbol"> | </span><a href="../interfaces/selectors.DSelector.html" class="tsd-signature-type" data-tsd-kind="Interface">DSelector</a><span class="tsd-signature-symbol"> | </span><a href="../classes/MC.MC.html" class="tsd-signature-type" data-tsd-kind="Class">MC</a><span class="tsd-signature-symbol"> | </span><a href="../classes/MC.DC.html" class="tsd-signature-type" data-tsd-kind="Class">DC</a><span class="tsd-signature-symbol"> | </span><a href="../interfaces/selectors.TSelector.html" class="tsd-signature-type" data-tsd-kind="Interface">TSelector</a><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">undefined</span></div><aside class="tsd-sources">
20
20
  <ul>
21
- <li>Defined in <a href="https://gitlab.com/twoBirds/microcomponents/-/blob/84a05c1/src/selectors.ts#L1632">src/selectors.ts:1632</a></li></ul></aside></div>
21
+ <li>Defined in <a href="https://gitlab.com/twoBirds/microcomponents/-/blob/a01d81a/src/selectors.ts#L1632">src/selectors.ts:1632</a></li></ul></aside></div>
22
22
  <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
23
23
  <div class="tsd-navigation settings">
24
24
  <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
@@ -59,15 +59,22 @@ function getPlaceholders(target: HTMLElement): string[] {
59
59
  return [...placeholders];
60
60
  }
61
61
 
62
+ const inputs = [HTMLInputElement, HTMLSelectElement, HTMLTextAreaElement];
63
+
62
64
  class Placeholders extends DC {
63
65
  data: LooseObject = {};
64
66
  placeholders: string[] = [];
67
+ #oldDisplay: string = '';
65
68
 
66
69
  constructor(target: HTMLElement) {
67
70
  super(target);
68
71
  let that = this;
69
72
  getPlaceholders(target).forEach((property) => (that.data[property] = ''));
70
73
  observe(that);
74
+ that.#oldDisplay = target.style.display;
75
+ if (!inputs.includes((target as any).constructor)) {
76
+ target.style.display = 'none';
77
+ }
71
78
  that.#attachCallbacks();
72
79
  }
73
80
 
@@ -127,6 +134,22 @@ class Placeholders extends DC {
127
134
  data[placeholder.replace(/[\{\}]/g, '')]
128
135
  );
129
136
  });
137
+ // if (!inputs.includes((target as any).constructor)) return;
138
+ // console.log(
139
+ // target,
140
+ // data,
141
+ // that.#oldDisplay,
142
+ // Object.keys(data).some((key) => {
143
+ // return !!data[key];
144
+ // })
145
+ // );
146
+ if (
147
+ Object.keys(data).some((key) => {
148
+ return !!data[key];
149
+ })
150
+ ) {
151
+ target.style.display = that.#oldDisplay;
152
+ }
130
153
  //console.log('cb nodeValue', phs, data, template, childNode, result);
131
154
  childNode.nodeValue = result;
132
155
  })(childNode.nodeValue)
@@ -149,7 +172,9 @@ class Placeholders extends DC {
149
172
  function getPlaceholderElements(
150
173
  target: HTMLElement | DocumentFragment | ShadowRoot
151
174
  ): HTMLElement[] {
152
- let elements: Array<HTMLElement | DocumentFragment | ShadowRoot> = [target]
175
+ let elements: Array<HTMLElement> = (
176
+ target instanceof HTMLElement ? [target] : []
177
+ )
153
178
  .concat([...(target.querySelectorAll('*') as unknown as HTMLElement[])])
154
179
  .filter((e) => !!getPlaceholders(e as HTMLElement).length);
155
180
  return elements as HTMLElement[];
@@ -231,7 +256,13 @@ export const observe = (target: LooseObject, propertyName?: string) => {
231
256
  if (iso) {
232
257
  makePlaceHolders(target);
233
258
  (this.constructor as any).callbacks.push((data: LooseObject) => {
234
- DC.trigger(target, 'data', flattenObject(data), 'ld');
259
+ // avoid bubbling for speed
260
+ new DC(target as HTMLMcElement)
261
+ .descendants('_placeholders')
262
+ .forEach((e) => {
263
+ if (!e) return;
264
+ e.trigger('data', flattenObject(data));
265
+ });
235
266
  });
236
267
  that.notify();
237
268
  } else {
package/src/test.ts CHANGED
@@ -94,7 +94,6 @@ defineCE(
94
94
  let that = this; // minifier help
95
95
 
96
96
  // hide
97
- target.setAttribute('style', 'display:none');
98
97
 
99
98
  // render
100
99
  target.innerHTML = this.#template;
@@ -120,7 +119,7 @@ defineCE(
120
119
  (that.Dom as Observable).bind(that.target);
121
120
 
122
121
  // show
123
- setTimeout(() => that.target.removeAttribute('style'), 100);
122
+ //setTimeout(() => that.target.removeAttribute('style'), 100);
124
123
  }
125
124
 
126
125
  onAttributeChanged(ev: McEvent) {
@@ -129,8 +128,13 @@ defineCE(
129
128
  }
130
129
 
131
130
  onClick(ev: McEvent) {
132
- this.Dom.counter++;
133
- (this.target as HTMLElement).classList.add('clicked');
131
+ const that = this,
132
+ c = this.Dom.counter++;
133
+ (ev.data as PointerEvent).stopPropagation();
134
+ (this.target as HTMLElement).classList.remove('clicked');
135
+ (this.target as HTMLElement).classList.add(
136
+ that.Dom.counter > 9 ? 'overClicked' : 'clicked'
137
+ );
134
138
  }
135
139
  },
136
140
  ['language']
@@ -146,7 +150,7 @@ stress test
146
150
  let start = new Date().getTime();
147
151
 
148
152
  // create 100 elements
149
- for (let x = 0; x < 100; x++) {
153
+ for (let x = 0; x < 1000; x++) {
150
154
  fragment.append(new MyTag());
151
155
  }
152
156
 
@@ -162,10 +166,10 @@ console test
162
166
  */
163
167
 
164
168
  setTimeout(() => {
165
- console.clear();
169
+ // console.clear();
166
170
 
167
171
  console.log(
168
- '%c \n\nStress Test:\n\n %cInstancing 100 web components: %c %s ms.',
172
+ '%c \n\nStress Test:\n\n %cInstancing 1000 web components: %c %s ms.',
169
173
  'font-weight: bold; color: black;',
170
174
  'font-weight: normal;',
171
175
  'font-weight: bold; color: blue;',