taggedjs 2.3.26 → 2.3.28

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 (75) hide show
  1. package/index.js +1 -1
  2. package/js/CustomError.d.ts +7 -0
  3. package/js/CustomError.js +9 -0
  4. package/js/CustomError.js.map +1 -0
  5. package/js/Errors.d.ts +14 -0
  6. package/js/Errors.js +21 -0
  7. package/js/Errors.js.map +1 -0
  8. package/js/Errors2.d.ts +14 -0
  9. package/js/Errors2.js +21 -0
  10. package/js/Errors2.js.map +1 -0
  11. package/js/Subject.d.ts +1 -1
  12. package/js/Tag.class.d.ts +5 -4
  13. package/js/Tag.class.js +8 -9
  14. package/js/Tag.class.js.map +1 -1
  15. package/js/Tag.utils.d.ts +2 -2
  16. package/js/Tag.utils.js +2 -14
  17. package/js/Tag.utils.js.map +1 -1
  18. package/js/TagSupport.class.d.ts +27 -0
  19. package/js/TagSupport.class.js +157 -0
  20. package/js/TagSupport.class.js.map +1 -0
  21. package/js/ValueSubject.d.ts +2 -2
  22. package/js/ValueSubject.js.map +1 -1
  23. package/js/bindSubjectCallback.function.d.ts +5 -3
  24. package/js/bindSubjectCallback.function.js +19 -12
  25. package/js/bindSubjectCallback.function.js.map +1 -1
  26. package/js/deepFunctions.d.ts +1 -1
  27. package/js/deepFunctions.js +20 -6
  28. package/js/deepFunctions.js.map +1 -1
  29. package/js/gateway/tagGateway.utils.js +14 -4
  30. package/js/gateway/tagGateway.utils.js.map +1 -1
  31. package/js/getTagSupport.d.ts +1 -2
  32. package/js/getTagSupport.js +26 -21
  33. package/js/getTagSupport.js.map +1 -1
  34. package/js/index.d.ts +13 -5
  35. package/js/index.js +12 -6
  36. package/js/index.js.map +1 -1
  37. package/js/isInstance.d.ts +3 -2
  38. package/js/isInstance.js +3 -0
  39. package/js/isInstance.js.map +1 -1
  40. package/js/processSubjectComponent.function.js +6 -5
  41. package/js/processSubjectComponent.function.js.map +1 -1
  42. package/js/processSubjectValue.function.d.ts +0 -1
  43. package/js/processSubjectValue.function.js +5 -6
  44. package/js/processSubjectValue.function.js.map +1 -1
  45. package/js/processTagArray.js +15 -9
  46. package/js/processTagArray.js.map +1 -1
  47. package/js/redrawTag.function.js +3 -2
  48. package/js/redrawTag.function.js.map +1 -1
  49. package/js/setUse.function.d.ts +1 -1
  50. package/js/state.d.ts +1 -0
  51. package/js/state.js +21 -3
  52. package/js/state.js.map +1 -1
  53. package/js/tag.d.ts +5 -4
  54. package/js/tag.js +48 -9
  55. package/js/tag.js.map +1 -1
  56. package/js/tagElement.d.ts +1 -1
  57. package/js/tagElement.js +6 -14
  58. package/js/tagElement.js.map +1 -1
  59. package/js/tagRunner.d.ts +1 -1
  60. package/js/templater.utils.d.ts +6 -4
  61. package/js/templater.utils.js +8 -6
  62. package/js/templater.utils.js.map +1 -1
  63. package/js/updateExistingTag.function.d.ts +4 -0
  64. package/js/updateExistingTag.function.js +21 -0
  65. package/js/updateExistingTag.function.js.map +1 -0
  66. package/js/updateExistingTagComponent.function.d.ts +4 -0
  67. package/js/updateExistingTagComponent.function.js +57 -0
  68. package/js/updateExistingTagComponent.function.js.map +1 -0
  69. package/js/updateExistingValue.function.d.ts +8 -0
  70. package/js/updateExistingValue.function.js +83 -0
  71. package/js/updateExistingValue.function.js.map +1 -0
  72. package/js/updateTag.utils.d.ts +1 -0
  73. package/js/updateTag.utils.js +5 -69
  74. package/js/updateTag.utils.js.map +1 -1
  75. package/package.json +1 -1
package/index.js CHANGED
@@ -1 +1 @@
1
- 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)},e={};t.d(e,{xQ:()=>r,Vp:()=>rt,fx:()=>y,RN:()=>Bt,er:()=>b,dy:()=>nt,jW:()=>pt,SO:()=>H,IT:()=>z,SW:()=>u,js:()=>dt,ev:()=>Ot,nc:()=>kt,a:()=>Et,_b:()=>S,hs:()=>g,lc:()=>p,SB:()=>At,_q:()=>bt,bX:()=>vt,Cc:()=>mt,pJ:()=>ht});class r{isSubject=!0;subscribers=[];value;subscribe(t){this.subscribers.push(t),o.globalSubs.push(t),o.globalSubCount$.set(o.globalSubCount$.value+1);const e=()=>{e.unsubscribe()};return e.unsubscribe=()=>{n(this.subscribers,t),n(o.globalSubs,t),o.globalSubCount$.set(o.globalSubCount$.value-1),e.unsubscribe=()=>{}},e}set(t){this.value=t,this.subscribers.forEach((e=>{e.value=t,e(t)}))}next=this.set}function n(t,e){const r=t.indexOf(e);-1!==r&&t.splice(r,1)}const o=r;o.globalSubs=[],o.globalSubCount$=new r,o.globalSubCount$.set(0);class s extends r{value;constructor(t){super(),this.value=t}subscribe(t){const e=super.subscribe(t);return t(this.value),e}}function a(t,e=new WeakMap){if(null===t||"object"!=typeof t)return t;if(e.has(t))return e.get(t);if(t instanceof Date)return new Date(t);if(t instanceof RegExp)return new RegExp(t);const r=Array.isArray(t)?[]:Object.create(Object.getPrototypeOf(t));if(e.set(t,r),Array.isArray(t))for(let n=0;n<t.length;n++)r[n]=a(t[n],e);else for(const n in t)t.hasOwnProperty(n)&&(r[n]=a(t[n],e));return r}function i(t,e){if(t===e)return!0;if("object"!=typeof t||"object"!=typeof e||null===t||null===e)return!1;const r=Object.keys(t),n=Object.keys(e);if(r.length!==n.length)return!1;for(const o of r)if(!n.includes(o)||!i(t[o],e[o])){if(t[o]instanceof Function&&e[o]instanceof Function&&t[o].toString()===e[o].toString())continue;return!1}if(Array.isArray(t)&&Array.isArray(e)){if(t.length!==e.length)return!1;for(let r=0;r<t.length;r++)if(!i(t[r],e[r]))return!1}else if(Array.isArray(t)||Array.isArray(e))return!1;return!0}function u(t){return!0===t?.isTemplater}function c(t){return!0===t?.isTag}function l(t){return!(!0!==t?.isSubject&&!t?.subscribe)}function p(t){const e={beforeRender:t.beforeRender||(()=>{}),beforeRedraw:t.beforeRedraw||(()=>{}),afterRender:t.afterRender||(()=>{}),beforeDestroy:t.beforeDestroy||(()=>{})};p.tagUse.push(e)}function g(t,e){p.tagUse.forEach((r=>r.beforeRender(t,e)))}function d(t,e){p.tagUse.forEach((r=>r.afterRender(t,e)))}function f(t,e){p.tagUse.forEach((r=>r.beforeRedraw(t,e)))}p.tagUse=[],p.memory={};class m{tagged;wrapper;newest;oldest;tagSupport;constructor(t){this.tagSupport=b(this,t)}redraw;isTemplater=!0;forceRenderTemplate(t,e){const r=this.wrapper();return r.setSupport(t),r.afterRender(),this.oldest=r,t.oldest=r,this.oldest=r,this.newest=r,r.ownerTag=e,r}renderWithSupport(t,e,r){++t.memory.renderCount;const n=e?.ownerTag||r;t.oldest?(t.props=t.latestProps,t.clonedProps=t.latestClonedProps,f(t,t.oldest)):(g(t,n),p.memory.providerConfig.ownerTag=n);const o=this,s=o.wrapper();t.latestProps=s.tagSupport.props,t.latestClonedProps=s.tagSupport.clonedProps,s.setSupport(t),d(t,s),o.newest=s,s.ownerTag=n;const a=t.oldest=t.oldest||s;t.newest=s;const i=a.tagSupport;return a.tagSupport=i||t,a.tagSupport.templater=o,e&&e.isLikeTag(s)?(a.updateByTag(s),{remit:!1,retag:s}):{remit:!0,retag:s}}}function h(t,e){const r=function(t,r){if("object"!=typeof t)return t;const n={...t};return Object.entries(n).forEach((([t,r])=>{n[t]=r instanceof Function?(...t)=>function(t,r){const n=t(...r);return e.newest?.ownerTag?.tagSupport.render(),n}(r,t):r})),n}(c(t)?0:t);return r}class y{templater;props;clonedProps;latestProps;latestClonedProps;memory={context:{},state:{newest:[]},providers:[],renderCount:0};constructor(t,e){this.templater=t,this.props=e,this.latestProps=e;const r=h(e,t);this.latestClonedProps=a(r),this.clonedProps=this.latestClonedProps}oldest;newest;hasPropChanges(t,e,r){const n=this.props;return!(void 0===t&&t===r||i(e,n))}mutatingRender(){const t='Tag function "render()" was called in sync but can only be called async';throw console.error(t,{tagSupport:this}),new Error(t)}render(){return++this.memory.renderCount,this.mutatingRender()}renderExistingTag(t,e){const r=this.memory.renderCount;if(function(t){t.tagSupport.memory.providers.filter((t=>!i(t.instance,t.clone))).forEach((e=>{!function(t,e){w(t,e).forEach((({tag:t,renderCount:e,provider:r})=>{e===t.tagSupport.memory.renderCount&&(r.clone=a(r.instance),t.tagSupport.render())}))}(t.getAppElement(),e),e.clone=a(e.instance)}))}(t),r!==this.memory.renderCount)return!0;const n=t.tagSupport.templater,o=e.tagSupport.props,s=n?.tagSupport.props;return function(t,e,r,n,o){const s=t.hasPropChanges(e,n,r);return t.newest=o.redraw(),!s}(this,o,s,e.tagSupport.clonedProps,this.templater)}}function b(t,e){return new y(t,e)}function w(t,e,r=[]){const n=t.tagSupport.memory.providers.find((t=>t.constructMethod===e.constructMethod));return n&&r.push({tag:t,renderCount:t.tagSupport.memory.renderCount,provider:n}),t.children.forEach((t=>w(t,e,r))),r}function S(t,e,r){const n=t?.tagSupport||b(e);return e.renderWithSupport(n,t,r)}function v(t,e){function r(r,n){const o=e.tagSupport.memory.renderCount,s=t.bind(r)(...n);if(o===e.tagSupport.memory.renderCount)return e.tagSupport.render(),s instanceof Promise?s.then((()=>e.tagSupport.render()&&"no-data-ever")):Promise.resolve(s).then((()=>"no-data-ever"))}return r.tagFunction=t,r}function T(t,e,r){e.tagSupport?.memory.renderCount,t.redraw=n=>{const o=e.tag,{remit:s,retag:a}=S(o,t,r);if(e.tagSupport=a.tagSupport,s){if(e.set(t),n){const t=o.tagSupport.memory.context;Object.values(t).forEach((t=>{t.value?.isTemplater&&t.value.redraw()}))}return a}}}function E(t,e){e.parentNode.insertBefore(t,e)}function C(t,e,r){const n=t.split(".");if("style"===n[0]&&(r.style[n[1]]=e),"class"===n[0])return n.shift(),void(e?n.forEach((t=>r.classList.add(t))):n.forEach((t=>r.classList.remove(t))))}function A(t,e,r){const n=t.getAttributeNames();"TEXTAREA"!==t.nodeName||n.includes("value")||P("textVarValue",t.getAttribute("textVarValue"),t,e,r,((e,r)=>t.value=r));const o=(e,r)=>{t.setAttribute(e,r)};n.forEach((n=>{P(n,t.getAttribute(n),t,e,r,o)}))}function R(t){return t.search(/^(class|style)(\.)/)>=0}function P(t,e,r,n,o,s){if(k(e))return function(t,e,r,n,o,s){return O(t,V(n,e),r,o,s)}(t,e,r,n,o,s);if(k(t)){let e;const a=V(n,t).subscribe((t=>{!function(t,e,r,n,o){if(e&&e!=t&&("string"==typeof e?r.removeAttribute(e):e instanceof Object&&Object.entries(e).forEach((([t])=>r.removeAttribute(t)))),"string"!=typeof t)t instanceof Object&&Object.entries(t).forEach((([t,e])=>O(t,e,r,n,o)));else{if(!t.length)return;O(t,"",r,n,o)}}(t,e,r,o,s),e=t}));return o.cloneSubs.push(a),void r.removeAttribute(t)}return R(t)?C(t,e,r):void 0}const x=/^\s*{__tagvar/,j=/}\s*$/;function k(t){return t&&t.search(x)>=0&&t.search(j)>=0}function V(t,e){return t[e.replace("{","").split("").reverse().join("").replace("}","").split("").reverse().join("")]}function O(t,e,r,n,o){const s=R(t);if(e instanceof Function){const n=function(...t){return e(r,t)};r[t].action=n}if(l(e)){r.removeAttribute(t);const a=e=>function(t,e,r,n,o){if(t instanceof Function)return e[r]=function(...r){return t(e,r)},void(e[r].tagFunction=t);if(n)return void C(r,t,e);if(t)return void o(r,t);void 0===t||!1===t||null===t?e.removeAttribute(r):o(r,t)}(e,r,t,s,o),i=e.subscribe(a);n.cloneSubs.push(i)}else o(t,e)}const B=/(?:<[^>]*?(?:(?:\s+\w+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^>\s]+)))*\s*)\/?>)|({__tagvar[^}]+})/g;function F(t,e,r,{index:n,counts:o,forceElement:s}){if(void 0!==n){const a=e.lastArray,i=a[n];if(i?.tag.isLikeTag(t))return i.tag.updateByTag(t),[];a.push({tag:t,index:n});const u=r;return t.buildBeforeElement(u,{counts:o,forceElement:s})}const a=e,i=a.tag;if(i&&!s&&i.isLikeTag(t)){if(e instanceof Function){const t=e(i.tagSupport);return i.updateByTag(t),[]}return i.updateByTag(t),[]}const u=t.buildBeforeElement(r,{counts:o,forceElement:s});return a.tag=t,u}function N(t,e,r,n,o){if(!0!==t.tagged){let e=t.wrapper.original.name||t.wrapper.original.constructor?.name;"Function"===e&&(e=void 0);const r=e||t.wrapper.original.toString().substring(0,120);throw new Error(`Not a tag component. Wrap your function with tag(). Example tag(props => html\`\`) on component:\n\n${r}\n\n`)}const s=t,a=t.tagSupport;a.mutatingRender=()=>e.tag&&a.renderExistingTag(e.tag,s)?e.tag:a.newest=n.tagSupport.render();let i=s.newest;return p.memory.providerConfig.ownerTag=n,(!i||o.forceElement)&&(i||g(a,n),i&&f(a,i),i=s.forceRenderTemplate(a,n)),n.children.push(i),a.latestProps=i.tagSupport.props,a.latestClonedProps=i.tagSupport.clonedProps,a.memory=i.tagSupport.memory,i.setSupport(a),F(i,e,r,o)}function _(t,e,r,n,o){const s=[];t.lastArray=t.lastArray||[],t.template=r;let a=0;t.lastArray=t.lastArray.filter(((r,n)=>{const s=e.length-1<n-a,i=e[n-a],u=i?.arrayValue;return!s&&u===r.tag.arrayValue||(t.lastArray[n].tag.destroy({stagger:o.counts.removed,byParent:!1}),++a,++o.counts.removed,!1)}));const i=r||r.clone;return e.forEach(((e,r)=>{if(e.tagSupport=b({}),e.tagSupport.mutatingRender=()=>(n.tagSupport.render(),e),e.ownerTag=n,n.children.push(e),void 0===e.arrayValue&&!Object.keys(e).includes("arrayValue")){const t=new Error("Use html`...`.key(item) instead of html`...` to template an Array");throw t.code="add-array-key",t}const a=t.lastArray[r];if(a)return a.tag.arrayValue===e.arrayValue&&a.tag.updateValues(e.values),[];const u=F(e,t,i,{index:r,...o});s.push(...u)})),s}var $;function L(t){return t instanceof Array&&t.every((t=>c(t)))}function M(t,e,r,n){const o=e.clone||r,s=I(t,o);e.clone=s;const a=[],i=n.clones.indexOf(o);return i>=0&&!n.clones.includes(s)&&!o.parentNode&&(n.clones.splice(i,1),n.clones.push(s),a.push(s)),a}function U(t,e,r,n,o){return t.tagSupport||(t.tagSupport=b({}),t.tagSupport.mutatingRender=n.tagSupport.mutatingRender,t.tagSupport.oldest=t.tagSupport.oldest||t,n.children.push(t),t.ownerTag=n,e.sideTag=n),e.template=r,F(t,e,r,o)}function W(t,e,r,n){const o=e.tag,s=e.clone||r;s.parentNode.insertBefore(r,s),e.clone&&e.clone.parentNode.removeChild(e.clone),delete e.tag;const a=n.counts.removed,i=o.destroy({stagger:a}).then((t=>n.counts.removed=a+t));delete e.tag;const u=I(t,r);return e.clone=u,i}function D(t,e,r,n,o){const s=[];if(!t.hasAttribute("end"))return s;const a=t.getAttribute("id");if(a?.substring(0,K.length)!==K)return s;const i=e[a];let l=o.forceElement;const p=i.subscribe((e=>{const{clones:o}=function(t,e,r,n,o){const s=function(t){return u(t)?$.tagComponent:c(t)?$.tag:L(t)?$.tagArray:$.value}(t),a=e,i=a.clone;if(s!==$.value&&i){const t=i.parentNode;r.removeAttribute("removedAt"),t.insertBefore(r,i),t.removeChild(i),delete a.clone}switch(s){case $.tag:return{clones:U(t,e,r,n,o)};case $.tagArray:return{clones:_(e,t,r,n,o)};case $.tagComponent:return{clones:N(t,e,r,n,o)}}return e.tag?{clones:[],promise:W(t,e,r,o)}:{clones:M(t,e,r,n)}}(e,i,t,r,{counts:n,forceElement:l});l&&(l=!1),o.push(...o),setTimeout((()=>{n.added=0,n.removed=0}),0)}));return r.cloneSubs.push(p),s}function I(t,e){const r=e.parentNode;void 0!==t&&!1!==t&&null!==t||(t="");const n=document.createTextNode(t);return r.insertBefore(n,e),r.removeChild(e),"TEMPLATE"===e.nodeName&&e.setAttribute("removedAt",Date.now().toString()),n}function J(t,e){t.getAttribute&&(e.forceElement||function(t,e){const r=t.oninit;if(!r)return;const n=r.tagFunction;if(!n)return;const o=n.tagFunction;o&&(o({target:t,stagger:e.added}),++e.added)}(t,e.counts),t.children&&new Array(...t.children).forEach((t=>J(t,e))))}!function(t){t.tag="tag",t.tagArray="tag-array",t.tagComponent="tag-component",t.value="value"}($||($={}));const X=new RegExp('\\s*<template interpolate end id="__tagvar(\\d{1,4})"([^>]*)></template>(\\s*)');function q(t,e,r,n,o){if(!o||"TEMPLATE"===t.tagName)return[];const s={added:0,removed:0},a=[],i=new Array(...o);return"TEXTAREA"===t.tagName&&G(t),i.forEach((t=>{const o=D(t,e,r,s,n);"TEXTAREA"===t.tagName&&G(t),a.push(...o),t.children&&new Array(...t.children).forEach((t=>{(function(t){return"TEMPLATE"===t.tagName&&void 0!==t.getAttribute("interpolate")&&void 0!==t.getAttribute("end")})(t)&&D(t,e,r,s,n);const o=q(t,e,r,n,t.children);a.push(...o)}))})),a}function G(t){const e=t.value;if(e.search(X)>=0){const r=e.match(/__tagvar(\d{1,4})/),n="{"+(r?r[0]:"")+"}";t.value="",t.setAttribute("textVarValue",n)}}function H(t,e,r,n,o){const s=[],a=r.interpolation,i=t.children[0].content.children;if(a.keys.length){const r=q(t,e,n,o,i);s.push(...r)}return A(t,e,n),Q(i,e,n),s}function Q(t,e,r){new Array(...t).forEach((t=>{A(t,e,r),t.children&&Q(t.children,e,r)}))}function z(t){const e=function(t){const e=[];return{string:t.replace(B,((t,r)=>{if(t.startsWith("<"))return t;const n=r.substring(1,r.length-1);return e.push(n),`<template interpolate end id="${n}"></template>`})),keys:e}}(t);return e.string=e.string.replace(et,K),e}function Z(t,e,r){delete e.tag,delete e.tagSupport,delete r.tagSupport,t.destroy()}const K="__tagvar",Y="--"+K+"--",tt=new RegExp(K,"g"),et=new RegExp(Y,"g");class rt{strings;values;isTag=!0;clones=[];cloneSubs=[];children=[];tagSupport;ownerTag;insertBefore;appElement;arrayValue;constructor(t,e){this.strings=t,this.values=e}beforeRedraw(){f(this.tagSupport,this)}afterRender(){d(this.tagSupport,this)}key(t){return this.arrayValue=t,this}async destroy(t={stagger:0,byParent:!1}){!!this.tagSupport&&function(t,e){p.tagUse.forEach((r=>r.beforeDestroy(t,e)))}(this.tagSupport,this),this.destroySubscriptions();const e=this.children.map((e=>e.destroy({...t,byParent:!0})));return t.byParent||(t.stagger=await this.destroyClones(t)),this.ownerTag&&(this.ownerTag.children=this.ownerTag.children.filter((t=>t!==this))),await Promise.all(e),t.stagger}destroySubscriptions(){this.cloneSubs.forEach((t=>t.unsubscribe())),this.cloneSubs.length=0}async destroyClones({stagger:t}={stagger:0}){const e=this.clones.reverse().map(((e,r)=>{let n=Promise.resolve();return e.ondestroy&&(n=function(t,e){const r=t.ondestroy;if(!r)return;const n=r.tagFunction;if(!n)return;const o=n.tagFunction;return o?o({target:t,stagger:e}):void 0}(e,t)),n.then((()=>{e.parentNode?.removeChild(e);const t=this.ownerTag;t&&(t.clones=t.clones.filter((t=>t!==e)))})),n}));return await Promise.all(e),t}updateByTag(t){this.updateConfig(t.strings,t.values),this.tagSupport.templater=t.tagSupport.templater}lastTemplateString=void 0;setSupport(t){this.tagSupport=t,this.tagSupport.mutatingRender=t.mutatingRender}updateConfig(t,e){this.strings=t,this.updateValues(e)}getTemplate(){const t=z(this.strings.map(((t,e)=>(t.replace(tt,Y)+(this.values.length>e?`{${K}${e}}`:"")).replace(/>\s*/g,">").replace(/\s*</g,"<"))).join(""));return this.lastTemplateString=t.string,{interpolation:t,string:t.string,strings:this.strings,values:this.values,context:this.tagSupport?.memory.context||{}}}isLikeTag(t){const{string:e}=t.getTemplate();if(e!==this.lastTemplateString||t.values.length!==this.values.length)return!1;const r=t.values.every(((t,e)=>{const r=this.values[e];if(t instanceof Function&&r instanceof Function)return!(t.toString()!==r.toString());const n=t;return!c(n)||!c(r)||(n.ownerTag=this,this.children.push(n),n.lastTemplateString||n.getTemplate().string,!!n.isLikeTag(r))}));return!!r}update(){return this.updateContext(this.tagSupport.memory.context)}updateValues(t){return this.values=t,this.updateContext(this.tagSupport.memory.context)}updateContext(t){return this.strings.map(((e,r)=>{const n=K+r,o=this.values.length>r,i=this.values[r],p=t[n];if(p)return function(t,e,r){const n=t.value,o=n?.tag,s=e,i=t,c=t;if(t.lastArray){if(L(e))return void _(t,e,i.template,r,{counts:{added:0,removed:0}});t.lastArray.forEach((({tag:t})=>t.destroy())),delete t.lastArray}if(u(s))return function(t,e,r,n){const o=e.tagSupport.props;let s=r.tag;if(!s)return T(e,r,t),void e.redraw();const i=s.tagSupport.templater.wrapper,u=e.wrapper;let c=!1;i&&u&&(c=i.original===u.original);const l=s.tagSupport;if(l.latestProps=o,l.latestClonedProps=e.tagSupport.clonedProps,c){const t=n?.tagSupport,e=a(t.props),r=t?.props;if(s&&l.hasPropChanges(r,e,o))return}else Z(s,r,n);T(e,r,t),l.templater=e;const p=e.redraw();r.value.tag=l.newest=p,c||(r.tag=p,n.tagSupport=e.tagSupport)}(r,s,c,n);const p=c.tag;if(p){L(e)&&(Z(p,c,n),delete c.tag);const r=p.tagSupport.templater.wrapper,s=e?.wrapper,a=r&&s&&r?.original===s?.original,i=e&&p.lastTemplateString===e.lastTemplateString,u=e&&e.getTemplate&&p.isLikeTag(e);if(i||u)return void U(e,t,t.template,p,{counts:{added:0,removed:0}});if(a)return function(t,e,r){const n=e.tagSupport,o=n.oldest;o.beforeRedraw();const s=t.wrapper();n.latestProps=s.tagSupport.props,n.latestClonedProps=s.tagSupport.clonedProps,n.memory=s.tagSupport.memory,s.setSupport(n),t.newest=s,n.newest=s,o.afterRender(),e.updateByTag(s),r.set(t)}(e,p,c);o&&(Z(p,c,n),delete c.tag)}e instanceof Function?c.set(v(e,r)):l(e)?c.set(e.value):c.set(e)}(p,i,this);!function(t,e,r,n,o){if(u(e))T(e,r[n]=new s(e),o);else if(e instanceof Function)r[n]=function(t,e){return new s(v(t,e))}(e,o);else if(t)c(e)?(e.ownerTag=o,o.children.push(e),r[n]=new s(e)):l(e)?r[n]=e:r[n]=new s(e)}(o,i,t,n,this)})),t}getAppElement(){let t=this;for(;t.ownerTag;)t=t.ownerTag;return t}rebuild(){const t=this.insertBefore;if(!t){const t=new Error("Cannot rebuild. Previous insertBefore element is not defined on tag");throw t.tag=this,t}this.buildBeforeElement(t,{forceElement:!0,counts:{added:0,removed:0}})}buildBeforeElement(t,e={forceElement:!1,counts:{added:0,removed:0}}){this.insertBefore=t;const r=this.update(),n=this.getTemplate(),o=document.createElement("div");o.id="tag-temp-holder",o.innerHTML=`<template tag-wrap="22">${n.string}</template>`;const s=H(o,r,n,this,{forceElement:e.forceElement});this.clones.length=0;const a=function(t,e){const r=[];let n=t.children[0].content.firstChild;for(;n;){const t=n.nextSibling;E(n,e),r.push(n),n=t}return r}(o,t);return this.clones.push(...a),s.length&&(this.clones=this.clones.filter((t=>!s.find((e=>e===t))))),this.clones.forEach((t=>J(t,e))),this.clones}}function nt(t,...e){return new rt(t,e)}const ot={},st={};function at(t){const{id:e,observer:r,tag:n}=t;r.disconnect(),n.destroy(),delete ot[e]}function it(t){return"__tagTemplate_"+function(t){let e=t.toString().replace(/\s+/g,"_").replace(/[^\w\d]/g,"_");return/^[a-zA-Z]/.test(e)||(e="fn_"+e),e}(t)}function ut(t){const e=t.getAttribute("props");if(!e)return{element:t};try{const r=JSON.parse(e),n=t.getAttribute("events");n&&n.split(",").map((t=>t.trim())).map((t=>{r[t]=e=>o(t,{detail:{[t]:e}})}));const o=function(e,r){const n=new CustomEvent(e,r);t.dispatchEvent(n)};return r}catch(r){throw console.warn("Failed to parse props on element",{element:t,propsString:e}),r}}function ct(t,e,r){const n=e.gateway;if(n)return n.updateTag(),n;const o=ut(e);try{const{tag:n}=vt(r,e,o);return function(t,e,r,n){let o=r;const s=new MutationObserver((t=>{if(function(t){const{element:e}=t;if(!document.body.contains(e))return at(t),!1}(i))for(const e of t)"attributes"===e.type&&a()}));function a(){const t=r.tagSupport.templater,n=t.tagSupport.props,s=ut(e);if(t.tagSupport.props=s,JSON.stringify(n)===JSON.stringify(s))return;t.tagSupport.latestProps=s;const a=S(o,t);i.tag=o=a.retag}dt(n);const i={id:t,tag:r,observer:s,component:n,element:e,updateTag:a};return ot[t]=ot[t]||[],ot[t].push(i),e.gateway=i,s.observe(e,{attributes:!0}),i}(t,e,n,r)}catch(t){throw console.warn("Failed to render component to element",{component:r,element:e,props:o}),t}}class lt extends HTMLElement{gateway;constructor(){super(),setTimeout((()=>this.gateway=function(t){const e=t.id||t.getAttribute("id");if(!e){const r="Cannot check a tag on element with no id attribute";throw console.warn(r,{id:e,element:t}),new Error(r)}const r=st[e];if(!r){const r=`Cannot find a tag registered by id of ${e}`;throw console.warn(r,{id:e,element:t}),new Error(r)}return ct(e,t,r)}(this)),0)}disconnectedCallback(){at(this.gateway)}}function pt(){customElements.define("tag-element",lt)}let gt=!1;function dt(t){if(!gt){try{pt()}catch(t){throw t}gt=!0}const e=it(t);return st[e]=t,e}const ft={},mt=function(t){const e=it(t);if(ft[e])return ft[e];let r,n=0;function o(){const n=function(t,e){return function(t,e,r){return e.forEach((e=>ct(t,e,r))),e}(t,document.querySelectorAll("#"+t),e)}(e,t);return n.length?(r&&clearInterval(r),delete ft[e],n.length):n.length}return o()?{id:e}:(r=setInterval((()=>{if(n+=5,n>=2e3)throw clearInterval(r),new Error(`TaggedJs Element ${e} not found`);o()}),5),ft[e]={id:e},ft[e])},ht=[];let yt=0;function bt(t){const e=function(e,r){const n=c(e),o=new m(e);let s=h(e,o);function a(){const t=(0,a.original)(o.tagSupport.props,r);return t.setSupport(o.tagSupport),t}return n&&(r=e,s=wt),a.original=t,o.tagged=!0,o.wrapper=a,o};return function(t,e){t.isTag=!0,t.original=e}(e,t),function(t){t.tags=ht,t.setUse=p,t.tagIndex=++yt}(t),ht.push(t),e}const wt=new class{},St=[];function vt(t,e,r){const n=St.findIndex((t=>t.element===e));n>=0&&(St[n].tag.destroy(),St.splice(n,1),console.warn("Found and destroyed app element already rendered to element",{element:e}));const o=function(t){const e=t.tagSupport;g(e,void 0);const r=t.wrapper();return r.tagSupport=e,r.afterRender(),{tag:r,tagSupport:e}}(t(r)),{tag:s,tagSupport:a}=o;s.appElement=e,function(t,e){let r;t.mutatingRender=()=>{e.beforeRedraw();const n=t.templater,o=r=n.wrapper();return t.latestProps=o.tagSupport.props,t.latestClonedProps=o.tagSupport.clonedProps,o.setSupport(t),e.afterRender(),e.updateByTag(o),t.newest=o,r}}(a,s);const i=document.createElement("template");return i.setAttribute("tag-detail","app-template-placeholder"),e.appendChild(i),s.buildBeforeElement(i),e.setUse=t.original.setUse,St.push({element:e,tag:s}),{tag:s,tags:t.original.tags}}function Tt(t){return p.memory.providerConfig.providers.find((e=>e.constructMethod===t))}p.memory.providerConfig={providers:[],currentTagSupport:void 0,ownerTag:void 0};const Et={create:t=>{const e=Tt(t);if(e)return e.clone=a(e.instance),e.instance;const r=t.constructor?new t:t();return p.memory.providerConfig.providers.push({constructMethod:t,instance:r,clone:a(r)}),r},inject:t=>{const e=Tt(t);if(e)return e.instance;const r=p.memory.providerConfig;let n={ownerTag:r.ownerTag};for(;n.ownerTag;){const e=n.ownerTag.tagSupport.memory.providers.find((e=>{if(e.constructMethod===t)return!0}));if(e)return e.clone=a(e.instance),r.providers.push(e),e.instance;n=n.ownerTag}const o=`Could not inject provider: ${t.name} ${t}`;throw console.warn(`${o}. Available providers`,r.providers),new Error(o)}};function Ct(t,e){const r=p.memory.providerConfig;r.currentTagSuport=t,r.ownerTag=e,t.memory.providers.length&&(r.providers.length=0,r.providers.push(...t.memory.providers))}function At(t){const e=p.memory.stateConfig;let r;const n=e.rearray[e.array.length];if(n){let t=Rt(n);r=e=>[t,t=e];const o={callback:r,lastValue:t,defaultValue:n.defaultValue};return e.array.push(o),e=>(o.callback=e||(e=>[t,t=e]),t)}let o=(t instanceof Function?t:()=>t)();r=t=>[o,o=t];const s={callback:r,lastValue:o,defaultValue:o};return e.array.push(s),t=>(s.callback=t||(t=>[o,o=t]),o)}function Rt(t){const e=t.callback;if(!e)return t.defaultValue;const r=e(Pt),[n]=r,[o]=e(n);if(o!==Pt)throw new Error('State property not used correctly.\n\nFor "let" state use `let name = state(default, x => [name, name = x])`\n\nFor "const" state use `const name = state(default)`\n\nProblem function:\n'+t+"\n");return n}p({beforeRender:(t,e)=>{Ct(t,e)},beforeRedraw:(t,e)=>{Ct(t,e.ownerTag)},afterRender:t=>{const e=p.memory.providerConfig;t.memory.providers=[...e.providers],e.providers.length=0}}),p.memory.stateConfig={array:[],rearray:[]},p({beforeRender:t=>xt(t),beforeRedraw:t=>xt(t),afterRender:(t,e)=>{const r=t.memory.state,n=p.memory.stateConfig;if(n.rearray.length&&n.rearray.length!==n.array.length){const e=`States lengths mismatched ${n.rearray.length} !== ${n.array.length}`;throw console.error(e,{oldStates:n.array,newStates:n.rearray,component:t.templater?.wrapper.original}),new Error(e)}n.rearray=[],r.newest=[...n.array],n.array=[]}});class Pt{}function xt(t){const e=t.memory.state,r=p.memory.stateConfig;if(r.rearray.length){const n="last array not cleared";throw console.error(n,{config:r,component:t.templater?.wrapper.original,state:e}),n}r.rearray=[],e?.newest.length&&r.rearray.push(...e.newest)}function jt(t){p.memory.initCurrentSupport=t}function kt(t){p.memory.initCurrentSupport?p.memory.initCurrentSupport.memory.init||(p.memory.initCurrentSupport.memory.init=t,t()):console.warn("possible init issue?")}let Vt;function Ot(t){Vt.memory||console.error("xxx",Vt),Vt.memory.destroyCallback=t}p({beforeRender:t=>jt(t),beforeRedraw:t=>jt(t)}),p({beforeRender:t=>Vt=t,beforeRedraw:t=>Vt=t,beforeDestroy:(t,e)=>{const r=t.memory.destroyCallback;r&&r()}});let Bt=()=>t=>()=>{throw new Error("The real callback function was called and that should never occur")};function Ft(t,e){t.forEach(((t,r)=>{const n=Rt(t),o=e[r].callback;o&&o(n),e[r].lastValue=n}))}function Nt(t){Bt=()=>{const e=p.memory.stateConfig.array;return r=>(...n)=>function(t,e,r,...n){const o=t.memory.state.newest;Ft(o,r);const s=e(...n);Ft(r,o),t.render(),s instanceof Promise&&s.finally((()=>{Ft(r,o),t.render()}))}(t,r,e,...n)}}p({beforeRender:t=>Nt(t),beforeRedraw:t=>Nt(t)});var _t=e.xQ,$t=e.Vp,Lt=e.fx,Mt=e.RN,Ut=e.er,Wt=e.dy,Dt=e.jW,It=e.SO,Jt=e.IT,Xt=e.SW,qt=e.js,Gt=e.ev,Ht=e.nc,Qt=e.a,zt=e._b,Zt=e.hs,Kt=e.lc,Yt=e.SB,te=e._q,ee=e.bX,re=e.Cc,ne=e.pJ;export{_t as Subject,$t as Tag,Lt as TagSupport,Mt as getCallback,Ut as getTagSupport,Wt as html,Dt as initWebComponents,It as interpolateElement,Jt as interpolateString,Xt as isTagComponent,qt as loadTagGateway,Gt as onDestroy,Ht as onInit,Qt as providers,zt as redrawTag,Zt as runBeforeRender,Kt as setUse,Yt as state,te as tag,ee as tagElement,re as tagGateway,ne as tags};
1
+ 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)},e={};function r(t){return n(t,new WeakMap)}function n(t,e){if(null===t||"object"!=typeof t)return t;if(e.has(t))return e.get(t);if(t instanceof Date)return new Date(t);if(t instanceof RegExp)return new RegExp(t);const r=Array.isArray(t)?[]:Object.create(Object.getPrototypeOf(t));if(e.set(t,r),Array.isArray(t))for(let o=0;o<t.length;o++)r[o]=n(t[o],e);else for(const o in t)t.hasOwnProperty(o)&&(r[o]=n(t[o],e));return r}function o(t,e){return s(t,e,new WeakMap)}function s(t,e,r){if(t===e)return!0;if("object"!=typeof t||"object"!=typeof e||null===t||null===e)return!1;const n=Object.keys(t),o=Object.keys(e);if(n.length!==o.length)return!1;if(r.has(t))return!0;r.set(t,0);for(const a of n)if(!o.includes(a)||!s(t[a],e[a],r)){if(t[a]instanceof Function&&e[a]instanceof Function&&t[a].toString()===e[a].toString())continue;return!1}if(Array.isArray(t)&&Array.isArray(e)){if(t.length!==e.length)return!1;for(let n=0;n<t.length;n++)if(!s(t[n],e[n],r))return!1}else if(Array.isArray(t)||Array.isArray(e))return!1;return!0}function a(t){return!0===t?.isTemplater}function i(t){return!0===t?.isTag}function u(t){return!(!0!==t?.isSubject&&!t?.subscribe)}function c(t){return t instanceof Array&&t.every((t=>i(t)))}function l(t){const e={beforeRender:t.beforeRender||(()=>{}),beforeRedraw:t.beforeRedraw||(()=>{}),afterRender:t.afterRender||(()=>{}),beforeDestroy:t.beforeDestroy||(()=>{})};l.tagUse.push(e)}function p(t,e){l.tagUse.forEach((r=>r.beforeRender(t,e)))}function g(t,e){l.tagUse.forEach((r=>r.afterRender(t,e)))}function d(t,e){l.tagUse.forEach((r=>r.beforeRedraw(t,e)))}t.d(e,{W9:()=>G,ei:()=>Y,B7:()=>A,vw:()=>yt,PC:()=>X,uX:()=>h,Ot:()=>R,eQ:()=>Dt,oM:()=>S,zC:()=>b,I1:()=>w,cF:()=>Ht,qy:()=>wt,xH:()=>Pt,u2:()=>ut,zl:()=>lt,_4:()=>u,iO:()=>c,mn:()=>a,Yn:()=>i,Ly:()=>Rt,sA:()=>Wt,MG:()=>It,r5:()=>Ot,iz:()=>T,vJ:()=>p,AI:()=>l,wk:()=>Bt,Tc:()=>F,Hf:()=>E,TY:()=>Vt,_A:()=>k}),l.tagUse=[],l.memory={};class f{tagged;wrapper;newest;oldest;tagSupport;constructor(t,e){this.tagSupport=new h(this,e,t)}redraw;isTemplater=!0;forceRenderTemplate(t,e){const r=this.wrapper();return r.setSupport(t),g(r.tagSupport,r),this.oldest=r,t.oldest=r,this.oldest=r,this.newest=r,r.ownerTag=e,r}renderWithSupport(t,e,r){++t.memory.renderCount;const n=e?.ownerTag||r;t.oldest?(t.props=t.latestProps,t.clonedProps=t.latestClonedProps,d(t,t.oldest)):(p(t,n),l.memory.providerConfig.ownerTag=n);const o=this,s=o.wrapper();t.latestProps=s.tagSupport.props,t.latestClonedProps=s.tagSupport.clonedProps,s.setSupport(t),g(t,s),o.newest=s,s.ownerTag=n;const a=t.oldest=t.oldest||s;t.newest=s;const i=a.tagSupport;return a.tagSupport=i||t,a.tagSupport.templater=o,e&&e.isLikeTag(s)?(a.updateByTag(s),{remit:!1,retag:s}):{remit:!0,retag:s}}}function m(t,e){const r=function(t,r){if("object"!=typeof t)return t;const n={...t};return Object.entries(n).forEach((([t,r])=>{n[t]=r instanceof Function?(...t)=>function(t,r){const n=t(...r);return e.newest?.ownerTag?.tagSupport.render(),n}(r,t):r})),n}(i(t)?0:t);return r}class h{templater;children;props;latestProps;latestClonedProps;lastClonedKidValues=[];clonedProps;memory={context:{},state:{newest:[]},providers:[],renderCount:0};constructor(t,e,n){this.templater=t,this.children=e,this.props=n,this.latestProps=n;const o=m(n,t);this.latestClonedProps=o,i(n)||(this.latestClonedProps=r(o)),this.clonedProps=this.latestClonedProps,this.lastClonedKidValues.length=0,e.value.forEach((t=>{const e=v(t.values);this.lastClonedKidValues.push(e)}))}oldest;newest;mutatingRender(){const t='Tag function "render()" was called in sync but can only be called async';throw console.error(t,{tagSupport:this}),new Error(t)}render(){return++this.memory.renderCount,this.mutatingRender()}renderExistingTag(t,e){const n=this.memory.renderCount;if(function(t){t.tagSupport.memory.providers.filter((t=>!o(t.instance,t.clone))).forEach((e=>{!function(t,e){y(t,e).forEach((({tag:t,renderCount:e,provider:n})=>{e===t.tagSupport.memory.renderCount&&(n.clone=r(n.instance),t.tagSupport.render())}))}(t.getAppElement(),e),e.clone=r(e.instance)}))}(t),n!==this.memory.renderCount)return!0;const s=w(t.tagSupport.templater.tagSupport,e.tagSupport);return this.newest=this.templater.redraw(),!s}}function y(t,e,r=[]){const n=t.tagSupport.memory.providers.find((t=>t.constructMethod===e.constructMethod));return n&&r.push({tag:t,renderCount:t.tagSupport.memory.renderCount,provider:n}),t.children.forEach((t=>y(t,e,r))),r}function w(t,e){const r=t.props;return!!b(e.props,t.latestClonedProps,r)||S(t,e)}function b(t,e,r){return!(void 0===t&&t===r||o(e,t))}function S(t,e){const r=t.lastClonedKidValues,n=e.lastClonedKidValues;return!r.every(((t,e)=>{const r=n[e];return t.every(((t,e)=>t===r[e]))}))}function v(t){return t.map((t=>{const e=t;if(i(e))return v(e.values);if(a(e)){const t=e;if(t.newest||t.oldest)throw 33;return r(t.tagSupport.latestClonedProps)}return c(e)?v(e):r(t)}))}function T(t,e,r){const n=t?.tagSupport||new h(e,e.tagSupport.children);return e.renderWithSupport(n,t,r)}const C=[];function E(t,e,r){const n=C.findIndex((t=>t.element===e));n>=0&&(C[n].tag.destroy(),C.splice(n,1),console.warn("Found and destroyed app element already rendered to element",{element:e}));const o=function(t){const e=t.tagSupport;p(e,void 0);const r=t.wrapper();return r.tagSupport=e,g(r.tagSupport,r),{tag:r,tagSupport:e}}(t(r)),{tag:s,tagSupport:a}=o;s.appElement=e,function(t,e){let r;t.mutatingRender=()=>{d(e.tagSupport,e);const n=t.templater,o=r=n.wrapper();return t.latestProps=o.tagSupport.props,t.latestClonedProps=o.tagSupport.clonedProps,o.setSupport(t),g(e.tagSupport,e),e.updateByTag(o),t.newest=o,r}}(a,s);const i=document.createElement("template");return i.setAttribute("tag-detail","app-template-placeholder"),e.appendChild(i),s.buildBeforeElement(i),e.setUse=t.original.setUse,C.push({element:e,tag:s}),{tag:s,tags:t.original.tags}}class A{isSubject=!0;subscribers=[];value;subscribe(t){this.subscribers.push(t),x.globalSubs.push(t),x.globalSubCount$.set(x.globalSubCount$.value+1);const e=()=>{e.unsubscribe()};return e.unsubscribe=()=>{P(this.subscribers,t),P(x.globalSubs,t),x.globalSubCount$.set(x.globalSubCount$.value-1),e.unsubscribe=()=>{}},e}set(t){this.value=t,this.subscribers.forEach((e=>{e.value=t,e(t)}))}next=this.set}function P(t,e){const r=t.indexOf(e);-1!==r&&t.splice(r,1)}const x=A;x.globalSubs=[],x.globalSubCount$=new A,x.globalSubCount$.set(0);class R extends A{value;constructor(t){super(),this.value=t}subscribe(t){const e=super.subscribe(t);return t(this.value),e}}function j(t,e){if(t.isChildOverride)return t;function r(r,n){return V(t,e,r,n)}return r.tagFunction=t,r}function V(t,e,r,n){const o=e.tagSupport.memory.renderCount,s=t.bind(r)(...n);if(o===e.tagSupport.memory.renderCount)return e.tagSupport.render(),s instanceof Promise?s.then((()=>e.tagSupport.render()&&"no-data-ever")):Promise.resolve(s).then((()=>"no-data-ever"))}const k=[];let O=0;function F(t){const e=function(e,r){const n=i(e)||c(e);n&&(r=e,e=void 0);const{childSubject:o,madeSubject:s}=function(t){if(u(t))return{childSubject:t,madeSubject:!1};if(c(t))return{childSubject:new R(t),madeSubject:!0};const e=t;return e?(e.arrayValue=0,{childSubject:new R([e]),madeSubject:!0}):{childSubject:new R([]),madeSubject:!0}}(r),a=new f(e,o);function l(){const t=(0,l.original)(a.tagSupport.props,o);return t.setSupport(a.tagSupport),s&&o.value.forEach((e=>{e.values.forEach(((r,n)=>{r instanceof Function&&(e.values[n].isChildOverride||(e.values[n]=function(...e){V(r,t.ownerTag,this,e)},e.values[n].isChildOverride=!0))}))})),t}return n||m(e,a),l.original=t,a.tagged=!0,a.wrapper=l,a};return function(t,e){t.isTag=!0,t.original=e}(e,t),function(t){t.tags=k,t.setUse=l,t.tagIndex=++O}(t),k.push(t),e}function B(t,e,r){t.redraw=()=>{const n=e.tag,{remit:o,retag:s}=T(n,t,r);if(e.tagSupport=s.tagSupport,o)return e.set(t),s}}function N(t,e){e.parentNode.insertBefore(t,e)}function _(t,e,r){const n=t.split(".");if("style"===n[0]&&(r.style[n[1]]=e),"class"===n[0])return n.shift(),void(e?n.forEach((t=>r.classList.add(t))):n.forEach((t=>r.classList.remove(t))))}function $(t,e,r){const n=t.getAttributeNames();"TEXTAREA"!==t.nodeName||n.includes("value")||L("textVarValue",t.getAttribute("textVarValue"),t,e,r,((e,r)=>t.value=r));const o=(e,r)=>{t.setAttribute(e,r)};n.forEach((n=>{L(n,t.getAttribute(n),t,e,r,o)}))}function M(t){return t.search(/^(class|style)(\.)/)>=0}function L(t,e,r,n,o,s){if(W(e))return function(t,e,r,n,o,s){return z(t,D(n,e),r,o,s)}(t,e,r,n,o,s);if(W(t)){let e;const a=D(n,t).subscribe((t=>{!function(t,e,r,n,o){if(e&&e!=t&&("string"==typeof e?r.removeAttribute(e):e instanceof Object&&Object.entries(e).forEach((([t])=>r.removeAttribute(t)))),"string"!=typeof t)t instanceof Object&&Object.entries(t).forEach((([t,e])=>z(t,e,r,n,o)));else{if(!t.length)return;z(t,"",r,n,o)}}(t,e,r,o,s),e=t}));return o.cloneSubs.push(a),void r.removeAttribute(t)}return M(t)?_(t,e,r):void 0}new class{};const I=/^\s*{__tagvar/,U=/}\s*$/;function W(t){return t&&t.search(I)>=0&&t.search(U)>=0}function D(t,e){return t[e.replace("{","").split("").reverse().join("").replace("}","").split("").reverse().join("")]}function z(t,e,r,n,o){const s=M(t);if(e instanceof Function){const n=function(...t){return e(r,t)};r[t].action=n}if(u(e)){r.removeAttribute(t);const a=e=>function(t,e,r,n,o){if(t instanceof Function)return e[r]=function(...r){return t(e,r)},void(e[r].tagFunction=t);if(n)return void _(r,t,e);if(t)return void o(r,t);void 0===t||!1===t||null===t?e.removeAttribute(r):o(r,t)}(e,r,t,s,o),i=e.subscribe(a);n.cloneSubs.push(i)}else o(t,e)}const K=/(?:<[^>]*?(?:(?:\s+\w+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^>\s]+)))*\s*)\/?>)|({__tagvar[^}]+})/g;function H(t,e,r,{index:n,counts:o,forceElement:s}){if(void 0!==n){const a=e.lastArray,i=a[n];if(i?.tag.isLikeTag(t))return i.tag.updateByTag(t),[];a.push({tag:t,index:n});const u=r;return t.buildBeforeElement(u,{counts:o,forceElement:s})}const a=e,i=a.tag;if(i&&!s&&i.isLikeTag(t)){if(e instanceof Function){const t=e(i.tagSupport);return i.updateByTag(t),[]}return i.updateByTag(t),[]}const u=t.buildBeforeElement(r,{counts:o,forceElement:s});return a.tag=t,u}function J(t,e,r,n,o){if(!0!==t.tagged){let e=t.wrapper.original.name||t.wrapper.original.constructor?.name;"Function"===e&&(e=void 0);const r=e||t.wrapper.original.toString().substring(0,120);throw new Error(`Not a tag component. Wrap your function with tag(). Example tag(props => html\`\`) on component:\n\n${r}\n\n`)}const s=t,a=t.tagSupport;a.mutatingRender=()=>e.tag&&a.renderExistingTag(e.tag,s)?e.tag:a.newest=n.tagSupport.render();let i=s.newest;return l.memory.providerConfig.ownerTag=n,(!i||o.forceElement)&&(i?d(i.tagSupport,i):p(a,n),i=s.forceRenderTemplate(a,n)),n.children.push(i),a.latestProps=i.tagSupport.props,a.latestClonedProps=i.tagSupport.clonedProps,a.memory=i.tagSupport.memory,i.setSupport(a),H(i,e,r,o)}class X extends Error{details;constructor(t,e,r={}){super(t),this.name=X.name,this.details={...r,errorCode:e}}}class G extends X{constructor(t,e){super(t,"array-no-key-error",e),this.name=G.name}}class Y extends X{constructor(t,e){super(t,"state-mismatch-error",e),this.name=Y.name}}function q(t,e,r,n,o){const s=[];t.lastArray=t.lastArray||[],t.template=r;let a=0;t.lastArray=t.lastArray.filter(((r,n)=>{const s=e.length-1<n-a,i=e[n-a],u=i?.arrayValue;return!s&&u===r.tag.arrayValue||(t.lastArray[n].tag.destroy({stagger:o.counts.removed,byParent:!1}),++a,++o.counts.removed,!1)}));const i=r||r.clone;return e.forEach(((r,a)=>{r.tagSupport=new h({},new R([])),r.tagSupport.mutatingRender=()=>(n.tagSupport.render(),r),r.ownerTag=n,n.children.push(r);const u=r.arrayValue;if(u?.isArrayValueNeverSet){const t={template:r.getTemplate().string,array:e,ownerTagContent:n.lastTemplateString},o="Use html`...`.key(item) instead of html`...` to template an Array";throw console.error(o,t),new G(o,t)}const c=t.lastArray[a];if(c)return c.tag.arrayValue===r.arrayValue&&c.tag.updateValues(r.values),[];const l=H(r,t,i,{index:a,...o});s.push(...l)})),s}var Q;function Z(t,e,r,n){const o=e.clone||r,s=nt(t,o);e.clone=s;const a=[],i=n.clones.indexOf(o);return i>=0&&!n.clones.includes(s)&&!o.parentNode&&(n.clones.splice(i,1),n.clones.push(s),a.push(s)),a}function tt(t,e,r,n,o){return t.tagSupport||(t.tagSupport=new h({},new R([])),t.tagSupport.mutatingRender=n.tagSupport.mutatingRender,t.tagSupport.oldest=t.tagSupport.oldest||t,n.children.push(t),t.ownerTag=n,e.sideTag=n),e.template=r,H(t,e,r,o)}function et(t,e,r,n){const o=e.tag,s=e.clone||r;s.parentNode.insertBefore(r,s),e.clone&&e.clone.parentNode.removeChild(e.clone),delete e.tag;const a=n.counts.removed,i=o.destroy({stagger:a}).then((t=>n.counts.removed=a+t));delete e.tag;const u=nt(t,r);return e.clone=u,i}function rt(t,e,r,n,o){const s=[];if(!t.hasAttribute("end"))return s;const u=t.getAttribute("id");if(u?.substring(0,gt.length)!==gt)return s;const l=e[u];let p=o.forceElement;const g=l.subscribe((e=>{const{clones:o}=function(t,e,r,n,o){const s=function(t){return a(t)?Q.tagComponent:i(t)?Q.tag:c(t)?Q.tagArray:Q.value}(t),u=e,l=u.clone;if(s!==Q.value&&l){const t=l.parentNode;r.removeAttribute("removedAt"),t.insertBefore(r,l),t.removeChild(l),delete u.clone}switch(s){case Q.tag:return{clones:tt(t,e,r,n,o)};case Q.tagArray:return{clones:q(e,t,r,n,o)};case Q.tagComponent:return{clones:J(t,e,r,n,o)}}return e.tag?{clones:[],promise:et(t,e,r,o)}:{clones:Z(t,e,r,n)}}(e,l,t,r,{counts:n,forceElement:p});p&&(p=!1),o.push(...o),setTimeout((()=>{n.added=0,n.removed=0}),0)}));return r.cloneSubs.push(g),s}function nt(t,e){const r=e.parentNode;void 0!==t&&!1!==t&&null!==t||(t="");const n=document.createTextNode(t);return r.insertBefore(n,e),r.removeChild(e),"TEMPLATE"===e.nodeName&&e.setAttribute("removedAt",Date.now().toString()),n}function ot(t,e){t.getAttribute&&(e.forceElement||function(t,e){const r=t.oninit;if(!r)return;const n=r.tagFunction;if(!n)return;const o=n.tagFunction;o&&(o({target:t,stagger:e.added}),++e.added)}(t,e.counts),t.children&&new Array(...t.children).forEach((t=>ot(t,e))))}!function(t){t.tag="tag",t.tagArray="tag-array",t.tagComponent="tag-component",t.value="value"}(Q||(Q={}));const st=new RegExp('\\s*<template interpolate end id="__tagvar(\\d{1,4})"([^>]*)></template>(\\s*)');function at(t,e,r,n,o){if(!o||"TEMPLATE"===t.tagName)return[];const s={added:0,removed:0},a=[],i=new Array(...o);return"TEXTAREA"===t.tagName&&it(t),i.forEach((t=>{const o=rt(t,e,r,s,n);"TEXTAREA"===t.tagName&&it(t),a.push(...o),t.children&&new Array(...t.children).forEach((t=>{(function(t){return"TEMPLATE"===t.tagName&&void 0!==t.getAttribute("interpolate")&&void 0!==t.getAttribute("end")})(t)&&rt(t,e,r,s,n);const o=at(t,e,r,n,t.children);a.push(...o)}))})),a}function it(t){const e=t.value;if(e.search(st)>=0){const r=e.match(/__tagvar(\d{1,4})/),n="{"+(r?r[0]:"")+"}";t.value="",t.setAttribute("textVarValue",n)}}function ut(t,e,r,n,o){const s=[],a=r.interpolation,i=t.children[0].content.children;if(a.keys.length){const r=at(t,e,n,o,i);s.push(...r)}return $(t,e,n),ct(i,e,n),s}function ct(t,e,r){new Array(...t).forEach((t=>{$(t,e,r),t.children&&ct(t.children,e,r)}))}function lt(t){const e=function(t){const e=[];return{string:t.replace(K,((t,r)=>{if(t.startsWith("<"))return t;const n=r.substring(1,r.length-1);return e.push(n),`<template interpolate end id="${n}"></template>`})),keys:e}}(t);return e.string=e.string.replace(mt,gt),e}function pt(t,e,r){delete e.tag,delete e.tagSupport,delete r.tagSupport,t.destroy()}const gt="__tagvar",dt="--"+gt+"--",ft=new RegExp(gt,"g"),mt=new RegExp(dt,"g");class ht{isArrayValueNeverSet=!0}class yt{strings;values;isTag=!0;clones=[];cloneSubs=[];children=[];tagSupport;ownerTag;insertBefore;appElement;arrayValue=new ht;constructor(t,e){this.strings=t,this.values=e}key(t){return this.arrayValue=t,this}async destroy(t={stagger:0,byParent:!1}){!!this.tagSupport&&function(t,e){l.tagUse.forEach((r=>r.beforeDestroy(t,e)))}(this.tagSupport,this),this.destroySubscriptions();const e=this.children.map((e=>e.destroy({...t,byParent:!0})));return t.byParent||(t.stagger=await this.destroyClones(t)),this.ownerTag&&(this.ownerTag.children=this.ownerTag.children.filter((t=>t!==this))),await Promise.all(e),t.stagger}destroySubscriptions(){this.cloneSubs.forEach((t=>t.unsubscribe())),this.cloneSubs.length=0}async destroyClones({stagger:t}={stagger:0}){const e=this.clones.reverse().map(((e,r)=>{let n=Promise.resolve();return e.ondestroy&&(n=function(t,e){const r=t.ondestroy;if(!r)return;const n=r.tagFunction;if(!n)return;const o=n.tagFunction;return o?o({target:t,stagger:e}):void 0}(e,t)),n.then((()=>{e.parentNode?.removeChild(e);const t=this.ownerTag;t&&(t.clones=t.clones.filter((t=>t!==e)))})),n}));return await Promise.all(e),t}updateByTag(t){this.updateConfig(t.strings,t.values),this.tagSupport.templater=t.tagSupport.templater}lastTemplateString=void 0;setSupport(t){this.tagSupport=t,this.tagSupport.mutatingRender=t.mutatingRender}updateConfig(t,e){this.strings=t,this.updateValues(e)}getTemplate(){const t=lt(this.strings.map(((t,e)=>(t.replace(ft,dt)+(this.values.length>e?`{${gt}${e}}`:"")).replace(/>\s*/g,">").replace(/\s*</g,"<"))).join(""));return this.lastTemplateString=t.string,{interpolation:t,string:t.string,strings:this.strings,values:this.values,context:this.tagSupport?.memory.context||{}}}isLikeTag(t){const{string:e}=t.getTemplate();if(e!==this.lastTemplateString||t.values.length!==this.values.length)return!1;const r=t.values.every(((t,e)=>{const r=this.values[e];if(t instanceof Function&&r instanceof Function)return!(t.toString()!==r.toString());const n=t;return!i(n)||!i(r)||(console.log("🎃"),n.ownerTag=this,this.children.push(n),n.lastTemplateString||n.getTemplate().string,!!n.isLikeTag(r))}));return!!r}update(){return this.updateContext(this.tagSupport.memory.context)}updateValues(t){return this.values=t,this.updateContext(this.tagSupport.memory.context)}updateContext(t){return this.strings.map(((e,n)=>{const o=gt+n,s=this.values.length>n,l=this.values[n],p=t[o];if(p)return function(t,e,n){const o=t.value,s=o?.tag,l=e,p=t,f=t;if(t.lastArray){if(c(e))return void q(t,e,p.template,n,{counts:{added:0,removed:0}});t.lastArray.forEach((({tag:t})=>t.destroy())),delete t.lastArray}if(a(l))return function(t,e,n,o){let s=n.tag;if(!s)return B(e,n,t),void e.redraw();const a=s.tagSupport.templater.wrapper,u=e.wrapper;let c=!1;a&&u&&(c=a.original===u.original);const l=e.tagSupport.props,p=s.tagSupport;if(p.latestProps=l,c){const t=o?.tagSupport;let n=t.props;if(i(t.props)||(n=r(t.props)),s&&!w(p,e.tagSupport))return}else pt(s,n,o);B(e,n,t),p.templater=e;const g=e.redraw();n.value.tag=p.newest=g,p.latestClonedProps=e.tagSupport.clonedProps,c||(n.tag=g,o.tagSupport=e.tagSupport)}(n,l,f,o);const m=f.tag;if(m){c(e)&&(pt(m,f,o),delete f.tag);const r=m.tagSupport.templater.wrapper,n=e?.wrapper,a=r&&n&&r?.original===n?.original,i=e&&m.lastTemplateString===e.lastTemplateString,u=e&&e.getTemplate&&m.isLikeTag(e);if(i||u)return void tt(e,t,t.template,m,{counts:{added:0,removed:0}});if(a)return function(t,e,r){const n=e.tagSupport,o=n.oldest;d(o.tagSupport,o);const s=t.wrapper();n.latestProps=s.tagSupport.props,n.latestClonedProps=s.tagSupport.clonedProps,n.memory=s.tagSupport.memory,s.setSupport(n),t.newest=s,n.newest=s,g(o.tagSupport,o),e.updateByTag(s),r.set(t)}(e,m,f);s&&(pt(m,f,o),delete f.tag)}e instanceof Function?f.set(j(e,n)):u(e)?f.set(e.value):f.set(e)}(p,l,this);!function(t,e,r,n,o){if(a(e))B(e,r[n]=new R(e),o);else if(e instanceof Function)r[n]=function(t,e){return new R(j(t,e))}(e,o);else if(t)i(e)?(e.ownerTag=o,o.children.push(e),r[n]=new R(e)):u(e)?r[n]=e:r[n]=new R(e)}(s,l,t,o,this)})),t}getAppElement(){let t=this;for(;t.ownerTag;)t=t.ownerTag;return t}rebuild(){const t=this.insertBefore;if(!t){const t=new Error("Cannot rebuild. Previous insertBefore element is not defined on tag");throw t.tag=this,t}this.buildBeforeElement(t,{forceElement:!0,counts:{added:0,removed:0}})}buildBeforeElement(t,e={forceElement:!1,counts:{added:0,removed:0}}){this.insertBefore=t;const r=this.update(),n=this.getTemplate(),o=document.createElement("div");o.id="tag-temp-holder",o.innerHTML=`<template tag-wrap="22">${n.string}</template>`;const s=ut(o,r,n,this,{forceElement:e.forceElement});this.clones.length=0;const a=function(t,e){const r=[];let n=t.children[0].content.firstChild;for(;n;){const t=n.nextSibling;N(n,e),r.push(n),n=t}return r}(o,t);return this.clones.push(...a),s.length&&(this.clones=this.clones.filter((t=>!s.find((e=>e===t))))),this.clones.forEach((t=>ot(t,e))),this.clones}}function wt(t,...e){return new yt(t,e)}const bt={},St={};function vt(t){const{id:e,observer:r,tag:n}=t;r.disconnect(),n.destroy(),delete bt[e]}function Tt(t){return"__tagTemplate_"+function(t){let e=t.toString().replace(/\s+/g,"_").replace(/[^\w\d]/g,"_");return/^[a-zA-Z]/.test(e)||(e="fn_"+e),e}(t)}function Ct(t){const e=t.getAttribute("props");if(!e)return{element:t};try{const r=JSON.parse(e),n=t.getAttribute("events");n&&n.split(",").map((t=>t.trim())).map((t=>{r[t]=e=>o(t,{detail:{[t]:e}})}));const o=function(e,r){const n=new CustomEvent(e,r);t.dispatchEvent(n)};return r}catch(r){throw console.warn("Failed to parse props on element",{element:t,propsString:e}),r}}function Et(t,e,r){const n=e.gateway;if(n)return console.log("drawing existing gateway ====="),n.updateTag(),n;const o=Ct(e);try{console.log("tagging element ***");const{tag:n}=E(r,e,o);return function(t,e,r,n){const o=new MutationObserver((t=>{if(function(t){const{element:e}=t;if(!document.body.contains(e))return vt(t),!1}(a))for(const e of t)"attributes"===e.type&&(console.log("attributes changed"),s())}));function s(){const t=r.tagSupport.templater,n=t.tagSupport.props,o=Ct(e);t.tagSupport.props=o,JSON.stringify(n)===JSON.stringify(o)||(t.tagSupport.latestProps=o)}Rt(n);const a={id:t,tag:r,observer:o,component:n,element:e,updateTag:s};return bt[t]=bt[t]||[],bt[t].push(a),e.gateway=a,o.observe(e,{attributes:!0}),a}(t,e,n,r)}catch(t){throw console.warn("Failed to render component to element",{component:r,element:e,props:o}),t}}class At extends HTMLElement{gateway;constructor(){super(),setTimeout((()=>this.gateway=function(t){const e=t.id||t.getAttribute("id");if(!e){const r="Cannot check a tag on element with no id attribute";throw console.warn(r,{id:e,element:t}),new Error(r)}const r=St[e];if(!r){const r=`Cannot find a tag registered by id of ${e}`;throw console.warn(r,{id:e,element:t}),new Error(r)}return Et(e,t,r)}(this)),0)}disconnectedCallback(){vt(this.gateway)}}function Pt(){customElements.define("tag-element",At)}let xt=!1;function Rt(t){if(!xt){try{Pt()}catch(t){throw t}xt=!0}const e=Tt(t);return St[e]=t,e}const jt={},Vt=function(t){const e=Tt(t);if(jt[e])return jt[e];let r,n=0;function o(){const n=function(t,e){return function(t,e,r){return e.forEach((e=>Et(t,e,r))),e}(t,document.querySelectorAll("#"+t),e)}(e,t);return n.length?(r&&clearInterval(r),delete jt[e],n.length):n.length}return o()?{id:e}:(r=setInterval((()=>{if(n+=5,n>=2e3)throw clearInterval(r),new Error(`TaggedJs Element ${e} not found`);o()}),5),jt[e]={id:e},jt[e])};function kt(t){return l.memory.providerConfig.providers.find((e=>e.constructMethod===t))}l.memory.providerConfig={providers:[],currentTagSupport:void 0,ownerTag:void 0};const Ot={create:t=>{const e=kt(t);if(e)return e.clone=r(e.instance),e.instance;const n=t.constructor?new t:t();return l.memory.providerConfig.providers.push({constructMethod:t,instance:n,clone:r(n)}),n},inject:t=>{const e=kt(t);if(e)return e.instance;const n=l.memory.providerConfig;let o={ownerTag:n.ownerTag};for(;o.ownerTag;){const e=o.ownerTag.tagSupport.memory.providers.find((e=>{if(e.constructMethod===t)return!0}));if(e)return e.clone=r(e.instance),n.providers.push(e),e.instance;o=o.ownerTag}const s=`Could not inject provider: ${t.name} ${t}`;throw console.warn(`${s}. Available providers`,n.providers),new Error(s)}};function Ft(t,e){const r=l.memory.providerConfig;r.currentTagSuport=t,r.ownerTag=e,t.memory.providers.length&&(r.providers.length=0,r.providers.push(...t.memory.providers))}function Bt(t){const e=l.memory.stateConfig;let r;const n=e.rearray[e.array.length];if(n){let t=_t(n);r=e=>[t,t=e];const o={callback:r,lastValue:t,defaultValue:n.defaultValue};return e.array.push(o),e=>(o.callback=e||(e=>[t,t=e]),t)}let o=(t instanceof Function?t:()=>t)();r=t=>[o,o=t];const s={callback:r,lastValue:o,defaultValue:o};return e.array.push(s),t=>(s.callback=t||(t=>[o,o=t]),o)}l({beforeRender:(t,e)=>{Ft(t,e)},beforeRedraw:(t,e)=>{Ft(t,e.ownerTag)},afterRender:t=>{const e=l.memory.providerConfig;t.memory.providers=[...e.providers],e.providers.length=0}}),l.memory.stateConfig={array:[],rearray:[]};const Nt=[];function _t(t){const e=t.callback;if(!e)return t.defaultValue;const r=e($t),[n]=r,[o]=e(n);if(o!==$t)throw new Error('State property not used correctly.\n\nFor "let" state use `let name = state(default, x => [name, name = x])`\n\nFor "const" state use `const name = state(default)`\n\nProblem function:\n'+t+"\n");return n}l({beforeRender:t=>Mt(t),beforeRedraw:t=>Mt(t),afterRender:(t,e)=>{const r=t.memory.state,n=l.memory.stateConfig;if(n.rearray.length&&n.rearray.length!==n.array.length){const e=`States lengths mismatched ${n.rearray.length} !== ${n.array.length}`;throw new Y(e,{oldStates:n.array,newStates:n.rearray,component:t.templater?.wrapper.original})}n.rearray=[],r.newest=[...n.array],n.array=[],Nt.forEach((t=>t())),Nt.length=0}});class $t{}function Mt(t){const e=t.memory.state,r=l.memory.stateConfig;if(r.rearray.length){const n="last array not cleared";throw console.error(n,{config:r,component:t.templater?.wrapper.original,state:e,expectedClearArray:r.rearray}),new Y(n,{config:r,component:t.templater?.wrapper.original,state:e,expectedClearArray:r.rearray})}r.rearray=[],e?.newest.length&&r.rearray.push(...e.newest)}function Lt(t){l.memory.initCurrentSupport=t}function It(t){l.memory.initCurrentSupport?l.memory.initCurrentSupport.memory.init||(l.memory.initCurrentSupport.memory.init=t,t()):console.warn("possible init issue?")}let Ut;function Wt(t){Ut.memory||console.error("xxx",Ut),Ut.memory.destroyCallback=t}l({beforeRender:t=>Lt(t),beforeRedraw:t=>Lt(t)}),l({beforeRender:t=>Ut=t,beforeRedraw:t=>Ut=t,beforeDestroy:(t,e)=>{const r=t.memory.destroyCallback;r&&r()}});let Dt=()=>t=>()=>{throw new Error("The real callback function was called and that should never occur")};function zt(t,e){t.forEach(((t,r)=>{const n=_t(t),o=e[r].callback;o&&o(n),e[r].lastValue=n}))}function Kt(t){Dt=()=>{const e=l.memory.stateConfig.array;return r=>(...n)=>function(t,e,r,...n){const o=t.memory.state.newest;zt(o,r);const s=e(...n);zt(r,o),t.render(),s instanceof Promise&&s.finally((()=>{zt(r,o),t.render()}))}(t,r,e,...n)}}l({beforeRender:t=>Kt(t),beforeRedraw:t=>Kt(t)});const Ht={tagElement:E,redrawTag:T};var Jt=e.W9,Xt=e.ei,Gt=e.B7,Yt=e.vw,qt=e.PC,Qt=e.uX,Zt=e.Ot,te=e.eQ,ee=e.oM,re=e.zC,ne=e.I1,oe=e.cF,se=e.qy,ae=e.xH,ie=e.u2,ue=e.zl,ce=e._4,le=e.iO,pe=e.mn,ge=e.Yn,de=e.Ly,fe=e.sA,me=e.MG,he=e.r5,ye=e.iz,we=e.vJ,be=e.AI,Se=e.wk,ve=e.Tc,Te=e.Hf,Ce=e.TY,Ee=e._A;export{Jt as ArrayNoKeyError,Xt as StateMismatchError,Gt as Subject,Yt as Tag,qt as TagError,Qt as TagSupport,Zt as ValueSubject,te as getCallback,ee as hasKidsChanged,re as hasPropChanges,ne as hasTagSupportChanged,oe as hmr,se as html,ae as initWebComponents,ie as interpolateElement,ue as interpolateString,ce as isSubjectInstance,le as isTagArray,pe as isTagComponent,ge as isTagInstance,de as loadTagGateway,fe as onDestroy,me as onInit,he as providers,ye as redrawTag,we as runBeforeRender,be as setUse,Se as state,ve as tag,Te as tagElement,Ce as tagGateway,Ee as tags};
@@ -0,0 +1,7 @@
1
+ export declare class CustomError extends Error {
2
+ details: {
3
+ errorCode: number;
4
+ additionalInfo: string;
5
+ };
6
+ constructor(message: string, errorCode: number, additionalInfo: string);
7
+ }
@@ -0,0 +1,9 @@
1
+ export class CustomError extends Error {
2
+ details;
3
+ constructor(message, errorCode, additionalInfo) {
4
+ super(message);
5
+ this.name = 'CustomError';
6
+ this.details = { errorCode, additionalInfo };
7
+ }
8
+ }
9
+ //# sourceMappingURL=CustomError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CustomError.js","sourceRoot":"","sources":["../ts/CustomError.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,WAAY,SAAQ,KAAK;IACpC,OAAO,CAGL;IAEF,YAAY,OAAe,EAAE,SAAiB,EAAE,cAAsB;QACpE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC;IAC/C,CAAC;CACF"}
package/js/Errors.d.ts ADDED
@@ -0,0 +1,14 @@
1
+ export type TagErrorDetails = Record<string, unknown>;
2
+ export type TagErrorFullDetails = Record<string, unknown> & {
3
+ errorCode: string;
4
+ };
5
+ export declare class TagError extends Error {
6
+ details: TagErrorFullDetails;
7
+ constructor(message: string, errorCode: string, details?: Record<string, unknown>);
8
+ }
9
+ export declare class ArrayNoKeyError extends TagError {
10
+ constructor(message: string, details?: TagErrorDetails);
11
+ }
12
+ export declare class StateMismatchError extends TagError {
13
+ constructor(message: string, details?: TagErrorDetails);
14
+ }
package/js/Errors.js ADDED
@@ -0,0 +1,21 @@
1
+ export class TagError extends Error {
2
+ details;
3
+ constructor(message, errorCode, details = {}) {
4
+ super(message);
5
+ this.name = TagError.name;
6
+ this.details = { ...details, errorCode };
7
+ }
8
+ }
9
+ export class ArrayNoKeyError extends TagError {
10
+ constructor(message, details) {
11
+ super(message, 'array-no-key-error', details);
12
+ this.name = ArrayNoKeyError.name;
13
+ }
14
+ }
15
+ export class StateMismatchError extends TagError {
16
+ constructor(message, details) {
17
+ super(message, 'state-mismatch-error', details);
18
+ this.name = StateMismatchError.name;
19
+ }
20
+ }
21
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../ts/errors.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,QAAS,SAAQ,KAAK;IACjC,OAAO,CAAqB;IAE5B,YACE,OAAe,EACf,SAAiB,EACjB,UAAmC,EAAE;QAErC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,EAAC,GAAG,OAAO,EAAE,SAAS,EAAC,CAAA;IACxC,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,QAAQ;IAC3C,YAAY,OAAe,EAAE,OAAyB;QACpD,KAAK,CAAC,OAAO,EAAE,oBAAoB,EAAE,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC;IACnC,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,QAAQ;IAC9C,YAAY,OAAe,EAAE,OAAyB;QACpD,KAAK,CAAC,OAAO,EAAE,sBAAsB,EAAE,OAAO,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC;IACtC,CAAC;CACF"}
@@ -0,0 +1,14 @@
1
+ export type TagErrorDetails = Record<string, unknown>;
2
+ export type TagErrorFullDetails = Record<string, unknown> & {
3
+ errorCode: string;
4
+ };
5
+ export declare class TagError extends Error {
6
+ details: TagErrorFullDetails;
7
+ constructor(message: string, errorCode: string, details?: Record<string, unknown>);
8
+ }
9
+ export declare class ArrayNoKeyError extends TagError {
10
+ constructor(message: string, details?: TagErrorDetails);
11
+ }
12
+ export declare class StateMismatchError extends TagError {
13
+ constructor(message: string, details?: TagErrorDetails);
14
+ }
package/js/Errors2.js ADDED
@@ -0,0 +1,21 @@
1
+ export class TagError extends Error {
2
+ details;
3
+ constructor(message, errorCode, details = {}) {
4
+ super(message);
5
+ this.name = TagError.name;
6
+ this.details = { ...details, errorCode };
7
+ }
8
+ }
9
+ export class ArrayNoKeyError extends TagError {
10
+ constructor(message, details) {
11
+ super(message, 'array-no-key-error', details);
12
+ this.name = ArrayNoKeyError.name;
13
+ }
14
+ }
15
+ export class StateMismatchError extends TagError {
16
+ constructor(message, details) {
17
+ super(message, 'state-mismatch-error', details);
18
+ this.name = StateMismatchError.name;
19
+ }
20
+ }
21
+ //# sourceMappingURL=Errors2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Errors2.js","sourceRoot":"","sources":["../ts/Errors2.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,QAAS,SAAQ,KAAK;IACjC,OAAO,CAAqB;IAE5B,YACE,OAAe,EACf,SAAiB,EACjB,UAAmC,EAAE;QAErC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,EAAC,GAAG,OAAO,EAAE,SAAS,EAAC,CAAA;IACxC,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,QAAQ;IAC3C,YAAY,OAAe,EAAE,OAAyB;QACpD,KAAK,CAAC,OAAO,EAAE,oBAAoB,EAAE,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC;IACnC,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,QAAQ;IAC9C,YAAY,OAAe,EAAE,OAAyB;QACpD,KAAK,CAAC,OAAO,EAAE,sBAAsB,EAAE,OAAO,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC;IACtC,CAAC;CACF"}
package/js/Subject.d.ts CHANGED
@@ -3,7 +3,7 @@ export type Subscription = (() => void) & {
3
3
  };
4
4
  type Subscriber = (value?: any) => any;
5
5
  export interface SubjectLike {
6
- subscribe: (callback: (value?: any) => any) => any;
6
+ subscribe?: (callback: (value?: any) => any) => any;
7
7
  isSubject?: boolean;
8
8
  }
9
9
  export declare class Subject<T> implements SubjectLike {
package/js/Tag.class.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { TagSupport } from "./getTagSupport.js";
1
+ import { TagSupport } from "./TagSupport.class.js";
2
2
  import { Provider } from "./providers.js";
3
3
  import { Subscription } from "./Subject.js";
4
4
  import { Counts } from "./interpolateTemplate.js";
@@ -22,6 +22,9 @@ export interface TagTemplate {
22
22
  values: unknown[];
23
23
  context: Context;
24
24
  }
25
+ export declare class ArrayValueNeverSet {
26
+ isArrayValueNeverSet: boolean;
27
+ }
25
28
  export declare class Tag {
26
29
  strings: string[];
27
30
  values: any[];
@@ -33,10 +36,8 @@ export declare class Tag {
33
36
  ownerTag?: Tag;
34
37
  insertBefore?: Element;
35
38
  appElement?: Element;
36
- arrayValue?: unknown;
39
+ arrayValue: unknown | ArrayValueNeverSet;
37
40
  constructor(strings: string[], values: any[]);
38
- beforeRedraw(): void;
39
- afterRender(): void;
40
41
  /** Used for array, such as array.map(), calls aka array.map(x => html``.key(x)) */
41
42
  key(arrayValue: unknown): this;
42
43
  destroy(options?: DestroyOptions): Promise<number>;
package/js/Tag.class.js CHANGED
@@ -1,16 +1,19 @@
1
1
  import { getSubjectFunction, setValueRedraw } from "./Tag.utils.js";
2
2
  import { ValueSubject } from "./ValueSubject.js";
3
- import { runAfterRender, runBeforeDestroy, runBeforeRedraw } from "./tagRunner.js";
3
+ import { runBeforeDestroy } from "./tagRunner.js";
4
4
  import { isSubjectInstance, isTagComponent, isTagInstance } from "./isInstance.js";
5
5
  import { buildClones } from "./render.js";
6
6
  import { interpolateElement, interpolateString } from "./interpolateElement.js";
7
7
  import { afterElmBuild } from "./interpolateTemplate.js";
8
8
  import { elementDestroyCheck } from "./elementDestroyCheck.function.js";
9
- import { updateExistingValue } from "./updateTag.utils.js";
9
+ import { updateExistingValue } from "./updateExistingValue.function.js";
10
10
  export const variablePrefix = '__tagvar';
11
11
  export const escapeVariable = '--' + variablePrefix + '--';
12
12
  const prefixSearch = new RegExp(variablePrefix, 'g');
13
13
  export const escapeSearch = new RegExp(escapeVariable, 'g');
14
+ export class ArrayValueNeverSet {
15
+ isArrayValueNeverSet = true;
16
+ }
14
17
  export class Tag {
15
18
  strings;
16
19
  values;
@@ -24,17 +27,11 @@ export class Tag {
24
27
  insertBefore;
25
28
  appElement; // only seen on this.getAppElement().appElement
26
29
  // present only when an array. Populated by this.key()
27
- arrayValue;
30
+ arrayValue = new ArrayValueNeverSet();
28
31
  constructor(strings, values) {
29
32
  this.strings = strings;
30
33
  this.values = values;
31
34
  }
32
- beforeRedraw() {
33
- runBeforeRedraw(this.tagSupport, this);
34
- }
35
- afterRender() {
36
- runAfterRender(this.tagSupport, this);
37
- }
38
35
  /** Used for array, such as array.map(), calls aka array.map(x => html``.key(x)) */
39
36
  key(arrayValue) {
40
37
  this.arrayValue = arrayValue;
@@ -137,6 +134,8 @@ export class Tag {
137
134
  }
138
135
  const tag = value;
139
136
  if (isTagInstance(tag) && isTagInstance(compareTo)) {
137
+ // TODO: THis "is" is setting data, this is not good
138
+ console.log('🎃');
140
139
  tag.ownerTag = this; // let children know I own them
141
140
  this.children.push(tag); // record children I created
142
141
  tag.lastTemplateString || tag.getTemplate().string; // ensure last template string is generated
@@ -1 +1 @@
1
- {"version":3,"file":"Tag.class.js","sourceRoot":"","sources":["../ts/Tag.class.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Tag.class.js","sourceRoot":"","sources":["../ts/Tag.class.ts"],"names":[],"mappings":"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"}
package/js/Tag.utils.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { TagSupport } from "./getTagSupport.js";
1
+ import { TagSupport } from "./TagSupport.class.js";
2
2
  import { ValueSubject } from "./ValueSubject.js";
3
3
  import { Subject } from "./Subject.js";
4
4
  import { Tag } from "./Tag.class.js";
@@ -8,6 +8,6 @@ export type TagSubject = Subject<TemplaterResult> & {
8
8
  tag?: Tag;
9
9
  clone?: Element;
10
10
  };
11
- export declare function getSubjectFunction(value: any, tag: Tag): ValueSubject<unknown>;
11
+ export declare function getSubjectFunction(value: any, tag: Tag): ValueSubject<(...args: any[]) => any>;
12
12
  export declare function setValueRedraw(templater: TemplaterResult, // latest tag function to call for rendering
13
13
  existing: TagSubject, ownerTag: Tag): void;
package/js/Tag.utils.js CHANGED
@@ -6,10 +6,9 @@ export function getSubjectFunction(value, tag) {
6
6
  }
7
7
  export function setValueRedraw(templater, // latest tag function to call for rendering
8
8
  existing, ownerTag) {
9
- const oldCount = existing.tagSupport?.memory.renderCount;
9
+ // const oldCount = existing.tagSupport?.memory.renderCount
10
10
  // redraw does not communicate to parent
11
- templater.redraw = (force // forces redraw on children
12
- ) => {
11
+ templater.redraw = () => {
13
12
  const existingTag = existing.tag;
14
13
  const { remit, retag } = redrawTag(existingTag, templater, ownerTag);
15
14
  existing.tagSupport = retag.tagSupport;
@@ -17,17 +16,6 @@ existing, ownerTag) {
17
16
  return;
18
17
  }
19
18
  existing.set(templater);
20
- if (force) {
21
- const tagSupport = existingTag.tagSupport;
22
- const memory = tagSupport.memory;
23
- const context = memory.context;
24
- Object.values(context).forEach((item) => {
25
- if (!item.value?.isTemplater) {
26
- return;
27
- }
28
- item.value.redraw();
29
- });
30
- }
31
19
  return retag;
32
20
  };
33
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Tag.utils.js","sourceRoot":"","sources":["../ts/Tag.utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGhD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAEnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AAQvE,MAAM,UAAU,kBAAkB,CAChC,KAAU,EACV,GAAQ;IAER,OAAO,IAAI,YAAY,CAAE,mBAAmB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAE,CAAA;AAC5D,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,SAA0B,EAAE,4CAA4C;AACxE,QAAoB,EACpB,QAAa;IAEb,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,WAAW,CAAA;IAExD,wCAAwC;IACxC,SAAS,CAAC,MAAM,GAAG,CACjB,KAAe,CAAC,4BAA4B;MAC5C,EAAE;QACF,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAU,CAAA;QACvC,MAAM,EAAC,KAAK,EAAE,KAAK,EAAC,GAAG,SAAS,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;QAElE,QAAQ,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAA;QAEtC,IAAG,CAAC,KAAK,EAAE,CAAC;YACV,OAAM;QACR,CAAC;QAED,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QAEvB,IAAG,KAAK,EAAE,CAAC;YACT,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,CAAA;YACzC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAA;YAChC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;YAE9B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAS,EAAE,EAAE;gBAC3C,IAAG,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC;oBAC5B,OAAM;gBACR,CAAC;gBAED,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAA;YACrB,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,KAAK,CAAA;IACd,CAAC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"Tag.utils.js","sourceRoot":"","sources":["../ts/Tag.utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGhD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAEnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AAQvE,MAAM,UAAU,kBAAkB,CAChC,KAAU,EACV,GAAQ;IAER,OAAO,IAAI,YAAY,CAAE,mBAAmB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAE,CAAA;AAC5D,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,SAA0B,EAAE,4CAA4C;AACxE,QAAoB,EACpB,QAAa;IAEb,2DAA2D;IAE3D,wCAAwC;IACxC,SAAS,CAAC,MAAM,GAAG,GAAG,EAAE;QACtB,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAU,CAAA;QACvC,MAAM,EAAC,KAAK,EAAE,KAAK,EAAC,GAAG,SAAS,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;QAElE,QAAQ,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAA;QAEtC,IAAG,CAAC,KAAK,EAAE,CAAC;YACV,OAAM;QACR,CAAC;QAED,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QAEvB,OAAO,KAAK,CAAA;IACd,CAAC,CAAA;AACH,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { Props } from "./Props.js";
2
+ import { Tag, TagMemory } from "./Tag.class.js";
3
+ import { TagChildren } from "./tag.js";
4
+ import { TemplaterResult } from "./templater.utils.js";
5
+ export declare class TagSupport {
6
+ templater: TemplaterResult;
7
+ children: TagChildren;
8
+ props?: unknown;
9
+ latestProps: Props;
10
+ latestClonedProps: Props;
11
+ lastClonedKidValues: unknown[][];
12
+ clonedProps: Props;
13
+ memory: TagMemory;
14
+ constructor(templater: TemplaterResult, children: TagChildren, // children tags passed in as arguments
15
+ props?: unknown);
16
+ oldest?: Tag;
17
+ newest?: Tag;
18
+ mutatingRender(): Tag;
19
+ render(): Tag;
20
+ /** Returns true when rendering owner is not needed. Returns false when rendering owner should occur */
21
+ renderExistingTag(tag: Tag, newTemplater: TemplaterResult): boolean;
22
+ }
23
+ export declare function hasTagSupportChanged(oldTagSupport: TagSupport, newTagSupport: TagSupport): boolean;
24
+ export declare function hasPropChanges(props: Props, // natural props
25
+ pastCloneProps: Props, // previously cloned props
26
+ compareToProps: Props): boolean;
27
+ export declare function hasKidsChanged(oldTagSupport: TagSupport, newTagSupport: TagSupport): boolean;
@@ -0,0 +1,157 @@
1
+ import { deepClone, deepEqual } from "./deepFunctions.js";
2
+ import { isTagArray, isTagComponent, isTagInstance } from "./isInstance.js";
3
+ import { alterProps } from "./templater.utils.js";
4
+ export class TagSupport {
5
+ templater;
6
+ children;
7
+ props;
8
+ latestProps; // new props NOT cloned props
9
+ // props from **constructor** are converted for comparing over renders
10
+ latestClonedProps; // This seems to be a duplicate of clonedProps
11
+ lastClonedKidValues = [];
12
+ // TODO: see if we can remove
13
+ clonedProps;
14
+ memory = {
15
+ context: {}, // populated after reading interpolated.values array converted to an object {variable0, variable:1}
16
+ state: {
17
+ newest: [],
18
+ },
19
+ providers: [],
20
+ /** Indicator of re-rending. Saves from double rending something already rendered */
21
+ renderCount: 0,
22
+ };
23
+ constructor(templater, children, // children tags passed in as arguments
24
+ props) {
25
+ this.templater = templater;
26
+ this.children = children;
27
+ this.props = props;
28
+ // this.latestChildren = children // <--------------------?
29
+ this.latestProps = props;
30
+ const latestProps = alterProps(props, templater);
31
+ this.latestClonedProps = latestProps; // assume its HTML children and then detect
32
+ // if the latest props are not HTML children, then clone the props for later render cycles to compare
33
+ if (!isTagInstance(props)) {
34
+ this.latestClonedProps = deepClone(latestProps);
35
+ }
36
+ // TODO: see if we can remove
37
+ this.clonedProps = this.latestClonedProps;
38
+ this.lastClonedKidValues.length = 0;
39
+ children.value.forEach(kid => {
40
+ const cloneValues = cloneValueArray(kid.values);
41
+ this.lastClonedKidValues.push(cloneValues);
42
+ });
43
+ }
44
+ // TODO: these below may not be in use
45
+ oldest;
46
+ newest;
47
+ mutatingRender() {
48
+ const message = 'Tag function "render()" was called in sync but can only be called async';
49
+ console.error(message, { tagSupport: this });
50
+ throw new Error(message);
51
+ } // loaded later and only callable async
52
+ render() {
53
+ ++this.memory.renderCount;
54
+ return this.mutatingRender();
55
+ } // ensure this function still works even during deconstructing
56
+ /** Returns true when rendering owner is not needed. Returns false when rendering owner should occur */
57
+ renderExistingTag(tag, newTemplater) {
58
+ const preRenderCount = this.memory.renderCount;
59
+ providersChangeCheck(tag);
60
+ // When the providers were checked, a render to myself occurred and I do not need to re-render again
61
+ if (preRenderCount !== this.memory.renderCount) {
62
+ return true;
63
+ }
64
+ const oldTemplater = tag.tagSupport.templater;
65
+ /*
66
+ const nowProps = newTemplater.tagSupport.props // natural props
67
+ const oldClonedProps = oldTemplater.tagSupport.clonedProps // natural props
68
+ const oldProps = oldTemplater?.tagSupport.props // new props cloned
69
+ */
70
+ const hasChanged = hasTagSupportChanged(oldTemplater.tagSupport, newTemplater.tagSupport);
71
+ this.newest = this.templater.redraw(); // No change detected, just redraw me only
72
+ if (!hasChanged) {
73
+ return true;
74
+ }
75
+ return false;
76
+ }
77
+ }
78
+ function providersChangeCheck(tag) {
79
+ const providersWithChanges = tag.tagSupport.memory.providers.filter(provider => !deepEqual(provider.instance, provider.clone));
80
+ // reset clones
81
+ providersWithChanges.forEach(provider => {
82
+ const appElement = tag.getAppElement();
83
+ handleProviderChanges(appElement, provider);
84
+ provider.clone = deepClone(provider.instance);
85
+ });
86
+ }
87
+ function handleProviderChanges(appElement, provider) {
88
+ const tagsWithProvider = getTagsWithProvider(appElement, provider);
89
+ tagsWithProvider.forEach(({ tag, renderCount, provider }) => {
90
+ const unRendered = renderCount === tag.tagSupport.memory.renderCount;
91
+ if (unRendered) {
92
+ provider.clone = deepClone(provider.instance);
93
+ tag.tagSupport.render();
94
+ }
95
+ });
96
+ }
97
+ function getTagsWithProvider(tag, provider, memory = []) {
98
+ const hasProvider = tag.tagSupport.memory.providers.find(xProvider => xProvider.constructMethod === provider.constructMethod);
99
+ if (hasProvider) {
100
+ memory.push({
101
+ tag,
102
+ renderCount: tag.tagSupport.memory.renderCount,
103
+ provider: hasProvider
104
+ });
105
+ }
106
+ tag.children.forEach(child => getTagsWithProvider(child, provider, memory));
107
+ return memory;
108
+ }
109
+ export function hasTagSupportChanged(oldTagSupport, newTagSupport) {
110
+ const oldProps = oldTagSupport.props;
111
+ const latestProps = newTagSupport.props;
112
+ const oldClonedProps = oldTagSupport.latestClonedProps;
113
+ const propsChanged = hasPropChanges(latestProps, oldClonedProps, oldProps);
114
+ // if no changes detected, no need to continue to rendering further tags
115
+ if (propsChanged) {
116
+ return true;
117
+ }
118
+ const kidsChanged = hasKidsChanged(oldTagSupport, newTagSupport);
119
+ // we already know props didn't change and if kids didn't either, than don't render
120
+ return kidsChanged;
121
+ }
122
+ export function hasPropChanges(props, // natural props
123
+ pastCloneProps, // previously cloned props
124
+ compareToProps) {
125
+ const isCommonEqual = props === undefined && props === compareToProps;
126
+ const isEqual = isCommonEqual || deepEqual(pastCloneProps, props);
127
+ return !isEqual; // if equal then no changes
128
+ }
129
+ export function hasKidsChanged(oldTagSupport, newTagSupport) {
130
+ const oldCloneKidValues = oldTagSupport.lastClonedKidValues;
131
+ const newClonedKidValues = newTagSupport.lastClonedKidValues;
132
+ const everySame = oldCloneKidValues.every((set, index) => {
133
+ const x = newClonedKidValues[index];
134
+ return set.every((item, index) => item === x[index]);
135
+ });
136
+ return !everySame;
137
+ }
138
+ function cloneValueArray(values) {
139
+ return values.map((value) => {
140
+ const tag = value;
141
+ if (isTagInstance(tag)) {
142
+ return cloneValueArray(tag.values);
143
+ }
144
+ if (isTagComponent(tag)) {
145
+ const tagComponent = tag;
146
+ if (tagComponent.newest || tagComponent.oldest) {
147
+ throw 33;
148
+ }
149
+ return deepClone(tagComponent.tagSupport.latestClonedProps);
150
+ }
151
+ if (isTagArray(tag)) {
152
+ return cloneValueArray(tag);
153
+ }
154
+ return deepClone(value);
155
+ });
156
+ }
157
+ //# sourceMappingURL=TagSupport.class.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TagSupport.class.js","sourceRoot":"","sources":["../ts/TagSupport.class.ts"],"names":[],"mappings":"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"}