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.
- package/index.js +1 -1
- package/js/CustomError.d.ts +7 -0
- package/js/CustomError.js +9 -0
- package/js/CustomError.js.map +1 -0
- package/js/Errors.d.ts +14 -0
- package/js/Errors.js +21 -0
- package/js/Errors.js.map +1 -0
- package/js/Errors2.d.ts +14 -0
- package/js/Errors2.js +21 -0
- package/js/Errors2.js.map +1 -0
- package/js/Subject.d.ts +1 -1
- package/js/Tag.class.d.ts +5 -4
- package/js/Tag.class.js +8 -9
- package/js/Tag.class.js.map +1 -1
- package/js/Tag.utils.d.ts +2 -2
- package/js/Tag.utils.js +2 -14
- package/js/Tag.utils.js.map +1 -1
- package/js/TagSupport.class.d.ts +27 -0
- package/js/TagSupport.class.js +157 -0
- package/js/TagSupport.class.js.map +1 -0
- package/js/ValueSubject.d.ts +2 -2
- package/js/ValueSubject.js.map +1 -1
- package/js/bindSubjectCallback.function.d.ts +5 -3
- package/js/bindSubjectCallback.function.js +19 -12
- package/js/bindSubjectCallback.function.js.map +1 -1
- package/js/deepFunctions.d.ts +1 -1
- package/js/deepFunctions.js +20 -6
- package/js/deepFunctions.js.map +1 -1
- package/js/gateway/tagGateway.utils.js +14 -4
- package/js/gateway/tagGateway.utils.js.map +1 -1
- package/js/getTagSupport.d.ts +1 -2
- package/js/getTagSupport.js +26 -21
- package/js/getTagSupport.js.map +1 -1
- package/js/index.d.ts +13 -5
- package/js/index.js +12 -6
- package/js/index.js.map +1 -1
- package/js/isInstance.d.ts +3 -2
- package/js/isInstance.js +3 -0
- package/js/isInstance.js.map +1 -1
- package/js/processSubjectComponent.function.js +6 -5
- package/js/processSubjectComponent.function.js.map +1 -1
- package/js/processSubjectValue.function.d.ts +0 -1
- package/js/processSubjectValue.function.js +5 -6
- package/js/processSubjectValue.function.js.map +1 -1
- package/js/processTagArray.js +15 -9
- package/js/processTagArray.js.map +1 -1
- package/js/redrawTag.function.js +3 -2
- package/js/redrawTag.function.js.map +1 -1
- package/js/setUse.function.d.ts +1 -1
- package/js/state.d.ts +1 -0
- package/js/state.js +21 -3
- package/js/state.js.map +1 -1
- package/js/tag.d.ts +5 -4
- package/js/tag.js +48 -9
- package/js/tag.js.map +1 -1
- package/js/tagElement.d.ts +1 -1
- package/js/tagElement.js +6 -14
- package/js/tagElement.js.map +1 -1
- package/js/tagRunner.d.ts +1 -1
- package/js/templater.utils.d.ts +6 -4
- package/js/templater.utils.js +8 -6
- package/js/templater.utils.js.map +1 -1
- package/js/updateExistingTag.function.d.ts +4 -0
- package/js/updateExistingTag.function.js +21 -0
- package/js/updateExistingTag.function.js.map +1 -0
- package/js/updateExistingTagComponent.function.d.ts +4 -0
- package/js/updateExistingTagComponent.function.js +57 -0
- package/js/updateExistingTagComponent.function.js.map +1 -0
- package/js/updateExistingValue.function.d.ts +8 -0
- package/js/updateExistingValue.function.js +83 -0
- package/js/updateExistingValue.function.js.map +1 -0
- package/js/updateTag.utils.d.ts +1 -0
- package/js/updateTag.utils.js +5 -69
- package/js/updateTag.utils.js.map +1 -1
- 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 @@
|
|
|
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
|
package/js/Errors.js.map
ADDED
|
@@ -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"}
|
package/js/Errors2.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/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
|
|
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 "./
|
|
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
|
|
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 {
|
|
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 "./
|
|
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
|
package/js/Tag.class.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tag.class.js","sourceRoot":"","sources":["../ts/Tag.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,kBAAkB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAG/E,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD,OAAO,EAAE,
|
|
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 "./
|
|
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<
|
|
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 = (
|
|
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
|
}
|
package/js/Tag.utils.js.map
CHANGED
|
@@ -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,
|
|
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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"}
|