diff --git a/pages/docs/TypeScript/multicore/.nojekyll b/pages/docs/TypeScript/multicore/.nojekyll new file mode 100644 index 0000000..e2ac661 --- /dev/null +++ b/pages/docs/TypeScript/multicore/.nojekyll @@ -0,0 +1 @@ +TypeDoc added this file to prevent GitHub Pages from using Jekyll. You can turn off this behavior by setting the `githubPages` option to false. \ No newline at end of file diff --git a/pages/docs/TypeScript/multicore/assets/highlight.css b/pages/docs/TypeScript/multicore/assets/highlight.css new file mode 100644 index 0000000..b71e6b7 --- /dev/null +++ b/pages/docs/TypeScript/multicore/assets/highlight.css @@ -0,0 +1,71 @@ +:root { + --light-hl-0: #795E26; + --dark-hl-0: #DCDCAA; + --light-hl-1: #000000; + --dark-hl-1: #D4D4D4; + --light-hl-2: #A31515; + --dark-hl-2: #CE9178; + --light-hl-3: #008000; + --dark-hl-3: #6A9955; + --light-hl-4: #0000FF; + --dark-hl-4: #569CD6; + --light-hl-5: #001080; + --dark-hl-5: #9CDCFE; + --light-hl-6: #267F99; + --dark-hl-6: #4EC9B0; + --light-code-background: #FFFFFF; + --dark-code-background: #1E1E1E; +} + +@media (prefers-color-scheme: light) { :root { + --hl-0: var(--light-hl-0); + --hl-1: var(--light-hl-1); + --hl-2: var(--light-hl-2); + --hl-3: var(--light-hl-3); + --hl-4: var(--light-hl-4); + --hl-5: var(--light-hl-5); + --hl-6: var(--light-hl-6); + --code-background: var(--light-code-background); +} } + +@media (prefers-color-scheme: dark) { :root { + --hl-0: var(--dark-hl-0); + --hl-1: var(--dark-hl-1); + --hl-2: var(--dark-hl-2); + --hl-3: var(--dark-hl-3); + --hl-4: var(--dark-hl-4); + --hl-5: var(--dark-hl-5); + --hl-6: var(--dark-hl-6); + --code-background: var(--dark-code-background); +} } + +:root[data-theme='light'] { + --hl-0: var(--light-hl-0); + --hl-1: var(--light-hl-1); + --hl-2: var(--light-hl-2); + --hl-3: var(--light-hl-3); + --hl-4: var(--light-hl-4); + --hl-5: var(--light-hl-5); + --hl-6: var(--light-hl-6); + --code-background: var(--light-code-background); +} + +:root[data-theme='dark'] { + --hl-0: var(--dark-hl-0); + --hl-1: var(--dark-hl-1); + --hl-2: var(--dark-hl-2); + --hl-3: var(--dark-hl-3); + --hl-4: var(--dark-hl-4); + --hl-5: var(--dark-hl-5); + --hl-6: var(--dark-hl-6); + --code-background: var(--dark-code-background); +} + +.hl-0 { color: var(--hl-0); } +.hl-1 { color: var(--hl-1); } +.hl-2 { color: var(--hl-2); } +.hl-3 { color: var(--hl-3); } +.hl-4 { color: var(--hl-4); } +.hl-5 { color: var(--hl-5); } +.hl-6 { color: var(--hl-6); } +pre, code { background: var(--code-background); } diff --git a/pages/docs/TypeScript/multicore/assets/icons.js b/pages/docs/TypeScript/multicore/assets/icons.js new file mode 100644 index 0000000..e88e8ca --- /dev/null +++ b/pages/docs/TypeScript/multicore/assets/icons.js @@ -0,0 +1,18 @@ +(function() { + addIcons(); + function addIcons() { + if (document.readyState === "loading") return document.addEventListener("DOMContentLoaded", addIcons); + const svg = document.body.appendChild(document.createElementNS("http://www.w3.org/2000/svg", "svg")); + svg.innerHTML = `""`; + svg.style.display = "none"; + if (location.protocol === "file:") updateUseElements(); + } + + function updateUseElements() { + document.querySelectorAll("use").forEach(el => { + if (el.getAttribute("href").includes("#icon-")) { + el.setAttribute("href", el.getAttribute("href").replace(/.*#/, "#")); + } + }); + } +})() \ No newline at end of file diff --git a/pages/docs/TypeScript/multicore/assets/icons.svg b/pages/docs/TypeScript/multicore/assets/icons.svg new file mode 100644 index 0000000..e371b8b --- /dev/null +++ b/pages/docs/TypeScript/multicore/assets/icons.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/pages/docs/TypeScript/multicore/assets/main.js b/pages/docs/TypeScript/multicore/assets/main.js new file mode 100644 index 0000000..21a5d74 --- /dev/null +++ b/pages/docs/TypeScript/multicore/assets/main.js @@ -0,0 +1,60 @@ +"use strict"; +window.translations={"copy":"Copy","copied":"Copied!","normally_hidden":"This member is normally hidden due to your filter settings."}; +"use strict";(()=>{var Pe=Object.create;var ie=Object.defineProperty;var Oe=Object.getOwnPropertyDescriptor;var _e=Object.getOwnPropertyNames;var Re=Object.getPrototypeOf,Me=Object.prototype.hasOwnProperty;var Fe=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var De=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of _e(e))!Me.call(t,i)&&i!==n&&ie(t,i,{get:()=>e[i],enumerable:!(r=Oe(e,i))||r.enumerable});return t};var Ae=(t,e,n)=>(n=t!=null?Pe(Re(t)):{},De(e||!t||!t.__esModule?ie(n,"default",{value:t,enumerable:!0}):n,t));var ue=Fe((ae,le)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(n){e.console&&console.warn&&console.warn(n)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i0){var d=t.utils.clone(n)||{};d.position=[a,u],d.index=s.length,s.push(new t.Token(r.slice(a,o),d))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. +`,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r1&&(oe&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(ol?d+=2:a==l&&(n+=r[u+1]*i[d+1],u+=2,d+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}if(s.str.length==0&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new t.TokenSet;s.node.edges["*"]=u}s.str.length==1&&(u.final=!0),i.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),m=s.str.charAt(1),p;m in s.node.edges?p=s.node.edges[m]:(p=new t.TokenSet,s.node.edges[m]=p),s.str.length==1&&(p.final=!0),i.push({node:p,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),l=0;l1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,n){typeof define=="function"&&define.amd?define(n):typeof ae=="object"?le.exports=n():e.lunr=n()}(this,function(){return t})})()});var se=[];function G(t,e){se.push({selector:e,constructor:t})}var U=class{constructor(){this.alwaysVisibleMember=null;this.createComponents(document.body),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible()),document.body.style.display||(this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}createComponents(e){se.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}showPage(){document.body.style.display&&(document.body.style.removeProperty("display"),this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}scrollToHash(){if(location.hash){let e=document.getElementById(location.hash.substring(1));if(!e)return;e.scrollIntoView({behavior:"instant",block:"start"})}}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),n=e?.parentElement;for(;n&&!n.classList.contains(".tsd-navigation");)n instanceof HTMLDetailsElement&&(n.open=!0),n=n.parentElement;if(e&&!Ve(e)){let r=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=r,document.querySelector(".col-sidebar").scrollTop=r}}updateIndexVisibility(){let e=document.querySelector(".tsd-index-content"),n=e?.open;e&&(e.open=!0),document.querySelectorAll(".tsd-index-section").forEach(r=>{r.style.display="block";let i=Array.from(r.querySelectorAll(".tsd-index-link")).every(s=>s.offsetParent==null);r.style.display=i?"none":"block"}),e&&(e.open=n)}ensureFocusedElementVisible(){if(this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null),!location.hash)return;let e=document.getElementById(location.hash.substring(1));if(!e)return;let n=e.parentElement;for(;n&&n.tagName!=="SECTION";)n=n.parentElement;if(!n)return;let r=n.offsetParent==null,i=n;for(;i!==document.body;)i instanceof HTMLDetailsElement&&(i.open=!0),i=i.parentElement;if(n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let s=document.createElement("p");s.classList.add("warning"),s.textContent=window.translations.normally_hidden,n.prepend(s)}r&&e.scrollIntoView()}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let n;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent=window.translations.copied,e.classList.add("visible"),clearTimeout(n),n=setTimeout(()=>{e.classList.remove("visible"),n=setTimeout(()=>{e.textContent=window.translations.copy},100)},1e3)})})}};function Ve(t){let e=t.getBoundingClientRect(),n=Math.max(document.documentElement.clientHeight,window.innerHeight);return!(e.bottom<0||e.top-n>=0)}var oe=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var pe=Ae(ue());async function ce(t,e){if(!window.searchData)return;let n=await fetch(window.searchData),r=new Blob([await n.arrayBuffer()]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();t.data=i,t.index=pe.Index.load(i.index),e.classList.remove("loading"),e.classList.add("ready")}function fe(){let t=document.getElementById("tsd-search");if(!t)return;let e={base:t.dataset.base+"/"},n=document.getElementById("tsd-search-script");t.classList.add("loading"),n&&(n.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),n.addEventListener("load",()=>{ce(e,t)}),ce(e,t));let r=document.querySelector("#tsd-search input"),i=document.querySelector("#tsd-search .results");if(!r||!i)throw new Error("The input field or the result list wrapper was not found");i.addEventListener("mouseup",()=>{te(t)}),r.addEventListener("focus",()=>t.classList.add("has-focus")),He(t,i,r,e)}function He(t,e,n,r){n.addEventListener("input",oe(()=>{Ne(t,e,n,r)},200)),n.addEventListener("keydown",i=>{i.key=="Enter"?Be(e,t):i.key=="ArrowUp"?(de(e,n,-1),i.preventDefault()):i.key==="ArrowDown"&&(de(e,n,1),i.preventDefault())}),document.body.addEventListener("keypress",i=>{i.altKey||i.ctrlKey||i.metaKey||!n.matches(":focus")&&i.key==="/"&&(i.preventDefault(),n.focus())}),document.body.addEventListener("keyup",i=>{t.classList.contains("has-focus")&&(i.key==="Escape"||!e.matches(":focus-within")&&!n.matches(":focus"))&&(n.blur(),te(t))})}function te(t){t.classList.remove("has-focus")}function Ne(t,e,n,r){if(!r.index||!r.data)return;e.textContent="";let i=n.value.trim(),s;if(i){let o=i.split(" ").map(a=>a.length?`*${a}*`:"").join(" ");s=r.index.search(o)}else s=[];for(let o=0;oa.score-o.score);for(let o=0,a=Math.min(10,s.length);o`,d=he(l.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(d+=` (score: ${s[o].score.toFixed(2)})`),l.parent&&(d=` + ${he(l.parent,i)}.${d}`);let m=document.createElement("li");m.classList.value=l.classes??"";let p=document.createElement("a");p.href=r.base+l.url,p.innerHTML=u+d,m.append(p),p.addEventListener("focus",()=>{e.querySelector(".current")?.classList.remove("current"),m.classList.add("current")}),e.appendChild(m)}}function de(t,e,n){let r=t.querySelector(".current");if(!r)r=t.querySelector(n==1?"li:first-child":"li:last-child"),r&&r.classList.add("current");else{let i=r;if(n===1)do i=i.nextElementSibling??void 0;while(i instanceof HTMLElement&&i.offsetParent==null);else do i=i.previousElementSibling??void 0;while(i instanceof HTMLElement&&i.offsetParent==null);i?(r.classList.remove("current"),i.classList.add("current")):n===-1&&(r.classList.remove("current"),e.focus())}}function Be(t,e){let n=t.querySelector(".current");if(n||(n=t.querySelector("li:first-child")),n){let r=n.querySelector("a");r&&(window.location.href=r.href),te(e)}}function he(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(ee(t.substring(s,o)),`${ee(t.substring(o,o+r.length))}`),s=o+r.length,o=n.indexOf(r,s);return i.push(ee(t.substring(s))),i.join("")}var je={"&":"&","<":"<",">":">","'":"'",'"':"""};function ee(t){return t.replace(/[&<>"'"]/g,e=>je[e])}var I=class{constructor(e){this.el=e.el,this.app=e.app}};var F="mousedown",ye="mousemove",N="mouseup",J={x:0,y:0},me=!1,ne=!1,qe=!1,D=!1,ve=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(ve?"is-mobile":"not-mobile");ve&&"ontouchstart"in document.documentElement&&(qe=!0,F="touchstart",ye="touchmove",N="touchend");document.addEventListener(F,t=>{ne=!0,D=!1;let e=F=="touchstart"?t.targetTouches[0]:t;J.y=e.pageY||0,J.x=e.pageX||0});document.addEventListener(ye,t=>{if(ne&&!D){let e=F=="touchstart"?t.targetTouches[0]:t,n=J.x-(e.pageX||0),r=J.y-(e.pageY||0);D=Math.sqrt(n*n+r*r)>10}});document.addEventListener(N,()=>{ne=!1});document.addEventListener("click",t=>{me&&(t.preventDefault(),t.stopImmediatePropagation(),me=!1)});var X=class extends I{constructor(e){super(e),this.className=this.el.dataset.toggle||"",this.el.addEventListener(N,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(F,n=>this.onDocumentPointerDown(n)),document.addEventListener(N,n=>this.onDocumentPointerUp(n))}setActive(e){if(this.active==e)return;this.active=e,document.documentElement.classList.toggle("has-"+this.className,e),this.el.classList.toggle("active",e);let n=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(n),setTimeout(()=>document.documentElement.classList.remove(n),500)}onPointerUp(e){D||(this.setActive(!0),e.preventDefault())}onDocumentPointerDown(e){if(this.active){if(e.target.closest(".col-sidebar, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(e){if(!D&&this.active&&e.target.closest(".col-sidebar")){let n=e.target.closest("a");if(n){let r=window.location.href;r.indexOf("#")!=-1&&(r=r.substring(0,r.indexOf("#"))),n.href.substring(0,r.length)==r&&setTimeout(()=>this.setActive(!1),250)}}}};var re;try{re=localStorage}catch{re={getItem(){return null},setItem(){}}}var Q=re;var ge=document.head.appendChild(document.createElement("style"));ge.dataset.for="filters";var Y=class extends I{constructor(e){super(e),this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),ge.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } +`,this.app.updateIndexVisibility()}fromLocalStorage(){let e=Q.getItem(this.key);return e?e==="true":this.el.checked}setLocalStorage(e){Q.setItem(this.key,e.toString()),this.value=e,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),this.app.filterChanged(),this.app.updateIndexVisibility()}};var Z=class extends I{constructor(e){super(e),this.summary=this.el.querySelector(".tsd-accordion-summary"),this.icon=this.summary.querySelector("svg"),this.key=`tsd-accordion-${this.summary.dataset.key??this.summary.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`;let n=Q.getItem(this.key);this.el.open=n?n==="true":this.el.open,this.el.addEventListener("toggle",()=>this.update());let r=this.summary.querySelector("a");r&&r.addEventListener("click",()=>{location.assign(r.href)}),this.update()}update(){this.icon.style.transform=`rotate(${this.el.open?0:-90}deg)`,Q.setItem(this.key,this.el.open.toString())}};function Ee(t){let e=Q.getItem("tsd-theme")||"os";t.value=e,xe(e),t.addEventListener("change",()=>{Q.setItem("tsd-theme",t.value),xe(t.value)})}function xe(t){document.documentElement.dataset.theme=t}var K;function we(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",Le),Le())}async function Le(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let n=await(await fetch(window.navigationData)).arrayBuffer(),r=new Blob([n]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();K=t.dataset.base,K.endsWith("/")||(K+="/"),t.innerHTML="";for(let s of i)Se(s,t,[]);window.app.createComponents(t),window.app.showPage(),window.app.ensureActivePageVisible()}function Se(t,e,n){let r=e.appendChild(document.createElement("li"));if(t.children){let i=[...n,t.text],s=r.appendChild(document.createElement("details"));s.className=t.class?`${t.class} tsd-accordion`:"tsd-accordion";let o=s.appendChild(document.createElement("summary"));o.className="tsd-accordion-summary",o.dataset.key=i.join("$"),o.innerHTML='',be(t,o);let a=s.appendChild(document.createElement("div"));a.className="tsd-accordion-details";let l=a.appendChild(document.createElement("ul"));l.className="tsd-nested-navigation";for(let u of t.children)Se(u,l,i)}else be(t,r,t.class)}function be(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));r.href=K+t.path,n&&(r.className=n),location.pathname===r.pathname&&!r.href.includes("#")&&r.classList.add("current"),t.kind&&(r.innerHTML=``),r.appendChild(document.createElement("span")).textContent=t.text}else e.appendChild(document.createElement("span")).textContent=t.text}G(X,"a[data-toggle]");G(Z,".tsd-accordion");G(Y,".tsd-filter-item input[type=checkbox]");var Te=document.getElementById("tsd-theme");Te&&Ee(Te);var $e=new U;Object.defineProperty(window,"app",{value:$e});fe();we();})(); +/*! Bundled license information: + +lunr/lunr.js: + (** + * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9 + * Copyright (C) 2020 Oliver Nightingale + * @license MIT + *) + (*! + * lunr.utils + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Set + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.tokenizer + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Pipeline + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Vector + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.stemmer + * Copyright (C) 2020 Oliver Nightingale + * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt + *) + (*! + * lunr.stopWordFilter + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.trimmer + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.TokenSet + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Index + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Builder + * Copyright (C) 2020 Oliver Nightingale + *) +*/ diff --git a/pages/docs/TypeScript/multicore/assets/navigation.js b/pages/docs/TypeScript/multicore/assets/navigation.js new file mode 100644 index 0000000..78c3d9d --- /dev/null +++ b/pages/docs/TypeScript/multicore/assets/navigation.js @@ -0,0 +1 @@ +window.navigationData = "data:application/octet-stream;base64,H4sIAAAAAAAAE4WSQUsDMRBG/8ucF4sFRfZaEHrQCoKX0kNMpjSYzZQk2Ir0v8sqq0lmNl7z8V6W7Nt+QsJzgh5W5FMg5zBAB0eVDtCDdipGjIu/7eqQBgcdvFlvoL9e3l26X8O90sogp3/OW+SD0oFWNAzKG87na9OCxqpEwvdPS5Mmg05Ax+MW90jJ7q1WyZLneL7+b5Heflpa9OY1YniX6Glp0U+Bzh8c/T5ucc92ODqc/W3F3PK8WDxxfDxtUWt2sfUJw15pjIu1eO3y5rYU8OJLh1x9pamzzxVS+hXOq80Fcrm1oky34Hm+FSz3mzvmGxZVc88ph1wpeMm5Qq65UlQ557yQdAWXLeYs73FEd18SpZQwQQUAAA==" \ No newline at end of file diff --git a/pages/docs/TypeScript/multicore/assets/search.js b/pages/docs/TypeScript/multicore/assets/search.js new file mode 100644 index 0000000..b20f434 --- /dev/null +++ b/pages/docs/TypeScript/multicore/assets/search.js @@ -0,0 +1 @@ +window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file diff --git a/pages/docs/TypeScript/multicore/assets/style.css b/pages/docs/TypeScript/multicore/assets/style.css new file mode 100644 index 0000000..9d619a6 --- /dev/null +++ b/pages/docs/TypeScript/multicore/assets/style.css @@ -0,0 +1,1448 @@ +:root { + /* Light */ + --light-color-background: #f2f4f8; + --light-color-background-secondary: #eff0f1; + --light-color-warning-text: #222; + --light-color-background-warning: #e6e600; + --light-color-icon-background: var(--light-color-background); + --light-color-accent: #c5c7c9; + --light-color-active-menu-item: var(--light-color-accent); + --light-color-text: #222; + --light-color-text-aside: #6e6e6e; + --light-color-link: #1f70c2; + --light-color-focus-outline: #3584e4; + + --light-color-ts-keyword: #056bd6; + --light-color-ts-project: #b111c9; + --light-color-ts-module: var(--light-color-ts-project); + --light-color-ts-namespace: var(--light-color-ts-project); + --light-color-ts-enum: #7e6f15; + --light-color-ts-enum-member: var(--light-color-ts-enum); + --light-color-ts-variable: #4760ec; + --light-color-ts-function: #572be7; + --light-color-ts-class: #1f70c2; + --light-color-ts-interface: #108024; + --light-color-ts-constructor: var(--light-color-ts-class); + --light-color-ts-property: var(--light-color-ts-variable); + --light-color-ts-method: var(--light-color-ts-function); + --light-color-ts-call-signature: var(--light-color-ts-method); + --light-color-ts-index-signature: var(--light-color-ts-property); + --light-color-ts-constructor-signature: var(--light-color-ts-constructor); + --light-color-ts-parameter: var(--light-color-ts-variable); + /* type literal not included as links will never be generated to it */ + --light-color-ts-type-parameter: #a55c0e; + --light-color-ts-accessor: var(--light-color-ts-property); + --light-color-ts-get-signature: var(--light-color-ts-accessor); + --light-color-ts-set-signature: var(--light-color-ts-accessor); + --light-color-ts-type-alias: #d51270; + /* reference not included as links will be colored with the kind that it points to */ + --light-color-document: #000000; + + --light-external-icon: url("data:image/svg+xml;utf8,"); + --light-color-scheme: light; + + /* Dark */ + --dark-color-background: #2b2e33; + --dark-color-background-secondary: #1e2024; + --dark-color-background-warning: #bebe00; + --dark-color-warning-text: #222; + --dark-color-icon-background: var(--dark-color-background-secondary); + --dark-color-accent: #9096a2; + --dark-color-active-menu-item: #5d5d6a; + --dark-color-text: #f5f5f5; + --dark-color-text-aside: #dddddd; + --dark-color-link: #00aff4; + --dark-color-focus-outline: #4c97f2; + + --dark-color-ts-keyword: #3399ff; + --dark-color-ts-project: #e358ff; + --dark-color-ts-module: var(--dark-color-ts-project); + --dark-color-ts-namespace: var(--dark-color-ts-project); + --dark-color-ts-enum: #f4d93e; + --dark-color-ts-enum-member: var(--dark-color-ts-enum); + --dark-color-ts-variable: #798dff; + --dark-color-ts-function: #a280ff; + --dark-color-ts-class: #8ac4ff; + --dark-color-ts-interface: #6cff87; + --dark-color-ts-constructor: var(--dark-color-ts-class); + --dark-color-ts-property: var(--dark-color-ts-variable); + --dark-color-ts-method: var(--dark-color-ts-function); + --dark-color-ts-call-signature: var(--dark-color-ts-method); + --dark-color-ts-index-signature: var(--dark-color-ts-property); + --dark-color-ts-constructor-signature: var(--dark-color-ts-constructor); + --dark-color-ts-parameter: var(--dark-color-ts-variable); + /* type literal not included as links will never be generated to it */ + --dark-color-ts-type-parameter: #e07d13; + --dark-color-ts-accessor: var(--dark-color-ts-property); + --dark-color-ts-get-signature: var(--dark-color-ts-accessor); + --dark-color-ts-set-signature: var(--dark-color-ts-accessor); + --dark-color-ts-type-alias: #ff6492; + /* reference not included as links will be colored with the kind that it points to */ + --dark-color-document: #ffffff; + + --dark-external-icon: url("data:image/svg+xml;utf8,"); + --dark-color-scheme: dark; +} + +@media (prefers-color-scheme: light) { + :root { + --color-background: var(--light-color-background); + --color-background-secondary: var(--light-color-background-secondary); + --color-background-warning: var(--light-color-background-warning); + --color-warning-text: var(--light-color-warning-text); + --color-icon-background: var(--light-color-icon-background); + --color-accent: var(--light-color-accent); + --color-active-menu-item: var(--light-color-active-menu-item); + --color-text: var(--light-color-text); + --color-text-aside: var(--light-color-text-aside); + --color-link: var(--light-color-link); + --color-focus-outline: var(--light-color-focus-outline); + + --color-ts-keyword: var(--light-color-ts-keyword); + --color-ts-module: var(--light-color-ts-module); + --color-ts-namespace: var(--light-color-ts-namespace); + --color-ts-enum: var(--light-color-ts-enum); + --color-ts-enum-member: var(--light-color-ts-enum-member); + --color-ts-variable: var(--light-color-ts-variable); + --color-ts-function: var(--light-color-ts-function); + --color-ts-class: var(--light-color-ts-class); + --color-ts-interface: var(--light-color-ts-interface); + --color-ts-constructor: var(--light-color-ts-constructor); + --color-ts-property: var(--light-color-ts-property); + --color-ts-method: var(--light-color-ts-method); + --color-ts-call-signature: var(--light-color-ts-call-signature); + --color-ts-index-signature: var(--light-color-ts-index-signature); + --color-ts-constructor-signature: var( + --light-color-ts-constructor-signature + ); + --color-ts-parameter: var(--light-color-ts-parameter); + --color-ts-type-parameter: var(--light-color-ts-type-parameter); + --color-ts-accessor: var(--light-color-ts-accessor); + --color-ts-get-signature: var(--light-color-ts-get-signature); + --color-ts-set-signature: var(--light-color-ts-set-signature); + --color-ts-type-alias: var(--light-color-ts-type-alias); + --color-document: var(--light-color-document); + + --external-icon: var(--light-external-icon); + --color-scheme: var(--light-color-scheme); + } +} + +@media (prefers-color-scheme: dark) { + :root { + --color-background: var(--dark-color-background); + --color-background-secondary: var(--dark-color-background-secondary); + --color-background-warning: var(--dark-color-background-warning); + --color-warning-text: var(--dark-color-warning-text); + --color-icon-background: var(--dark-color-icon-background); + --color-accent: var(--dark-color-accent); + --color-active-menu-item: var(--dark-color-active-menu-item); + --color-text: var(--dark-color-text); + --color-text-aside: var(--dark-color-text-aside); + --color-link: var(--dark-color-link); + --color-focus-outline: var(--dark-color-focus-outline); + + --color-ts-keyword: var(--dark-color-ts-keyword); + --color-ts-module: var(--dark-color-ts-module); + --color-ts-namespace: var(--dark-color-ts-namespace); + --color-ts-enum: var(--dark-color-ts-enum); + --color-ts-enum-member: var(--dark-color-ts-enum-member); + --color-ts-variable: var(--dark-color-ts-variable); + --color-ts-function: var(--dark-color-ts-function); + --color-ts-class: var(--dark-color-ts-class); + --color-ts-interface: var(--dark-color-ts-interface); + --color-ts-constructor: var(--dark-color-ts-constructor); + --color-ts-property: var(--dark-color-ts-property); + --color-ts-method: var(--dark-color-ts-method); + --color-ts-call-signature: var(--dark-color-ts-call-signature); + --color-ts-index-signature: var(--dark-color-ts-index-signature); + --color-ts-constructor-signature: var( + --dark-color-ts-constructor-signature + ); + --color-ts-parameter: var(--dark-color-ts-parameter); + --color-ts-type-parameter: var(--dark-color-ts-type-parameter); + --color-ts-accessor: var(--dark-color-ts-accessor); + --color-ts-get-signature: var(--dark-color-ts-get-signature); + --color-ts-set-signature: var(--dark-color-ts-set-signature); + --color-ts-type-alias: var(--dark-color-ts-type-alias); + --color-document: var(--dark-color-document); + + --external-icon: var(--dark-external-icon); + --color-scheme: var(--dark-color-scheme); + } +} + +html { + color-scheme: var(--color-scheme); +} + +body { + margin: 0; +} + +:root[data-theme="light"] { + --color-background: var(--light-color-background); + --color-background-secondary: var(--light-color-background-secondary); + --color-background-warning: var(--light-color-background-warning); + --color-warning-text: var(--light-color-warning-text); + --color-icon-background: var(--light-color-icon-background); + --color-accent: var(--light-color-accent); + --color-active-menu-item: var(--light-color-active-menu-item); + --color-text: var(--light-color-text); + --color-text-aside: var(--light-color-text-aside); + --color-link: var(--light-color-link); + --color-focus-outline: var(--light-color-focus-outline); + + --color-ts-keyword: var(--light-color-ts-keyword); + --color-ts-module: var(--light-color-ts-module); + --color-ts-namespace: var(--light-color-ts-namespace); + --color-ts-enum: var(--light-color-ts-enum); + --color-ts-enum-member: var(--light-color-ts-enum-member); + --color-ts-variable: var(--light-color-ts-variable); + --color-ts-function: var(--light-color-ts-function); + --color-ts-class: var(--light-color-ts-class); + --color-ts-interface: var(--light-color-ts-interface); + --color-ts-constructor: var(--light-color-ts-constructor); + --color-ts-property: var(--light-color-ts-property); + --color-ts-method: var(--light-color-ts-method); + --color-ts-call-signature: var(--light-color-ts-call-signature); + --color-ts-index-signature: var(--light-color-ts-index-signature); + --color-ts-constructor-signature: var( + --light-color-ts-constructor-signature + ); + --color-ts-parameter: var(--light-color-ts-parameter); + --color-ts-type-parameter: var(--light-color-ts-type-parameter); + --color-ts-accessor: var(--light-color-ts-accessor); + --color-ts-get-signature: var(--light-color-ts-get-signature); + --color-ts-set-signature: var(--light-color-ts-set-signature); + --color-ts-type-alias: var(--light-color-ts-type-alias); + --color-document: var(--light-color-document); + + --external-icon: var(--light-external-icon); + --color-scheme: var(--light-color-scheme); +} + +:root[data-theme="dark"] { + --color-background: var(--dark-color-background); + --color-background-secondary: var(--dark-color-background-secondary); + --color-background-warning: var(--dark-color-background-warning); + --color-warning-text: var(--dark-color-warning-text); + --color-icon-background: var(--dark-color-icon-background); + --color-accent: var(--dark-color-accent); + --color-active-menu-item: var(--dark-color-active-menu-item); + --color-text: var(--dark-color-text); + --color-text-aside: var(--dark-color-text-aside); + --color-link: var(--dark-color-link); + --color-focus-outline: var(--dark-color-focus-outline); + + --color-ts-keyword: var(--dark-color-ts-keyword); + --color-ts-module: var(--dark-color-ts-module); + --color-ts-namespace: var(--dark-color-ts-namespace); + --color-ts-enum: var(--dark-color-ts-enum); + --color-ts-enum-member: var(--dark-color-ts-enum-member); + --color-ts-variable: var(--dark-color-ts-variable); + --color-ts-function: var(--dark-color-ts-function); + --color-ts-class: var(--dark-color-ts-class); + --color-ts-interface: var(--dark-color-ts-interface); + --color-ts-constructor: var(--dark-color-ts-constructor); + --color-ts-property: var(--dark-color-ts-property); + --color-ts-method: var(--dark-color-ts-method); + --color-ts-call-signature: var(--dark-color-ts-call-signature); + --color-ts-index-signature: var(--dark-color-ts-index-signature); + --color-ts-constructor-signature: var( + --dark-color-ts-constructor-signature + ); + --color-ts-parameter: var(--dark-color-ts-parameter); + --color-ts-type-parameter: var(--dark-color-ts-type-parameter); + --color-ts-accessor: var(--dark-color-ts-accessor); + --color-ts-get-signature: var(--dark-color-ts-get-signature); + --color-ts-set-signature: var(--dark-color-ts-set-signature); + --color-ts-type-alias: var(--dark-color-ts-type-alias); + --color-document: var(--dark-color-document); + + --external-icon: var(--dark-external-icon); + --color-scheme: var(--dark-color-scheme); +} + +*:focus-visible, +.tsd-accordion-summary:focus-visible svg { + outline: 2px solid var(--color-focus-outline); +} + +.always-visible, +.always-visible .tsd-signatures { + display: inherit !important; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + line-height: 1.2; +} + +h1 { + font-size: 1.875rem; + margin: 0.67rem 0; +} + +h2 { + font-size: 1.5rem; + margin: 0.83rem 0; +} + +h3 { + font-size: 1.25rem; + margin: 1rem 0; +} + +h4 { + font-size: 1.05rem; + margin: 1.33rem 0; +} + +h5 { + font-size: 1rem; + margin: 1.5rem 0; +} + +h6 { + font-size: 0.875rem; + margin: 2.33rem 0; +} + +dl, +menu, +ol, +ul { + margin: 1em 0; +} + +dd { + margin: 0 0 0 40px; +} + +.container { + max-width: 1700px; + padding: 0 2rem; +} + +/* Footer */ +footer { + border-top: 1px solid var(--color-accent); + padding-top: 1rem; + padding-bottom: 1rem; + max-height: 3.5rem; +} +footer > p { + margin: 0 1em; +} + +.container-main { + margin: 0 auto; + /* toolbar, footer, margin */ + min-height: calc(100vh - 41px - 56px - 4rem); +} + +@keyframes fade-in { + from { + opacity: 0; + } + to { + opacity: 1; + } +} +@keyframes fade-out { + from { + opacity: 1; + visibility: visible; + } + to { + opacity: 0; + } +} +@keyframes fade-in-delayed { + 0% { + opacity: 0; + } + 33% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +@keyframes fade-out-delayed { + 0% { + opacity: 1; + visibility: visible; + } + 66% { + opacity: 0; + } + 100% { + opacity: 0; + } +} +@keyframes pop-in-from-right { + from { + transform: translate(100%, 0); + } + to { + transform: translate(0, 0); + } +} +@keyframes pop-out-to-right { + from { + transform: translate(0, 0); + visibility: visible; + } + to { + transform: translate(100%, 0); + } +} +body { + background: var(--color-background); + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", + Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; + font-size: 16px; + color: var(--color-text); +} + +a { + color: var(--color-link); + text-decoration: none; +} +a:hover { + text-decoration: underline; +} +a.external[target="_blank"] { + background-image: var(--external-icon); + background-position: top 3px right; + background-repeat: no-repeat; + padding-right: 13px; +} +a.tsd-anchor-link { + color: var(--color-text); +} + +code, +pre { + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + padding: 0.2em; + margin: 0; + font-size: 0.875rem; + border-radius: 0.8em; +} + +pre { + position: relative; + white-space: pre; + white-space: pre-wrap; + word-wrap: break-word; + padding: 10px; + border: 1px solid var(--color-accent); +} +pre code { + padding: 0; + font-size: 100%; +} +pre > button { + position: absolute; + top: 10px; + right: 10px; + opacity: 0; + transition: opacity 0.1s; + box-sizing: border-box; +} +pre:hover > button, +pre > button.visible { + opacity: 1; +} + +blockquote { + margin: 1em 0; + padding-left: 1em; + border-left: 4px solid gray; +} + +.tsd-typography { + line-height: 1.333em; +} +.tsd-typography ul { + list-style: square; + padding: 0 0 0 20px; + margin: 0; +} +.tsd-typography .tsd-index-panel h3, +.tsd-index-panel .tsd-typography h3, +.tsd-typography h4, +.tsd-typography h5, +.tsd-typography h6 { + font-size: 1em; +} +.tsd-typography h5, +.tsd-typography h6 { + font-weight: normal; +} +.tsd-typography p, +.tsd-typography ul, +.tsd-typography ol { + margin: 1em 0; +} +.tsd-typography table { + border-collapse: collapse; + border: none; +} +.tsd-typography td, +.tsd-typography th { + padding: 6px 13px; + border: 1px solid var(--color-accent); +} +.tsd-typography thead, +.tsd-typography tr:nth-child(even) { + background-color: var(--color-background-secondary); +} + +.tsd-breadcrumb { + margin: 0; + padding: 0; + color: var(--color-text-aside); +} +.tsd-breadcrumb a { + color: var(--color-text-aside); + text-decoration: none; +} +.tsd-breadcrumb a:hover { + text-decoration: underline; +} +.tsd-breadcrumb li { + display: inline; +} +.tsd-breadcrumb li:after { + content: " / "; +} + +.tsd-comment-tags { + display: flex; + flex-direction: column; +} +dl.tsd-comment-tag-group { + display: flex; + align-items: center; + overflow: hidden; + margin: 0.5em 0; +} +dl.tsd-comment-tag-group dt { + display: flex; + margin-right: 0.5em; + font-size: 0.875em; + font-weight: normal; +} +dl.tsd-comment-tag-group dd { + margin: 0; +} +code.tsd-tag { + padding: 0.25em 0.4em; + border: 0.1em solid var(--color-accent); + margin-right: 0.25em; + font-size: 70%; +} +h1 code.tsd-tag:first-of-type { + margin-left: 0.25em; +} + +dl.tsd-comment-tag-group dd:before, +dl.tsd-comment-tag-group dd:after { + content: " "; +} +dl.tsd-comment-tag-group dd pre, +dl.tsd-comment-tag-group dd:after { + clear: both; +} +dl.tsd-comment-tag-group p { + margin: 0; +} + +.tsd-panel.tsd-comment .lead { + font-size: 1.1em; + line-height: 1.333em; + margin-bottom: 2em; +} +.tsd-panel.tsd-comment .lead:last-child { + margin-bottom: 0; +} + +.tsd-filter-visibility h4 { + font-size: 1rem; + padding-top: 0.75rem; + padding-bottom: 0.5rem; + margin: 0; +} +.tsd-filter-item:not(:last-child) { + margin-bottom: 0.5rem; +} +.tsd-filter-input { + display: flex; + width: -moz-fit-content; + width: fit-content; + align-items: center; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; +} +.tsd-filter-input input[type="checkbox"] { + cursor: pointer; + position: absolute; + width: 1.5em; + height: 1.5em; + opacity: 0; +} +.tsd-filter-input input[type="checkbox"]:disabled { + pointer-events: none; +} +.tsd-filter-input svg { + cursor: pointer; + width: 1.5em; + height: 1.5em; + margin-right: 0.5em; + border-radius: 0.33em; + /* Leaving this at full opacity breaks event listeners on Firefox. + Don't remove unless you know what you're doing. */ + opacity: 0.99; +} +.tsd-filter-input input[type="checkbox"]:focus-visible + svg { + outline: 2px solid var(--color-focus-outline); +} +.tsd-checkbox-background { + fill: var(--color-accent); +} +input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark { + stroke: var(--color-text); +} +.tsd-filter-input input:disabled ~ svg > .tsd-checkbox-background { + fill: var(--color-background); + stroke: var(--color-accent); + stroke-width: 0.25rem; +} +.tsd-filter-input input:disabled ~ svg > .tsd-checkbox-checkmark { + stroke: var(--color-accent); +} + +.settings-label { + font-weight: bold; + text-transform: uppercase; + display: inline-block; +} + +.tsd-filter-visibility .settings-label { + margin: 0.75rem 0 0.5rem 0; +} + +.tsd-theme-toggle .settings-label { + margin: 0.75rem 0.75rem 0 0; +} + +.tsd-hierarchy { + list-style: square; + margin: 0; +} +.tsd-hierarchy .target { + font-weight: bold; +} + +.tsd-full-hierarchy:not(:last-child) { + margin-bottom: 1em; + padding-bottom: 1em; + border-bottom: 1px solid var(--color-accent); +} +.tsd-full-hierarchy, +.tsd-full-hierarchy ul { + list-style: none; + margin: 0; + padding: 0; +} +.tsd-full-hierarchy ul { + padding-left: 1.5rem; +} +.tsd-full-hierarchy a { + padding: 0.25rem 0 !important; + font-size: 1rem; + display: inline-flex; + align-items: center; + color: var(--color-text); +} + +.tsd-panel-group.tsd-index-group { + margin-bottom: 0; +} +.tsd-index-panel .tsd-index-list { + list-style: none; + line-height: 1.333em; + margin: 0; + padding: 0.25rem 0 0 0; + overflow: hidden; + display: grid; + grid-template-columns: repeat(3, 1fr); + column-gap: 1rem; + grid-template-rows: auto; +} +@media (max-width: 1024px) { + .tsd-index-panel .tsd-index-list { + grid-template-columns: repeat(2, 1fr); + } +} +@media (max-width: 768px) { + .tsd-index-panel .tsd-index-list { + grid-template-columns: repeat(1, 1fr); + } +} +.tsd-index-panel .tsd-index-list li { + -webkit-page-break-inside: avoid; + -moz-page-break-inside: avoid; + -ms-page-break-inside: avoid; + -o-page-break-inside: avoid; + page-break-inside: avoid; +} + +.tsd-flag { + display: inline-block; + padding: 0.25em 0.4em; + border-radius: 4px; + color: var(--color-comment-tag-text); + background-color: var(--color-comment-tag); + text-indent: 0; + font-size: 75%; + line-height: 1; + font-weight: normal; +} + +.tsd-anchor { + position: relative; + top: -100px; +} + +.tsd-member { + position: relative; +} +.tsd-member .tsd-anchor + h3 { + display: flex; + align-items: center; + margin-top: 0; + margin-bottom: 0; + border-bottom: none; +} + +.tsd-navigation.settings { + margin: 1rem 0; +} +.tsd-navigation > a, +.tsd-navigation .tsd-accordion-summary { + width: calc(100% - 0.25rem); + display: flex; + align-items: center; +} +.tsd-navigation a, +.tsd-navigation summary > span, +.tsd-page-navigation a { + display: flex; + width: calc(100% - 0.25rem); + align-items: center; + padding: 0.25rem; + color: var(--color-text); + text-decoration: none; + box-sizing: border-box; +} +.tsd-navigation a.current, +.tsd-page-navigation a.current { + background: var(--color-active-menu-item); +} +.tsd-navigation a:hover, +.tsd-page-navigation a:hover { + text-decoration: underline; +} +.tsd-navigation ul, +.tsd-page-navigation ul { + margin-top: 0; + margin-bottom: 0; + padding: 0; + list-style: none; +} +.tsd-navigation li, +.tsd-page-navigation li { + padding: 0; + max-width: 100%; +} +.tsd-navigation .tsd-nav-link { + display: none; +} +.tsd-nested-navigation { + margin-left: 3rem; +} +.tsd-nested-navigation > li > details { + margin-left: -1.5rem; +} +.tsd-small-nested-navigation { + margin-left: 1.5rem; +} +.tsd-small-nested-navigation > li > details { + margin-left: -1.5rem; +} + +.tsd-page-navigation-section { + margin-left: 10px; +} +.tsd-page-navigation-section > summary { + padding: 0.25rem; +} +.tsd-page-navigation-section > div { + margin-left: 20px; +} +.tsd-page-navigation ul { + padding-left: 1.75rem; +} + +#tsd-sidebar-links a { + margin-top: 0; + margin-bottom: 0.5rem; + line-height: 1.25rem; +} +#tsd-sidebar-links a:last-of-type { + margin-bottom: 0; +} + +a.tsd-index-link { + padding: 0.25rem 0 !important; + font-size: 1rem; + line-height: 1.25rem; + display: inline-flex; + align-items: center; + color: var(--color-text); +} +.tsd-accordion-summary { + list-style-type: none; /* hide marker on non-safari */ + outline: none; /* broken on safari, so just hide it */ +} +.tsd-accordion-summary::-webkit-details-marker { + display: none; /* hide marker on safari */ +} +.tsd-accordion-summary, +.tsd-accordion-summary a { + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; + + cursor: pointer; +} +.tsd-accordion-summary a { + width: calc(100% - 1.5rem); +} +.tsd-accordion-summary > * { + margin-top: 0; + margin-bottom: 0; + padding-top: 0; + padding-bottom: 0; +} +.tsd-accordion .tsd-accordion-summary > svg { + margin-left: 0.25rem; + vertical-align: text-top; +} +.tsd-index-content > :not(:first-child) { + margin-top: 0.75rem; +} +.tsd-index-heading { + margin-top: 1.5rem; + margin-bottom: 0.75rem; +} + +.tsd-kind-icon { + margin-right: 0.5rem; + width: 1.25rem; + height: 1.25rem; + min-width: 1.25rem; + min-height: 1.25rem; +} +.tsd-kind-icon path { + transform-origin: center; + transform: scale(1.1); +} +.tsd-signature > .tsd-kind-icon { + margin-right: 0.8rem; +} + +.tsd-panel { + margin-bottom: 2.5rem; +} +.tsd-panel.tsd-member { + margin-bottom: 4rem; +} +.tsd-panel:empty { + display: none; +} +.tsd-panel > h1, +.tsd-panel > h2, +.tsd-panel > h3 { + margin: 1.5rem -1.5rem 0.75rem -1.5rem; + padding: 0 1.5rem 0.75rem 1.5rem; +} +.tsd-panel > h1.tsd-before-signature, +.tsd-panel > h2.tsd-before-signature, +.tsd-panel > h3.tsd-before-signature { + margin-bottom: 0; + border-bottom: none; +} + +.tsd-panel-group { + margin: 2rem 0; +} +.tsd-panel-group.tsd-index-group { + margin: 2rem 0; +} +.tsd-panel-group.tsd-index-group details { + margin: 2rem 0; +} +.tsd-panel-group > .tsd-accordion-summary { + margin-bottom: 1rem; +} + +#tsd-search { + transition: background-color 0.2s; +} +#tsd-search .title { + position: relative; + z-index: 2; +} +#tsd-search .field { + position: absolute; + left: 0; + top: 0; + right: 2.5rem; + height: 100%; +} +#tsd-search .field input { + box-sizing: border-box; + position: relative; + top: -50px; + z-index: 1; + width: 100%; + padding: 0 10px; + opacity: 0; + outline: 0; + border: 0; + background: transparent; + color: var(--color-text); +} +#tsd-search .field label { + position: absolute; + overflow: hidden; + right: -40px; +} +#tsd-search .field input, +#tsd-search .title, +#tsd-toolbar-links a { + transition: opacity 0.2s; +} +#tsd-search .results { + position: absolute; + visibility: hidden; + top: 40px; + width: 100%; + margin: 0; + padding: 0; + list-style: none; + box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); +} +#tsd-search .results li { + background-color: var(--color-background); + line-height: initial; + padding: 4px; +} +#tsd-search .results li:nth-child(even) { + background-color: var(--color-background-secondary); +} +#tsd-search .results li.state { + display: none; +} +#tsd-search .results li.current:not(.no-results), +#tsd-search .results li:hover:not(.no-results) { + background-color: var(--color-accent); +} +#tsd-search .results a { + display: flex; + align-items: center; + padding: 0.25rem; + box-sizing: border-box; +} +#tsd-search .results a:before { + top: 10px; +} +#tsd-search .results span.parent { + color: var(--color-text-aside); + font-weight: normal; +} +#tsd-search.has-focus { + background-color: var(--color-accent); +} +#tsd-search.has-focus .field input { + top: 0; + opacity: 1; +} +#tsd-search.has-focus .title, +#tsd-search.has-focus #tsd-toolbar-links a { + z-index: 0; + opacity: 0; +} +#tsd-search.has-focus .results { + visibility: visible; +} +#tsd-search.loading .results li.state.loading { + display: block; +} +#tsd-search.failure .results li.state.failure { + display: block; +} + +#tsd-toolbar-links { + position: absolute; + top: 0; + right: 2rem; + height: 100%; + display: flex; + align-items: center; + justify-content: flex-end; +} +#tsd-toolbar-links a { + margin-left: 1.5rem; +} +#tsd-toolbar-links a:hover { + text-decoration: underline; +} + +.tsd-signature { + margin: 0 0 1rem 0; + padding: 1rem 0.5rem; + border: 1px solid var(--color-accent); + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + font-size: 14px; + overflow-x: auto; +} + +.tsd-signature-keyword { + color: var(--color-ts-keyword); + font-weight: normal; +} + +.tsd-signature-symbol { + color: var(--color-text-aside); + font-weight: normal; +} + +.tsd-signature-type { + font-style: italic; + font-weight: normal; +} + +.tsd-signatures { + padding: 0; + margin: 0 0 1em 0; + list-style-type: none; +} +.tsd-signatures .tsd-signature { + margin: 0; + border-color: var(--color-accent); + border-width: 1px 0; + transition: background-color 0.1s; +} +.tsd-signatures .tsd-index-signature:not(:last-child) { + margin-bottom: 1em; +} +.tsd-signatures .tsd-index-signature .tsd-signature { + border-width: 1px; +} +.tsd-description .tsd-signatures .tsd-signature { + border-width: 1px; +} + +ul.tsd-parameter-list, +ul.tsd-type-parameter-list { + list-style: square; + margin: 0; + padding-left: 20px; +} +ul.tsd-parameter-list > li.tsd-parameter-signature, +ul.tsd-type-parameter-list > li.tsd-parameter-signature { + list-style: none; + margin-left: -20px; +} +ul.tsd-parameter-list h5, +ul.tsd-type-parameter-list h5 { + font-size: 16px; + margin: 1em 0 0.5em 0; +} +.tsd-sources { + margin-top: 1rem; + font-size: 0.875em; +} +.tsd-sources a { + color: var(--color-text-aside); + text-decoration: underline; +} +.tsd-sources ul { + list-style: none; + padding: 0; +} + +.tsd-page-toolbar { + position: sticky; + z-index: 1; + top: 0; + left: 0; + width: 100%; + color: var(--color-text); + background: var(--color-background-secondary); + border-bottom: 1px var(--color-accent) solid; + transition: transform 0.3s ease-in-out; +} +.tsd-page-toolbar a { + color: var(--color-text); + text-decoration: none; +} +.tsd-page-toolbar a.title { + font-weight: bold; +} +.tsd-page-toolbar a.title:hover { + text-decoration: underline; +} +.tsd-page-toolbar .tsd-toolbar-contents { + display: flex; + justify-content: space-between; + height: 2.5rem; + margin: 0 auto; +} +.tsd-page-toolbar .table-cell { + position: relative; + white-space: nowrap; + line-height: 40px; +} +.tsd-page-toolbar .table-cell:first-child { + width: 100%; +} +.tsd-page-toolbar .tsd-toolbar-icon { + box-sizing: border-box; + line-height: 0; + padding: 12px 0; +} + +.tsd-widget { + display: inline-block; + overflow: hidden; + opacity: 0.8; + height: 40px; + transition: + opacity 0.1s, + background-color 0.2s; + vertical-align: bottom; + cursor: pointer; +} +.tsd-widget:hover { + opacity: 0.9; +} +.tsd-widget.active { + opacity: 1; + background-color: var(--color-accent); +} +.tsd-widget.no-caption { + width: 40px; +} +.tsd-widget.no-caption:before { + margin: 0; +} + +.tsd-widget.options, +.tsd-widget.menu { + display: none; +} +input[type="checkbox"] + .tsd-widget:before { + background-position: -120px 0; +} +input[type="checkbox"]:checked + .tsd-widget:before { + background-position: -160px 0; +} + +img { + max-width: 100%; +} + +.tsd-anchor-icon { + display: inline-flex; + align-items: center; + margin-left: 0.5rem; + vertical-align: middle; + color: var(--color-text); +} + +.tsd-anchor-icon svg { + width: 1em; + height: 1em; + visibility: hidden; +} + +.tsd-anchor-link:hover > .tsd-anchor-icon svg { + visibility: visible; +} + +.deprecated { + text-decoration: line-through !important; +} + +.warning { + padding: 1rem; + color: var(--color-warning-text); + background: var(--color-background-warning); +} + +.tsd-kind-project { + color: var(--color-ts-project); +} +.tsd-kind-module { + color: var(--color-ts-module); +} +.tsd-kind-namespace { + color: var(--color-ts-namespace); +} +.tsd-kind-enum { + color: var(--color-ts-enum); +} +.tsd-kind-enum-member { + color: var(--color-ts-enum-member); +} +.tsd-kind-variable { + color: var(--color-ts-variable); +} +.tsd-kind-function { + color: var(--color-ts-function); +} +.tsd-kind-class { + color: var(--color-ts-class); +} +.tsd-kind-interface { + color: var(--color-ts-interface); +} +.tsd-kind-constructor { + color: var(--color-ts-constructor); +} +.tsd-kind-property { + color: var(--color-ts-property); +} +.tsd-kind-method { + color: var(--color-ts-method); +} +.tsd-kind-call-signature { + color: var(--color-ts-call-signature); +} +.tsd-kind-index-signature { + color: var(--color-ts-index-signature); +} +.tsd-kind-constructor-signature { + color: var(--color-ts-constructor-signature); +} +.tsd-kind-parameter { + color: var(--color-ts-parameter); +} +.tsd-kind-type-literal { + color: var(--color-ts-type-literal); +} +.tsd-kind-type-parameter { + color: var(--color-ts-type-parameter); +} +.tsd-kind-accessor { + color: var(--color-ts-accessor); +} +.tsd-kind-get-signature { + color: var(--color-ts-get-signature); +} +.tsd-kind-set-signature { + color: var(--color-ts-set-signature); +} +.tsd-kind-type-alias { + color: var(--color-ts-type-alias); +} + +/* if we have a kind icon, don't color the text by kind */ +.tsd-kind-icon ~ span { + color: var(--color-text); +} + +* { + scrollbar-width: thin; + scrollbar-color: var(--color-accent) var(--color-icon-background); +} + +*::-webkit-scrollbar { + width: 0.75rem; +} + +*::-webkit-scrollbar-track { + background: var(--color-icon-background); +} + +*::-webkit-scrollbar-thumb { + background-color: var(--color-accent); + border-radius: 999rem; + border: 0.25rem solid var(--color-icon-background); +} + +/* mobile */ +@media (max-width: 769px) { + .tsd-widget.options, + .tsd-widget.menu { + display: inline-block; + } + + .container-main { + display: flex; + } + html .col-content { + float: none; + max-width: 100%; + width: 100%; + } + html .col-sidebar { + position: fixed !important; + overflow-y: auto; + -webkit-overflow-scrolling: touch; + z-index: 1024; + top: 0 !important; + bottom: 0 !important; + left: auto !important; + right: 0 !important; + padding: 1.5rem 1.5rem 0 0; + width: 75vw; + visibility: hidden; + background-color: var(--color-background); + transform: translate(100%, 0); + } + html .col-sidebar > *:last-child { + padding-bottom: 20px; + } + html .overlay { + content: ""; + display: block; + position: fixed; + z-index: 1023; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: rgba(0, 0, 0, 0.75); + visibility: hidden; + } + + .to-has-menu .overlay { + animation: fade-in 0.4s; + } + + .to-has-menu .col-sidebar { + animation: pop-in-from-right 0.4s; + } + + .from-has-menu .overlay { + animation: fade-out 0.4s; + } + + .from-has-menu .col-sidebar { + animation: pop-out-to-right 0.4s; + } + + .has-menu body { + overflow: hidden; + } + .has-menu .overlay { + visibility: visible; + } + .has-menu .col-sidebar { + visibility: visible; + transform: translate(0, 0); + display: flex; + flex-direction: column; + gap: 1.5rem; + max-height: 100vh; + padding: 1rem 2rem; + } + .has-menu .tsd-navigation { + max-height: 100%; + } + #tsd-toolbar-links { + display: none; + } + .tsd-navigation .tsd-nav-link { + display: flex; + } +} + +/* one sidebar */ +@media (min-width: 770px) { + .container-main { + display: grid; + grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); + grid-template-areas: "sidebar content"; + margin: 2rem auto; + } + + .col-sidebar { + grid-area: sidebar; + } + .col-content { + grid-area: content; + padding: 0 1rem; + } +} +@media (min-width: 770px) and (max-width: 1399px) { + .col-sidebar { + max-height: calc(100vh - 2rem - 42px); + overflow: auto; + position: sticky; + top: 42px; + padding-top: 1rem; + } + .site-menu { + margin-top: 1rem; + } +} + +/* two sidebars */ +@media (min-width: 1200px) { + .container-main { + grid-template-columns: minmax(0, 1fr) minmax(0, 2.5fr) minmax(0, 20rem); + grid-template-areas: "sidebar content toc"; + } + + .col-sidebar { + display: contents; + } + + .page-menu { + grid-area: toc; + padding-left: 1rem; + } + .site-menu { + grid-area: sidebar; + } + + .site-menu { + margin-top: 1rem 0; + } + + .page-menu, + .site-menu { + max-height: calc(100vh - 2rem - 42px); + overflow: auto; + position: sticky; + top: 42px; + } +} diff --git a/pages/docs/TypeScript/multicore/classes/Controller.html b/pages/docs/TypeScript/multicore/classes/Controller.html new file mode 100644 index 0000000..61ad521 --- /dev/null +++ b/pages/docs/TypeScript/multicore/classes/Controller.html @@ -0,0 +1,86 @@ +Controller | @puremvc/puremvc-typescript-multicore-framework

A Multiton Controller implementation.

+

In PureMVC, the Controller class follows the +'Command and Controller' strategy, and assumes these +responsibilities:

+
    +
  • Remembering which Commands +are intended to handle which Notifications.
  • +
  • Registering itself as an Observer with +the View for each Notification +that it has a Command mapping for.
  • +
  • Creating a new instance of the proper Command +to handle a given Notification when notified by the View.
  • +
  • Calling the Command's execute +method, passing in the Notification.
  • +
+

Your application must register Commands with the +Controller.

+

The simplest way is to subclass Facade, +and use its initializeController method to add your +registrations.

+

Implements

Constructors

  • Constructor.

    +

    This Controller implementation is a Multiton, +so you should not call the constructor +directly, but instead call the static Factory method, +passing the unique key for this instance +Controller.getInstance(multitonKey)

    +

    Parameters

    • key: string

    Returns Controller

    Error if instance for this Multiton key has already been constructed

    +

Properties

commandMap: {
    [key: string]: (() => ICommand);
}

Mapping of Notification names to Command factories

+
multitonKey: string

The Multiton Key for this Core

+
view?: IView

Local reference to View

+
MULTITON_MSG: string = "Controller instance for this Multiton key already constructed!"

Message Constants

+
instanceMap: {
    [key: string]: IController;
} = {}

Multiton Instances

+

Methods

  • If a Command has previously been registered +to handle the given Notification, then it is executed.

    +

    Parameters

    • notification: INotification

      The notification containing the data or command details needed for execution.

      +

    Returns void

  • Check if a Command is registered for a given Notification

    +

    Parameters

    • notificationName: string

      The name of the notification to check for a registered command.

      +

    Returns boolean

    true if a command is registered for the specified notification name; otherwise, false.

    +
  • Initialize the Multiton Controller instance.

    +

    Called automatically by the constructor.

    +

    Note that if you are using a subclass of View +in your application, you should also subclass Controller +and override the initializeController method in the +following way:

    +
    // ensure that the Controller is talking to my View implementation
    initializeController() {
    this.view = MyView.getInstance("ViewTestKey1", (key: string) => new View(key));
    } +
    + +

    Returns void

  • Register a particular Command class as the handler +for a particular Notification.

    +

    If an Command has already been registered to +handle Notifications with this name, it is no longer +used, the new Command is used instead.

    +

    The Observer for the new Command is only created if this the +first time a Command has been registered for this Notification name.

    +

    Parameters

    • notificationName: string

      The name of the notification to associate with the command.

      +
    • factory: (() => ICommand)

      A factory function that returns an instance of the command.

      +

    Returns void

  • Remove a previously registered Command to Notification mapping.

    +

    Parameters

    • notificationName: string

      The name of the notification for which the associated command should be removed.

      +

    Returns void

  • Controller Multiton Factory method.

    +

    Parameters

    • key: string

      The key used to identify the controller instance.

      +
    • factory: ((key: string) => IController)

      A factory function that creates a new instance of the controller if one does not already exist for the specified key.

      +

    Returns IController

    The controller instance associated with the given key.

    +
  • Remove a Controller instance

    +

    Parameters

    • key: string

      The key used to identify the controller instance to be removed.

      +

    Returns void

diff --git a/pages/docs/TypeScript/multicore/classes/Facade.html b/pages/docs/TypeScript/multicore/classes/Facade.html new file mode 100644 index 0000000..b404506 --- /dev/null +++ b/pages/docs/TypeScript/multicore/classes/Facade.html @@ -0,0 +1,158 @@ +Facade | @puremvc/puremvc-typescript-multicore-framework

A base Multiton Facade implementation.

+
+

Facade

+

Implements

Constructors

  • Constructor.

    +

    This Facade implementation is a Multiton, +so you should not call the constructor +directly, but instead call the static Factory method, +passing the unique key for this instance +Facade.getInstance(multitonKey)

    +

    Parameters

    • key: string

    Returns Facade

    Error if instance for this Multiton key has already been constructed

    +

Properties

controller?: IController

Reference to Controller

+
model?: IModel

Reference to Model

+
multitonKey: string

The Multiton Key for this Core

+
view?: IView

Reference to View

+
MULTITON_MSG: string = "Facade instance for this Multiton key already constructed!"

Message Constants

+
instanceMap: {
    [key: string]: IFacade;
} = {}

Multiton Instances

+

Methods

  • Check if a Command is registered for a given Notification

    +

    Parameters

    • notificationName: string

      The name of the notification to check.

      +

    Returns boolean

    true if a command is registered for the notification; otherwise, false.

    +
  • Check if a Mediator is registered or not

    +

    Parameters

    • mediatorName: string

      The name of the mediator to check.

      +

    Returns boolean

    true if a mediator is registered for the name; otherwise, false.

    +
  • Check if a Proxy is registered

    +

    Parameters

    • proxyName: string

      The name of the proxy to check.

      +

    Returns boolean

    true if a proxy is registered for the name; otherwise, false.

    +
  • Initialize the Controller.

    +

    Called by the initializeFacade method. +Override this method in your subclass of Facade +if one or both of the following are true:

    +
      +
    • You wish to initialize a different Controller.
    • +
    • You have Commands to register with the Controller at startup.`.
    • +
    +

    If you don't want to initialize a different Controller, +call super.initializeController() at the beginning of your +method, then register Commands.

    +

    Returns void

  • Initialize the Multiton Facade instance.

    +

    Called automatically by the constructor. Override in your +subclass to do any subclass specific initializations. Be +sure to call super.initializeFacade(), though.

    +

    Returns void

  • Initialize the Model.

    +

    Called by the initializeFacade method. +Override this method in your subclass of Facade +if one or both of the following are true:

    +
      +
    • You wish to initialize a different Model.
    • +
    • You have Proxys to register with the Model that do not +retrieve a reference to the Facade at construction time.`
    • +
    +

    If you don't want to initialize a different Model, +call super.initializeModel() at the beginning of your +method, then register Proxys.

    +

    Note: This method is rarely overridden; in practice you are more +likely to use a Command to create and register Proxys +with the Model, since Proxys with mutable data will likely +need to send Notifications and thus will likely want to fetch a reference to +the Facade during their construction.

    +

    Returns void

  • Set the Multiton key for this facade instance.

    +

    Not called directly, but instead from the +constructor when getInstance is invoked. +It is necessary to be public in order to +implement Notifier.

    +

    Parameters

    • key: string

      The unique key to identify this instance of the notifier.

      +

    Returns void

  • Initialize the View.

    +

    Called by the initializeFacade method. +Override this method in your subclass of Facade +if one or both of the following are true:

    +
      +
    • You wish to initialize a different View.
    • +
    • You have Observers to register with the View
    • +
    +

    If you don't want to initialize a different View, +call super.initializeView() at the beginning of your +method, then register Mediator instances.

    +

    Note: This method is rarely overridden; in practice you are more +likely to use a Command to create and register Mediators +with the View, since Mediator instances will need to send +Notifications and thus will likely want to fetch a reference +to the Facade during their construction.

    +

    Returns void

  • Notify Observers.

    +

    This method is left public mostly for backward +compatibility, and to allow you to send custom +notification classes using the facade.

    +

    Usually you should just call sendNotification +and pass the parameters, never having to +construct the notification yourself.

    +

    Parameters

    • notification: INotification

      The notification to be sent to observers.

      +

    Returns void

  • Register a Command with the Controller by Notification name. *

    +

    Parameters

    • notificationName: string

      The name of the notification to associate with the command.

      +
    • factory: (() => ICommand)

      A factory function that returns an instance of ICommand. This function is used to create the command.

      +

    Returns void

  • Remove a previously registered Command to Notification mapping from the Controller.

    +

    Parameters

    • notificationName: string

      The name of the notification for which the command should be removed.

      +

    Returns void

  • Remove a Proxy from the Model by name.

    +

    Parameters

    • proxyName: string

      The name of the proxy to remove.

      +

    Returns null | IProxy

    The removed proxy instance, or null if no such proxy exists.

    +
  • Retrieve a Proxy from the Model by name.

    +

    Parameters

    • mediatorName: string

      The name of the mediator to retrieve.

      +

    Returns null | IMediator

    The mediator instance associated with the given name, or null if no such mediator exists.

    +
  • Retrieve a Proxy from the Model by name.

    +

    Parameters

    • proxyName: string

      The name of the proxy to retrieve.

      +

    Returns null | IProxy

    The proxy instance associated with the given name, or null if no such proxy exists.

    +
  • Create and send an Notification.

    +

    Keeps us from having to construct new notification +instances in our implementation code.

    +

    Parameters

    • notificationName: string

      The name of the notification to be sent.

      +
    • Optionalbody: any

      Optional data to be included with the notification.

      +
    • Optionaltype: string

      Optional type of the notification.

      +

    Returns void

  • Facade Multiton Factory method

    +

    Parameters

    • key: string

      The unique key associated with the instance of the facade.

      +
    • factory: ((key: string) => IFacade)

      A factory function that creates a new instance of the facade. It takes the key as a parameter and returns an IFacade instance.

      +

    Returns IFacade

    the Multiton instance of the Facade

    +
  • Check if a Core is registered or not

    +

    Parameters

    • key: string

      The unique key to check for an existing facade instance.

      +

    Returns boolean

    true if a facade instance exists for the key; otherwise, false.

    +
  • Remove a Core.

    +

    Remove the Model, View, Controller and Facade +instances for the given key.

    +

    Parameters

    • key: string

      The unique key associated with the facade instance to be removed.

      +

    Returns void

diff --git a/pages/docs/TypeScript/multicore/classes/MacroCommand.html b/pages/docs/TypeScript/multicore/classes/MacroCommand.html new file mode 100644 index 0000000..f2c661e --- /dev/null +++ b/pages/docs/TypeScript/multicore/classes/MacroCommand.html @@ -0,0 +1,76 @@ +MacroCommand | @puremvc/puremvc-typescript-multicore-framework

A base Command implementation that executes other Commands.

+

A MacroCommand maintains a list of +Command Class references called SubCommands.

+

When execute is called, the MacroCommand +instantiates and calls execute on each of its SubCommands turn. +Each SubCommand will be passed a reference to the original +Notification that was passed to the MacroCommand's +execute method.

+

Unlike SimpleCommand, your subclass +should not override execute, but instead, should +override the initializeMacroCommand method, +calling addSubCommand once for each SubCommand +to be executed.

+
+

MacroCommand

+

Hierarchy (view full)

Constructors

Properties

multitonKey: string

The Multiton Key for this app

+
MULTITON_MSG: string = "multitonKey for this Notifier not yet initialized!"

Message Constants

+

Accessors

Methods

  • Add a SubCommand.

    +

    The SubCommands will be called in First In/First Out (FIFO) +order.

    +

    Parameters

    • factory: (() => ICommand)

      A factory function that creates an instance of ICommand. This function will be used to generate the sub-command.

      +

    Returns void

  • Initialize the MacroCommand.

    +

    In your subclass, override this method to +initialize the MacroCommand's SubCommand +list with Command class references like +this:

    +
    // Initialize MyMacroCommand
    initializeMacroCommand() {
    this.addSubCommand(() => new app.FirstCommand());
    this.addSubCommand(() => new app.SecondCommand());
    this.addSubCommand(() => new app.ThirdCommand());
    } +
    + +

    Note that SubCommands may be any Command implementor, +MacroCommands or SimpleCommands are both acceptable.

    +

    Returns void

  • Initialize this Notifier instance.

    +

    This is how a Notifier gets its multitonKey. +Calls to sendNotification or to access the +facade will fail until after this method +has been called.

    +

    Mediators, Commands or Proxies may override +this method in order to send notifications +or access the Multiton Facade instance as +soon as possible. They CANNOT access the facade +in their constructors, since this method will not +yet have been called.

    +

    Parameters

    • key: string

      the multitonKey for this Notifier to use

      +

    Returns void

  • Create and send an Notification.

    +

    Keeps us from having to construct new Notification +instances in our implementation code.

    +

    Parameters

    • notificationName: string

      The name of the notification to be sent.

      +
    • Optionalbody: any

      Optional data to be included with the notification.

      +
    • Optionaltype: string

      Optional type of the notification.

      +

    Returns void

diff --git a/pages/docs/TypeScript/multicore/classes/Mediator.html b/pages/docs/TypeScript/multicore/classes/Mediator.html new file mode 100644 index 0000000..9c07ad0 --- /dev/null +++ b/pages/docs/TypeScript/multicore/classes/Mediator.html @@ -0,0 +1,67 @@ +Mediator | @puremvc/puremvc-typescript-multicore-framework

A base Mediator implementation.

+

View

+

Mediator

+

Hierarchy (view full)

Implements

Constructors

Properties

_name: string

the mediator name

+
_viewComponent?: any

The view component

+
multitonKey: string

The Multiton Key for this app

+
MULTITON_MSG: string = "multitonKey for this Notifier not yet initialized!"

Message Constants

+
NAME: string = "Mediator"

The default name for the mediator.

+

Accessors

Methods

  • Initialize this Notifier instance.

    +

    This is how a Notifier gets its multitonKey. +Calls to sendNotification or to access the +facade will fail until after this method +has been called.

    +

    Mediators, Commands or Proxies may override +this method in order to send notifications +or access the Multiton Facade instance as +soon as possible. They CANNOT access the facade +in their constructors, since this method will not +yet have been called.

    +

    Parameters

    • key: string

      the multitonKey for this Notifier to use

      +

    Returns void

  • Create and send an Notification.

    +

    Keeps us from having to construct new Notification +instances in our implementation code.

    +

    Parameters

    • notificationName: string

      The name of the notification to be sent.

      +
    • Optionalbody: any

      Optional data to be included with the notification.

      +
    • Optionaltype: string

      Optional type of the notification.

      +

    Returns void

diff --git a/pages/docs/TypeScript/multicore/classes/Model.html b/pages/docs/TypeScript/multicore/classes/Model.html new file mode 100644 index 0000000..7058857 --- /dev/null +++ b/pages/docs/TypeScript/multicore/classes/Model.html @@ -0,0 +1,61 @@ +Model | @puremvc/puremvc-typescript-multicore-framework

A Multiton Model implementation.

+

In PureMVC, the Model class provides +access to model objects (Proxies) by named lookup.

+

The Model assumes these responsibilities:

+
    +
  • Maintain a cache of Proxy instances.
  • +
  • Provide methods for registering, retrieving, and removing +Proxy instances.
  • +
+

Your application must register Proxy instances +with the Model. Typically, you use an +Command to create and register Proxy +instances once the Facade has initialized the Core +actors.

+

Proxy

+

Model

+

Implements

Constructors

  • Constructor.

    +

    This Model implementation is a Multiton, +so you should not call the constructor +directly, but instead call the static Multiton +Factory method Model.getInstance(multitonKey)

    +

    Parameters

    • key: string

    Returns Model

    Error if instance for this Multiton key instance has already been constructed

    +

Properties

multitonKey: string

The Multiton Key for this Core

+
proxyMap: {
    [key: string]: IProxy;
}

Mapping of proxyNames to IProxy instances

+
MULTITON_MSG: string = "Model instance for this Multiton key already constructed!"

Message Constants

+
instanceMap: {
    [key: string]: IModel;
} = {}

Multiton Instances

+

Methods

  • Check if a Proxy is registered

    +

    Parameters

    • proxyName: string

      The name of the proxy to check.

      +

    Returns boolean

    true if a proxy with the specified name is registered; otherwise, false.

    +
  • Initialize the Model instance.

    +

    Called automatically by the constructor, this +is your opportunity to initialize the Multiton +instance in your subclass without overriding the +constructor.

    +

    Returns void

  • Remove a Proxy from the Model.

    +

    Parameters

    • proxyName: string

      The name of the proxy to be removed.

      +

    Returns null | IProxy

    The removed proxy instance, or null if no proxy with the given name was found.

    +
  • Retrieve a Proxy from the Model.

    +

    Parameters

    • proxyName: string

      The name of the proxy to retrieve.

      +

    Returns null | IProxy

    The proxy instance associated with the given name, or null if no such proxy exists.

    +
  • Model Multiton Factory method.

    +

    Parameters

    • key: string

      The key used to identify the model instance.

      +
    • factory: ((key: string) => IModel)

      A factory function that creates a new instance of the model if one does not already exist for the specified key.

      +

    Returns IModel

    The model instance associated with the given key.

    +
  • Remove a Model instance

    +

    Parameters

    • key: string

      The key used to identify the model instance to be removed.

      +

    Returns void

diff --git a/pages/docs/TypeScript/multicore/classes/Notification.html b/pages/docs/TypeScript/multicore/classes/Notification.html new file mode 100644 index 0000000..d9a78f0 --- /dev/null +++ b/pages/docs/TypeScript/multicore/classes/Notification.html @@ -0,0 +1,45 @@ +Notification | @puremvc/puremvc-typescript-multicore-framework

A base Notification implementation.

+

PureMVC does not rely upon underlying event models such +as the one provided with Flash, and ActionScript 3 does +not have an inherent event model.

+

The Observer Pattern as implemented within PureMVC exists +to support event-driven communication between the +application and the actors of the MVC triad.

+

Notifications are not meant to be a replacement for Events +in Flex/Flash/Apollo. Generally, Mediator implementors +place event listeners on their view components, which they +then handle in the usual way. This may lead to the broadcast of Notifications to +trigger Commands or to communicate with other Mediators. Proxy and Command +instances communicate with each other and Mediators +by broadcasting Notifications.

+

A key difference between Flash Events and PureMVC +Notifications is that Events follow the +'Chain of Responsibility' pattern, 'bubbling' up the display hierarchy +until some parent component handles the Event, while +PureMVC Notifications follow a 'Publish/Subscribe' +pattern. PureMVC classes need not be related to each other in a +parent/child relationship in order to communicate with one another +using Notifications.

+

Notification

+

Implements

Constructors

Accessors

Methods

Constructors

  • Constructor.

    +

    Parameters

    • name: string

      The name of the notification.

      +
    • Optionalbody: any

      Optional data to be included with the notification.

      +
    • Optionaltype: string

      Optional type of the notification.

      +

    Returns Notification

Accessors

Methods

diff --git a/pages/docs/TypeScript/multicore/classes/Notifier.html b/pages/docs/TypeScript/multicore/classes/Notifier.html new file mode 100644 index 0000000..15015fd --- /dev/null +++ b/pages/docs/TypeScript/multicore/classes/Notifier.html @@ -0,0 +1,59 @@ +Notifier | @puremvc/puremvc-typescript-multicore-framework

A Base Notifier implementation.

+

MacroCommand, Command, Mediator and Proxy +all have a need to send Notifications.

+

The Notifier interface provides a common method called +sendNotification that relieves implementation code of +the necessity to actually construct Notifications.

+

The Notifier class, which all the above-mentioned classes +extend, provides an initialized reference to the Facade +Multiton, which is required for the convenience method +for sending Notifications, but also eases implementation as these +classes have frequent Facade interactions and usually require +access to the facade anyway.

+

NOTE: In the MultiCore version of the framework, there is one caveat to +notifiers, they cannot send notifications or reach the facade until they +have a valid multitonKey.

+

The multitonKey is set:

+
    +
  • on a Command when it is executed by the Controller
  • +
  • on a Mediator is registered with the View
  • +
  • on a Proxy is registered with the Model.
  • +
+

Hierarchy (view full)

Implements

Constructors

Properties

Accessors

Methods

Constructors

Properties

multitonKey: string

The Multiton Key for this app

+
MULTITON_MSG: string = "multitonKey for this Notifier not yet initialized!"

Message Constants

+

Accessors

Methods

  • Initialize this Notifier instance.

    +

    This is how a Notifier gets its multitonKey. +Calls to sendNotification or to access the +facade will fail until after this method +has been called.

    +

    Mediators, Commands or Proxies may override +this method in order to send notifications +or access the Multiton Facade instance as +soon as possible. They CANNOT access the facade +in their constructors, since this method will not +yet have been called.

    +

    Parameters

    • key: string

      the multitonKey for this Notifier to use

      +

    Returns void

  • Create and send an Notification.

    +

    Keeps us from having to construct new Notification +instances in our implementation code.

    +

    Parameters

    • notificationName: string

      The name of the notification to be sent.

      +
    • Optionalbody: any

      Optional data to be included with the notification.

      +
    • Optionaltype: string

      Optional type of the notification.

      +

    Returns void

diff --git a/pages/docs/TypeScript/multicore/classes/Observer.html b/pages/docs/TypeScript/multicore/classes/Observer.html new file mode 100644 index 0000000..7d6538a --- /dev/null +++ b/pages/docs/TypeScript/multicore/classes/Observer.html @@ -0,0 +1,37 @@ +Observer | @puremvc/puremvc-typescript-multicore-framework

A base Observer implementation.

+

An Observer is an object that encapsulates information +about an interested object with a method that should +be called when a particular Notification is broadcast.

+

In PureMVC, the Observer class assumes these responsibilities:

+
    +
  • Encapsulate the notification (callback) method of the interested object.
  • +
  • Encapsulate the notification context (this) of the interested object.
  • +
  • Provide methods for setting the notification method and context.
  • +
  • Provide a method for notifying the interested object.
  • +
+

Observer

+

Implements

Constructors

  • Constructor.

    +

    The notification method on the interested object should take +one parameter of type Notification

    +

    Parameters

    • Optionalnotify: null | ((notification: INotification) => void)

      The method to be called when a notification is received. Can be null.

      +
    • Optionalcontext: any

      The context in which to call the notifyMethod. Can be null.

      +

    Returns Observer

Accessors

Methods

  • Compare an object to the notification context.

    +

    Parameters

    • object: any

      The object to compare with the observer's context.

      +

    Returns boolean

    true if the context is the same, otherwise false.

    +
diff --git a/pages/docs/TypeScript/multicore/classes/Proxy.html b/pages/docs/TypeScript/multicore/classes/Proxy.html new file mode 100644 index 0000000..dd8b369 --- /dev/null +++ b/pages/docs/TypeScript/multicore/classes/Proxy.html @@ -0,0 +1,64 @@ +Proxy | @puremvc/puremvc-typescript-multicore-framework

A base Proxy implementation.

+

In PureMVC, Proxy classes are used to manage parts of the +application's data model.

+

A Proxy might simply manage a reference to a local data object, +in which case interacting with it might involve setting and +getting of its data in synchronous fashion.

+

Proxy classes are also used to encapsulate the application's +interaction with remote services to save or retrieve data, in which case, +we adopt an asynchronous idiom; setting data (or calling a method) on the +Proxy and listening for a Notification to be sent +when the Proxy has retrieved the data from the service.

+

Model

+

Proxy

+

Hierarchy (view full)

Implements

Constructors

  • Constructor

    +

    Parameters

    • Optionalname: string

      The name of the proxy. Defaults to Proxy.NAME if not provided.

      +
    • Optionaldata: any

      The data associated with the proxy. Can be null.

      +

    Returns Proxy

Properties

_data?: any

the data object

+
_name: string

the proxy name

+
multitonKey: string

The Multiton Key for this app

+
MULTITON_MSG: string = "multitonKey for this Notifier not yet initialized!"

Message Constants

+
NAME: string = "Proxy"

The default name for the Proxy.

+

Accessors

Methods

  • Initialize this Notifier instance.

    +

    This is how a Notifier gets its multitonKey. +Calls to sendNotification or to access the +facade will fail until after this method +has been called.

    +

    Mediators, Commands or Proxies may override +this method in order to send notifications +or access the Multiton Facade instance as +soon as possible. They CANNOT access the facade +in their constructors, since this method will not +yet have been called.

    +

    Parameters

    • key: string

      the multitonKey for this Notifier to use

      +

    Returns void

  • Create and send an Notification.

    +

    Keeps us from having to construct new Notification +instances in our implementation code.

    +

    Parameters

    • notificationName: string

      The name of the notification to be sent.

      +
    • Optionalbody: any

      Optional data to be included with the notification.

      +
    • Optionaltype: string

      Optional type of the notification.

      +

    Returns void

diff --git a/pages/docs/TypeScript/multicore/classes/SimpleCommand.html b/pages/docs/TypeScript/multicore/classes/SimpleCommand.html new file mode 100644 index 0000000..4c8554f --- /dev/null +++ b/pages/docs/TypeScript/multicore/classes/SimpleCommand.html @@ -0,0 +1,46 @@ +SimpleCommand | @puremvc/puremvc-typescript-multicore-framework

A base Command implementation.

+

Your subclass should override the execute +method where your business logic will handle the Notification.

+
+

SimpleCommand

+

Hierarchy (view full)

Implements

Constructors

Properties

multitonKey: string

The Multiton Key for this app

+
MULTITON_MSG: string = "multitonKey for this Notifier not yet initialized!"

Message Constants

+

Accessors

Methods

  • Fulfill the use-case initiated by the given Notification.

    +

    In the Command Pattern, an application use-case typically +begins with some user action, which results in a Notification being broadcast, which +is handled by business logic in the execute method of an +Command.

    +

    Parameters

    • notification: INotification

      The notification containing the data or command details to be processed.

      +

    Returns void

  • Initialize this Notifier instance.

    +

    This is how a Notifier gets its multitonKey. +Calls to sendNotification or to access the +facade will fail until after this method +has been called.

    +

    Mediators, Commands or Proxies may override +this method in order to send notifications +or access the Multiton Facade instance as +soon as possible. They CANNOT access the facade +in their constructors, since this method will not +yet have been called.

    +

    Parameters

    • key: string

      the multitonKey for this Notifier to use

      +

    Returns void

  • Create and send an Notification.

    +

    Keeps us from having to construct new Notification +instances in our implementation code.

    +

    Parameters

    • notificationName: string

      The name of the notification to be sent.

      +
    • Optionalbody: any

      Optional data to be included with the notification.

      +
    • Optionaltype: string

      Optional type of the notification.

      +

    Returns void

diff --git a/pages/docs/TypeScript/multicore/classes/View.html b/pages/docs/TypeScript/multicore/classes/View.html new file mode 100644 index 0000000..ec8d4f2 --- /dev/null +++ b/pages/docs/TypeScript/multicore/classes/View.html @@ -0,0 +1,81 @@ +View | @puremvc/puremvc-typescript-multicore-framework

A Multiton View implementation.

+

In PureMVC, the View class assumes these responsibilities:

+
    +
  • Maintain a cache of Mediator instances.
  • +
  • Provide methods for registering, retrieving, and removing Mediators.
  • +
  • Notifying Mediators when they are registered or removed.
  • +
  • Managing the observer lists for each Notification in the application.
  • +
  • Providing a method for attaching Observers to a Notification's observer list.
  • +
  • Providing a method for broadcasting a Notification.
  • +
  • Notifying the Observers of a given Notification when it broadcast.
  • +
+
+

View

+

Implements

Constructors

  • Constructor.

    +

    This View implementation is a Multiton, +so you should not call the constructor +directly, but instead call the static Multiton +Factory method View.getInstance(multitonKey)

    +

    Parameters

    • key: string

    Returns View

    Error if instance for this Multiton key has already been constructed

    +

Properties

mediatorMap: {
    [key: string]: IMediator;
}

Mapping of Mediator names to Mediator instances

+
multitonKey: string

The Multiton Key for this Core

+
observerMap: {
    [key: string]: IObserver[];
}

Mapping of Notification names to Observer lists

+
MULTITON_MSG: string = "View instance for this Multiton key already constructed!"

Message Constants

+
instanceMap: {
    [key: string]: IView;
} = {}

Multiton Instances

+

Methods

  • Check if a Mediator is registered or not

    +

    Parameters

    • mediatorName: string

      The name of the mediator to check.

      +

    Returns boolean

    true if a mediator with the specified name is registered; otherwise, false.

    +
  • Notify the Observers for a particular Notification.

    +

    All previously attached Observers for this Notification's +list are notified and are passed a reference to the Notification in +the order in which they were registered.

    +

    Parameters

    • notification: INotification

      The notification containing the data or command details to be sent to observers.

      +

    Returns void

  • Register a Mediator instance with the View.

    +

    Registers the Mediator so that it can be retrieved by name, +and further interrogates the Mediator for its +Notification interests.

    +

    If the Mediator returns any Notification +names to be notified about, an Observer is created encapsulating +the Mediator instance's handleNotification method +and registering it as an Observer for all Notifications the +Mediator is interested in.

    +

    Parameters

    • mediator: IMediator

      The mediator instance to be registered.

      +

    Returns void

  • Register an Observer to be notified +of Notifications with a given name.

    +

    Parameters

    • notificationName: string

      The name of the notification to which the observer should be registered.

      +
    • observer: IObserver

      The observer instance to be registered.

      +

    Returns void

  • Remove a Mediator from the View.

    +

    Parameters

    • mediatorName: string

      The name of the mediator to be removed.

      +

    Returns null | IMediator

    The removed mediator instance, or null if no mediator with the given name was found.

    +
  • Remove the observer for a given notifyContext from an observer list for a given Notification name.

    +

    Parameters

    • notificationName: string

      The name of the notification for which the observer should be removed.

      +
    • notifyContext: any

      The context of the observer to be removed.

      +

    Returns void

  • Retrieve a Mediator from the View.

    +

    Parameters

    • mediatorName: string

      The name of the mediator to retrieve.

      +

    Returns null | IMediator

    The mediator instance associated with the given name, or null if no such mediator exists.

    +
  • View Multiton factory method.

    +

    Parameters

    • key: string

      The key used to identify the view instance.

      +
    • factory: ((key: string) => IView)

      A factory function that creates a new instance of the view if one does not already exist for the specified key.

      +

    Returns IView

    The view instance associated with the given key.

    +
  • Remove an IView instance

    +

    Parameters

    • key: string

      multitonKey of IView instance to remove

      +

    Returns void

diff --git a/pages/docs/TypeScript/multicore/hierarchy.html b/pages/docs/TypeScript/multicore/hierarchy.html new file mode 100644 index 0000000..04fd93d --- /dev/null +++ b/pages/docs/TypeScript/multicore/hierarchy.html @@ -0,0 +1 @@ +@puremvc/puremvc-typescript-multicore-framework
diff --git a/pages/docs/TypeScript/multicore/index.html b/pages/docs/TypeScript/multicore/index.html new file mode 100644 index 0000000..b666b04 --- /dev/null +++ b/pages/docs/TypeScript/multicore/index.html @@ -0,0 +1,42 @@ +@puremvc/puremvc-typescript-multicore-framework

@puremvc/puremvc-typescript-multicore-framework

PureMVC is a lightweight framework for creating applications based upon the classic Model-View-Controller design meta-pattern. It supports modular programming through the use of Multiton Core actors instead of the Singletons.

+ +
npm install @puremvc/puremvc-typescript-multicore-framework
+
+ + + +

Production - Version 2.0.0

+
    +
  • +

    PureMVC MultiCore Framework for TypeScript - Copyright © 2024 Saad Shams

    +
  • +
  • +

    PureMVC - Copyright © 2024 Futurescale, Inc.

    +
  • +
  • +

    All rights reserved.

    +
  • +
  • +

    Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

    +
      +
    • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
    • +
    • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
    • +
    • Neither the name of Futurescale, Inc., PureMVC.org, nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
    • +
    +
  • +
+

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

+
diff --git a/pages/docs/TypeScript/multicore/interfaces/ICommand.html b/pages/docs/TypeScript/multicore/interfaces/ICommand.html new file mode 100644 index 0000000..a30449f --- /dev/null +++ b/pages/docs/TypeScript/multicore/interfaces/ICommand.html @@ -0,0 +1,21 @@ +ICommand | @puremvc/puremvc-typescript-multicore-framework

The interface definition for a PureMVC Command.

+

INotification

+

ICommand

+
interface ICommand {
    execute(notification: INotification): void;
    initializeNotifier(key: string): void;
    sendNotification(notificationName: string, body?: any, type?: string): void;
}

Hierarchy (view full)

Implemented by

Methods

  • Execute the ICommand's logic to handle a given INotification.

    +

    Parameters

    • notification: INotification

      The notification carrying the data and type necessary for executing the command.

      +

    Returns void

  • Initialize this INotifier instance.

    +

    This is how a Notifier get to Calls to +sendNotification or to access the +facade will fail until after this method +has been called.

    +

    Parameters

    • key: string

      The key used to initialize the notifier.

      +

    Returns void

  • Send a INotification.

    +

    Convenience method to prevent having to construct new +notification instances in our implementation code.

    +

    Parameters

    • notificationName: string

      The name of the notification to send.

      +
    • Optionalbody: any

      Optional data associated with the notification.

      +
    • Optionaltype: string

      Optional type of the notification.

      +

    Returns void

diff --git a/pages/docs/TypeScript/multicore/interfaces/IController.html b/pages/docs/TypeScript/multicore/interfaces/IController.html new file mode 100644 index 0000000..f234fcf --- /dev/null +++ b/pages/docs/TypeScript/multicore/interfaces/IController.html @@ -0,0 +1,36 @@ +IController | @puremvc/puremvc-typescript-multicore-framework

IController The interface definition for a PureMVC Controller.

+

In PureMVC, an IController implementor +follows the 'Command and Controller' strategy, and +assumes these responsibilities:

+
    +
  • +

    Remembering which ICommands are intended to handle which INotifications.

    +
  • +
  • +

    Registering itself as an IObserver with the View for each INotification that it has an ICommand mapping for.

    +
  • +
  • +

    Creating a new instance of the proper ICommand to handle a given INotification when notified by the View.

    +
  • +
  • +

    Calling the ICommand's execute method, passing in the INotification.

    +
  • +
+

IController

+
interface IController {
    executeCommand(notification: INotification): void;
    hasCommand(notificationName: string): boolean;
    registerCommand(notificationName: string, factory: (() => ICommand)): void;
    removeCommand(notificationName: string): void;
}

Implemented by

Methods

  • Execute the ICommand previously registered as the +handler for INotifications with the given notification name.

    +

    Parameters

    • notification: INotification

      the INotification to execute the associated ICommand for

      +

    Returns void

  • Check if a Command is registered for a given Notification

    +

    Parameters

    • notificationName: string

      The name of the notification to check.

      +

    Returns boolean

    true if a command is registered for the notification name, false otherwise.

    +
  • Register a particular ICommand class as the handler +for a particular INotification.

    +

    Parameters

    • notificationName: string

      the name of the INotification

      +
    • factory: (() => ICommand)

      A factory that returns ICommand

      +

    Returns void

  • Remove a previously registered ICommand to INotification mapping.

    +

    Parameters

    • notificationName: string

      the name of the INotification to remove the ICommand mapping for

      +

    Returns void

diff --git a/pages/docs/TypeScript/multicore/interfaces/IFacade.html b/pages/docs/TypeScript/multicore/interfaces/IFacade.html new file mode 100644 index 0000000..32edb13 --- /dev/null +++ b/pages/docs/TypeScript/multicore/interfaces/IFacade.html @@ -0,0 +1,73 @@ +IFacade | @puremvc/puremvc-typescript-multicore-framework

IFacade The interface definition for a PureMVC Facade.

+

The Facade Pattern suggests providing a single +class to act as a central point of communication +for a subsystem.

+

In PureMVC, the Facade acts as an interface between +the core MVC actors (Model, View, Controller) and +the rest of your application.

+

IFacade

+
interface IFacade {
    hasCommand(notificationName: string): boolean;
    hasMediator(mediatorName: string): boolean;
    hasProxy(proxyName: string): boolean;
    initializeNotifier(key: string): void;
    notifyObservers(notification: INotification): void;
    registerCommand(notificationName: string, factory: (() => ICommand)): void;
    registerMediator(mediator: IMediator): void;
    registerProxy(proxy: IProxy): void;
    removeCommand(notificationName: string): void;
    removeMediator(mediatorName: string): null | IMediator;
    removeProxy(proxyName: string): null | IProxy;
    retrieveMediator(mediatorName: string): null | IMediator;
    retrieveProxy(proxyName: string): null | IProxy;
    sendNotification(notificationName: string, body?: any, type?: string): void;
}

Hierarchy (view full)

Implemented by

Methods

  • Check if a ICommand is registered for a given Notification

    +

    Parameters

    • notificationName: string

      The name of the notification to check.

      +

    Returns boolean

    true if a command is registered for the notification name, false otherwise.

    +
  • Check if a Mediator is registered or not

    +

    Parameters

    • mediatorName: string

      The name of the mediator to check.

      +

    Returns boolean

    true if a mediator is registered with the name, false otherwise.

    +
  • Check if a Proxy is registered

    +

    Parameters

    • proxyName: string

      The name of the proxy to check.

      +

    Returns boolean

    true if a proxy is registered with the name, false otherwise.

    +
  • Set the Multiton key for this facade instance.

    +

    Not called directly, but instead from the +constructor when getInstance is invoked. +It is necessary to be public in order to +implement Notifier.

    +

    Parameters

    • key: string

      The unique key to initialize the notifier with.

      +

    Returns void

  • Notify Observers.

    +

    This method is left public mostly for backward +compatibility, and to allow you to send custom +notification classes using the facade.

    +

    Usually you should just call sendNotification +and pass the parameters, never having to +construct the notification yourself.

    +

    Parameters

    • notification: INotification

      the INotification to have the View notify Observers of.

      +

    Returns void

  • Register an ICommand with the Controller

    +

    Parameters

    • notificationName: string

      the name of the INotification to associate the ICommand with.

      +
    • factory: (() => ICommand)

      A factory that creates an instance of the ICommand to be registered.

      +

    Returns void

  • Register an IMediator instance with the View.

    +

    Parameters

    • mediator: IMediator

      a reference to the IMediator instance

      +

    Returns void

  • Register an IProxy with the Model by name.

    +

    Parameters

    • proxy: IProxy

      the IProxy to be registered with the Model.

      +

    Returns void

  • Remove a previously registered ICommand to INotification mapping from the Controller.

    +

    Parameters

    • notificationName: string

      the name of the INotification to remove the ICommand mapping for

      +

    Returns void

  • Remove a IMediator instance from the View.

    +

    Parameters

    • mediatorName: string

      The name of the mediator to remove.

      +

    Returns null | IMediator

    The removed mediator instance if found, or null if no mediator was registered with the given name.

    +
  • Remove an IProxy instance from the Model by name.

    +

    Parameters

    • proxyName: string

      the IProxy to remove from the Model.

      +

    Returns null | IProxy

    The removed proxy instance if found, or null if no proxy was registered with the given name.

    +
  • Retrieve an IMediator instance from the View.

    +

    Parameters

    • mediatorName: string

      the name of the IMediator instance to retrieve

      +

    Returns null | IMediator

    The mediator instance if found, or null if no mediator is registered with the given name.

    +
  • Retrieve a IProxy from the Model by name.

    +

    Parameters

    • proxyName: string

      the name of the IProxy instance to be retrieved.

      +

    Returns null | IProxy

    the IProxy previously registered by proxyName with the Model.

    +
  • Create and send an Notification.

    +

    Keeps us from having to construct new notification +instances in our implementation code.

    +

    Parameters

    • notificationName: string

      the INotification to have the View notify Observers of.

      +
    • Optionalbody: any

      Optional data to be included in the notification.

      +
    • Optionaltype: string

      Optional type of the notification.

      +

    Returns void

diff --git a/pages/docs/TypeScript/multicore/interfaces/IMediator.html b/pages/docs/TypeScript/multicore/interfaces/IMediator.html new file mode 100644 index 0000000..13df70c --- /dev/null +++ b/pages/docs/TypeScript/multicore/interfaces/IMediator.html @@ -0,0 +1,64 @@ +IMediator | @puremvc/puremvc-typescript-multicore-framework

IMediator The interface definition for a PureMVC Mediator.

+

In PureMVC, IMediator implementors assume these responsibilities:

+
    +
  • +

    Implement a common method which returns a list of all INotifications the IMediator has interest in.

    +
  • +
  • +

    Implement a notification callback method.

    +
  • +
  • +

    Implement methods that are called when the IMediator is registered or removed from the View.

    +
  • +
+

Additionally, IMediators typically:

+
    +
  • +

    Act as an intermediary between one or more view components such as text boxes or list controls, maintaining references and coordinating their behavior.

    +
  • +
  • +

    In Flash-based apps, this is often the place where event listeners are added to view components, and their handlers implemented.

    +
  • +
  • +

    Respond to and generate INotifications, interacting with of the rest of the PureMVC app.

    +
  • +
+

When an IMediator is registered with the IView, +the IView will call the IMediator's +listNotificationInterests method. The IMediator will +return an Array of INotification names which +it wishes to be notified about.

+

The IView will then create an Observer object +encapsulating that IMediator's (handleNotification) method +and register it as an Observer for each INotification name returned by +listNotificationInterests.

+

IMediator

+
interface IMediator {
    name: string;
    viewComponent: any;
    handleNotification(notification: INotification): void;
    initializeNotifier(key: string): void;
    listNotificationInterests(): string[];
    onRegister(): void;
    onRemove(): void;
    sendNotification(notificationName: string, body?: any, type?: string): void;
}

Hierarchy (view full)

Implemented by

Properties

name: string

The name of the mediator.

+
viewComponent: any

The view component associated with the mediator.

+

Methods

  • Initialize this INotifier instance.

    +

    This is how a Notifier get to Calls to +sendNotification or to access the +facade will fail until after this method +has been called.

    +

    Parameters

    • key: string

      The key used to initialize the notifier.

      +

    Returns void

  • List INotification interests.

    +

    Returns string[]

    an Array of the INotification names this IMediator has an interest in.

    +
  • Send a INotification.

    +

    Convenience method to prevent having to construct new +notification instances in our implementation code.

    +

    Parameters

    • notificationName: string

      The name of the notification to send.

      +
    • Optionalbody: any

      Optional data associated with the notification.

      +
    • Optionaltype: string

      Optional type of the notification.

      +

    Returns void

diff --git a/pages/docs/TypeScript/multicore/interfaces/IModel.html b/pages/docs/TypeScript/multicore/interfaces/IModel.html new file mode 100644 index 0000000..2123a88 --- /dev/null +++ b/pages/docs/TypeScript/multicore/interfaces/IModel.html @@ -0,0 +1,29 @@ +IModel | @puremvc/puremvc-typescript-multicore-framework

IModel The interface definition for a PureMVC Model.

+

In PureMVC, IModel implementors provide +access to IProxy objects by named lookup.

+

An IModel assumes these responsibilities:

+
    +
  • +

    Maintain a cache of IProxy instances

    +
  • +
  • +

    Provide methods for registering, retrieving, and removing IProxy instances

    +
  • +
+

IModel

+
interface IModel {
    hasProxy(proxyName: string): boolean;
    registerProxy(proxy: IProxy): void;
    removeProxy(proxyName: string): null | IProxy;
    retrieveProxy(proxyName: string): null | IProxy;
}

Implemented by

Methods

  • Check if a Proxy is registered

    +

    Parameters

    • proxyName: string

      The name of the proxy to check.

      +

    Returns boolean

    True if the IProxy is registered, otherwise false.

    +
  • Register an IProxy instance with the Model.

    +

    Parameters

    • proxy: IProxy

      an object reference to be held by the Model.

      +

    Returns void

  • Remove an IProxy instance from the Model.

    +

    Parameters

    • proxyName: string

      The name of the proxy to remove.

      +

    Returns null | IProxy

    The removed IProxy if found, otherwise null.

    +
  • Retrieve an IProxy instance from the Model.

    +

    Parameters

    • proxyName: string

      The name of the proxy to retrieve.

      +

    Returns null | IProxy

    The IProxy if registered, otherwise null.

    +
diff --git a/pages/docs/TypeScript/multicore/interfaces/INotification.html b/pages/docs/TypeScript/multicore/interfaces/INotification.html new file mode 100644 index 0000000..791e1e4 --- /dev/null +++ b/pages/docs/TypeScript/multicore/interfaces/INotification.html @@ -0,0 +1,33 @@ +INotification | @puremvc/puremvc-typescript-multicore-framework

INotification The interface definition for a PureMVC Notification.

+

PureMVC does not rely upon underlying event models such +as the one provided with Flash, and ActionScript 3 does +not have an inherent event model.

+

The Observer Pattern as implemented within PureMVC exists +to support event-driven communication between the +application and the actors of the MVC triad.

+

Notifications are not meant to be a replacement for Events +in Flex/Flash/AIR. Generally, IMediator implementors +place event listeners on their view components, which they +then handle in the usual way. This may lead to the broadcast of Notifications to +trigger ICommands or to communicate with other IMediators. IProxy and ICommand +instances communicate with each other and IMediators +by broadcasting INotifications.

+

A key difference between Flash Events and PureMVC +Notifications is that Events follow the +'Chain of Responsibility' pattern, 'bubbling' up the display hierarchy +until some parent component handles the Event, while +PureMVC Notifications follow a 'Publish/Subscribe' +pattern. PureMVC classes need not be related to each other in a +parent/child relationship in order to communicate with one another +using Notifications.

+

INotification

+
interface INotification {
    body?: any;
    name: string;
    type?: string;
    toString(): string;
}

Implemented by

Properties

Methods

Properties

body?: any

The body of the notification.

+
name: string

The name of the notification.

+
type?: string

The type of the notification.

+

Methods

  • Get the string representation of the INotification instance

    +

    Returns string

    A string representation of the notification.

    +
diff --git a/pages/docs/TypeScript/multicore/interfaces/INotifier.html b/pages/docs/TypeScript/multicore/interfaces/INotifier.html new file mode 100644 index 0000000..0b34866 --- /dev/null +++ b/pages/docs/TypeScript/multicore/interfaces/INotifier.html @@ -0,0 +1,28 @@ +INotifier | @puremvc/puremvc-typescript-multicore-framework

INotifier The interface definition for a PureMVC Notifier.

+

MacroCommand, Command, Mediator and Proxy +all have a need to send Notifications.

+

The INotifier interface provides a common method called +sendNotification that relieves implementation code of +the necessity to actually construct Notifications.

+

The Notifier class, which all the above-mentioned classes +extend, also provides an initialized reference to the Facade +Multiton, which is required for the convenience method +for sending Notifications, but also eases implementation as these +classes have frequent Facade interactions and usually require +access to the facade anyway.

+

INotifier

+
interface INotifier {
    initializeNotifier(key: string): void;
    sendNotification(notificationName: string, body?: any, type?: string): void;
}

Hierarchy (view full)

Implemented by

Methods

  • Initialize this INotifier instance.

    +

    This is how a Notifier get to Calls to +sendNotification or to access the +facade will fail until after this method +has been called.

    +

    Parameters

    • key: string

      The key used to initialize the notifier.

      +

    Returns void

  • Send a INotification.

    +

    Convenience method to prevent having to construct new +notification instances in our implementation code.

    +

    Parameters

    • notificationName: string

      The name of the notification to send.

      +
    • Optionalbody: any

      Optional data associated with the notification.

      +
    • Optionaltype: string

      Optional type of the notification.

      +

    Returns void

diff --git a/pages/docs/TypeScript/multicore/interfaces/IObserver.html b/pages/docs/TypeScript/multicore/interfaces/IObserver.html new file mode 100644 index 0000000..2ea019c --- /dev/null +++ b/pages/docs/TypeScript/multicore/interfaces/IObserver.html @@ -0,0 +1,45 @@ +IObserver | @puremvc/puremvc-typescript-multicore-framework

IObserver The interface definition for a PureMVC Observer.

+

In PureMVC, IObserver implementors assume these responsibilities:

+
    +
  • +

    Encapsulate the notification (callback) method of the interested object.

    +
  • +
  • +

    Encapsulate the notification context (self) of the interested object.

    +
  • +
  • +

    Provide methods for setting the interested object notification method and context.

    +
  • +
  • +

    Provide a method for notifying the interested object.

    +
  • +
+

PureMVC does not rely upon underlying event +models such as the one provided with Flash, +and ActionScript 3 does not have an inherent +event model.

+

The Observer Pattern as implemented within +PureMVC exists to support event driven communication +between the application and the actors of the +MVC triad.

+

An Observer is an object that encapsulates information +about an interested object with a notification method that +should be called when an INotification is broadcast. +The Observer then acts as a proxy for notifying the interested object.

+

Observers can receive Notifications by having their +notifyObserver method invoked, passing +in an object implementing the INotification interface, such +as a subclass of Notification.

+

IObserver

+
interface IObserver {
    notifyContext?: any;
    notifyMethod?: null | ((notification: INotification) => void);
    compareNotifyContext(object: any): boolean;
    notifyObserver(notification: INotification): void;
}

Implemented by

Properties

notifyContext?: any

The context in which the notification method should be called.

+
notifyMethod?: null | ((notification: INotification) => void)

The method to be called when a notification is received.

+

Methods

  • Compare the given object to the notification context object.

    +

    Parameters

    • object: any

      The object to compare with the notifyContext.

      +

    Returns boolean

    true if the object is the same as the notifyContext, otherwise false.

    +
  • Notify the interested object.

    +

    Parameters

    • notification: INotification

      the INotification to pass to the interested object's notification method

      +

    Returns void

diff --git a/pages/docs/TypeScript/multicore/interfaces/IProxy.html b/pages/docs/TypeScript/multicore/interfaces/IProxy.html new file mode 100644 index 0000000..3414c19 --- /dev/null +++ b/pages/docs/TypeScript/multicore/interfaces/IProxy.html @@ -0,0 +1,52 @@ +IProxy | @puremvc/puremvc-typescript-multicore-framework

IProxy The interface definition for a PureMVC Proxy.

+

In PureMVC, IProxy implementors assume these responsibilities:

+
    +
  • +

    Implement a common method which returns the name of the Proxy.

    +
  • +
  • +

    Provide methods for setting and getting the data object.

    +
  • +
+

Additionally, IProxyies typically:

+
    +
  • +

    Maintain references to one or more pieces of model data.

    +
  • +
  • +

    Provide methods for manipulating that data.

    +
  • +
  • +

    Generate INotifications when their model data changes.

    +
  • +
  • +

    Expose their name as a public static const called NAME, if they are not instantiated multiple times.

    +
  • +
  • +

    Encapsulate interaction with local or remote services used to fetch and persist model data.

    +
  • +
+

IProxy

+
interface IProxy {
    data?: any;
    name: string;
    initializeNotifier(key: string): void;
    onRegister(): void;
    onRemove(): void;
    sendNotification(notificationName: string, body?: any, type?: string): void;
}

Hierarchy (view full)

Implemented by

Properties

data?: any

The data associated with the proxy.

+
name: string

The name of the proxy.

+

Methods

  • Initialize this INotifier instance.

    +

    This is how a Notifier get to Calls to +sendNotification or to access the +facade will fail until after this method +has been called.

    +

    Parameters

    • key: string

      The key used to initialize the notifier.

      +

    Returns void

  • Send a INotification.

    +

    Convenience method to prevent having to construct new +notification instances in our implementation code.

    +

    Parameters

    • notificationName: string

      The name of the notification to send.

      +
    • Optionalbody: any

      Optional data associated with the notification.

      +
    • Optionaltype: string

      Optional type of the notification.

      +

    Returns void

diff --git a/pages/docs/TypeScript/multicore/interfaces/IView.html b/pages/docs/TypeScript/multicore/interfaces/IView.html new file mode 100644 index 0000000..ddde39a --- /dev/null +++ b/pages/docs/TypeScript/multicore/interfaces/IView.html @@ -0,0 +1,62 @@ +IView | @puremvc/puremvc-typescript-multicore-framework

IView The interface definition for a PureMVC View.

+

In PureMVC, the View class assumes these responsibilities:

+
    +
  • +

    Maintain a cache of IMediator instances.

    +
  • +
  • +

    Provide methods for registering, retrieving, and removing IMediators.

    +
  • +
  • +

    Managing the observer lists for each INotification in the application.

    +
  • +
  • +

    Providing a method for attaching IObservers to an INotification's observer list.

    +
  • +
  • +

    Providing a method for broadcasting an INotification.

    +
  • +
  • +

    Notifying the IObservers of a given INotification when it is broadcast.

    +
  • +
+

IView

+
interface IView {
    hasMediator(mediatorName: string): boolean;
    notifyObservers(notification: INotification): void;
    registerMediator(mediator: IMediator): void;
    registerObserver(notificationName: string, observer: IObserver): void;
    removeMediator(mediatorName: string): null | IMediator;
    removeObserver(notificationName: string, notifyContext: any): void;
    retrieveMediator(mediatorName: string): null | IMediator;
}

Implemented by

Methods

  • Check if a IMediator is registered or not

    +

    Parameters

    • mediatorName: string

      The name of the IMediator to check.

      +

    Returns boolean

    true if the IMediator is registered, otherwise false.

    +
  • Notify the IObservers for a particular INotification.

    +

    All previously attached IObservers for this INotification's +list are notified and are passed a reference to the INotification in +the order in which they were registered.

    +

    Parameters

    • notification: INotification

      the INotification to notify IObservers of.

      +

    Returns void

  • Register an IMediator instance with the View.

    +

    Registers the IMediator so that it can be retrieved by name, +and further interrogates the IMediator for its +INotification interests.

    +

    If the IMediator returns any INotification +names to be notified about, an Observer is created encapsulating +the IMediator instance's handleNotification method +and registering it as an Observer for all INotifications the +IMediator is interested in.

    +

    Parameters

    • mediator: IMediator

      The IMediator to be registered.

      +

    Returns void

  • Register an IObserver to be notified +of INotifications with a given name.

    +

    Parameters

    • notificationName: string

      The name of the notification to register the observer for.

      +
    • observer: IObserver

      The observer to be registered.

      +

    Returns void

  • Remove an IMediator from the View.

    +

    Parameters

    • mediatorName: string

      name of the IMediator instance to be removed.

      +

    Returns null | IMediator

    The removed IMediator, or null if not found.

    +
  • Remove a group of observers from the observer list for a given Notification name.

    +

    Parameters

    • notificationName: string

      which observer list to remove from

      +
    • notifyContext: any

      removed the observers with this object as their notifyContext

      +

    Returns void

  • Retrieve an IMediator from the View.

    +

    Parameters

    • mediatorName: string

      the name of the IMediator instance to retrieve.

      +

    Returns null | IMediator

    The IMediator associated with the given name, or null if not found.

    +
diff --git a/pages/docs/TypeScript/multicore/modules.html b/pages/docs/TypeScript/multicore/modules.html new file mode 100644 index 0000000..3d7c9b0 --- /dev/null +++ b/pages/docs/TypeScript/multicore/modules.html @@ -0,0 +1,22 @@ +@puremvc/puremvc-typescript-multicore-framework