Skip to content

Instantly share code, notes, and snippets.

@eeddaann
Last active March 9, 2019 20:22
Show Gist options
  • Save eeddaann/8f86da258f13e329a3b11fffae2d8c20 to your computer and use it in GitHub Desktop.
Save eeddaann/8f86da258f13e329a3b11fffae2d8c20 to your computer and use it in GitHub Desktop.
<!doctype html>
<html>
<head>
<title>Hello Webpack</title>
</head>
<body>
<textarea name="" id="input" cols="130" rows="10">a AND b OR c</textarea>
<div>
<button type="button" id="submit">Submit</button>
</div>
<div id="output"></div>
<script>
!function(t){var n={};function e(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,e),o.l=!0,o.exports}e.m=t,e.c=n,e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:r})},e.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},e.t=function(t,n){if(1&n&&(t=e(t)),8&n)return t;if(4&n&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(e.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&n&&"string"!=typeof t)for(var o in t)e.d(r,o,function(n){return t[n]}.bind(null,o));return r},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},e.p="",e(e.s=6)}([function(t,n,e){var r=e(1),o=e(3);t.exports=function(t){return function n(e,u){switch(arguments.length){case 0:return n;case 1:return o(e)?n:r(function(n){return t(e,n)});default:return o(e)&&o(u)?n:o(e)?r(function(n){return t(n,u)}):o(u)?r(function(n){return t(e,n)}):t(e,u)}}}},function(t,n,e){var r=e(3);t.exports=function(t){return function n(e){return 0===arguments.length||r(e)?n:t.apply(this,arguments)}}},function(t,n){t.exports=function(t,n){return Object.prototype.hasOwnProperty.call(n,t)}},function(t,n){t.exports=function(t){return null!=t&&"object"==typeof t&&!0===t["@@functional/placeholder"]}},function(t,n){t.exports=Array.isArray||function(t){return null!=t&&t.length>=0&&"[object Array]"===Object.prototype.toString.call(t)}},function(t,n,e){var r=e(1),o=e(2),u=e(24),c=!{toString:null}.propertyIsEnumerable("toString"),i=["constructor","valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],a=function(){"use strict";return arguments.propertyIsEnumerable("length")}(),s=function(t,n){for(var e=0;e<t.length;){if(t[e]===n)return!0;e+=1}return!1},f=r("function"!=typeof Object.keys||a?function(t){if(Object(t)!==t)return[];var n,e,r=[],f=a&&u(t);for(n in t)!o(n,t)||f&&"length"===n||(r[r.length]=n);if(c)for(e=i.length-1;e>=0;)o(n=i[e],t)&&!s(r,n)&&(r[r.length]=n),e-=1;return r}:function(t){return Object(t)!==t?[]:Object.keys(t)});t.exports=f},function(t,n,e){var r=e(7),o=e(8);const u=document.getElementById("input"),c=document.getElementById("output");document.getElementById("submit").onclick=function(){c.innerHTML=function(t){var n=new r(t);(function t(n){var e=typeof n;if("object"==e)for(var r in n)t(n[r]);else i.includes(n)||a.test(n)||i.push(n)})(new o(n.nodes,n.text).getAst()),st="",console.log(i);for(;i.length>0;)st+=i.pop()+"<br>";return i=[],st}(u.value)};var i=[];const a=new RegExp("^node[0-9]+$")},function(t,n){class e{constructor(t){this.text="",this.nodes=[],Object.defineProperty(this,"getParent",{enumerable:!1,writable:!1,value:()=>t})}}const r=t=>{const n=new e(null);let r=n;for(let n=0;n<t.length;n+=1){const o=t[n];if("("===o){const t=new e(r);r.nodes.push(t),r.text+=`node${r.nodes.length-1}`,r=t}else")"===o?r=r.getParent():r.text=(r.text||"")+o}return n};t.exports=class{constructor(t){const n=r(t);n.text.indexOf(" ")>=0?(this.text="node0",this.nodes=[n]):(this.text=n.text,this.nodes=n.nodes)}}},function(t,n,e){const r=e(9),o=e(25),u=/^node(\d+)$/,c=/^!/,i=" OR ",a=" AND ",s=(t,n)=>{const e=t.match(u);return n[e?+e[1]:-1]};class f{constructor(t,n){this.nodes=t,this.rootParam=n;const e=this.rootParam.replace(c,""),r=c.test(this.rootParam),o=s(e,this.nodes);r&&(this.isNegation=r),this.paramName=e,this.content=o&&o.text,this.orParams=o&&o.text.split(i).map(t=>{const n=t.split(a).map(t=>new f(o.nodes,t).getAst());return{text:t,andParams:n}})}getAst(){return r(o(void 0))({isNegation:this.isNegation,name:this.paramName,content:this.content,orParams:this.orParams})}}t.exports=f},function(t,n,e){var r=e(10),o=e(0),u=e(11),c=o(function(t,n){return u(r(t),n)});t.exports=c},function(t,n){t.exports=function(t){return function(){return!t.apply(this,arguments)}}},function(t,n,e){var r=e(0),o=e(12),u=e(14),c=e(15),i=e(16),a=e(22),s=e(5),f=r(o(["filter"],a,function(t,n){return c(n)?i(function(e,r){return t(n[r])&&(e[r]=n[r]),e},{},s(n)):u(t,n)}));t.exports=f},function(t,n,e){var r=e(4),o=e(13);t.exports=function(t,n,e){return function(){if(0===arguments.length)return e();var u=Array.prototype.slice.call(arguments,0),c=u.pop();if(!r(c)){for(var i=0;i<t.length;){if("function"==typeof c[t[i]])return c[t[i]].apply(c,u);i+=1}if(o(c))return n.apply(null,u)(c)}return e.apply(this,arguments)}}},function(t,n){t.exports=function(t){return"function"==typeof t["@@transducer/step"]}},function(t,n){t.exports=function(t,n){for(var e=0,r=n.length,o=[];e<r;)t(n[e])&&(o[o.length]=n[e]),e+=1;return o}},function(t,n){t.exports=function(t){return"[object Object]"===Object.prototype.toString.call(t)}},function(t,n,e){var r=e(17),o=e(19),u=e(20);function c(t,n,e){for(var r=e.next();!r.done;){if((n=t["@@transducer/step"](n,r.value))&&n["@@transducer/reduced"]){n=n["@@transducer/value"];break}r=e.next()}return t["@@transducer/result"](n)}function i(t,n,e,r){return t["@@transducer/result"](e[r](u(t["@@transducer/step"],t),n))}var a="undefined"!=typeof Symbol?Symbol.iterator:"@@iterator";t.exports=function(t,n,e){if("function"==typeof t&&(t=o(t)),r(e))return function(t,n,e){for(var r=0,o=e.length;r<o;){if((n=t["@@transducer/step"](n,e[r]))&&n["@@transducer/reduced"]){n=n["@@transducer/value"];break}r+=1}return t["@@transducer/result"](n)}(t,n,e);if("function"==typeof e["fantasy-land/reduce"])return i(t,n,e,"fantasy-land/reduce");if(null!=e[a])return c(t,n,e[a]());if("function"==typeof e.next)return c(t,n,e);if("function"==typeof e.reduce)return i(t,n,e,"reduce");throw new TypeError("reduce: list must be array or iterable")}},function(t,n,e){var r=e(1),o=e(4),u=e(18),c=r(function(t){return!!o(t)||!!t&&("object"==typeof t&&(!u(t)&&(1===t.nodeType?!!t.length:0===t.length||t.length>0&&(t.hasOwnProperty(0)&&t.hasOwnProperty(t.length-1)))))});t.exports=c},function(t,n){t.exports=function(t){return"[object String]"===Object.prototype.toString.call(t)}},function(t,n){var e=function(){function t(t){this.f=t}return t.prototype["@@transducer/init"]=function(){throw new Error("init not implemented on XWrap")},t.prototype["@@transducer/result"]=function(t){return t},t.prototype["@@transducer/step"]=function(t,n){return this.f(t,n)},t}();t.exports=function(t){return new e(t)}},function(t,n,e){var r=e(21),o=e(0)(function(t,n){return r(t.length,function(){return t.apply(n,arguments)})});t.exports=o},function(t,n){t.exports=function(t,n){switch(t){case 0:return function(){return n.apply(this,arguments)};case 1:return function(t){return n.apply(this,arguments)};case 2:return function(t,e){return n.apply(this,arguments)};case 3:return function(t,e,r){return n.apply(this,arguments)};case 4:return function(t,e,r,o){return n.apply(this,arguments)};case 5:return function(t,e,r,o,u){return n.apply(this,arguments)};case 6:return function(t,e,r,o,u,c){return n.apply(this,arguments)};case 7:return function(t,e,r,o,u,c,i){return n.apply(this,arguments)};case 8:return function(t,e,r,o,u,c,i,a){return n.apply(this,arguments)};case 9:return function(t,e,r,o,u,c,i,a,s){return n.apply(this,arguments)};case 10:return function(t,e,r,o,u,c,i,a,s,f){return n.apply(this,arguments)};default:throw new Error("First argument to _arity must be a non-negative integer no greater than ten")}}},function(t,n,e){var r=e(0),o=e(23),u=function(){function t(t,n){this.xf=n,this.f=t}return t.prototype["@@transducer/init"]=o.init,t.prototype["@@transducer/result"]=o.result,t.prototype["@@transducer/step"]=function(t,n){return this.f(n)?this.xf["@@transducer/step"](t,n):t},t}(),c=r(function(t,n){return new u(t,n)});t.exports=c},function(t,n){t.exports={init:function(){return this.xf["@@transducer/init"]()},result:function(t){return this.xf["@@transducer/result"](t)}}},function(t,n,e){var r=e(2),o=Object.prototype.toString;t.exports=function(){return"[object Arguments]"===o.call(arguments)?function(t){return"[object Arguments]"===o.call(t)}:function(t){return r("callee",t)}}},function(t,n,e){var r=e(0),o=e(26),u=r(function(t,n){return o(t,n,[],[])});t.exports=u},function(t,n,e){var r=e(27),o=e(28),u=e(29),c=e(2),i=e(30),a=e(5),s=e(31);function f(t,n,e,u){var c=r(t),i=r(n);function a(t,n){return l(t,n,e.slice(),u.slice())}return!o(function(t,n){return!o(a,n,t)},i,c)}function l(t,n,e,r){if(i(t,n))return!0;var o=s(t);if(o!==s(n))return!1;if(null==t||null==n)return!1;if("function"==typeof t["fantasy-land/equals"]||"function"==typeof n["fantasy-land/equals"])return"function"==typeof t["fantasy-land/equals"]&&t["fantasy-land/equals"](n)&&"function"==typeof n["fantasy-land/equals"]&&n["fantasy-land/equals"](t);if("function"==typeof t.equals||"function"==typeof n.equals)return"function"==typeof t.equals&&t.equals(n)&&"function"==typeof n.equals&&n.equals(t);switch(o){case"Arguments":case"Array":case"Object":if("function"==typeof t.constructor&&"Promise"===u(t.constructor))return t===n;break;case"Boolean":case"Number":case"String":if(typeof t!=typeof n||!i(t.valueOf(),n.valueOf()))return!1;break;case"Date":if(!i(t.valueOf(),n.valueOf()))return!1;break;case"Error":return t.name===n.name&&t.message===n.message;case"RegExp":if(t.source!==n.source||t.global!==n.global||t.ignoreCase!==n.ignoreCase||t.multiline!==n.multiline||t.sticky!==n.sticky||t.unicode!==n.unicode)return!1}for(var p=e.length-1;p>=0;){if(e[p]===t)return r[p]===n;p-=1}switch(o){case"Map":return t.size===n.size&&f(t.entries(),n.entries(),e.concat([t]),r.concat([n]));case"Set":return t.size===n.size&&f(t.values(),n.values(),e.concat([t]),r.concat([n]));case"Arguments":case"Array":case"Object":case"Boolean":case"Number":case"String":case"Date":case"Error":case"RegExp":case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"ArrayBuffer":break;default:return!1}var y=a(t);if(y.length!==a(n).length)return!1;var d=e.concat([t]),h=r.concat([n]);for(p=y.length-1;p>=0;){var g=y[p];if(!c(g,n)||!l(n[g],t[g],d,h))return!1;p-=1}return!0}t.exports=l},function(t,n){t.exports=function(t){for(var n,e=[];!(n=t.next()).done;)e.push(n.value);return e}},function(t,n){t.exports=function(t,n,e){for(var r=0,o=e.length;r<o;){if(t(n,e[r]))return!0;r+=1}return!1}},function(t,n){t.exports=function(t){var n=String(t).match(/^function (\w*)/);return null==n?"":n[1]}},function(t,n,e){var r=e(0)(function(t,n){return t===n?0!==t||1/t==1/n:t!=t&&n!=n});t.exports=r},function(t,n,e){var r=e(1)(function(t){return null===t?"Null":void 0===t?"Undefined":Object.prototype.toString.call(t).slice(8,-1)});t.exports=r}]);
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<script src="https://cdn.rawgit.com/knsv/mermaid/7.0.0/dist/mermaid.min.js">mermaid.initialize();</script>
<link rel="stylesheet" href="https://cdn.rawgit.com/knsv/mermaid/7.0.0/dist/mermaid.css">
</head>
<body>
<textarea name="" id="input" cols="30" rows="10">
graph TD
a[a] --> b[b]
b --> c[c]
b --> d[d]
b --> e[e]
c --> f[f]
d --> f
</textarea>
</div>
<div>
<button type="button" id="render">Render</button>
</div>
<div>Graph:
<div id="output"></div>
</div>
<script>
function preprocess(){
// get raw string and tokenize
// https://www.parsonsmatt.org/2014/07/07/postfixjs.html
}
function translate(){
// get raw string and convert to Mermaid syntax
}
var input = document.getElementById("input");
var output = document.getElementById("output");
var renderBtn = document.getElementById("render");
mermaidAPI.initialize({startOnLoad: false});
render.onclick = function() {
console.log(input.value);
mermaidAPI.render('theGraph', input.value, function(svgCode) {
output.innerHTML = svgCode;
});
}
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment