toolness 2021-02-27 15:03:05 +00:00
rodzic c603281d06
commit e2052885c9
4 zmienionych plików z 4 dodań i 4 usunięć

File diff suppressed because one or more lines are too long

Wyświetl plik

@ -51,8 +51,8 @@ module.exports=[{name:"antler",bbox:{x:{min:99.548,max:611.604},y:{min:62.852999
},{"./point":"Iio0","./util":"sxvS"}],"MOuJ":[function(require,module,exports) {
"use strict";var t=this&&this.__createBinding||(Object.create?function(t,e,n,a){void 0===a&&(a=n),Object.defineProperty(t,a,{enumerable:!0,get:function(){return e[n]}})}:function(t,e,n,a){void 0===a&&(a=n),t[a]=e[n]}),e=this&&this.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),n=this&&this.__importStar||function(n){if(n&&n.__esModule)return n;var a={};if(null!=n)for(var r in n)"default"!==r&&Object.prototype.hasOwnProperty.call(n,r)&&t(a,n,r);return e(a,n),a};Object.defineProperty(exports,"__esModule",{value:!0}),exports.CreatureSymbol=exports.CreatureContext=void 0;const a=n(require("react")),r=require("./attach"),o=require("./point"),s=require("./bounding-box"),c=require("./svg-symbol"),l=.5;function i(t,e){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;const{specs:a}=t;if(!a)throw new u("Symbol ".concat(t.name," has no specs."));const r=a[e];if(!(r&&r.length>n))throw new u("Expected symbol ".concat(t.name," to have at least ").concat(n+1," ").concat(e," attachment point(s)."));return r[n]}class u extends Error{}function f(t,e){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;try{return i(t,e,n)}catch(a){if(!(a instanceof u))throw a;console.log(a.message)}return null}function m(t){const e=[];return t.left&&e.push(0),t.right&&e.push(1),0===e.length&&e.push(0),e}function d(t){const e={attachments:[],nests:[]};return t?(a.default.Children.forEach(t,t=>{t.props.nestInside?e.nests.push(t):e.attachments.push(t)}),e):e}exports.CreatureContext=a.default.createContext(Object.assign(Object.assign({},c.createSvgSymbolContext()),{attachmentScale:.5,parent:null}));const h=t=>{let{symbol:e,data:n,parent:r,indices:o}=t;var s,c;const l=[];for(let i of o){const t=(null!==(c=null===(s=r.specs)||void 0===s?void 0:s.nesting)&&void 0!==c?c:[])[i];if(!t){console.log("Parent symbol ".concat(r.name," has no nesting index ").concat(i,"."));continue}const o=x(t,n.bbox);l.push(a.default.createElement(b,{key:i,transformOrigin:o.transformOrigin,translate:o.translation,scale:o.scaling,rotate:0},e))}return a.default.createElement(a.default.Fragment,null,l)},g=t=>{let{symbol:e,data:n,parent:s,indices:c,attachTo:l}=t;const i=a.useContext(exports.CreatureContext),u=[];for(let m of c){const t=f(s,l,m),c=f(n,"anchor");if(!t||!c)continue;let d=t.normal.x<0?-1:1;t.normal.y>0&&(d*=-1);const h=r.getAttachmentTransforms(t,{point:c.point,normal:o.scalePointXY(c.normal,d,1)});u.push(a.default.createElement(b,{key:m,transformOrigin:c.point,translate:h.translation,scale:{x:i.attachmentScale*d,y:i.attachmentScale},rotate:d*h.rotation},e))}return a.default.createElement(a.default.Fragment,null,u)},p=t=>{const e=a.useContext(exports.CreatureContext),{data:n,attachTo:r,nestInside:o}=t,s=Object.assign(Object.assign({},e),{parent:n}),{nests:l,attachments:i}=d(t.children),u=a.default.createElement(a.default.Fragment,null,i.length&&a.default.createElement(exports.CreatureContext.Provider,{value:s},i),a.default.createElement(c.SvgSymbolContent,Object.assign({data:n},e)),l.length&&a.default.createElement(exports.CreatureContext.Provider,{value:s},l));if(!r&&!o)return u;const f=e.parent;if(!f)throw new Error("Cannot attach/nest ".concat(t.data.name," because it has no parent!"));const p={parent:f,symbol:u,data:n,indices:t.indices||m(t)};return r?a.default.createElement(g,Object.assign({},p,{attachTo:r})):a.default.createElement(h,Object.assign({},p))};function x(t,e){const n=s.getBoundingBoxCenter(t),a=s.getBoundingBoxCenter(e),r=o.subtractPoints(n,a),c=s.uniformlyScaleToFit(t,e);return{translation:r,transformOrigin:a,scaling:{x:c,y:c}}}exports.CreatureSymbol=p;const b=t=>a.default.createElement("g",{transform:"translate(".concat(t.translate.x," ").concat(t.translate.y,")")},a.default.createElement("g",{transform:"translate(".concat(t.transformOrigin.x," ").concat(t.transformOrigin.y,")")},a.default.createElement("g",{transform:"scale(".concat(t.scale.x," ").concat(t.scale.y,") rotate(").concat(t.rotate,")")},a.default.createElement("g",{transform:"translate(-".concat(t.transformOrigin.x," -").concat(t.transformOrigin.y,")")},t.children))));
},{"react":"HdMw","./attach":"w4OL","./point":"Iio0","./bounding-box":"nblm","./svg-symbol":"ObB7"}],"Wo33":[function(require,module,exports) {
"use strict";var e=this&&this.__createBinding||(Object.create?function(e,t,a,r){void 0===r&&(r=a),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[a]}})}:function(e,t,a,r){void 0===r&&(r=a),e[r]=t[a]}),t=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(a){if(a&&a.__esModule)return a;var r={};if(null!=a)for(var l in a)"default"!==l&&Object.prototype.hasOwnProperty.call(a,l)&&e(r,a,l);return t(r,a),r};Object.defineProperty(exports,"__esModule",{value:!0}),exports.CreaturePage=void 0;const r=a(require("react")),l=require("../svg-vocabulary"),n=require("../svg-symbol"),o=require("../specs"),c=require("../random"),u=require("../symbol-context-widget"),i=require("../util"),s=require("../auto-sizing-svg"),d=require("../export-svg"),f=require("../creature-symbol"),m="#858585",g=new Map(l.SvgVocabulary.map(e=>[e.name,e]));function h(e){const t=g.get(e);if(!t)throw new Error('Unable to find the symbol "'.concat(e,'"!'));return t}function p(e,t){var a,n;const c=[],u=t.choice(l.SvgVocabulary);if(u.specs){const s=t.uniqueChoices(Array.from(o.iterAttachmentPoints(u.specs)).filter(e=>"anchor"!==e.type).map(e=>e.type),e);for(let e of s){const o=t.choice(l.SvgVocabulary),s=i.range(null!==(n=null===(a=u.specs[e])||void 0===a?void 0:a.length)&&void 0!==n?n:0);c.push(r.default.createElement(f.CreatureSymbol,{data:o,key:c.length,attachTo:e,indices:s}))}}return r.default.createElement(f.CreatureSymbol,{data:u,children:c})}function b(e){const t=h(e);return e=>r.default.createElement(f.CreatureSymbol,Object.assign({data:e.data||t},e))}const E=b("eye"),v=b("hand"),y=b("arm"),C=b("antler"),S=b("crown"),x=b("wing"),w=b("muscle_arm"),q=b("leg"),O=b("tail"),T=b("lightning"),_=r.default.createElement(E,null,r.default.createElement(T,{nestInside:!0}),r.default.createElement(y,{attachTo:"arm",left:!0},r.default.createElement(x,{attachTo:"arm",left:!0,right:!0})),r.default.createElement(y,{attachTo:"arm",right:!0},r.default.createElement(w,{attachTo:"arm",left:!0,right:!0})),r.default.createElement(C,{attachTo:"horn",left:!0,right:!0}),r.default.createElement(S,{attachTo:"crown"},r.default.createElement(v,{attachTo:"horn",left:!0,right:!0},r.default.createElement(y,{attachTo:"arm",left:!0}))),r.default.createElement(q,{attachTo:"leg",left:!0,right:!0}),r.default.createElement(O,{attachTo:"tail"}));function j(e,t){return r.default.cloneElement(t,{data:e.choice(l.SvgVocabulary),children:r.default.Children.map(t.props.children,(t,a)=>j(e,t))})}const P=[...i.range(5).map(e=>p.bind(null,e)),e=>j(e,_)],k=P.length-1;function R(e){let t="mystic-symbolic-creature";return null!==e&&(t+="-".concat(e)),"".concat(t,".svg")}const V=()=>{const e=r.useRef(null),[t,a]=r.useState("#858585"),[l,o]=r.useState(null),[i,m]=r.useState(n.createSvgSymbolContext()),[g,h]=r.useState(k),p=r.useContext(f.CreatureContext),b=()=>o(Date.now()),E=Object.assign(Object.assign(Object.assign({},p),i),{fill:i.showSpecs?"none":i.fill}),v=null===l?_:P[g](new c.Random(l));return r.default.createElement(r.default.Fragment,null,r.default.createElement("h1",null,"Creature!"),r.default.createElement(u.SymbolContextWidget,{ctx:i,onChange:m},r.default.createElement("label",{htmlFor:"bgColor"},"Background: "),r.default.createElement("input",{type:"color",value:t,onChange:e=>a(e.target.value)})," "),r.default.createElement("p",null,r.default.createElement("label",{htmlFor:"complexity"},"Random creature complexity: "),r.default.createElement("input",{type:"range",min:0,max:k,step:1,value:g,onChange:e=>{h(parseInt(e.target.value)),b()}})," ",g===k?"bonkers":g),r.default.createElement("p",null,r.default.createElement("button",{accessKey:"r",onClick:b},r.default.createElement("u",null,"R"),"andomize!")," ",r.default.createElement("button",{onClick:()=>window.location.reload()},"Reset")," ",r.default.createElement("button",{onClick:()=>d.exportSvg(R(l),e)},"Export SVG")),r.default.createElement(f.CreatureContext.Provider,{value:E},r.default.createElement(s.AutoSizingSvg,{padding:20,ref:e,bgColor:t},r.default.createElement("g",{transform:"scale(0.5 0.5)"},v))))};exports.CreaturePage=V;
"use strict";var e=this&&this.__createBinding||(Object.create?function(e,t,a,n){void 0===n&&(n=a),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[a]}})}:function(e,t,a,n){void 0===n&&(n=a),e[n]=t[a]}),t=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(a){if(a&&a.__esModule)return a;var n={};if(null!=a)for(var r in a)"default"!==r&&Object.prototype.hasOwnProperty.call(a,r)&&e(n,a,r);return t(n,a),n};Object.defineProperty(exports,"__esModule",{value:!0}),exports.CreaturePage=void 0;const n=a(require("react")),r=require("../svg-vocabulary"),l=require("../svg-symbol"),o=require("../specs"),u=require("../random"),c=require("../symbol-context-widget"),i=require("../util"),s=require("../auto-sizing-svg"),d=require("../export-svg"),f=require("../creature-symbol"),m="#858585",g=new Map(r.SvgVocabulary.map(e=>[e.name,e])),h=r.SvgVocabulary.filter(e=>{var t;return!0!==(null===(t=e.meta)||void 0===t?void 0:t.always_be_nested)}),p=h,b=r.SvgVocabulary.filter(e=>{var t;return!0!==(null===(t=e.meta)||void 0===t?void 0:t.always_nest)});function v(e){const t=g.get(e);if(!t)throw new Error('Unable to find the symbol "'.concat(e,'"!'));return t}function y(e,t){const{meta:a,specs:r}=e;if((null==a?void 0:a.always_nest)&&(null==r?void 0:r.nesting)){const e=i.range(r.nesting.length),a=t.choice(b);return[n.default.createElement(f.CreatureSymbol,{data:a,key:"nested",nestInside:!0,indices:e})]}return[]}function E(e,t){var a,r;const l=[],u=t.choice(h);if(u.specs){const c=t.uniqueChoices(Array.from(o.iterAttachmentPoints(u.specs)).filter(e=>"anchor"!==e.type).map(e=>e.type),e);for(let e of c){const o=t.choice(p),c=i.range(null!==(r=null===(a=u.specs[e])||void 0===a?void 0:a.length)&&void 0!==r?r:0);l.push(n.default.createElement(f.CreatureSymbol,{data:o,key:l.length,attachTo:e,indices:c,children:y(o,t)}))}}return l.push(...y(u,t)),n.default.createElement(f.CreatureSymbol,{data:u,children:l})}function C(e){const t=v(e);return e=>n.default.createElement(f.CreatureSymbol,Object.assign({data:e.data||t},e))}const S=C("eye"),w=C("hand"),x=C("arm"),_=C("antler"),q=C("crown"),O=C("wing"),T=C("muscle_arm"),j=C("leg"),P=C("tail"),k=C("lightning"),R=n.default.createElement(S,null,n.default.createElement(k,{nestInside:!0}),n.default.createElement(x,{attachTo:"arm",left:!0},n.default.createElement(O,{attachTo:"arm",left:!0,right:!0})),n.default.createElement(x,{attachTo:"arm",right:!0},n.default.createElement(T,{attachTo:"arm",left:!0,right:!0})),n.default.createElement(_,{attachTo:"horn",left:!0,right:!0}),n.default.createElement(q,{attachTo:"crown"},n.default.createElement(w,{attachTo:"horn",left:!0,right:!0},n.default.createElement(x,{attachTo:"arm",left:!0}))),n.default.createElement(j,{attachTo:"leg",left:!0,right:!0}),n.default.createElement(P,{attachTo:"tail"}));function V(e,t){return n.default.cloneElement(t,{data:e.choice(r.SvgVocabulary),children:n.default.Children.map(t.props.children,(t,a)=>V(e,t))})}const M=[...i.range(5).map(e=>E.bind(null,e)),e=>V(e,R)],z=M.length-1;function A(e){let t="mystic-symbolic-creature";return null!==e&&(t+="-".concat(e)),"".concat(t,".svg")}const F=()=>{const e=n.useRef(null),[t,a]=n.useState("#858585"),[r,o]=n.useState(null),[i,m]=n.useState(l.createSvgSymbolContext()),[g,h]=n.useState(z),p=n.useContext(f.CreatureContext),b=()=>o(Date.now()),v=Object.assign(Object.assign(Object.assign({},p),i),{fill:i.showSpecs?"none":i.fill}),y=null===r?R:M[g](new u.Random(r));return n.default.createElement(n.default.Fragment,null,n.default.createElement("h1",null,"Creature!"),n.default.createElement(c.SymbolContextWidget,{ctx:i,onChange:m},n.default.createElement("label",{htmlFor:"bgColor"},"Background: "),n.default.createElement("input",{type:"color",value:t,onChange:e=>a(e.target.value)})," "),n.default.createElement("p",null,n.default.createElement("label",{htmlFor:"complexity"},"Random creature complexity: "),n.default.createElement("input",{type:"range",min:0,max:z,step:1,value:g,onChange:e=>{h(parseInt(e.target.value)),b()}})," ",g===z?"bonkers":g),n.default.createElement("p",null,n.default.createElement("button",{accessKey:"r",onClick:b},n.default.createElement("u",null,"R"),"andomize!")," ",n.default.createElement("button",{onClick:()=>window.location.reload()},"Reset")," ",n.default.createElement("button",{onClick:()=>d.exportSvg(A(r),e)},"Export SVG")),n.default.createElement(f.CreatureContext.Provider,{value:v},n.default.createElement(s.AutoSizingSvg,{padding:20,ref:e,bgColor:t},n.default.createElement("g",{transform:"scale(0.5 0.5)"},y))))};exports.CreaturePage=F;
},{"react":"HdMw","../svg-vocabulary":"iXyu","../svg-symbol":"ObB7","../specs":"Hr81","../random":"M5sl","../symbol-context-widget":"ZUAZ","../util":"sxvS","../auto-sizing-svg":"kXMH","../export-svg":"m3x1","../creature-symbol":"MOuJ"}],"qWv7":[function(require,module,exports) {
"use strict";var e=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const t=e(require("react")),a=e(require("react-dom")),r=require("./pages/waves-page"),l=require("./pages/vocabulary-page"),n=require("./pages/creature-page"),u={vocabulary:l.VocabularyPage,creature:n.CreaturePage,waves:r.WavesPage},c=Object.keys(u),o="app",s=document.getElementById("app");if(!s)throw new Error("Unable to find #".concat("app","!"));const i=e=>{const a=p(new URLSearchParams(window.location.search).get("p")||"","vocabulary"),r=u[a];return t.default.createElement(t.default.Fragment,null,t.default.createElement("main",null,t.default.createElement(r,null)),t.default.createElement("footer",null,t.default.createElement("p",null,"Other pages"),t.default.createElement("ul",null,c.map(e=>t.default.createElement("li",{key:e},a===e?e:t.default.createElement("a",{href:"?p=".concat(encodeURIComponent(e))},e)))),t.default.createElement("p",null,"For more details about this project, see its"," ",t.default.createElement("a",{href:"https://github.com/toolness/mystic-symbolic",target:"_blank"},"GitHub repository"),".")))};function d(e){return c.includes(e)}function p(e,t){return d(e)?e:t}a.default.render(t.default.createElement(i,null),s);
},{"react":"HdMw","react-dom":"X9zx","./pages/waves-page":"R99w","./pages/vocabulary-page":"PhPL","./pages/creature-page":"Wo33"}]},{},["qWv7"], null)
//# sourceMappingURL=browser-main.5e8197af.js.map
//# sourceMappingURL=browser-main.c2841f3a.js.map

File diff suppressed because one or more lines are too long

Wyświetl plik

@ -1 +1 @@
<!DOCTYPE html><meta charset="utf-8"><title>Mystic Symbolic</title><style>body,html{font-family:Calibri,Arial,Helvetica Neue,sans-serif}.checkerboard-bg{background:#eee url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="400" height="400" fill-opacity=".1"><path d="M200 0h200v200H200zM0 200h200v200H0z"/></svg>');background-size:20px 20px}</style><noscript> <p>Alas, you need JavaScript to peruse this page.</p> </noscript><div id="app"></div><script src="browser-main.5e8197af.js"></script>
<!DOCTYPE html><meta charset="utf-8"><title>Mystic Symbolic</title><style>body,html{font-family:Calibri,Arial,Helvetica Neue,sans-serif}.checkerboard-bg{background:#eee url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="400" height="400" fill-opacity=".1"><path d="M200 0h200v200H200zM0 200h200v200H0z"/></svg>');background-size:20px 20px}</style><noscript> <p>Alas, you need JavaScript to peruse this page.</p> </noscript><div id="app"></div><script src="browser-main.c2841f3a.js"></script>