UNPKG

autolayout

Version:

Apple's Auto Layout and Visual Format Language for javascript (using cassowary constraints)

24 lines 94.1 kB
/** * AutoLayout.js is licensed under the MIT license. If a copy of the * MIT-license was not distributed with this file, You can obtain one at: * http://opensource.org/licenses/mit-license.html. * * @author: Hein Rutjes (IjzerenHein) * @license MIT * @copyright Gloey Apps, 2017 * * @library autolayout.js * @version 0.7.0 */ /** * Parts Copyright (C) 2011-2012, Alex Russell (slightlyoff@chromium.org) * Parts Copyright (C) Copyright (C) 1998-2000 Greg J. Badros * * Use of this source code is governed by the LGPL, which can be found in the * COPYING.LGPL file. */ (function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.AutoLayout = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){ "use strict";function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function _processEqualSpacer(t,e){t.equalSpacerIndex=t.equalSpacerIndex||1;var r="_~"+t.lineIndex+":"+t.equalSpacerIndex+"~";t.equalSpacerIndex>1&&t.constraints.push({view1:"_~"+t.lineIndex+":1~",attr1:t.horizontal?Attribute.WIDTH:Attribute.HEIGHT,relation:t.relation.relation||Relation.EQU,view2:r,attr2:t.horizontal?Attribute.WIDTH:Attribute.HEIGHT,priority:t.relation.priority}),t.equalSpacerIndex++,t.relation.view||t.relation.multiplier&&1!==t.relation.multiplier?(t.constraints.push({view1:r,attr1:t.horizontal?Attribute.WIDTH:Attribute.HEIGHT,relation:t.relation.relation||Relation.EQU,view2:t.relation.view,attr2:t.horizontal?Attribute.WIDTH:Attribute.HEIGHT,priority:t.relation.priority,multiplier:t.relation.multiplier}),t.relation.multiplier=void 0):t.relation.constant&&(t.constraints.push({view1:r,attr1:t.horizontal?Attribute.WIDTH:Attribute.HEIGHT,relation:Relation.EQU,view2:null,attr2:Attribute.CONST,priority:t.relation.priority,constant:t.relation.constant}),t.relation.constant=void 0);for(var i=0;i<t.prevViews.length;i++){var n=t.prevViews[i];switch(t.orientation){case Orientation.HORIZONTAL:t.prevAttr=n!==e?Attribute.RIGHT:Attribute.LEFT,t.curAttr=Attribute.LEFT;break;case Orientation.VERTICAL:t.prevAttr=n!==e?Attribute.BOTTOM:Attribute.TOP,t.curAttr=Attribute.TOP;break;case Orientation.ZINDEX:t.prevAttr=Attribute.ZINDEX,t.curAttr=Attribute.ZINDEX,t.relation.constant=n!==e?"default":0}t.constraints.push({view1:n,attr1:t.prevAttr,relation:t.relation.relation,view2:r,attr2:t.curAttr,priority:t.relation.priority})}t.prevViews=[r]}function _processProportionalSpacer(t,e){t.proportionalSpacerIndex=t.proportionalSpacerIndex||1;var r="_-"+t.lineIndex+":"+t.proportionalSpacerIndex+"-";t.proportionalSpacerIndex++,t.constraints.push({view1:r,attr1:t.horizontal?Attribute.WIDTH:Attribute.HEIGHT,relation:t.relation.relation||Relation.EQU,view2:t.relation.view,attr2:t.horizontal?Attribute.WIDTH:Attribute.HEIGHT,priority:t.relation.priority,multiplier:t.relation.multiplier}),t.relation.multiplier=void 0;for(var i=0;i<t.prevViews.length;i++){var n=t.prevViews[i];switch(t.orientation){case Orientation.HORIZONTAL:t.prevAttr=n!==e?Attribute.RIGHT:Attribute.LEFT,t.curAttr=Attribute.LEFT;break;case Orientation.VERTICAL:t.prevAttr=n!==e?Attribute.BOTTOM:Attribute.TOP,t.curAttr=Attribute.TOP;break;case Orientation.ZINDEX:t.prevAttr=Attribute.ZINDEX,t.curAttr=Attribute.ZINDEX,t.relation.constant=n!==e?"default":0}t.constraints.push({view1:n,attr1:t.prevAttr,relation:t.relation.relation,view2:r,attr2:t.curAttr,priority:t.relation.priority})}t.prevViews=[r]}function _processStackView(t,e,r){for(var i=void 0,n=1;n<=4;n*=2)if(r.orientations&n&&r.stack.orientation!==n&&!(r.stack.processedOrientations&n)){r.stack.processedOrientations=r.stack.processedOrientations|n,i=i||{name:e,type:"stack"};for(var a=0,s=r.stack.subViews.length;a<s;a++)n===Orientation.ZINDEX?t.constraints.push({view1:i,attr1:Attribute.ZINDEX,relation:Relation.EQU,view2:r.stack.subViews[a],attr2:Attribute.ZINDEX}):(t.constraints.push({view1:i,attr1:n===Orientation.VERTICAL?Attribute.HEIGHT:Attribute.WIDTH,relation:Relation.EQU,view2:r.stack.subViews[a],attr2:n===Orientation.VERTICAL?Attribute.HEIGHT:Attribute.WIDTH}),t.constraints.push({view1:i,attr1:n===Orientation.VERTICAL?Attribute.TOP:Attribute.LEFT,relation:Relation.EQU,view2:r.stack.subViews[a],attr2:n===Orientation.VERTICAL?Attribute.TOP:Attribute.LEFT}))}}function _getRange(t,e){if(e===!0&&(e=t.match(/\.\.\d+$/),e&&(t=t.substring(0,t.length-e[0].length),e=parseInt(e[0].substring(2)))),!e)return[t];var r,i=t.match(/\d+$/),n=[];if(i)for(t=t.substring(0,t.length-i[0].length),r=parseInt(i);r<=e;r++)n.push(t+r);else for(n.push(t),r=2;r<=e;r++)n.push(t+r);return n}function _processCascade(t,e,r){var i=r?r.view:null,n=[],a=[],s=void 0;i&&(e.push({view:i}),a.push(i));for(var o=0;o<e.length;o++){var u=e[o];if(!Array.isArray(u)&&u.hasOwnProperty("view")||Array.isArray(u)&&u[0].view&&!u[0].relation)for(var c=Array.isArray(u)?u:[u],l=0;l<c.length;l++){u=c[l];for(var h=","===u?[]:u.view?_getRange(u.view,u.range):[null],p=0;p<h.length;p++){var f=h[p];if(a.push(f),f!==i&&(n.push(f),s=t.subViews[f],s||(s={orientations:0},t.subViews[f]=s),s.orientations=s.orientations|t.orientation,s.stack&&_processStackView(t,f,s)),void 0!==t.prevViews&&void 0!==f&&t.relation&&"none"!==t.relation.relation)for(var v=0;v<t.prevViews.length;v++){var d=t.prevViews[v];switch(t.orientation){case Orientation.HORIZONTAL:t.prevAttr=d!==i?Attribute.RIGHT:Attribute.LEFT,t.curAttr=f!==i?Attribute.LEFT:Attribute.RIGHT;break;case Orientation.VERTICAL:t.prevAttr=d!==i?Attribute.BOTTOM:Attribute.TOP,t.curAttr=f!==i?Attribute.TOP:Attribute.BOTTOM;break;case Orientation.ZINDEX:t.prevAttr=Attribute.ZINDEX,t.curAttr=Attribute.ZINDEX,t.relation.constant=d?t.relation.constant||"default":0}t.constraints.push({view1:d,attr1:t.prevAttr,relation:t.relation.relation,view2:f,attr2:t.curAttr,multiplier:t.relation.multiplier,constant:"default"!==t.relation.constant&&t.relation.constant?-t.relation.constant:t.relation.constant,priority:t.relation.priority})}var A=u.constraints;if(A)for(var g=0;g<A.length;g++)t.prevAttr=t.horizontal?Attribute.WIDTH:Attribute.HEIGHT,t.curAttr=A[g].view||A[g].multiplier?A[g].attribute||t.prevAttr:A[g].variable?Attribute.VARIABLE:Attribute.CONST,t.constraints.push({view1:f,attr1:t.prevAttr,relation:A[g].relation,view2:A[g].view,attr2:t.curAttr,multiplier:A[g].multiplier,constant:A[g].constant,priority:A[g].priority});u.cascade&&_processCascade(t,u.cascade,u)}}else","!==u&&(t.prevViews=a,a=[],t.relation=u[0],void 0!==t.prevViews&&(t.relation.equalSpacing&&_processEqualSpacer(t,i),t.relation.multiplier&&_processProportionalSpacer(t,i)))}if(i){if(s=t.subViews[i]){if(s.stack){var b=new Error('A stack named "'+i+'" has already been created');throw b.column=r.$parserOffset+1,b}}else s={orientations:t.orientation},t.subViews[i]=s;s.stack={orientation:t.orientation,processedOrientations:t.orientation,subViews:n},_processStackView(t,i,s)}}function _getConst(t,e){var r=new c.Variable({value:e});return this._solver.addConstraint(new c.StayConstraint(r,c.Strength.required,0)),r}function _getSubView(t){return t?t.name?(this._subViews[t.name]=this._subViews[t.name]||new SubView({name:t.name,solver:this._solver}),this._subViews[t.name]._type=this._subViews[t.name]._type||t.type,this._subViews[t.name]):(this._subViews[t]=this._subViews[t]||new SubView({name:t,solver:this._solver}),this._subViews[t]):this._parentSubView}function _getSpacing(t){var e=4;if(t.view1||"left"!==t.attr1)if(t.view1||"top"!==t.attr1)if(t.view2||"right"!==t.attr2)if(t.view2||"bottom"!==t.attr2)switch(t.attr1){case"left":case"right":case"centerX":case"leading":case"trailing":e=4;break;case"zIndex":e=6;break;default:e=5}else e=2;else e=1;else e=0;else e=3;return this._spacingVars=this._spacingVars||new Array(7),this._spacingExpr=this._spacingExpr||new Array(7),this._spacingVars[e]||(this._spacingVars[e]=new c.Variable,this._solver.addEditVar(this._spacingVars[e]),this._spacingExpr[e]=c.minus(0,this._spacingVars[e]),this._solver.suggestValue(this._spacingVars[e],this._spacing[e])),this._spacingExpr[e]}function _addConstraint(t){var e=void 0,r=void 0!==t.multiplier?t.multiplier:1,i=void 0!==t.constant?t.constant:0;"default"===i&&(i=_getSpacing.call(this,t));var n=_getSubView.call(this,t.view1)._getAttr(t.attr1),a=void 0;t.attr2===Attribute.CONST?a=_getConst.call(this,void 0,t.constant):(a=_getSubView.call(this,t.view2)._getAttr(t.attr2),1!==r&&i?a=c.plus(c.times(a,r),i):i?a=c.plus(a,i):1!==r&&(a=c.times(a,r)));var s=void 0!==t.priority&&t.priority<1e3?new c.Strength("priority",0,t.priority,1e3):defaultPriorityStrength;switch(t.relation){case Relation.EQU:e=new c.Equation(n,a,s);break;case Relation.GEQ:e=new c.Inequality(n,c.GEQ,a,s);break;case Relation.LEQ:e=new c.Inequality(n,c.LEQ,a,s);break;default:throw"Invalid relation specified: "+t.relation}this._solver.addConstraint(e)}function _compareSpacing(t,e){if(t===e)return!0;if(!t||!e)return!1;for(var r=0;r<7;r++)if(t[r]!==e[r])return!1;return!0}var _createClass=function(){function t(t,e){for(var r=0;r<e.length;r++){var i=e[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,r,i){return r&&t(e.prototype,r),i&&t(e,i),e}}(),c=require("cassowary/bin/c"),Attribute={CONST:"const",NOTANATTRIBUTE:"const",VARIABLE:"var",LEFT:"left",RIGHT:"right",TOP:"top",BOTTOM:"bottom",WIDTH:"width",HEIGHT:"height",CENTERX:"centerX",CENTERY:"centerY",ZINDEX:"zIndex"},Relation={LEQ:"leq",EQU:"equ",GEQ:"geq"},Priority={REQUIRED:1e3,DEFAULTHIGH:750,DEFAULTLOW:250},parser=function(){function t(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function e(t,e,r,i,n,a){this.message=t,this.expected=e,this.found=r,this.offset=i,this.line=n,this.column=a,this.name="SyntaxError"}function r(t){function r(){return xt}function i(e){function r(e,r,i){var n,a;for(n=r;n<i;n++)a=t.charAt(n),"\n"===a?(e.seenCR||e.line++,e.column=1,e.seenCR=!1):"\r"===a||"\u2028"===a||"\u2029"===a?(e.line++,e.column=1,e.seenCR=!0):(e.column++,e.seenCR=!1)}return kt!==e&&(kt>e&&(kt=0,Rt={line:1,column:1,seenCR:!1}),r(Rt,kt,e),kt=e),Rt}function n(t){St<Ft||(St>Ft&&(Ft=St,Nt=[]),Nt.push(t))}function a(r,n,a){function s(t){var e=1;for(t.sort(function(t,e){return t.description<e.description?-1:t.description>e.description?1:0});e<t.length;)t[e-1]===t[e]?t.splice(e,1):e++}function o(t,e){function r(t){function e(t){return t.charCodeAt(0).toString(16).toUpperCase()}return t.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\x08/g,"\\b").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\f/g,"\\f").replace(/\r/g,"\\r").replace(/[\x00-\x07\x0B\x0E\x0F]/g,function(t){return"\\x0"+e(t)}).replace(/[\x10-\x1F\x80-\xFF]/g,function(t){return"\\x"+e(t)}).replace(/[\u0180-\u0FFF]/g,function(t){return"\\u0"+e(t)}).replace(/[\u1080-\uFFFF]/g,function(t){return"\\u"+e(t)})}var i,n,a,s=new Array(t.length);for(a=0;a<t.length;a++)s[a]=t[a].description;return i=t.length>1?s.slice(0,-1).join(", ")+" or "+s[t.length-1]:s[0],n=e?'"'+r(e)+'"':"end of input","Expected "+i+" but "+n+" found."}var u=i(a),c=a<t.length?t.charAt(a):null;return null!==n&&s(n),new e(null!==r?r:o(n,c),n,c,a,u.line,u.column)}function s(){var e,r,i,a,s,h,p,f;if(e=St,r=St,i=o(),i!==E?(58===t.charCodeAt(St)?(a=H,St++):(a=E,0===Lt&&n(S)),a!==E?(i=[i,a],r=i):(St=r,r=m)):(St=r,r=m),r===E&&(r=O),r!==E)if(i=St,a=u(),a!==E?(s=l(),s!==E?(a=[a,s],i=a):(St=i,i=m)):(St=i,i=m),i===E&&(i=O),i!==E)if(a=c(),a!==E){for(s=[],h=St,p=l(),p!==E?(f=c(),f!==E?(p=[p,f],h=p):(St=h,h=m)):(St=h,h=m);h!==E;)s.push(h),h=St,p=l(),p!==E?(f=c(),f!==E?(p=[p,f],h=p):(St=h,h=m)):(St=h,h=m);s!==E?(h=St,p=l(),p!==E?(f=u(),f!==E?(p=[p,f],h=p):(St=h,h=m)):(St=h,h=m),h===E&&(h=O),h!==E?(xt=e,r=x(r,i,a,s,h),e=r):(St=e,e=m)):(St=e,e=m)}else St=e,e=m;else St=e,e=m;else St=e,e=m;return e}function o(){var e,r;return e=St,72===t.charCodeAt(St)?(r=k,St++):(r=E,0===Lt&&n(R)),r===E&&(86===t.charCodeAt(St)?(r=F,St++):(r=E,0===Lt&&n(N))),r!==E&&(xt=e,r=L(r)),e=r}function u(){var e,r;return e=St,124===t.charCodeAt(St)?(r=q,St++):(r=E,0===Lt&&n(Z)),r!==E&&(xt=e,r=D()),e=r}function c(){var e,r,i,a,s;return e=St,91===t.charCodeAt(St)?(r=z,St++):(r=E,0===Lt&&n(G)),r!==E?(i=w(),i!==E?(a=f(),a===E&&(a=O),a!==E?(93===t.charCodeAt(St)?(s=X,St++):(s=E,0===Lt&&n(P)),s!==E?(xt=e,r=W(i,a),e=r):(St=e,e=m)):(St=e,e=m)):(St=e,e=m)):(St=e,e=m),e}function l(){var e,r,i,a;return e=St,45===t.charCodeAt(St)?(r=Q,St++):(r=E,0===Lt&&n(U)),r!==E?(i=h(),i!==E?(45===t.charCodeAt(St)?(a=Q,St++):(a=E,0===Lt&&n(U)),a!==E?(xt=e,r=B(i),e=r):(St=e,e=m)):(St=e,e=m)):(St=e,e=m),e===E&&(e=St,45===t.charCodeAt(St)?(r=Q,St++):(r=E,0===Lt&&n(U)),r!==E&&(xt=e,r=$()),e=r,e===E&&(e=St,r=j,r!==E&&(xt=e,r=Y()),e=r)),e}function h(){var t;return t=p(),t===E&&(t=f()),t}function p(){var t,e;return t=St,e=y(),e!==E&&(xt=t,e=M(e)),t=e}function f(){var e,r,i,a,s,o,u;if(e=St,40===t.charCodeAt(St)?(r=J,St++):(r=E,0===Lt&&n(K)),r!==E)if(i=v(),i!==E){for(a=[],s=St,44===t.charCodeAt(St)?(o=tt,St++):(o=E,0===Lt&&n(et)),o!==E?(u=v(),u!==E?(o=[o,u],s=o):(St=s,s=m)):(St=s,s=m);s!==E;)a.push(s),s=St,44===t.charCodeAt(St)?(o=tt,St++):(o=E,0===Lt&&n(et)),o!==E?(u=v(),u!==E?(o=[o,u],s=o):(St=s,s=m)):(St=s,s=m);a!==E?(41===t.charCodeAt(St)?(s=rt,St++):(s=E,0===Lt&&n(it)),s!==E?(xt=e,r=nt(i,a),e=r):(St=e,e=m)):(St=e,e=m)}else St=e,e=m;else St=e,e=m;return e}function v(){var e,r,i,a,s,o;return e=St,r=d(),r===E&&(r=O),r!==E?(i=A(),i!==E?(a=St,64===t.charCodeAt(St)?(s=at,St++):(s=E,0===Lt&&n(st)),s!==E?(o=g(),o!==E?(s=[s,o],a=s):(St=a,a=m)):(St=a,a=m),a===E&&(a=O),a!==E?(xt=e,r=ot(r,i,a),e=r):(St=e,e=m)):(St=e,e=m)):(St=e,e=m),e}function d(){var e,r;return e=St,t.substr(St,2)===ut?(r=ut,St+=2):(r=E,0===Lt&&n(ct)),r!==E&&(xt=e,r=lt()),e=r,e===E&&(e=St,t.substr(St,2)===ht?(r=ht,St+=2):(r=E,0===Lt&&n(pt)),r!==E&&(xt=e,r=ft()),e=r,e===E&&(e=St,t.substr(St,2)===vt?(r=vt,St+=2):(r=E,0===Lt&&n(dt)),r!==E&&(xt=e,r=At()),e=r)),e}function A(){var t;return t=b(),t===E&&(t=w()),t}function g(){var e,r,i;if(e=St,r=[],gt.test(t.charAt(St))?(i=t.charAt(St),St++):(i=E,0===Lt&&n(bt)),i!==E)for(;i!==E;)r.push(i),gt.test(t.charAt(St))?(i=t.charAt(St),St++):(i=E,0===Lt&&n(bt));else r=m;return r!==E&&(xt=e,r=wt(r)),e=r}function b(){var t,e;return t=St,e=y(),e!==E&&(xt=t,e=yt(e)),t=e}function w(){var e,r,i,a,s;if(e=St,r=St,i=[],_t.test(t.charAt(St))?(a=t.charAt(St),St++):(a=E,0===Lt&&n(Ct)),a!==E)for(;a!==E;)i.push(a),_t.test(t.charAt(St))?(a=t.charAt(St),St++):(a=E,0===Lt&&n(Ct));else i=m;if(i!==E&&(i=t.substring(r,St)),r=i,r!==E){for(i=St,a=[],It.test(t.charAt(St))?(s=t.charAt(St),St++):(s=E,0===Lt&&n(Et));s!==E;)a.push(s),It.test(t.charAt(St))?(s=t.charAt(St),St++):(s=E,0===Lt&&n(Et));a!==E&&(a=t.substring(i,St)),i=a,i!==E?(xt=e,r=Tt(r,i),e=r):(St=e,e=m)}else St=e,e=m;return e}function y(){var e,r,i,a,s;if(e=St,r=[],gt.test(t.charAt(St))?(i=t.charAt(St),St++):(i=E,0===Lt&&n(bt)),i!==E)for(;i!==E;)r.push(i),gt.test(t.charAt(St))?(i=t.charAt(St),St++):(i=E,0===Lt&&n(bt));else r=m;if(r!==E)if(46===t.charCodeAt(St)?(i=Vt,St++):(i=E,0===Lt&&n(mt)),i!==E){if(a=[],gt.test(t.charAt(St))?(s=t.charAt(St),St++):(s=E,0===Lt&&n(bt)),s!==E)for(;s!==E;)a.push(s),gt.test(t.charAt(St))?(s=t.charAt(St),St++):(s=E,0===Lt&&n(bt));else a=m;a!==E?(xt=e,r=Ot(r,a),e=r):(St=e,e=m)}else St=e,e=m;else St=e,e=m;if(e===E){if(e=St,r=[],gt.test(t.charAt(St))?(i=t.charAt(St),St++):(i=E,0===Lt&&n(bt)),i!==E)for(;i!==E;)r.push(i),gt.test(t.charAt(St))?(i=t.charAt(St),St++):(i=E,0===Lt&&n(bt));else r=m;r!==E&&(xt=e,r=Ht(r)),e=r}return e}function _(t){for(var e=1;e<arguments.length;e++)for(var r in arguments[e])t[r]=arguments[e][r];return t}var C,I=arguments.length>1?arguments[1]:{},E={},T={visualFormatString:s},V=s,m=E,O=null,H=":",S={type:"literal",value:":",description:'":"'},x=function(t,e,r,i,n){return{orientation:t?t[0]:"horizontal",cascade:(e||[]).concat([r],[].concat.apply([],i),n||[])}},k="H",R={type:"literal",value:"H",description:'"H"'},F="V",N={type:"literal",value:"V",description:'"V"'},L=function(t){return"H"==t?"horizontal":"vertical"},q="|",Z={type:"literal",value:"|",description:'"|"'},D=function(){return{view:null}},z="[",G={type:"literal",value:"[",description:'"["'},X="]",P={type:"literal",value:"]",description:'"]"'},W=function(t,e){return _(t,e?{constraints:e}:{})},Q="-",U={type:"literal",value:"-",description:'"-"'},B=function(t){return t},$=function(){return[{relation:"equ",constant:"default",$parserOffset:r()}]},j="",Y=function(){return[{relation:"equ",constant:0,$parserOffset:r()}]},M=function(t){return[{relation:"equ",constant:t,$parserOffset:r()}]},J="(",K={type:"literal",value:"(",description:'"("'},tt=",",et={type:"literal",value:",",description:'","'},rt=")",it={type:"literal",value:")",description:'")"'},nt=function(t,e){return[t].concat(e.map(function(t){return t[1]}))},at="@",st={type:"literal",value:"@",description:'"@"'},ot=function(t,e,r){return _({relation:"equ"},t||{},e,r?r[1]:{})},ut="==",ct={type:"literal",value:"==",description:'"=="'},lt=function(){return{relation:"equ",$parserOffset:r()}},ht="<=",pt={type:"literal",value:"<=",description:'"<="'},ft=function(){return{relation:"leq",$parserOffset:r()}},vt=">=",dt={type:"literal",value:">=",description:'">="'},At=function(){return{relation:"geq",$parserOffset:r()}},gt=/^[0-9]/,bt={type:"class",value:"[0-9]",description:"[0-9]"},wt=function(t){return{priority:parseInt(t.join(""),10)}},yt=function(t){return{constant:t}},_t=/^[a-zA-Z_]/,Ct={type:"class",value:"[a-zA-Z_]",description:"[a-zA-Z_]"},It=/^[a-zA-Z0-9_]/,Et={type:"class",value:"[a-zA-Z0-9_]",description:"[a-zA-Z0-9_]"},Tt=function(t,e){return{view:t+e}},Vt=".",mt={type:"literal",value:".",description:'"."'},Ot=function(t,e){return parseFloat(t.concat(".").concat(e).join(""),10)},Ht=function(t){return parseInt(t.join(""),10)},St=0,xt=0,kt=0,Rt={line:1,column:1,seenCR:!1},Ft=0,Nt=[],Lt=0;if("startRule"in I){if(!(I.startRule in T))throw new Error("Can't start parsing from rule \""+I.startRule+'".');V=T[I.startRule]}if(C=V(),C!==E&&St===t.length)return C;throw C!==E&&St<t.length&&n({type:"end",description:"end of input"}),a(null,Nt,Ft)}return t(e,Error),{SyntaxError:e,parse:r}}(),parserExt=function(){function t(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function e(t,e,r,i,n,a){this.message=t,this.expected=e,this.found=r,this.offset=i,this.line=n,this.column=a,this.name="SyntaxError"}function r(t){function r(){return Ar}function i(e){function r(e,r,i){var n,a;for(n=r;n<i;n++)a=t.charAt(n),"\n"===a?(e.seenCR||e.line++,e.column=1,e.seenCR=!1):"\r"===a||"\u2028"===a||"\u2029"===a?(e.line++,e.column=1,e.seenCR=!0):(e.column++,e.seenCR=!1)}return gr!==e&&(gr>e&&(gr=0,br={line:1,column:1,seenCR:!1}),r(br,gr,e),gr=e),br}function n(t){dr<wr||(dr>wr&&(wr=dr,yr=[]),yr.push(t))}function a(r,n,a){function s(t){var e=1;for(t.sort(function(t,e){return t.description<e.description?-1:t.description>e.description?1:0});e<t.length;)t[e-1]===t[e]?t.splice(e,1):e++}function o(t,e){function r(t){function e(t){return t.charCodeAt(0).toString(16).toUpperCase()}return t.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\x08/g,"\\b").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\f/g,"\\f").replace(/\r/g,"\\r").replace(/[\x00-\x07\x0B\x0E\x0F]/g,function(t){return"\\x0"+e(t)}).replace(/[\x10-\x1F\x80-\xFF]/g,function(t){return"\\x"+e(t)}).replace(/[\u0180-\u0FFF]/g,function(t){return"\\u0"+e(t)}).replace(/[\u1080-\uFFFF]/g,function(t){return"\\u"+e(t)})}var i,n,a,s=new Array(t.length);for(a=0;a<t.length;a++)s[a]=t[a].description;return i=t.length>1?s.slice(0,-1).join(", ")+" or "+s[t.length-1]:s[0],n=e?'"'+r(e)+'"':"end of input","Expected "+i+" but "+n+" found."}var u=i(a),c=a<t.length?t.charAt(a):null;return null!==n&&s(n),new e(null!==r?r:o(n,c),n,c,a,u.line,u.column)}function s(){var t;return t=c(),t===D&&(t=o()),t}function o(){var e,r,i,a,s,o;if(e=dr,t.substr(dr,2)===P?(r=P,dr+=2):(r=D,0===_r&&n(W)),r!==D)if(i=R(),i!==D)if(a=u(),a!==D){for(s=[],o=u();o!==D;)s.push(o),o=u();s!==D?(o=h(),o===D&&(o=Q),o!==D?(Ar=e,r=U(i,a,s,o),e=r):(dr=e,e=X)):(dr=e,e=X)}else dr=e,e=X;else dr=e,e=X;else dr=e,e=X;return e}function u(){var t,e,r;return t=dr,e=H(),e!==D?(r=w(),r!==D?(Ar=t,e=B(e,r),t=e):(dr=t,t=X)):(dr=t,t=X),t}function c(){var e,r,i,a,s,o,u,c;if(e=dr,r=dr,i=l(),i!==D?(58===t.charCodeAt(dr)?(a=$,dr++):(a=D,0===_r&&n(j)),a!==D?(i=[i,a],r=i):(dr=r,r=X)):(dr=r,r=X),r===D&&(r=Q),r!==D)if(i=dr,a=p(),a!==D?(s=A(),s!==D?(a=[a,s],i=a):(dr=i,i=X)):(dr=i,i=X),i===D&&(i=Q),i!==D)if(a=f(),a!==D){for(s=[],o=dr,u=A(),u!==D?(c=f(),c!==D?(u=[u,c],o=u):(dr=o,o=X)):(dr=o,o=X);o!==D;)s.push(o),o=dr,u=A(),u!==D?(c=f(),c!==D?(u=[u,c],o=u):(dr=o,o=X)):(dr=o,o=X);s!==D?(o=dr,u=A(),u!==D?(c=p(),c!==D?(u=[u,c],o=u):(dr=o,o=X)):(dr=o,o=X),o===D&&(o=Q),o!==D?(u=h(),u===D&&(u=Q),u!==D?(Ar=e,r=Y(r,i,a,s,o,u),e=r):(dr=e,e=X)):(dr=e,e=X)):(dr=e,e=X)}else dr=e,e=X;else dr=e,e=X;else dr=e,e=X;return e}function l(){var e,r;return e=dr,t.substr(dr,2)===M?(r=M,dr+=2):(r=D,0===_r&&n(J)),r!==D&&(Ar=e,r=K()),e=r,e===D&&(e=dr,72===t.charCodeAt(dr)?(r=tt,dr++):(r=D,0===_r&&n(et)),r!==D&&(Ar=e,r=rt()),e=r,e===D&&(e=dr,86===t.charCodeAt(dr)?(r=it,dr++):(r=D,0===_r&&n(nt)),r!==D&&(Ar=e,r=at()),e=r,e===D&&(e=dr,90===t.charCodeAt(dr)?(r=st,dr++):(r=D,0===_r&&n(ot)),r!==D&&(Ar=e,r=ut()),e=r))),e}function h(){var e,r,i,a,s;for(e=dr,r=[],32===t.charCodeAt(dr)?(i=ct,dr++):(i=D,0===_r&&n(lt));i!==D;)r.push(i),32===t.charCodeAt(dr)?(i=ct,dr++):(i=D,0===_r&&n(lt));if(r!==D)if(t.substr(dr,2)===ht?(i=ht,dr+=2):(i=D,0===_r&&n(pt)),i!==D){for(a=[],t.length>dr?(s=t.charAt(dr),dr++):(s=D,0===_r&&n(ft));s!==D;)a.push(s),t.length>dr?(s=t.charAt(dr),dr++):(s=D,0===_r&&n(ft));a!==D?(r=[r,i,a],e=r):(dr=e,e=X)}else dr=e,e=X;else dr=e,e=X;return e}function p(){var e,r;return e=dr,124===t.charCodeAt(dr)?(r=vt,dr++):(r=D,0===_r&&n(dt)),r!==D&&(Ar=e,r=At()),e=r}function f(){var e,r,i,a,s,o,u;if(e=dr,91===t.charCodeAt(dr)?(r=gt,dr++):(r=D,0===_r&&n(bt)),r!==D)if(i=v(),i!==D){for(a=[],s=dr,44===t.charCodeAt(dr)?(o=wt,dr++):(o=D,0===_r&&n(yt)),o!==D?(u=v(),u!==D?(o=[o,u],s=o):(dr=s,s=X)):(dr=s,s=X);s!==D;)a.push(s),s=dr,44===t.charCodeAt(dr)?(o=wt,dr++):(o=D,0===_r&&n(yt)),o!==D?(u=v(),u!==D?(o=[o,u],s=o):(dr=s,s=X)):(dr=s,s=X);a!==D?(93===t.charCodeAt(dr)?(s=_t,dr++):(s=D,0===_r&&n(Ct)),s!==D?(Ar=e,r=It(i,a),e=r):(dr=e,e=X)):(dr=e,e=X)}else dr=e,e=X;else dr=e,e=X;return e}function v(){var t,e,r,i;return t=dr,e=k(),e!==D?(r=w(),r===D&&(r=Q),r!==D?(i=d(),i===D&&(i=Q),i!==D?(Ar=t,e=Et(e,r,i),t=e):(dr=t,t=X)):(dr=t,t=X)):(dr=t,t=X),t}function d(){var e,r,i,a,s,o;if(e=dr,58===t.charCodeAt(dr)?(r=$,dr++):(r=D,0===_r&&n(j)),r!==D){if(i=[],a=dr,s=A(),s!==D?(o=f(),o!==D?(s=[s,o],a=s):(dr=a,a=X)):(dr=a,a=X),a!==D)for(;a!==D;)i.push(a),a=dr,s=A(),s!==D?(o=f(),o!==D?(s=[s,o],a=s):(dr=a,a=X)):(dr=a,a=X);else i=X;i!==D?(a=A(),a!==D?(Ar=e,r=Tt(i,a),e=r):(dr=e,e=X)):(dr=e,e=X)}else dr=e,e=X;return e}function A(){var e,r,i,a;return e=dr,t.substr(dr,2)===Vt?(r=Vt,dr+=2):(r=D,0===_r&&n(mt)),r!==D&&(Ar=e,r=Ot()),e=r,e===D&&(e=dr,45===t.charCodeAt(dr)?(r=Ht,dr++):(r=D,0===_r&&n(St)),r!==D?(i=g(),i!==D?(45===t.charCodeAt(dr)?(a=Ht,dr++):(a=D,0===_r&&n(St)),a!==D?(Ar=e,r=xt(i),e=r):(dr=e,e=X)):(dr=e,e=X)):(dr=e,e=X),e===D&&(e=dr,45===t.charCodeAt(dr)?(r=Ht,dr++):(r=D,0===_r&&n(St)),r!==D&&(Ar=e,r=kt()),e=r,e===D&&(e=dr,126===t.charCodeAt(dr)?(r=Rt,dr++):(r=D,0===_r&&n(Ft)),r!==D?(i=_(),i!==D?(126===t.charCodeAt(dr)?(a=Rt,dr++):(a=D,0===_r&&n(Ft)),a!==D?(Ar=e,r=xt(i),e=r):(dr=e,e=X)):(dr=e,e=X)):(dr=e,e=X),e===D&&(e=dr,126===t.charCodeAt(dr)?(r=Rt,dr++):(r=D,0===_r&&n(Ft)),r!==D&&(Ar=e,r=Nt()),e=r,e===D&&(e=dr,r=Lt,r!==D&&(Ar=e,r=qt()),e=r))))),e}function g(){var t;return t=b(),t===D&&(t=w()),t}function b(){var t,e;return t=dr,e=m(),e!==D&&(Ar=t,e=Zt(e)),t=e,t===D&&(t=dr,e=N(),e!==D&&(Ar=t,e=Dt(e)),t=e),t}function w(){var e,r,i,a,s,o,u;if(e=dr,40===t.charCodeAt(dr)?(r=zt,dr++):(r=D,0===_r&&n(Gt)),r!==D)if(i=y(),i!==D){for(a=[],s=dr,44===t.charCodeAt(dr)?(o=wt,dr++):(o=D,0===_r&&n(yt)),o!==D?(u=y(),u!==D?(o=[o,u],s=o):(dr=s,s=X)):(dr=s,s=X);s!==D;)a.push(s),s=dr,44===t.charCodeAt(dr)?(o=wt,dr++):(o=D,0===_r&&n(yt)),o!==D?(u=y(),u!==D?(o=[o,u],s=o):(dr=s,s=X)):(dr=s,s=X);a!==D?(41===t.charCodeAt(dr)?(s=Xt,dr++):(s=D,0===_r&&n(Pt)),s!==D?(Ar=e,r=Wt(i,a),e=r):(dr=e,e=X)):(dr=e,e=X)}else dr=e,e=X;else dr=e,e=X;return e}function y(){var e,r,i,a,s,o;return e=dr,r=I(),r===D&&(r=Q),r!==D?(i=E(),i!==D?(a=dr,64===t.charCodeAt(dr)?(s=Qt,dr++):(s=D,0===_r&&n(Ut)),s!==D?(o=T(),o!==D?(s=[s,o],a=s):(dr=a,a=X)):(dr=a,a=X),a===D&&(a=Q),a!==D?(Ar=e,r=Bt(r,i,a),e=r):(dr=e,e=X)):(dr=e,e=X)):(dr=e,e=X),e}function _(){var e,r,i,a,s,o,u;if(e=dr,40===t.charCodeAt(dr)?(r=zt,dr++):(r=D,0===_r&&n(Gt)),r!==D)if(i=C(),i!==D){for(a=[],s=dr,44===t.charCodeAt(dr)?(o=wt,dr++):(o=D,0===_r&&n(yt)),o!==D?(u=C(),u!==D?(o=[o,u],s=o):(dr=s,s=X)):(dr=s,s=X);s!==D;)a.push(s),s=dr,44===t.charCodeAt(dr)?(o=wt,dr++):(o=D,0===_r&&n(yt)),o!==D?(u=C(),u!==D?(o=[o,u],s=o):(dr=s,s=X)):(dr=s,s=X);a!==D?(41===t.charCodeAt(dr)?(s=Xt,dr++):(s=D,0===_r&&n(Pt)),s!==D?(Ar=e,r=Wt(i,a),e=r):(dr=e,e=X)):(dr=e,e=X)}else dr=e,e=X;else dr=e,e=X;return e}function C(){var e,r,i,a,s,o;return e=dr,r=I(),r===D&&(r=Q),r!==D?(i=E(),i!==D?(a=dr,64===t.charCodeAt(dr)?(s=Qt,dr++):(s=D,0===_r&&n(Ut)),s!==D?(o=T(),o!==D?(s=[s,o],a=s):(dr=a,a=X)):(dr=a,a=X),a===D&&(a=Q),a!==D?(Ar=e,r=$t(r,i,a),e=r):(dr=e,e=X)):(dr=e,e=X)):(dr=e,e=X),e}function I(){var e,r;return e=dr,t.substr(dr,2)===jt?(r=jt,dr+=2):(r=D,0===_r&&n(Yt)),r!==D&&(Ar=e,r=Mt()),e=r,e===D&&(e=dr,t.substr(dr,2)===Jt?(r=Jt,dr+=2):(r=D,0===_r&&n(Kt)),r!==D&&(Ar=e,r=te()),e=r,e===D&&(e=dr,t.substr(dr,2)===ee?(r=ee,dr+=2):(r=D,0===_r&&n(re)),r!==D&&(Ar=e,r=ie()),e=r)),e}function E(){var t;return t=m(),t===D&&(t=V(),t===D&&(t=O())),t}function T(){var e,r,i;if(e=dr,r=[],ne.test(t.charAt(dr))?(i=t.charAt(dr),dr++):(i=D,0===_r&&n(ae)),i!==D)for(;i!==D;)r.push(i),ne.test(t.charAt(dr))?(i=t.charAt(dr),dr++):(i=D,0===_r&&n(ae));else r=X;return r!==D&&(Ar=e,r=se(r)),e=r}function V(){var e,r,i;return e=dr,r=N(),r!==D&&(Ar=e,r=oe(r)),e=r,e===D&&(e=dr,45===t.charCodeAt(dr)?(r=Ht,dr++):(r=D,0===_r&&n(St)),r!==D?(i=N(),i!==D?(Ar=e,r=ue(i),e=r):(dr=e,e=X)):(dr=e,e=X),e===D&&(e=dr,43===t.charCodeAt(dr)?(r=ce,dr++):(r=D,0===_r&&n(le)),r!==D?(i=N(),i!==D?(Ar=e,r=oe(i),e=r):(dr=e,e=X)):(dr=e,e=X))),e}function m(){var e,r,i,a;return e=dr,r=N(),r!==D?(37===t.charCodeAt(dr)?(i=he,dr++):(i=D,0===_r&&n(pe)),i!==D?(Ar=e,r=fe(r),e=r):(dr=e,e=X)):(dr=e,e=X),e===D&&(e=dr,45===t.charCodeAt(dr)?(r=Ht,dr++):(r=D,0===_r&&n(St)),r!==D?(i=N(),i!==D?(37===t.charCodeAt(dr)?(a=he,dr++):(a=D,0===_r&&n(pe)),a!==D?(Ar=e,r=ve(i),e=r):(dr=e,e=X)):(dr=e,e=X)):(dr=e,e=X),e===D&&(e=dr,43===t.charCodeAt(dr)?(r=ce,dr++):(r=D,0===_r&&n(le)),r!==D?(i=N(),i!==D?(37===t.charCodeAt(dr)?(a=he,dr++):(a=D,0===_r&&n(pe)),a!==D?(Ar=e,r=fe(i),e=r):(dr=e,e=X)):(dr=e,e=X)):(dr=e,e=X))),e}function O(){var t,e,r,i,n;return t=dr,e=R(),e!==D?(r=H(),r===D&&(r=Q),r!==D?(i=S(),i===D&&(i=Q),i!==D?(n=x(),n===D&&(n=Q),n!==D?(Ar=t,e=de(e,r,i,n),t=e):(dr=t,t=X)):(dr=t,t=X)):(dr=t,t=X)):(dr=t,t=X),t}function H(){var e,r;return e=dr,t.substr(dr,5)===Ae?(r=Ae,dr+=5):(r=D,0===_r&&n(ge)),r!==D&&(Ar=e,r=be()),e=r,e===D&&(e=dr,t.substr(dr,6)===we?(r=we,dr+=6):(r=D,0===_r&&n(ye)),r!==D&&(Ar=e,r=_e()),e=r,e===D&&(e=dr,t.substr(dr,4)===Ce?(r=Ce,dr+=4):(r=D,0===_r&&n(Ie)),r!==D&&(Ar=e,r=Ee()),e=r,e===D&&(e=dr,t.substr(dr,7)===Te?(r=Te,dr+=7):(r=D,0===_r&&n(Ve)),r!==D&&(Ar=e,r=me()),e=r,e===D&&(e=dr,t.substr(dr,6)===Oe?(r=Oe,dr+=6):(r=D,0===_r&&n(He)),r!==D&&(Ar=e,r=Se()),e=r,e===D&&(e=dr,t.substr(dr,7)===xe?(r=xe,dr+=7):(r=D,0===_r&&n(ke)),r!==D&&(Ar=e,r=Re()),e=r,e===D&&(e=dr,t.substr(dr,8)===Fe?(r=Fe,dr+=8):(r=D,0===_r&&n(Ne)),r!==D&&(Ar=e,r=Le()),e=r,e===D&&(e=dr,t.substr(dr,8)===qe?(r=qe,dr+=8):(r=D,0===_r&&n(Ze)),r!==D&&(Ar=e,r=De()),e=r))))))),e}function S(){var e,r,i;return e=dr,47===t.charCodeAt(dr)?(r=ze,dr++):(r=D,0===_r&&n(Ge)),r!==D?(i=N(),i!==D?(Ar=e,r=Xe(i),e=r):(dr=e,e=X)):(dr=e,e=X),e===D&&(e=dr,t.substr(dr,2)===Pe?(r=Pe,dr+=2):(r=D,0===_r&&n(We)),r!==D?(i=N(),i!==D?(Ar=e,r=Xe(i),e=r):(dr=e,e=X)):(dr=e,e=X),e===D&&(e=dr,t.substr(dr,2)===Qe?(r=Qe,dr+=2):(r=D,0===_r&&n(Ue)),r!==D?(i=N(),i!==D?(Ar=e,r=Be(i),e=r):(dr=e,e=X)):(dr=e,e=X),e===D&&(e=dr,42===t.charCodeAt(dr)?(r=$e,dr++):(r=D,0===_r&&n(je)),r!==D?(i=N(),i!==D?(Ar=e,r=Ye(i),e=r):(dr=e,e=X)):(dr=e,e=X),e===D&&(e=dr,t.substr(dr,2)===Me?(r=Me,dr+=2):(r=D,0===_r&&n(Je)),r!==D?(i=N(),i!==D?(Ar=e,r=Ye(i),e=r):(dr=e,e=X)):(dr=e,e=X),e===D&&(e=dr,t.substr(dr,2)===Ke?(r=Ke,dr+=2):(r=D,0===_r&&n(tr)),r!==D?(i=N(),i!==D?(Ar=e,r=er(i),e=r):(dr=e,e=X)):(dr=e,e=X)))))),e}function x(){var e,r,i;return e=dr,45===t.charCodeAt(dr)?(r=Ht,dr++):(r=D,0===_r&&n(St)),r!==D?(i=N(),i!==D?(Ar=e,r=er(i),e=r):(dr=e,e=X)):(dr=e,e=X),e===D&&(e=dr,43===t.charCodeAt(dr)?(r=ce,dr++):(r=D,0===_r&&n(le)),r!==D?(i=N(),i!==D?(Ar=e,r=Ye(i),e=r):(dr=e,e=X)):(dr=e,e=X)),e}function k(){var e,r,i,a,s;if(e=dr,r=dr,i=[],rr.test(t.charAt(dr))?(a=t.charAt(dr),dr++):(a=D,0===_r&&n(ir)),a!==D)for(;a!==D;)i.push(a),rr.test(t.charAt(dr))?(a=t.charAt(dr),dr++):(a=D,0===_r&&n(ir));else i=X;if(i!==D&&(i=t.substring(r,dr)),r=i,r!==D){for(i=dr,a=[],nr.test(t.charAt(dr))?(s=t.charAt(dr),dr++):(s=D,0===_r&&n(ar));s!==D;)a.push(s),nr.test(t.charAt(dr))?(s=t.charAt(dr),dr++):(s=D,0===_r&&n(ar));a!==D&&(a=t.substring(i,dr)),i=a,i!==D?(a=F(),a!==D?(Ar=e,r=sr(r,i,a),e=r):(dr=e,e=X)):(dr=e,e=X)}else dr=e,e=X;if(e===D){if(e=dr,r=dr,i=[],rr.test(t.charAt(dr))?(a=t.charAt(dr),dr++):(a=D,0===_r&&n(ir)),a!==D)for(;a!==D;)i.push(a),rr.test(t.charAt(dr))?(a=t.charAt(dr),dr++):(a=D,0===_r&&n(ir));else i=X;if(i!==D&&(i=t.substring(r,dr)),r=i,r!==D){for(i=dr,a=[],nr.test(t.charAt(dr))?(s=t.charAt(dr),dr++):(s=D,0===_r&&n(ar));s!==D;)a.push(s),nr.test(t.charAt(dr))?(s=t.charAt(dr),dr++):(s=D,0===_r&&n(ar));a!==D&&(a=t.substring(i,dr)),i=a,i!==D?(Ar=e,r=or(r,i),e=r):(dr=e,e=X)}else dr=e,e=X}return e}function R(){var e,r,i,a,s;if(e=dr,r=dr,i=[],rr.test(t.charAt(dr))?(a=t.charAt(dr),dr++):(a=D,0===_r&&n(ir)),a!==D)for(;a!==D;)i.push(a),rr.test(t.charAt(dr))?(a=t.charAt(dr),dr++):(a=D,0===_r&&n(ir));else i=X;if(i!==D&&(i=t.substring(r,dr)),r=i,r!==D){for(i=dr,a=[],nr.test(t.charAt(dr))?(s=t.charAt(dr),dr++):(s=D,0===_r&&n(ar));s!==D;)a.push(s),nr.test(t.charAt(dr))?(s=t.charAt(dr),dr++):(s=D,0===_r&&n(ar));a!==D&&(a=t.substring(i,dr)),i=a,i!==D?(Ar=e,r=or(r,i),e=r):(dr=e,e=X)}else dr=e,e=X;return e}function F(){var e,r,i,a;if(e=dr,t.substr(dr,2)===ur?(r=ur,dr+=2):(r=D,0===_r&&n(cr)),r!==D){if(i=[],ne.test(t.charAt(dr))?(a=t.charAt(dr),dr++):(a=D,0===_r&&n(ae)),a!==D)for(;a!==D;)i.push(a),ne.test(t.charAt(dr))?(a=t.charAt(dr),dr++):(a=D,0===_r&&n(ae));else i=X;i!==D?(Ar=e,r=lr(i),e=r):(dr=e,e=X)}else dr=e,e=X;return e}function N(){var e,r,i,a,s;if(e=dr,r=[],ne.test(t.charAt(dr))?(i=t.charAt(dr),dr++):(i=D,0===_r&&n(ae)),i!==D)for(;i!==D;)r.push(i),ne.test(t.charAt(dr))?(i=t.charAt(dr),dr++):(i=D,0===_r&&n(ae));else r=X;if(r!==D)if(46===t.charCodeAt(dr)?(i=hr,dr++):(i=D,0===_r&&n(pr)),i!==D){if(a=[],ne.test(t.charAt(dr))?(s=t.charAt(dr),dr++):(s=D,0===_r&&n(ae)),s!==D)for(;s!==D;)a.push(s),ne.test(t.charAt(dr))?(s=t.charAt(dr),dr++):(s=D,0===_r&&n(ae));else a=X;a!==D?(Ar=e,r=fr(r,a),e=r):(dr=e,e=X)}else dr=e,e=X;else dr=e,e=X;if(e===D){if(e=dr,r=[],ne.test(t.charAt(dr))?(i=t.charAt(dr),dr++):(i=D,0===_r&&n(ae)),i!==D)for(;i!==D;)r.push(i),ne.test(t.charAt(dr))?(i=t.charAt(dr),dr++):(i=D,0===_r&&n(ae));else r=X;r!==D&&(Ar=e,r=vr(r)),e=r}return e}function L(t){for(var e=1;e<arguments.length;e++)for(var r in arguments[e])t[r]=arguments[e][r];return t}var q,Z=arguments.length>1?arguments[1]:{},D={},z={visualFormatStringExt:s},G=s,X=D,P="C:",W={type:"literal",value:"C:",description:'"C:"'},Q=null,U=function(t,e,r,i){return{type:"attribute",view:t.view,attributes:[e].concat(r)}},B=function(t,e){return{attr:t,predicates:e}},$=":",j={type:"literal",value:":",description:'":"'},Y=function(t,e,r,i,n,a){return{type:"vfl",orientation:t?t[0]:"horizontal",cascade:(e||[]).concat(r,[].concat.apply([],i),n||[])}},M="HV",J={type:"literal",value:"HV",description:'"HV"'},K=function(){return"horzvert"},tt="H",et={type:"literal",value:"H",description:'"H"'},rt=function(){return"horizontal"},it="V",nt={type:"literal",value:"V",description:'"V"'},at=function(){return"vertical"},st="Z",ot={type:"literal",value:"Z",description:'"Z"'},ut=function(){return"zIndex"},ct=" ",lt={type:"literal",value:" ",description:'" "'},ht="//",pt={type:"literal",value:"//",description:'"//"'},ft={type:"any",description:"any character"},vt="|",dt={type:"literal",value:"|",description:'"|"'},At=function(){return{view:null}},gt="[",bt={type:"literal",value:"[",description:'"["'},wt=",",yt={type:"literal",value:",",description:'","'},_t="]",Ct={type:"literal", value:"]",description:'"]"'},It=function(t,e){return e.length?[t].concat([].concat.apply([],e)):t},Et=function(t,e,r){return L(L(t,e?{constraints:e}:{}),r?{cascade:r}:{})},Tt=function(t,e){return[].concat([].concat.apply([],t),[e])},Vt="->",mt={type:"literal",value:"->",description:'"->"'},Ot=function(){return[{relation:"none"}]},Ht="-",St={type:"literal",value:"-",description:'"-"'},xt=function(t){return t},kt=function(){return[{relation:"equ",constant:"default"}]},Rt="~",Ft={type:"literal",value:"~",description:'"~"'},Nt=function(){return[{relation:"equ",equalSpacing:!0}]},Lt="",qt=function(){return[{relation:"equ",constant:0}]},Zt=function(t){return[{relation:"equ",multiplier:t.multiplier}]},Dt=function(t){return[{relation:"equ",constant:t}]},zt="(",Gt={type:"literal",value:"(",description:'"("'},Xt=")",Pt={type:"literal",value:")",description:'")"'},Wt=function(t,e){return[t].concat(e.map(function(t){return t[1]}))},Qt="@",Ut={type:"literal",value:"@",description:'"@"'},Bt=function(t,e,r){return L({relation:"equ"},t||{},e,r?r[1]:{})},$t=function(t,e,r){return L({relation:"equ",equalSpacing:!0},t||{},e,r?r[1]:{})},jt="==",Yt={type:"literal",value:"==",description:'"=="'},Mt=function(){return{relation:"equ"}},Jt="<=",Kt={type:"literal",value:"<=",description:'"<="'},te=function(){return{relation:"leq"}},ee=">=",re={type:"literal",value:">=",description:'">="'},ie=function(){return{relation:"geq"}},ne=/^[0-9]/,ae={type:"class",value:"[0-9]",description:"[0-9]"},se=function(t){return{priority:parseInt(t.join(""),10)}},oe=function(t){return{constant:t}},ue=function(t){return{constant:-t}},ce="+",le={type:"literal",value:"+",description:'"+"'},he="%",pe={type:"literal",value:"%",description:'"%"'},fe=function(t){return{view:null,multiplier:t/100}},ve=function(t){return{view:null,multiplier:t/-100}},de=function(t,e,r,i){return{view:t.view,attribute:e?e:void 0,multiplier:r?r:1,constant:i?i:void 0}},Ae=".left",ge={type:"literal",value:".left",description:'".left"'},be=function(){return"left"},we=".right",ye={type:"literal",value:".right",description:'".right"'},_e=function(){return"right"},Ce=".top",Ie={type:"literal",value:".top",description:'".top"'},Ee=function(){return"top"},Te=".bottom",Ve={type:"literal",value:".bottom",description:'".bottom"'},me=function(){return"bottom"},Oe=".width",He={type:"literal",value:".width",description:'".width"'},Se=function(){return"width"},xe=".height",ke={type:"literal",value:".height",description:'".height"'},Re=function(){return"height"},Fe=".centerX",Ne={type:"literal",value:".centerX",description:'".centerX"'},Le=function(){return"centerX"},qe=".centerY",Ze={type:"literal",value:".centerY",description:'".centerY"'},De=function(){return"centerY"},ze="/",Ge={type:"literal",value:"/",description:'"/"'},Xe=function(t){return 1/t},Pe="/+",We={type:"literal",value:"/+",description:'"/+"'},Qe="/-",Ue={type:"literal",value:"/-",description:'"/-"'},Be=function(t){return-1/t},$e="*",je={type:"literal",value:"*",description:'"*"'},Ye=function(t){return t},Me="*+",Je={type:"literal",value:"*+",description:'"*+"'},Ke="*-",tr={type:"literal",value:"*-",description:'"*-"'},er=function(t){return-t},rr=/^[a-zA-Z_]/,ir={type:"class",value:"[a-zA-Z_]",description:"[a-zA-Z_]"},nr=/^[a-zA-Z0-9_]/,ar={type:"class",value:"[a-zA-Z0-9_]",description:"[a-zA-Z0-9_]"},sr=function(t,e,i){return{view:t+e,range:i,$parserOffset:r()}},or=function(t,e){return{view:t+e,$parserOffset:r()}},ur="..",cr={type:"literal",value:"..",description:'".."'},lr=function(t){return parseInt(t)},hr=".",pr={type:"literal",value:".",description:'"."'},fr=function(t,e){return parseFloat(t.concat(".").concat(e).join(""),10)},vr=function(t){return parseInt(t.join(""),10)},dr=0,Ar=0,gr=0,br={line:1,column:1,seenCR:!1},wr=0,yr=[],_r=0;if("startRule"in Z){if(!(Z.startRule in z))throw new Error("Can't start parsing from rule \""+Z.startRule+'".');G=z[Z.startRule]}if(q=G(),q!==D&&dr===t.length)return q;throw q!==D&&dr<t.length&&n({type:"end",description:"end of input"}),a(null,yr,wr)}return t(e,Error),{SyntaxError:e,parse:r}}(),Orientation={HORIZONTAL:1,VERTICAL:2,ZINDEX:4},metaInfoCategories=["viewport","spacing","colors","shapes","widths","heights"],VisualFormat=function(){function t(){_classCallCheck(this,t)}return _createClass(t,null,[{key:"parseLine",value:function(t,e){if(0===t.length||e&&e.extended&&0===t.indexOf("//"))return[];var r=e&&e.extended?parserExt.parse(t):parser.parse(t);if(e&&"raw"===e.outFormat)return[r];var i={constraints:[],lineIndex:(e?e.lineIndex:void 0)||1,subViews:(e?e.subViews:void 0)||{}};if("attribute"===r.type)for(var n=0;n<r.attributes.length;n++)for(var a=r.attributes[n],s=0;s<a.predicates.length;s++){var o=a.predicates[s];i.constraints.push({view1:r.view,attr1:a.attr,relation:o.relation,view2:o.view,attr2:o.attribute||a.attr,multiplier:o.multiplier,constant:o.constant,priority:o.priority})}else switch(r.orientation){case"horizontal":i.orientation=Orientation.HORIZONTAL,i.horizontal=!0,_processCascade(i,r.cascade,null);break;case"vertical":i.orientation=Orientation.VERTICAL,_processCascade(i,r.cascade,null);break;case"horzvert":i.orientation=Orientation.HORIZONTAL,i.horizontal=!0,_processCascade(i,r.cascade,null),i={constraints:i.constraints,lineIndex:i.lineIndex,subViews:i.subViews,orientation:Orientation.VERTICAL},_processCascade(i,r.cascade,null);break;case"zIndex":i.orientation=Orientation.ZINDEX,_processCascade(i,r.cascade,null)}return i.constraints}},{key:"parse",value:function(t,e){var r=e&&e.lineSeparator?e.lineSeparator:"\n";if(!Array.isArray(t)&&t.indexOf(r)<0)try{return this.parseLine(t,e)}catch(e){throw e.source=t,e}t=Array.isArray(t)?t:[t];var i=void 0,n=[],a=0,s=void 0,o={lineIndex:a,extended:e&&e.extended,strict:!e||void 0===e.strict||e.strict,outFormat:e?e.outFormat:void 0,subViews:{}};try{for(var u=0;u<t.length;u++){i=t[u].split(r);for(var c=0;c<i.length;c++)s=i[c],a++,o.lineIndex=a,o.strict||(s=s.trim()),(o.strict||s.length)&&(n=n.concat(this.parseLine(s,o)))}}catch(t){throw t.source=s,t.line=a,t}return n}},{key:"parseMetaInfo",value:function(t,e){var r=e&&e.lineSeparator?e.lineSeparator:"\n",i=e?e.prefix:void 0;t=Array.isArray(t)?t:[t];for(var n,a={},s=0;s<t.length;s++)for(var o=t[s].split(r),u=0;u<o.length;u++)for(var c=o[u],l=0;l<metaInfoCategories.length;l++)for(var h=0;h<(i?2:1);h++){var p=metaInfoCategories[l],f=(0===h?"":i)+p;if(0===c.indexOf("//"+f+" "))for(var v=c.substring(3+f.length).split(" "),d=0;d<v.length;d++){a[p]=a[p]||{};for(var A=v[d].split(":"),g=_getRange(A[0],!0),b=0;b<g.length;b++)a[p][g[b]]=A.length>1?A[1]:""}else 0===c.indexOf("//"+f+":")&&(a[p]=c.substring(3+f.length))}if(a.viewport){var w=a.viewport,y=w["aspect-ratio"];y&&(y=y.split("/"),w["aspect-ratio"]=parseInt(y[0])/parseInt(y[1])),void 0!==w.height&&(w.height="intrinsic"===w.height||parseInt(w.height)),void 0!==w.width&&(w.width="intrinsic"===w.width||parseInt(w.width)),void 0!==w["max-height"]&&(w["max-height"]=parseInt(w["max-height"])),void 0!==w["max-width"]&&(w["max-width"]=parseInt(w["max-width"])),void 0!==w["min-height"]&&(w["min-height"]=parseInt(w["min-height"])),void 0!==w["min-width"]&&(w["min-width"]=parseInt(w["min-width"]))}if(a.widths)for(n in a.widths){var _="intrinsic"===a.widths[n]||parseInt(a.widths[n]);a.widths[n]=_,(void 0===_||isNaN(_))&&delete a.widths[n]}if(a.heights)for(n in a.heights){var C="intrinsic"===a.heights[n]||parseInt(a.heights[n]);a.heights[n]=C,(void 0===C||isNaN(C))&&delete a.heights[n]}if(a.spacing){var I=JSON.parse(a.spacing);if(a.spacing=I,Array.isArray(I)){for(var E=0,T=I.length;E<T;E++)if(isNaN(I[E])){delete a.spacing;break}}else(void 0===I||isNaN(I))&&delete a.spacing}return a}}]),t}(),SubView=function(){function t(e){_classCallCheck(this,t),this._name=e.name,this._type=e.type,this._solver=e.solver,this._attr={},e.name||(this._attr[Attribute.LEFT]=new c.Variable,this._solver.addConstraint(new c.StayConstraint(this._attr[Attribute.LEFT],c.Strength.required)),this._attr[Attribute.TOP]=new c.Variable,this._solver.addConstraint(new c.StayConstraint(this._attr[Attribute.TOP],c.Strength.required)),this._attr[Attribute.ZINDEX]=new c.Variable,this._solver.addConstraint(new c.StayConstraint(this._attr[Attribute.ZINDEX],c.Strength.required)))}return _createClass(t,[{key:"toJSON",value:function(){return{name:this.name,left:this.left,top:this.top,width:this.width,height:this.height}}},{key:"toString",value:function(){JSON.stringify(this.toJSON(),void 0,2)}},{key:"getValue",value:function(t){return this._attr[t]?this._attr[t].value():void 0}},{key:"_getAttr",value:function(t){if(this._attr[t])return this._attr[t];switch(this._attr[t]=new c.Variable,t){case Attribute.RIGHT:this._getAttr(Attribute.LEFT),this._getAttr(Attribute.WIDTH),this._solver.addConstraint(new c.Equation(this._attr[t],c.plus(this._attr[Attribute.LEFT],this._attr[Attribute.WIDTH])));break;case Attribute.BOTTOM:this._getAttr(Attribute.TOP),this._getAttr(Attribute.HEIGHT),this._solver.addConstraint(new c.Equation(this._attr[t],c.plus(this._attr[Attribute.TOP],this._attr[Attribute.HEIGHT])));break;case Attribute.CENTERX:this._getAttr(Attribute.LEFT),this._getAttr(Attribute.WIDTH),this._solver.addConstraint(new c.Equation(this._attr[t],c.plus(this._attr[Attribute.LEFT],c.divide(this._attr[Attribute.WIDTH],2))));break;case Attribute.CENTERY:this._getAttr(Attribute.TOP),this._getAttr(Attribute.HEIGHT),this._solver.addConstraint(new c.Equation(this._attr[t],c.plus(this._attr[Attribute.TOP],c.divide(this._attr[Attribute.HEIGHT],2))))}return this._attr[t]}},{key:"_getAttrValue",value:function(t){return this._getAttr(t).value}},{key:"name",get:function(){return this._name}},{key:"left",get:function(){return this._getAttrValue(Attribute.LEFT)}},{key:"right",get:function(){return this._getAttrValue(Attribute.RIGHT)}},{key:"width",get:function(){return this._getAttrValue(Attribute.WIDTH)}},{key:"height",get:function(){return this._getAttrValue(Attribute.HEIGHT)}},{key:"intrinsicWidth",get:function(){return this._intrinsicWidth},set:function(t){if(void 0!==t&&t!==this._intrinsicWidth){var e=this._getAttr(Attribute.WIDTH);void 0===this._intrinsicWidth&&this._solver.addEditVar(e,new c.Strength("required",this._name?998:999,1e3,1e3)),this._intrinsicWidth=t,this._solver.suggestValue(e,t),this._solver.resolve()}}},{key:"intrinsicHeight",get:function(){return this._intrinsicHeight},set:function(t){if(void 0!==t&&t!==this._intrinsicHeight){var e=this._getAttr(Attribute.HEIGHT);void 0===this._intrinsicHeight&&this._solver.addEditVar(e,new c.Strength("required",this._name?998:999,1e3,1e3)),this._intrinsicHeight=t,this._solver.suggestValue(e,t),this._solver.resolve()}}},{key:"top",get:function(){return this._getAttrValue(Attribute.TOP)}},{key:"bottom",get:function(){return this._getAttrValue(Attribute.BOTTOM)}},{key:"centerX",get:function(){return this._getAttrValue(Attribute.CENTERX)}},{key:"centerY",get:function(){return this._getAttrValue(Attribute.CENTERY)}},{key:"zIndex",get:function(){return this._getAttrValue(Attribute.ZINDEX)}},{key:"type",get:function(){return this._type}}]),t}(),defaultPriorityStrength=new c.Strength("defaultPriority",0,1e3,1e3),View=function(){function t(e){_classCallCheck(this,t),this._solver=new c.SimplexSolver,this._subViews={},this._parentSubView=new SubView({solver:this._solver}),this.setSpacing(e&&void 0!==e.spacing?e.spacing:8),e&&(void 0===e.width&&void 0===e.height||this.setSize(e.width,e.height),e.constraints&&this.addConstraints(e.constraints))}return _createClass(t,[{key:"setSize",value:function(t,e){return this._parentSubView.intrinsicWidth=t,this._parentSubView.intrinsicHeight=e,this}},{key:"setSpacing",value:function(t){switch(Array.isArray(t)?t.length:-1){case-1:t=[t,t,t,t,t,t,1];break;case 1:t=[t[0],t[0],t[0],t[0],t[0],t[0],1];break;case 2:t=[t[1],t[0],t[1],t[0],t[0],t[1],1];break;case 3:t=[t[1],t[0],t[1],t[0],t[0],t[1],t[2]];break;case 6:t=[t[0],t[1],t[2],t[3],t[4],t[5],1];break;case 7:break;default:throw"Invalid spacing syntax"}if(!_compareSpacing(this._spacing,t)&&(this._spacing=t,this._spacingVars)){for(var e=0;e<this._spacingVars.length;e++)this._spacingVars[e]&&this._solver.suggestValue(this._spacingVars[e],this._spacing[e]);this._solver.resolve()}return this}},{key:"addConstraint",value:function(t){return _addConstraint.call(this,t),this}},{key:"addConstraints",value:function(t){for(var e=0;e<t.length;e++)_addConstraint.call(this,t[e]);return this}},{key:"width",get:function(){return this._parentSubView.intrinsicWidth}},{key:"height",get:function(){return this._parentSubView.intrinsicHeight}},{key:"fittingWidth",get:function(){return this._parentSubView.width}},{key:"fittingHeight",get:function(){return this._parentSubView.height}},{key:"subViews",get:function(){return this._subViews}}]),t}(),AutoLayout={Attribute:Attribute,Relation:Relation,Priority:Priority,VisualFormat:VisualFormat,View:View,SubView:SubView};module.exports=AutoLayout; },{"cassowary/bin/c":2}],2:[function(require,module,exports){ (function(){!function(t){"use strict";try{(function(){}).bind(t)}catch(t){Object.defineProperty(Function.prototype,"bind",{value:function(t){var e=this;return function(){return e.apply(t,arguments)}},enumerable:!1,configurable:!0,writable:!0})}var e=void 0!==t.HTMLElement,n=function(t){for(var e=null;t&&t!=Object.prototype;){if(t.tagName){e=t.tagName;break}t=t.prototype}return e||"div"},i=1e-8,r={},s=function(t,e){if(t&&e){if("function"==typeof t[e])return t[e];var n=t.prototype;if(n&&"function"==typeof n[e])return n[e];if(n!==Object.prototype&&n!==Function.prototype)return"function"==typeof t.__super__?s(t.__super__,e):void 0}},a=t.c={debug:!1,trace:!1,verbose:!1,traceAdded:!1,GC:!1,GEQ:1,LEQ:2,inherit:function(i){var s=null,a=null;i.extends&&(a=i.extends,delete i.extends),i.initialize&&(s=i.initialize,delete i.initialize);var l=s||function(){};Object.defineProperty(l,"__super__",{value:a?a:Object,enumerable:!1,configurable:!0,writable:!1}),i._t&&(r[i._t]=l);var o=l.prototype=Object.create(a?a.prototype:Object.prototype);if(this.extend(o,i),e&&a&&a.prototype instanceof t.HTMLElement){var u=l,c=n(o),h=function(t){return t.__proto__=o,u.apply(t,arguments),o.created&&t.created(),o.decorate&&t.decorate(),t};this.extend(o,{upgrade:h}),l=function(){return h(t.document.createElement(c))},l.prototype=o,this.extend(l,{ctor:u})}return l},extend:function(t,e){return this.own(e,function(n){var i=Object.getOwnPropertyDescriptor(e,n);try{"function"==typeof i.get||"function"==typeof i.set?Object.defineProperty(t,n,i):"function"==typeof i.value||"_"===n.charAt(0)?(i.writable=!0,i.configurable=!0,i.enumerable=!1,Object.defineProperty(t,n,i)):t[n]=e[n]}catch(t){}}),t},own:function(e,n,i){return Object.getOwnPropertyNames(e).forEach(n,i||t),e},traceprint:function(t){a.verbose&&console.log(t)},fnenterprint:function(t){console.log("* "+t)},fnexitprint:function(t){console.log("- "+t)},assert:function(t,e){if(!t)throw new a.InternalError("Assertion failed: "+e)},plus:function(t,e){return t instanceof a.Expression||(t=new a.Expression(t)),e instanceof a.Expression||(e=new a.Expression(e)),t.plus(e)},minus:function(t,e){return t instanceof a.Expression||(t=new a.Expression(t)),e instanceof a.Expression||(e=new a.Expression(e)),t.minus(e)},times:function(t,e){return("number"==typeof t||t instanceof a.Variable)&&(t=new a.Expression(t)),("number"==typeof e||e instanceof a.Variable)&&(e=new a.Expression(e)),t.times(e)},divide:function(t,e){return("number"==typeof t||t instanceof a.Variable)&&(t=new a.Expression(t)),("number"==typeof e||e instanceof a.Variable)&&(e=new a.Expression(e)),t.divide(e)},approx:function(t,e){if(t===e)return!0;var n,r;return n=t instanceof a.Variable?t.value:t,r=e instanceof a.Variable?e.value:e,0==n?i>Math.abs(r):0==r?i>Math.abs(n):Math.abs(n-r)<Math.abs(n)*i},_inc:function(t){return function(){return t++}}(0),parseJSON:function(t){return JSON.parse(t,function(t,e){if("object"!=typeof e||"string"!=typeof e._t)return e;var n=e._t,i=r[n];if(n&&i){var a=s(i,"fromJSON");if(a)return a(e,i)}return e})}};"function"==typeof require&&"undefined"!=typeof module&&"undefined"==typeof load&&(t.exports=a)}(this),function(t){"use strict";var e=function(t){var e=t.hashCode?t.hashCode:""+t;return e},n=function(t,e){Object.keys(t).forEach(function(n){e[n]=t[n]})},i={};t.HashTable=t.inherit({initialize:function(){this.size=0,this._store={},this._keyStrMap={},this._deleted=0},set:function(t,n){var i=e(t);this._store.hasOwnProperty(i)||this.size++,this._store[i]=n,this._keyStrMap[i]=t},get:function(t){if(!this.size)return null;t=e(t);var n=this._stor