dothtml 5.1.0 → 5.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,17 @@
1
1
  import { IDotElement } from "./i-dot";
2
2
  import IDotCss from "./styling/i-dotcss";
3
3
  declare abstract class Component {
4
+ #private;
5
+ /**
6
+ * Called once per component, on the first build.
7
+ * TODO: this shouldn't require an instance of the component. Please experiment with fixing this.
8
+ */
4
9
  static initializeComponent<T extends Component>(obj: T): void;
5
- static build<T extends Component>(obj: T): Element;
10
+ static build<T extends Component>(obj: T): HTMLElement;
11
+ /**
12
+ * Called any time the component needs to be completely rebuilt.
13
+ */
14
+ static rebuild<T extends Component>(obj: T): void;
6
15
  static initializeEventHandlers(obj: any): void;
7
16
  static createProp(activePropContainer: Function, name: string): void;
8
17
  static configureDependency(cc: Component, name: string): void;
@@ -57,7 +66,7 @@ declare abstract class Component {
57
66
  */
58
67
  get $el(): HTMLElement;
59
68
  $refs: {
60
- [key: string]: Element;
69
+ [key: string]: HTMLElement;
61
70
  };
62
71
  /**
63
72
  * Name of the component (optional). If provided, dot and the VDBO will be extended.
package/lib/dothtml.d.ts CHANGED
@@ -15,6 +15,8 @@ import dot from "./dot";
15
15
  * - Re-imagined components from the ground up. Components are now classes that inherit from `Component`. Plays very nicely with TS and ES6.
16
16
  * - Added interfaces for new methods that can be invoked on various elements. For instance, play, pause, and stop on audio and video elements.
17
17
  * - Updated scopeClass method to put the optional parameter last.
18
+ * - Fixed some color bugs.
19
+ * - Added a filter builder.
18
20
  */
19
21
  export default dot;
20
22
  export { default as DotComponent } from "./component";
package/lib/dothtml.js CHANGED
@@ -1,2 +1,2 @@
1
- /*! For license information please see dothtml.js.LICENSE.txt */
2
- (()=>{"use strict";var e={555:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ConditionalArgCallback=t.ArrayArgCallback=t.ContentArgCallback=t.AttrArgCallback=t.ArgCallback=void 0;class n{constructor(e,t){this.el=e,this.f=t}}t.ArgCallback=n,t.AttrArgCallback=class extends n{constructor(e,t,n){super(e,n),this.attr=t}updateContent(e){this.el.setAttribute(this.attr,this.f())}},t.ContentArgCallback=class extends n{constructor(e,t){super(e,t)}updateContent(e,t){e(this.el).empty().h(this.f(t))}},t.ArrayArgCallback=class extends n{constructor(e,t){super(null,t),this.dotTarget=e}updateContent(){}},t.ConditionalArgCallback=class extends n{constructor(e,t,n,r){super(null,n),this.startNode=e,this.endNode=t,this.condition=r,this.lastValue=void 0}updateContent(e){if(this.lastValue!=!!this.condition())if(this.lastValue=!this.lastValue,this.lastValue)e._appendOrCreateDocument(this.f,this.endNode.parentNode,this.endNode);else do{var t=this.startNode.nextSibling;t&&t!=this.endNode&&t.parentNode.removeChild(t)}while(this.startNode.nextSibling&&this.startNode.nextSibling!=this.endNode)}}},999:function(e,t,n){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const a=r(n(969)),i=r(n(150)),o=n(669),s=r(n(177)),l=n(555);class u{static initializeComponent(e){e.constructor.__dotComponentInitialized||(e.constructor.__dotComponentInitialized=!0,e.constructor.__dotClassNumb=o.ClassPrefix.next,e.constructor.__activePropContainer=function(e){this.__component=e},(0,o.eachK)(e.props,((t,n)=>{u.createProp(e.constructor.__activePropContainer,t)})))}static build(e){u.initializeComponent(e),o.GlobalComponentStack.push(e),e.created&&e.created(...e.__args),e.__built&&(0,s.default)("CB"),e.__built=!0,e.__propContainer={activePropConstructor:e.constructor.__activePropContainer,rawProps:e.props||{},activeProps:new e.constructor.__activePropContainer(e),propDependencies:{},bindings:{}},e.props=e.__propContainer.activeProps,(0,o.eachK)(e.__propContainer.rawProps,((t,n)=>{e.__propContainer.bindings[t]=[],e.props[t]=n})),u.initializeEventHandlers(e);let t=e.builder(...e.__args).getLast();return(!t||t.parentNode.childNodes.length>1)&&(0,s.default)("C#",e.name||e.constructor.name||"(unnamed obj)"),e.__$el=e.$el||t,e.$el.__dothtml_component=e,e.style&&(e.$styleBuilder=function(){i.default.css.scopeToEl(e.$el),e.__stylesSet||(i.default.css.cacheScopedStaticStyles(e.$el),e.__stylesSet=!0),i.default.css.clearDynamicStyles(e.$el),e.style(i.default.css),i.default.css.unscope()},e.$updateStyles()),e.built&&e.built(),e.ready&&(0,o.sT)((()=>{o.GlobalComponentStack.push(e),e.ready(),o.GlobalComponentStack.pop()}),0),o.GlobalComponentStack.pop(),e.$el}static initializeEventHandlers(e){e.__eventsInitialized||(e.__eventsInitialized=!0,(0,o.eachK)(e.events,((t,n)=>{e.events[t]=function(){for(let n of e.events[t].__handlers)n.apply(this,arguments)},e.events[t].__handlers=[]})))}static createProp(e,t){Object.defineProperty(e.prototype,t,{configurable:!1,enumerable:!1,get:function(){i.default.__lastProp=t,i.default.__lastIndex=null,i.default.__lastComponent=this.__component;let e=this.__component.__propContainer.rawProps[t];return u.configureDependency(this.__component,t),e},set:function(e){let n=e;e instanceof Array&&(n=new a.default(e),n.addEventListener("read",(e=>{i.default.__lastIndex=e.index}))),this.__component.__propContainer.rawProps[t]=n;for(let e of this.__component.__propContainer.bindings[t])(0,i.default)(e.element).as(i.default.input).setVal(n);return u.updateProp(this.__component,t),n}})}static configureDependency(e,t){var n=i.default.__currentArgCallback[i.default.__currentArgCallback.length-1];if(n){let i=e.__propContainer.rawProps[t];i instanceof a.default&&(i.addEventListener("itemadded",(function(r){n instanceof l.ArrayArgCallback?n.dotTarget._appendOrCreateDocument(n.f(r.item,r.index),void 0,r.index):n&&u.updateProp(e,t)})),i.addEventListener("itemset",(function(r){if(n instanceof l.ArrayArgCallback){var a=n.dotTarget.__document,i=a.childNodes[r.index];a.removeChild(i),n.dotTarget._appendOrCreateDocument(n.f(r.item,r.index),void 0,r.index)}else n&&u.updateProp(e,t)})),i.addEventListener("itemremoved",(function(r){n instanceof l.ArrayArgCallback?n.dotTarget.__document.removeChild(n.dotTarget.__document.childNodes[r.index]):n&&u.updateProp(e,t)})));var r=e.__propContainer.propDependencies[t];r||(r=e.__propContainer.propDependencies[t]=[]),r.push(n)}}static updateProp(e,t){let n=e.__propContainer.propDependencies[t],r=e.__propContainer.rawProps[t],a=!1;for(let e=0;e<(n||[]).length;e++){let t=n[e];t.updateContent(i.default,r),t instanceof l.AttrArgCallback&&"class"==t.attr&&(a=!0)}a&&e.$updateStyles()}constructor(...e){this.__built=!1,this.__stylesSet=!1,this.__eventsInitialized=!1,this.$refs={},this.__args=e}created(...e){}ready(){}deleting(){}deleted(){}built(){}on(e,t){u.initializeEventHandlers(this);let n=this.events&&this.events[e];n||(0,s.default)("UE",e);let r=n.__handlers;-1==r.indexOf(t)&&r.push(t)}off(e,t){let n=this.events&&this.events[e];n||(0,s.default)("UE",e);let r=n.__handlers,a=r.indexOf(t);a>-1&&r.splice(a,1)}get $el(){return this.__$el}$updateStyles(){this.$styleBuilder&&this.$styleBuilder()}}t.default=u},669:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.numberStep=t.floatRegex=t.GlobalComponentStack=t.ClassPrefix=t.str=t.sT=t.isF=t.eachK=void 0,t.eachK=function(e,t){if(e)for(var n=Object.keys(e),r=0;r<n.length;r++)t(n[r],e[n[r]])},t.isF=function(e){return e&&e.constructor&&e.call&&e.apply},t.sT=setTimeout,t.str=function(e,t){return(e||"").toString(t)},t.ClassPrefix=new class{constructor(){this.current=65536}reset(){this.current=65536}get next(){return this.current++}},t.GlobalComponentStack=[],t.floatRegex=new RegExp("[-+]?[0-9]*\\.?[0-9]+(?:[eE][-+]?[0-9]+)?","g"),t.numberStep=function(e,t,n,r,a){switch(e=Number(e),t=Number(t),a){case"geometric":case"exponential":case"ease":return e+.5*(1-Math.cos(Math.PI*(n/r)))*(t-e);default:return e+n/r*(t-e)}}},150:function(e,t,n){var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var a=Object.getOwnPropertyDescriptor(t,n);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,a)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return a(t,e),t},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ATTRIBUTE_MODE=t.SELECTOR_MODE=void 0;const s=o(n(351)),l=i(n(782)),u=o(n(177)),c=n(669),d=o(n(999)),h=n(555),f=o(n(969)),p=function(e){var n=e?"string"==typeof e?document.querySelectorAll(e):e instanceof Element||e instanceof Node?[e]:e instanceof NodeList||e instanceof Array&&e[0]&&(e[0]instanceof Element||e[0]instanceof Node)?e:[]:[],r=new C;return n.length>0&&(r.__document=n[0]),p.__selectionMode=t.SELECTOR_MODE,r},g="DOTHTML-DEFER";var m=0;function b(e,t){S[e]=p[e]=t}function _(e){var t=null,n=e.__dothtml_component;n&&(n.deleting&&n.deleting(),n.__$el=null,t=n.deleted),e.parentNode&&e.parentNode.removeChild(e),t&&t.apply(n)}function y(e,t,n,r){e.addEventListener?e.addEventListener(t,n,r||!1):e.attachEvent("on"+t,n)}function v(e){b(e,(function(t){return this.el(e,t)}))}function k(e,t){S[t||e]=function(t){return this.attr(e,t)}}t.SELECTOR_MODE=1,t.ATTRIBUTE_MODE=2;var w,C=function(e,n){this.__document=e,this.__lastNode=e?e.lastChild:null,this.__if=null,this.__pendingCalls=[],this.__anonAttrFuncs={},this.__classPrefix=n||0,this.__classedElements=[],this.__selectionMode=t.SELECTOR_MODE},S=C.prototype,x=["a","aside","abbr","address","area","article","audio","b","bdi","bdo","blockQuote","body","br","button","canvas","caption","cite","code","col","colGroup","content","data","dataList","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldSet","figCaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hr","i","iFrame","img","input","ins","kbd","keyGen","label","legend","li","main","map","mark","menu","menuItem","meter","nav","object","ol","optGroup","option","output","p","param","pre","progress","q","rp","rt","ruby","s","samp","section","select","small","source","span","strong","svg","sub","summary","sup","table","tBody","td","textArea","tFoot","th","tHead","time","tr","track","u","ul","var","video","wbr"],N=["accept","accessKey","action","align","aLink","alt","archive","autoComplete","autoFocus","autoPlay","autoSave","axis","background","bgColor","border","buffered","cellPadding","cellSpacing","challenge","char","charOff","checked","classId","clear","codeBase","codeType","color","cols","colSpan","compact","contentEditable","contextMenu","controls","coords","dateTime","declare","default","dir","dirName","disabled","download","draggable","dropZone","encType","face","font","fontFace","fontFaceFormat","fontFaceName","fontFaceSrc","fontFaceUri","fontSpecification","for","foreignObject","formAction","frame","frameBorder","headers","height","hidden","high","hRef","hRefLang","hSpace","icon","id","images","isMap","itemProp","keyType","kind","lang","list","longDesc","loop","low","manifest","marginHeight","marginWidth","max","maxLength","media","metadata","method","min","missingGlyph","multiple","muted","name","noHRef","noResize","noShade","noValidate","nowrap","open","optimum","pattern","ping","placeholder","poster","preload","prompt","radioGroup","readOnly","rel","required","rev","reversed","rows","rowSpan","rules","sandbox","scope","scrolling","seamless","selected","shape","size","sizes","spellCheck","src","srcDoc","srcLang","srcSet","standby","start","step","style","tabIndex","target","title","type","useMap","vAlign","value","valueType","width","wrap"],O=[["quoteCite","cite"],["objectData","data"],["whichForm","form"],["trackLabel","label"],["colSpan","span"],["tableSummary","summary"],["optionLabel","label"],["acceptCharset","accept-charset"]],A=["onAbort","onBlur","onChange","onInput","onCanPlay","onCantPlayThrough","onClick","onCopy","onContextMenu","onCueChange","onCut","onDblClick","onDrag","onDragEnd","onDragEnter","onDragLeave","onDragOver","onDragStart","onDrop","onDurationChange","onEmptied","onEnded","onError","onFocus","onHashChange","onInvalid","onKeyDown","onKeyPress","onKeyUp","onLoad","onLoadedData","onLoadedMetadata","onLoadStart","onMouseDown","onMouseEnter","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onMouseWheel","onOffline","onOnline","onPageHide","onPagePaste","onPageShow","onPause","onPlay","onPlaying","onPopState","onProgress","onRateChange","onReset","onResize","onScroll","onSearch","onSeeked","onSeeking","onSelect","onStalled","onStorage","onSubmit","onSuspend","onTimeUpdate","onToggle","onUnload","onVolumeChange","onWaiting","onWheel"];for(w in x)v(x[w]);for(w in N)k(N[w]);for(w in O)k(O[w][1],O[w][0]);for(w in A)k(A[w]);b("as",(function(e){return this})),b("_getNewDocument",(function(){return document.createElement("DOTHTML-DOCUMENT")})),b("_getAnInstance",(function(){if(this.__document||this.__pendingCalls.length>0)return this;var e=new C(null,this.__classPrefix);return e.__if=this.__if,e})),b("_getLastChildOrNull",(function(){return this.__document&&this.__document.lastChild?this.__document.lastChild:null})),b("getLast",(function(){return this._getLastChildOrNull()})),b("getCurrent",(function(){let e;switch(p.__selectionMode){case t.SELECTOR_MODE:e=this.__document;break;case t.ATTRIBUTE_MODE:e=this.getLast()||this.__document}return e})),S.toString=function(){return this.__document?this.__document.innerHTML:""},S.ref=function(e){let t=this.getLast(),n=c.GlobalComponentStack.length;return t&&n>0&&(c.GlobalComponentStack[n-1].$refs[e]=t),this},b("_evalContent",(function(e,t){if(null==e||null==e)return null;if("string"==typeof e||"number"==typeof e||"boolean"==typeof e){let t=new C(this._getNewDocument(),this.__classPrefix);return t.__document.innerHTML=e,t.__document.childNodes}if(e instanceof Node)return e;if("[object Array]"===Object.prototype.toString.call(e)){let t=new C(this._getNewDocument(),this.__classPrefix);for(let n=0;n<e.length;n++)t._appendOrCreateDocument(e[n]);if(t.__document)return t.__document.childNodes}else{if((0,c.isF)(e))return this._evalContent(e(),t);if(e instanceof d.default)return this._evalContent(d.default.build(e));if(e instanceof C){for(let n=0;n<e.__pendingCalls.length;n++)t.push(e.__pendingCalls[n]);let n=this.__classPrefix;for(let t in e.__classedElements){let r=e.__classedElements[t];n?r.className="dot-"+(0,c.str)(n,16)+"-"+r.className:this.__classedElements.push(r)}if(e.__document)return e.__document.childNodes}}return null})),b("_appendOrCreateDocument",(function(e,t,n){var r=this;if(t&&n&&isNaN(n)&&n.parentNode!=t)throw"beforeNode is not in parentEl.";t=t||(n&&isNaN(n)?n.parentNode:null)||r.__document||r._getNewDocument(),isNaN(n)||(n=t.childNodes[n]);var a=r.__document===t?r:new C(t,r.__classPrefix);a.__if=r.__if;var i,o=[],s=(0,c.isF)(e);s&&p.__currentArgCallback.push(new h.ContentArgCallback(t,e));try{i=a._evalContent(e,o)}finally{s&&p.__currentArgCallback.pop()}for(var l=0;l<o.length;l++){var u=o[l],d=(n?n.previousSibling||t:null)||t.lastChild||t;d&&"DOCUMENT"!=d.tagName?"attr"==u.type?(0,c.isF)(u.params[0])?y(d,u.name,u.params[0],u.arg3):d.setAttribute(u.name,u.params[0]):"wait"==u.type&&u.callback():a.__pendingCalls.push(u)}if(null!=i)if(i instanceof NodeList)for(;i.length>0;)n?t.insertBefore(i[0],n):t.appendChild(i[0]);else n?t.insertBefore(i,n):t.appendChild(i);return a})),b("el",(function(e,n){var r=this,a=document.createElement(e),i=r.__document||r._getNewDocument();i.appendChild(a),n&&r._appendOrCreateDocument(n,a);var o=r.__document===i?r:new C(i,r.__classPrefix);if(n&&n instanceof C)for(var s in n.__classedElements)o.__classedElements.push(n.__classedElements[s]);return p.__selectionMode=t.ATTRIBUTE_MODE,o})),b("h",(function(e){var t=this,n=t._getNewDocument();new C(n,t.__classPrefix)._appendOrCreateDocument(e);for(var r=t.__document||t._getNewDocument();n.childNodes.length>0;)r.appendChild(n.childNodes[0]);return t.__document===r?t:new C(r,t.__classPrefix)})),b("t",(function(e){var t=document.createTextNode(e),n=this.__document||this._getNewDocument();return n.appendChild(t),new C(n,this.__classPrefix)})),b("attr",(function(e,t,n){var r=this;if((0,c.isF)(t)&&(0==e.indexOf("on")&&-1!=A.indexOf(e)?e=e.substring(2).toLowerCase():(p.__anonAttrFuncs[m]=t,t="dot.__anonAttrFuncs["+m+++"](arguments[0]);")),!r.__document){var a=r._getAnInstance();return a.__pendingCalls.push({type:"attr",name:e,params:[t],arg3:n}),a}var i=r.__document.childNodes,o=i[i.length-1];if(o&&o.setAttribute)if((0,c.isF)(t))y(o,e,t,n);else{if("object"==typeof t&&!(t instanceof l._Builder)){var s=t,u=function(){var e="";return(0,c.eachK)(s,(function(t,n){(n=(0,c.isF)(n)?n():n)&&(e+=" "+t)})),e.substring(1)};p.__currentArgCallback.push(new h.AttrArgCallback(o,e,u)),t=u(),p.__currentArgCallback.pop()}var d=o.getAttribute(e);d?d+=" ":d="",o.setAttribute(e,d+(void 0===t?e:t))}return r})),b("_appendSetElement",(function(e,t){var n=this;if(!e)return(0,u.default)("A",e),n;var r=document.getElementById(e);if(!r)return(0,u.default)("F",e),n;if(n.__document)for(t||(r.innerHTML="");n.__document.childNodes.length>0;)r.appendChild(n.__document.childNodes[0]);return n})),b("iterate",(function(e,t){for(var n=this,r=0;r<e;r++){let e=null;(0,c.isF)(t)&&(e=t(r)),n=n._appendOrCreateDocument(e)}return n})),b("each",(function(e,t,n){var r=this;if((0,c.isF)(e)){if(!n)return r.defer((function(n){n.each(e,t,!0)}));var a=e;p.__currentArgCallback.push(new h.ArrayArgCallback(r,t));try{e=a()}finally{p.__currentArgCallback.pop()}}if(e instanceof Array||e instanceof f.default)for(var i=0;i<e.length;i++)r=r._appendOrCreateDocument(t(e[i],i));else{var o=Object.keys(e);for(i=0;i<o.length;i++){var s=o[i];r=r._appendOrCreateDocument(t(e[s],s))}}return r})),S.customData=function(e,t){return this.attr("data-"+e,t)},S.class=function(e){var t=this.__classPrefix;if(t){var n="dot-"+(0,c.str)(t,16)+"-";if("string"==typeof e)e=n+e;else if("object"==typeof e){var r={};(0,c.eachK)(e,(function(e,t){r[n+e]=t})),e=r}}else{var a=this.getLast();a&&this.__classedElements.push(a)}return this.attr("class",e)},S.play=function(){let e=this.getCurrent();return e.play&&e.play(),this},S.pause=function(e){let t=this.getCurrent();return t.pause&&t.pause(),e&&(t.currentTime=0),this},S.stop=function(){return this.pause(!0)},S.setVal=function(e){let t=this.getCurrent();return t?(Array.isArray&&Array.isArray(e)||!Array.isArray&&e.join?e=e.join(""):null==e&&(e=""),"checkbox"==t.type||"radio"==t.type?t.checked=!!e:"OPTION"==t.tagName?t.selected=!!e:t.value=e,this):this},S.getVal=function(){var e=this.__lastNode||this.__document;if(e&&1===e.nodeType)return"checkbox"==e.type||"radio"==e.type?!!e.checked:"OPTION"==e.tagName?!!e.selected:e.value},b("when",(function(e,t,n){var r=this._getAnInstance();if((0,c.isF)(e)){n||(n=r.__conditionalArray=[e]);var a=n.length-1;r=function(e,t,n,r){var a=document.createTextNode(""),i=document.createTextNode(""),o=new h.ConditionalArgCallback(a,i,r,t);p.__currentArgCallback.push(o);var s=t();e=e._appendOrCreateDocument(a);for(var l=0;l<n.length;l++)n[l]();return o.lastValue=s,s&&(e=e._appendOrCreateDocument(r)),e=e._appendOrCreateDocument(i),p.__currentArgCallback.pop(),e}(r,(function(){for(var t=0;t<a;t++)if(n[t]())return!1;return!!e()}),n,t)}else e?(r=r._appendOrCreateDocument((0,c.isF)(t)?t():t)).__if=!0:r.__if=!1;return r})),b("otherwiseWhen",(function(e,t){if((0,c.isF)(e)){var n=this.__conditionalArray;return n||(0,u.default)("MC"),n.push(e),this.when(e,t,n)}return this.__if?this:this.when(e,t)})),b("otherwise",(function(e){var t=this.__conditionalArray;if(t){var n=function(){return!0};return t.push(n),this.when(n,e,t)}return this.__if?this:(this.__if=null,this._getAnInstance()._appendOrCreateDocument(e))})),b("script",(function(e){var t=this.getLast();return(0,c.sT)((function(){e(t)}),0),this})),b("wait",(function(e,t){var n=this.el(g),r=n.__document.lastChild;return(0,c.sT)((()=>{n._appendOrCreateDocument(t,null,r),r.parentElement.removeChild(r)}),e),n})),b("defer",(function(e){(0,c.isF)(e)||(0,u.default)("XF","defer");var t=this.el(g),n=t.__document.lastChild;return(0,c.sT)((()=>{e(p(n.parentElement)),n.parentElement.removeChild(n)}),0),t})),b("empty",(function(){if(this.__document){for(var e=[this.__document],t=!0,n=[];e.length>0;){var r=e.shift();if(r.childNodes.length>0)for(var a=0;a<r.childNodes.length;a++)e.push(r.childNodes[a]);!t&&n.push(r),t=!1}for(;n.length>0;)_(n.pop())}return this})),b("remove",(function(){this.empty(),_(this.__document)})),b("scopeClass",(function(e,t){null==e&&(e=c.ClassPrefix.next);var n=this;n.__classPrefix=e;var r=n.h(t);return n.__classPrefix=0,r})),S.bindTo=function(e){let t=p.__lastProp,n=p.__lastIndex,r=p.__lastComponent,a=this.getLast(),i=r.props[t];null!=n&&null!=n&&(i=i[n]);let o=this.setVal(i);return y(a,"change",(function(e){r.props[t]=p(a).as(p.input).getVal()})),r.__propContainer.bindings[t].push({element:a}),o},p.resetScopeClass=function(){return c.ClassPrefix.reset(),this},p.css=l.default,p.bus=s.default,p.__currentArgCallback=[],p.__document=null,p.__if=null,p.__pendingCalls=[],p.__anonAttrFuncs={},t.default=p},220:function(e,t,n){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.DotComponent=void 0;const a=r(n(150)),i=r(n(999));a.default.version="5.0.0",a.default.Component=i.default,t.default=a.default;var o=n(999);Object.defineProperty(t,"DotComponent",{enumerable:!0,get:function(){return r(o).default}})},177:(e,t)=>{var n;Object.defineProperty(t,"__esModule",{value:!0}),n=function(e,...t){throw{A:`Can't append "${(t=t||[])[0]}".`,CB:"Unable to build the same component twice. Ensure each component is only used once.",CU:"Invalid usage: a component should at least have a name and a builder function.","C#":`Component "${t[0]}" must return exactly one child node.`,F:`Element "${t[0]}" not found.`,MC:"Can't mix static conditions with dynamic conditional rendering.",R:"Router must be passed a JSON object that contains an 'routes' array containing objects with a 'path', 'title', and 'component'.",S:"SVG is not supported by DOThtml.",UE:`Unknown event name "${t[0]}".`,XS:"Expected a string.",XF:`Expected a function in "${t[0]}".`}[e]||"Unknown error."},t.default=n},351:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});const r=n(669),a=new class{constructor(){this._callbacks={},this._checkAddEvent=function(e){var t=this._callbacks[e];return t||(this._callbacks[e]=t=[]),t}}on(e,t){this._checkAddEvent(e).push(t)}off(e,t){for(var n=this._checkAddEvent(e),r=n.length-1;n>=0;r--)n[r]==t&&n.splice(r,1)}emit(e,...t){var n=this._checkAddEvent(e);(0,r.eachK)(n,(function(e,n){n(...t)}))}flush(e){this._checkAddEvent(e).length=0}};t.default=a},969:(e,t)=>{function n(e){var t=this,n=[],r={itemadded:[],itemremoved:[],itemset:[],read:[]};function a(e){e in t||Object.defineProperty(t,e,{configurable:!0,enumerable:!0,get:function(){return i({type:"read",index:e,item:n[e]}),n[e]},set:function(t){n[e]!=t&&(n[e]=t,i({type:"itemset",index:e,item:t}))}})}function i(e){r[e.type].forEach((function(n){n.call(t,e)}))}Object.defineProperty(t,"addEventListener",{configurable:!1,enumerable:!1,writable:!1,value:function(e,t){if(!((e=(""+e).toLowerCase())in r))throw new Error("Invalid event name.");if("function"!=typeof t)throw new Error("Invalid handler.");r[e].push(t)}}),Object.defineProperty(t,"removeEventListener",{configurable:!1,enumerable:!1,writable:!1,value:function(e,t){if(!((e=(""+e).toLowerCase())in r))throw new Error("Invalid event name.");if("function"!=typeof t)throw new Error("Invalid handler.");for(var n=r[e],a=n.length;--a>=0;)n[a]===t&&n.splice(a,1)}}),Object.defineProperty(t,"push",{configurable:!1,enumerable:!1,writable:!1,value:function(){for(var e,t=0,r=arguments.length;t<r;t++)e=n.length,n.push(arguments[t]),a(e),i({type:"itemadded",index:e,item:arguments[t]});return n.length}}),Object.defineProperty(t,"pop",{configurable:!1,enumerable:!1,writable:!1,value:function(){if(n.length>-1){var e=n.length-1,r=n.pop();return delete t[e],i({type:"itemremoved",index:e,item:r}),r}}}),Object.defineProperty(t,"unshift",{configurable:!1,enumerable:!1,writable:!1,value:function(){for(var e=0,t=arguments.length;e<t;e++)n.splice(e,0,arguments[e]),a(n.length-1),i({type:"itemadded",index:e,item:arguments[e]});return n.length}}),Object.defineProperty(t,"shift",{configurable:!1,enumerable:!1,writable:!1,value:function(){if(n.length>-1){var e=n.shift();return delete t[n.length],i({type:"itemremoved",index:0,item:e}),e}}}),Object.defineProperty(t,"splice",{configurable:!1,enumerable:!1,writable:!1,value:function(e,r){var o,s=[];e=null==e?0:e<0?n.length+e:e,r=null==r?n.length-e:r>0?r:0;for(var l=[];r--;)o=n.splice(e,1)[0],s.push(o),delete t[n.length],l.push({type:"itemremoved",index:e+s.length-1,item:o});for(var u=l.length-1;u>=0;u--)i(l[u]);u=2;for(var c=arguments.length;u<c;u++)n.splice(e,0,arguments[u]),a(n.length-1),i({type:"itemadded",index:e,item:arguments[u]}),e++;return s}}),Object.defineProperty(t,"length",{configurable:!1,enumerable:!1,get:function(){return n.length},set:function(e){var r=Number(e),a=n.length;if(!(r%1==0&&r>=0))throw new RangeError("Invalid array length");return r<a?t.splice(r):r>a&&t.push.apply(t,new Array(r-a)),n.length=r,e}}),Object.getOwnPropertyNames(Array.prototype).forEach((function(e){e in t||Object.defineProperty(t,e,{configurable:!1,enumerable:!1,writable:!1,value:Array.prototype[e]})})),e instanceof Array&&t.push.apply(t,e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=n,n.prototype.length=0},170:function(e,t,n){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const a=n(669),i=r(n(856));class o extends i.default{constructor(e){super("angle"),e=e||"0deg",isNaN(e)||(e=`${Math.round(e)}deg`),this.angle=Number(e.match(a.floatRegex)[0]),this.units=e.split(a.floatRegex)[1]||"deg"}toString(){return this.angle+this.units}}t.default=o},834:function(e,t,n){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const a=r(n(856));class i extends a.default{constructor(e){if(super("color"),this.r=0,this.g=0,this.b=0,this.a=1,1==e.length)if(""==(e=e[0])||"none"==e||"initial"==e||"inherit"==e);else if(isNaN(e))if("#"==e[0]){var t=e.split("#")[1];3==t.length?(this.r=Number("0x"+t[0]+t[0]),this.g=Number("0x"+t[1]+t[1]),this.b=Number("0x"+t[2]+t[2])):6==t.length&&(this.r=Number("0x"+t[0]+t[1]),this.g=Number("0x"+t[2]+t[3]),this.b=Number("0x"+t[4]+t[5]))}else if(0===e.toLowerCase().indexOf("rgb")){var n=e.split("(")[1];3!=(n=(n=n.split(")")[0]).split(",")).length&&4!=n.length||(this.r=Number(n[0]),this.g=Number(n[1]),this.b=Number(n[2]),this.a=Number(n[3]||1))}else{var r=0,a=0,i=0;switch(e.toLowerCase()){case"aliceblue":r=240,a=248,i=255;break;case"antiquewhite":r=250,a=235,i=215;break;case"aqua":case"cyan":r=0,a=255,i=255;break;case"aquamarine":r=127,a=255,i=212;break;case"azure":r=240,a=255,i=255;break;case"beige":r=245,a=245,i=220;break;case"bisque":r=255,a=228,i=196;break;case"black":r=0,a=0,i=0;break;case"blanchedalmond":r=255,a=235,i=205;break;case"blue":r=0,a=0,i=255;break;case"blueviolet":r=138,a=43,i=226;break;case"brown":r=165,a=42,i=42;break;case"burlywood":r=222,a=184,i=135;break;case"cadetblue":r=95,a=158,i=160;break;case"chartreuse":r=127,a=255,i=0;break;case"chocolate":r=210,a=105,i=30;break;case"coral":r=255,a=127,i=80;break;case"cornflowerblue":r=100,a=149,i=237;break;case"cornsilk":r=255,a=248,i=220;break;case"crimson":r=220,a=20,i=60;break;case"darkblue":r=0,a=0,i=139;break;case"darkcyan":r=0,a=139,i=139;break;case"darkgoldenrod":r=184,a=134,i=11;break;case"darkgray":case"darkgrey":r=169,a=169,i=169;break;case"darkgreen":r=0,a=100,i=0;break;case"darkkhaki":r=189,a=183,i=107;break;case"darkmagenta":r=139,a=0,i=139;break;case"darkolivegreen":r=85,a=107,i=47;break;case"darkorange":r=255,a=140,i=0;break;case"darkorchid":r=153,a=50,i=204;break;case"darkred":r=139,a=0,i=0;break;case"darksalmon":r=233,a=150,i=122;break;case"darkseagreen":r=143,a=188,i=143;break;case"darkslateblue":r=72,a=61,i=139;break;case"darkslategray":case"darkslategrey":r=47,a=79,i=79;break;case"darkturquoise":r=0,a=206,i=209;break;case"darkviolet":r=148,a=0,i=211;break;case"deeppink":r=255,a=20,i=147;break;case"deepskyblue":r=0,a=191,i=255;break;case"dimgray":case"dimgrey":r=105,a=105,i=105;break;case"dodgerblue":r=30,a=144,i=255;break;case"firebrick":r=178,a=34,i=34;break;case"floralwhite":r=255,a=250,i=240;break;case"forestgreen":r=34,a=139,i=34;break;case"fuchsia":case"magenta":r=255,a=0,i=255;break;case"gainsboro":r=220,a=220,i=220;break;case"ghostwhite":r=248,a=248,i=255;break;case"gold":r=255,a=215,i=0;break;case"goldenrod":r=218,a=165,i=32;break;case"gray":case"grey":r=128,a=128,i=128;break;case"green":r=0,a=128,i=0;break;case"greenyellow":r=173,a=255,i=47;break;case"honeydew":r=240,a=255,i=240;break;case"hotpink":r=255,a=105,i=180;break;case"indianred":r=205,a=92,i=92;break;case"indigo":r=75,a=0,i=130;break;case"ivory":r=255,a=255,i=240;break;case"khaki":r=240,a=230,i=140;break;case"lavender":r=230,a=230,i=250;break;case"lavenderblush":r=255,a=240,i=245;break;case"lawngreen":r=124,a=252,i=0;break;case"lemonchiffon":r=255,a=250,i=205;break;case"lightblue":r=173,a=216,i=230;break;case"lightcoral":r=240,a=128,i=128;break;case"lightcyan":r=224,a=255,i=255;break;case"lightgoldenrodyellow":r=250,a=250,i=210;break;case"lightgray":case"lightgrey":r=211,a=211,i=211;break;case"lightgreen":r=144,a=238,i=144;break;case"lightpink":r=255,a=182,i=193;break;case"lightsalmon":r=255,a=160,i=122;break;case"lightseagreen":r=32,a=178,i=170;break;case"lightskyblue":r=135,a=206,i=250;break;case"lightslategray":case"lightslategrey":r=119,a=136,i=153;break;case"lightsteelblue":r=176,a=196,i=222;break;case"lightyellow":r=255,a=255,i=224;break;case"lime":r=0,a=255,i=0;break;case"limegreen":r=50,a=205,i=50;break;case"linen":r=250,a=240,i=230;break;case"maroon":r=128,a=0,i=0;break;case"mediumaquamarine":r=102,a=205,i=170;break;case"mediumblue":r=0,a=0,i=205;break;case"mediumorchid":r=186,a=85,i=211;break;case"mediumpurple":r=147,a=112,i=219;break;case"mediumseagreen":r=60,a=179,i=113;break;case"mediumslateblue":r=123,a=104,i=238;break;case"mediumspringgreen":r=0,a=250,i=154;break;case"mediumturquoise":r=72,a=209,i=204;break;case"mediumvioletred":r=199,a=21,i=133;break;case"midnightblue":r=25,a=25,i=112;break;case"mintcream":r=245,a=255,i=250;break;case"mistyrose":r=255,a=228,i=225;break;case"moccasin":r=255,a=228,i=181;break;case"navajowhite":r=255,a=222,i=173;break;case"navy":r=0,a=0,i=128;break;case"oldlace":r=253,a=245,i=230;break;case"olive":r=128,a=128,i=0;break;case"olivedrab":r=107,a=142,i=35;break;case"orange":r=255,a=165,i=0;break;case"orangered":r=255,a=69,i=0;break;case"orchid":r=218,a=112,i=214;break;case"palegoldenrod":r=238,a=232,i=170;break;case"palegreen":r=152,a=251,i=152;break;case"paleturquoise":r=175,a=238,i=238;break;case"palevioletred":r=219,a=112,i=147;break;case"papayawhip":r=255,a=239,i=213;break;case"peachpuff":r=255,a=218,i=185;break;case"peru":r=205,a=133,i=63;break;case"pink":r=255,a=192,i=203;break;case"plum":r=221,a=160,i=221;break;case"powderblue":r=176,a=224,i=230;break;case"purple":r=128,a=0,i=128;break;case"rebeccapurple":r=102,a=51,i=153;break;case"red":r=255,a=0,i=0;break;case"rosybrown":r=188,a=143,i=143;break;case"royalblue":r=65,a=105,i=225;break;case"saddlebrown":r=139,a=69,i=19;break;case"salmon":r=250,a=128,i=114;break;case"sandybrown":r=244,a=164,i=96;break;case"seagreen":r=46,a=139,i=87;break;case"seashell":r=255,a=245,i=238;break;case"sienna":r=160,a=82,i=45;break;case"silver":r=192,a=192,i=192;break;case"skyblue":r=135,a=206,i=235;break;case"slateblue":r=106,a=90,i=205;break;case"slategray":case"slategrey":r=112,a=128,i=144;break;case"snow":r=255,a=250,i=250;break;case"springgreen":r=0,a=255,i=127;break;case"steelblue":r=70,a=130,i=180;break;case"tan":r=210,a=180,i=140;break;case"teal":r=0,a=128,i=128;break;case"thistle":r=216,a=191,i=216;break;case"tomato":r=255,a=99,i=71;break;case"turquoise":r=64,a=224,i=208;break;case"violet":r=238,a=130,i=238;break;case"wheat":r=245,a=222,i=179;break;case"white":r=255,a=255,i=255;break;case"whitesmoke":r=245,a=245,i=245;break;case"yellow":r=255,a=255,i=0;break;case"yellowgreen":r=154,a=205,i=50}this.r=r,this.g=a,this.b=i}else this.b=255&e,e>>=8,this.g=255&e,e>>=8,this.r=255&e;else 3!=e.length&&4!=e.length||(this.r=e[0],this.g=e[1],this.b=e[2],4==e.length&&(this.a=e[3]))}toString(){var e=Math.round,t=Math.max,n=Math.min;return 1==this.a?"rgb("+n(255,t(0,e(this.r)))+", "+n(255,t(0,e(this.g)))+", "+n(255,t(0,e(this.b)))+")":"rgba("+n(255,t(0,e(this.r)))+", "+n(255,t(0,e(this.g)))+", "+n(255,t(0,e(this.b)))+", "+n(1,t(0,this.a))+")"}}t.default=i},392:function(e,t,n){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const a=n(669),i=r(n(856));class o extends i.default{constructor(e){super("complex"),this.parts=(" "+e+" ").split(a.floatRegex),this.numbers=e.match(a.floatRegex)}toString(){for(var e=this.parts[0],t=0;t<this.numbers.length;t++)e+=this.numbers[t]+this.parts[t+1];return e}}t.default=o},856:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=class{constructor(e){this.type=e}}},287:function(e,t,n){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const a=n(669),i=r(n(856));class o extends i.default{constructor(e){super("length"),e=e||"0px",isNaN(e)||(e=Math.round(e)+"px"),this.length=Number(e.match(a.floatRegex)[0]),this.units=e.split(a.floatRegex)[1]||"px"}toString(){return`${this.length}${this.units}`}}t.default=o},70:function(e,t,n){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const a=r(n(856));class i extends a.default{constructor(e){super("number"),this.value=Number(e)}toString(){return this.value}}t.default=i},939:function(e,t,n){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const a=n(669),i=n(718),o=r(n(170)),s=r(n(856)),l=r(n(287));class u extends s.default{constructor(e){super("transformation"),this.transformations=[],"string"!=typeof e?(0,a.isF)(e)&&e(this):this.simpleValue=e}toString(){if(this.simpleValue)return this.simpleValue;for(var e="",t=0;t<this.transformations.length;t++){var n=this.transformations[t];e+=n.transformation+"(";for(var r=0;r<n.args.length;r++)e+=n.args[r].toString()+",";e=e.substring(0,e.length-1),e+=") "}return e.trim()}appendTransformString(e,t){return this.transformations.push({transformation:e,args:t}),this}matrix3d(e,t,n,r,a,i,o,s,l,u,c,d,h,f,p,g){return this.appendTransformString("matrix3d",arguments)}matrix(e,t,n,r,a,i){return this.appendTransformString("matrix",arguments)}translate(e,t){return 1==arguments.length?this.appendTransformString("translate",[new l.default(e)]):this.appendTransformString("translate",[new l.default(e),new l.default(t)])}translate3d(e,t,n){return this.appendTransformString("translate3d",[new l.default(e),new l.default(t),new l.default(n)])}translateX(e){return this.appendTransformString("translateX",[new l.default(e)])}translateY(e){return this.appendTransformString("translateY",[new l.default(e)])}translateZ(e){return this.appendTransformString("translateZ",[new l.default(e)])}scale(e,t){return this.appendTransformString("scale",[e,t??1])}scale3d(e,t,n){return this.appendTransformString("scale3d",[e,t,n])}scaleX(e){return this.appendTransformString("scaleX",[e])}scaleY(e){return this.appendTransformString("scaleY",[e])}scaleZ(e){return this.appendTransformString("scaleZ",[e])}rotate(e){return this.appendTransformString("rotate",[new o.default(e)])}rotate3d(e,t,n,r){return this.appendTransformString("rotate3d",[e,t,n,new o.default(r)])}rotate3dDeg(e,t,n,r){return this.rotate3d(e,t,n,r)}rotate3dRad(e,t,n,r){return this.rotate3d(e,t,n,`${r}rad`)}rotate3dGrad(e,t,n,r){return this.rotate3d(e,t,n,`${r}grad`)}rotate3dTurn(e,t,n,r){return this.rotate3d(e,t,n,`${r}turn`)}rotateX(e){return this.appendTransformString("rotateX",[new o.default(e)])}rotateY(e){return this.appendTransformString("rotateY",[new o.default(e)])}rotateZ(e){return this.appendTransformString("rotateZ",[new o.default(e)])}skew(e,t){return 1==arguments.length?this.appendTransformString("skew",[new o.default(e)]):this.appendTransformString("skew",[new o.default(e),new o.default(t)])}skewX(e){return this.appendTransformString("skewX",[new o.default(e)])}skewY(e){return this.appendTransformString("skewY",[new o.default(e)])}perspective(e){return this.appendTransformString("perspective",[new l.default(e)])}}t.default=u;const c="translate|translate3d|translateX|translateY|translateZ|perspective".split("|"),d="rotate|rotateX|rotateY|rotateZ|skew|skewX|skewY".split("|");for(let e=0;e<c.length;e++){let t=c[e];for(let e=0;e<i.AllLengthUnits.length;e++){let n=i.AllLengthUnits[e];u.prototype[t+(n.jsName||n.unit)]=function(){for(var e=0;e<arguments.length;e++)arguments[e]=arguments[e]+n.unit.toLowerCase();return u.prototype[t].apply(this,arguments)}}}for(let e=0;e<d.length;e++){let t=d[e];for(let e=0;e<i.AllAngleUnits.length;e++){let n=i.AllAngleUnits[e];u.prototype[t+n.unit]=function(){for(var e=0;e<arguments.length;e++)arguments[e]=arguments[e]+n.unit.toLowerCase();return u.prototype[t].apply(this,arguments)}}}},761:function(e,t,n){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const a=r(n(856));class i extends a.default{constructor(e){super("unknown"),this.value=e}toString(){return this.value}}t.default=i},300:function(e,t,n){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const a=r(n(856));class i extends a.default{constructor(e){if(super("url"),this.url=null,!e||0==e.length||1==e.length&&""==e[0]||"none"==e[0]||"initial"==e[0]||"inherit"==e[0])this.url=null;else{this.url=[];for(var t=0;t<e.length;t++)if(0===e[t].toLowerCase().indexOf("url")){var n=e[t].substring(e[t].indexOf("("),e[t].lastIndexOf(")")).trim();(n.indexOf('"')&&n.lastIndexOf('"')==n.length-1||n.indexOf("'")&&n.lastIndexOf("'")==n.length-1)&&(n=n.substring(1,n.length-1)),this.url.push(n)}else this.url.push(e[t])}}toString(){if(this.url){for(var e=[],t=0;t<this.url.length;t++)e.push('url("'+this.url[t]+'")');return e.join(", ")}return"none"}}t.default=i},782:function(e,t,n){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t._Builder=void 0;const a=n(718),i=r(n(170)),o=r(n(834)),s=r(n(392)),l=r(n(287)),u=r(n(70)),c=r(n(939)),d=r(n(761)),h=r(n(300)),f=n(669),p="data-dot-static-styles",g=new class{constructor(){this.fxInterval=1e3/60,this.lastBuilder=null,this.scopeStack=[],this.globalStyleElement=null}animateFull(e,t,n,r,a,i,o,s,l,u,c){if(!c||e.style[t]==c)if(s-o>0){switch(n){case"color":var d=Math.round((0,f.numberStep)(r.r,a.r,o,s,l)),h=Math.round((0,f.numberStep)(r.g,a.g,o,s,l)),p=Math.round((0,f.numberStep)(r.b,a.b,o,s,l)),b=m.formatNumberValue((0,f.numberStep)(r.a,a.a,o,s,l));m(e)[t](d,h,p,b);break;case"length":m(e)[t](m.formatNumberValue((0,f.numberStep)(r.length,a.length,o,s,l),r.units)+r.units);break;case"transformation":for(var _="",y=0;y<r.transformations.length;y++){var v=r.transformations[y],k=a.transformations[y];_+=v.transformation+"(";for(var w=0;w<v.args.length;w++){var C=v.args[w],S=k.args[w],x=isNaN(C)?C.length||C.angle||C.value||0:C,N=isNaN(S)?S.length||S.angle||S.value||0:S,O=isNaN(C)?C.units:"";_+=m.formatNumberValue((0,f.numberStep)(x,N,o,s,l),O)+O+","}_=_.substring(0,_.length-1),_+=") "}m(e)[t](_);break;default:switch(r.type){case"number":m(e)[t](m.formatNumberValue((0,f.numberStep)(r.value,a.value,o,s,l)));break;case"complex":var A="";for(y=0;y<r.numbers.length;y++)A+=r.parts[y],A+=m.formatNumberValue((0,f.numberStep)(r.numbers[y],a.numbers[y],o,s,l));A+=r.parts[r.parts.length-1],m(e)[t](A);break;default:console.warn("Unexpected data type for animation.")}}var P=window.performance&&window.performance.now?window.performance.now():null,D=e.style[t],T=function(c){var d=P?window.performance.now()-P:g.fxInterval;g.animateFull(e,t,n,r,a,i,o+d,s,l,u,D)};window.requestAnimationFrame?window.requestAnimationFrame(T):window.setTimeout(T,g.fxInterval)}else m(e)[t](i),u&&u()}extendDothtml(e,t,n){let r=_.prototype;if(r[t]=function(){if(0==arguments.length)return this;for(var r=[],a=0;a<arguments.length;a++)r.push(arguments[a]);var i=g.convertStyleIntoDotCssObject(r,n).toString(),o=e+":"+i+";";if(this.currentCss+=o,this.targets)for(var s=0;s<this.targets.length;s++){var l=this.targets[s];"STYLE"==l.tagName?l.innerHTML=l.innerHTML.substring(0,l.innerHTML.length-1)+e+":"+i+";}":l.style[t]=i}return this},g.addPropFunctionToDotCssObject(t),"length"==n)for(var i=0;i<a.AllLengthUnits.length;i++){var o=a.AllLengthUnits[i];!function(e){r[t+(e.jsName||e.unit)]=function(){for(var n=0;n<arguments.length;n++)arguments[n]=arguments[n]+e.unit.toLowerCase();return r[t].apply(this,arguments)}}(o),g.addPropFunctionToDotCssObject(t+(o.jsName||o.unit))}for(var s in r[t].type=n,r[t].jsFriendlyProp=t,y.prototype)void 0===r[t][s]&&(r[t][s]=y.prototype[s])}convertStyleIntoDotCssObject(e,t){return e instanceof Array||(e=[e]),"color"==t?new o.default(e):"url"==t?new h.default(e):"length"!=t||isNaN(e[0])&&(-1!=e[0].indexOf(" ")||e[0].replace(f.floatRegex,"")==e[0])?"transformation"==t?new c.default(e[0]).toString():""===e[0]||isNaN(e[0])&&(""+e[0]).replace(f.floatRegex,"")==e[0]?new d.default(e[0]):isNaN(e[0])?new s.default(e[0]):new u.default(e[0]):new l.default(e[0])}compareComplexDataTypes(e,t){if("complex"!=e.type||"complex"!=t.type)return!1;if(e.numbers.length!=t.numbers.length)return!1;if(e.parts.length!=t.parts.length)return!1;for(var n=0;n<e.parts.length;n++)if(e.parts[n]!=t.parts[n])return!1;return!0}addPropFunctionToDotCssObject(e){m[e]=function(){var t=new _;return t[e].apply(t,arguments)}}computedStyleOrActualStyle(e,t){return window.getComputedStyle(e)[t]||e.style[t]}modDeg(e){return e<0&&(e=360- -e%360),e%360}},m=function(e){var t=null;if(e){if("string"==typeof e)if(e.length>2&&e.indexOf("{}")==e.length-2)e=e.substring(0,e.length-2),g.globalStyleElement||(g.globalStyleElement=document.createElement("style"),document.head.appendChild(g.globalStyleElement)),(t=[g.globalStyleElement])[0].innerHTML+=e+"{}\r\n";else{var n=g.scopeStack[0];t=n&&n.parentNode&&n.querySelectorAll?b(e,n):document.querySelectorAll(e)}(e instanceof NodeList||e instanceof Array)&&(t=e),e instanceof Node&&(t=[e])}return g.lastBuilder=new _(t),g.lastBuilder};function b(e,t){for(var n=Array.from(t.querySelectorAll(e)),r=0;r<n.length;r++){var a=n[r];if(a.__dothtml_component){n.splice(r,1),r--;for(var i=a.querySelectorAll(e),o=0;o<i.length;o++){let e=i[o];n.splice(n.indexOf(e,r+1),1)}}}var s=Array.from(t.parentNode.querySelectorAll(e)),l=s.indexOf(t);return-1!=l&&n.unshift(s[l]),n}m.version="0.16.0";class _{constructor(e){this.currentCss="",this.targets=e??null}toString(){return this.currentCss}hide(e){if(this.targets){var t=arguments[0]||{},n=t,r=t,a={};if(a.duration=r.duration||(isNaN(n)?0:n)||0,a.complete=r.complete||("function"==typeof arguments[1]?arguments[1]:"function"==typeof arguments[2]?arguments[2]:function(){}),a.hideStyle=r.hideStyle||"normal",a.animationStyle=r.animationStyle||("string"==typeof arguments[1]?arguments[1]:"ease"),a.duration>0){let e=0,t=0,n=this.targets.length;for(let r=0;r<this.targets.length;r++){let i,o=this.targets[r].style.width,s=this.targets[r].style.height,l=this.targets[r].style.opacity;i=l&&""!==l?Number(l):1;let u=this.targets[r].style.overflow;"fade"!=a.hideStyle&&(this.targets[r].style.overflow="hidden",t+=2,function(r,i,o,s,l){m(i).width.animate(0,a.duration,a.animationStyle,(function(){m(i).display("none").width(o).overflow(l),e++,e>=t*n&&a.complete(r)})),m(i).height.animate(0,a.duration,a.animationStyle,(function(){m(i).display("none").height(s),e++,e>=t*n&&a.complete(r)}))}(this,this.targets[r],o,s,u)),"shrink"!=a.hideStyle&&(t++,function(r,i,o){m(i).opacity.animate(0,a.duration,a.animationStyle,(function(){m(i).display("none").opacity(o),e++,e>=t*n&&a.complete(r)}))}(this,this.targets[r],i))}}else m(this.targets).display("none"),a.complete(this)}return this}show(e){if(this.targets){let e=arguments[0]||{},t=e,n=e,r={};if(r.duration=n.duration||(isNaN(t)?0:t)||0,r.display=n.display||"block",r.opacity=n.opacity,r.width=n.width||null,r.height=n.height||null,r.complete=n.complete||("function"==typeof arguments[1]?arguments[1]:"function"==typeof arguments[2]?arguments[2]:function(){}),r.showStyle=n.showStyle||"normal",r.animationStyle=n.animationStyle||("string"==typeof arguments[1]?arguments[1]:"ease"),!(r.duration>0))return m(this.targets).display(r.display);{let e=0,t=this.targets.length,n=0;for(let a=0;a<this.targets.length;a++){let i=r.opacity;if(void 0===r.opacity&&(i=parseFloat(this.targets[a].style.opacity)||1),"fade"!=r.showStyle){n+=2;let i=r.width||this.targets[a].style.width,o=r.height||this.targets[a].style.height;m(this.targets[a]).width(0),m(this.targets[a]).height(0),m(this.targets[a]).width.animate(i,r.duration,r.animationStyle,(function(){e++,e>=t*n&&r.complete()})),m(this.targets[a]).height.animate(o,r.duration,r.animationStyle,(function(){e++,e>=t*n&&r.complete()}))}m(this.targets[a]).opacity(0),m(this.targets[a]).display(r.display),"grow"!=r.showStyle&&(n++,m(this.targets[a]).opacity.animate(i,r.duration,r.animationStyle,(function(){e++,e==t*n&&r.complete()})))}}}return this}fadeOut(e,t){return this.hide({duration:isNaN(e)?400:Number(e),hideStyle:"fade",complete:t})}fadeIn(e,t){return this.show({duration:isNaN(e)?400:Number(e),showStyle:"fade",complete:t})}}t._Builder=_,m.prototype.toString=_.prototype.toString;class y{constructor(){this.apply=Function.apply,this.call=Function.call,this.type=null,this.jsFriendlyProp=null}toString(){if(g.lastBuilder.targets){let e=null;if(g.lastBuilder.targets.length>1){e=[];for(let t=0;t<g.lastBuilder.targets.length;t++)e.push(g.lastBuilder.targets[t].style[this.jsFriendlyProp])}else e=g.lastBuilder.targets[0].style[this.jsFriendlyProp];return e}return null}val(){if(g.lastBuilder.targets){let e=null;if(g.lastBuilder.targets.length>1){e=null;for(let t=0;t<g.lastBuilder.targets.length;t++)g.lastBuilder.targets[0].style[this.jsFriendlyProp]?e.push(g.convertStyleIntoDotCssObject(g.lastBuilder.targets[t].style[this.jsFriendlyProp],this.type)):e.push(null)}else e=g.lastBuilder.targets[0].style[this.jsFriendlyProp]?g.convertStyleIntoDotCssObject(g.lastBuilder.targets[0].style[this.jsFriendlyProp],this.type):null;return e}return null}animate(e,t,n,r){if(t=isNaN(t)?400:t||0,g.lastBuilder&&g.lastBuilder.targets){!r&&n&&n.call&&n.apply&&(r=n,n=void 0);for(let a=0;a<g.lastBuilder.targets.length;a++){let o=g.lastBuilder.targets[a],s=null,u=null,c=null;if(u=g.convertStyleIntoDotCssObject(e,this.type),"transformation"==this.type&&(s=g.convertStyleIntoDotCssObject(o.style[this.jsFriendlyProp],this.type)),s||(s=g.convertStyleIntoDotCssObject(g.computedStyleOrActualStyle(o,this.jsFriendlyProp),this.type)),c=u.toString(),"length"==this.type){if(s.units!=u.units)if(0==s.length)s.units=u.units,s.length=0;else if(0==u.length)u.units=s.units,u.length=0;else{let e=m.lengthToPx(s.toString(),this.jsFriendlyProp,o),t=m.lengthToPx(u.toString(),this.jsFriendlyProp,o);s.length=e,s.units="px",u.length=t,u.units="px"}}else if("color"==this.type);else if("transformation"==this.type){let e="",t="",n=s.transformations.length-1,r=u.transformations.length-1;for(;n>=0||r>=0;){let o="",c=null,d=null;if(n>=0&&r>=0&&s.transformations[n].transformation==u.transformations[r].transformation){let e=s.transformations[n],t=u.transformations[r];o=e.transformation,c=e.args,d=t.args,n--,r--}else if(n>=r){let e=s.transformations[n];if(o=e.transformation,c=e.args,"matrix"==o)d=[1,0,0,1,0,0];else if("matrix3d"==o)d=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];else{let e=-1==o.indexOf("scale")?0:1;d=[];for(let t=0;t<c.length;t++)d.push(isNaN(c[t])?isNaN(c[t].angle)?isNaN(c[t].length)?0:new l.default(0):new i.default(0):e)}n--}else{let e=u.transformations[r];if(o=e.transformation,d=e.args,"matrix"==o)c=[1,0,0,1,0,0];else if("matrix3d"==o)c=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];else{let e=-1==o.indexOf("scale")?0:1;c=[];for(let t=0;t<d.length;t++)c.push(isNaN(d[t])?isNaN(d[t].angle)?isNaN(d[t].length)?0:new l.default(0):new i.default(0):e)}r--}if(e=") "+e,t=") "+t,-1!=o.indexOf("rotate")){let e=c[c.length-1].angle,t=d[d.length-1].angle,n=m.angleSubtract(t,e);c[c.length-1].angle=t-n}for(let n=c.length-1;n>=0;n--)e=","+c[a]+e,t=","+d[a]+t;e=o+"("+e.substring(1),t=o+"("+t.substring(1)}s=g.convertStyleIntoDotCssObject(e,"transformation"),u=g.convertStyleIntoDotCssObject(t,"transformation")}else if("number"==s.type&&"number"==u.type);else{if("complex"!=s.type||"complex"!=u.type){console.warn("Couldn't animate "+this.jsFriendlyProp+". Not a recognizable length, color, or number.");continue}if(!g.compareComplexDataTypes(s,u)){console.warn("Couldn't animate "+this.jsFriendlyProp+". Value mismatch.");continue}}g.animateFull(o,this.jsFriendlyProp,s.type||this.type,s,u,c,g.fxInterval,t,n||"ease",r)}}return g.lastBuilder}}m.formatNumberValue=function(e,t){return"px"===t?Math.round(e):Math.round(100*e)/100};const v={color:"color|background-Color|border-Bottom-Color|border-Color|border-Left-Color|border-Right-Color|border-Top-Color|text-Decoration-Color|outline-Color|column-Rule-Color",length:"background-Size|border-Bottom-Left-Radius|border-Bottom-Right-Radius|border-Bottom-Width|border-Image-Width|border-Left-Width|border-Radius|border-Right-Width|border-Top-Left-Radius|border-Top-Right-Radius|border-Top-Width|border-Width|bottom|height|left|margin|margin-Bottom|margin-Left|margin-Right|margin-Top|max-Height|max-Width|min-Height|min-Width|padding|padding-Bottom|padding-Left|padding-Right|padding-Top|right|top|width|line-Height|flex-Basis|font-Size",url:"background-Image|border-Image|list-Style-Image|content|image-Orientation",transformation:"transform",misc:"opacity|background|background-Attachment|background-Blend-Mode|background-Position|background-Repeat|background-Clip|background-Origin|border|border-Bottom|border-Bottom-Style|border-Image-Outset|border-Image-Repeat|border-Image-Slice|border-Image-Source|border-Left|border-Left-Style|border-Right|border-Right-Style|border-Style|border-Top|border-Top-Style|box-Decoration-Break|box-Shadow|clear|clip|display|float|overflow|box|overflow-X|overflow-Y|position|visibility|vertical-Align|z-Index|align-Content|align-Items|align-Self|flex|flex-Basis|flex-Direction|flex-Flow|flex-Grow|flex-Shrink|flex-Wrap|grid|grid-Area|grid-Auto-Columns|grid-auto-Rows|grid-Column|grid-Column-End|grid-Column-Gap|grid-Column-Start|grid-Gap|grid-Row|grid-Row-End|grid-Row-Gap|grid-Row-Start|grid-Template|grid-Template-Areas|grid-Template-Columns|grid-Template-Rows|justify-Content|order|hanging-Punctuation|hyphens|letter-Spacing|line-Break|overflow-Wrap|tab-Size|text-Align|text-Align-Last|text-Combine-Upright|text-Indent|text-Justify|text-Transform|white-Space|word-Break|word-Spacing|word-Wrap|text-Decoration|text-Decoration-Line|text-Decoration-Style|text-Shadow|text-Underline-Position|font|font-Family|font-Feature-Settings|font-Kerning|font-Language-Override|font-Size-Adjust|font-Stretch|font-Style|font-Synthesis|font-Variant|font-Variant-Alternates|font-Variant-Caps|font-Variant-East-Asian|font-Variant-Ligatures|font-Variant-Numeric|font-Variant-Position|font-Weight|direction|text-Orientation|text-Combine-Upright|unicode-Bidi|user-Select|writing-Mode|border-Collapse|border-Spacing|caption-Side|empty-Cells|table-Layout|counter-Increment|counter-Reset|list-Style|list-Style-Position|list-Style-Type|animation|animation-Delay|animation-Direction|animation-Duration|animation-Fill-Mode|animation-Iteration-Count|animation-Name|animation-Play-State|animation-Timing-Function|backface-Visibility|perspective2d|perspective-Origin|transform-Origin|transform-Style|transition|transition-Property|transition-Duration|transition-Timing-Function|transition-Delay|box-Sizing|cursor|ime-Mode|nav-Down|nav-Index|nav-Left|nav-Right|nav-Up|outline|outline-Offset|outline-Style|outline-Width|resize|text-Overflow|break-After|break-Before|break-Inside|column-Count|column-Fill|column-Gap|column-Rule|column-Rule-Style|column-Rule-Width|column-Span|column-Width|columns|widows|orphans|page-Break-After|page-Break-Before|page-Break-Inside|marks|quotes|filter|image-Rendering|image-Resolution|object-Fit|object-Position|mask|mask-Type|mark|mark-After|mark-Before|phonemes|rest|rest-After|rest-Before|voice-Balance|voice-Duration|voice-Pitch|voice-Pitch-Range|voice-Rate|voice-Stress|voice-Volume|marquee-Direction|marquee-Play-Count|marquee-Speed|marquee-Style|pointer-Events"};for(var k in m.matrixMultiply3D=function(e,t){if(16!=e.length||16!=t.length)throw"3D matrices must be arrays of 16 length.";for(var n=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],r=0;r<4;r++)for(var a=0;a<4;a++)for(var i=0;i<4;i++)n[r+4*a]+=Number(e[r+4*i])*Number(t[i+4*a]);return n},m.cacheScopedStaticStyles=function(e){let t=b("*",e);for(let e of t)e.hasAttribute("style")&&e.setAttribute(p,e.getAttribute("style"))},m.clearDynamicStyles=function(e){let t=b("*",e);for(let e of t)e.removeAttribute("style"),e.hasAttribute(p)&&e.setAttribute("style",e.getAttribute(p))},m.scopeToEl=function(e){return g.scopeStack.unshift(e),this},m.unscope=function(){return g.scopeStack.shift(),this},v){let e=v[k].split("|");for(var w in e)g.extendDothtml(e[w].toLowerCase(),e[w].replace(new RegExp("-","g"),""),k)}t.default=m},718:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AllAngleUnits=t.AllLengthUnits=void 0,t.AllLengthUnits=[{unit:"Em"},{unit:"Ex"},{unit:"Ch"},{unit:"Rem"},{unit:"Vw"},{unit:"Vh"},{unit:"Vmin"},{unit:"Vmax"},{unit:"%",jsName:"P"},{unit:"Cm"},{unit:"Mm"},{unit:"In"},{unit:"Px"},{unit:"Pt"},{unit:"Pc"}],t.AllAngleUnits=[{unit:"Deg"},{unit:"Grad"},{unit:"Rad"},{unit:"Turn"}]}},t={},n=function n(r){var a=t[r];if(void 0!==a)return a.exports;var i=t[r]={exports:{}};return e[r].call(i.exports,i,i.exports,n),i.exports}(220);module.exports=n})();
1
+ /*! For license information please see dothtml.js.LICENSE.txt */
2
+ (()=>{"use strict";var e={555:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ConditionalArgCallback=t.ArrayArgCallback=t.ContentArgCallback=t.AttrArgCallback=t.ArgCallback=void 0;class n{constructor(e,t){this.el=e,this.f=t}}t.ArgCallback=n,t.AttrArgCallback=class extends n{constructor(e,t,n){super(e,n),this.attr=t}updateContent(e){this.el.setAttribute(this.attr,this.f())}},t.ContentArgCallback=class extends n{constructor(e,t){super(e,t)}updateContent(e,t){e(this.el).empty().h(this.f(t))}},t.ArrayArgCallback=class extends n{constructor(e,t){super(null,t),this.dotTarget=e}updateContent(){}},t.ConditionalArgCallback=class extends n{constructor(e,t,n,r){super(null,n),this.startNode=e,this.endNode=t,this.condition=r,this.lastValue=void 0}updateContent(e){if(this.lastValue!=!!this.condition())if(this.lastValue=!this.lastValue,this.lastValue)e._appendOrCreateDocument(this.f,this.endNode.parentNode,this.endNode);else do{var t=this.startNode.nextSibling;t&&t!=this.endNode&&t.parentNode.removeChild(t)}while(this.startNode.nextSibling&&this.startNode.nextSibling!=this.endNode)}}},999:function(e,t,n){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const a=r(n(969)),i=r(n(150)),o=n(669),s=r(n(177)),l=n(555);class u{#e;#t;#n;#r;static initializeComponent(e){e.constructor.__dotComponentInitialized||(e.constructor.__dotComponentInitialized=!0,e.constructor.__dotClassNumb=o.ClassPrefix.next,e.constructor.__activePropContainer=function(e){this.__component=e},(0,o.eachK)(e.props,((t,n)=>{u.createProp(e.constructor.__activePropContainer,t)})))}static build(e){return u.initializeComponent(e),o.GlobalComponentStack.push(e),e.created&&e.created(...e.__args),e.__built&&(0,s.default)("CB"),e.__built=!0,e.__propContainer={activePropConstructor:e.constructor.__activePropContainer,rawProps:e.props||{},activeProps:new e.constructor.__activePropContainer(e),propDependencies:{},bindings:{}},e.props=e.__propContainer.activeProps,(0,o.eachK)(e.__propContainer.rawProps,((t,n)=>{e.__propContainer.bindings[t]=[],e.props[t]=n})),u.initializeEventHandlers(e),u.rebuild(e),e.ready&&(0,o.sT)((()=>{o.GlobalComponentStack.push(e),e.ready(),o.GlobalComponentStack.pop()}),0),o.GlobalComponentStack.pop(),e.$el}static rebuild(e){e.$el,e.__eventsInitialized||(e.#t=!0);let t=e.builder(...e.__args);e.#t=!1;let n=t.getLast();(!n||n.parentNode.childNodes.length>1)&&(0,s.default)("C#",e.name||e.constructor.name||"(unnamed obj)"),e.__$el=n,e.$el.__dothtml_component=e,e.style&&(e.$styleBuilder=function(){i.default.css.scopeToEl(e.$el),e.__stylesSet||(i.default.css.cacheScopedStaticStyles(e.$el),e.__stylesSet=!0),i.default.css.clearDynamicStyles(e.$el),e.style(i.default.css),i.default.css.unscope()},e.__eventsInitialized||(e.#e=!0),e.$updateStyles(),e.#e=!1),e.built&&e.built()}static initializeEventHandlers(e){e.__eventsInitialized||(e.__eventsInitialized=!0,(0,o.eachK)(e.events,((t,n)=>{e.events[t]=function(){for(let n of e.events[t].__handlers)n.apply(this,arguments)},e.events[t].__handlers=[]})))}static createProp(e,t){Object.defineProperty(e.prototype,t,{configurable:!1,enumerable:!1,get:function(){i.default.__lastProp=t,i.default.__lastIndex=null,i.default.__lastComponent=this.__component;let e=this.__component.__propContainer.rawProps[t];return u.configureDependency(this.__component,t),e},set:function(e){let n=e;e instanceof Array&&(n=new a.default(e),n.addEventListener("read",(e=>{i.default.__lastIndex=e.index}))),this.__component.__propContainer.rawProps[t]=n;for(let e of this.__component.__propContainer.bindings[t])(0,i.default)(e.element).as(i.default.input).setVal(n);return u.updateProp(this.__component,t),n}})}static configureDependency(e,t){var n=i.default.__currentArgCallback[i.default.__currentArgCallback.length-1];if(n){let i=e.__propContainer.rawProps[t];i instanceof a.default&&(i.addEventListener("itemadded",(function(r){n instanceof l.ArrayArgCallback?n.dotTarget._appendOrCreateDocument(n.f(r.item,r.index),void 0,r.index):n&&u.updateProp(e,t)})),i.addEventListener("itemset",(function(r){if(n instanceof l.ArrayArgCallback){var a=n.dotTarget.__document,i=a.childNodes[r.index];a.removeChild(i),n.dotTarget._appendOrCreateDocument(n.f(r.item,r.index),void 0,r.index)}else n&&u.updateProp(e,t)})),i.addEventListener("itemremoved",(function(r){n instanceof l.ArrayArgCallback?n.dotTarget.__document.removeChild(n.dotTarget.__document.childNodes[r.index]):n&&u.updateProp(e,t)})));var r=e.__propContainer.propDependencies[t];r||(r=e.__propContainer.propDependencies[t]=[]),r.push(n)}e.#e&&(e.#n[t]=!0),e.#t&&(e.#r[t]=!0)}static updateProp(e,t){let n=e.__propContainer.propDependencies[t],r=e.__propContainer.rawProps[t],a=!1;for(let o=0;o<(n||[]).length;o++){let s=n[o];s.updateContent(i.default,r),(e.#n[t]||s instanceof l.AttrArgCallback&&"class"==s.attr)&&(a=!0)}a&&e.$updateStyles()}constructor(...e){this.#e=!1,this.#t=!1,this.#n={},this.#r={},this.__built=!1,this.__stylesSet=!1,this.__eventsInitialized=!1,this.$refs={},this.__args=e}created(...e){}ready(){}deleting(){}deleted(){}built(){}on(e,t){u.initializeEventHandlers(this);let n=this.events&&this.events[e];n||(0,s.default)("UE",e);let r=n.__handlers;-1==r.indexOf(t)&&r.push(t)}off(e,t){let n=this.events&&this.events[e];n||(0,s.default)("UE",e);let r=n.__handlers,a=r.indexOf(t);a>-1&&r.splice(a,1)}get $el(){return this.__$el}$updateStyles(){this.$styleBuilder&&this.$styleBuilder()}}t.default=u},669:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.numberStep=t.floatRegex=t.GlobalComponentStack=t.ClassPrefix=t.str=t.sT=t.isF=t.eachK=void 0,t.eachK=function(e,t){if(e)for(var n=Object.keys(e),r=0;r<n.length;r++)t(n[r],e[n[r]])},t.isF=function(e){return e&&e.constructor&&e.call&&e.apply},t.sT=setTimeout,t.str=function(e,t){return(e||"").toString(t)},t.ClassPrefix=new class{constructor(){this.current=65536}reset(){this.current=65536}get next(){return this.current++}},t.GlobalComponentStack=[],t.floatRegex=new RegExp("[-+]?[0-9]*\\.?[0-9]+(?:[eE][-+]?[0-9]+)?","g"),t.numberStep=function(e,t,n,r,a){switch(e=Number(e),t=Number(t),a){case"geometric":case"exponential":case"ease":return e+.5*(1-Math.cos(Math.PI*(n/r)))*(t-e);default:return e+n/r*(t-e)}}},150:function(e,t,n){var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var a=Object.getOwnPropertyDescriptor(t,n);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,a)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return a(t,e),t},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ATTRIBUTE_MODE=t.SELECTOR_MODE=void 0;const s=o(n(351)),l=i(n(782)),u=o(n(177)),c=n(669),d=o(n(999)),h=n(555),p=o(n(969)),f=function(e){var n=e?"string"==typeof e?document.querySelectorAll(e):e instanceof Element||e instanceof Node?[e]:e instanceof NodeList||e instanceof Array&&e[0]&&(e[0]instanceof Element||e[0]instanceof Node)?e:[]:[],r=new C;return n.length>0&&(r.__document=n[0]),f.__selectionMode=t.SELECTOR_MODE,r},g="DOTHTML-DEFER";var m=0;function b(e,t){S[e]=f[e]=t}function _(e){var t=null,n=e.__dothtml_component;n&&(n.deleting&&n.deleting(),n.__$el=null,t=n.deleted),e.parentNode&&e.parentNode.removeChild(e),t&&t.apply(n)}function y(e,t,n,r){e.addEventListener?e.addEventListener(t,n,r||!1):e.attachEvent("on"+t,n)}function v(e){b(e,(function(t){return this.el(e,t)}))}function k(e,t){S[t||e]=function(t){return this.attr(e,t)}}t.SELECTOR_MODE=1,t.ATTRIBUTE_MODE=2;var w,C=function(e,n){this.__document=e,this.__lastNode=e?e.lastChild:null,this.__if=null,this.__pendingCalls=[],this.__anonAttrFuncs={},this.__classPrefix=n||0,this.__classedElements=[],this.__selectionMode=t.SELECTOR_MODE},S=C.prototype,x=["a","aside","abbr","address","area","article","audio","b","bdi","bdo","blockQuote","body","br","button","canvas","caption","cite","code","col","colGroup","content","data","dataList","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldSet","figCaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hr","i","iFrame","img","input","ins","kbd","keyGen","label","legend","li","main","map","mark","menu","menuItem","meter","nav","object","ol","optGroup","option","output","p","param","pre","progress","q","rp","rt","ruby","s","samp","section","select","small","source","span","strong","svg","sub","summary","sup","table","tBody","td","textArea","tFoot","th","tHead","time","tr","track","u","ul","var","video","wbr"],N=["accept","accessKey","action","align","aLink","alt","archive","autoComplete","autoFocus","autoPlay","autoSave","axis","background","bgColor","border","buffered","cellPadding","cellSpacing","challenge","char","charOff","checked","classId","clear","codeBase","codeType","color","cols","colSpan","compact","contentEditable","contextMenu","controls","coords","dateTime","declare","default","dir","dirName","disabled","download","draggable","dropZone","encType","face","font","fontFace","fontFaceFormat","fontFaceName","fontFaceSrc","fontFaceUri","fontSpecification","for","foreignObject","formAction","frame","frameBorder","headers","height","hidden","high","hRef","hRefLang","hSpace","icon","id","images","isMap","itemProp","keyType","kind","lang","list","longDesc","loop","low","manifest","marginHeight","marginWidth","max","maxLength","media","metadata","method","min","missingGlyph","multiple","muted","name","noHRef","noResize","noShade","noValidate","nowrap","open","optimum","pattern","ping","placeholder","poster","preload","prompt","radioGroup","readOnly","rel","required","rev","reversed","rows","rowSpan","rules","sandbox","scope","scrolling","seamless","selected","shape","size","sizes","spellCheck","src","srcDoc","srcLang","srcSet","standby","start","step","style","tabIndex","target","title","type","useMap","vAlign","value","valueType","width","wrap"],O=[["quoteCite","cite"],["objectData","data"],["whichForm","form"],["trackLabel","label"],["colSpan","span"],["tableSummary","summary"],["optionLabel","label"],["acceptCharset","accept-charset"]],P=["onAbort","onBlur","onChange","onInput","onCanPlay","onCantPlayThrough","onClick","onCopy","onContextMenu","onCueChange","onCut","onDblClick","onDrag","onDragEnd","onDragEnter","onDragLeave","onDragOver","onDragStart","onDrop","onDurationChange","onEmptied","onEnded","onError","onFocus","onHashChange","onInvalid","onKeyDown","onKeyPress","onKeyUp","onLoad","onLoadedData","onLoadedMetadata","onLoadStart","onMouseDown","onMouseEnter","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onMouseWheel","onOffline","onOnline","onPageHide","onPagePaste","onPageShow","onPause","onPlay","onPlaying","onPopState","onProgress","onRateChange","onReset","onResize","onScroll","onSearch","onSeeked","onSeeking","onSelect","onStalled","onStorage","onSubmit","onSuspend","onTimeUpdate","onToggle","onUnload","onVolumeChange","onWaiting","onWheel"];for(w in x)v(x[w]);for(w in N)k(N[w]);for(w in O)k(O[w][1],O[w][0]);for(w in P)k(P[w]);b("as",(function(e){return this})),b("_getNewDocument",(function(){return document.createElement("DOTHTML-DOCUMENT")})),b("_getAnInstance",(function(){if(this.__document||this.__pendingCalls.length>0)return this;var e=new C(null,this.__classPrefix);return e.__if=this.__if,e})),b("_getLastChildOrNull",(function(){return this.__document&&this.__document.lastChild?this.__document.lastChild:null})),b("getLast",(function(){return this._getLastChildOrNull()})),b("getCurrent",(function(){let e;switch(f.__selectionMode){case t.SELECTOR_MODE:e=this.__document;break;case t.ATTRIBUTE_MODE:e=this.getLast()||this.__document}return e})),S.toString=function(){return this.__document?this.__document.innerHTML:""},S.ref=function(e){let t=this.getLast(),n=c.GlobalComponentStack.length;return t&&n>0&&(c.GlobalComponentStack[n-1].$refs[e]=t),this},b("_evalContent",(function(e,t){if(null==e||null==e)return null;if("string"==typeof e||"number"==typeof e||"boolean"==typeof e){let t=new C(this._getNewDocument(),this.__classPrefix);return t.__document.innerHTML=e,t.__document.childNodes}if(e instanceof Node)return e;if("[object Array]"===Object.prototype.toString.call(e)){let t=new C(this._getNewDocument(),this.__classPrefix);for(let n=0;n<e.length;n++)t._appendOrCreateDocument(e[n]);if(t.__document)return t.__document.childNodes}else{if((0,c.isF)(e))return this._evalContent(e(),t);if(e instanceof d.default)return this._evalContent(d.default.build(e));if(e instanceof C){for(let n=0;n<e.__pendingCalls.length;n++)t.push(e.__pendingCalls[n]);let n=this.__classPrefix;for(let t in e.__classedElements){let r=e.__classedElements[t];n?r.className="dot-"+(0,c.str)(n,16)+"-"+r.className:this.__classedElements.push(r)}if(e.__document)return e.__document.childNodes}}return null})),b("_appendOrCreateDocument",(function(e,t,n){var r=this;if(t&&n&&isNaN(n)&&n.parentNode!=t)throw"beforeNode is not in parentEl.";t=t||(n&&isNaN(n)?n.parentNode:null)||r.__document||r._getNewDocument(),isNaN(n)||(n=t.childNodes[n]);var a=r.__document===t?r:new C(t,r.__classPrefix);a.__if=r.__if;var i,o=[],s=(0,c.isF)(e);s&&f.__currentArgCallback.push(new h.ContentArgCallback(t,e));try{i=a._evalContent(e,o)}finally{s&&f.__currentArgCallback.pop()}for(var l=0;l<o.length;l++){var u=o[l],d=(n?n.previousSibling||t:null)||t.lastChild||t;d&&"DOCUMENT"!=d.tagName?"attr"==u.type?(0,c.isF)(u.params[0])?y(d,u.name,u.params[0],u.arg3):d.setAttribute(u.name,u.params[0]):"wait"==u.type&&u.callback():a.__pendingCalls.push(u)}if(null!=i)if(i instanceof NodeList)for(;i.length>0;)n?t.insertBefore(i[0],n):t.appendChild(i[0]);else n?t.insertBefore(i,n):t.appendChild(i);return a})),b("el",(function(e,n){var r=this,a=document.createElement(e),i=r.__document||r._getNewDocument();i.appendChild(a),n&&r._appendOrCreateDocument(n,a);var o=r.__document===i?r:new C(i,r.__classPrefix);if(n&&n instanceof C)for(var s in n.__classedElements)o.__classedElements.push(n.__classedElements[s]);return f.__selectionMode=t.ATTRIBUTE_MODE,o})),b("h",(function(e){var t=this,n=t._getNewDocument();new C(n,t.__classPrefix)._appendOrCreateDocument(e);for(var r=t.__document||t._getNewDocument();n.childNodes.length>0;)r.appendChild(n.childNodes[0]);return t.__document===r?t:new C(r,t.__classPrefix)})),b("t",(function(e){var t=document.createTextNode(e),n=this.__document||this._getNewDocument();return n.appendChild(t),new C(n,this.__classPrefix)})),b("attr",(function(e,t,n){var r=this;if((0,c.isF)(t)&&(0==e.indexOf("on")&&-1!=P.indexOf(e)?e=e.substring(2).toLowerCase():(f.__anonAttrFuncs[m]=t,t="dot.__anonAttrFuncs["+m+++"](arguments[0]);")),!r.__document){var a=r._getAnInstance();return a.__pendingCalls.push({type:"attr",name:e,params:[t],arg3:n}),a}var i=r.__document.childNodes,o=i[i.length-1];if(o&&o.setAttribute)if((0,c.isF)(t))y(o,e,t,n);else{if("object"==typeof t&&!(t instanceof l._Builder)){var s=t,u=function(){var e="";return(0,c.eachK)(s,(function(t,n){(n=(0,c.isF)(n)?n():n)&&(e+=" "+t)})),e.substring(1)};f.__currentArgCallback.push(new h.AttrArgCallback(o,e,u)),t=u(),f.__currentArgCallback.pop()}var d=o.getAttribute(e);d?d+=" ":d="",o.setAttribute(e,d+(void 0===t?e:t))}return r})),b("_appendSetElement",(function(e,t){var n=this;if(!e)return(0,u.default)("A",e),n;var r=document.getElementById(e);if(!r)return(0,u.default)("F",e),n;if(n.__document)for(t||(r.innerHTML="");n.__document.childNodes.length>0;)r.appendChild(n.__document.childNodes[0]);return n})),b("iterate",(function(e,t){for(var n=this,r=0;r<e;r++){let e=null;(0,c.isF)(t)&&(e=t(r)),n=n._appendOrCreateDocument(e)}return n})),b("each",(function(e,t,n){var r=this;if((0,c.isF)(e)){if(!n)return r.defer((function(n){n.each(e,t,!0)}));var a=e;f.__currentArgCallback.push(new h.ArrayArgCallback(r,t));try{e=a()}finally{f.__currentArgCallback.pop()}}if(e instanceof Array||e instanceof p.default)for(var i=0;i<e.length;i++)r=r._appendOrCreateDocument(t(e[i],i));else{var o=Object.keys(e);for(i=0;i<o.length;i++){var s=o[i];r=r._appendOrCreateDocument(t(e[s],s))}}return r})),S.customData=function(e,t){return this.attr("data-"+e,t)},S.class=function(e){var t=this.__classPrefix;if(t){var n="dot-"+(0,c.str)(t,16)+"-";if("string"==typeof e)e=n+e;else if("object"==typeof e){var r={};(0,c.eachK)(e,(function(e,t){r[n+e]=t})),e=r}}else{var a=this.getLast();a&&this.__classedElements.push(a)}return this.attr("class",e)},S.play=function(){let e=this.getCurrent();return e.play&&e.play(),this},S.pause=function(e){let t=this.getCurrent();return t.pause&&t.pause(),e&&(t.currentTime=0),this},S.stop=function(){return this.pause(!0)},S.setVal=function(e){let t=this.getCurrent();return t?(Array.isArray&&Array.isArray(e)||!Array.isArray&&e.join?e=e.join(""):null==e&&(e=""),"checkbox"==t.type||"radio"==t.type?t.checked=!!e:"OPTION"==t.tagName?t.selected=!!e:t.value=e,this):this},S.getVal=function(){var e=this.__lastNode||this.__document;if(e&&1===e.nodeType)return"checkbox"==e.type||"radio"==e.type?!!e.checked:"OPTION"==e.tagName?!!e.selected:e.value},b("when",(function(e,t,n){var r=this._getAnInstance();if((0,c.isF)(e)){n||(n=r.__conditionalArray=[e]);var a=n.length-1;r=function(e,t,n,r){var a=document.createTextNode(""),i=document.createTextNode(""),o=new h.ConditionalArgCallback(a,i,r,t);f.__currentArgCallback.push(o);var s=t();e=e._appendOrCreateDocument(a);for(var l=0;l<n.length;l++)n[l]();return o.lastValue=s,s&&(e=e._appendOrCreateDocument(r)),e=e._appendOrCreateDocument(i),f.__currentArgCallback.pop(),e}(r,(function(){for(var t=0;t<a;t++)if(n[t]())return!1;return!!e()}),n,t)}else e?(r=r._appendOrCreateDocument((0,c.isF)(t)?t():t)).__if=!0:r.__if=!1;return r})),b("otherwiseWhen",(function(e,t){if((0,c.isF)(e)){var n=this.__conditionalArray;return n||(0,u.default)("MC"),n.push(e),this.when(e,t,n)}return this.__if?this:this.when(e,t)})),b("otherwise",(function(e){var t=this.__conditionalArray;if(t){var n=function(){return!0};return t.push(n),this.when(n,e,t)}return this.__if?this:(this.__if=null,this._getAnInstance()._appendOrCreateDocument(e))})),b("script",(function(e){var t=this.getLast();return(0,c.sT)((function(){e(t)}),0),this})),b("wait",(function(e,t){var n=this.el(g),r=n.__document.lastChild;return(0,c.sT)((()=>{n._appendOrCreateDocument(t,null,r),r.parentElement.removeChild(r)}),e),n})),b("defer",(function(e){(0,c.isF)(e)||(0,u.default)("XF","defer");var t=this.el(g),n=t.__document.lastChild;return(0,c.sT)((()=>{e(f(n.parentElement)),n.parentElement.removeChild(n)}),0),t})),b("empty",(function(){if(this.__document){for(var e=[this.__document],t=!0,n=[];e.length>0;){var r=e.shift();if(r.childNodes.length>0)for(var a=0;a<r.childNodes.length;a++)e.push(r.childNodes[a]);!t&&n.push(r),t=!1}for(;n.length>0;)_(n.pop())}return this})),b("remove",(function(){this.empty(),_(this.__document)})),b("scopeClass",(function(e,t){null==e&&(e=c.ClassPrefix.next);var n=this;n.__classPrefix=e;var r=n.h(t);return n.__classPrefix=0,r})),S.bindTo=function(e){let t=f.__lastProp,n=f.__lastIndex,r=f.__lastComponent,a=this.getLast(),i=r.props[t];null!=n&&null!=n&&(i=i[n]);let o=this.setVal(i);return y(a,"change",(function(e){r.props[t]=f(a).as(f.input).getVal()})),r.__propContainer.bindings[t].push({element:a}),o},f.resetScopeClass=function(){return c.ClassPrefix.reset(),this},f.css=l.default,f.bus=s.default,f.__currentArgCallback=[],f.__document=null,f.__if=null,f.__pendingCalls=[],f.__anonAttrFuncs={},t.default=f},220:function(e,t,n){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.DotComponent=void 0;const a=r(n(150)),i=r(n(999));a.default.version="5.2.0",a.default.Component=i.default,t.default=a.default;var o=n(999);Object.defineProperty(t,"DotComponent",{enumerable:!0,get:function(){return r(o).default}})},177:(e,t)=>{var n;Object.defineProperty(t,"__esModule",{value:!0}),n=function(e,...t){throw{A:`Can't append "${(t=t||[])[0]}".`,CB:"Unable to build the same component twice. Ensure each component is only used once.",CU:"Invalid usage: a component should at least have a name and a builder function.","C#":`Component "${t[0]}" must return exactly one child node.`,F:`Element "${t[0]}" not found.`,MC:"Can't mix static conditions with dynamic conditional rendering.",R:"Router must be passed a JSON object that contains an 'routes' array containing objects with a 'path', 'title', and 'component'.",S:"SVG is not supported by DOThtml.",UE:`Unknown event name "${t[0]}".`,XS:"Expected a string.",XF:`Expected a function in "${t[0]}".`}[e]||"Unknown error."},t.default=n},351:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});const r=n(669),a=new class{constructor(){this._callbacks={},this._checkAddEvent=function(e){var t=this._callbacks[e];return t||(this._callbacks[e]=t=[]),t}}on(e,t){this._checkAddEvent(e).push(t)}off(e,t){for(var n=this._checkAddEvent(e),r=n.length-1;n>=0;r--)n[r]==t&&n.splice(r,1)}emit(e,...t){var n=this._checkAddEvent(e);(0,r.eachK)(n,(function(e,n){n(...t)}))}flush(e){this._checkAddEvent(e).length=0}};t.default=a},969:(e,t)=>{function n(e){var t=this,n=[],r={itemadded:[],itemremoved:[],itemset:[],read:[]};function a(e){e in t||Object.defineProperty(t,e,{configurable:!0,enumerable:!0,get:function(){return i({type:"read",index:e,item:n[e]}),n[e]},set:function(t){n[e]!=t&&(n[e]=t,i({type:"itemset",index:e,item:t}))}})}function i(e){r[e.type].forEach((function(n){n.call(t,e)}))}Object.defineProperty(t,"addEventListener",{configurable:!1,enumerable:!1,writable:!1,value:function(e,t){if(!((e=(""+e).toLowerCase())in r))throw new Error("Invalid event name.");if("function"!=typeof t)throw new Error("Invalid handler.");r[e].push(t)}}),Object.defineProperty(t,"removeEventListener",{configurable:!1,enumerable:!1,writable:!1,value:function(e,t){if(!((e=(""+e).toLowerCase())in r))throw new Error("Invalid event name.");if("function"!=typeof t)throw new Error("Invalid handler.");for(var n=r[e],a=n.length;--a>=0;)n[a]===t&&n.splice(a,1)}}),Object.defineProperty(t,"push",{configurable:!1,enumerable:!1,writable:!1,value:function(){for(var e,t=0,r=arguments.length;t<r;t++)e=n.length,n.push(arguments[t]),a(e),i({type:"itemadded",index:e,item:arguments[t]});return n.length}}),Object.defineProperty(t,"pop",{configurable:!1,enumerable:!1,writable:!1,value:function(){if(n.length>-1){var e=n.length-1,r=n.pop();return delete t[e],i({type:"itemremoved",index:e,item:r}),r}}}),Object.defineProperty(t,"unshift",{configurable:!1,enumerable:!1,writable:!1,value:function(){for(var e=0,t=arguments.length;e<t;e++)n.splice(e,0,arguments[e]),a(n.length-1),i({type:"itemadded",index:e,item:arguments[e]});return n.length}}),Object.defineProperty(t,"shift",{configurable:!1,enumerable:!1,writable:!1,value:function(){if(n.length>-1){var e=n.shift();return delete t[n.length],i({type:"itemremoved",index:0,item:e}),e}}}),Object.defineProperty(t,"splice",{configurable:!1,enumerable:!1,writable:!1,value:function(e,r){var o,s=[];e=null==e?0:e<0?n.length+e:e,r=null==r?n.length-e:r>0?r:0;for(var l=[];r--;)o=n.splice(e,1)[0],s.push(o),delete t[n.length],l.push({type:"itemremoved",index:e+s.length-1,item:o});for(var u=l.length-1;u>=0;u--)i(l[u]);u=2;for(var c=arguments.length;u<c;u++)n.splice(e,0,arguments[u]),a(n.length-1),i({type:"itemadded",index:e,item:arguments[u]}),e++;return s}}),Object.defineProperty(t,"length",{configurable:!1,enumerable:!1,get:function(){return n.length},set:function(e){var r=Number(e),a=n.length;if(!(r%1==0&&r>=0))throw new RangeError("Invalid array length");return r<a?t.splice(r):r>a&&t.push.apply(t,new Array(r-a)),n.length=r,e}}),Object.getOwnPropertyNames(Array.prototype).forEach((function(e){e in t||Object.defineProperty(t,e,{configurable:!1,enumerable:!1,writable:!1,value:Array.prototype[e]})})),e instanceof Array&&t.push.apply(t,e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=n,n.prototype.length=0},170:function(e,t,n){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const a=n(669),i=r(n(856));class o extends i.default{constructor(e){super("angle"),e=e||"0deg",isNaN(e)||(e=`${Math.round(e)}deg`),this.angle=Number(e.match(a.floatRegex)[0]),this.units=e.split(a.floatRegex)[1]||"deg"}toString(){return this.angle+this.units}}t.default=o},834:function(e,t,n){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const a=r(n(856));class i extends a.default{constructor(e){if(super("color"),this.r=0,this.g=0,this.b=0,this.a=1,Array.isArray(e)&&1==e.length&&(e=e[0]),"number"==typeof e)this.b=255&e,e>>=8,this.g=255&e,e>>=8,this.r=255&e;else if("string"==typeof e)if(""==e||"none"==e||"initial"==e||"inherit"==e);else if("#"==e[0]){var t=e.split("#")[1];3==t.length?(this.r=Number("0x"+t[0]+t[0]),this.g=Number("0x"+t[1]+t[1]),this.b=Number("0x"+t[2]+t[2])):6==t.length&&(this.r=Number("0x"+t[0]+t[1]),this.g=Number("0x"+t[2]+t[3]),this.b=Number("0x"+t[4]+t[5]))}else if(0===e.toLowerCase().indexOf("rgb")){var n=e.split("(")[1],r=(n=n.split(")")[0]).split(",");3!=r.length&&4!=r.length||(this.r=Number(r[0]),this.g=Number(r[1]),this.b=Number(r[2]),this.a=Number(r[3]||1))}else{var a=0,i=0,o=0;switch(e.toLowerCase()){case"aliceblue":a=240,i=248,o=255;break;case"antiquewhite":a=250,i=235,o=215;break;case"aqua":case"cyan":a=0,i=255,o=255;break;case"aquamarine":a=127,i=255,o=212;break;case"azure":a=240,i=255,o=255;break;case"beige":a=245,i=245,o=220;break;case"bisque":a=255,i=228,o=196;break;case"black":a=0,i=0,o=0;break;case"blanchedalmond":a=255,i=235,o=205;break;case"blue":a=0,i=0,o=255;break;case"blueviolet":a=138,i=43,o=226;break;case"brown":a=165,i=42,o=42;break;case"burlywood":a=222,i=184,o=135;break;case"cadetblue":a=95,i=158,o=160;break;case"chartreuse":a=127,i=255,o=0;break;case"chocolate":a=210,i=105,o=30;break;case"coral":a=255,i=127,o=80;break;case"cornflowerblue":a=100,i=149,o=237;break;case"cornsilk":a=255,i=248,o=220;break;case"crimson":a=220,i=20,o=60;break;case"darkblue":a=0,i=0,o=139;break;case"darkcyan":a=0,i=139,o=139;break;case"darkgoldenrod":a=184,i=134,o=11;break;case"darkgray":case"darkgrey":a=169,i=169,o=169;break;case"darkgreen":a=0,i=100,o=0;break;case"darkkhaki":a=189,i=183,o=107;break;case"darkmagenta":a=139,i=0,o=139;break;case"darkolivegreen":a=85,i=107,o=47;break;case"darkorange":a=255,i=140,o=0;break;case"darkorchid":a=153,i=50,o=204;break;case"darkred":a=139,i=0,o=0;break;case"darksalmon":a=233,i=150,o=122;break;case"darkseagreen":a=143,i=188,o=143;break;case"darkslateblue":a=72,i=61,o=139;break;case"darkslategray":case"darkslategrey":a=47,i=79,o=79;break;case"darkturquoise":a=0,i=206,o=209;break;case"darkviolet":a=148,i=0,o=211;break;case"deeppink":a=255,i=20,o=147;break;case"deepskyblue":a=0,i=191,o=255;break;case"dimgray":case"dimgrey":a=105,i=105,o=105;break;case"dodgerblue":a=30,i=144,o=255;break;case"firebrick":a=178,i=34,o=34;break;case"floralwhite":a=255,i=250,o=240;break;case"forestgreen":a=34,i=139,o=34;break;case"fuchsia":case"magenta":a=255,i=0,o=255;break;case"gainsboro":a=220,i=220,o=220;break;case"ghostwhite":a=248,i=248,o=255;break;case"gold":a=255,i=215,o=0;break;case"goldenrod":a=218,i=165,o=32;break;case"gray":case"grey":a=128,i=128,o=128;break;case"green":a=0,i=128,o=0;break;case"greenyellow":a=173,i=255,o=47;break;case"honeydew":a=240,i=255,o=240;break;case"hotpink":a=255,i=105,o=180;break;case"indianred":a=205,i=92,o=92;break;case"indigo":a=75,i=0,o=130;break;case"ivory":a=255,i=255,o=240;break;case"khaki":a=240,i=230,o=140;break;case"lavender":a=230,i=230,o=250;break;case"lavenderblush":a=255,i=240,o=245;break;case"lawngreen":a=124,i=252,o=0;break;case"lemonchiffon":a=255,i=250,o=205;break;case"lightblue":a=173,i=216,o=230;break;case"lightcoral":a=240,i=128,o=128;break;case"lightcyan":a=224,i=255,o=255;break;case"lightgoldenrodyellow":a=250,i=250,o=210;break;case"lightgray":case"lightgrey":a=211,i=211,o=211;break;case"lightgreen":a=144,i=238,o=144;break;case"lightpink":a=255,i=182,o=193;break;case"lightsalmon":a=255,i=160,o=122;break;case"lightseagreen":a=32,i=178,o=170;break;case"lightskyblue":a=135,i=206,o=250;break;case"lightslategray":case"lightslategrey":a=119,i=136,o=153;break;case"lightsteelblue":a=176,i=196,o=222;break;case"lightyellow":a=255,i=255,o=224;break;case"lime":a=0,i=255,o=0;break;case"limegreen":a=50,i=205,o=50;break;case"linen":a=250,i=240,o=230;break;case"maroon":a=128,i=0,o=0;break;case"mediumaquamarine":a=102,i=205,o=170;break;case"mediumblue":a=0,i=0,o=205;break;case"mediumorchid":a=186,i=85,o=211;break;case"mediumpurple":a=147,i=112,o=219;break;case"mediumseagreen":a=60,i=179,o=113;break;case"mediumslateblue":a=123,i=104,o=238;break;case"mediumspringgreen":a=0,i=250,o=154;break;case"mediumturquoise":a=72,i=209,o=204;break;case"mediumvioletred":a=199,i=21,o=133;break;case"midnightblue":a=25,i=25,o=112;break;case"mintcream":a=245,i=255,o=250;break;case"mistyrose":a=255,i=228,o=225;break;case"moccasin":a=255,i=228,o=181;break;case"navajowhite":a=255,i=222,o=173;break;case"navy":a=0,i=0,o=128;break;case"oldlace":a=253,i=245,o=230;break;case"olive":a=128,i=128,o=0;break;case"olivedrab":a=107,i=142,o=35;break;case"orange":a=255,i=165,o=0;break;case"orangered":a=255,i=69,o=0;break;case"orchid":a=218,i=112,o=214;break;case"palegoldenrod":a=238,i=232,o=170;break;case"palegreen":a=152,i=251,o=152;break;case"paleturquoise":a=175,i=238,o=238;break;case"palevioletred":a=219,i=112,o=147;break;case"papayawhip":a=255,i=239,o=213;break;case"peachpuff":a=255,i=218,o=185;break;case"peru":a=205,i=133,o=63;break;case"pink":a=255,i=192,o=203;break;case"plum":a=221,i=160,o=221;break;case"powderblue":a=176,i=224,o=230;break;case"purple":a=128,i=0,o=128;break;case"rebeccapurple":a=102,i=51,o=153;break;case"red":a=255,i=0,o=0;break;case"rosybrown":a=188,i=143,o=143;break;case"royalblue":a=65,i=105,o=225;break;case"saddlebrown":a=139,i=69,o=19;break;case"salmon":a=250,i=128,o=114;break;case"sandybrown":a=244,i=164,o=96;break;case"seagreen":a=46,i=139,o=87;break;case"seashell":a=255,i=245,o=238;break;case"sienna":a=160,i=82,o=45;break;case"silver":a=192,i=192,o=192;break;case"skyblue":a=135,i=206,o=235;break;case"slateblue":a=106,i=90,o=205;break;case"slategray":case"slategrey":a=112,i=128,o=144;break;case"snow":a=255,i=250,o=250;break;case"springgreen":a=0,i=255,o=127;break;case"steelblue":a=70,i=130,o=180;break;case"tan":a=210,i=180,o=140;break;case"teal":a=0,i=128,o=128;break;case"thistle":a=216,i=191,o=216;break;case"tomato":a=255,i=99,o=71;break;case"turquoise":a=64,i=224,o=208;break;case"violet":a=238,i=130,o=238;break;case"wheat":a=245,i=222,o=179;break;case"white":a=255,i=255,o=255;break;case"whitesmoke":a=245,i=245,o=245;break;case"yellow":a=255,i=255,o=0;break;case"yellowgreen":a=154,i=205,o=50}this.r=a,this.g=i,this.b=o}else 3!=e.length&&4!=e.length||(this.r=e[0],this.g=e[1],this.b=e[2],4==e.length&&(this.a=e[3]))}toString(){var e=Math.round,t=Math.max,n=Math.min;return 1==this.a?"rgb("+n(255,t(0,e(this.r)))+", "+n(255,t(0,e(this.g)))+", "+n(255,t(0,e(this.b)))+")":"rgba("+n(255,t(0,e(this.r)))+", "+n(255,t(0,e(this.g)))+", "+n(255,t(0,e(this.b)))+", "+n(1,t(0,this.a))+")"}}t.default=i},392:function(e,t,n){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const a=n(669),i=r(n(856));class o extends i.default{constructor(e){super("complex"),this.parts=(" "+e+" ").split(a.floatRegex),this.numbers=e.match(a.floatRegex)}toString(){for(var e=this.parts[0],t=0;t<this.numbers.length;t++)e+=this.numbers[t]+this.parts[t+1];return e}}t.default=o},856:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=class{constructor(e){this.type=e}}},212:function(e,t,n){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const a=n(669),i=r(n(856)),o=r(n(287)),s=r(n(196)),l=r(n(834));class u extends i.default{constructor(e){super("filter"),this.filters=[],"string"!=typeof e?(0,a.isF)(e)&&e(this):this.simpleValue=e}toString(){if(this.simpleValue)return this.simpleValue;for(var e="",t=0;t<this.filters.length;t++){var n=this.filters[t];e+=n.filter+"(";for(var r=0;r<n.args.length;r++)e+=n.args[r].toString()+" ";e=e.trim()+") "}return e.trim()}appendFilterString(e,t){return this.filters.push({filter:e,args:t}),this}blur(e){return this.appendFilterString("blur",[new o.default(e)])}brightness(e){return this.appendFilterString("brightness",[new s.default(e)])}contrast(e){return this.appendFilterString("contrast",[new s.default(e)])}dropShadow(e,t,n,r){return this.appendFilterString("drop-shadow",[new o.default(e),new o.default(t),new o.default(n),new l.default(r)])}grayscale(e){return this.appendFilterString("grayscale",[new s.default(e)])}hueRotate(e){return this.appendFilterString("hue-rotate",[new s.default(e)])}invert(e){return this.appendFilterString("invert",[new s.default(e)])}opacity(e){return this.appendFilterString("opacity",[new s.default(e)])}sepia(e){return this.appendFilterString("sepia",[new s.default(e)])}saturate(e){return this.appendFilterString("saturate",[new s.default(e)])}}t.default=u},287:function(e,t,n){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const a=n(669),i=r(n(856));class o extends i.default{constructor(e){super("length"),e=e||"0px",isNaN(e)||(e=Math.round(e)+"px"),this.length=Number(e.match(a.floatRegex)[0]),this.units=e.split(a.floatRegex)[1]||"px"}toString(){return`${this.length}${this.units}`}}t.default=o},70:function(e,t,n){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const a=r(n(856));class i extends a.default{constructor(e){super("number"),this.value=Number(e)}toString(){return this.value}}t.default=i},196:function(e,t,n){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const a=r(n(287));class i extends a.default{constructor(e){super(isNaN(e)?e:`${e}%`)}}t.default=i},939:function(e,t,n){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const a=n(669),i=n(718),o=r(n(170)),s=r(n(856)),l=r(n(287));class u extends s.default{constructor(e){super("transformation"),this.transformations=[],"string"!=typeof e?(0,a.isF)(e)&&e(this):this.simpleValue=e}toString(){if(this.simpleValue)return this.simpleValue;for(var e="",t=0;t<this.transformations.length;t++){var n=this.transformations[t];e+=n.transformation+"(";for(var r=0;r<n.args.length;r++)e+=n.args[r].toString()+",";e=e.substring(0,e.length-1),e+=") "}return e.trim()}appendTransformString(e,t){return this.transformations.push({transformation:e,args:t}),this}matrix3d(e,t,n,r,a,i,o,s,l,u,c,d,h,p,f,g){return this.appendTransformString("matrix3d",arguments)}matrix(e,t,n,r,a,i){return this.appendTransformString("matrix",arguments)}translate(e,t){return 1==arguments.length?this.appendTransformString("translate",[new l.default(e)]):this.appendTransformString("translate",[new l.default(e),new l.default(t)])}translate3d(e,t,n){return this.appendTransformString("translate3d",[new l.default(e),new l.default(t),new l.default(n)])}translateX(e){return this.appendTransformString("translateX",[new l.default(e)])}translateY(e){return this.appendTransformString("translateY",[new l.default(e)])}translateZ(e){return this.appendTransformString("translateZ",[new l.default(e)])}scale(e,t){return this.appendTransformString("scale",[e,t??1])}scale3d(e,t,n){return this.appendTransformString("scale3d",[e,t,n])}scaleX(e){return this.appendTransformString("scaleX",[e])}scaleY(e){return this.appendTransformString("scaleY",[e])}scaleZ(e){return this.appendTransformString("scaleZ",[e])}rotate(e){return this.appendTransformString("rotate",[new o.default(e)])}rotate3d(e,t,n,r){return this.appendTransformString("rotate3d",[e,t,n,new o.default(r)])}rotate3dDeg(e,t,n,r){return this.rotate3d(e,t,n,r)}rotate3dRad(e,t,n,r){return this.rotate3d(e,t,n,`${r}rad`)}rotate3dGrad(e,t,n,r){return this.rotate3d(e,t,n,`${r}grad`)}rotate3dTurn(e,t,n,r){return this.rotate3d(e,t,n,`${r}turn`)}rotateX(e){return this.appendTransformString("rotateX",[new o.default(e)])}rotateY(e){return this.appendTransformString("rotateY",[new o.default(e)])}rotateZ(e){return this.appendTransformString("rotateZ",[new o.default(e)])}skew(e,t){return 1==arguments.length?this.appendTransformString("skew",[new o.default(e)]):this.appendTransformString("skew",[new o.default(e),new o.default(t)])}skewX(e){return this.appendTransformString("skewX",[new o.default(e)])}skewY(e){return this.appendTransformString("skewY",[new o.default(e)])}perspective(e){return this.appendTransformString("perspective",[new l.default(e)])}}t.default=u;const c="translate|translate3d|translateX|translateY|translateZ|perspective".split("|"),d="rotate|rotateX|rotateY|rotateZ|skew|skewX|skewY".split("|");for(let e=0;e<c.length;e++){let t=c[e];for(let e=0;e<i.AllLengthUnits.length;e++){let n=i.AllLengthUnits[e];u.prototype[t+(n.jsName||n.unit)]=function(){for(var e=0;e<arguments.length;e++)arguments[e]=arguments[e]+n.unit.toLowerCase();return u.prototype[t].apply(this,arguments)}}}for(let e=0;e<d.length;e++){let t=d[e];for(let e=0;e<i.AllAngleUnits.length;e++){let n=i.AllAngleUnits[e];u.prototype[t+n.unit]=function(){for(var e=0;e<arguments.length;e++)arguments[e]=arguments[e]+n.unit.toLowerCase();return u.prototype[t].apply(this,arguments)}}}},761:function(e,t,n){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const a=r(n(856));class i extends a.default{constructor(e){super("unknown"),this.value=e}toString(){return this.value}}t.default=i},300:function(e,t,n){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const a=r(n(856));class i extends a.default{constructor(e){if(super("url"),this.url=null,!e||0==e.length||1==e.length&&""==e[0]||"none"==e[0]||"initial"==e[0]||"inherit"==e[0])this.url=null;else{this.url=[];for(var t=0;t<e.length;t++)if(0===e[t].toLowerCase().indexOf("url")){var n=e[t].substring(e[t].indexOf("("),e[t].lastIndexOf(")")).trim();(n.indexOf('"')&&n.lastIndexOf('"')==n.length-1||n.indexOf("'")&&n.lastIndexOf("'")==n.length-1)&&(n=n.substring(1,n.length-1)),this.url.push(n)}else this.url.push(e[t])}}toString(){if(this.url){for(var e=[],t=0;t<this.url.length;t++)e.push('url("'+this.url[t]+'")');return e.join(", ")}return"none"}}t.default=i},782:function(e,t,n){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t._Builder=void 0;const a=n(718),i=r(n(170)),o=r(n(834)),s=r(n(392)),l=r(n(287)),u=r(n(70)),c=r(n(939)),d=r(n(761)),h=r(n(300)),p=n(669),f=r(n(212)),g="data-dot-static-styles",m=new class{constructor(){this.fxInterval=1e3/60,this.lastBuilder=null,this.scopeStack=[],this.globalStyleElement=null}animateFull(e,t,n,r,a,i,o,s,l,u,c){if(!c||e.style[t]==c)if(s-o>0){switch(n){case"color":var d=Math.round((0,p.numberStep)(r.r,a.r,o,s,l)),h=Math.round((0,p.numberStep)(r.g,a.g,o,s,l)),f=Math.round((0,p.numberStep)(r.b,a.b,o,s,l)),g=b.formatNumberValue((0,p.numberStep)(r.a,a.a,o,s,l));b(e)[t](d,h,f,g);break;case"length":b(e)[t](b.formatNumberValue((0,p.numberStep)(r.length,a.length,o,s,l),r.units)+r.units);break;case"transformation":for(var _="",y=0;y<r.transformations.length;y++){var v=r.transformations[y],k=a.transformations[y];_+=v.transformation+"(";for(var w=0;w<v.args.length;w++){var C=v.args[w],S=k.args[w],x=isNaN(C)?C.length||C.angle||C.value||0:C,N=isNaN(S)?S.length||S.angle||S.value||0:S,O=isNaN(C)?C.units:"";_+=b.formatNumberValue((0,p.numberStep)(x,N,o,s,l),O)+O+","}_=_.substring(0,_.length-1),_+=") "}b(e)[t](_);break;default:switch(r.type){case"number":b(e)[t](b.formatNumberValue((0,p.numberStep)(r.value,a.value,o,s,l)));break;case"complex":var P="";for(y=0;y<r.numbers.length;y++)P+=r.parts[y],P+=b.formatNumberValue((0,p.numberStep)(r.numbers[y],a.numbers[y],o,s,l));P+=r.parts[r.parts.length-1],b(e)[t](P);break;default:console.warn("Unexpected data type for animation.")}}var A=window.performance&&window.performance.now?window.performance.now():null,D=e.style[t],T=function(c){var d=A?window.performance.now()-A:m.fxInterval;m.animateFull(e,t,n,r,a,i,o+d,s,l,u,D)};window.requestAnimationFrame?window.requestAnimationFrame(T):window.setTimeout(T,m.fxInterval)}else b(e)[t](i),u&&u()}extendDothtml(e,t,n){let r=y.prototype;if(r[t]=function(){if(0==arguments.length)return this;for(var r=[],a=0;a<arguments.length;a++)r.push(arguments[a]);var i=m.convertStyleIntoDotCssObject(r,n).toString(),o=e+":"+i+";";if(this.currentCss+=o,this.targets)for(var s=0;s<this.targets.length;s++){var l=this.targets[s];"STYLE"==l.tagName?l.innerHTML=l.innerHTML.substring(0,l.innerHTML.length-1)+e+":"+i+";}":l.style[t]=i}return this},m.addPropFunctionToDotCssObject(t),"length"==n)for(var i=0;i<a.AllLengthUnits.length;i++){var o=a.AllLengthUnits[i];!function(e){r[t+(e.jsName||e.unit)]=function(){for(var n=0;n<arguments.length;n++)arguments[n]=arguments[n]+e.unit.toLowerCase();return r[t].apply(this,arguments)}}(o),m.addPropFunctionToDotCssObject(t+(o.jsName||o.unit))}for(var s in r[t].type=n,r[t].jsFriendlyProp=t,v.prototype)void 0===r[t][s]&&(r[t][s]=v.prototype[s])}convertStyleIntoDotCssObject(e,t){return e instanceof Array||(e=[e]),"color"==t?new o.default(e):"url"==t?new h.default(e):"length"!=t||isNaN(e[0])&&(-1!=e[0].indexOf(" ")||e[0].replace(p.floatRegex,"")==e[0])?"transformation"==t?new c.default(e[0]).toString():"filter"==t?new f.default(e[0]).toString():""===e[0]||isNaN(e[0])&&(""+e[0]).replace(p.floatRegex,"")==e[0]?new d.default(e[0]):isNaN(e[0])?new s.default(e[0]):new u.default(e[0]):new l.default(e[0])}compareComplexDataTypes(e,t){if("complex"!=e.type||"complex"!=t.type)return!1;if(e.numbers.length!=t.numbers.length)return!1;if(e.parts.length!=t.parts.length)return!1;for(var n=0;n<e.parts.length;n++)if(e.parts[n]!=t.parts[n])return!1;return!0}addPropFunctionToDotCssObject(e){b[e]=function(){var t=new y;return t[e].apply(t,arguments)}}computedStyleOrActualStyle(e,t){return window.getComputedStyle(e)[t]||e.style[t]}modDeg(e){return e<0&&(e=360- -e%360),e%360}},b=function(e){var t=null;if(e){if("string"==typeof e)if(e.length>2&&e.indexOf("{}")==e.length-2)e=e.substring(0,e.length-2),m.globalStyleElement||(m.globalStyleElement=document.createElement("style"),document.head.appendChild(m.globalStyleElement)),(t=[m.globalStyleElement])[0].innerHTML+=e+"{}\r\n";else{var n=m.scopeStack[0];t=n&&n.parentNode&&n.querySelectorAll?_(e,n):document.querySelectorAll(e)}(e instanceof NodeList||e instanceof Array)&&(t=e),e instanceof Node&&(t=[e])}return m.lastBuilder=new y(t),m.lastBuilder};function _(e,t){for(var n=Array.from(t.querySelectorAll(e)),r=0;r<n.length;r++){var a=n[r];if(a.__dothtml_component){n.splice(r,1),r--;for(var i=a.querySelectorAll(e),o=0;o<i.length;o++){let e=i[o];n.splice(n.indexOf(e,r+1),1)}}}var s=Array.from(t.parentNode.querySelectorAll(e)),l=s.indexOf(t);return-1!=l&&n.unshift(s[l]),n}b.version="0.16.0";class y{constructor(e){this.currentCss="",this.targets=e??null}toString(){return this.currentCss}hide(e){if(this.targets){var t=arguments[0]||{},n=t,r=t,a={};if(a.duration=r.duration||(isNaN(n)?0:n)||0,a.complete=r.complete||("function"==typeof arguments[1]?arguments[1]:"function"==typeof arguments[2]?arguments[2]:function(){}),a.hideStyle=r.hideStyle||"normal",a.animationStyle=r.animationStyle||("string"==typeof arguments[1]?arguments[1]:"ease"),a.duration>0){let e=0,t=0,n=this.targets.length;for(let r=0;r<this.targets.length;r++){let i,o=this.targets[r].style.width,s=this.targets[r].style.height,l=this.targets[r].style.opacity;i=l&&""!==l?Number(l):1;let u=this.targets[r].style.overflow;"fade"!=a.hideStyle&&(this.targets[r].style.overflow="hidden",t+=2,function(r,i,o,s,l){b(i).width.animate(0,a.duration,a.animationStyle,(function(){b(i).display("none").width(o).overflow(l),e++,e>=t*n&&a.complete(r)})),b(i).height.animate(0,a.duration,a.animationStyle,(function(){b(i).display("none").height(s),e++,e>=t*n&&a.complete(r)}))}(this,this.targets[r],o,s,u)),"shrink"!=a.hideStyle&&(t++,function(r,i,o){b(i).opacity.animate(0,a.duration,a.animationStyle,(function(){b(i).display("none").opacity(o),e++,e>=t*n&&a.complete(r)}))}(this,this.targets[r],i))}}else b(this.targets).display("none"),a.complete(this)}return this}show(e){if(this.targets){let e=arguments[0]||{},t=e,n=e,r={};if(r.duration=n.duration||(isNaN(t)?0:t)||0,r.display=n.display||"block",r.opacity=n.opacity,r.width=n.width||null,r.height=n.height||null,r.complete=n.complete||("function"==typeof arguments[1]?arguments[1]:"function"==typeof arguments[2]?arguments[2]:function(){}),r.showStyle=n.showStyle||"normal",r.animationStyle=n.animationStyle||("string"==typeof arguments[1]?arguments[1]:"ease"),!(r.duration>0))return b(this.targets).display(r.display);{let e=0,t=this.targets.length,n=0;for(let a=0;a<this.targets.length;a++){let i=r.opacity;if(void 0===r.opacity&&(i=parseFloat(this.targets[a].style.opacity)||1),"fade"!=r.showStyle){n+=2;let i=r.width||this.targets[a].style.width,o=r.height||this.targets[a].style.height;b(this.targets[a]).width(0),b(this.targets[a]).height(0),b(this.targets[a]).width.animate(i,r.duration,r.animationStyle,(function(){e++,e>=t*n&&r.complete()})),b(this.targets[a]).height.animate(o,r.duration,r.animationStyle,(function(){e++,e>=t*n&&r.complete()}))}b(this.targets[a]).opacity(0),b(this.targets[a]).display(r.display),"grow"!=r.showStyle&&(n++,b(this.targets[a]).opacity.animate(i,r.duration,r.animationStyle,(function(){e++,e==t*n&&r.complete()})))}}}return this}fadeOut(e,t){return this.hide({duration:isNaN(e)?400:Number(e),hideStyle:"fade",complete:t})}fadeIn(e,t){return this.show({duration:isNaN(e)?400:Number(e),showStyle:"fade",complete:t})}}t._Builder=y,b.prototype.toString=y.prototype.toString;class v{constructor(){this.apply=Function.apply,this.call=Function.call,this.type=null,this.jsFriendlyProp=null}toString(){if(m.lastBuilder.targets){let e=null;if(m.lastBuilder.targets.length>1){e=[];for(let t=0;t<m.lastBuilder.targets.length;t++)e.push(m.lastBuilder.targets[t].style[this.jsFriendlyProp])}else e=m.lastBuilder.targets[0].style[this.jsFriendlyProp];return e}return null}val(){if(m.lastBuilder.targets){let e=null;if(m.lastBuilder.targets.length>1){e=null;for(let t=0;t<m.lastBuilder.targets.length;t++)m.lastBuilder.targets[0].style[this.jsFriendlyProp]?e.push(m.convertStyleIntoDotCssObject(m.lastBuilder.targets[t].style[this.jsFriendlyProp],this.type)):e.push(null)}else e=m.lastBuilder.targets[0].style[this.jsFriendlyProp]?m.convertStyleIntoDotCssObject(m.lastBuilder.targets[0].style[this.jsFriendlyProp],this.type):null;return e}return null}animate(e,t,n,r){if(t=isNaN(t)?400:t||0,m.lastBuilder&&m.lastBuilder.targets){!r&&n&&n.call&&n.apply&&(r=n,n=void 0);for(let a=0;a<m.lastBuilder.targets.length;a++){let o=m.lastBuilder.targets[a],s=null,u=null,c=null;if(u=m.convertStyleIntoDotCssObject(e,this.type),"transformation"==this.type&&(s=m.convertStyleIntoDotCssObject(o.style[this.jsFriendlyProp],this.type)),s||(s=m.convertStyleIntoDotCssObject(m.computedStyleOrActualStyle(o,this.jsFriendlyProp),this.type)),c=u.toString(),"length"==this.type){if(s.units!=u.units)if(0==s.length)s.units=u.units,s.length=0;else if(0==u.length)u.units=s.units,u.length=0;else{let e=b.lengthToPx(s.toString(),this.jsFriendlyProp,o),t=b.lengthToPx(u.toString(),this.jsFriendlyProp,o);s.length=e,s.units="px",u.length=t,u.units="px"}}else if("color"==this.type);else if("transformation"==this.type){let e="",t="",n=s.transformations.length-1,r=u.transformations.length-1;for(;n>=0||r>=0;){let o="",c=null,d=null;if(n>=0&&r>=0&&s.transformations[n].transformation==u.transformations[r].transformation){let e=s.transformations[n],t=u.transformations[r];o=e.transformation,c=e.args,d=t.args,n--,r--}else if(n>=r){let e=s.transformations[n];if(o=e.transformation,c=e.args,"matrix"==o)d=[1,0,0,1,0,0];else if("matrix3d"==o)d=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];else{let e=-1==o.indexOf("scale")?0:1;d=[];for(let t=0;t<c.length;t++)d.push(isNaN(c[t])?isNaN(c[t].angle)?isNaN(c[t].length)?0:new l.default(0):new i.default(0):e)}n--}else{let e=u.transformations[r];if(o=e.transformation,d=e.args,"matrix"==o)c=[1,0,0,1,0,0];else if("matrix3d"==o)c=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];else{let e=-1==o.indexOf("scale")?0:1;c=[];for(let t=0;t<d.length;t++)c.push(isNaN(d[t])?isNaN(d[t].angle)?isNaN(d[t].length)?0:new l.default(0):new i.default(0):e)}r--}if(e=") "+e,t=") "+t,-1!=o.indexOf("rotate")){let e=c[c.length-1].angle,t=d[d.length-1].angle,n=b.angleSubtract(t,e);c[c.length-1].angle=t-n}for(let n=c.length-1;n>=0;n--)e=","+c[a]+e,t=","+d[a]+t;e=o+"("+e.substring(1),t=o+"("+t.substring(1)}s=m.convertStyleIntoDotCssObject(e,"transformation"),u=m.convertStyleIntoDotCssObject(t,"transformation")}else if("number"==s.type&&"number"==u.type);else{if("complex"!=s.type||"complex"!=u.type){console.warn("Couldn't animate "+this.jsFriendlyProp+". Not a recognizable length, color, or number.");continue}if(!m.compareComplexDataTypes(s,u)){console.warn("Couldn't animate "+this.jsFriendlyProp+". Value mismatch.");continue}}m.animateFull(o,this.jsFriendlyProp,s.type||this.type,s,u,c,m.fxInterval,t,n||"ease",r)}}return m.lastBuilder}}b.formatNumberValue=function(e,t){return"px"===t?Math.round(e):Math.round(100*e)/100};const k={color:"color|background-Color|border-Bottom-Color|border-Color|border-Left-Color|border-Right-Color|border-Top-Color|text-Decoration-Color|outline-Color|column-Rule-Color",length:"background-Size|block-Size|border-Bottom-Left-Radius|border-Bottom-Right-Radius|border-Bottom-Width|border-Image-Width|border-Left-Width|border-Radius|border-Right-Width|border-Top-Left-Radius|border-Top-Right-Radius|border-Top-Width|border-Width|bottom|height|left|margin|margin-Bottom|margin-Left|margin-Right|margin-Top|max-Height|max-Width|min-Height|min-Width|padding|padding-Bottom|padding-Left|padding-Right|padding-Top|right|top|width|line-Height|flex-Basis|font-Size",url:"background-Image|border-Image|list-Style-Image|content|image-Orientation",transformation:"transform",filter:"filter|backdrop-Filter",misc:"appearance|aspect-Ratio|opacity|background|background-Attachment|background-Blend-Mode|background-Position|background-Repeat|background-Clip|background-Origin|border|border-Bottom|border-Bottom-Style|border-Image-Outset|border-Image-Repeat|border-Image-Slice|border-Image-Source|border-Left|border-Left-Style|border-Right|border-Right-Style|border-Style|border-Top|border-Top-Style|box-Decoration-Break|box-Shadow|clear|clip|display|float|overflow|box|overflow-X|overflow-Y|position|visibility|vertical-Align|z-Index|align-Content|align-Items|align-Self|flex|flex-Basis|flex-Direction|flex-Flow|flex-Grow|flex-Shrink|flex-Wrap|grid|grid-Area|grid-Auto-Columns|grid-auto-Rows|grid-Column|grid-Column-End|grid-Column-Gap|grid-Column-Start|grid-Gap|grid-Row|grid-Row-End|grid-Row-Gap|grid-Row-Start|grid-Template|grid-Template-Areas|grid-Template-Columns|grid-Template-Rows|justify-Content|order|hanging-Punctuation|hyphens|letter-Spacing|line-Break|overflow-Wrap|tab-Size|text-Align|text-Align-Last|text-Combine-Upright|text-Indent|text-Justify|text-Transform|white-Space|word-Break|word-Spacing|word-Wrap|text-Decoration|text-Decoration-Line|text-Decoration-Style|text-Shadow|text-Underline-Position|font|font-Family|font-Feature-Settings|font-Kerning|font-Language-Override|font-Size-Adjust|font-Stretch|font-Style|font-Synthesis|font-Variant|font-Variant-Alternates|font-Variant-Caps|font-Variant-East-Asian|font-Variant-Ligatures|font-Variant-Numeric|font-Variant-Position|font-Weight|direction|text-Orientation|text-Combine-Upright|unicode-Bidi|user-Select|writing-Mode|border-Collapse|border-Spacing|caption-Side|empty-Cells|table-Layout|counter-Increment|counter-Reset|list-Style|list-Style-Position|list-Style-Type|animation|animation-Delay|animation-Direction|animation-Duration|animation-Fill-Mode|animation-Iteration-Count|animation-Name|animation-Play-State|animation-Timing-Function|backface-Visibility|perspective2d|perspective-Origin|transform-Origin|transform-Style|transition|transition-Property|transition-Duration|transition-Timing-Function|transition-Delay|box-Sizing|cursor|ime-Mode|nav-Down|nav-Index|nav-Left|nav-Right|nav-Up|outline|outline-Offset|outline-Style|outline-Width|resize|text-Overflow|break-After|break-Before|break-Inside|column-Count|column-Fill|column-Gap|column-Rule|column-Rule-Style|column-Rule-Width|column-Span|column-Width|columns|widows|orphans|page-Break-After|page-Break-Before|page-Break-Inside|marks|quotes|image-Rendering|image-Resolution|object-Fit|object-Position|mask|mask-Type|mark|mark-After|mark-Before|phonemes|rest|rest-After|rest-Before|voice-Balance|voice-Duration|voice-Pitch|voice-Pitch-Range|voice-Rate|voice-Stress|voice-Volume|marquee-Direction|marquee-Play-Count|marquee-Speed|marquee-Style|pointer-Events"};for(var w in b.matrixMultiply3D=function(e,t){if(16!=e.length||16!=t.length)throw"3D matrices must be arrays of 16 length.";for(var n=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],r=0;r<4;r++)for(var a=0;a<4;a++)for(var i=0;i<4;i++)n[r+4*a]+=Number(e[r+4*i])*Number(t[i+4*a]);return n},b.cacheScopedStaticStyles=function(e){let t=_("*",e);for(let e of t)e.hasAttribute("style")&&e.setAttribute(g,e.getAttribute("style"))},b.clearDynamicStyles=function(e){let t=_("*",e);for(let e of t)e.removeAttribute("style"),e.hasAttribute(g)&&e.setAttribute("style",e.getAttribute(g))},b.scopeToEl=function(e){return m.scopeStack.unshift(e),this},b.unscope=function(){return m.scopeStack.shift(),this},k){let e=k[w].split("|");for(var C in e)m.extendDothtml(e[C].toLowerCase(),e[C].replace(new RegExp("-","g"),""),w)}t.default=b},718:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AllAngleUnits=t.AllLengthUnits=void 0,t.AllLengthUnits=[{unit:"Em"},{unit:"Ex"},{unit:"Ch"},{unit:"Rem"},{unit:"Vw"},{unit:"Vh"},{unit:"Vmin"},{unit:"Vmax"},{unit:"%",jsName:"P"},{unit:"Cm"},{unit:"Mm"},{unit:"In"},{unit:"Px"},{unit:"Pt"},{unit:"Pc"}],t.AllAngleUnits=[{unit:"Deg"},{unit:"Grad"},{unit:"Rad"},{unit:"Turn"}]}},t={},n=function n(r){var a=t[r];if(void 0!==a)return a.exports;var i=t[r]={exports:{}};return e[r].call(i.exports,i,i.exports,n),i.exports}(220);module.exports=n})();
@@ -1,4 +1,4 @@
1
- export declare type CssDataTypeToken = "url" | "number" | "length" | "angle" | "color" | "transformation" | "complex" | "unknown";
1
+ export declare type CssDataTypeToken = "url" | "number" | "length" | "angle" | "color" | "transformation" | "filter" | "complex" | "unknown";
2
2
  export default abstract class CssDataType {
3
3
  type: CssDataTypeToken;
4
4
  constructor(type: CssDataTypeToken);
@@ -0,0 +1,22 @@
1
+ import { AngleUnits, ColorFormat, NumericLength, Percentage } from "../i-dotcss";
2
+ import CssDataType from "./css-data-type";
3
+ export default class CssFilter extends CssDataType {
4
+ simpleValue: string;
5
+ filters: Array<{
6
+ filter: string;
7
+ args: Array<any>;
8
+ }>;
9
+ constructor(value: any);
10
+ toString(): string;
11
+ private appendFilterString;
12
+ blur(v: NumericLength): this;
13
+ brightness(v: Percentage): this;
14
+ contrast(v: Percentage): this;
15
+ dropShadow(x: NumericLength, y: NumericLength, blur: NumericLength, color: ColorFormat): this;
16
+ grayscale(v: Percentage): this;
17
+ hueRotate(v: AngleUnits): this;
18
+ invert(v: Percentage): this;
19
+ opacity(v: Percentage): this;
20
+ sepia(v: Percentage): this;
21
+ saturate(v: Percentage): this;
22
+ }
@@ -0,0 +1,5 @@
1
+ import CssLength from "./css-length";
2
+ export default class CssPercentage extends CssLength {
3
+ length: number;
4
+ constructor(value: string | number);
5
+ }
@@ -1,4 +1,4 @@
1
- export declare type BasicCommonValues = "inherit" | "initial" | "unset";
1
+ export declare type BasicCommonValues = "inherit" | "initial" | "unset" | "revert" | "revert-layer";
2
2
  export declare type AbsoluteUnits = "cm" | "mm" | "in" | "px" | "pt" | "pc";
3
3
  export declare type RelativeUnits = "em" | "ex" | "ch" | "rem" | "vw" | "vh" | "vmin" | "vmax" | "%";
4
4
  export declare type AllUnits = AbsoluteUnits | RelativeUnits;
@@ -7,6 +7,8 @@ export declare type UrlType = `url('${string}')`;
7
7
  export declare type NumericLength = number | `${number}${AllUnits}`;
8
8
  export declare type AngleUnits = "deg" | "turn" | "rad" | "grad";
9
9
  export declare type NumericAngle = number | `${number}${AngleUnits}`;
10
+ export declare type Percentage = number | `${number}%`;
11
+ export declare type AppearanceValues = BasicCommonValues | "none" | "menulist-button" | "textfield" | "button" | "searchfield" | "textarea" | "push-button" | "slider-horizontal" | "checkbox" | "radio" | "square-button" | "menulist" | "listbox" | "meter" | "progress-bar" | "scrollbarbutton-up" | "button-bevel" | "media-mute-button" | "caret";
10
12
  export declare type BackgroundAttachmentValues = BasicCommonValues | "scroll" | "fixed" | "local";
11
13
  export declare type BackgroundRepeatValues = BasicCommonValues | "no-repeat" | "repeat" | "space" | "round";
12
14
  export declare type BackgroundOriginValues = BasicCommonValues | "padding-box" | "border-box" | "content-box";
@@ -61,7 +63,7 @@ export interface IDotcssProp {
61
63
  textDecorationColor: IDotcssAnimatableColor;
62
64
  outlineColor: IDotcssAnimatableColor;
63
65
  columnRuleColor: IDotcssAnimatableColor;
64
- backgroundSize: ((value: BasicCommonValues) => IDotcssProp) | IDotcssAnimatable<BackgroundSizeValues>;
66
+ backgroundSize: IDotcssAnimatable<BackgroundSizeValues>;
65
67
  backgroundSizeCm: IDotcssAnimatable<number>;
66
68
  backgroundSizeCh: IDotcssAnimatable<number>;
67
69
  backgroundSizeEm: IDotcssAnimatable<number>;
@@ -77,6 +79,22 @@ export interface IDotcssProp {
77
79
  backgroundSizeVw: IDotcssAnimatable<number>;
78
80
  backgroundSizeVMax: IDotcssAnimatable<number>;
79
81
  backgroundSizeVMin: IDotcssAnimatable<number>;
82
+ blockSize: IDotcssAnimatable<NumericLength>;
83
+ blockSizeCm: IDotcssAnimatable<number>;
84
+ blockSizeCh: IDotcssAnimatable<number>;
85
+ blockSizeEm: IDotcssAnimatable<number>;
86
+ blockSizeEx: IDotcssAnimatable<number>;
87
+ blockSizeIn: IDotcssAnimatable<number>;
88
+ blockSizeMm: IDotcssAnimatable<number>;
89
+ blockSizeP: IDotcssAnimatable<number>;
90
+ blockSizePc: IDotcssAnimatable<number>;
91
+ blockSizePt: IDotcssAnimatable<number>;
92
+ blockSizePx: IDotcssAnimatable<number>;
93
+ blockSizeRem: IDotcssAnimatable<number>;
94
+ blockSizeVh: IDotcssAnimatable<number>;
95
+ blockSizeVw: IDotcssAnimatable<number>;
96
+ blockSizeVMax: IDotcssAnimatable<number>;
97
+ blockSizeVMin: IDotcssAnimatable<number>;
80
98
  borderBottomLeftRadius: IDotcssAnimatable<NumericLength>;
81
99
  borderBottomLeftRadiusCm: IDotcssAnimatable<number>;
82
100
  borderBottomLeftRadiusCh: IDotcssAnimatable<number>;
@@ -642,7 +660,11 @@ export interface IDotcssProp {
642
660
  listStyleImage: (value: BackgroundImageFormat) => IDotcssProp;
643
661
  content: (value: BasicCommonValues | UrlType) => IDotcssProp;
644
662
  transform: (transformOrTransformBuilder: BasicCommonValues | TransformationBuilder) => IDotcssProp;
663
+ filter: (filterBuilder: FilterBuilder) => IDotcssProp;
664
+ backdropFilter: (filterBuilder: FilterBuilder) => IDotcssProp;
645
665
  opacity: IDotcssAnimatable<number | string>;
666
+ appearance: (value: AppearanceValues) => IDotcssProp;
667
+ aspectRatio: (value: string) => IDotcssProp;
646
668
  background: (value: BasicCommonValues | string) => IDotcssProp;
647
669
  backgroundAttachment: (value: BackgroundAttachmentValues) => IDotcssProp;
648
670
  backgroundBlendMode: (value: BasicCommonValues | string) => IDotcssProp;
@@ -811,7 +833,6 @@ export interface IDotcssProp {
811
833
  pageBreakInside: (value: BasicCommonValues | string) => IDotcssProp;
812
834
  marks: (value: BasicCommonValues | string) => IDotcssProp;
813
835
  quotes: (value: BasicCommonValues | string) => IDotcssProp;
814
- filter: (value: BasicCommonValues | string) => IDotcssProp;
815
836
  imageRendering: (value: BasicCommonValues | string) => IDotcssProp;
816
837
  imageResolution: (value: BasicCommonValues | string) => IDotcssProp;
817
838
  objectFit: (value: BasicCommonValues | string) => IDotcssProp;
@@ -1015,3 +1036,18 @@ export type ITransformationContext = {
1015
1036
  perspectiveVMax: (v: number) => ITransformationContext;
1016
1037
  perspectiveVMin: (v: number) => ITransformationContext;
1017
1038
  };
1039
+ export interface FilterBuilder {
1040
+ (filtCtx: IFilterContext): IFilterContext | string;
1041
+ }
1042
+ export type IFilterContext = {
1043
+ blur(v: NumericLength): IFilterContext;
1044
+ brightness(v: Percentage): IFilterContext;
1045
+ contrast(v: Percentage): IFilterContext;
1046
+ dropShadow(x: NumericLength, y: NumericLength, blur: NumericLength, color: ColorFormat): IFilterContext;
1047
+ grayscale(v: Percentage): IFilterContext;
1048
+ hueRotate(v: AngleUnits): IFilterContext;
1049
+ invert(v: Percentage): IFilterContext;
1050
+ opacity(v: Percentage): IFilterContext;
1051
+ sepia(v: Percentage): IFilterContext;
1052
+ saturate(v: Percentage): IFilterContext;
1053
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dothtml",
3
- "version": "5.1.0",
3
+ "version": "5.2.0",
4
4
  "description": "DOThtml is a client-side framework for building single-page applications.",
5
5
  "main": "lib/dothtml.js",
6
6
  "devDependencies": {
package/src/component.ts CHANGED
@@ -19,6 +19,22 @@ interface IPropertyContainer{
19
19
 
20
20
  abstract class Component{
21
21
 
22
+ /**
23
+ * Used internally to indicate the first time $updateStyles is called.
24
+ * This method is called by the static component builder when the component is created.
25
+ * If a prop is accessed within the style builder, the getter reads this field to mark $updateStyles as a dependency.
26
+ */
27
+ #initializingStyles: boolean = false;
28
+ #initializingBuild: boolean = false;
29
+ // A bit messy but gets us to MVP for this feature.
30
+ // Ideally this should be made a singleton somehow, perhaps put in the property metadata.
31
+ #rebuildStylesOnPropChange: {[propName: string]: true} = {};
32
+ #rebuildBuilderOnPropChange: {[propName: string]: true} = {};
33
+
34
+ /**
35
+ * Called once per component, on the first build.
36
+ * TODO: this shouldn't require an instance of the component. Please experiment with fixing this.
37
+ */
22
38
  static initializeComponent<T extends Component>(obj: T): void{
23
39
  if(!(obj.constructor as any).__dotComponentInitialized) {
24
40
  (obj.constructor as any).__dotComponentInitialized = true;
@@ -36,7 +52,7 @@ abstract class Component{
36
52
 
37
53
  }
38
54
 
39
- static build<T extends Component>(obj: T): Element{
55
+ static build<T extends Component>(obj: T): HTMLElement{
40
56
  Component.initializeComponent(obj);
41
57
 
42
58
  GlobalComponentStack.push(obj);
@@ -87,20 +103,45 @@ abstract class Component{
87
103
 
88
104
  Component.initializeEventHandlers(obj);
89
105
 
106
+ Component.rebuild(obj);
107
+
108
+ // TODO: would be great to do this without a timer, once the DOM is updated.
109
+ // May require some type of queueing system within dot.
110
+ obj.ready && sT(()=>{
111
+ GlobalComponentStack.push(obj);
112
+ obj.ready();
113
+ GlobalComponentStack.pop()
114
+ }, 0);
115
+
116
+ GlobalComponentStack.pop();
117
+
118
+ return obj.$el;
119
+ }
120
+
121
+ /**
122
+ * Called any time the component needs to be completely rebuilt.
123
+ */
124
+ static rebuild<T extends Component>(obj: T) {
125
+
126
+ let oldEl = obj.$el;
127
+
128
+ if(!obj.__eventsInitialized) obj.#initializingBuild = true;
90
129
  let ret = obj.builder(...obj.__args);
130
+ obj.#initializingBuild = false;
91
131
 
92
132
  let lst = ret.getLast();
93
133
  (!lst || (lst.parentNode.childNodes.length > 1)) && ERR("C#", obj.name || obj.constructor.name || "(unnamed obj)");
94
134
 
95
-
96
-
97
- // Some weird ass logic to support legacy named components and the new syntax.
98
- // if(classNumb || n) ret = (obj instanceof DotDocument ? obj : dot)._appendOrCreateDocument(dot.scopeClass(classNumb, ret));
99
- // ret = ret.scopeClass(ret, (obj.constructor as any).__dotClassNumb);
100
-
101
- obj["__$el"] = obj.$el || lst;
135
+
136
+ // Note: I don't know what the justification was for using $obj.el, but all tests pass without it.
137
+ // It was removed to facilitate rebuilding the component (during a prop change).
138
+ obj["__$el"] = /*obj.$el ||*/ lst;
102
139
  obj.$el["__dothtml_component"] = obj;
103
-
140
+
141
+ if(oldEl){
142
+ // Clean it up and replace it with the new element!
143
+ }
144
+
104
145
  // TODO: would there be a way to not have to create obj function for each instance?
105
146
  if(obj.style) {
106
147
  // obj will be the officially supported way to use dothtml.
@@ -115,23 +156,13 @@ abstract class Component{
115
156
  obj.style(dot.css);
116
157
  dot.css.unscope();
117
158
  }
159
+ if(!obj.__eventsInitialized) obj.#initializingStyles = true;
118
160
  obj.$updateStyles();
161
+ obj.#initializingStyles = false;
119
162
  //styler();
120
163
  }
121
164
 
122
165
  obj.built && obj.built();
123
-
124
- // TODO: would be great to do this without a timer, once the DOM is updated.
125
- // May require some type of queueing system within dot.
126
- obj.ready && sT(()=>{
127
- GlobalComponentStack.push(obj);
128
- obj.ready();
129
- GlobalComponentStack.pop()
130
- }, 0);
131
-
132
- GlobalComponentStack.pop();
133
-
134
- return obj.$el;
135
166
  }
136
167
 
137
168
  static initializeEventHandlers(obj){
@@ -238,6 +269,14 @@ abstract class Component{
238
269
  if(!ar) ar = cc.__propContainer.propDependencies[name] = [];
239
270
  ar.push(cb);
240
271
  }
272
+
273
+ // Again I find this a weird way to do it that kind of side-steps the above approach, but it gets the job done and is dead simple.
274
+ if(cc.#initializingStyles){
275
+ cc.#rebuildStylesOnPropChange[name] = true;
276
+ }
277
+ if(cc.#initializingBuild){
278
+ cc.#rebuildBuilderOnPropChange[name] = true;
279
+ }
241
280
  }
242
281
 
243
282
  static updateProp(obj: Component, name: string){
@@ -246,14 +285,21 @@ abstract class Component{
246
285
 
247
286
  // // {f:contentCallback,startNode:startNode, endNode:endNode,condition:condition}
248
287
  let updateStyles = false;
249
- for(let i = 0; i < (ar||[]).length; i++){
250
- let arg = ar[i];
251
- // TODO: this could be used to update attributes.
252
- // But right now that relies exclusively on function setters. It's a bit weird.
253
- arg.updateContent(dot, value);
254
-
255
- if(arg instanceof AttrArgCallback && arg.attr == "class"){
256
- updateStyles = true;
288
+ if(false && obj.#rebuildBuilderOnPropChange[name] && !obj.#initializingBuild){
289
+ // Call the builder again.
290
+ }
291
+ else{
292
+ // Maybe update specific areas.
293
+ // This is admittedly more efficient.
294
+ for(let i = 0; i < (ar||[]).length; i++){
295
+ let arg = ar[i];
296
+ // TODO: this could be used to update attributes.
297
+ // But right now that relies exclusively on function setters. It's a bit weird.
298
+ arg.updateContent(dot, value);
299
+
300
+ if(obj.#rebuildStylesOnPropChange[name] || (arg instanceof AttrArgCallback && arg.attr == "class")){
301
+ updateStyles = true;
302
+ }
257
303
  }
258
304
  }
259
305
 
@@ -337,7 +383,7 @@ abstract class Component{
337
383
  return this.__$el;
338
384
  }
339
385
 
340
- $refs: {[key: string]: Element} = {};
386
+ $refs: {[key: string]: HTMLElement} = {};
341
387
 
342
388
  /**
343
389
  * Name of the component (optional). If provided, dot and the VDBO will be extended.
package/src/dothtml.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  import dot from "./dot";
3
3
  import Component from "./component";
4
4
 
5
- dot.version = "5.0.0";
5
+ dot.version = "5.2.0";
6
6
  dot.Component = Component;
7
7
 
8
8
  /*! DOThtml (c) Joshua Sideris | dothtml.org/license */
@@ -22,6 +22,8 @@ dot.Component = Component;
22
22
  * - Re-imagined components from the ground up. Components are now classes that inherit from `Component`. Plays very nicely with TS and ES6.
23
23
  * - Added interfaces for new methods that can be invoked on various elements. For instance, play, pause, and stop on audio and video elements.
24
24
  * - Updated scopeClass method to put the optional parameter last.
25
+ * - Fixed some color bugs.
26
+ * - Added a filter builder.
25
27
  */
26
28
 
27
29
 
@@ -11,16 +11,20 @@ export default class CssColor extends CssDataType{
11
11
  this.g = 0;
12
12
  this.b = 0;
13
13
  this.a = 1;
14
- if(value.length == 1) {
15
- value = value[0];
14
+
15
+ // This is typically the way dothtml passes in values to colors. Flatten.
16
+ if(Array.isArray(value) && value.length == 1) value = value[0];
17
+
18
+ if(typeof value == "number") {
19
+ this.b = value & 0xFF;
20
+ value >>= 8;
21
+ this.g = value & 0xFF;
22
+ value >>= 8;
23
+ this.r = value & 0xFF;
24
+ }
25
+ else if(typeof value == "string") {
26
+ // value = value[0];
16
27
  if(value == "" || value == "none" || value == "initial" || value == "inherit"){} //Nothing more needs to be done.
17
- else if(!isNaN(value)){
18
- this.b = value & 0xFF;
19
- value >>= 8;
20
- this.g = value & 0xFF;
21
- value >>= 8;
22
- this.r = value & 0xFF;
23
- }
24
28
  else if(value[0] == "#"){
25
29
  var cH = value.split("#")[1];
26
30
  if(cH.length == 3){
@@ -40,12 +44,12 @@ export default class CssColor extends CssDataType{
40
44
  //This also handles rgba.
41
45
  var cData = value.split("(")[1];
42
46
  cData = cData.split(")")[0];
43
- cData = cData.split(",");
44
- if(cData.length == 3 || cData.length == 4){
45
- this.r = Number(cData[0]);
46
- this.g = Number(cData[1]);
47
- this.b = Number(cData[2]);
48
- this.a = Number(cData[3] || 1);
47
+ var cDataItems = cData.split(",");
48
+ if(cDataItems.length == 3 || cDataItems.length == 4){
49
+ this.r = Number(cDataItems[0]);
50
+ this.g = Number(cDataItems[1]);
51
+ this.b = Number(cDataItems[2]);
52
+ this.a = Number(cDataItems[3] || 1);
49
53
  }
50
54
  }
51
55
  else{
@@ -1,4 +1,4 @@
1
- export declare type CssDataTypeToken = "url"|"number"|"length"|"angle"|"color"|"transformation"|"complex"|"unknown";
1
+ export declare type CssDataTypeToken = "url"|"number"|"length"|"angle"|"color"|"transformation"|"filter"|"complex"|"unknown";
2
2
 
3
3
  export default abstract class CssDataType{
4
4
  type: CssDataTypeToken;
@@ -0,0 +1,134 @@
1
+ import { isF } from "../../dot-util";
2
+ import {AllAngleUnits, AllLengthUnits} from "../unit-function-tables";
3
+ import { AngleUnits, ColorFormat, NumericAngle, NumericLength, Percentage } from "../i-dotcss";
4
+ import CssAngle from "./css-angle";
5
+ import CssDataType from "./css-data-type";
6
+ import CssLength from "./css-length";
7
+ import CssPercentage from "./css-percentage";
8
+ import CssColor from "./css-color";
9
+
10
+ export default class CssFilter extends CssDataType{
11
+
12
+ simpleValue: string;
13
+ filters: Array<{
14
+ filter: string,
15
+ args: Array<any>
16
+ }> = [];
17
+
18
+ constructor(value){
19
+ super("filter");
20
+
21
+ if(typeof value == "string"){
22
+ this.simpleValue = value;
23
+ return; //?? Need a better way to handle this.
24
+ }
25
+ else if(isF(value)){
26
+ value(this);
27
+ // console.log(this.toString());
28
+ }
29
+ //var ret = {value: value, type: cssDataType};
30
+
31
+ // The old way of doing transformations was that it was set up to accept a big string. The added complexity was to support animations.
32
+ // The new way is to use the builder. But I might want to come back and revisit the idea of accepting a string.
33
+ // For instance, a use case of accepting a string for a transformation is if we're trying to animate transforms generated by another framework.
34
+ // Not sure if that's realistic.
35
+ // var transformations = value.split(/\)\s*/); transformations.pop(); for(var i = 0; i < transformations.length; i++) transformations[i] += ")";
36
+ // // var cos = Math.cos; var sin = Math.sin; var tan = Math.tan;
37
+ // for(var t = 0; t < transformations.length; t++){
38
+ // var trans = transformations[t].trim();
39
+ // var parts = trans.split(/[\(\)]/);
40
+ // var func = parts[0]
41
+ // var p = parts[1].split(/\s*,\s*/)
42
+
43
+ // if(this[func]){
44
+ // this[func].apply(this, p);
45
+ // }
46
+ // }
47
+ }
48
+
49
+ toString(){
50
+ if(this.simpleValue){
51
+ return this.simpleValue;
52
+ }
53
+
54
+ var ret = "";
55
+ for(var i = 0; i < this.filters.length; i++){
56
+ var t = this.filters[i];
57
+ ret += t.filter + "(";
58
+ for(var k = 0; k < t.args.length; k++){
59
+ ret += t.args[k].toString() + " ";
60
+ }
61
+ ret = ret.trim() + ") ";
62
+ }
63
+ return ret.trim();
64
+ }
65
+
66
+ private appendFilterString(filter: string, args){
67
+ //this.finalMatrix = dotcss.matrixMultiply3D(m, this.finalMatrix);
68
+ this.filters.push({filter: filter, args: args});
69
+ /*if(this.value.length > 0) this.value += " ";
70
+ this.value += transformation + "(";
71
+ for(var i = 0; i < args.length; i++){
72
+ this.value += args[i] + (i == args.length -1 ? "" : ",")
73
+ }*/
74
+ return this;
75
+ }
76
+
77
+ blur(v: NumericLength){
78
+ return this.appendFilterString("blur", [new CssLength(v)]);
79
+ }
80
+ brightness(v: Percentage){
81
+ return this.appendFilterString("brightness", [new CssPercentage(v)]);
82
+ }
83
+ contrast(v: Percentage){
84
+ return this.appendFilterString("contrast", [new CssPercentage(v)]);
85
+ }
86
+ dropShadow(x: NumericLength, y: NumericLength, blur: NumericLength, color: ColorFormat){
87
+ return this.appendFilterString("drop-shadow", [new CssLength(x), new CssLength(y), new CssLength(blur), new CssColor(color)]);
88
+ }
89
+ grayscale(v: Percentage){
90
+ return this.appendFilterString("grayscale", [new CssPercentage(v)]);
91
+ }
92
+ hueRotate(v: AngleUnits){
93
+ return this.appendFilterString("hue-rotate", [new CssPercentage(v)]);
94
+ }
95
+ invert(v: Percentage){
96
+ return this.appendFilterString("invert", [new CssPercentage(v)]);
97
+ }
98
+ opacity(v: Percentage){
99
+ return this.appendFilterString("opacity", [new CssPercentage(v)]);
100
+ }
101
+ sepia(v: Percentage){
102
+ return this.appendFilterString("sepia", [new CssPercentage(v)]);
103
+ }
104
+ saturate(v: Percentage){
105
+ return this.appendFilterString("saturate", [new CssPercentage(v)]);
106
+ }
107
+ }
108
+
109
+ // Extend the above with special length and degree functions.
110
+
111
+ // TODO: when I have some time it would be nice to do the unit functions the same way we do for transforms.
112
+ // const lengthFuncs = "translate|translate3d|translateX|translateY|translateZ|perspective".split("|");
113
+ // const angleFuncs = "rotate|rotateX|rotateY|rotateZ|skew|skewX|skewY".split("|");
114
+
115
+ // for(let i = 0; i < lengthFuncs.length; i++){
116
+ // let F = lengthFuncs[i];
117
+ // for(let u = 0; u < AllLengthUnits.length; u++){
118
+ // let uu = AllLengthUnits[u];
119
+ // CssTransform.prototype[F + (uu.jsName || uu.unit)] = function(){
120
+ // for(var i = 0; i < arguments.length; i++) arguments[i] = arguments[i] + uu.unit.toLowerCase();
121
+ // return CssTransform.prototype[F].apply(this, arguments);
122
+ // }
123
+ // }
124
+ // }
125
+ // for(let i = 0; i < angleFuncs.length; i++){
126
+ // let F = angleFuncs[i];
127
+ // for(let u = 0; u < AllAngleUnits.length; u++){
128
+ // let uu = AllAngleUnits[u];
129
+ // CssTransform.prototype[F + (uu.unit)] = function(){
130
+ // for(var i = 0; i < arguments.length; i++) arguments[i] = arguments[i] + uu.unit.toLowerCase();
131
+ // return CssTransform.prototype[F].apply(this, arguments);
132
+ // }
133
+ // }
134
+ // }
@@ -0,0 +1,10 @@
1
+ import { floatRegex } from "../../dot-util";
2
+ import CssDataType from "./css-data-type";
3
+ import CssLength from "./css-length";
4
+
5
+ export default class CssPercentage extends CssLength{
6
+ length: number;
7
+ constructor (value:string|number){
8
+ super(isNaN(value as any) ? value : `${value}%`)
9
+ }
10
+ }
@@ -1,5 +1,5 @@
1
1
  // Building blocks.
2
- export declare type BasicCommonValues = "inherit"|"initial"|"unset";
2
+ export declare type BasicCommonValues = "inherit"|"initial"|"unset"|"revert"|"revert-layer";
3
3
  export declare type AbsoluteUnits = "cm"|"mm"|"in"|"px"|"pt"|"pc";
4
4
  export declare type RelativeUnits = "em"|"ex"|"ch"|"rem"|"vw"|"vh"|"vmin"|"vmax"|"%";
5
5
  export declare type AllUnits = AbsoluteUnits|RelativeUnits;
@@ -7,14 +7,16 @@ export declare type OptionalWhitespace = ""|" ";
7
7
  export declare type UrlType = `url('${string}')`;
8
8
  export declare type NumericLength = number|`${number}${AllUnits}`;
9
9
  export declare type AngleUnits = "deg"|"turn"|"rad"|"grad";
10
- export declare type NumericAngle = number|`${number}${AngleUnits}`
10
+ export declare type NumericAngle = number|`${number}${AngleUnits}`;
11
+ export declare type Percentage = number|`${number}%`; // Used for filters.
11
12
 
12
13
  // ts starts complaining about the complexity of the type :(
13
14
  //export declare type DigitStr = "0"|"1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9";
14
15
  // export declare type HexStr = DigitStr|"A"|"B"|"C"|"D"|"E"|"F"|"a"|"b"|"c"|"d"|"e"|"f";
15
16
 
16
17
  // Types
17
- export declare type BackgroundAttachmentValues = BasicCommonValues|"scroll"|"fixed"|"local"
18
+ export declare type AppearanceValues = BasicCommonValues|"none"|"menulist-button"|"textfield"|"button"|"searchfield"|"textarea"|"push-button"|"slider-horizontal"|"checkbox"|"radio"|"square-button"|"menulist"|"listbox"|"meter"|"progress-bar"|"scrollbarbutton-up"|"button-bevel"|"media-mute-button"|"caret";
19
+ export declare type BackgroundAttachmentValues = BasicCommonValues|"scroll"|"fixed"|"local";
18
20
  export declare type BackgroundRepeatValues = BasicCommonValues|"no-repeat"|"repeat"|"space"|"round";
19
21
  export declare type BackgroundOriginValues = BasicCommonValues|"padding-box"|"border-box"|"content-box";
20
22
  export declare type BackgroundSizeValues = BasicCommonValues|"auto"|NumericLength|"cover"|"contain";
@@ -101,7 +103,7 @@ export interface IDotcssProp{
101
103
  columnRuleColor: IDotcssAnimatableColor;
102
104
 
103
105
  //length:
104
- backgroundSize: ((value: BasicCommonValues)=>IDotcssProp)|IDotcssAnimatable<BackgroundSizeValues>;
106
+ backgroundSize: IDotcssAnimatable<BackgroundSizeValues>;
105
107
  backgroundSizeCm: IDotcssAnimatable<number>;
106
108
  backgroundSizeCh: IDotcssAnimatable<number>;
107
109
  backgroundSizeEm: IDotcssAnimatable<number>;
@@ -118,6 +120,23 @@ export interface IDotcssProp{
118
120
  backgroundSizeVMax: IDotcssAnimatable<number>;
119
121
  backgroundSizeVMin: IDotcssAnimatable<number>;
120
122
 
123
+ blockSize: IDotcssAnimatable<NumericLength>;
124
+ blockSizeCm: IDotcssAnimatable<number>;
125
+ blockSizeCh: IDotcssAnimatable<number>;
126
+ blockSizeEm: IDotcssAnimatable<number>;
127
+ blockSizeEx: IDotcssAnimatable<number>;
128
+ blockSizeIn: IDotcssAnimatable<number>;
129
+ blockSizeMm: IDotcssAnimatable<number>;
130
+ blockSizeP: IDotcssAnimatable<number>;
131
+ blockSizePc: IDotcssAnimatable<number>;
132
+ blockSizePt: IDotcssAnimatable<number>;
133
+ blockSizePx: IDotcssAnimatable<number>;
134
+ blockSizeRem: IDotcssAnimatable<number>;
135
+ blockSizeVh: IDotcssAnimatable<number>;
136
+ blockSizeVw: IDotcssAnimatable<number>;
137
+ blockSizeVMax: IDotcssAnimatable<number>;
138
+ blockSizeVMin: IDotcssAnimatable<number>;
139
+
121
140
  borderBottomLeftRadius: IDotcssAnimatable<NumericLength>;
122
141
  borderBottomLeftRadiusCm: IDotcssAnimatable<number>;
123
142
  borderBottomLeftRadiusCh: IDotcssAnimatable<number>;
@@ -719,13 +738,18 @@ export interface IDotcssProp{
719
738
  listStyleImage: (value: BackgroundImageFormat)=>IDotcssProp;
720
739
  content: (value: BasicCommonValues|UrlType)=>IDotcssProp;
721
740
 
722
- //transformation:
741
+ //complex:
723
742
  transform: (transformOrTransformBuilder: BasicCommonValues|TransformationBuilder)=>IDotcssProp;
743
+ filter: (filterBuilder: FilterBuilder)=>IDotcssProp;
744
+ backdropFilter: (filterBuilder: FilterBuilder)=>IDotcssProp;
724
745
 
725
746
  //misc numeric:
726
747
  opacity: IDotcssAnimatable<number|string>;
727
748
 
728
749
  //misc:
750
+ appearance: (value: AppearanceValues)=>IDotcssProp;
751
+ aspectRatio: (value: string)=>IDotcssProp; // TODO: better typing on this. Low priority.
752
+
729
753
  background: (value: BasicCommonValues|string)=>IDotcssProp
730
754
  backgroundAttachment: (value: BackgroundAttachmentValues)=>IDotcssProp
731
755
  backgroundBlendMode: (value: BasicCommonValues|string)=>IDotcssProp
@@ -900,7 +924,6 @@ export interface IDotcssProp{
900
924
  pageBreakInside: (value: BasicCommonValues|string)=>IDotcssProp
901
925
  marks: (value: BasicCommonValues|string)=>IDotcssProp
902
926
  quotes: (value: BasicCommonValues|string)=>IDotcssProp
903
- filter: (value: BasicCommonValues|string)=>IDotcssProp
904
927
  imageRendering: (value: BasicCommonValues|string)=>IDotcssProp
905
928
  imageResolution: (value: BasicCommonValues|string)=>IDotcssProp
906
929
  objectFit: (value: BasicCommonValues|string)=>IDotcssProp
@@ -1120,3 +1143,21 @@ export type ITransformationContext = {
1120
1143
  perspectiveVMin: (v: number)=>ITransformationContext;
1121
1144
  }
1122
1145
 
1146
+ export interface FilterBuilder{
1147
+ (filtCtx: IFilterContext): IFilterContext|string;
1148
+ }
1149
+
1150
+ export type IFilterContext = {
1151
+ // url(commonfilters.svg#filter); // Don't know how this works yet.
1152
+ blur(v: NumericLength): IFilterContext;
1153
+ brightness(v: Percentage): IFilterContext;
1154
+ contrast(v: Percentage): IFilterContext;
1155
+ dropShadow(x: NumericLength, y: NumericLength, blur: NumericLength, color: ColorFormat): IFilterContext;
1156
+ grayscale(v: Percentage): IFilterContext;
1157
+ hueRotate(v: AngleUnits): IFilterContext;
1158
+ invert(v: Percentage): IFilterContext;
1159
+ opacity(v: Percentage): IFilterContext;
1160
+ sepia(v: Percentage): IFilterContext;
1161
+ saturate(v: Percentage): IFilterContext;
1162
+ // url(filters.svg#filter) blur(4px) saturate(150%); // example.
1163
+ }
@@ -12,6 +12,7 @@ import CssUnknown from "./css-types.ts/css-unknown";
12
12
  import CssUrl from "./css-types.ts/css-url";
13
13
  import IDotCss, { HideParams, LengthProp, NumericLength, ShowParams } from "./i-dotcss";
14
14
  import { AnimationType, floatRegex, numberStep } from "../dot-util";
15
+ import CssFilter from "./css-types.ts/css-filter";
15
16
 
16
17
  //Latest Update.
17
18
  /*
@@ -194,6 +195,7 @@ class Dotcss2{
194
195
  else if (cssDataType == "url") return new CssUrl(value);
195
196
  else if (cssDataType == "length" && (!isNaN(value[0]) || (value[0].indexOf(" ") == -1 && value[0].replace(floatRegex, "") != value[0]))) return new CssLength(value[0]);
196
197
  else if (cssDataType == "transformation") return (new CssTransform(value[0])).toString()
198
+ else if (cssDataType == "filter") return (new CssFilter(value[0])).toString()
197
199
  else{
198
200
  if(value[0] === ""
199
201
  || (
@@ -749,10 +751,11 @@ dotcss.formatNumberValue = function(value, unit){
749
751
 
750
752
  const _allProps = {
751
753
  color: "color|background-Color|border-Bottom-Color|border-Color|border-Left-Color|border-Right-Color|border-Top-Color|text-Decoration-Color|outline-Color|column-Rule-Color",
752
- length: "background-Size|border-Bottom-Left-Radius|border-Bottom-Right-Radius|border-Bottom-Width|border-Image-Width|border-Left-Width|border-Radius|border-Right-Width|border-Top-Left-Radius|border-Top-Right-Radius|border-Top-Width|border-Width|bottom|height|left|margin|margin-Bottom|margin-Left|margin-Right|margin-Top|max-Height|max-Width|min-Height|min-Width|padding|padding-Bottom|padding-Left|padding-Right|padding-Top|right|top|width|line-Height|flex-Basis|font-Size",
754
+ length: "background-Size|block-Size|border-Bottom-Left-Radius|border-Bottom-Right-Radius|border-Bottom-Width|border-Image-Width|border-Left-Width|border-Radius|border-Right-Width|border-Top-Left-Radius|border-Top-Right-Radius|border-Top-Width|border-Width|bottom|height|left|margin|margin-Bottom|margin-Left|margin-Right|margin-Top|max-Height|max-Width|min-Height|min-Width|padding|padding-Bottom|padding-Left|padding-Right|padding-Top|right|top|width|line-Height|flex-Basis|font-Size",
753
755
  url: "background-Image|border-Image|list-Style-Image|content|image-Orientation",
754
756
  transformation: "transform",
755
- misc: "opacity|background|background-Attachment|background-Blend-Mode|background-Position|background-Repeat|background-Clip|background-Origin|border|border-Bottom|border-Bottom-Style|border-Image-Outset|border-Image-Repeat|border-Image-Slice|border-Image-Source|border-Left|border-Left-Style|border-Right|border-Right-Style|border-Style|border-Top|border-Top-Style|box-Decoration-Break|box-Shadow|clear|clip|display|float|overflow|box|overflow-X|overflow-Y|position|visibility|vertical-Align|z-Index|align-Content|align-Items|align-Self|flex|flex-Basis|flex-Direction|flex-Flow|flex-Grow|flex-Shrink|flex-Wrap|grid|grid-Area|grid-Auto-Columns|grid-auto-Rows|grid-Column|grid-Column-End|grid-Column-Gap|grid-Column-Start|grid-Gap|grid-Row|grid-Row-End|grid-Row-Gap|grid-Row-Start|grid-Template|grid-Template-Areas|grid-Template-Columns|grid-Template-Rows|justify-Content|order|hanging-Punctuation|hyphens|letter-Spacing|line-Break|overflow-Wrap|tab-Size|text-Align|text-Align-Last|text-Combine-Upright|text-Indent|text-Justify|text-Transform|white-Space|word-Break|word-Spacing|word-Wrap|text-Decoration|text-Decoration-Line|text-Decoration-Style|text-Shadow|text-Underline-Position|font|font-Family|font-Feature-Settings|font-Kerning|font-Language-Override|font-Size-Adjust|font-Stretch|font-Style|font-Synthesis|font-Variant|font-Variant-Alternates|font-Variant-Caps|font-Variant-East-Asian|font-Variant-Ligatures|font-Variant-Numeric|font-Variant-Position|font-Weight|direction|text-Orientation|text-Combine-Upright|unicode-Bidi|user-Select|writing-Mode|border-Collapse|border-Spacing|caption-Side|empty-Cells|table-Layout|counter-Increment|counter-Reset|list-Style|list-Style-Position|list-Style-Type|animation|animation-Delay|animation-Direction|animation-Duration|animation-Fill-Mode|animation-Iteration-Count|animation-Name|animation-Play-State|animation-Timing-Function|backface-Visibility|perspective2d|perspective-Origin|transform-Origin|transform-Style|transition|transition-Property|transition-Duration|transition-Timing-Function|transition-Delay|box-Sizing|cursor|ime-Mode|nav-Down|nav-Index|nav-Left|nav-Right|nav-Up|outline|outline-Offset|outline-Style|outline-Width|resize|text-Overflow|break-After|break-Before|break-Inside|column-Count|column-Fill|column-Gap|column-Rule|column-Rule-Style|column-Rule-Width|column-Span|column-Width|columns|widows|orphans|page-Break-After|page-Break-Before|page-Break-Inside|marks|quotes|filter|image-Rendering|image-Resolution|object-Fit|object-Position|mask|mask-Type|mark|mark-After|mark-Before|phonemes|rest|rest-After|rest-Before|voice-Balance|voice-Duration|voice-Pitch|voice-Pitch-Range|voice-Rate|voice-Stress|voice-Volume|marquee-Direction|marquee-Play-Count|marquee-Speed|marquee-Style|pointer-Events"
757
+ filter: "filter|backdrop-Filter",
758
+ misc: "appearance|aspect-Ratio|opacity|background|background-Attachment|background-Blend-Mode|background-Position|background-Repeat|background-Clip|background-Origin|border|border-Bottom|border-Bottom-Style|border-Image-Outset|border-Image-Repeat|border-Image-Slice|border-Image-Source|border-Left|border-Left-Style|border-Right|border-Right-Style|border-Style|border-Top|border-Top-Style|box-Decoration-Break|box-Shadow|clear|clip|display|float|overflow|box|overflow-X|overflow-Y|position|visibility|vertical-Align|z-Index|align-Content|align-Items|align-Self|flex|flex-Basis|flex-Direction|flex-Flow|flex-Grow|flex-Shrink|flex-Wrap|grid|grid-Area|grid-Auto-Columns|grid-auto-Rows|grid-Column|grid-Column-End|grid-Column-Gap|grid-Column-Start|grid-Gap|grid-Row|grid-Row-End|grid-Row-Gap|grid-Row-Start|grid-Template|grid-Template-Areas|grid-Template-Columns|grid-Template-Rows|justify-Content|order|hanging-Punctuation|hyphens|letter-Spacing|line-Break|overflow-Wrap|tab-Size|text-Align|text-Align-Last|text-Combine-Upright|text-Indent|text-Justify|text-Transform|white-Space|word-Break|word-Spacing|word-Wrap|text-Decoration|text-Decoration-Line|text-Decoration-Style|text-Shadow|text-Underline-Position|font|font-Family|font-Feature-Settings|font-Kerning|font-Language-Override|font-Size-Adjust|font-Stretch|font-Style|font-Synthesis|font-Variant|font-Variant-Alternates|font-Variant-Caps|font-Variant-East-Asian|font-Variant-Ligatures|font-Variant-Numeric|font-Variant-Position|font-Weight|direction|text-Orientation|text-Combine-Upright|unicode-Bidi|user-Select|writing-Mode|border-Collapse|border-Spacing|caption-Side|empty-Cells|table-Layout|counter-Increment|counter-Reset|list-Style|list-Style-Position|list-Style-Type|animation|animation-Delay|animation-Direction|animation-Duration|animation-Fill-Mode|animation-Iteration-Count|animation-Name|animation-Play-State|animation-Timing-Function|backface-Visibility|perspective2d|perspective-Origin|transform-Origin|transform-Style|transition|transition-Property|transition-Duration|transition-Timing-Function|transition-Delay|box-Sizing|cursor|ime-Mode|nav-Down|nav-Index|nav-Left|nav-Right|nav-Up|outline|outline-Offset|outline-Style|outline-Width|resize|text-Overflow|break-After|break-Before|break-Inside|column-Count|column-Fill|column-Gap|column-Rule|column-Rule-Style|column-Rule-Width|column-Span|column-Width|columns|widows|orphans|page-Break-After|page-Break-Before|page-Break-Inside|marks|quotes|image-Rendering|image-Resolution|object-Fit|object-Position|mask|mask-Type|mark|mark-After|mark-Before|phonemes|rest|rest-After|rest-Before|voice-Balance|voice-Duration|voice-Pitch|voice-Pitch-Range|voice-Rate|voice-Stress|voice-Volume|marquee-Direction|marquee-Play-Count|marquee-Speed|marquee-Style|pointer-Events"
756
759
  }
757
760
 
758
761
  // const _allTransforms = [
@@ -1,2 +1,6 @@
1
1
 
2
- // TODO: calc.
2
+ // TODO: calc.
3
+
4
+ describe("Calculations", () => {
5
+ test.todo("pass");
6
+ });
@@ -30,6 +30,7 @@ class TestComponentA extends DotComponent{
30
30
  }
31
31
 
32
32
  style(css: IDotCss){
33
+ console.log("RESTYLING!!");
33
34
  this.styled++;
34
35
 
35
36
  this.props.restyle;
@@ -0,0 +1,23 @@
1
+
2
+ import addTest from "../core";
3
+ import dot from "../../src/dothtml";
4
+
5
+ // TODO: Need much more test coverage. Do later.
6
+
7
+ addTest("Blur filter.", function(){
8
+ return dot.div().style(
9
+ dot.css.filter(f=>f.blur(2))
10
+ );
11
+ }, `<div style="filter:blur(2px);"></div>`);
12
+
13
+ addTest("Multi filter param.", function(){
14
+ return dot.div().style(
15
+ dot.css.filter(f=>f.dropShadow(4,4,10,"blue"))
16
+ );
17
+ }, `<div style="filter:drop-shadow(4px 4px 10px rgb(0, 0, 255));"></div>`);
18
+
19
+ addTest("Multi filter.", function(){
20
+ return dot.div().style(
21
+ dot.css.filter(f=>f.blur(2).opacity(20))
22
+ );
23
+ }, `<div style="filter:blur(2px) opacity(20%);"></div>`);
@@ -1 +1,33 @@
1
- // Planned for 5.2.
1
+
2
+ import addTest from "../core";
3
+ import dot from "../../src/dothtml";
4
+
5
+ describe("Pseudo Selectors", () => {
6
+ test.todo("pass");
7
+ });
8
+
9
+ // Possible syntaxes:
10
+ // 1. Multiple style functions.
11
+ // - dot(target).style(dot.css...)
12
+ // - dot(target).styleHover(dot.css...)
13
+ // P: Simple syntax.
14
+ // C: How would this work in a component's style builder? Multiple style builders seems messed up.
15
+ // 2. Pseudo functions.
16
+ // - dot(target).style(dot.css...pseudoHover(css=>css...).pseudoVisited(css=>css...)...)
17
+ // P: Works for component style functions.
18
+ // C: Builder syntax is somewhat heavy.
19
+ // 3. DOThtml style.
20
+ // - dot(target).style(dot.css...pseudoHover...pseudoVisted...pseudoNone...)
21
+ // P: No weird function syntax.
22
+ // P: Consistent with dothtml.
23
+ // C: Inconsistent with dotcss.
24
+ // C: Just weird.
25
+ // 4. Pseudo functions v2.
26
+ // - dot(target).style(dot.css...pseudo("hover", css=>css...).pseudo("visited", css=>css...)...)
27
+ // P/C: same as 2.
28
+
29
+ // I think 2 is the winner.
30
+
31
+ // addTest("Dotcss returns stringable value.", function(){
32
+ // return dot.a("Hover over me!").style(dot.css.pseudoHover(c=>c.color("green")));
33
+ // }, `<a style="color:"rgb(0, 255, 0);">Hover over me!</a>`); // TODO: need a way to inject the hover event.
@@ -0,0 +1,3 @@
1
+ describe("Value Interpretation", () => {
2
+ test.todo("pass");
3
+ });
File without changes
@@ -1,79 +0,0 @@
1
- // import { ClassPrefix, eachK, isF, str } from "./dot-util";
2
- // import ERR from "./err";
3
- // import ObservableArray from "./observable-array";
4
- // import { AttrArgCallback } from "./arg-callback-obj";
5
-
6
- // /** How it works:
7
- // *
8
- // * DotComponent represents the prototype for all components.
9
- // * You create a component with dot.component().
10
- // * This creates a new class (CC), which acts as the prototype to that component.
11
- // * The prototype of CC is set to a new DotComponent.
12
- // * Instantiating the component creates a new CC.
13
- // * This CC is the `this` for each method of the component.
14
- // *
15
- // *
16
- // * */
17
-
18
- // /** How computed props work.
19
- // *
20
- // * If a computed property has a dependency on a regular property,
21
- // * assigning the computed property to an element will cause the regular property's getter to trigger, establishing the dependency.
22
- // * */
23
-
24
- // function DotComponent(){
25
- // this.$el = null;
26
- // this.$refs = {};
27
- // this.__handlers = {};
28
- // }
29
-
30
- // DotComponent.prototype.__addHandler = function(eventName, event){
31
- // var h = this.__handlers[eventName];
32
- // if(!h) h = this.__handlers[eventName] = [];
33
- // h.push(event);
34
- // }
35
-
36
- // var dot, _p, _D;
37
-
38
-
39
-
40
-
41
-
42
-
43
-
44
- // /**
45
-
46
- // */
47
- // export function addComponent(prms: ComponentParams){
48
-
49
- // // Setting this potentially allows automatic code completion to get the method signature from builder.
50
- // // var comp = prms.builder;
51
-
52
- // let n = prms.name;
53
-
54
- // n && (componentNames[n] = 1);
55
- // var CC = function(){
56
- // DotComponent.call(this);
57
- // this.rawProps = {};
58
- // this.__propDependencies = {};
59
- // this.__prms = prms;
60
- // }
61
- // CC.prototype = Object.create(DotComponent.prototype);
62
- // CC.prototype.constructor = CC;
63
-
64
-
65
-
66
-
67
-
68
- // prms.registered && prms.registered.apply(CC.prototype);
69
-
70
- // return comp;
71
- // };
72
-
73
- // // export function removeComponent(name){
74
- // // if(componentNames[name]){
75
- // // delete componentNames[name];
76
- // // delete dot[name];
77
- // // delete _p[name];
78
- // // }
79
- // // }