=0;F--){var S=E.definition[F],G={idx:v,def:S.definition.concat(Re(f)),ruleStack:d,occurrenceStack:g};s.push(G),s.push(c)}else if(E instanceof Te)s.push({idx:v,def:E.definition.concat(Re(f)),ruleStack:d,occurrenceStack:g});else if(E instanceof xt)s.push(Vl(E,v,d,g));else throw Error("non exhaustive match")}}return o}function Vl(t,e,n,r){var i=Se(n);i.push(t.name);var a=Se(r);return a.push(1),{idx:e,def:t.definition,ruleStack:i,occurrenceStack:a}}var Rs=globalThis&&globalThis.__extends||function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,i){r.__proto__=i}||function(r,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(r[a]=i[a])},t(e,n)};return function(e,n){t(e,n);function r(){this.constructor=e}e.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}(),j;(function(t){t[t.OPTION=0]="OPTION",t[t.REPETITION=1]="REPETITION",t[t.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",t[t.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",t[t.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",t[t.ALTERNATION=5]="ALTERNATION"})(j||(j={}));function Gl(t){if(t instanceof ye)return j.OPTION;if(t instanceof ce)return j.REPETITION;if(t instanceof qe)return j.REPETITION_MANDATORY;if(t instanceof Ye)return j.REPETITION_MANDATORY_WITH_SEPARATOR;if(t instanceof $e)return j.REPETITION_WITH_SEPARATOR;if(t instanceof He)return j.ALTERNATION;throw Error("non exhaustive match")}function $l(t,e,n,r,i,a){var c=Zr(t,e,n),h=ys(c)?Bn:Kn;return a(c,r,h,i)}function Hl(t,e,n,r,i,a){var c=Jr(t,e,i,n),h=ys(c)?Bn:Kn;return a(c[0],h,r)}function Wl(t,e,n,r){var i=t.length,a=We(t,function(p){return We(p,function(u){return u.length===1})});if(e)return function(p){for(var u=x(p,function(m){return m.GATE}),o=0;o1}),c=x(xe(a),function(h){var p=Je(h),u=e.buildDuplicateFoundError(t,h),o=it(p),s={message:u,type:Le.DUPLICATE_PRODUCTIONS,ruleName:t.name,dslName:o,occurrence:p.idx},l=Ts(p);return l&&(s.parameter=l),s});return c}function Zl(t){return it(t)+"_#_"+t.idx+"_#_"+Ts(t)}function Ts(t){return t instanceof ne?t.terminalType.name:t instanceof Ue?t.nonTerminalName:""}var Jl=function(t){jr(e,t);function e(){var n=t!==null&&t.apply(this,arguments)||this;return n.allProductions=[],n}return e.prototype.visitNonTerminal=function(n){this.allProductions.push(n)},e.prototype.visitOption=function(n){this.allProductions.push(n)},e.prototype.visitRepetitionWithSeparator=function(n){this.allProductions.push(n)},e.prototype.visitRepetitionMandatory=function(n){this.allProductions.push(n)},e.prototype.visitRepetitionMandatoryWithSeparator=function(n){this.allProductions.push(n)},e.prototype.visitRepetition=function(n){this.allProductions.push(n)},e.prototype.visitAlternation=function(n){this.allProductions.push(n)},e.prototype.visitTerminal=function(n){this.allProductions.push(n)},e}(St);function jl(t,e,n,r){var i=[],a=Ne(e,function(h,p){return p.name===t.name?h+1:h},0);if(a>1){var c=r.buildDuplicateRuleNameError({topLevelRule:t,grammarName:n});i.push({message:c,type:Le.DUPLICATE_RULE_NAME,ruleName:t.name})}return i}function eu(t,e,n){var r=[],i;return fe(e,t)||(i="Invalid rule override, rule: ->"+t+"<- cannot be overridden in the grammar: ->"+n+"<-as it is not defined in any of the super grammars ",r.push({message:i,type:Le.INVALID_RULE_OVERRIDE,ruleName:t})),r}function ws(t,e,n,r){r===void 0&&(r=[]);var i=[],a=Mn(e.definition);if(ee(a))return[];var c=t.name,h=fe(a,t);h&&i.push({message:n.buildLeftRecursionError({topLevelRule:t,leftRecursionPath:r}),type:Le.LEFT_RECURSION,ruleName:c});var p=qn(a,r.concat([t])),u=x(p,function(o){var s=Se(r);return s.push(o),ws(t,o,n,s)});return i.concat(Ge(u))}function Mn(t){var e=[];if(ee(t))return e;var n=Je(t);if(n instanceof Ue)e.push(n.referencedRule);else if(n instanceof Te||n instanceof ye||n instanceof qe||n instanceof Ye||n instanceof $e||n instanceof ce)e=e.concat(Mn(n.definition));else if(n instanceof He)e=Ge(x(n.definition,function(c){return Mn(c.definition)}));else if(!(n instanceof ne))throw Error("non exhaustive match");var r=Fn(n),i=t.length>1;if(r&&i){var a=Re(t);return e.concat(Mn(a))}else return e}var ei=function(t){jr(e,t);function e(){var n=t!==null&&t.apply(this,arguments)||this;return n.alternations=[],n}return e.prototype.visitAlternation=function(n){this.alternations.push(n)},e}(St);function tu(t,e){var n=new ei;t.accept(n);var r=n.alternations,i=Ne(r,function(a,c){var h=nn(c.definition),p=x(h,function(u,o){var s=ms([u],[],null,1);return ee(s)?{message:e.buildEmptyAlternationError({topLevelRule:t,alternation:c,emptyChoiceIdx:o}),type:Le.NONE_LAST_EMPTY_ALT,ruleName:t.name,occurrence:c.idx,alternative:o+1}:null});return a.concat(sn(p))},[]);return i}function nu(t,e,n){var r=new ei;t.accept(r);var i=r.alternations;i=Wt(i,function(c){return c.ignoreAmbiguities===!0});var a=Ne(i,function(c,h){var p=h.idx,u=h.maxLookahead||e,o=Zr(p,t,u,h),s=su(o,h,t,n),l=au(o,h,t,n);return c.concat(s,l)},[]);return a}var ru=function(t){jr(e,t);function e(){var n=t!==null&&t.apply(this,arguments)||this;return n.allProductions=[],n}return e.prototype.visitRepetitionWithSeparator=function(n){this.allProductions.push(n)},e.prototype.visitRepetitionMandatory=function(n){this.allProductions.push(n)},e.prototype.visitRepetitionMandatoryWithSeparator=function(n){this.allProductions.push(n)},e.prototype.visitRepetition=function(n){this.allProductions.push(n)},e}(St);function iu(t,e){var n=new ei;t.accept(n);var r=n.alternations,i=Ne(r,function(a,c){return c.definition.length>255&&a.push({message:e.buildTooManyAlternativesError({topLevelRule:t,alternation:c}),type:Le.TOO_MANY_ALTS,ruleName:t.name,occurrence:c.idx}),a},[]);return i}function ou(t,e,n){var r=[];return V(t,function(i){var a=new ru;i.accept(a);var c=a.allProductions;V(c,function(h){var p=Gl(h),u=h.maxLookahead||e,o=h.idx,s=Jr(o,i,p,u),l=s[0];if(ee(Ge(l))){var f=n.buildEmptyRepetitionError({topLevelRule:i,repetition:h});r.push({message:f,type:Le.NO_NON_EMPTY_LOOKAHEAD,ruleName:i.name})}})}),r}function su(t,e,n,r){var i=[],a=Ne(t,function(h,p,u){return e.definition[u].ignoreAmbiguities===!0||V(p,function(o){var s=[u];V(t,function(l,f){u!==f&&Br(l,o)&&e.definition[f].ignoreAmbiguities!==!0&&s.push(f)}),s.length>1&&!Br(i,o)&&(i.push(o),h.push({alts:s,path:o}))}),h},[]),c=x(a,function(h){var p=x(h.alts,function(o){return o+1}),u=r.buildAlternationAmbiguityError({topLevelRule:n,alternation:e,ambiguityIndices:p,prefixPath:h.path});return{message:u,type:Le.AMBIGUOUS_ALTS,ruleName:n.name,occurrence:e.idx,alternatives:[h.alts]}});return c}function au(t,e,n,r){var i=[],a=Ne(t,function(c,h,p){var u=x(h,function(o){return{idx:p,path:o}});return c.concat(u)},[]);return V(a,function(c){var h=e.definition[c.idx];if(h.ignoreAmbiguities!==!0){var p=c.idx,u=c.path,o=Uc(a,function(l){return e.definition[l.idx].ignoreAmbiguities!==!0&&l.idx:
- `+(""+a.join(`
-
-`).replace(/\n/g,`
- `)))}}};return n.prototype=r,n.prototype.constructor=n,n._RULE_NAMES=e,n}function Ru(t,e,n){var r=function(){};Ds(r,t+"BaseSemanticsWithDefaults");var i=Object.create(n.prototype);return V(e,function(a){i[a]=Eu}),r.prototype=i,r.prototype.constructor=r,r}var bn;(function(t){t[t.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",t[t.MISSING_METHOD=1]="MISSING_METHOD"})(bn||(bn={}));function Nu(t,e){var n=Au(t,e),r=Tu(t,e);return n.concat(r)}function Au(t,e){var n=x(e,function(r){if(!Ct(t[r]))return{msg:"Missing visitor method: <"+r+"> on "+jn(t.constructor)+" CST Visitor.",type:bn.MISSING_METHOD,methodName:r}});return sn(n)}var yu=["constructor","visit","validateVisitor"];function Tu(t,e){var n=[];for(var r in t)Ct(t[r])&&!fe(yu,r)&&!fe(e,r)&&n.push({msg:"Redundant visitor method: <"+r+"> on "+jn(t.constructor)+` CST Visitor
-There is no Grammar Rule corresponding to this method's name.
-`,type:bn.REDUNDANT_METHOD,methodName:r});return n}var wu=function(){function t(){}return t.prototype.initTreeBuilder=function(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=$(e,"nodeLocationTracking")?e.nodeLocationTracking:vt.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=de,this.cstFinallyStateUpdate=de,this.cstPostTerminal=de,this.cstPostNonTerminal=de,this.cstPostRule=de;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=Wi,this.setNodeLocationFromNode=Wi,this.cstPostRule=de,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=de,this.setNodeLocationFromNode=de,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=Hi,this.setNodeLocationFromNode=Hi,this.cstPostRule=de,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=de,this.setNodeLocationFromNode=de,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=de,this.setNodeLocationFromNode=de,this.cstPostRule=de,this.setInitialNodeLocation=de;else throw Error('Invalid config option: "'+e.nodeLocationTracking+'"')},t.prototype.setInitialNodeLocationOnlyOffsetRecovery=function(e){e.location={startOffset:NaN,endOffset:NaN}},t.prototype.setInitialNodeLocationOnlyOffsetRegular=function(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}},t.prototype.setInitialNodeLocationFullRecovery=function(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}},t.prototype.setInitialNodeLocationFullRegular=function(e){var n=this.LA(1);e.location={startOffset:n.startOffset,startLine:n.startLine,startColumn:n.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}},t.prototype.cstInvocationStateUpdate=function(e,n){var r={name:e,children:{}};this.setInitialNodeLocation(r),this.CST_STACK.push(r)},t.prototype.cstFinallyStateUpdate=function(){this.CST_STACK.pop()},t.prototype.cstPostRuleFull=function(e){var n=this.LA(0),r=e.location;r.startOffset<=n.startOffset?(r.endOffset=n.endOffset,r.endLine=n.endLine,r.endColumn=n.endColumn):(r.startOffset=NaN,r.startLine=NaN,r.startColumn=NaN)},t.prototype.cstPostRuleOnlyOffset=function(e){var n=this.LA(0),r=e.location;r.startOffset<=n.startOffset?r.endOffset=n.endOffset:r.startOffset=NaN},t.prototype.cstPostTerminal=function(e,n){var r=this.CST_STACK[this.CST_STACK.length-1];du(r,n,e),this.setNodeLocationFromToken(r.location,n)},t.prototype.cstPostNonTerminal=function(e,n){var r=this.CST_STACK[this.CST_STACK.length-1];vu(r,n,e),this.setNodeLocationFromNode(r.location,e.location)},t.prototype.getBaseCstVisitorConstructor=function(){if(pt(this.baseCstVisitorConstructor)){var e=mu(this.className,Ze(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor},t.prototype.getBaseCstVisitorConstructorWithDefaults=function(){if(pt(this.baseCstVisitorWithDefaultsConstructor)){var e=Ru(this.className,Ze(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor},t.prototype.getLastExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-1]},t.prototype.getPreviousExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-2]},t.prototype.getLastExplicitRuleOccurrenceIndex=function(){var e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]},t}(),Cu=function(){function t(){}return t.prototype.initLexerAdapter=function(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1},Object.defineProperty(t.prototype,"input",{get:function(){return this.tokVector},set:function(e){if(this.selfAnalysisDone!==!0)throw Error("Missing invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length},enumerable:!1,configurable:!0}),t.prototype.SKIP_TOKEN=function(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):Vn},t.prototype.LA=function(e){var n=this.currIdx+e;return n<0||this.tokVectorLength<=n?Vn:this.tokVector[n]},t.prototype.consumeToken=function(){this.currIdx++},t.prototype.exportLexerState=function(){return this.currIdx},t.prototype.importLexerState=function(e){this.currIdx=e},t.prototype.resetLexerState=function(){this.currIdx=-1},t.prototype.moveToTerminatedState=function(){this.currIdx=this.tokVector.length-1},t.prototype.getLexerPosition=function(){return this.exportLexerState()},t}(),Iu=function(){function t(){}return t.prototype.ACTION=function(e){return e.call(this)},t.prototype.consume=function(e,n,r){return this.consumeInternal(n,e,r)},t.prototype.subrule=function(e,n,r){return this.subruleInternal(n,e,r)},t.prototype.option=function(e,n){return this.optionInternal(n,e)},t.prototype.or=function(e,n){return this.orInternal(n,e)},t.prototype.many=function(e,n){return this.manyInternal(e,n)},t.prototype.atLeastOne=function(e,n){return this.atLeastOneInternal(e,n)},t.prototype.CONSUME=function(e,n){return this.consumeInternal(e,0,n)},t.prototype.CONSUME1=function(e,n){return this.consumeInternal(e,1,n)},t.prototype.CONSUME2=function(e,n){return this.consumeInternal(e,2,n)},t.prototype.CONSUME3=function(e,n){return this.consumeInternal(e,3,n)},t.prototype.CONSUME4=function(e,n){return this.consumeInternal(e,4,n)},t.prototype.CONSUME5=function(e,n){return this.consumeInternal(e,5,n)},t.prototype.CONSUME6=function(e,n){return this.consumeInternal(e,6,n)},t.prototype.CONSUME7=function(e,n){return this.consumeInternal(e,7,n)},t.prototype.CONSUME8=function(e,n){return this.consumeInternal(e,8,n)},t.prototype.CONSUME9=function(e,n){return this.consumeInternal(e,9,n)},t.prototype.SUBRULE=function(e,n){return this.subruleInternal(e,0,n)},t.prototype.SUBRULE1=function(e,n){return this.subruleInternal(e,1,n)},t.prototype.SUBRULE2=function(e,n){return this.subruleInternal(e,2,n)},t.prototype.SUBRULE3=function(e,n){return this.subruleInternal(e,3,n)},t.prototype.SUBRULE4=function(e,n){return this.subruleInternal(e,4,n)},t.prototype.SUBRULE5=function(e,n){return this.subruleInternal(e,5,n)},t.prototype.SUBRULE6=function(e,n){return this.subruleInternal(e,6,n)},t.prototype.SUBRULE7=function(e,n){return this.subruleInternal(e,7,n)},t.prototype.SUBRULE8=function(e,n){return this.subruleInternal(e,8,n)},t.prototype.SUBRULE9=function(e,n){return this.subruleInternal(e,9,n)},t.prototype.OPTION=function(e){return this.optionInternal(e,0)},t.prototype.OPTION1=function(e){return this.optionInternal(e,1)},t.prototype.OPTION2=function(e){return this.optionInternal(e,2)},t.prototype.OPTION3=function(e){return this.optionInternal(e,3)},t.prototype.OPTION4=function(e){return this.optionInternal(e,4)},t.prototype.OPTION5=function(e){return this.optionInternal(e,5)},t.prototype.OPTION6=function(e){return this.optionInternal(e,6)},t.prototype.OPTION7=function(e){return this.optionInternal(e,7)},t.prototype.OPTION8=function(e){return this.optionInternal(e,8)},t.prototype.OPTION9=function(e){return this.optionInternal(e,9)},t.prototype.OR=function(e){return this.orInternal(e,0)},t.prototype.OR1=function(e){return this.orInternal(e,1)},t.prototype.OR2=function(e){return this.orInternal(e,2)},t.prototype.OR3=function(e){return this.orInternal(e,3)},t.prototype.OR4=function(e){return this.orInternal(e,4)},t.prototype.OR5=function(e){return this.orInternal(e,5)},t.prototype.OR6=function(e){return this.orInternal(e,6)},t.prototype.OR7=function(e){return this.orInternal(e,7)},t.prototype.OR8=function(e){return this.orInternal(e,8)},t.prototype.OR9=function(e){return this.orInternal(e,9)},t.prototype.MANY=function(e){this.manyInternal(0,e)},t.prototype.MANY1=function(e){this.manyInternal(1,e)},t.prototype.MANY2=function(e){this.manyInternal(2,e)},t.prototype.MANY3=function(e){this.manyInternal(3,e)},t.prototype.MANY4=function(e){this.manyInternal(4,e)},t.prototype.MANY5=function(e){this.manyInternal(5,e)},t.prototype.MANY6=function(e){this.manyInternal(6,e)},t.prototype.MANY7=function(e){this.manyInternal(7,e)},t.prototype.MANY8=function(e){this.manyInternal(8,e)},t.prototype.MANY9=function(e){this.manyInternal(9,e)},t.prototype.MANY_SEP=function(e){this.manySepFirstInternal(0,e)},t.prototype.MANY_SEP1=function(e){this.manySepFirstInternal(1,e)},t.prototype.MANY_SEP2=function(e){this.manySepFirstInternal(2,e)},t.prototype.MANY_SEP3=function(e){this.manySepFirstInternal(3,e)},t.prototype.MANY_SEP4=function(e){this.manySepFirstInternal(4,e)},t.prototype.MANY_SEP5=function(e){this.manySepFirstInternal(5,e)},t.prototype.MANY_SEP6=function(e){this.manySepFirstInternal(6,e)},t.prototype.MANY_SEP7=function(e){this.manySepFirstInternal(7,e)},t.prototype.MANY_SEP8=function(e){this.manySepFirstInternal(8,e)},t.prototype.MANY_SEP9=function(e){this.manySepFirstInternal(9,e)},t.prototype.AT_LEAST_ONE=function(e){this.atLeastOneInternal(0,e)},t.prototype.AT_LEAST_ONE1=function(e){return this.atLeastOneInternal(1,e)},t.prototype.AT_LEAST_ONE2=function(e){this.atLeastOneInternal(2,e)},t.prototype.AT_LEAST_ONE3=function(e){this.atLeastOneInternal(3,e)},t.prototype.AT_LEAST_ONE4=function(e){this.atLeastOneInternal(4,e)},t.prototype.AT_LEAST_ONE5=function(e){this.atLeastOneInternal(5,e)},t.prototype.AT_LEAST_ONE6=function(e){this.atLeastOneInternal(6,e)},t.prototype.AT_LEAST_ONE7=function(e){this.atLeastOneInternal(7,e)},t.prototype.AT_LEAST_ONE8=function(e){this.atLeastOneInternal(8,e)},t.prototype.AT_LEAST_ONE9=function(e){this.atLeastOneInternal(9,e)},t.prototype.AT_LEAST_ONE_SEP=function(e){this.atLeastOneSepFirstInternal(0,e)},t.prototype.AT_LEAST_ONE_SEP1=function(e){this.atLeastOneSepFirstInternal(1,e)},t.prototype.AT_LEAST_ONE_SEP2=function(e){this.atLeastOneSepFirstInternal(2,e)},t.prototype.AT_LEAST_ONE_SEP3=function(e){this.atLeastOneSepFirstInternal(3,e)},t.prototype.AT_LEAST_ONE_SEP4=function(e){this.atLeastOneSepFirstInternal(4,e)},t.prototype.AT_LEAST_ONE_SEP5=function(e){this.atLeastOneSepFirstInternal(5,e)},t.prototype.AT_LEAST_ONE_SEP6=function(e){this.atLeastOneSepFirstInternal(6,e)},t.prototype.AT_LEAST_ONE_SEP7=function(e){this.atLeastOneSepFirstInternal(7,e)},t.prototype.AT_LEAST_ONE_SEP8=function(e){this.atLeastOneSepFirstInternal(8,e)},t.prototype.AT_LEAST_ONE_SEP9=function(e){this.atLeastOneSepFirstInternal(9,e)},t.prototype.RULE=function(e,n,r){if(r===void 0&&(r=Gn),fe(this.definedRulesNames,e)){var i=Qn.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),a={message:i,type:Le.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(a)}this.definedRulesNames.push(e);var c=this.defineRule(e,n,r);return this[e]=c,c},t.prototype.OVERRIDE_RULE=function(e,n,r){r===void 0&&(r=Gn);var i=[];i=i.concat(eu(e,this.definedRulesNames,this.className)),this.definitionErrors.push.apply(this.definitionErrors,i);var a=this.defineRule(e,n,r);return this[e]=a,a},t.prototype.BACKTRACK=function(e,n){return function(){this.isBackTrackingStack.push(1);var r=this.saveRecogState();try{return e.apply(this,n),!0}catch(i){if(rn(i))return!1;throw i}finally{this.reloadRecogState(r),this.isBackTrackingStack.pop()}}},t.prototype.getGAstProductions=function(){return this.gastProductionsCache},t.prototype.getSerializedGastProductions=function(){return ds(xe(this.gastProductionsCache))},t}(),Ou=function(){function t(){}return t.prototype.initRecognizerEngine=function(e,n){if(this.className=gu(this),this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=Bn,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},$(n,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a property.
- See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0
- For Further details.`);if(ot(e)){if(ee(e))throw Error(`A Token Vocabulary cannot be empty.
- Note that the first argument for the parser constructor
- is no longer a Token vector (since v4.0).`);if(typeof e[0].startOffset=="number")throw Error(`The Parser constructor no longer accepts a token vector as the first argument.
- See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0
- For Further details.`)}if(ot(e))this.tokensMap=Ne(e,function(c,h){return c[h.name]=h,c},{});else if($(e,"modes")&&We(Ge(xe(e.modes)),El)){var r=Ge(xe(e.modes)),i=qr(r);this.tokensMap=Ne(i,function(c,h){return c[h.name]=h,c},{})}else if(Yr(e))this.tokensMap=on(e);else throw new Error(" argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=wt;var a=We(xe(e),function(c){return ee(c.categoryMatches)});this.tokenMatcher=a?Bn:Kn,cn(xe(this.tokensMap))},t.prototype.defineRule=function(e,n,r){if(this.selfAnalysisDone)throw Error("Grammar rule <"+e+`> may not be defined after the 'performSelfAnalysis' method has been called'
-Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);var i=$(r,"resyncEnabled")?r.resyncEnabled:Gn.resyncEnabled,a=$(r,"recoveryValueFunc")?r.recoveryValueFunc:Gn.recoveryValueFunc,c=this.ruleShortNameIdx<n},t.prototype.orInternal=function(e,n){var r=this.getKeyForAutomaticLookahead(Fs,n),i=ot(e)?e:e.DEF,a=this.getLaFuncFromCache(r),c=a.call(this,i);if(c!==void 0){var h=i[c];return h.ALT.call(this)}this.raiseNoAltException(n,e.ERR_MSG)},t.prototype.ruleFinallyStateUpdate=function(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){var e=this.LA(1),n=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new ks(n,e))}},t.prototype.subruleInternal=function(e,n,r){var i;try{var a=r!==void 0?r.ARGS:void 0;return i=e.call(this,n,a),this.cstPostNonTerminal(i,r!==void 0&&r.LABEL!==void 0?r.LABEL:e.ruleName),i}catch(c){this.subruleInternalError(c,r,e.ruleName)}},t.prototype.subruleInternalError=function(e,n,r){throw rn(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,n!==void 0&&n.LABEL!==void 0?n.LABEL:r),delete e.partialCstResult),e},t.prototype.consumeInternal=function(e,n,r){var i;try{var a=this.LA(1);this.tokenMatcher(a,e)===!0?(this.consumeToken(),i=a):this.consumeInternalError(e,a,r)}catch(c){i=this.consumeInternalRecovery(e,n,c)}return this.cstPostTerminal(r!==void 0&&r.LABEL!==void 0?r.LABEL:e.name,i),i},t.prototype.consumeInternalError=function(e,n,r){var i,a=this.LA(0);throw r!==void 0&&r.ERR_MSG?i=r.ERR_MSG:i=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:n,previous:a,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new ti(i,n,a))},t.prototype.consumeInternalRecovery=function(e,n,r){if(this.recoveryEnabled&&r.name==="MismatchedTokenException"&&!this.isBackTracking()){var i=this.getFollowsForInRuleRecovery(e,n);try{return this.tryInRuleRecovery(e,i)}catch(a){throw a.name===Ss?r:a}}else throw r},t.prototype.saveRecogState=function(){var e=this.errors,n=Se(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:n,CST_STACK:this.CST_STACK}},t.prototype.reloadRecogState=function(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK},t.prototype.ruleInvocationStateUpdate=function(e,n,r){this.RULE_OCCURRENCE_STACK.push(r),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(n,e)},t.prototype.isBackTracking=function(){return this.isBackTrackingStack.length!==0},t.prototype.getCurrRuleFullName=function(){var e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]},t.prototype.shortRuleNameToFullName=function(e){return this.shortRuleNameToFull[e]},t.prototype.isAtEndOfInput=function(){return this.tokenMatcher(this.LA(1),wt)},t.prototype.reset=function(){this.resetLexerState(),this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]},t}(),Mu=function(){function t(){}return t.prototype.initErrorHandler=function(e){this._errors=[],this.errorMessageProvider=$(e,"errorMessageProvider")?e.errorMessageProvider:vt.errorMessageProvider},t.prototype.SAVE_ERROR=function(e){if(rn(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:Se(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")},Object.defineProperty(t.prototype,"errors",{get:function(){return Se(this._errors)},set:function(e){this._errors=e},enumerable:!1,configurable:!0}),t.prototype.raiseEarlyExitException=function(e,n,r){for(var i=this.getCurrRuleFullName(),a=this.getGAstProductions()[i],c=Jr(e,a,n,this.maxLookahead),h=c[0],p=[],u=1;u<=this.maxLookahead;u++)p.push(this.LA(u));var o=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:h,actual:p,previous:this.LA(0),customUserDescription:r,ruleName:i});throw this.SAVE_ERROR(new xs(o,this.LA(1),this.LA(0)))},t.prototype.raiseNoAltException=function(e,n){for(var r=this.getCurrRuleFullName(),i=this.getGAstProductions()[r],a=Zr(e,i,this.maxLookahead),c=[],h=1;h<=this.maxLookahead;h++)c.push(this.LA(h));var p=this.LA(0),u=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:a,actual:c,previous:p,customUserDescription:n,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new Ps(u,this.LA(1),p))},t}(),Uu=function(){function t(){}return t.prototype.initContentAssist=function(){},t.prototype.computeContentAssist=function(e,n){var r=this.gastProductionsCache[e];if(pt(r))throw Error("Rule ->"+e+"<- does not exist in this grammar.");return ms([r],n,this.tokenMatcher,this.maxLookahead)},t.prototype.getNextPossibleTokenTypes=function(e){var n=Je(e.ruleStack),r=this.getGAstProductions(),i=r[n],a=new Fl(i,e).startWalking();return a},t}(),er={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(er);var Yi=!0,Ki=Math.pow(2,It)-1,Vs=Xr({name:"RECORDING_PHASE_TOKEN",pattern:Qe.NA});cn([Vs]);var Gs=zn(Vs,`This IToken indicates the Parser is in Recording Phase
- See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(Gs);var Lu={name:`This CSTNode indicates the Parser is in Recording Phase
- See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}},_u=function(){function t(){}return t.prototype.initGastRecorder=function(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1},t.prototype.enableRecording=function(){var e=this;this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",function(){for(var n=function(i){var a=i>0?i:"";e["CONSUME"+a]=function(c,h){return this.consumeInternalRecord(c,i,h)},e["SUBRULE"+a]=function(c,h){return this.subruleInternalRecord(c,i,h)},e["OPTION"+a]=function(c){return this.optionInternalRecord(c,i)},e["OR"+a]=function(c){return this.orInternalRecord(c,i)},e["MANY"+a]=function(c){this.manyInternalRecord(i,c)},e["MANY_SEP"+a]=function(c){this.manySepFirstInternalRecord(i,c)},e["AT_LEAST_ONE"+a]=function(c){this.atLeastOneInternalRecord(i,c)},e["AT_LEAST_ONE_SEP"+a]=function(c){this.atLeastOneSepFirstInternalRecord(i,c)}},r=0;r<10;r++)n(r);e.consume=function(i,a,c){return this.consumeInternalRecord(a,i,c)},e.subrule=function(i,a,c){return this.subruleInternalRecord(a,i,c)},e.option=function(i,a){return this.optionInternalRecord(a,i)},e.or=function(i,a){return this.orInternalRecord(a,i)},e.many=function(i,a){this.manyInternalRecord(i,a)},e.atLeastOne=function(i,a){this.atLeastOneInternalRecord(i,a)},e.ACTION=e.ACTION_RECORD,e.BACKTRACK=e.BACKTRACK_RECORD,e.LA=e.LA_RECORD})},t.prototype.disableRecording=function(){var e=this;this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",function(){for(var n=0;n<10;n++){var r=n>0?n:"";delete e["CONSUME"+r],delete e["SUBRULE"+r],delete e["OPTION"+r],delete e["OR"+r],delete e["MANY"+r],delete e["MANY_SEP"+r],delete e["AT_LEAST_ONE"+r],delete e["AT_LEAST_ONE_SEP"+r]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})},t.prototype.ACTION_RECORD=function(e){},t.prototype.BACKTRACK_RECORD=function(e,n){return function(){return!0}},t.prototype.LA_RECORD=function(e){return Vn},t.prototype.topLevelRuleRecord=function(e,n){try{var r=new xt({definition:[],name:e});return r.name=e,this.recordingProdStack.push(r),n.call(this),this.recordingProdStack.pop(),r}catch(i){if(i.KNOWN_RECORDER_ERROR!==!0)try{i.message=i.message+`
- This error was thrown during the "grammar recording phase" For more info see:
- https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw i}throw i}},t.prototype.optionInternalRecord=function(e,n){return zt.call(this,ye,e,n)},t.prototype.atLeastOneInternalRecord=function(e,n){zt.call(this,qe,n,e)},t.prototype.atLeastOneSepFirstInternalRecord=function(e,n){zt.call(this,Ye,n,e,Yi)},t.prototype.manyInternalRecord=function(e,n){zt.call(this,ce,n,e)},t.prototype.manySepFirstInternalRecord=function(e,n){zt.call(this,$e,n,e,Yi)},t.prototype.orInternalRecord=function(e,n){return Pu.call(this,e,n)},t.prototype.subruleInternalRecord=function(e,n,r){if(Dn(n),!e||$(e,"ruleName")===!1){var i=new Error(" argument is invalid"+(" expecting a Parser method reference but got: <"+JSON.stringify(e)+">")+(`
- inside top level rule: <`+this.recordingProdStack[0].name+">"));throw i.KNOWN_RECORDER_ERROR=!0,i}var a=xn(this.recordingProdStack),c=e.ruleName,h=new Ue({idx:n,nonTerminalName:c,referencedRule:void 0});return a.definition.push(h),this.outputCst?Lu:er},t.prototype.consumeInternalRecord=function(e,n,r){if(Dn(n),!fs(e)){var i=new Error(" argument is invalid"+(" expecting a TokenType reference but got: <"+JSON.stringify(e)+">")+(`
- inside top level rule: <`+this.recordingProdStack[0].name+">"));throw i.KNOWN_RECORDER_ERROR=!0,i}var a=xn(this.recordingProdStack),c=new ne({idx:n,terminalType:e});return a.definition.push(c),Gs},t}();function zt(t,e,n,r){r===void 0&&(r=!1),Dn(n);var i=xn(this.recordingProdStack),a=Ct(e)?e:e.DEF,c=new t({definition:[],idx:n});return r&&(c.separator=e.SEP),$(e,"MAX_LOOKAHEAD")&&(c.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(c),a.call(this),i.definition.push(c),this.recordingProdStack.pop(),er}function Pu(t,e){var n=this;Dn(e);var r=xn(this.recordingProdStack),i=ot(t)===!1,a=i===!1?t:t.DEF,c=new He({definition:[],idx:e,ignoreAmbiguities:i&&t.IGNORE_AMBIGUITIES===!0});$(t,"MAX_LOOKAHEAD")&&(c.maxLookahead=t.MAX_LOOKAHEAD);var h=Jo(a,function(p){return Ct(p.GATE)});return c.hasPredicates=h,r.definition.push(c),V(a,function(p){var u=new Te({definition:[]});c.definition.push(u),$(p,"IGNORE_AMBIGUITIES")?u.ignoreAmbiguities=p.IGNORE_AMBIGUITIES:$(p,"GATE")&&(u.ignoreAmbiguities=!0),n.recordingProdStack.push(u),p.ALT.call(n),n.recordingProdStack.pop()}),er}function zi(t){return t===0?"":""+t}function Dn(t){if(t<0||t>Ki){var e=new Error("Invalid DSL Method idx value: <"+t+`>
- `+("Idx value must be a none negative value smaller than "+(Ki+1)));throw e.KNOWN_RECORDER_ERROR=!0,e}}var ku=function(){function t(){}return t.prototype.initPerformanceTracer=function(e){if($(e,"traceInitPerf")){var n=e.traceInitPerf,r=typeof n=="number";this.traceInitMaxIdent=r?n:1/0,this.traceInitPerf=r?n>0:n}else this.traceInitMaxIdent=0,this.traceInitPerf=vt.traceInitPerf;this.traceInitIndent=-1},t.prototype.TRACE_INIT=function(e,n){if(this.traceInitPerf===!0){this.traceInitIndent++;var r=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <"+e+">");var i=ts(n),a=i.time,c=i.value,h=a>10?console.warn:console.log;return this.traceInitIndent time: "+a+"ms"),this.traceInitIndent--,c}else return n()},t}(),$s=globalThis&&globalThis.__extends||function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,i){r.__proto__=i}||function(r,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(r[a]=i[a])},t(e,n)};return function(e,n){t(e,n);function r(){this.constructor=e}e.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}(),Vn=zn(wt,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(Vn);var vt=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:Qr,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1}),Gn=Object.freeze({recoveryValueFunc:function(){},resyncEnabled:!0}),Le;(function(t){t[t.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",t[t.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",t[t.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",t[t.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",t[t.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",t[t.LEFT_RECURSION=5]="LEFT_RECURSION",t[t.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",t[t.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",t[t.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",t[t.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",t[t.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",t[t.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",t[t.TOO_MANY_ALTS=12]="TOO_MANY_ALTS"})(Le||(Le={}));function xu(t){return t===void 0&&(t=void 0),function(){return t}}var ni=function(){function t(e,n){this.definitionErrors=[],this.selfAnalysisDone=!1;var r=this;if(r.initErrorHandler(n),r.initLexerAdapter(),r.initLooksAhead(n),r.initRecognizerEngine(e,n),r.initRecoverable(n),r.initTreeBuilder(n),r.initContentAssist(),r.initGastRecorder(n),r.initPerformanceTracer(n),$(n,"ignoredIssues"))throw new Error(`The IParserConfig property has been deprecated.
- Please use the flag on the relevant DSL method instead.
- See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES
- For further details.`);this.skipValidations=$(n,"skipValidations")?n.skipValidations:vt.skipValidations}return t.performSelfAnalysis=function(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")},t.prototype.performSelfAnalysis=function(){var e=this;this.TRACE_INIT("performSelfAnalysis",function(){var n;e.selfAnalysisDone=!0;var r=e.className;e.TRACE_INIT("toFastProps",function(){es(e)}),e.TRACE_INIT("Grammar Recording",function(){try{e.enableRecording(),V(e.definedRulesNames,function(a){var c=e[a],h=c.originalGrammarAction,p=void 0;e.TRACE_INIT(a+" Rule",function(){p=e.topLevelRuleRecord(a,h)}),e.gastProductionsCache[a]=p})}finally{e.disableRecording()}});var i=[];if(e.TRACE_INIT("Grammar Resolving",function(){i=Cs({rules:xe(e.gastProductionsCache)}),e.definitionErrors.push.apply(e.definitionErrors,i)}),e.TRACE_INIT("Grammar Validations",function(){if(ee(i)&&e.skipValidations===!1){var a=Is({rules:xe(e.gastProductionsCache),maxLookahead:e.maxLookahead,tokenTypes:xe(e.tokensMap),errMsgProvider:Qn,grammarName:r});e.definitionErrors.push.apply(e.definitionErrors,a)}}),ee(e.definitionErrors)&&(e.recoveryEnabled&&e.TRACE_INIT("computeAllProdsFollows",function(){var a=_l(xe(e.gastProductionsCache));e.resyncFollows=a}),e.TRACE_INIT("ComputeLookaheadFunctions",function(){e.preComputeLookaheadFunctions(xe(e.gastProductionsCache))})),!t.DEFER_DEFINITION_ERRORS_HANDLING&&!ee(e.definitionErrors))throw n=x(e.definitionErrors,function(a){return a.message}),new Error(`Parser Definition Errors detected:
- `+n.join(`
--------------------------------
-`))})},t.DEFER_DEFINITION_ERRORS_HANDLING=!1,t}();xc(ni,[uu,pu,wu,Cu,Ou,Iu,Mu,Uu,_u,ku]);var Su=function(t){$s(e,t);function e(n,r){r===void 0&&(r=vt);var i=this,a=on(r);return a.outputCst=!0,i=t.call(this,n,a)||this,i}return e}(ni),Bu=function(t){$s(e,t);function e(n,r){r===void 0&&(r=vt);var i=this,a=on(r);return a.outputCst=!1,i=t.call(this,n,a)||this,i}return e}(ni);function Fu(t,e){var n=e===void 0?{}:e,r=n.resourceBase,i=r===void 0?"https://unpkg.com/chevrotain@"+_r+"/diagrams/":r,a=n.css,c=a===void 0?"https://unpkg.com/chevrotain@"+_r+"/diagrams/diagrams.css":a,h=`
-
-
-
-
-
-`,p=`
-
-`,u=`
-\\n\\n\\n\\n\";\n var diagramsDiv = \"\\n \\n\";\n var serializedGrammar = \"\\n\\n\";\n var initLogic = \"\\n\\n\";\n return (header + cssHtml + scripts + diagramsDiv + serializedGrammar + initLogic);\n}\n//# sourceMappingURL=render_public.js.map","import { forEach, map } from \"../utils/utils\";\nimport { RepetitionMandatory, Option, RepetitionMandatoryWithSeparator, RepetitionWithSeparator, Terminal, NonTerminal, Alternation, Alternative, Repetition } from \"../parse/grammar/gast/gast_public\";\n/**\n * Missing features\n * 1. Rule arguments\n * 2. Gates\n * 3. embedded actions\n */\nvar NL = \"\\n\";\nexport function genUmdModule(options) {\n return \"\\n(function (root, factory) {\\n if (typeof define === 'function' && define.amd) {\\n // AMD. Register as an anonymous module.\\n define(['chevrotain'], factory);\\n } else if (typeof module === 'object' && module.exports) {\\n // Node. Does not work with strict CommonJS, but\\n // only CommonJS-like environments that support module.exports,\\n // like Node.\\n module.exports = factory(require('chevrotain'));\\n } else {\\n // Browser globals (root is window)\\n root.returnExports = factory(root.b);\\n }\\n}(typeof self !== 'undefined' ? self : this, function (chevrotain) {\\n\\n\" + genClass(options) + \"\\n \\nreturn {\\n \" + options.name + \": \" + options.name + \" \\n}\\n}));\\n\";\n}\nexport function genWrapperFunction(options) {\n return \" \\n\" + genClass(options) + \"\\nreturn new \" + options.name + \"(tokenVocabulary, config) \\n\";\n}\nexport function genClass(options) {\n // TODO: how to pass the token vocabulary? Constructor? other?\n var result = \"\\nfunction \" + options.name + \"(tokenVocabulary, config) {\\n // invoke super constructor\\n // No support for embedded actions currently, so we can 'hardcode'\\n // The use of CstParser.\\n chevrotain.CstParser.call(this, tokenVocabulary, config)\\n\\n const $ = this\\n\\n \" + genAllRules(options.rules) + \"\\n\\n // very important to call this after all the rules have been defined.\\n // otherwise the parser may not work correctly as it will lack information\\n // derived during the self analysis phase.\\n this.performSelfAnalysis(this)\\n}\\n\\n// inheritance as implemented in javascript in the previous decade... :(\\n\" + options.name + \".prototype = Object.create(chevrotain.CstParser.prototype)\\n\" + options.name + \".prototype.constructor = \" + options.name + \" \\n \";\n return result;\n}\nexport function genAllRules(rules) {\n var rulesText = map(rules, function (currRule) {\n return genRule(currRule, 1);\n });\n return rulesText.join(\"\\n\");\n}\nexport function genRule(prod, n) {\n var result = indent(n, \"$.RULE(\\\"\" + prod.name + \"\\\", function() {\") + NL;\n result += genDefinition(prod.definition, n + 1);\n result += indent(n + 1, \"})\") + NL;\n return result;\n}\nexport function genTerminal(prod, n) {\n var name = prod.terminalType.name;\n // TODO: potential performance optimization, avoid tokenMap Dictionary access\n return indent(n, \"$.CONSUME\" + prod.idx + \"(this.tokensMap.\" + name + \")\" + NL);\n}\nexport function genNonTerminal(prod, n) {\n return indent(n, \"$.SUBRULE\" + prod.idx + \"($.\" + prod.nonTerminalName + \")\" + NL);\n}\nexport function genAlternation(prod, n) {\n var result = indent(n, \"$.OR\" + prod.idx + \"([\") + NL;\n var alts = map(prod.definition, function (altDef) { return genSingleAlt(altDef, n + 1); });\n result += alts.join(\",\" + NL);\n result += NL + indent(n, \"])\" + NL);\n return result;\n}\nexport function genSingleAlt(prod, n) {\n var result = indent(n, \"{\") + NL;\n result += indent(n + 1, \"ALT: function() {\") + NL;\n result += genDefinition(prod.definition, n + 1);\n result += indent(n + 1, \"}\") + NL;\n result += indent(n, \"}\");\n return result;\n}\nfunction genProd(prod, n) {\n /* istanbul ignore else */\n if (prod instanceof NonTerminal) {\n return genNonTerminal(prod, n);\n }\n else if (prod instanceof Option) {\n return genDSLRule(\"OPTION\", prod, n);\n }\n else if (prod instanceof RepetitionMandatory) {\n return genDSLRule(\"AT_LEAST_ONE\", prod, n);\n }\n else if (prod instanceof RepetitionMandatoryWithSeparator) {\n return genDSLRule(\"AT_LEAST_ONE_SEP\", prod, n);\n }\n else if (prod instanceof RepetitionWithSeparator) {\n return genDSLRule(\"MANY_SEP\", prod, n);\n }\n else if (prod instanceof Repetition) {\n return genDSLRule(\"MANY\", prod, n);\n }\n else if (prod instanceof Alternation) {\n return genAlternation(prod, n);\n }\n else if (prod instanceof Terminal) {\n return genTerminal(prod, n);\n }\n else if (prod instanceof Alternative) {\n return genDefinition(prod.definition, n);\n }\n else {\n throw Error(\"non exhaustive match\");\n }\n}\nfunction genDSLRule(dslName, prod, n) {\n var result = indent(n, \"$.\" + (dslName + prod.idx) + \"(\");\n if (prod.separator) {\n result += \"{\" + NL;\n result +=\n indent(n + 1, \"SEP: this.tokensMap.\" + prod.separator.name) + \",\" + NL;\n result += \"DEF: \" + genDefFunction(prod.definition, n + 2) + NL;\n result += indent(n, \"}\") + NL;\n }\n else {\n result += genDefFunction(prod.definition, n + 1);\n }\n result += indent(n, \")\") + NL;\n return result;\n}\nfunction genDefFunction(definition, n) {\n var def = \"function() {\" + NL;\n def += genDefinition(definition, n);\n def += indent(n, \"}\") + NL;\n return def;\n}\nfunction genDefinition(def, n) {\n var result = \"\";\n forEach(def, function (prod) {\n result += genProd(prod, n + 1);\n });\n return result;\n}\nfunction indent(howMuch, text) {\n var spaces = Array(howMuch * 4 + 1).join(\" \");\n return spaces + text;\n}\n//# sourceMappingURL=generate.js.map","import { genUmdModule, genWrapperFunction } from \"./generate\";\nexport function generateParserFactory(options) {\n var wrapperText = genWrapperFunction({\n name: options.name,\n rules: options.rules\n });\n var constructorWrapper = new Function(\"tokenVocabulary\", \"config\", \"chevrotain\", wrapperText);\n return function (config) {\n return constructorWrapper(options.tokenVocabulary, config, \n // TODO: check how the require is transpiled/webpacked\n require(\"../api\"));\n };\n}\nexport function generateParserModule(options) {\n return genUmdModule({ name: options.name, rules: options.rules });\n}\n//# sourceMappingURL=generate_public.js.map","/* istanbul ignore file - tricky to import some things from this module during testing */\n// semantic version\nexport { VERSION } from \"./version\";\nexport { CstParser, EmbeddedActionsParser, ParserDefinitionErrorType, EMPTY_ALT } from \"./parse/parser/parser\";\nexport { Lexer, LexerDefinitionErrorType } from \"./scan/lexer_public\";\n// Tokens utilities\nexport { createToken, createTokenInstance, EOF, tokenLabel, tokenMatcher, tokenName } from \"./scan/tokens_public\";\n// Other Utilities\nexport { defaultGrammarResolverErrorProvider, defaultGrammarValidatorErrorProvider, defaultParserErrorProvider } from \"./parse/errors_public\";\nexport { EarlyExitException, isRecognitionException, MismatchedTokenException, NotAllInputParsedException, NoViableAltException } from \"./parse/exceptions_public\";\nexport { defaultLexerErrorProvider } from \"./scan/lexer_errors_public\";\n// grammar reflection API\nexport { Alternation, Alternative, NonTerminal, Option, Repetition, RepetitionMandatory, RepetitionMandatoryWithSeparator, RepetitionWithSeparator, Rule, Terminal } from \"./parse/grammar/gast/gast_public\";\n// GAST Utilities\nexport { serializeGrammar, serializeProduction } from \"./parse/grammar/gast/gast_public\";\nexport { GAstVisitor } from \"./parse/grammar/gast/gast_visitor_public\";\nexport { assignOccurrenceIndices, resolveGrammar, validateGrammar } from \"./parse/grammar/gast/gast_resolver_public\";\n/* istanbul ignore next */\nexport function clearCache() {\n console.warn(\"The clearCache function was 'soft' removed from the Chevrotain API.\" +\n \"\\n\\t It performs no action other than printing this message.\" +\n \"\\n\\t Please avoid using it as it will be completely removed in the future\");\n}\nexport { createSyntaxDiagramsCode } from \"./diagrams/render_public\";\nexport { generateParserFactory, generateParserModule } from \"./generate/generate_public\";\nvar Parser = /** @class */ (function () {\n function Parser() {\n throw new Error(\"The Parser class has been deprecated, use CstParser or EmbeddedActionsParser instead.\\t\\n\" +\n \"See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_7-0-0\");\n }\n return Parser;\n}());\nexport { Parser };\n//# sourceMappingURL=api.js.map","const {createToken, Lexer} = require('chevrotain');\r\nconst FormulaError = require('../formulas/error')\r\n\r\n// the vocabulary will be exported and used in the Parser definition.\r\nconst tokenVocabulary = {};\r\n\r\nconst WhiteSpace = createToken({\r\n name: 'WhiteSpace',\r\n pattern: /\\s+/,\r\n group: Lexer.SKIPPED,\r\n});\r\n\r\nconst String = createToken({\r\n name: 'String',\r\n pattern: /\"(\"\"|[^\"])*\"/\r\n});\r\n\r\nconst SingleQuotedString = createToken({\r\n name: 'SingleQuotedString',\r\n pattern: /'(''|[^'])*'/\r\n});\r\n\r\nconst SheetQuoted = createToken({\r\n name: 'SheetQuoted',\r\n pattern: /'((?![\\\\\\/\\[\\]*?:]).)+?'!/\r\n});\r\n\r\nconst Function = createToken({\r\n name: 'Function',\r\n pattern: /[A-Za-z_]+[A-Za-z_0-9.]*\\(/\r\n});\r\n\r\nconst FormulaErrorT = createToken({\r\n name: 'FormulaErrorT',\r\n pattern: /#NULL!|#DIV\\/0!|#VALUE!|#NAME\\?|#NUM!|#N\\/A/\r\n});\r\n\r\nconst RefError = createToken({\r\n name: 'RefError',\r\n pattern: /#REF!/\r\n});\r\n\r\nconst Name = createToken({\r\n name: 'Name',\r\n pattern: /[a-zA-Z_][a-zA-Z0-9_.?]*/,\r\n // longer_alt: RangeColumn // e.g. A:AA\r\n});\r\n\r\nconst Sheet = createToken({\r\n name: 'Sheet',\r\n pattern: /[A-Za-z_.\\d\\u007F-\\uFFFF]+!/\r\n});\r\n\r\nconst Cell = createToken({\r\n name: 'Cell',\r\n pattern: /[$]?[A-Za-z]{1,3}[$]?[1-9][0-9]*/,\r\n longer_alt: Name\r\n});\r\n\r\nconst Number = createToken({\r\n name: 'Number',\r\n pattern: /[0-9]+[.]?[0-9]*([eE][+\\-][0-9]+)?/\r\n});\r\n\r\nconst Boolean = createToken({\r\n name: 'Boolean',\r\n pattern: /TRUE|FALSE/i\r\n});\r\n\r\nconst Column = createToken({\r\n name: 'Column',\r\n pattern: /[$]?[A-Za-z]{1,3}/,\r\n longer_alt: Name\r\n});\r\n\r\n\r\n/**\r\n * Symbols and operators\r\n */\r\nconst At = createToken({\r\n name: 'At',\r\n pattern: /@/\r\n});\r\n\r\nconst Comma = createToken({\r\n name: 'Comma',\r\n pattern: /,/\r\n});\r\n\r\nconst Colon = createToken({\r\n name: 'Colon',\r\n pattern: /:/\r\n});\r\n\r\nconst Semicolon = createToken({\r\n name: 'Semicolon',\r\n pattern: /;/\r\n});\r\n\r\nconst OpenParen = createToken({\r\n name: 'OpenParen',\r\n pattern: /\\(/\r\n});\r\n\r\nconst CloseParen = createToken({\r\n name: 'CloseParen',\r\n pattern: /\\)/\r\n});\r\n\r\nconst OpenSquareParen = createToken({\r\n name: 'OpenSquareParen',\r\n pattern: /\\[/\r\n});\r\n\r\nconst CloseSquareParen = createToken({\r\n name: 'CloseSquareParen',\r\n pattern: /]/\r\n});\r\n\r\nconst ExclamationMark = createToken({\r\n name: 'exclamationMark',\r\n pattern: /!/\r\n});\r\n\r\nconst OpenCurlyParen = createToken({\r\n name: 'OpenCurlyParen',\r\n pattern: /{/\r\n});\r\n\r\nconst CloseCurlyParen = createToken({\r\n name: 'CloseCurlyParen',\r\n pattern: /}/\r\n});\r\n\r\nconst QuoteS = createToken({\r\n name: 'QuoteS',\r\n pattern: /'/\r\n});\r\n\r\n\r\nconst MulOp = createToken({\r\n name: 'MulOp',\r\n pattern: /\\*/\r\n});\r\n\r\nconst PlusOp = createToken({\r\n name: 'PlusOp',\r\n pattern: /\\+/\r\n});\r\n\r\nconst DivOp = createToken({\r\n name: 'DivOp',\r\n pattern: /\\//\r\n});\r\n\r\nconst MinOp = createToken({\r\n name: 'MinOp',\r\n pattern: /-/\r\n});\r\n\r\nconst ConcatOp = createToken({\r\n name: 'ConcatOp',\r\n pattern: /&/\r\n});\r\n\r\nconst ExOp = createToken({\r\n name: 'ExOp',\r\n pattern: /\\^/\r\n});\r\n\r\nconst PercentOp = createToken({\r\n name: 'PercentOp',\r\n pattern: /%/\r\n});\r\n\r\nconst GtOp = createToken({\r\n name: 'GtOp',\r\n pattern: />/\r\n});\r\n\r\nconst EqOp = createToken({\r\n name: 'EqOp',\r\n pattern: /=/\r\n});\r\n\r\nconst LtOp = createToken({\r\n name: 'LtOp',\r\n pattern: /\r\n});\r\n\r\nconst NeqOp = createToken({\r\n name: 'NeqOp',\r\n pattern: /<>/\r\n});\r\n\r\nconst GteOp = createToken({\r\n name: 'GteOp',\r\n pattern: />=/\r\n});\r\n\r\nconst LteOp = createToken({\r\n name: 'LteOp',\r\n pattern: /<=/\r\n});\r\n\r\n// The order of tokens is important\r\nconst allTokens = [\r\n\r\n WhiteSpace,\r\n String,\r\n SheetQuoted,\r\n SingleQuotedString,\r\n Function,\r\n FormulaErrorT,\r\n RefError,\r\n Sheet,\r\n Cell,\r\n Boolean,\r\n Column,\r\n Name,\r\n Number,\r\n\r\n At,\r\n Comma,\r\n Colon,\r\n Semicolon,\r\n OpenParen,\r\n CloseParen,\r\n OpenSquareParen,\r\n CloseSquareParen,\r\n // ExclamationMark,\r\n OpenCurlyParen,\r\n CloseCurlyParen,\r\n QuoteS,\r\n MulOp,\r\n PlusOp,\r\n DivOp,\r\n MinOp,\r\n ConcatOp,\r\n ExOp,\r\n MulOp,\r\n PercentOp,\r\n NeqOp,\r\n GteOp,\r\n LteOp,\r\n GtOp,\r\n EqOp,\r\n LtOp,\r\n];\r\n\r\nconst SelectLexer = new Lexer(allTokens, {ensureOptimizations: true});\r\n\r\nallTokens.forEach(tokenType => {\r\n tokenVocabulary[tokenType.name] = tokenType\r\n});\r\n\r\nmodule.exports = {\r\n tokenVocabulary: tokenVocabulary,\r\n\r\n lex: function (inputText) {\r\n const lexingResult = SelectLexer.tokenize(inputText)\r\n\r\n if (lexingResult.errors.length > 0) {\r\n const error = lexingResult.errors[0];\r\n const line = error.line, column = error.column;\r\n let msg = '\\n' + inputText.split('\\n')[line - 1] + '\\n';\r\n msg += Array(column - 1).fill(' ').join('') + '^\\n';\r\n error.message = msg + `Error at position ${line}:${column}\\n` + error.message;\r\n error.errorLocation = {line, column};\r\n throw FormulaError.ERROR(error.message, error);\r\n }\r\n\r\n return lexingResult\r\n }\r\n};\r\n","const lexer = require('./lexing');\r\nconst {EmbeddedActionsParser} = require(\"chevrotain\");\r\nconst tokenVocabulary = lexer.tokenVocabulary;\r\nconst {\r\n String,\r\n SheetQuoted,\r\n ExcelRefFunction,\r\n ExcelConditionalRefFunction,\r\n Function,\r\n FormulaErrorT,\r\n RefError,\r\n Cell,\r\n Sheet,\r\n Name,\r\n Number,\r\n Boolean,\r\n Column,\r\n\r\n // At,\r\n Comma,\r\n Colon,\r\n Semicolon,\r\n OpenParen,\r\n CloseParen,\r\n // OpenSquareParen,\r\n // CloseSquareParen,\r\n // ExclamationMark,\r\n OpenCurlyParen,\r\n CloseCurlyParen,\r\n MulOp,\r\n PlusOp,\r\n DivOp,\r\n MinOp,\r\n ConcatOp,\r\n ExOp,\r\n PercentOp,\r\n NeqOp,\r\n GteOp,\r\n LteOp,\r\n GtOp,\r\n EqOp,\r\n LtOp\r\n} = lexer.tokenVocabulary;\r\n\r\nclass Parsing extends EmbeddedActionsParser {\r\n /**\r\n *\r\n * @param {FormulaParser|DepParser} context\r\n * @param {Utils} utils\r\n */\r\n constructor(context, utils) {\r\n super(tokenVocabulary, {\r\n outputCst: false,\r\n maxLookahead: 1,\r\n skipValidations: true,\r\n // traceInitPerf: true,\r\n });\r\n this.utils = utils;\r\n this.binaryOperatorsPrecedence = [\r\n ['^'],\r\n ['*', '/'],\r\n ['+', '-'],\r\n ['&'],\r\n ['<', '>', '=', '<>', '<=', '>='],\r\n ];\r\n const $ = this;\r\n\r\n // Adopted from https://github.com/spreadsheetlab/XLParser/blob/master/src/XLParser/ExcelFormulaGrammar.cs\r\n\r\n $.RULE('formulaWithBinaryOp', () => {\r\n const infixes = [];\r\n const values = [$.SUBRULE($.formulaWithPercentOp)];\r\n $.MANY(() => {\r\n // Caching Arrays of Alternatives\r\n // https://sap.github.io/chevrotain/docs/guide/performance.html#caching-arrays-of-alternatives\r\n infixes.push($.OR($.c1 ||\r\n (\r\n $.c1 = [\r\n {ALT: () => $.CONSUME(GtOp).image},\r\n {ALT: () => $.CONSUME(EqOp).image},\r\n {ALT: () => $.CONSUME(LtOp).image},\r\n {ALT: () => $.CONSUME(NeqOp).image},\r\n {ALT: () => $.CONSUME(GteOp).image},\r\n {ALT: () => $.CONSUME(LteOp).image},\r\n {ALT: () => $.CONSUME(ConcatOp).image},\r\n {ALT: () => $.CONSUME(PlusOp).image},\r\n {ALT: () => $.CONSUME(MinOp).image},\r\n {ALT: () => $.CONSUME(MulOp).image},\r\n {ALT: () => $.CONSUME(DivOp).image},\r\n {ALT: () => $.CONSUME(ExOp).image}\r\n ]\r\n )));\r\n values.push($.SUBRULE2($.formulaWithPercentOp));\r\n });\r\n $.ACTION(() => {\r\n // evaluate\r\n for (const ops of this.binaryOperatorsPrecedence) {\r\n for (let index = 0, length = infixes.length; index < length; index++) {\r\n const infix = infixes[index];\r\n if (!ops.includes(infix)) continue;\r\n infixes.splice(index, 1);\r\n values.splice(index, 2, this.utils.applyInfix(values[index], infix, values[index + 1]));\r\n index--;\r\n length--;\r\n }\r\n }\r\n });\r\n\r\n return values[0];\r\n });\r\n\r\n $.RULE('plusMinusOp', () => $.OR([\r\n {ALT: () => $.CONSUME(PlusOp).image},\r\n {ALT: () => $.CONSUME(MinOp).image}\r\n ]));\r\n\r\n $.RULE('formulaWithPercentOp', () => {\r\n let value = $.SUBRULE($.formulaWithUnaryOp);\r\n $.OPTION(() => {\r\n const postfix = $.CONSUME(PercentOp).image;\r\n value = $.ACTION(() => this.utils.applyPostfix(value, postfix));\r\n });\r\n return value;\r\n });\r\n\r\n $.RULE('formulaWithUnaryOp', () => {\r\n // support ++---3 => -3\r\n const prefixes = [];\r\n $.MANY(() => {\r\n const op = $.OR([\r\n {ALT: () => $.CONSUME(PlusOp).image},\r\n {ALT: () => $.CONSUME(MinOp).image}\r\n ]);\r\n prefixes.push(op);\r\n });\r\n const formula = $.SUBRULE($.formulaWithIntersect);\r\n if (prefixes.length > 0) return $.ACTION(() => this.utils.applyPrefix(prefixes, formula));\r\n return formula;\r\n });\r\n\r\n\r\n $.RULE('formulaWithIntersect', () => {\r\n // e.g. 'A1 A2 A3'\r\n let ref1 = $.SUBRULE($.formulaWithRange);\r\n const refs = [ref1];\r\n // console.log('check intersect')\r\n $.MANY({\r\n GATE: () => {\r\n // see https://github.com/SAP/chevrotain/blob/master/examples/grammars/css/css.js#L436-L441\r\n const prevToken = $.LA(0);\r\n const nextToken = $.LA(1);\r\n // This is the only place where the grammar is whitespace sensitive.\r\n return nextToken.startOffset > prevToken.endOffset + 1;\r\n },\r\n DEF: () => {\r\n refs.push($.SUBRULE3($.formulaWithRange));\r\n }\r\n });\r\n if (refs.length > 1) {\r\n return $.ACTION(() => $.ACTION(() => this.utils.applyIntersect(refs)))\r\n }\r\n return ref1;\r\n });\r\n\r\n $.RULE('formulaWithRange', () => {\r\n // e.g. 'A1:C3' or 'A1:A3:C4', can be any number of references, at lease 2\r\n const ref1 = $.SUBRULE($.formula);\r\n const refs = [ref1];\r\n $.MANY(() => {\r\n $.CONSUME(Colon);\r\n refs.push($.SUBRULE2($.formula));\r\n });\r\n if (refs.length > 1)\r\n return $.ACTION(() => $.ACTION(() => this.utils.applyRange(refs)));\r\n return ref1;\r\n });\r\n\r\n $.RULE('formula', () => $.OR9([\r\n {ALT: () => $.SUBRULE($.referenceWithoutInfix)},\r\n {ALT: () => $.SUBRULE($.paren)},\r\n {ALT: () => $.SUBRULE($.constant)},\r\n {ALT: () => $.SUBRULE($.functionCall)},\r\n {ALT: () => $.SUBRULE($.constantArray)},\r\n ]));\r\n\r\n $.RULE('paren', () => {\r\n // formula paren or union paren\r\n $.CONSUME(OpenParen);\r\n let result;\r\n const refs = [];\r\n refs.push($.SUBRULE($.formulaWithBinaryOp));\r\n $.MANY(() => {\r\n $.CONSUME(Comma);\r\n refs.push($.SUBRULE2($.formulaWithBinaryOp));\r\n });\r\n if (refs.length > 1)\r\n result = $.ACTION(() => this.utils.applyUnion(refs));\r\n else\r\n result = refs[0];\r\n\r\n $.CONSUME(CloseParen);\r\n return result;\r\n });\r\n\r\n $.RULE('constantArray', () => {\r\n // console.log('constantArray');\r\n const arr = [[]];\r\n let currentRow = 0;\r\n $.CONSUME(OpenCurlyParen);\r\n\r\n // array must contain at least one item\r\n arr[currentRow].push($.SUBRULE($.constantForArray));\r\n $.MANY(() => {\r\n const sep = $.OR([\r\n {ALT: () => $.CONSUME(Comma).image},\r\n {ALT: () => $.CONSUME(Semicolon).image}\r\n ]);\r\n const constant = $.SUBRULE2($.constantForArray);\r\n if (sep === ',') {\r\n arr[currentRow].push(constant)\r\n } else {\r\n currentRow++;\r\n arr[currentRow] = [];\r\n arr[currentRow].push(constant)\r\n }\r\n });\r\n\r\n $.CONSUME(CloseCurlyParen);\r\n\r\n return $.ACTION(() => this.utils.toArray(arr));\r\n });\r\n\r\n /**\r\n * Used in array\r\n */\r\n $.RULE('constantForArray', () => $.OR([\r\n {\r\n ALT: () => {\r\n const prefix = $.OPTION(() => $.SUBRULE($.plusMinusOp));\r\n const image = $.CONSUME(Number).image;\r\n const number = $.ACTION(() => this.utils.toNumber(image));\r\n if (prefix)\r\n return $.ACTION(() => this.utils.applyPrefix([prefix], number));\r\n return number;\r\n }\r\n }, {\r\n ALT: () => {\r\n const str = $.CONSUME(String).image;\r\n return $.ACTION(() => this.utils.toString(str));\r\n }\r\n }, {\r\n ALT: () => {\r\n const bool = $.CONSUME(Boolean).image;\r\n return $.ACTION(() => this.utils.toBoolean(bool));\r\n }\r\n }, {\r\n ALT: () => {\r\n const err = $.CONSUME(FormulaErrorT).image;\r\n return $.ACTION(() => this.utils.toError(err));\r\n }\r\n }, {\r\n ALT: () => {\r\n const err = $.CONSUME(RefError).image;\r\n return $.ACTION(() => this.utils.toError(err));\r\n }\r\n },\r\n ]));\r\n\r\n $.RULE('constant', () => $.OR([\r\n {\r\n ALT: () => {\r\n const number = $.CONSUME(Number).image;\r\n return $.ACTION(() => this.utils.toNumber(number));\r\n }\r\n }, {\r\n ALT: () => {\r\n const str = $.CONSUME(String).image;\r\n return $.ACTION(() => this.utils.toString(str));\r\n }\r\n }, {\r\n ALT: () => {\r\n const bool = $.CONSUME(Boolean).image;\r\n return $.ACTION(() => this.utils.toBoolean(bool));\r\n }\r\n }, {\r\n ALT: () => {\r\n const err = $.CONSUME(FormulaErrorT).image;\r\n return $.ACTION(() => this.utils.toError(err));\r\n }\r\n },\r\n ]));\r\n\r\n $.RULE('functionCall', () => {\r\n const functionName = $.CONSUME(Function).image.slice(0, -1);\r\n // console.log('functionName', functionName);\r\n const args = $.SUBRULE($.arguments);\r\n $.CONSUME(CloseParen);\r\n // dependency parser won't call function.\r\n return $.ACTION(() => context.callFunction(functionName, args));\r\n\r\n });\r\n\r\n $.RULE('arguments', () => {\r\n // console.log('try arguments')\r\n\r\n // allows ',' in the front\r\n $.MANY2(() => {\r\n $.CONSUME2(Comma);\r\n });\r\n const args = [];\r\n // allows empty arguments\r\n $.OPTION(() => {\r\n args.push($.SUBRULE($.formulaWithBinaryOp));\r\n $.MANY(() => {\r\n $.CONSUME1(Comma);\r\n args.push(null); // e.g. ROUND(1.5,)\r\n $.OPTION3(() => {\r\n args.pop();\r\n args.push($.SUBRULE2($.formulaWithBinaryOp))\r\n });\r\n });\r\n });\r\n return args;\r\n });\r\n\r\n $.RULE('referenceWithoutInfix', () => $.OR([\r\n\r\n {ALT: () => $.SUBRULE($.referenceItem)},\r\n\r\n {\r\n // sheet name prefix\r\n ALT: () => {\r\n // console.log('try sheetName');\r\n const sheetName = $.SUBRULE($.prefixName);\r\n // console.log('sheetName', sheetName);\r\n const referenceItem = $.SUBRULE2($.formulaWithRange);\r\n\r\n $.ACTION(() => {\r\n if (this.utils.isFormulaError(referenceItem))\r\n return referenceItem;\r\n referenceItem.ref.sheet = sheetName\r\n });\r\n return referenceItem;\r\n }\r\n },\r\n\r\n // {ALT: () => $.SUBRULE('dynamicDataExchange')},\r\n ]));\r\n\r\n $.RULE('referenceItem', () => $.OR([\r\n {\r\n ALT: () => {\r\n const address = $.CONSUME(Cell).image;\r\n return $.ACTION(() => this.utils.parseCellAddress(address));\r\n }\r\n },\r\n {\r\n ALT: () => {\r\n const name = $.CONSUME(Name).image;\r\n return $.ACTION(() => context.getVariable(name))\r\n }\r\n },\r\n {\r\n ALT: () => {\r\n const column = $.CONSUME(Column).image;\r\n return $.ACTION(() => this.utils.parseCol(column))\r\n }\r\n },\r\n // A row check should be here, but the token is same with Number,\r\n // In other to resolve ambiguities, I leave this empty, and\r\n // parse the number to row number when needed.\r\n {\r\n ALT: () => {\r\n const err = $.CONSUME(RefError).image;\r\n return $.ACTION(() => this.utils.toError(err))\r\n }\r\n },\r\n // {ALT: () => $.SUBRULE($.udfFunctionCall)},\r\n // {ALT: () => $.SUBRULE($.structuredReference)},\r\n ]));\r\n\r\n $.RULE('prefixName', () => $.OR([\r\n {ALT: () => $.CONSUME(Sheet).image.slice(0, -1)},\r\n {ALT: () => $.CONSUME(SheetQuoted).image.slice(1, -2).replace(/''/g, \"'\")},\r\n ]));\r\n\r\n this.performSelfAnalysis();\r\n }\r\n}\r\n\r\nmodule.exports = {\r\n Parser: Parsing,\r\n};\r\n","const FormulaError = require('../formulas/error');\r\nconst {Address} = require('../formulas/helpers');\r\nconst {Prefix, Postfix, Infix, Operators} = require('../formulas/operators');\r\nconst Collection = require('./type/collection');\r\nconst MAX_ROW = 1048576, MAX_COLUMN = 16384;\r\nconst {NotAllInputParsedException} = require('chevrotain');\r\n\r\nclass Utils {\r\n\r\n constructor(context) {\r\n this.context = context;\r\n }\r\n\r\n columnNameToNumber(columnName) {\r\n return Address.columnNameToNumber(columnName);\r\n }\r\n\r\n /**\r\n * Parse the cell address only.\r\n * @param {string} cellAddress\r\n * @return {{ref: {col: number, address: string, row: number}}}\r\n */\r\n parseCellAddress(cellAddress) {\r\n const res = cellAddress.match(/([$]?)([A-Za-z]{1,3})([$]?)([1-9][0-9]*)/);\r\n // console.log('parseCellAddress', cellAddress);\r\n return {\r\n ref: {\r\n address: res[0],\r\n col: this.columnNameToNumber(res[2]),\r\n row: +res[4]\r\n },\r\n };\r\n }\r\n\r\n parseRow(row) {\r\n const rowNum = +row;\r\n if (!Number.isInteger(rowNum))\r\n throw Error('Row number must be integer.');\r\n return {\r\n ref: {\r\n col: undefined,\r\n row: +row\r\n },\r\n };\r\n }\r\n\r\n parseCol(col) {\r\n return {\r\n ref: {\r\n col: this.columnNameToNumber(col),\r\n row: undefined,\r\n },\r\n };\r\n }\r\n\r\n parseColRange(col1, col2) {\r\n // const res = colRange.match(/([$]?)([A-Za-z]{1,3}):([$]?)([A-Za-z]{1,4})/);\r\n col1 = this.columnNameToNumber(col1);\r\n col2 = this.columnNameToNumber(col2);\r\n return {\r\n ref: {\r\n from: {\r\n col: Math.min(col1, col2),\r\n row: null\r\n },\r\n to: {\r\n col: Math.max(col1, col2),\r\n row: null\r\n }\r\n }\r\n }\r\n }\r\n\r\n parseRowRange(row1, row2) {\r\n // const res = rowRange.match(/([$]?)([1-9][0-9]*):([$]?)([1-9][0-9]*)/);\r\n return {\r\n ref: {\r\n from: {\r\n col: null,\r\n row: Math.min(row1, row2),\r\n },\r\n to: {\r\n col: null,\r\n row: Math.max(row1, row2),\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n _applyPrefix(prefixes, val, isArray) {\r\n if (this.isFormulaError(val))\r\n return val;\r\n return Prefix.unaryOp(prefixes, val, isArray);\r\n }\r\n\r\n async applyPrefixAsync(prefixes, value) {\r\n const {val, isArray} = this.extractRefValue(await value);\r\n return this._applyPrefix(prefixes, val, isArray);\r\n }\r\n\r\n /**\r\n * Apply + or - unary prefix.\r\n * @param {Array.} prefixes\r\n * @param {*} value\r\n * @return {*}\r\n */\r\n applyPrefix(prefixes, value) {\r\n // console.log('applyPrefix', prefixes, value);\r\n if (this.context.async) {\r\n return this.applyPrefixAsync(prefixes, value);\r\n } else {\r\n const {val, isArray} = this.extractRefValue(value);\r\n return this._applyPrefix(prefixes, val, isArray);\r\n }\r\n }\r\n\r\n _applyPostfix(val, isArray, postfix) {\r\n if (this.isFormulaError(val))\r\n return val;\r\n return Postfix.percentOp(val, postfix, isArray);\r\n }\r\n\r\n async applyPostfixAsync(value, postfix) {\r\n const {val, isArray} = this.extractRefValue(await value);\r\n return this._applyPostfix(val, isArray, postfix);\r\n }\r\n\r\n applyPostfix(value, postfix) {\r\n // console.log('applyPostfix', value, postfix);\r\n if (this.context.async) {\r\n return this.applyPostfixAsync(value, postfix);\r\n } else {\r\n const {val, isArray} = this.extractRefValue(value);\r\n return this._applyPostfix(val, isArray, postfix)\r\n }\r\n }\r\n\r\n _applyInfix(res1, infix, res2) {\r\n const val1 = res1.val, isArray1 = res1.isArray;\r\n const val2 = res2.val, isArray2 = res2.isArray;\r\n if (this.isFormulaError(val1))\r\n return val1;\r\n if (this.isFormulaError(val2))\r\n return val2;\r\n if (Operators.compareOp.includes(infix))\r\n return Infix.compareOp(val1, infix, val2, isArray1, isArray2);\r\n else if (Operators.concatOp.includes(infix))\r\n return Infix.concatOp(val1, infix, val2, isArray1, isArray2);\r\n else if (Operators.mathOp.includes(infix))\r\n return Infix.mathOp(val1, infix, val2, isArray1, isArray2);\r\n else\r\n throw new Error(`Unrecognized infix: ${infix}`);\r\n }\r\n\r\n async applyInfixAsync(value1, infix, value2) {\r\n const res1 = this.extractRefValue(await value1);\r\n const res2 = this.extractRefValue(await value2);\r\n return this._applyInfix(res1, infix, res2)\r\n }\r\n\r\n applyInfix(value1, infix, value2) {\r\n if (this.context.async) {\r\n return this.applyInfixAsync(value1, infix, value2)\r\n } else {\r\n const res1 = this.extractRefValue(value1);\r\n const res2 = this.extractRefValue(value2);\r\n return this._applyInfix(res1, infix, res2)\r\n }\r\n }\r\n\r\n applyIntersect(refs) {\r\n // console.log('applyIntersect', refs);\r\n if (this.isFormulaError(refs[0]))\r\n return refs[0];\r\n if (!refs[0].ref)\r\n throw Error(`Expecting a reference, but got ${refs[0]}.`);\r\n // a intersection will keep track of references, value won't be retrieved here.\r\n let maxRow, maxCol, minRow, minCol, sheet, res; // index start from 1\r\n // first time setup\r\n const ref = refs.shift().ref;\r\n sheet = ref.sheet;\r\n if (!ref.from) {\r\n // check whole row/col reference\r\n if (ref.row === undefined || ref.col === undefined) {\r\n throw Error('Cannot intersect the whole row or column.')\r\n }\r\n\r\n // cell ref\r\n maxRow = minRow = ref.row;\r\n maxCol = minCol = ref.col;\r\n } else {\r\n // range ref\r\n // update\r\n maxRow = Math.max(ref.from.row, ref.to.row);\r\n minRow = Math.min(ref.from.row, ref.to.row);\r\n maxCol = Math.max(ref.from.col, ref.to.col);\r\n minCol = Math.min(ref.from.col, ref.to.col);\r\n }\r\n\r\n let err;\r\n refs.forEach(ref => {\r\n if (this.isFormulaError(ref))\r\n return ref;\r\n ref = ref.ref;\r\n if (!ref) throw Error(`Expecting a reference, but got ${ref}.`);\r\n if (!ref.from) {\r\n if (ref.row === undefined || ref.col === undefined) {\r\n throw Error('Cannot intersect the whole row or column.')\r\n }\r\n // cell ref\r\n if (ref.row > maxRow || ref.row < minRow || ref.col > maxCol || ref.col < minCol\r\n || sheet !== ref.sheet) {\r\n err = FormulaError.NULL;\r\n }\r\n maxRow = minRow = ref.row;\r\n maxCol = minCol = ref.col;\r\n } else {\r\n // range ref\r\n const refMaxRow = Math.max(ref.from.row, ref.to.row);\r\n const refMinRow = Math.min(ref.from.row, ref.to.row);\r\n const refMaxCol = Math.max(ref.from.col, ref.to.col);\r\n const refMinCol = Math.min(ref.from.col, ref.to.col);\r\n if (refMinRow > maxRow || refMaxRow < minRow || refMinCol > maxCol || refMaxCol < minCol\r\n || sheet !== ref.sheet) {\r\n err = FormulaError.NULL;\r\n }\r\n // update\r\n maxRow = Math.min(maxRow, refMaxRow);\r\n minRow = Math.max(minRow, refMinRow);\r\n maxCol = Math.min(maxCol, refMaxCol);\r\n minCol = Math.max(minCol, refMinCol);\r\n }\r\n });\r\n if (err) return err;\r\n // check if the ref can be reduced to cell reference\r\n if (maxRow === minRow && maxCol === minCol) {\r\n res = {\r\n ref: {\r\n sheet,\r\n row: maxRow,\r\n col: maxCol\r\n }\r\n }\r\n } else {\r\n res = {\r\n ref: {\r\n sheet,\r\n from: {row: minRow, col: minCol},\r\n to: {row: maxRow, col: maxCol}\r\n }\r\n };\r\n }\r\n\r\n if (!res.ref.sheet)\r\n delete res.ref.sheet;\r\n return res;\r\n }\r\n\r\n applyUnion(refs) {\r\n const collection = new Collection();\r\n for (let i = 0; i < refs.length; i++) {\r\n if (this.isFormulaError(refs[i]))\r\n return refs[i];\r\n collection.add(this.extractRefValue(refs[i]).val, refs[i]);\r\n }\r\n\r\n // console.log('applyUnion', unions);\r\n return collection;\r\n }\r\n\r\n /**\r\n * Apply multiple references, e.g. A1:B3:C8:A:1:.....\r\n * @param refs\r\n // * @return {{ref: {from: {col: number, row: number}, to: {col: number, row: number}}}}\r\n */\r\n applyRange(refs) {\r\n let res, maxRow = -1, maxCol = -1, minRow = MAX_ROW + 1, minCol = MAX_COLUMN + 1;\r\n refs.forEach(ref => {\r\n if (this.isFormulaError(ref))\r\n return ref;\r\n // row ref is saved as number, parse the number to row ref here\r\n if (typeof ref === 'number') {\r\n ref = this.parseRow(ref);\r\n }\r\n ref = ref.ref;\r\n // check whole row/col reference\r\n if (ref.row === undefined) {\r\n minRow = 1;\r\n maxRow = MAX_ROW\r\n }\r\n if (ref.col === undefined) {\r\n minCol = 1;\r\n maxCol = MAX_COLUMN;\r\n }\r\n\r\n if (ref.row > maxRow)\r\n maxRow = ref.row;\r\n if (ref.row < minRow)\r\n minRow = ref.row;\r\n if (ref.col > maxCol)\r\n maxCol = ref.col;\r\n if (ref.col < minCol)\r\n minCol = ref.col;\r\n });\r\n if (maxRow === minRow && maxCol === minCol) {\r\n res = {\r\n ref: {\r\n row: maxRow,\r\n col: maxCol\r\n }\r\n }\r\n } else {\r\n res = {\r\n ref: {\r\n from: {row: minRow, col: minCol},\r\n to: {row: maxRow, col: maxCol}\r\n }\r\n };\r\n }\r\n return res;\r\n }\r\n\r\n /**\r\n * Throw away the refs, and retrieve the value.\r\n * @return {{val: *, isArray: boolean}}\r\n */\r\n extractRefValue(obj) {\r\n let res = obj, isArray = false;\r\n if (Array.isArray(res))\r\n isArray = true;\r\n if (obj.ref) {\r\n // can be number or array\r\n return {val: this.context.retrieveRef(obj), isArray};\r\n\r\n }\r\n return {val: res, isArray};\r\n }\r\n\r\n /**\r\n *\r\n * @param array\r\n * @return {Array}\r\n */\r\n toArray(array) {\r\n // TODO: check if array is valid\r\n // console.log('toArray', array);\r\n return array;\r\n }\r\n\r\n /**\r\n * @param {string} number\r\n * @return {number}\r\n */\r\n toNumber(number) {\r\n return Number(number);\r\n }\r\n\r\n /**\r\n * @param {string} string\r\n * @return {string}\r\n */\r\n toString(string) {\r\n return string.substring(1, string.length - 1) .replace(/\"\"/g, '\"');\r\n }\r\n\r\n /**\r\n * @param {string} bool\r\n * @return {boolean}\r\n */\r\n toBoolean(bool) {\r\n return bool === 'TRUE';\r\n }\r\n\r\n /**\r\n * Parse an error.\r\n * @param {string} error\r\n * @return {string}\r\n */\r\n toError(error) {\r\n return new FormulaError(error.toUpperCase());\r\n }\r\n\r\n isFormulaError(obj) {\r\n return obj instanceof FormulaError;\r\n }\r\n\r\n static formatChevrotainError(error, inputText) {\r\n let line, column, msg = '';\r\n // e.g. SUM(1))\r\n if (error instanceof NotAllInputParsedException) {\r\n line = error.token.startLine;\r\n column = error.token.startColumn;\r\n } else {\r\n line = error.previousToken.startLine;\r\n column = error.previousToken.startColumn + 1;\r\n }\r\n\r\n msg += '\\n' + inputText.split('\\n')[line - 1] + '\\n';\r\n msg += Array(column - 1).fill(' ').join('') + '^\\n';\r\n msg += `Error at position ${line}:${column}\\n` + error.message;\r\n error.errorLocation = {line, column};\r\n return FormulaError.ERROR(msg, error);\r\n }\r\n\r\n}\r\n\r\nmodule.exports = Utils;\r\n","const TextFunctions = require('../formulas/functions/text');\r\nconst MathFunctions = require('../formulas/functions/math');\r\nconst TrigFunctions = require('../formulas/functions/trigonometry');\r\nconst LogicalFunctions = require('../formulas/functions/logical');\r\nconst EngFunctions = require('../formulas/functions/engineering');\r\nconst ReferenceFunctions = require('../formulas/functions/reference');\r\nconst InformationFunctions = require('../formulas/functions/information');\r\nconst StatisticalFunctions = require('../formulas/functions/statistical');\r\nconst DateFunctions = require('../formulas/functions/date');\r\nconst WebFunctions = require('../formulas/functions/web');\r\nconst FormulaError = require('../formulas/error');\r\nconst {FormulaHelpers} = require('../formulas/helpers');\r\nconst {Parser, allTokens} = require('./parsing');\r\nconst lexer = require('./lexing');\r\nconst Utils = require('./utils');\r\n\r\n/**\r\n * A Excel Formula Parser & Evaluator\r\n */\r\nclass FormulaParser {\r\n\r\n /**\r\n * @param {{functions: {}, functionsNeedContext: {}, onVariable: function, onCell: function, onRange: function}} [config]\r\n * @param isTest - is in testing environment\r\n */\r\n constructor(config, isTest = false) {\r\n this.logs = [];\r\n this.isTest = isTest;\r\n this.utils = new Utils(this);\r\n config = Object.assign({\r\n functions: {},\r\n functionsNeedContext: {},\r\n onVariable: () => null,\r\n onCell: () => 0,\r\n onRange: () => [[0]],\r\n }, config);\r\n\r\n this.onVariable = config.onVariable;\r\n this.functions = Object.assign({}, DateFunctions, StatisticalFunctions, InformationFunctions, ReferenceFunctions,\r\n EngFunctions, LogicalFunctions, TextFunctions, MathFunctions, TrigFunctions, WebFunctions,\r\n config.functions, config.functionsNeedContext);\r\n this.onRange = config.onRange;\r\n this.onCell = config.onCell;\r\n\r\n // functions treat null as 0, other functions treats null as \"\"\r\n this.funsNullAs0 = Object.keys(MathFunctions)\r\n .concat(Object.keys(TrigFunctions))\r\n .concat(Object.keys(LogicalFunctions))\r\n .concat(Object.keys(EngFunctions))\r\n .concat(Object.keys(ReferenceFunctions))\r\n .concat(Object.keys(StatisticalFunctions))\r\n .concat(Object.keys(DateFunctions));\r\n\r\n // functions need context and don't need to retrieve references\r\n this.funsNeedContextAndNoDataRetrieve = ['ROW', 'ROWS', 'COLUMN', 'COLUMNS', 'SUMIF', 'INDEX', 'AVERAGEIF', 'IF'];\r\n\r\n // functions need parser context\r\n this.funsNeedContext = [...Object.keys(config.functionsNeedContext), ...this.funsNeedContextAndNoDataRetrieve,\r\n 'INDEX', 'OFFSET', 'INDIRECT', 'IF', 'CHOOSE', 'WEBSERVICE'];\r\n\r\n // functions preserve reference in arguments\r\n this.funsPreserveRef = Object.keys(InformationFunctions);\r\n\r\n this.parser = new Parser(this, this.utils);\r\n }\r\n\r\n /**\r\n * Get all lexing token names. Webpack needs this.\r\n * @return {Array.} - All token names that should not be minimized.\r\n */\r\n static get allTokens() {\r\n return allTokens;\r\n }\r\n\r\n /**\r\n * Get value from the cell reference\r\n * @param ref\r\n * @return {*}\r\n */\r\n getCell(ref) {\r\n // console.log('get cell', JSON.stringify(ref));\r\n if (ref.sheet == null)\r\n ref.sheet = this.position ? this.position.sheet : undefined;\r\n return this.onCell(ref);\r\n }\r\n\r\n /**\r\n * Get values from the range reference.\r\n * @param ref\r\n * @return {*}\r\n */\r\n getRange(ref) {\r\n // console.log('get range', JSON.stringify(ref));\r\n if (ref.sheet == null)\r\n ref.sheet = this.position ? this.position.sheet : undefined;\r\n return this.onRange(ref)\r\n }\r\n\r\n /**\r\n * TODO:\r\n * Get references or values from a user defined variable.\r\n * @param name\r\n * @return {*}\r\n */\r\n getVariable(name) {\r\n // console.log('get variable', name);\r\n const res = {ref: this.onVariable(name, this.position.sheet, this.position)};\r\n if (res.ref == null)\r\n return FormulaError.NAME;\r\n return res;\r\n }\r\n\r\n /**\r\n * Retrieve values from the given reference.\r\n * @param valueOrRef\r\n * @return {*}\r\n */\r\n retrieveRef(valueOrRef) {\r\n if (FormulaHelpers.isRangeRef(valueOrRef)) {\r\n return this.getRange(valueOrRef.ref);\r\n }\r\n if (FormulaHelpers.isCellRef(valueOrRef)) {\r\n return this.getCell(valueOrRef.ref)\r\n }\r\n return valueOrRef;\r\n }\r\n\r\n /**\r\n * Call an excel function.\r\n * @param name - Function name.\r\n * @param args - Arguments that pass to the function.\r\n * @return {*}\r\n */\r\n _callFunction(name, args) {\r\n if (name.indexOf('_xlfn.') === 0)\r\n name = name.slice(6);\r\n name = name.toUpperCase();\r\n // if one arg is null, it means 0 or \"\" depends on the function it calls\r\n const nullValue = this.funsNullAs0.includes(name) ? 0 : '';\r\n\r\n if (!this.funsNeedContextAndNoDataRetrieve.includes(name)) {\r\n // retrieve reference\r\n args = args.map(arg => {\r\n if (arg === null)\r\n return {value: nullValue, isArray: false, omitted: true};\r\n const res = this.utils.extractRefValue(arg);\r\n\r\n if (this.funsPreserveRef.includes(name)) {\r\n return {value: res.val, isArray: res.isArray, ref: arg.ref};\r\n }\r\n return {\r\n value: res.val,\r\n isArray: res.isArray,\r\n isRangeRef: !!FormulaHelpers.isRangeRef(arg),\r\n isCellRef: !!FormulaHelpers.isCellRef(arg)\r\n };\r\n });\r\n }\r\n // console.log('callFunction', name, args)\r\n\r\n if (this.functions[name]) {\r\n let res;\r\n try {\r\n if (!this.funsNeedContextAndNoDataRetrieve.includes(name) && !this.funsNeedContext.includes(name))\r\n res = (this.functions[name](...args));\r\n else\r\n res = (this.functions[name](this, ...args));\r\n } catch (e) {\r\n // allow functions throw FormulaError, this make functions easier to implement!\r\n if (e instanceof FormulaError) {\r\n return e;\r\n } else {\r\n throw e;\r\n }\r\n }\r\n if (res === undefined) {\r\n // console.log(`Function ${name} may be not implemented.`);\r\n if (this.isTest) {\r\n if (!this.logs.includes(name)) this.logs.push(name);\r\n return {value: 0, ref: {}};\r\n }\r\n throw FormulaError.NOT_IMPLEMENTED(name);\r\n }\r\n return res;\r\n } else {\r\n // console.log(`Function ${name} is not implemented`);\r\n if (this.isTest) {\r\n if (!this.logs.includes(name)) this.logs.push(name);\r\n return {value: 0, ref: {}};\r\n }\r\n throw FormulaError.NOT_IMPLEMENTED(name);\r\n }\r\n }\r\n\r\n async callFunctionAsync(name, args) {\r\n const awaitedArgs = [];\r\n for (const arg of args) {\r\n awaitedArgs.push(await arg);\r\n }\r\n const res = await this._callFunction(name, awaitedArgs);\r\n return FormulaHelpers.checkFunctionResult(res)\r\n }\r\n\r\n callFunction(name, args) {\r\n if (this.async) {\r\n return this.callFunctionAsync(name, args);\r\n } else {\r\n const res = this._callFunction(name, args);\r\n return FormulaHelpers.checkFunctionResult(res);\r\n }\r\n }\r\n\r\n /**\r\n * Return currently supported functions.\r\n * @return {this}\r\n */\r\n supportedFunctions() {\r\n const supported = [];\r\n const functions = Object.keys(this.functions);\r\n functions.forEach(fun => {\r\n try {\r\n const res = this.functions[fun](0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\r\n if (res === undefined) return;\r\n supported.push(fun);\r\n } catch (e) {\r\n if (e instanceof Error)\r\n supported.push(fun);\r\n }\r\n });\r\n return supported.sort();\r\n }\r\n\r\n /**\r\n * Check and return the appropriate formula result.\r\n * @param result\r\n * @param {boolean} [allowReturnArray] - If the formula can return an array\r\n * @return {*}\r\n */\r\n checkFormulaResult(result, allowReturnArray = false) {\r\n const type = typeof result;\r\n // number\r\n if (type === 'number') {\r\n if (isNaN(result)) {\r\n return FormulaError.VALUE;\r\n } else if (!isFinite(result)) {\r\n return FormulaError.NUM;\r\n }\r\n result += 0; // make -0 to 0\r\n } else if (type === 'object') {\r\n if (result instanceof FormulaError)\r\n return result;\r\n if (allowReturnArray) {\r\n if (result.ref) {\r\n result = this.retrieveRef(result);\r\n }\r\n // Disallow union, and other unknown data types.\r\n // e.g. `=(A1:C1, A2:E9)` -> #VALUE!\r\n if (typeof result === 'object' && !Array.isArray(result) && result != null) {\r\n return FormulaError.VALUE;\r\n }\r\n\r\n } else {\r\n if (result.ref && result.ref.row && !result.ref.from) {\r\n // single cell reference\r\n result = this.retrieveRef(result);\r\n } else if (result.ref && result.ref.from && result.ref.from.col === result.ref.to.col) {\r\n // single Column reference\r\n result = this.retrieveRef({\r\n ref: {\r\n row: result.ref.from.row, col: result.ref.from.col\r\n }\r\n });\r\n } else if (Array.isArray(result)) {\r\n result = result[0][0]\r\n } else {\r\n // array, range reference, union collections\r\n return FormulaError.VALUE;\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n /**\r\n * Parse an excel formula.\r\n * @param {string} inputText\r\n * @param {{row: number, col: number}} [position] - The position of the parsed formula\r\n * e.g. {row: 1, col: 1}\r\n * @param {boolean} [allowReturnArray] - If the formula can return an array. Useful when parsing array formulas,\r\n * or data validation formulas.\r\n * @returns {*}\r\n */\r\n parse(inputText, position, allowReturnArray = false) {\r\n if (inputText.length === 0) throw Error('Input must not be empty.');\r\n this.position = position;\r\n this.async = false;\r\n const lexResult = lexer.lex(inputText);\r\n this.parser.input = lexResult.tokens;\r\n let res;\r\n try {\r\n res = this.parser.formulaWithBinaryOp();\r\n res = this.checkFormulaResult(res, allowReturnArray);\r\n if (res instanceof FormulaError) {\r\n return res;\r\n }\r\n } catch (e) {\r\n throw FormulaError.ERROR(e.message, e);\r\n }\r\n if (this.parser.errors.length > 0) {\r\n const error = this.parser.errors[0];\r\n throw Utils.formatChevrotainError(error, inputText);\r\n }\r\n return res;\r\n }\r\n\r\n /**\r\n * Parse an excel formula asynchronously.\r\n * Use when providing custom async functions.\r\n * @param {string} inputText\r\n * @param {{row: number, col: number}} [position] - The position of the parsed formula\r\n * e.g. {row: 1, col: 1}\r\n * @param {boolean} [allowReturnArray] - If the formula can return an array. Useful when parsing array formulas,\r\n * or data validation formulas.\r\n * @returns {*}\r\n */\r\n async parseAsync(inputText, position, allowReturnArray = false) {\r\n if (inputText.length === 0) throw Error('Input must not be empty.');\r\n this.position = position;\r\n this.async = true;\r\n const lexResult = lexer.lex(inputText);\r\n this.parser.input = lexResult.tokens;\r\n let res;\r\n try {\r\n res = await this.parser.formulaWithBinaryOp();\r\n res = this.checkFormulaResult(res, allowReturnArray);\r\n if (res instanceof FormulaError) {\r\n return res;\r\n }\r\n } catch (e) {\r\n throw FormulaError.ERROR(e.message, e);\r\n }\r\n if (this.parser.errors.length > 0) {\r\n const error = this.parser.errors[0];\r\n throw Utils.formatChevrotainError(error, inputText);\r\n }\r\n return res;\r\n }\r\n}\r\n\r\nmodule.exports = {\r\n FormulaParser,\r\n FormulaHelpers,\r\n};\r\n","const FormulaError = require('../../formulas/error');\r\nconst {FormulaHelpers, Types, Address} = require('../../formulas/helpers');\r\nconst {Prefix, Postfix, Infix, Operators} = require('../../formulas/operators');\r\nconst Collection = require('../type/collection');\r\nconst MAX_ROW = 1048576, MAX_COLUMN = 16384;\r\n\r\nclass Utils {\r\n\r\n constructor(context) {\r\n this.context = context;\r\n }\r\n\r\n columnNameToNumber(columnName) {\r\n return Address.columnNameToNumber(columnName);\r\n }\r\n\r\n /**\r\n * Parse the cell address only.\r\n * @param {string} cellAddress\r\n * @return {{ref: {col: number, address: string, row: number}}}\r\n */\r\n parseCellAddress(cellAddress) {\r\n const res = cellAddress.match(/([$]?)([A-Za-z]{1,3})([$]?)([1-9][0-9]*)/);\r\n // console.log('parseCellAddress', cellAddress);\r\n return {\r\n ref: {\r\n col: this.columnNameToNumber(res[2]),\r\n row: +res[4]\r\n },\r\n };\r\n }\r\n\r\n parseRow(row) {\r\n const rowNum = +row;\r\n if (!Number.isInteger(rowNum))\r\n throw Error('Row number must be integer.');\r\n return {\r\n ref: {\r\n col: undefined,\r\n row: +row\r\n },\r\n };\r\n }\r\n\r\n parseCol(col) {\r\n return {\r\n ref: {\r\n col: this.columnNameToNumber(col),\r\n row: undefined,\r\n },\r\n };\r\n }\r\n\r\n /**\r\n * Apply + or - unary prefix.\r\n * @param {Array.} prefixes\r\n * @param {*} value\r\n * @return {*}\r\n */\r\n applyPrefix(prefixes, value) {\r\n this.extractRefValue(value);\r\n return 0;\r\n }\r\n\r\n applyPostfix(value, postfix) {\r\n this.extractRefValue(value);\r\n return 0\r\n }\r\n\r\n applyInfix(value1, infix, value2) {\r\n this.extractRefValue(value1);\r\n this.extractRefValue(value2);\r\n return 0;\r\n }\r\n\r\n applyIntersect(refs) {\r\n // console.log('applyIntersect', refs);\r\n if (this.isFormulaError(refs[0]))\r\n return refs[0];\r\n if (!refs[0].ref)\r\n throw Error(`Expecting a reference, but got ${refs[0]}.`);\r\n // a intersection will keep track of references, value won't be retrieved here.\r\n let maxRow, maxCol, minRow, minCol, sheet, res; // index start from 1\r\n // first time setup\r\n const ref = refs.shift().ref;\r\n sheet = ref.sheet;\r\n if (!ref.from) {\r\n // check whole row/col reference\r\n if (ref.row === undefined || ref.col === undefined) {\r\n throw Error('Cannot intersect the whole row or column.')\r\n }\r\n\r\n // cell ref\r\n maxRow = minRow = ref.row;\r\n maxCol = minCol = ref.col;\r\n } else {\r\n // range ref\r\n // update\r\n maxRow = Math.max(ref.from.row, ref.to.row);\r\n minRow = Math.min(ref.from.row, ref.to.row);\r\n maxCol = Math.max(ref.from.col, ref.to.col);\r\n minCol = Math.min(ref.from.col, ref.to.col);\r\n }\r\n\r\n let err;\r\n refs.forEach(ref => {\r\n if (this.isFormulaError(ref))\r\n return ref;\r\n ref = ref.ref;\r\n if (!ref) throw Error(`Expecting a reference, but got ${ref}.`);\r\n if (!ref.from) {\r\n if (ref.row === undefined || ref.col === undefined) {\r\n throw Error('Cannot intersect the whole row or column.')\r\n }\r\n // cell ref\r\n if (ref.row > maxRow || ref.row < minRow || ref.col > maxCol || ref.col < minCol\r\n || sheet !== ref.sheet) {\r\n err = FormulaError.NULL;\r\n }\r\n maxRow = minRow = ref.row;\r\n maxCol = minCol = ref.col;\r\n } else {\r\n // range ref\r\n const refMaxRow = Math.max(ref.from.row, ref.to.row);\r\n const refMinRow = Math.min(ref.from.row, ref.to.row);\r\n const refMaxCol = Math.max(ref.from.col, ref.to.col);\r\n const refMinCol = Math.min(ref.from.col, ref.to.col);\r\n if (refMinRow > maxRow || refMaxRow < minRow || refMinCol > maxCol || refMaxCol < minCol\r\n || sheet !== ref.sheet) {\r\n err = FormulaError.NULL;\r\n }\r\n // update\r\n maxRow = Math.min(maxRow, refMaxRow);\r\n minRow = Math.max(minRow, refMinRow);\r\n maxCol = Math.min(maxCol, refMaxCol);\r\n minCol = Math.max(minCol, refMinCol);\r\n }\r\n });\r\n if (err) return err;\r\n // check if the ref can be reduced to cell reference\r\n if (maxRow === minRow && maxCol === minCol) {\r\n res = {\r\n ref: {\r\n sheet,\r\n row: maxRow,\r\n col: maxCol\r\n }\r\n }\r\n } else {\r\n res = {\r\n ref: {\r\n sheet,\r\n from: {row: minRow, col: minCol},\r\n to: {row: maxRow, col: maxCol}\r\n }\r\n };\r\n }\r\n\r\n if (!res.ref.sheet)\r\n delete res.ref.sheet;\r\n return res;\r\n }\r\n\r\n applyUnion(refs) {\r\n const collection = new Collection();\r\n for (let i = 0; i < refs.length; i++) {\r\n if (this.isFormulaError(refs[i]))\r\n return refs[i];\r\n collection.add(this.extractRefValue(refs[i]).val, refs[i]);\r\n }\r\n\r\n // console.log('applyUnion', unions);\r\n return collection;\r\n }\r\n\r\n /**\r\n * Apply multiple references, e.g. A1:B3:C8:A:1:.....\r\n * @param refs\r\n // * @return {{ref: {from: {col: number, row: number}, to: {col: number, row: number}}}}\r\n */\r\n applyRange(refs) {\r\n let res, maxRow = -1, maxCol = -1, minRow = MAX_ROW + 1, minCol = MAX_COLUMN + 1;\r\n refs.forEach(ref => {\r\n if (this.isFormulaError(ref))\r\n return ref;\r\n // row ref is saved as number, parse the number to row ref here\r\n if (typeof ref === 'number') {\r\n ref = this.parseRow(ref);\r\n }\r\n ref = ref.ref;\r\n // check whole row/col reference\r\n if (ref.row === undefined) {\r\n minRow = 1;\r\n maxRow = MAX_ROW\r\n }\r\n if (ref.col === undefined) {\r\n minCol = 1;\r\n maxCol = MAX_COLUMN;\r\n }\r\n\r\n if (ref.row > maxRow)\r\n maxRow = ref.row;\r\n if (ref.row < minRow)\r\n minRow = ref.row;\r\n if (ref.col > maxCol)\r\n maxCol = ref.col;\r\n if (ref.col < minCol)\r\n minCol = ref.col;\r\n });\r\n if (maxRow === minRow && maxCol === minCol) {\r\n res = {\r\n ref: {\r\n row: maxRow,\r\n col: maxCol\r\n }\r\n }\r\n } else {\r\n res = {\r\n ref: {\r\n from: {row: minRow, col: minCol},\r\n to: {row: maxRow, col: maxCol}\r\n }\r\n };\r\n }\r\n return res;\r\n }\r\n\r\n /**\r\n * Throw away the refs, and retrieve the value.\r\n * @return {{val: *, isArray: boolean}}\r\n */\r\n extractRefValue(obj) {\r\n const isArray = Array.isArray(obj);\r\n if (obj.ref) {\r\n // can be number or array\r\n return {val: this.context.retrieveRef(obj), isArray};\r\n\r\n }\r\n return {val: obj, isArray};\r\n }\r\n\r\n /**\r\n *\r\n * @param array\r\n * @return {Array}\r\n */\r\n toArray(array) {\r\n // TODO: check if array is valid\r\n // console.log('toArray', array);\r\n return array;\r\n }\r\n\r\n /**\r\n * @param {string} number\r\n * @return {number}\r\n */\r\n toNumber(number) {\r\n return Number(number);\r\n }\r\n\r\n /**\r\n * @param {string} string\r\n * @return {string}\r\n */\r\n toString(string) {\r\n return string.substring(1, string.length - 1) .replace(/\"\"/g, '\"');\r\n }\r\n\r\n /**\r\n * @param {string} bool\r\n * @return {boolean}\r\n */\r\n toBoolean(bool) {\r\n return bool === 'TRUE';\r\n }\r\n\r\n /**\r\n * Parse an error.\r\n * @param {string} error\r\n * @return {FormulaError}\r\n */\r\n toError(error) {\r\n return new FormulaError(error.toUpperCase());\r\n }\r\n\r\n isFormulaError(obj) {\r\n return obj instanceof FormulaError;\r\n }\r\n}\r\n\r\nmodule.exports = Utils;\r\n","const FormulaError = require('../../formulas/error');\r\nconst {FormulaHelpers} = require('../../formulas/helpers');\r\nconst {Parser} = require('../parsing');\r\nconst lexer = require('../lexing');\r\nconst Utils = require('./utils');\r\nconst {formatChevrotainError} = require('../utils');\r\n\r\nclass DepParser {\r\n\r\n /**\r\n *\r\n * @param {{onVariable: Function}} [config]\r\n */\r\n constructor(config) {\r\n this.data = [];\r\n this.utils = new Utils(this);\r\n config = Object.assign({\r\n onVariable: () => null,\r\n }, config);\r\n this.utils = new Utils(this);\r\n\r\n this.onVariable = config.onVariable;\r\n this.functions = {}\r\n\r\n this.parser = new Parser(this, this.utils);\r\n }\r\n\r\n /**\r\n * Get value from the cell reference\r\n * @param ref\r\n * @return {*}\r\n */\r\n getCell(ref) {\r\n // console.log('get cell', JSON.stringify(ref));\r\n if (ref.row != null) {\r\n if (ref.sheet == null)\r\n ref.sheet = this.position ? this.position.sheet : undefined;\r\n const idx = this.data.findIndex(element => {\r\n return (element.from && element.from.row <= ref.row && element.to.row >= ref.row\r\n && element.from.col <= ref.col && element.to.col >= ref.col)\r\n || (element.row === ref.row && element.col === ref.col && element.sheet === ref.sheet)\r\n });\r\n if (idx === -1)\r\n this.data.push(ref);\r\n }\r\n return 0;\r\n }\r\n\r\n /**\r\n * Get values from the range reference.\r\n * @param ref\r\n * @return {*}\r\n */\r\n getRange(ref) {\r\n // console.log('get range', JSON.stringify(ref));\r\n if (ref.from.row != null) {\r\n if (ref.sheet == null)\r\n ref.sheet = this.position ? this.position.sheet : undefined;\r\n\r\n const idx = this.data.findIndex(element => {\r\n return element.from && element.from.row === ref.from.row && element.from.col === ref.from.col\r\n && element.to.row === ref.to.row && element.to.col === ref.to.col;\r\n });\r\n if (idx === -1)\r\n this.data.push(ref);\r\n }\r\n return [[0]]\r\n }\r\n\r\n /**\r\n * TODO:\r\n * Get references or values from a user defined variable.\r\n * @param name\r\n * @return {*}\r\n */\r\n getVariable(name) {\r\n // console.log('get variable', name);\r\n const res = {ref: this.onVariable(name, this.position.sheet)};\r\n if (res.ref == null)\r\n return FormulaError.NAME;\r\n if (FormulaHelpers.isCellRef(res))\r\n this.getCell(res.ref);\r\n else {\r\n this.getRange(res.ref);\r\n }\r\n return 0;\r\n }\r\n\r\n /**\r\n * Retrieve values from the given reference.\r\n * @param valueOrRef\r\n * @return {*}\r\n */\r\n retrieveRef(valueOrRef) {\r\n if (FormulaHelpers.isRangeRef(valueOrRef)) {\r\n return this.getRange(valueOrRef.ref);\r\n }\r\n if (FormulaHelpers.isCellRef(valueOrRef)) {\r\n return this.getCell(valueOrRef.ref)\r\n }\r\n return valueOrRef;\r\n }\r\n\r\n /**\r\n * Call an excel function.\r\n * @param name - Function name.\r\n * @param args - Arguments that pass to the function.\r\n * @return {*}\r\n */\r\n callFunction(name, args) {\r\n args.forEach(arg => {\r\n if (arg == null)\r\n return;\r\n this.retrieveRef(arg);\r\n });\r\n return {value: 0, ref: {}};\r\n }\r\n\r\n /**\r\n * Check and return the appropriate formula result.\r\n * @param result\r\n * @return {*}\r\n */\r\n checkFormulaResult(result) {\r\n this.retrieveRef(result);\r\n }\r\n\r\n /**\r\n * Parse an excel formula and return the dependencies\r\n * @param {string} inputText\r\n * @param {{row: number, col: number, sheet: string}} position\r\n * @param {boolean} [ignoreError=false] if true, throw FormulaError when error occurred.\r\n * if false, the parser will return partial dependencies.\r\n * @returns {Array.<{}>}\r\n */\r\n parse(inputText, position, ignoreError = false) {\r\n if (inputText.length === 0) throw Error('Input must not be empty.');\r\n this.data = [];\r\n this.position = position;\r\n const lexResult = lexer.lex(inputText);\r\n this.parser.input = lexResult.tokens;\r\n try {\r\n const res = this.parser.formulaWithBinaryOp();\r\n this.checkFormulaResult(res);\r\n } catch (e) {\r\n if (!ignoreError) {\r\n throw FormulaError.ERROR(e.message, e);\r\n }\r\n }\r\n if (this.parser.errors.length > 0 && !ignoreError) {\r\n const error = this.parser.errors[0];\r\n throw formatChevrotainError(error, inputText);\r\n }\r\n\r\n return this.data;\r\n }\r\n}\r\n\r\nmodule.exports = {\r\n DepParser,\r\n};\r\n","const {FormulaParser} = require('./grammar/hooks');\r\nconst {DepParser} = require('./grammar/dependency/hooks');\r\nconst SSF = require('./ssf/ssf');\r\nconst FormulaError = require('./formulas/error');\r\n\r\n// const funs = new FormulaParser().supportedFunctions();\r\n// console.log('Supported:', funs.join(', '),\r\n// `\\nTotal: ${funs.length}/477, ${funs.length/477*100}% implemented.`);\r\n\r\n\r\nObject.assign(FormulaParser, {\r\n MAX_ROW: 1048576,\r\n MAX_COLUMN: 16384,\r\n SSF,\r\n DepParser,\r\n FormulaError, ...require('./formulas/helpers')\r\n});\r\nmodule.exports = FormulaParser;\r\n","import Parser, { DepParser } from 'fast-formula-parser';\nexport class FormulaParser {\n parser;\n depParser;\n root;\n constructor(root) {\n this.root = root;\n this.parser = new Parser({\n onCell: ({ col, row }) => {\n const cell = this.root.data[row - 1][col - 1];\n const cellValue = cell.resultValue.length > 0 ? cell.resultValue : cell.value;\n if (cellValue && isNaN(Number(cellValue)) === false)\n return Number(cellValue);\n return this.root.data[row - 1][col - 1].resultValue ?? '';\n },\n });\n this.depParser = new DepParser({});\n this.depParser;\n }\n}\n","import { Editor } from \"./components/editor\";\nimport { Scroller } from \"./components/scroller\";\nimport { Sheet } from \"./components/sheet\";\nimport { Table } from \"./components/table\";\nimport { Toolbar } from \"./components/toolbar\";\nimport { Cell, } from \"./modules/cell\";\nimport { Config, } from \"./modules/config\";\nimport { Selection } from \"./modules/selection\";\nimport { Styles } from \"./modules/styles\";\nimport { Viewport } from \"./modules/viewport\";\nimport \"./scss/main.scss\";\nimport { createSampleData } from \"./utils/createData\";\nimport { Cache, CachedColumn, CachedRow } from \"./modules/cache\";\nimport { Row } from \"./modules/row\";\nimport { Column } from \"./modules/column\";\nimport { ColumnsBar } from \"./components/columnsBar\";\nimport { RowsBar } from \"./components/rowsBar\";\nimport { EventTypes, Events } from \"./modules/events\";\nimport { Clipboard } from \"./modules/clipboard\";\nimport { FormulaParser } from \"./modules/formulaParser\";\nexport const CSS_PREFIX = \"modern_sc_\";\nexport default class Spreadsheet {\n table;\n scroller;\n toolbar;\n rowsBar;\n columnsBar;\n sheet;\n editor;\n styles;\n config;\n data;\n viewport;\n selection;\n cache;\n events;\n clipboard;\n formulaParser;\n constructor(target, props) {\n const data = createSampleData(40, 40);\n const config = this.makeConfigFromData(data, props?.view ?? { height: 600, width: 800 });\n if (props?.view) {\n config.view = props.view;\n }\n this.config = new Config(config);\n this.config.onCellClick = props?.onCellClick ?? null;\n this.config.onSelectonChange = props?.onSelectionChange ?? null;\n this.config.onCellChange = props?.onCellChange ?? null;\n this.config.onCopy = props?.onCopy ?? null;\n this.rowsBar = new RowsBar(this);\n this.columnsBar = new ColumnsBar(this);\n this.sheet = new Sheet(this);\n this.table = new Table(this);\n this.scroller = new Scroller(this);\n this.toolbar = new Toolbar(this);\n this.editor = new Editor(this);\n this.cache = this.getInitialCache();\n this.viewport = new Viewport(this, this.scroller.getViewportBoundlingRect());\n this.selection = new Selection();\n this.events = new Events(this);\n this.clipboard = new Clipboard(this);\n this.formulaParser = new FormulaParser(this);\n this.data = data;\n this.styles = new Styles();\n this.buildComponent();\n this.setElementsPositions();\n this.appendTableToTarget(target);\n this.renderSheet();\n this.renderColumnsBar();\n this.renderRowsBar();\n }\n setRowsBarPosition() {\n const top = this.columnsBar.height + this.toolbar.height;\n const left = 0;\n this.rowsBar.setElementPosition(top, left);\n }\n setColumnsBarPosition() {\n const top = this.toolbar.height;\n const left = this.rowsBar.width;\n this.columnsBar.setElementPosition(top, left);\n }\n setElementsPositions() {\n this.setRowsBarPosition();\n this.setColumnsBarPosition();\n }\n getInitialCache() {\n const cachedCols = [];\n let currentWidth = 0;\n for (let i = 0; i <= this.config.columns.length - 1; i++) {\n const col = this.config.columns[i];\n currentWidth += col.width;\n const cacheCol = new CachedColumn({\n xPos: currentWidth,\n colIdx: i,\n });\n cachedCols.push(cacheCol);\n }\n const cachedRows = [];\n let currentHeight = 0;\n for (let i = 0; i <= this.config.rows.length - 1; i++) {\n const row = this.config.rows[i];\n currentHeight += row.height;\n const cacheRow = new CachedRow({\n yPos: currentHeight,\n rowIdx: i,\n });\n cachedRows.push(cacheRow);\n }\n const cache = new Cache({\n columns: cachedCols,\n rows: cachedRows,\n });\n return cache;\n }\n buildComponent() {\n const content = document.createElement(\"div\"); //* Abstract\n content.style.top = this.columnsBarHeight + \"px\";\n content.style.left = this.rowsBarWidth + \"px\";\n content.appendChild(this.sheet.element);\n content.classList.add(CSS_PREFIX + \"content\");\n this.table.element.appendChild(this.toolbar.element);\n this.table.element.appendChild(this.rowsBar.element);\n this.table.element.appendChild(this.columnsBar.element);\n this.table.element.appendChild(content);\n this.table.element.appendChild(this.scroller.element);\n this.table.element.append(this.editor.element);\n }\n /**Destroy spreadsheet DOM element.\n *\n * May be usefull when need to rerender component.\n */\n destroy() {\n this.table.element.remove();\n }\n appendTableToTarget(target) {\n if (typeof target === \"string\") {\n const element = document.querySelector(target);\n if (!element)\n throw new Error(`Element with selector ${target} is not finded in DOM.\\n Make sure it exists.`);\n element?.appendChild(this.table.element);\n }\n if (target instanceof HTMLElement) {\n target.append(this.table.element);\n }\n }\n /** Canvas rendering context 2D.\n *\n * Abble to draw on canvas with default CanvasAPI methods\n */\n get ctx() {\n return this.sheet.ctx;\n }\n get viewProps() {\n return this.config.view;\n }\n get columnsBarHeight() {\n return this.columnsBar.height;\n }\n get rowsBarWidth() {\n return this.rowsBar.width;\n }\n get toolbarHeight() {\n return this.toolbar.height;\n }\n /** Focusing on interactive part of spreadsheet */\n focusTable() {\n this.scroller.element.focus();\n }\n getCellByCoords(x, y) {\n return this.sheet.getCellByCoords(x, y);\n }\n getCell(position) {\n const { column, row } = position;\n return this.data[row][column];\n }\n changeCellValues(position, values, enableCallback = true) {\n const { column, row } = position;\n this.data[row][column].changeValues(values);\n this.events.dispatch({\n type: EventTypes.CELL_CHANGE,\n cell: this.data[row][column],\n enableCallback: enableCallback\n });\n this.renderCell(row, column);\n }\n changeCellStyles(position, styles) {\n const { column, row } = position;\n this.data[row][column].changeStyles(styles);\n this.renderCell(row, column);\n }\n applyActionToRange(range, callback) {\n const fromRow = Math.min(range.from.row, range.to.row);\n const toRow = Math.max(range.from.row, range.to.row);\n const fromCol = Math.min(range.from.column, range.to.column);\n const toCol = Math.max(range.from.column, range.to.column);\n for (let row = fromRow; row <= toRow; row++) {\n for (let col = fromCol; col <= toCol; col++) {\n const cell = this.data[row][col];\n callback(cell);\n }\n }\n }\n deleteSelectedCellsValues() {\n if (this.selection.selectedRange !== null) {\n this.applyActionToRange(this.selection.selectedRange, (cell) => {\n this.changeCellValues(cell.position, {\n displayValue: \"\",\n resultValue: \"\",\n value: \"\",\n });\n });\n }\n else {\n if (!this.selection.selectedCell)\n return;\n this.changeCellValues(this.selection.selectedCell, {\n displayValue: \"\",\n resultValue: \"\",\n value: \"\",\n });\n }\n }\n showEditor(position, initialString) {\n this.editor.show(position, initialString);\n }\n renderSheet() {\n this.sheet.renderSheet();\n }\n renderSelection() {\n this.sheet.renderSelection();\n }\n renderColumnsBar() {\n this.columnsBar.renderBar();\n }\n renderRowsBar() {\n this.rowsBar.renderBar();\n }\n renderCell(row, col) {\n this.data[row][col].render(this);\n }\n loadData(data) {\n const rowsLength = data.length;\n const colsLength = data[0] ? data[0].length : 0;\n this.data = [];\n const formattedData = [];\n // Transform serialized objects to Cells\n for (let row = 0; row < rowsLength; row++) {\n const innerRow = [];\n for (let col = 0; col < colsLength; col++) {\n const cell = data[row][col];\n innerRow.push(new Cell({\n displayValue: cell.displayValue,\n position: cell.position,\n resultValue: cell.resultValue,\n value: cell.value,\n style: cell.style,\n }));\n }\n formattedData.push(innerRow);\n }\n const config = this.makeConfigFromData(formattedData, this.config.view);\n config.onCellChange = this.config.onCellChange;\n config.onCellClick = this.config.onCellClick;\n config.onCopy = this.config.onCopy;\n config.onSelectonChange = this.config.onSelectonChange;\n this.data = formattedData;\n this.selection.selectedCell = null;\n this.selection.selectedRange = null;\n this.config = config;\n this.cache = this.getInitialCache();\n this.scroller.updateScrollerSize();\n this.viewport = new Viewport(this, this.scroller.getViewportBoundlingRect());\n this.renderSheet();\n return this;\n }\n makeConfigFromData(data, view) {\n const lastRowIdx = data.length - 1;\n const lastColIdx = data[0] ? data[0].length : 0;\n const rows = [];\n for (let row = 0; row < lastRowIdx; row++) {\n rows.push(new Row({\n height: 40,\n title: String(row),\n }));\n }\n const columns = [];\n for (let col = 0; col < lastColIdx; col++) {\n columns.push(new Column({\n width: 150,\n title: String(col),\n }));\n }\n const config = new Config({\n view,\n rows,\n columns,\n onCellClick: null,\n });\n return config;\n }\n serializeData() {\n const rowsLength = this.data.length;\n const colsLength = this.data[0] ? this.data[0].length : 0;\n const cellsArray = [];\n for (let row = 0; row < rowsLength; row++) {\n const innerRow = [];\n for (let col = 0; col < colsLength; col++) {\n innerRow.push(this.data[row][col].getSerializableCell());\n }\n cellsArray.push(innerRow);\n }\n return cellsArray;\n }\n}\nexport * from \"./modules/cache\";\nexport * from \"./modules/cell\";\nexport * from \"./modules/column\";\nexport * from \"./modules/config\";\nexport * from \"./modules/renderBox\";\nexport * from \"./modules/row\";\nexport * from \"./modules/selection\";\nexport * from \"./modules/styles\";\nexport * from \"./modules/viewport\";\nexport * from \"./utils/createData\";\n"],"names":["EventTypes","Events","root","__publicField","event","scroller","offsetX","offsetY","clickedCell","cell","selection","Selection","_b","_a","enableCallback","range","data","dataAsString","action","err","RenderBox","config","cellPosition","column","x","row","y","Editor","key","target","element","CSS_PREFIX","position","initialString","height","width","checkEqualCellSelections","selection1","selection2","Scroller","lastSelectedCell","isRangeChanged","newSelection","keysRegex","isPressedLetterKey","cells","from","to","rect","horizontalScroller","verticalScroller","mode","scrollTop","scrollLeft","bottom","right","groupScrollers","stack","acc","curr","totalHeight","totalWidth","CellStyles","props","Position","SerializableCell","Cell$2","styles","values","parser","renderBox","ctx","Sheet$2","canvas","col","selectedCell","selectedRange","startRow","startCol","lastRow","lastCol","startCellBox","box","firstRowIdx","lastColIdx","lastRowIdx","firstColIdx","Table","container","sizes","Toolbar","toolbarElement","Config","Styles","Viewport","Column$2","Row","createSampleData","rows","columns","fillCellsByCoords","innerRow","value","Cell","createSampleConfig","rowsArr","i","rowItem","colsArr","colItem","Column","makeSpreadsheetConfigAndData","CachedColumn","CachedRow","Cache","initial","rowIdx","colIdx","ColumnsBar","top","left","isColSelected","specialX","RowsBar","isRowSeleted","specialY","Clipboard","mapedData","item","arrayOfCells","cellProps","rowsLength","colsLength","j","savedCell","Collection$3","refs","obj","ref","collection","Collection","FormulaError","require$$0","require$$1","Types","Factorials","ReversedTypes","FormulaHelpers","result","arr1","val","isArray","allowBoolean","number","params","valueType","allowUnion","hook","defValue","minSize","param","isCellRef","isRangeRef","isUnion","isLiteral","info","type","flat","allowSingleValue","paramType","variable","context","range1","range2","Address","H","arg","res","WildCard","lookupText","flags","Criteria","criteria","upper","op","dividend","name","modulo","columnName","len","code","rowOffset","colOffset","helpers","error","msg","details","functionName","args","SSF$1","SSF","_strrev","o","fill","c","l","pad0","v","d","t","pad_","rpad_","pad0r1","pad0r2","p2_32","pad0r","isgeneral","s","days","months","init_table","table_fmt","frac","D","mixed","sgn","B","P_2","P_1","P","Q_2","Q_1","Q","A","q","parse_date_code","opts","b2","date","time","dow","dout","out","fix_hijri","basedate","dnthresh","base1904","datenum_local","date1904","epoch","general_fmt_int","general_fmt_num","gnr1","gnr2","gnr4","gnr5","gnr6","gfn2","w","gfn5","gfn3","gfn4","V","general_fmt","format","write_date","fmt","ss0","ss","tt","outl","commaify","write_num","pct1","write_num_pct","sfmt","mul","write_num_cm","idx","write_num_exp","period","ee","fakee","$$","$1","$2","$3","frac1","write_num_f1","r","aval","sign","den","rr","base","myn","myd","write_num_f2","dec1","closeparen","phone","hashq","str","cc","rnd","dd","dec","carry","flr","write_num_flt","ffmt","ri","ff","oa","lres","rres","write_num_cm2","write_num_pct2","write_num_exp2","write_num_int","split_fmt","in_str","abstime","fmt_is_date","eval_fmt","flen","lst","dt","hr","bt","ssm","nstr","jj","vv","myv","ostr","decpt","lasti","retval","cfregex","cfregex2","chkcond","thresh","choose_fmt","f","lat","m1","m2","load_entry","tbl","ssf","defaultResult","singleUnitStrs","placeNameStrs","num2Word","nums","maxLen","overflowIndex","overflowNums","remainingNumbs","digit","grammarFix","neungLen","combine","baht","satang","bahttext","num","bahtStr","satangStr","bahtArr","satangArr","module","require$$2","require$$3","charsets","toFull","set","toHalf","re","way","sets","toFullWidth","str0","toHalfWidth","TextFunctions","text","decimals","decimalString","text1","text2","findText","withinText","startNum","noCommas","comma","numChars","decimalSeparator","groupSeparator","leftParenOrMinus","rightParen","percent","letter","old_text","start_num","num_chars","new_text","arr","number_times","findTextRegex","formatText","e","Prefix","prefixes","prefix","Postfix","postfix","type2Number","Infix","value1","infix","value2","isArray1","isArray2","type1","type2","operators","fd","factorial","n","factorialDouble","MathFunctions","functionNum","options","ref1","radix","minLength","significance","absSignificance","times","offset","numberChosen","nFactorial","kFactorial","radians","a","b","array","numRow","numCol","det","diagLeft","diagRight","array1","array2","aNumRows","aNumCols","bNumRows","bNumCols","m","v1","v2","divisor","multiple","numbers","numerator","denominator","dimension","matrix","rowArr","temp","power","product","parsedNumber","degrees","form","digits","roman","multiplier","coefficients","coefficient","sumRange","ranges","isCriteriaArray","sum","rowNum","colNum","valueToAdd","arrays","arrayX","arrayY","math","MAX_NUMBER","TrigFunctions","trigonometry","getNumLogicalValue","numTrue","numFalse","LogicalFunctions","logicalTest","valueIfTrue","valueIfFalse","valueIfError","valueIfNa","logical","factory","exports","BESSEL","M","_horner","z","_bessel_iter","f0","f1","tdx","f2","_bessel_wrap","bessel0","bessel1","nonzero","b0","b1","besselj","W","b0_a1a","b0_a2a","b0_a1b","b0_a2b","a1","a2","xx","b1_a1a","b1_a2a","b1_a1b","b1_a2b","ret","jsum","bjp","bj","bjm","tox","bessely","besseli","b0_a","b0_b","b1_a","b1_b","bip","bi","bim","besselk","window","this","jStat","Math","undefined","concat","slice","toString","calcRdx","isFunction","isNumber","toVector","fn","index","submat","ind","nrow","objArr","cols","func","toAlter","ncol","retZero","retOne","retIdent","size","min","max","length","hival","step","current","cnt","start","end","rl","_slice","list","rcSlice","colSlice","rowSlice","nl","ml","diagArray","mat","jProto","funcs","passfunc","self","results","ascNum","clip","mean","tmp","prod","low","high","hash","_arr","logs","meanOfLogs","arrlen","diffs","arrLen","distinctNumbers","numberCounts","sortedDistinctNumbers","numberRanks","currentRank","count","first","last","rank","maxCount","numMaxCount","mode_arr","flag","sumsqerr","samples","dev","median","quantilesArray","alphap","betap","sortedArray","quantileVals","p","aleph","k","gamma","exclusive","realIndex","score","kind","counter","strict","binCnt","binWidth","bins","arr2","u","arr1Len","sq_dev","mu","sigma","skewSum","fullbool","tmpthis","callbackFunction","argsToPass","curriedFunction","vector","cof","ser","x0","x2","xp","gl","gl0","fact","xden","xnum","yi","aln","ap","del","h","ITMAX","an","fpmin","qab","qap","qam","aa","EPS","gln","pp","lna1","afac","isneg","ty","lna","lnb","al","shape","oalph","newthis","vals","fnfunc","alpha","beta","df1","df2","x1","local","scale","dof","rate","ncp","tol","min_iterations","flip","prob","lastvalue","std","dof2","betinc","eps","a0","m9","c9","betacdf","N","scaledPDF","samplesDone","scaledCDF","factor","sumarr","L","lam","U","slam","loglam","invalpha","vr","us","laplaceSign","tukeyWprob","nleg","ihalf","C1","C2","C3","bb","wlar","wincr1","wincr2","xleg","aleg","qsqz","pr_w","wincr","blb","binc","bub","einsum","cc1","wi","elsum","ac","qexpo","pplus","pminus","rinsum","tukeyQinv","p0","q0","p1","q1","p2","q2","p3","q3","p4","q4","c1","c2","c3","c4","c5","vmax","ps","nmeans","df","nlegq","ihalfq","eps1","eps2","dhaf","dquar","deigh","dlarg","ulen1","ulen2","ulen3","ulen4","xlegq","alegq","f2lf","f21","ff4","ulen","ans","otsum","twa1","t1","wprb","rotsum","maxiter","valx0","valx1","iter","xabs","push","isUsable","nrescols","rescols","nnorm","newarr","determinant","submatrix","maug","pivot","y2","maxrow","parts","matrix_mode","R","T","xv","xk","qr2","R_I","I","Aj","cAi","Ij","cIi","qr_solve","array_mode","QR","attrs","Q1","R1","RI","Q2","condition","ev","maxim","theta","t_j","u_j","order","k1","k2","u_j1","k3","k4","h1","g","X","pos","h_min","y1","F","dF","dl","temp1","temp2","Y","Bt","C","Vt","sides","zscore","tscore","expVar","sample","sampMean","sampSampMean","tmpargs","unexpVar","anovafscore","fscore","mean1","mean2","n1","n2","sd","qscore","means","change","pvalue","differenceOfProportions","pooled","se","sub_regress","exog","var_count","modelList","endog_index","exog_index","ols","endog","nobs","df_model","df_resid","coef","predict","resid","ybar","SSE","SSR","SST","R2","t_test","model","subModelList","sigmaHat","seBetaHat","mod","tStatistic","pValue","leftppf","interval95","F_test","F_statistic","fcdf","ols_wrap","ttest","ftest","adjust_R2","matrixRows","jMat","pass","jMatX","jMatY","innerinv","xtransp","next","compile","jMatYBar","yAverage","covar","sds","ts","inner","yBar","ssr","sse","sst","bessel","require$$4","MAX_OCT","MIN_OCT","MAX_BIN","MIN_BIN","numberRegex","IMWithoutRealRegex","IMRegex","parseIM","textOrNumber","real","im","unit","match","EngineeringFunctions","numberStr","places","number1","number2","shiftAmount","realNum","iNum","suffix","lowerLimit","upperLimit","ifNegative","toDecimal","toBinary","iNumber","realInput","imaginaryInput","imaginary","iNumber1","iNumber2","res1","unit1","res2","unit2","argument","realSum","imSum","prevUnit","isNegative","toHex","engineering","ReferenceFunctions","rowNumber","columnNumber","absNum","sheetText","indexNum","lookupValue","tableArray","rowIndexNum","rangeLookup","lookupType","prevValue","currValue","areaNum","colIndexNum","currRow","reference","error2Number","InfoFunctions","infoType","information","SQRT2PI","DistributionFunctions","cumulative","probability","numberS","trials","probabilityS","numberS2","degFreedom","actualRange","expectedRange","actual","expected","xsqr","filterArr1","filterArr2","lambda","d1","d2","x1Mean","x2Mean","s1","s2","e2y","knownYs","knownXs","filteredY","filteredX","xAllEqual","yMean","xMean","dataArray","binsArray","binsArrayFiltered","filterArr","knownY","knownX","newX","useConst","isKnownXOmitted","avg_x","avg_y","avg_xy","avg_xx","new_y","sample_s","number_sample","population_s","number_pop","pdf","cdf","standard_dev","number_f","number_s","probability_s","deg_freedom","distribution","StatisticalFunctions","avg","averageRange","statistical","MS_PER_DAY","d1900","WEEK_STARTS","WEEK_TYPES","WEEKEND_TYPES","timeRegex","dateRegex1","dateRegex2","dateRegex3","parseSimplifiedDate","fmt1","fmt2","fmt3","parseTime","minutes","seconds","ampm","now","toSerial","addOn","toDate","serial","parseDateWithExtra","serialOrString","isDateGiven","parseDate","compareDateIgnoreTime","date1","date2","isLeapYear","year","DateFunctions","month","day","startDate","endDate","yearDiff","monthDiff","dayDiff","dateText","method","dayNum","yearStart","holidays","holidaysArr","numWorkDays","found","weekend","weekendArr","skip","hour","minute","second","timeText","returnType","weekTypes","weekStart","basis","sm","sy","ed","em","ey","yLength","years","average","WebFunctions","url","web","VERSION","isEmpty","keys","mapValues","callback","objKeys","currKey","map","flatten","currItem","forEach","iteratorCallback","isObject","colKeys","isString","isUndefined","drop","howMuch","dropRight","filter","predicate","reject","pick","has","prop","contains","find","cloneArr","newArr","cloneObj","clonedObj","findAll","reduce","arrOrObj","iterator","isArr","accumulator","compact","uniq","identity","identities","currIdentity","isRegExp","every","difference","some","indexOf","assign","sources","_i","curSource","currSourceKeys","assignNoOverwrite","defaults","groupBy","groupKeyFunc","currGroupKey","currGroupArr","merge","obj1","obj2","keys2","NOOP","IDENTITY","packArray","holeyArr","orgValue","PRINT_ERROR","PRINT_WARNING","isES2015MapSupported","applyMixins","derivedCtor","baseCtors","baseCtor","baseProto","propName","basePropDescriptor","toFastProperties","toBecomeFast","FakeConstructor","fakeInstance","fakeAccess","peek","timer","total","RegExpParser","newState","input","addFlag","alts","begin","terms","ASSERT_EXISTS","disjunction","ASSERT_NEVER_REACH_HERE","isBacktracking","atLeast","atMost","atom","complement","digitsCharCodes","whitespaceCodes","wordCharCodes","escapeCode","letterCode","escapedChar","nextChar","isFromSingleChar","isToSingleChar","insertToSet","capturing","groupAst","decimalPatternNoZero","decimalPattern","prevState","howMany","hexString","hexChar","hexDigitPattern","charCode","char","subItem","flagObj","flagKey","BaseRegExpVisitor","node","child","subChild","regExpAstCache","regExpParser","getRegExpAst","regExp","regExpStr","regExpAst","clearRegExpParserCache","__extends","extendStatics","__","complementErrorMessage","failedOptimizationPrefixMsg","getOptimizedStartCodesIndices","ensureOptimizations","ast","firstChars","firstCharOptimizedIndices","msgSuffix","ignoreCase","term","addOptimizedIdxToResult","rangeCode","minOptimizationVal","minUnOptVal","maxUnOptVal","minOptIdx","charCodeToOptimizedIndex","maxOptIdx","currOptIdx","isOptionalQuantifier","isWholeOptional","optimizedCharIdx","handleIgnoreCase","upperChar","lowerChar","findCode","setNode","targetCharCodes","codeOrRange","range_1","targetCode","CharCodeFinder","_super","_this","canMatchCharCode","charCodes","pattern","charCodeFinder","PATTERN","DEFAULT_MODE","MODES","SUPPORT_STICKY","analyzeTokenTypes","tokenTypes","tracer","initCharCodeToOptimizedIndexMap","onlyRelevantTypes","currType","Lexer","hasCustom","allTransformedPatterns","currPattern","regExpSource","addStickyFlag","addStartOfInput","escapedRegExpString","wrappedRegExp","patternIdxToType","patternIdxToGroup","patternIdxToLongerAltIdx","patternIdxToPushMode","patternIdxToPopMode","clazz","groupName","longerAltType","longerAltIdx","patternIdxToCanLineTerminator","lineTerminatorCharCodes","getCharCodes","tokType","checkLineBreaksIssues","patternIdxToIsCustom","patternIdxToShort","emptyGroups","patternIdxToConfig","isCustomPattern","isShortPattern","canBeOptimized","charCodeToPatternIdxToConfig","currTokType","optimizedIdx","addToMapOfArrays","lastOptimizedIdx_1","charOrInt","currOptimizedIdx","optimizedCodes","validatePatterns","validModesNames","errors","missingResult","findMissingPatterns","invalidResult","findInvalidPatterns","validTokenTypes","validateRegExpPattern","findInvalidGroupType","findModesThatDoNotExist","findUnreachablePatterns","withRegExpPatterns","findEndOfInputAnchor","findStartOfInputAnchor","findUnsupportedFlags","findDuplicatePatterns","findEmptyMatchRegExps","tokenTypesWithMissingPattern","LexerDefinitionErrorType","valid","tokenTypesWithInvalidPattern","end_of_input","EndAnchorFinder","invalidRegex","regexpAst","endAnchorVisitor","matchesEmptyString","start_of_input","StartAnchorFinder","startAnchorVisitor","invalidFlags","identicalPatterns","outerType","innerType","duplicatePatterns","currIdenticalSet","setOfIdentical","tokenTypeNames","dupPatternSrc","invalidTypes","group","validModes","invalidModes","canBeTested","noMetaChar","testIdx","tokenType","testTokenType","regExpArray","metaChars","performRuntimeChecks","lexerDefinition","trackLines","lineTerminatorCharacters","currModeValue","currModeName","currIdx","performWarningRuntimeChecks","warnings","hasAnyLineBreak","allTokenTypes","tokTypes","concreteTokenTypes","terminatorCharCodes","currIssue","message","buildLineBreakIssueMessage","warningDescriptor","cloneEmptyGroups","clonedResult","groupKeys","currGroupValue","LineTerminatorOptimizedTester","charsOrCodes","numOrString","charCodeToOptimizedIdxMap","tokenStructuredMatcher","tokInstance","tokConstructor","instanceType","tokenStructuredMatcherNoCategories","token","tokenShortNameIdx","tokenIdxToClass","augmentTokenTypes","tokenTypesAndParents","expandCategories","assignTokenDefaultProps","assignCategoriesMapProp","assignCategoriesTokensProp","categories","searching","newCategories","hasShortKeyProperty","hasCategoriesProperty","hasExtendingTokensTypesProperty","hasExtendingTokensTypesMapProperty","singleAssignCategoriesToksMap","path","nextNode","pathNode","nextCategory","newPath","isTokenType","defaultLexerErrorProvider","fullText","startOffset","line","DEFAULT_LEXER_CONFIG","traceInitVal","actualDefinition","hasOnlySingleMode","allModeNames","currModDef","currModName","currAnalyzeResult_1","allErrMessages","allErrMessagesString","unOptimizedModes","cannotBeOptimized","modeName","initialMode","lexResult","matchAltImage","matchedImage","payload","altPayload","imageLength","newToken","errLength","orgText","orgLength","matchedTokensIndex","guessedNumberOfTokens","matchedTokens","groups","lineTerminatorPattern","currModePatternsLength","currCharCodeToPatternIdxToConfig","modeStack","emptyArray","getPossiblePatterns","getPossiblePatternsSlow","getPossiblePatternsOptimized","possiblePatterns","pop_mode","popToken","msg_1","newMode","modeCanBeOptimized","push_mode","currConfig","nextCharCode","chosenPatternIdxToConfig","chosenPatternsLength","singleCharCode","longerAltConfig","longerAltPattern","numOfLTsInMatch","foundTerminator","lastLTEndOffset","errorStartOffset","errorLine","errorColumn","foundResyncPoint","currConfig_1","pushMode","newLastIndex","lastLTIdx","lastCharIsLT","fixForEndingInLT","oldColumn","image","tokenTypeIdx","startLine","startColumn","tokenVector","tokenToAdd","phaseDesc","phaseImpl","indent","traceMethod","tokenLabel","hasTokenLabel","tokenName","PARENT","CATEGORIES","LABEL","GROUP","PUSH_MODE","POP_MODE","LONGER_ALT","LINE_BREAKS","START_CHARS_HINT","createToken","createTokenInternal","EOF","createTokenInstance","endOffset","endLine","endColumn","tokenMatcher","AbstractProduction","_definition","visitor","NonTerminal","definition","Rule","Alternative","Option","RepetitionMandatory","RepetitionMandatoryWithSeparator","Repetition","RepetitionWithSeparator","Alternation","Terminal","serializeGrammar","topRules","serializeProduction","convertDefinition","serializedTerminal","RestWalker","prevRest","subProd","currRest","terminal","refProd","flatProd","fullOrRest","optionProd","atLeastOneProd","fullAtLeastOneRest","atLeastOneSepProd","fullAtLeastOneSepRest","restForRepetitionWithSeparator","manyProd","fullManyRest","manySepProd","fullManySepRest","orProd","alt","prodWrapper","repSepProd","repSepRest","fullRepSepRest","GAstVisitor","nodeAny","isSequenceProd","isOptionalProd","alreadyVisited","isDirectlyOptional","isBranchingProd","getProductionDslName","DslMethodsCollectorVisitor","subrule","option","manySep","atLeastOne","atLeastOneSep","many","or","collectorVisitor","collectMethods","rule","dslMethods","firstForTerminal","firstForSequence","firstForBranching","firstSet","seq","nextSubProdIdx","hasInnerProdsRemaining","currSubProd","isLastInnerProdOptional","allAlternativesFirsts","innerProd","IN","ResyncFollowsWalker","topProd","followName","buildBetweenProdsFollowPrefix","fullRest","restProd","t_in_topProd_follows","computeAllProdsFollows","topProductions","reSyncFollows","currRefsFollow","occurenceInParent","defaultParserErrorProvider","hasLabel","expectedMsg","firstRedundant","expectedPathsPerAlt","customUserDescription","errPrefix","actualText","errSuffix","allLookAheadPaths","currAltPaths","nextValidTokenSequences","currPath","currTokenType","nextValidSequenceItems","itemMsg","calculatedDescription","expectedIterationPaths","defaultGrammarResolverErrorProvider","topLevelRule","undefinedRule","defaultGrammarValidatorErrorProvider","duplicateProds","getExtraProductionArgument","topLevelName","duplicateProd","dslName","extraArgument","hasExplicitIndex","errMsg","pathMsg","currTok","occurrence","currtok","currMessage","ruleName","pathNames","utils.map","currRule","leftRecursivePath","resolveGrammar","topLevels","errMsgProvider","refResolver","GastRefResolverVisitor","nameToTopRule","ParserDefinitionErrorType","AbstractNextPossibleTokensWalker","NextAfterTokenWalker","AbstractNextTerminalAfterProductionWalker","topRule","NextTerminalAfterManyWalker","firstAfterMany","_first","NextTerminalAfterManySepWalker","firstAfterManySep","NextTerminalAfterAtLeastOneWalker","firstAfterAtLeastOne","NextTerminalAfterAtLeastOneSepWalker","atleastOneSepProd","firstAfterfirstAfterAtLeastOneSep","possiblePathsFrom","targetDef","maxLength","remainingPathWith","nextDef","getAlternativesForProd","alternatives","newDef","currAlt","nextPossibleTokensAfter","initialDef","tokMatcher","maxLookAhead","EXIT_NON_TERMINAL","EXIT_NON_TERMINAL_ARR","EXIT_ALTERNATIVE","foundCompletePath","tokenVectorLength","minimalAlternativesIndex","possiblePaths","currDef","currRuleStack","currOccurrenceStack","nextPath","nextIdx","actualToken","newRuleStack","newOccurrenceStack","nextPathWithout","nextPathWith","secondIteration","separatorGast","nthRepetition","currAltPath","expandTopLevelRule","newCurrOccurrenceStack","PROD_TYPE","getProdType","buildLookaheadFuncForOr","ruleGrammar","maxLookahead","hasPredicates","dynamicTokensEnabled","laFuncBuilder","lookAheadPaths","getLookaheadPathsForOr","areTokenCategoriesNotUsed","buildLookaheadFuncForOptionalProd","prodType","lookaheadBuilder","getLookaheadPathsForOptionalProd","buildAlternativesLookAheadFunc","numOfAlts","areAllOneTokenLookahead","orAlts","predicates","currNumOfPaths","currPredicate","currPathLength","nextToken","singleTokenAlts","choiceToAlt_1","currExtendingType","buildSingleAlternativeLookaheadFunction","numOfPaths","singleTokensTypes","expectedTokenType","expectedTokenUniqueKey_1","choiceToAlt_2","RestDefinitionFinderWalker","targetOccurrence","targetProdType","expectedProdType","InsideDefinitionFinderVisitor","targetRef","expectedProdName","initializeArrayOfArrays","pathToHashKeys","longerKeys","currShorterKey","categoriesKeySuffix","isUniquePrefixHash","altKnownPathsKeys","searchPathKeys","currAltIdx","otherAltKnownPathsKeys","searchIdx","searchKey","lookAheadSequenceFromAlternatives","altsDefs","partialAlts","finalResult","altsHashes","dict","newData","pathLength","currDataset","_loop_1","altIdx","currAltPathsAndSuffixes","currPathIdx","currPathPrefix","suffixDef","prefixKeys","isUnique","currAltResult","containsPath","newPartialPathsAndSuffixes","insideDefVisitor","insideDef","afterDefWalker","afterDef","insideFlat","AlternativeGAST","afterFlat","alternative","searchPath","compareOtherPath","otherPath","searchTok","otherTok","matchingTokens","isStrictPrefixOfPath","other","otherTokType","singleAltPaths","singlePath","validateGrammar","globalMaxLookahead","grammarName","duplicateErrors","currTopLevel","validateDuplicateProductions","leftRecursionErrors","currTopRule","validateNoLeftRecursion","emptyAltErrors","ambiguousAltsErrors","emptyRepetitionErrors","validateEmptyOrAlternative","validateAmbiguousAlternationAlternatives","validateSomeNonEmptyLookaheadPath","termsNamespaceConflictErrors","checkTerminalAndNoneTerminalsNameSpace","tooManyAltsErrors","curRule","validateTooManyAlts","duplicateRulesError","validateRuleDoesNotAlreadyExist","utils.flatten","OccurrenceValidationCollector","allRuleProductions","productionGroups","utils.groupBy","identifyProductionForDuplicates","duplicates","utils.pick","currGroup","utils.values","currDuplicates","firstProd","utils.first","defError","allRules","className","occurrences","validateRuleIsOverridden","definedRulesNames","utils.contains","nextNonTerminals","getFirstNoneTerminal","utils.isEmpty","foundLeftRecursion","validNextSteps","utils.difference","errorsFromNextSteps","currRefRule","utils.cloneArr","currSubDef","isFirstOptional","hasMore","rest","utils.drop","OrCollector","orCollector","ors","utils.reduce","currOr","exceptLast","utils.dropRight","currErrors","currAlternative","possibleFirstInAlt","utils.compact","currOccurrence","actualMaxLookahead","altsAmbiguityErrors","checkAlternativesAmbiguities","altsPrefixAmbiguityErrors","checkPrefixAlternativesAmbiguities","RepetionCollector","topLevelRules","currProd","paths","pathsInsideProduction","alternation","foundAmbiguousPaths","identicalAmbiguities","altsCurrPathAppearsIn","currOtherAlt","currOtherAltIdx","currAmbDescriptor","ambgIndices","pathsAndIndices","currPathsAndIdx","currPathAndIdx","alternativeGast","targetIdx","targetPath","prefixAmbiguitiesPathsAndIndices","searchPathAndIdx","currPathPrefixErrors","currAmbPathAndIdx","tokenNames","currToken","currRuleName","topRulesTable","orgResolveGrammar","orgValidateGrammar","assignOccurrenceIndices","methodsCollector","methods","currMethod","arrIdx","MISMATCHED_TOKEN_EXCEPTION","NO_VIABLE_ALT_EXCEPTION","EARLY_EXIT_EXCEPTION","NOT_ALL_INPUT_PARSED_EXCEPTION","RECOGNITION_EXCEPTION_NAMES","isRecognitionException","RecognitionException","_newTarget","MismatchedTokenException","previousToken","NoViableAltException","NotAllInputParsedException","EarlyExitException","EOF_FOLLOW_KEY","IN_RULE_RECOVERY_EXCEPTION","InRuleRecoveryException","Recoverable","DEFAULT_PARSER_CONFIG","attemptInRepetitionRecovery","tokToInsert","grammarRule","grammarRuleArgs","lookAheadFunc","expectedTokType","reSyncTokType","savedLexerState","resyncedTokens","passedResyncPoint","nextTokenWithoutResync","generateErrorMessage","expectTokAfterLastMatch","nextTokIdx","notStuck","tokIdxInRule","grammarPath","follows","nextTok","expectedToken","mismatchedTok","isMisMatchedTokInFollows","possibleFollowsTokType","isNextTokenWhatIsExpected","followKey","currentRuleReSyncSet","allPossibleReSyncTokTypes","nextTokenType","currRuleShortName","currRuleIdx","prevRuleShortName","explicitRuleStack","explicitOccurrenceStack","followStack","resyncTokens","prodFunc","lookaheadFunc","dslMethodIdx","prodOccurrence","nextToksWalker","pathRuleStack","pathOccurrenceStack","currShortName","firstAfterRepInfo","walker","isEndOfRule","BITS_FOR_METHOD_TYPE","BITS_FOR_OCCURRENCE_IDX","OR_IDX","OPTION_IDX","MANY_IDX","AT_LEAST_ONE_IDX","MANY_SEP_IDX","AT_LEAST_ONE_SEP_IDX","getKeyForAutomaticLookahead","ruleIdx","LooksAhead","rules","repetition","repetitionMandatory","repetitionMandatoryWithSeparator","repetitionWithSeparator","prodIdx","laFunc","prodKey","prodMaxLookahead","dslMethodName","setNodeLocationOnlyOffset","currNodeLocation","newLocationInfo","setNodeLocationFull","addTerminalToCst","tokenTypeName","addNoneTerminalToCst","ruleResult","classNameFromInstance","instance","NAME","existingNameProp","defineNameProp","nameValue","namePropDescriptor","defaultVisit","childrenNames","childrenNamesLength","currChildName","currChildArray","currChildArrayLength","currChild","createBaseSemanticVisitorConstructor","ruleNames","derivedConstructor","semanticProto","cstNode","semanticDefinitionErrors","validateVisitor","errorMessages","currDefError","createBaseVisitorConstructorWithDefaults","baseConstructor","withDefaultsProto","CstVisitorDefinitionError","visitorInstance","missingErrors","validateMissingCstMethods","redundantErrors","validateRedundantMethods","VALID_PROP_NAMES","TreeBuilder","fullRuleName","shortName","ruleCstNode","prevToken","loc","consumedToken","rootCst","ruleCstResult","preCstNode","newBaseCstVisitorConstructor","newConstructor","ruleStack","occurrenceStack","LexerAdapter","newInput","END_OF_FILE","soughtIdx","RecognizerApi","impl","ruleToCall","actionORMethodDef","altsOrOpts","implementation","DEFAULT_RULE_CONFIG","ruleImplementation","ruleErrors","orgState","RecognizerEngine","tokenVocabulary","uniqueTokens","noTokenCategoriesUsed","tokenConstructor","resyncEnabled","recoveryValueFunc","invokeRuleWithTry","cst","wrappedGrammarRule","idxInCallingRule","ruleNamePropName","resyncEnabledConfig","isFirstInvokedRule","reSyncEnabled","recogError","partialCstResult","orgLookaheadFunction_1","laKey","orgLookaheadFunction_2","separator","firstIterationLookaheadFunc","separatorLookAheadFunc","lookaheadFunction","orgLookaheadFunction_3","firstIterationLaFunc","nextTerminalAfterWalker","beforeIteration","afterIteration","altIdxToTake","chosenAlternative","firstRedundantTok","eFromConsumption","eFromInRuleRecovery","savedErrors","savedRuleStack","fullName","ErrorHandler","newErrors","userDefinedErrMsg","lookAheadPathsPerAlternative","insideProdPaths","actualTokens","errMsgTypes","ContentAssist","startRuleName","precedingInput","startRuleGast","topRuleName","gastProductions","topProduction","nextPossibleTokenTypes","RECORDING_NULL_OBJECT","HANDLE_SEPARATOR","MAX_METHOD_IDX","RFT","RECORDING_PHASE_TOKEN","RECORDING_PHASE_CSTNODE","GastRecorder","arg1","arg2","def","newTopLevelRule","originalError","recordProd","recordOrProd","assertMethodIdxIsValid","getIdxSuffix","prevProd","newNoneTerminal","prodConstructor","mainProdArg","handleSep","grammarAction","newProd","hasOptions","newOrProd","currAltFlat","PerformanceTracer","userTraceInitPerf","traceIsNumber","EMPTY_ALT","Parser","that","parserInstance","defErrorsMsgs","wrappedRule","originalGrammarAction","recordedRuleGast","resolverErrors","validationErrors","allFollows","CstParser","configClone","EmbeddedActionsParser","createSyntaxDiagramsCode","grammar","_c","resourceBase","_d","css","header","cssHtml","scripts","diagramsDiv","serializedGrammar","initLogic","NL","genUmdModule","genClass","genWrapperFunction","genAllRules","rulesText","genRule","genDefinition","genTerminal","genNonTerminal","genAlternation","altDef","genSingleAlt","genProd","genDSLRule","genDefFunction","spaces","generateParserFactory","wrapperText","constructorWrapper","generateParserModule","clearCache","WhiteSpace","String","SingleQuotedString","SheetQuoted","Function","FormulaErrorT","RefError","Name","Sheet","Number","Boolean","At","Comma","Colon","Semicolon","OpenParen","CloseParen","OpenSquareParen","CloseSquareParen","OpenCurlyParen","CloseCurlyParen","QuoteS","MulOp","PlusOp","DivOp","MinOp","ConcatOp","ExOp","PercentOp","GtOp","EqOp","LtOp","NeqOp","GteOp","LteOp","allTokens","SelectLexer","lexing","inputText","lexingResult","lexer","ExcelRefFunction","ExcelConditionalRefFunction","Parsing","utils","$","infixes","ops","formula","currentRow","sep","constant","bool","sheetName","referenceItem","address","parsing","Operators","MAX_ROW","MAX_COLUMN","Utils$3","cellAddress","col1","col2","row1","row2","val1","val2","maxRow","maxCol","minRow","minCol","sheet","refMaxRow","refMinRow","refMaxCol","refMinCol","string","Utils","EngFunctions","require$$5","InformationFunctions","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","FormulaParser$2","isTest","valueOrRef","nullValue","awaitedArgs","supported","fun","allowReturnArray","hooks","FormulaParser","Utils$1","formatChevrotainError","DepParser$1","ignoreError","DepParser","fastFormulaParser","cellValue","Spreadsheet","cachedCols","currentWidth","cacheCol","cachedRows","currentHeight","cacheRow","content","fromRow","toRow","fromCol","toCol","formattedData","view","cellsArray"],"mappings":"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","x_google_ignoreList":[20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88]}
\ No newline at end of file
diff --git a/main.js b/main.js
index cadc766..7ab9750 100644
--- a/main.js
+++ b/main.js
@@ -1,12198 +1,117 @@
-var Ys = Object.defineProperty;
-var Ks = (t, e, n) => e in t ? Ys(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : t[e] = n;
-var U = (t, e, n) => (Ks(t, typeof e != "symbol" ? e + "" : e, n), n);
-var Ve;
-(function(t) {
- t.CELL_CLICK = "CELL_CLICK", t.SELECTION_CHANGE = "CHANGE_SELECTION", t.CELL_CHANGE = "CELL_CHANGE", t.COPY_CELLS = "COPY_CELLS";
-})(Ve || (Ve = {}));
-class zs {
- constructor(e) {
- U(this, "root");
- U(this, "cellClick", (e, n) => {
- var p, u;
- if (e.button !== 0)
- return;
- const { offsetX: r, offsetY: i } = e, a = this.root.getCellByCoords(r, i), c = this.root.getCell(a), h = new br();
- h.selectedCell = a, h.selectedRange = {
- from: a,
- to: a
- }, n.setSelectingMode(!0), this.changeSelection(h, !0), (u = (p = this.root.config).onCellClick) == null || u.call(p, e, c);
- });
- U(this, "changeSelection", (e, n = !1) => {
- var r, i;
- this.root.selection = e, n && ((i = (r = this.root.config).onSelectonChange) == null || i.call(r, e)), this.root.renderSheet(), this.root.renderColumnsBar(), this.root.renderRowsBar();
- });
- U(this, "copy", (e, n, r) => {
- var i, a;
- (a = (i = this.root.config).onCopy) == null || a.call(i, e, n, r);
- });
- this.root = e;
- }
- async dispatch(e) {
- switch (e.type) {
- case Ve.CELL_CLICK: {
- const { event: n, scroller: r } = e;
- this.cellClick(n, r);
- break;
- }
- case Ve.SELECTION_CHANGE: {
- const { selection: n, enableCallback: r } = e;
- this.changeSelection(n, r);
- break;
- }
- case Ve.CELL_CHANGE: {
- const { cell: n, enableCallback: r } = e;
- if (n.value.substring(0, 1).startsWith("="))
- try {
- await n.evalFormula(this.root.formulaParser), n.displayValue = n.resultValue, this.root.renderCell(n.position.row, n.position.column), this.changeCellValues(n, r);
- return;
- } catch (i) {
- console.error(i);
- }
- this.root.renderCell(n.position.row, n.position.column), this.changeCellValues(n, r);
- break;
- }
- case Ve.COPY_CELLS: {
- const { data: n, dataAsString: r, range: i } = e;
- this.copy(i, n, r);
- break;
- }
- }
- }
- changeCellValues(e, n = !0) {
- var r, i;
- n && ((i = (r = this.root.config).onCellChange) == null || i.call(r, e));
- }
-}
-class Gt {
- constructor(e, n) {
- U(this, "x");
- U(this, "y");
- U(this, "width");
- U(this, "height");
- this.x = this.getXCoord(n.column, e), this.y = this.getYCoord(n.row, e), this.width = e.columns[n.column].width, this.height = e.rows[n.row].height;
- }
- getXCoord(e, n) {
- let r = 0;
- for (let i = 0; i < e; i++)
- r += n.columns[i].width;
- return r;
- }
- getYCoord(e, n) {
- let r = 0;
- for (let i = 0; i < e; i++)
- r += n.rows[i].height;
- return r;
- }
-}
-class Xs {
- constructor(e) {
- U(this, "element");
- U(this, "root");
- U(this, "handleKeydown", (e) => {
- const { key: n } = e;
- switch (n) {
- case "Escape": {
- this.hide();
- break;
- }
- case "Enter": {
- if (!this.root.selection.selectedCell)
- return;
- this.root.changeCellValues(this.root.selection.selectedCell, {
- value: this.element.value,
- displayValue: this.element.value
- }), this.root.events.dispatch({
- type: Ve.CELL_CHANGE,
- cell: this.root.getCell(this.root.selection.selectedCell)
- }), this.hide(), this.root.renderSelection();
- }
- }
- });
- U(this, "handleClickOutside", (e) => {
- const n = e.target;
- this.element.contains(n) || this.hide();
- });
- this.root = e;
- const n = document.createElement("input");
- n.classList.add(Wt + "editor"), this.element = n, this.hide();
- }
- hide() {
- this.element.style.display = "none", this.element.classList.add("hide"), this.element.blur(), window.removeEventListener("click", this.handleClickOutside), this.element.removeEventListener("keydown", this.handleKeydown), this.root.focusTable();
- }
- show(e, n) {
- const { height: r, width: i, x: a, y: c } = new Gt(this.root.config, e), h = this.root.getCell(e);
- this.element.classList.remove("hide"), this.element.style.top = c - this.root.viewport.top + this.root.columnsBarHeight + "px", this.element.style.left = a - this.root.viewport.left + this.root.rowsBarWidth + "px", this.element.style.width = i + "px", this.element.style.height = r + "px", this.element.style.display = "block", window.addEventListener("click", this.handleClickOutside), this.element.addEventListener("keydown", this.handleKeydown), this.element.value = n || h.value, this.element.focus(), n || this.element.select();
- }
-}
-function ri(t, e) {
- return t.column === e.column && t.row === e.row;
-}
-class Qs {
- constructor(e) {
- U(this, "element");
- U(this, "verticalScroller");
- U(this, "horizontalScroller");
- U(this, "root");
- U(this, "isSelecting", !1);
- U(this, "handleMouseMove", (e) => {
- if (!this.isSelecting)
- return;
- const { offsetX: n, offsetY: r } = e, i = this.root.getCellByCoords(n, r);
- let a = !1;
- this.root.selection.selectedRange && (a = !ri(this.root.selection.selectedRange.to, i), a && (this.root.selection.selectedRange.to = i, this.root.events.dispatch({
- type: Ve.SELECTION_CHANGE,
- selection: this.root.selection,
- enableCallback: !0
- })));
- });
- U(this, "handleMouseUp", () => {
- this.isSelecting = !1;
- const e = { ...this.root.selection };
- this.root.selection.selectedRange && ri(this.root.selection.selectedRange.from, this.root.selection.selectedRange.to) && (e.selectedRange = null, this.root.events.dispatch({
- type: Ve.SELECTION_CHANGE,
- selection: e,
- enableCallback: !1
- })), this.root.renderSheet(), this.root.renderColumnsBar(), this.root.renderRowsBar();
- });
- U(this, "handleDoubleClick", (e) => {
- e.preventDefault();
- const n = this.root.getCellByCoords(e.offsetX, e.offsetY);
- this.root.showEditor(n);
- });
- U(this, "handleKeydown", (e) => {
- if (["ArrowLeft", "ArrowRight", "ArrowUp", "ArrowDown"].includes(e.key)) {
- switch (e.preventDefault(), this.root.selection.selectedRange = null, e.key) {
- case "ArrowLeft": {
- this.root.selection.selectedCell && this.root.selection.selectedCell.column > 0 && (this.root.selection.selectedCell.column -= 1);
- break;
- }
- case "ArrowRight": {
- this.root.selection.selectedCell && this.root.selection.selectedCell.column < this.root.config.columns.length - 1 && (this.root.selection.selectedCell.column += 1);
- break;
- }
- case "ArrowUp": {
- this.root.selection.selectedCell && this.root.selection.selectedCell.row > 0 && (this.root.selection.selectedCell.row -= 1);
- break;
- }
- case "ArrowDown": {
- this.root.selection.selectedCell && this.root.selection.selectedCell.row < this.root.config.rows.length - 1 && (this.root.selection.selectedCell.row += 1);
- break;
- }
- }
- this.root.events.dispatch({
- type: Ve.SELECTION_CHANGE,
- selection: this.root.selection,
- enableCallback: !0
- });
- }
- const n = /^([a-z]|[а-я]|[0-9]|=)$/;
- if (!e.metaKey && !e.ctrlKey) {
- const r = n.test(e.key.toLowerCase());
- if (e.key === "F2" || r) {
- if (e.preventDefault(), !this.root.selection.selectedCell)
- return;
- this.root.showEditor(this.root.selection.selectedCell, r ? e.key : void 0);
- }
- }
- if (e.key === "Delete" && (e.preventDefault(), this.root.deleteSelectedCellsValues(), this.root.renderSheet()), e.metaKey || e.ctrlKey) {
- if (e.code === "KeyC") {
- let r;
- const i = new br();
- if (this.root.selection.selectedRange) {
- const { from: a, to: c } = this.root.selection.selectedRange;
- i.selectedRange = this.root.selection.selectedRange, r = [...this.root.data.slice(a.row, c.row + 1).map((u) => u.slice(a.column, c.column + 1))];
- } else if (this.root.selection.selectedCell) {
- const { column: a, row: c } = this.root.selection.selectedCell;
- r = [[this.root.data[c][a]]], i.selectedRange = {
- from: this.root.selection.selectedCell,
- to: this.root.selection.selectedCell
- };
- } else
- return;
- this.root.clipboard.copy(r, i.selectedRange);
- return;
- }
- e.code;
- }
- });
- U(this, "handleClick", (e) => {
- this.root.events.dispatch({
- type: Ve.CELL_CLICK,
- event: e,
- scroller: this
- });
- });
- U(this, "handleScroll", () => {
- const e = this.getViewportBoundlingRect();
- this.root.viewport.updateValues(e), this.root.renderSheet(), this.root.renderColumnsBar(), this.root.renderRowsBar();
- });
- this.root = e;
- const { horizontalScroller: n, scroller: r, verticalScroller: i } = this.buildComponent();
- this.element = r, this.verticalScroller = i, this.horizontalScroller = n, this.element.style.height = this.root.config.view.height + "px", this.element.style.width = this.root.config.view.width + "px", this.element.style.top = this.root.columnsBarHeight + "px", this.element.style.left = this.root.rowsBarWidth + "px", this.element.tabIndex = -1, this.updateScrollerSize(), this.element.addEventListener("scroll", this.handleScroll), this.element.addEventListener("mousedown", this.handleClick), this.element.addEventListener("mousemove", this.handleMouseMove), this.element.addEventListener("mouseup", this.handleMouseUp), this.element.addEventListener("dblclick", this.handleDoubleClick), this.element.addEventListener("keydown", this.handleKeydown), this.element.addEventListener("paste", (a) => {
- this.root.selection.selectedCell && this.root.clipboard.paste(this.root, this.root.selection.selectedCell, a);
- });
- }
- setSelectingMode(e) {
- this.isSelecting = e;
- }
- getViewportBoundlingRect() {
- const { scrollTop: e, scrollLeft: n } = this.element, { height: r, width: i } = this.element.getBoundingClientRect(), a = e + r, c = n + i;
- return {
- top: e,
- left: n,
- bottom: a,
- right: c
- };
- }
- buildComponent() {
- const e = document.createElement("div"), n = document.createElement("div"), r = document.createElement("div"), i = document.createElement("div"), a = document.createElement("div");
- return n.style.width = "0px", n.style.pointerEvents = "none", r.style.pointerEvents = "none", i.style.display = "flex", a.appendChild(n), a.appendChild(r), i.appendChild(a), this.verticalScroller = n, this.horizontalScroller = r, e.appendChild(i), e.contentEditable = "false", e.classList.add(Wt + "scroller"), { scroller: e, verticalScroller: n, horizontalScroller: r };
- }
- getActualHeight() {
- return this.root.config.rows.reduce((e, n) => (e += n.height, e), 0);
- }
- getActualWidth() {
- return this.root.config.columns.reduce((e, n) => (e += n.width, e), 0);
- }
- updateScrollerSize() {
- const e = this.getActualHeight(), n = this.getActualWidth();
- this.setScrollerHeight(e), this.setScrollerWidth(n);
- }
- setScrollerHeight(e) {
- this.verticalScroller.style.height = e + "px";
- }
- setScrollerWidth(e) {
- this.horizontalScroller.style.width = e + "px";
- }
-}
-class vo {
- constructor(e) {
- U(this, "fontSize", 16);
- U(this, "fontColor", "black");
- U(this, "background", "white");
- U(this, "borderColor", "black");
- U(this, "selectedBackground", "#4287f5");
- U(this, "selectedFontColor", "#ffffff");
- e && Object.assign(this, e);
- }
-}
-class Zs {
- constructor(e, n) {
- U(this, "row");
- U(this, "column");
- this.row = e, this.column = n;
- }
-}
-class Js {
- constructor(e) {
- U(this, "value");
- U(this, "displayValue");
- U(this, "resultValue");
- U(this, "position");
- U(this, "style");
- this.value = e.value, this.displayValue = e.displayValue, this.resultValue = e.resultValue, this.position = e.position, this.style = e.style;
- }
-}
-let Fr = class {
- constructor(e) {
- /** True value (data) */
- U(this, "value");
- /** Value to render */
- U(this, "displayValue");
- /** This refers to the values that were obtained by calculations, for example, after calculating the formula */
- U(this, "resultValue");
- U(this, "position");
- U(this, "style", null);
- U(this, "cellsDependsOnThisCell", []);
- U(this, "dependedFromCells", []);
- this.value = e.value, this.displayValue = e.displayValue, this.resultValue = e.resultValue, this.position = e.position, this.style = e.style;
- }
- getSerializableCell() {
- return new Js({
- displayValue: this.displayValue,
- position: this.position,
- resultValue: this.resultValue,
- style: this.style,
- value: this.value
- });
- }
- changeStyles(e) {
- this.style = e;
- }
- changeValues(e) {
- Object.assign(this, e);
- }
- evalFormula(e) {
- this.value.substring(0, 1) === "=" && (this.resultValue = e.parser.parse(this.value.slice(1), {
- col: this.position.column,
- row: this.position.row
- }));
- }
- // private isCellInRange(root: Spreadsheet): boolean {
- // const { column, row } = this.position;
- // const { selectedRange } = root.selection;
- // if (!selectedRange) return false;
- // const isCellInRow =
- // row >= Math.min(selectedRange.from.row, selectedRange.to.row) &&
- // row <= Math.max(selectedRange.to.row, selectedRange.from.row);
- // const isCellInCol =
- // column >= Math.min(selectedRange.from.column, selectedRange.to.column) &&
- // column <= Math.max(selectedRange.to.column, selectedRange.from.column);
- // return isCellInCol && isCellInRow;
- // }
- render(e) {
- const n = new Gt(e.config, this.position);
- let { x: r, y: i } = n;
- const { height: a, width: c } = n, { ctx: h } = e;
- i -= e.viewport.top, r -= e.viewport.left;
- const p = this.style ?? e.styles.cells;
- h.clearRect(r, i, c, a), h.fillStyle = p.background, h.strokeStyle = "black", h.fillRect(r, i, c - 1, a - 1), h.strokeRect(r, i, c, a), h.fillStyle = p.fontColor, h.textAlign = "left", h.font = `${p.fontSize}px Arial`, h.textBaseline = "middle", h.fillText(this.displayValue, r + 2, i + a / 2);
- }
-}, js = class {
- constructor(e) {
- U(this, "element");
- U(this, "ctx");
- U(this, "root");
- this.root = e;
- const n = document.createElement("canvas");
- n.classList.add(Wt + "sheet"), n.height = this.root.config.view.height, n.width = this.root.config.view.width, n.style.width = this.root.config.view.width + "px", n.style.height = this.root.config.view.height + "px", n.style.left = "0px", this.element = n;
- const r = this.element.getContext("2d");
- if (!r)
- throw new Error("Enable hardware acceleration");
- this.ctx = r;
- }
- getCellByCoords(e, n) {
- let r = 0, i = 0;
- for (; i <= n && (i += this.root.config.rows[r].height, !(i >= n)); )
- r++;
- let a = 0, c = 0;
- for (; c <= e && (c += this.root.config.columns[a].width, !(c >= e)); )
- a++;
- return new Zs(r, a);
- }
- renderCell(e) {
- const { column: n, row: r } = e;
- this.root.data[r][n].render(this.root);
- }
- getSelectionRange() {
- const { selectedCell: e, selectedRange: n } = this.root.selection;
- if (!(!e && !n)) {
- if (n) {
- const r = Math.min(n.from.row, n.to.row), i = Math.min(n.from.column, n.to.column), a = Math.max(n.from.row, n.to.row), c = Math.max(n.from.column, n.to.column), h = new Gt(this.root.config, {
- row: r,
- column: i
- });
- let p = 0;
- for (let l = i; l <= c; l++)
- p += this.root.config.columns[l].width;
- let u = 0;
- for (let l = r; l <= a; l++)
- u += this.root.config.rows[l].height;
- const o = h.x - this.root.viewport.left, s = h.y - this.root.viewport.top;
- return { x: o, y: s, height: u, width: p };
- }
- if (!n && e) {
- const r = new Gt(this.root.config, e);
- return r.x -= this.root.viewport.left, r.y -= this.root.viewport.top, r;
- }
- }
- }
- renderSelectionRange(e, n, r, i) {
- this.ctx.save(), this.ctx.strokeStyle = "#7da8ff", this.ctx.lineWidth = 3, this.ctx.strokeRect(e, n, r, i), this.ctx.fillStyle = "#7da8ff35", this.ctx.fillRect(e, n, r, i), this.ctx.restore();
- }
- renderSelection() {
- const e = this.getSelectionRange();
- if (!e)
- return;
- const { height: n, width: r, x: i, y: a } = e;
- this.renderSelectionRange(i, a, r, n);
- }
- renderSheet() {
- const e = this.root.viewport.firstRow, n = this.root.viewport.lastCol + 3, r = this.root.viewport.lastRow + 3, i = this.root.viewport.firstCol;
- for (let a = e; a <= r; a++)
- for (let c = i; c <= n && !(!this.root.config.columns[c] || !this.root.config.rows[a]); c++)
- this.renderCell({ column: c, row: a });
- this.renderSelection();
- }
-};
-class ea {
- constructor(e) {
- U(this, "element");
- U(this, "root");
- this.root = e;
- const n = document.createElement("div");
- n.classList.add(Wt + "spreadsheet_container"), this.element = n, this.changeElementSizes(this.root.viewProps);
- }
- changeElementSizes(e) {
- const { height: n, width: r } = e;
- this.element.style.width = r + this.root.rowsBarWidth + "px", this.element.style.height = n + this.root.columnsBarHeight + "px";
- }
-}
-class ta {
- constructor(e) {
- U(this, "element");
- U(this, "root");
- U(this, "height", 0);
- this.root = e;
- const n = document.createElement("div");
- n.classList.add(Wt + "toolbar"), this.element = n;
- }
-}
-class Ir {
- constructor(e) {
- U(this, "rows");
- U(this, "columns");
- U(this, "view", {
- width: 800,
- height: 600
- });
- U(this, "onCellClick", null);
- U(this, "onSelectonChange", null);
- U(this, "onCellChange", null);
- U(this, "onCopy");
- this.columns = e.columns, this.rows = e.rows, this.view = e.view, this.onCellClick = e.onCellClick ?? null, this.onSelectonChange = e.onSelectionChange ?? null, this.onCellChange = e.onCellChange ?? null, this.onCopy = e.onCopy ?? null;
- }
-}
-class br {
- constructor() {
- U(this, "selectedCell", null);
- U(this, "selectedRange", null);
- }
-}
-class na {
- constructor() {
- U(this, "cells");
- this.cells = new vo();
- }
-}
-class ii {
- constructor(e, n) {
- U(this, "root");
- U(this, "top");
- U(this, "left");
- U(this, "right");
- U(this, "bottom");
- U(this, "firstRow");
- U(this, "lastRow");
- U(this, "firstCol");
- U(this, "lastCol");
- this.root = e, this.top = n.top, this.left = n.left, this.right = n.right, this.bottom = n.bottom, this.firstRow = this.getFirstRow(), this.lastCol = this.getFirstRow();
- //!Temp
- this.firstCol = this.getFirstRow();
- //!Temp
- this.lastRow = this.getLastRow(), this.updateValues({
- top: 0,
- left: 0,
- right: this.root.viewProps.width,
- bottom: this.root.viewProps.height
- });
- }
- updateValues(e) {
- this.top = e.top, this.left = e.left, this.right = e.right, this.bottom = e.bottom, this.firstRow = this.getFirstRow(), this.lastRow = this.getLastRow(), this.firstCol = this.getFirstCol(), this.lastCol = this.getLastCol();
- }
- /** Get index of first row in viewport */
- getFirstRow() {
- return this.root.cache.getRowByYCoord(this.top);
- }
- getLastRow() {
- return this.root.cache.getRowByYCoord(this.bottom);
- }
- getFirstCol() {
- return this.root.cache.getColumnByXCoord(this.left);
- }
- getLastCol() {
- return this.root.cache.getColumnByXCoord(this.right);
- }
-}
-let go = class {
- constructor(e) {
- U(this, "width");
- U(this, "title");
- this.width = e.width, this.title = e.title;
- }
-};
-class Eo {
- constructor(e) {
- U(this, "height");
- U(this, "title");
- this.height = e.height, this.title = e.title;
- }
-}
-function mo(t, e, n = !1) {
- const r = [];
- for (let i = 0; i <= t; i++) {
- const a = [];
- for (let c = 0; c <= e; c++) {
- const h = n ? `${i}:${c}` : "", p = new Fr({
- displayValue: h,
- resultValue: h,
- value: h,
- position: {
- column: c,
- row: i
- },
- style: null
- });
- a.push(p);
- }
- r.push(a);
- }
- return r;
-}
-function ra(t, e) {
- const n = [];
- for (let a = 0; a <= t; a++) {
- const c = new Eo({
- height: 40,
- title: String(a)
- });
- n.push(c);
- }
- const r = [];
- for (let a = 0; a <= e; a++) {
- const c = new go({
- title: String(a),
- width: 150
- });
- r.push(c);
- }
- return new Ir({
- columns: r,
- rows: n,
- view: {
- height: 600,
- width: 800
- }
- });
-}
-function Bh(t, e) {
- const n = mo(t, e), r = ra(t, e);
- return { data: n, config: r };
-}
-class ia {
- constructor(e) {
- U(this, "xPos");
- U(this, "colIdx");
- this.xPos = e.xPos, this.colIdx = e.colIdx;
- }
-}
-class oa {
- constructor(e) {
- U(this, "yPos");
- U(this, "rowIdx");
- this.yPos = e.yPos, this.rowIdx = e.rowIdx;
- }
-}
-class sa {
- constructor(e) {
- U(this, "columns");
- U(this, "rows");
- this.columns = e.columns, this.rows = e.rows;
- }
- getRowByYCoord(e) {
- let n = 0;
- for (let r = 0; r < this.rows.length && (n = r, !(e <= this.rows[r].yPos)); r++)
- ;
- return n;
- }
- getColumnByXCoord(e) {
- let n = 0;
- for (let r = 0; r < this.columns.length && (n = r, !(e <= this.columns[r].xPos)); r++)
- ;
- return n;
- }
-}
-class aa {
- constructor(e) {
- U(this, "element");
- U(this, "root");
- U(this, "height", 35);
- U(this, "width");
- // private resizerWidth = 1;
- U(this, "ctx");
- this.root = e, this.element = this.createElement();
- const n = this.element.getContext("2d");
- if (!n)
- throw new Error("Enable hardware acceleration");
- this.ctx = n, this.width = this.root.viewProps.width;
- }
- createElement() {
- const e = document.createElement("canvas");
- return e.style.position = "absolute", e.style.height = this.height + "px", e.style.width = this.root.viewProps.width + "px", e.style.display = "block", e.style.borderLeft = "1px solid black", e.width = this.root.viewProps.width, e.height = this.height, e;
- }
- setElementPosition(e, n) {
- this.element.style.top = e + "px", this.element.style.left = n + "px";
- }
- isColumnSelected(e) {
- const { selectedCell: n, selectedRange: r } = this.root.selection;
- return n && n.column === e ? !0 : r ? e >= Math.min(r.from.column, r.to.column) && e <= Math.max(r.from.column, r.to.column) : !1;
- }
- // private getYCoordWithOffset(renderBox: RenderBox): number {
- // const {y} = renderBox
- // return y + this.root.toolbarHeight
- // }
- // private getXCoordWithOffset(renderBox: RenderBox): number {
- // const {x} = renderBox
- // return x
- // }
- renderText(e, n) {
- const { width: r, x: i } = n;
- this.ctx.fillStyle = "black", this.ctx.textAlign = "center", this.ctx.textBaseline = "middle", this.ctx.font = "12px Arial", this.ctx.fillText(this.root.config.columns[e].title, i + r / 2 - this.root.viewport.left, 0 + this.height / 2);
- }
- renderRect(e, n) {
- const { width: r, x: i } = n, a = this.isColumnSelected(e);
- this.ctx.fillStyle = a ? "#c7ebff" : "white", this.ctx.strokeStyle = "black", this.ctx.lineWidth = 1;
- const c = i - this.root.viewport.left;
- this.ctx.fillRect(c - 1, 0, r, this.height), this.ctx.strokeRect(c - 1, 0, r, this.height);
- }
- renderSingleColumn(e) {
- const n = new Gt(this.root.config, {
- row: 0,
- column: e
- });
- this.renderRect(e, n), this.renderText(e, n);
- }
- renderBar() {
- const e = this.root.viewport.lastCol + 3, n = this.root.viewport.firstCol;
- this.ctx.beginPath(), this.ctx.strokeStyle = "black", this.ctx.lineWidth = 1, this.ctx.moveTo(0, 0), this.ctx.lineTo(0, this.height), this.ctx.closePath(), this.ctx.stroke();
- for (let r = n; r <= e && this.root.config.columns[r]; r++)
- this.renderSingleColumn(r);
- }
-}
-class ca {
- constructor(e) {
- U(this, "element");
- U(this, "ctx");
- U(this, "root");
- U(this, "width", 35);
- U(this, "height");
- U(this, "resizerHeight", 1);
- this.root = e, this.element = this.createElement();
- const n = this.element.getContext("2d");
- if (!n)
- throw new Error("Enable hardware acceleration");
- this.ctx = n, this.height = this.root.viewProps.height;
- }
- createElement() {
- const e = document.createElement("canvas");
- return e.style.position = "absolute", e.style.height = this.root.viewProps.height + "px", e.style.width = this.width + "px", e.style.display = "block", e.style.borderTop = "1px solid black", e.width = this.width, e.height = this.root.viewProps.height, e;
- }
- setElementPosition(e, n) {
- this.element.style.top = e + "px", this.element.style.left = n + "px";
- }
- isRowSelected(e) {
- const { selectedCell: n, selectedRange: r } = this.root.selection;
- return n && n.row === e ? !0 : r ? e >= Math.min(r.from.row, r.to.row) && e <= Math.max(r.from.row, r.to.row) : !1;
- }
- renderText(e, n) {
- const { y: r, height: i } = n;
- this.ctx.fillStyle = "black", this.ctx.textAlign = "center", this.ctx.textBaseline = "middle", this.ctx.font = "12px Arial", this.ctx.fillText(this.root.config.rows[e].title, this.width / 2, r - this.root.viewport.top + i / 2);
- }
- renderRect(e, n) {
- const { y: r, height: i } = n, a = this.isRowSelected(e);
- this.ctx.fillStyle = a ? "#c7ebff" : "white", this.ctx.strokeStyle = "black", this.ctx.lineWidth = this.resizerHeight;
- const c = r - this.root.viewport.top;
- this.ctx.fillRect(0, c - 1, this.width, i), this.ctx.strokeRect(0, c - 1, this.width, i);
- }
- renderSingleRow(e) {
- const n = new Gt(this.root.config, {
- column: 0,
- row: e
- });
- this.renderRect(e, n), this.renderText(e, n);
- }
- renderBar() {
- const e = this.root.viewport.lastRow + 3, n = this.root.viewport.firstRow;
- this.ctx.beginPath(), this.ctx.moveTo(0, 0), this.ctx.strokeStyle = "black", this.ctx.lineWidth = 16, this.ctx.lineTo(35, 0), this.ctx.closePath(), this.ctx.stroke();
- for (let r = n; r <= e && this.root.config.rows[r]; r++)
- this.renderSingleRow(r);
- }
-}
-class la {
- constructor(e) {
- U(this, "saved", null);
- U(this, "root");
- this.root = e;
- }
- copy(e, n) {
- const r = e.map((i) => i.map((a) => a.displayValue).join(" ")).join(`
-`);
- this.saved = e, navigator.clipboard.writeText(r), this.root.events.dispatch({
- type: Ve.COPY_CELLS,
- data: e,
- dataAsString: r,
- range: n
- });
- }
- paste(e, { column: n, row: r }, i) {
- if (!this.saved) {
- if (!i.clipboardData)
- return;
- const h = i.clipboardData.getData("text");
- try {
- const u = h.split(`
-`).map((l) => l.split(" ")).map((l) => l.map((f) => {
- const v = {
- displayValue: f,
- position: {
- column: n,
- row: r
- },
- resultValue: f,
- style: new vo(),
- value: f
- };
- return new Fr(v);
- })), o = u.length, s = u[0] ? u[0].length : 0;
- for (let l = 0; l < o; l++)
- for (let f = 0; f < s; f++) {
- const v = u[l][f], d = {
- column: n + f,
- row: r + l
- }, g = {
- displayValue: v.displayValue,
- value: v.value,
- style: v.style
- };
- e.changeCellValues(d, g, !1);
- }
- } catch (p) {
- console.error("Cannot read clipboard. ", p);
- }
- e.renderSheet();
- return;
- }
- const a = this.saved.length, c = this.saved[0] ? this.saved[0].length : 0;
- for (let h = 0; h < a; h++)
- for (let p = 0; p < c; p++) {
- const u = this.saved[h][p], o = {
- column: n + p,
- row: r + h
- }, s = {
- displayValue: u.displayValue,
- value: u.value,
- style: u.style
- };
- e.changeCellValues(o, s, !1);
- }
- }
-}
-var Ro = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
-function ua(t) {
- return t && t.__esModule && Object.prototype.hasOwnProperty.call(t, "default") ? t.default : t;
-}
-function fa(t) {
- if (t.__esModule)
- return t;
- var e = t.default;
- if (typeof e == "function") {
- var n = function r() {
- if (this instanceof r) {
- var i = [null];
- i.push.apply(i, arguments);
- var a = Function.bind.apply(e, i);
- return new a();
- }
- return e.apply(this, arguments);
- };
- n.prototype = e.prototype;
- } else
- n = {};
- return Object.defineProperty(n, "__esModule", { value: !0 }), Object.keys(t).forEach(function(r) {
- var i = Object.getOwnPropertyDescriptor(t, r);
- Object.defineProperty(n, r, i.get ? i : {
- enumerable: !0,
- get: function() {
- return t[r];
- }
- });
- }), n;
-}
-let ha = class {
- constructor(e, n) {
- if (e == null && n == null)
- this._data = [], this._refs = [];
- else {
- if (e.length !== n.length)
- throw Error("Collection: data length should match references length.");
- this._data = e, this._refs = n;
- }
- }
- get data() {
- return this._data;
- }
- get refs() {
- return this._refs;
- }
- get length() {
- return this._data.length;
- }
- /**
- * Add data and references to this collection.
- * @param {{}} obj - data
- * @param {{}} ref - reference
- */
- add(e, n) {
- this._data.push(e), this._refs.push(n);
- }
-};
-var Gn = ha, or, oi;
-function ge() {
- if (oi)
- return or;
- oi = 1;
- const t = he(), e = Gn, n = {
- NUMBER: 0,
- ARRAY: 1,
- BOOLEAN: 2,
- STRING: 3,
- RANGE_REF: 4,
- // can be 'A:C' or '1:4', not only 'A1:C3'
- CELL_REF: 5,
- COLLECTIONS: 6,
- // Unions of references
- NUMBER_NO_BOOLEAN: 10
- }, r = [1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800, 39916800, 479001600, 6227020800, 87178291200, 1307674368e3, 20922789888e3, 355687428096e3, 6402373705728e3, 121645100408832e3, 243290200817664e4, 5109094217170944e4, 11240007277776077e5, 2585201673888498e7, 6204484017332394e8, 15511210043330986e9, 40329146112660565e10, 10888869450418352e12, 30488834461171387e13, 8841761993739702e15, 26525285981219107e16, 8222838654177922e18, 2631308369336935e20, 8683317618811886e21, 29523279903960416e22, 10333147966386145e24, 37199332678990125e25, 13763753091226346e27, 5230226174666011e29, 20397882081197444e30, 8159152832478977e32, 3345252661316381e34, 140500611775288e37, 6041526306337383e37, 2658271574788449e39, 11962222086548019e40, 5502622159812089e42, 25862324151116818e43, 12413915592536073e45, 6082818640342675e47, 30414093201713376e48, 15511187532873822e50, 8065817517094388e52, 42748832840600255e53, 2308436973392414e56, 12696403353658276e57, 7109985878048635e59, 40526919504877214e60, 23505613312828785e62, 13868311854568984e64, 832098711274139e67, 5075802138772248e68, 3146997326038794e70, 198260831540444e73, 12688693218588417e73, 8247650592082472e75, 5443449390774431e77, 3647111091818868e79, 24800355424368305e80, 1711224524281413e83, 11978571669969892e84, 8504785885678623e86, 61234458376886085e87, 44701154615126844e89, 3307885441519386e92, 248091408113954e95, 18854947016660504e95, 14518309202828587e97, 11324281178206297e99, 8946182130782976e101, 7156945704626381e103, 5797126020747368e105, 4753643337012842e107, 3945523969720659e109, 3314240134565353e111, 281710411438055e114, 24227095383672734e114, 2107757298379528e117, 18548264225739844e118, 1650795516090846e121, 14857159644817615e122, 1352001527678403e125, 12438414054641308e126, 11567725070816416e128, 1087366156656743e131, 1032997848823906e133, 9916779348709496e134, 9619275968248212e136, 9426890448883248e138, 9332621544394415e140, 9332621544394415e142], i = {};
- Object.keys(n).forEach((o) => {
- i[n[o]] = o;
- });
- class a {
- constructor() {
- this.Types = n, this.type2Number = {
- number: n.NUMBER,
- boolean: n.BOOLEAN,
- string: n.STRING,
- object: -1
- };
- }
- checkFunctionResult(s) {
- if (typeof s === "number") {
- if (isNaN(s))
- return t.VALUE;
- if (!isFinite(s))
- return t.NUM;
- }
- return s ?? t.NULL;
- }
- /**
- * Flatten an array
- * @param {Array} arr1
- * @returns {*}
- */
- flattenDeep(s) {
- return s.reduce((l, f) => Array.isArray(f) ? l.concat(this.flattenDeep(f)) : l.concat(f), []);
- }
- /**
- *
- * @param obj
- * @param isArray - if it is an array: [1,2,3], will extract the first element
- * @param allowBoolean - Allow parse boolean into number
- * @returns {number|FormulaError}
- */
- acceptNumber(s, l = !0, f = !0) {
- if (s instanceof t)
- return s;
- let v;
- if (typeof s == "number")
- v = s;
- else if (typeof s == "boolean")
- if (f)
- v = Number(s);
- else
- throw t.VALUE;
- else if (typeof s == "string") {
- if (s.length === 0 || (v = Number(s), v !== v))
- throw t.VALUE;
- } else if (Array.isArray(s))
- if (l)
- v = this.acceptNumber(s[0][0]);
- else if (s[0].length === 1)
- v = this.acceptNumber(s[0][0]);
- else
- throw t.VALUE;
- else
- throw Error("Unknown type in FormulaHelpers.acceptNumber");
- return v;
- }
- /**
- * Flatten parameters to 1D array.
- * @see {@link FormulaHelpers.accept}
- * @param {Array} params - Parameter that needs to flatten.
- * @param {Types|null} valueType - The type each item should be,
- * null if allows any type. This only applies to literals.
- * @param {boolean} allowUnion - Allow union, e.g. (A1:C1, E4:F3)
- * @param {function} hook - Invoked after parsing each item.
- * of the array.
- * @param {*} [defValue=null] - The value if an param is omitted. i.e. SUM(1,2,,,,,)
- * @param {number} [minSize=1] - The minimum size of the parameters
- */
- flattenParams(s, l, f, v, d = null, g = 1) {
- if (s.length < g)
- throw t.ARG_MISSING([l]);
- d == null && (d = l === n.NUMBER ? 0 : l == null ? null : ""), s.forEach((E) => {
- const { isCellRef: A, isRangeRef: m, isArray: N } = E, y = E.value instanceof e, R = !A && !m && !N && !y, T = { isLiteral: R, isCellRef: A, isRangeRef: m, isArray: N, isUnion: y };
- if (R)
- E.omitted ? E = d : E = this.accept(E, l, d), v(E, T);
- else if (A)
- v(E.value, T);
- else if (y) {
- if (!f)
- throw t.VALUE;
- E = E.value.data, E = this.flattenDeep(E), E.forEach((w) => {
- v(w, T);
- });
- } else
- (m || N) && (E = this.flattenDeep(E.value), E.forEach((w) => {
- v(w, T);
- }));
- });
- }
- /**
- * Check if the param valid, return the parsed param.
- * If type is not given, return the un-parsed param.
- * @param {*} param
- * @param {number|null} [type] - The expected type
- * NUMBER: Expect a single number,
- * ARRAY: Expect an flatten array,
- * BOOLEAN: Expect a single boolean,
- * STRING: Expect a single string,
- * COLLECTIONS: Expect an Array of the above types
- * null: Do not parse the value, return it directly.
- * The collection is not a flatted array.
- * @param {*} [defValue] - Default value if the param is not given.
- * if undefined, this param is required, a Error will throw if not given.
- * if null, and param is undefined, null will be returned.
- * @param {boolean} [flat=true] - If the array should be flattened,
- * only applicable when type is ARRAY.
- * If false, collection is disallowed.
- * @param {boolean} allowSingleValue - If pack single value into 2d array,
- * only applicable when type is ARRAY.
- * @return {string|number|boolean|{}|Array}
- */
- accept(s, l = null, f, v = !0, d = !1) {
- if (Array.isArray(l) && (l = l[0]), s == null && f === void 0)
- throw t.ARG_MISSING([l]);
- if (s == null)
- return f;
- if (typeof s != "object" || Array.isArray(s))
- return s;
- const g = s.isArray;
- if (s.value != null && (s = s.value), l == null)
- return s;
- if (s instanceof t)
- throw s;
- if (l === n.ARRAY) {
- if (Array.isArray(s))
- return v ? this.flattenDeep(s) : s;
- if (s instanceof e)
- throw t.VALUE;
- if (d)
- return v ? [s] : [[s]];
- throw t.VALUE;
- } else if (l === n.COLLECTIONS)
- return s;
- g && (s = s[0][0]);
- const E = this.type(s);
- if (l === n.STRING)
- E === n.BOOLEAN ? s = s ? "TRUE" : "FALSE" : s = `${s}`;
- else if (l === n.BOOLEAN) {
- if (E === n.STRING)
- throw t.VALUE;
- E === n.NUMBER && (s = !!s);
- } else if (l === n.NUMBER)
- s = this.acceptNumber(s, !1);
- else if (l === n.NUMBER_NO_BOOLEAN)
- s = this.acceptNumber(s, !1, !1);
- else
- throw t.VALUE;
- return s;
- }
- type(s) {
- let l = this.type2Number[typeof s];
- return l === -1 && (Array.isArray(s) ? l = n.ARRAY : s.ref ? s.ref.from ? l = n.RANGE_REF : l = n.CELL_REF : s instanceof e && (l = n.COLLECTIONS)), l;
- }
- isRangeRef(s) {
- return s.ref && s.ref.from;
- }
- isCellRef(s) {
- return s.ref && !s.ref.from;
- }
- /**
- * Helper function for SUMIF, AVERAGEIF,...
- * @param context
- * @param range1
- * @param range2
- */
- retrieveRanges(s, l, f) {
- return f = u.extend(l, f), l = this.retrieveArg(s, l), l = c.accept(l, n.ARRAY, void 0, !1, !0), f !== l ? (f = this.retrieveArg(s, f), f = c.accept(f, n.ARRAY, void 0, !1, !0)) : f = l, [l, f];
- }
- retrieveArg(s, l) {
- if (l === null)
- return { value: 0, isArray: !1, omitted: !0 };
- const f = s.utils.extractRefValue(l);
- return { value: f.val, isArray: f.isArray, ref: l.ref };
- }
- }
- const c = new a(), h = {
- /**
- * @param {string|*} obj
- * @returns {*}
- */
- isWildCard: (o) => typeof o == "string" ? /[*?]/.test(o) : !1,
- toRegex: (o, s) => RegExp(o.replace(/[.+^${}()|[\]\\]/g, "\\$&").replace(/([^~]??)[?]/g, "$1.").replace(/([^~]??)[*]/g, "$1.*").replace(/~([?*])/g, "$1"), s)
- }, p = {
- /**
- * Parse criteria, support comparison and wild card match.
- * @param {string|number} criteria
- * @return {{op: string, value: string|number|boolean|RegExp, match: boolean|undefined}} - The parsed criteria.
- */
- parse: (o) => {
- const s = typeof o;
- if (s === "string") {
- const l = o.toUpperCase();
- if (l === "TRUE" || l === "FALSE")
- return { op: "=", value: l === "TRUE" };
- const f = o.match(/(<>|>=|<=|>|<|=)(.*)/);
- if (f) {
- let v = f[1], d;
- if (isNaN(f[2])) {
- const g = f[2].toUpperCase();
- if (g === "TRUE" || g === "FALSE")
- d = g === "TRUE";
- else if (/#NULL!|#DIV\/0!|#VALUE!|#NAME\?|#NUM!|#N\/A|#REF!/.test(f[2]))
- d = new t(f[2]);
- else if (d = f[2], h.isWildCard(d))
- return { op: "wc", value: h.toRegex(d), match: v === "=" };
- } else
- d = Number(f[2]);
- return { op: v, value: d };
- } else
- return h.isWildCard(o) ? { op: "wc", value: h.toRegex(o), match: !0 } : { op: "=", value: o };
- } else {
- if (s === "boolean" || s === "number" || Array.isArray(o) || o instanceof t)
- return { op: "=", value: o };
- throw Error(`Criteria.parse: type ${typeof o} not support`);
- }
- }
- }, u = {
- columnNumberToName: (o) => {
- let s = o, l = "", f = 0;
- for (; s > 0; )
- f = (s - 1) % 26, l = String.fromCharCode("A".charCodeAt(0) + f) + l, s = Math.floor((s - f) / 26);
- return l;
- },
- columnNameToNumber: (o) => {
- o = o.toUpperCase();
- const s = o.length;
- let l = 0;
- for (let f = 0; f < s; f++) {
- const v = o.charCodeAt(f);
- isNaN(v) || (l += (v - 64) * 26 ** (s - f - 1));
- }
- return l;
- },
- /**
- * Extend range2 to match with the dimension in range1.
- * @param {{ref: {}}} range1
- * @param {{ref: {}}} [range2]
- */
- extend: (o, s) => {
- if (s == null)
- return o;
- let l, f;
- if (c.isCellRef(o))
- l = 0, f = 0;
- else if (c.isRangeRef(o))
- l = o.ref.to.row - o.ref.from.row, f = o.ref.to.col - o.ref.from.col;
- else
- throw Error("Address.extend should not reach here.");
- return c.isCellRef(s) ? (l > 0 || f > 0) && (s = {
- ref: {
- from: { col: s.ref.col, row: s.ref.row },
- to: { row: s.ref.row + l, col: s.ref.col + f }
- }
- }) : (s.ref.to.row = s.ref.from.row + l, s.ref.to.col = s.ref.from.col + f), s;
- }
- };
- return or = {
- FormulaHelpers: c,
- Types: n,
- ReversedTypes: i,
- Factorials: r,
- WildCard: h,
- Criteria: p,
- Address: u
- }, or;
-}
-var sr, si;
-function he() {
- if (si)
- return sr;
- si = 1;
- class t extends Error {
- /**
- * @param {string} error - error code, i.e. #NUM!
- * @param {string} [msg] - detailed error message
- * @param {object|Error} [details]
- * @returns {FormulaError}
- */
- constructor(n, r, i) {
- if (super(r), r == null && i == null && t.errorMap.has(n))
- return t.errorMap.get(n);
- r == null && i == null ? (this._error = n, t.errorMap.set(n, this)) : this._error = n, this.details = i;
- }
- /**
- * Get the error name.
- * @returns {string} formula error
- */
- get error() {
- return this._error;
- }
- get name() {
- return this._error;
- }
- /**
- * Return true if two errors are same.
- * @param {FormulaError} err
- * @returns {boolean} if two errors are same.
- */
- equals(n) {
- return n instanceof t && n._error === this._error;
- }
- /**
- * Return the formula error in string representation.
- * @returns {string} the formula error in string representation.
- */
- toString() {
- return this._error;
- }
- }
- return t.errorMap = /* @__PURE__ */ new Map(), t.DIV0 = new t("#DIV/0!"), t.NA = new t("#N/A"), t.NAME = new t("#NAME?"), t.NULL = new t("#NULL!"), t.NUM = new t("#NUM!"), t.REF = new t("#REF!"), t.VALUE = new t("#VALUE!"), t.NOT_IMPLEMENTED = (e) => new t("#NAME?", `Function ${e} is not implemented.`), t.TOO_MANY_ARGS = (e) => new t("#N/A", `Function ${e} has too many arguments.`), t.ARG_MISSING = (e) => {
- const { Types: n } = ge();
- return new t("#N/A", `Argument type ${e.map((r) => n[r]).join(", ")} is missing.`);
- }, t.ERROR = (e, n) => new t("#ERROR!", e, n), sr = t, sr;
-}
-let _e = class {
-};
-_e.version = "0.10.3";
-function bt(t) {
- let e = "", n = t.length - 1;
- for (; n >= 0; )
- e += t.charAt(n--);
- return e;
-}
-function ke(t, e) {
- let n = "";
- for (; n.length < e; )
- n += t;
- return n;
-}
-function Xe(t, e) {
- let n = "" + t;
- return n.length >= e ? n : ke("0", e - n.length) + n;
-}
-function ar(t, e) {
- let n = "" + t;
- return n.length >= e ? n : ke(" ", e - n.length) + n;
-}
-function hn(t, e) {
- let n = "" + t;
- return n.length >= e ? n : n + ke(" ", e - n.length);
-}
-function pa(t, e) {
- let n = "" + Math.round(t);
- return n.length >= e ? n : ke("0", e - n.length) + n;
-}
-function da(t, e) {
- let n = "" + t;
- return n.length >= e ? n : ke("0", e - n.length) + n;
-}
-const ai = Math.pow(2, 32);
-function Dt(t, e) {
- if (t > ai || t < -ai)
- return pa(t, e);
- const n = Math.round(t);
- return da(n, e);
-}
-function Ln(t, e) {
- return e = e || 0, t.length >= 7 + e && (t.charCodeAt(e) | 32) === 103 && (t.charCodeAt(e + 1) | 32) === 101 && (t.charCodeAt(e + 2) | 32) === 110 && (t.charCodeAt(e + 3) | 32) === 101 && (t.charCodeAt(e + 4) | 32) === 114 && (t.charCodeAt(e + 5) | 32) === 97 && (t.charCodeAt(e + 6) | 32) === 108;
-}
-const ci = [
- ["Sun", "Sunday"],
- ["Mon", "Monday"],
- ["Tue", "Tuesday"],
- ["Wed", "Wednesday"],
- ["Thu", "Thursday"],
- ["Fri", "Friday"],
- ["Sat", "Saturday"]
-], cr = [
- ["J", "Jan", "January"],
- ["F", "Feb", "February"],
- ["M", "Mar", "March"],
- ["A", "Apr", "April"],
- ["M", "May", "May"],
- ["J", "Jun", "June"],
- ["J", "Jul", "July"],
- ["A", "Aug", "August"],
- ["S", "Sep", "September"],
- ["O", "Oct", "October"],
- ["N", "Nov", "November"],
- ["D", "Dec", "December"]
-];
-function No(t) {
- t[0] = "General", t[1] = "0", t[2] = "0.00", t[3] = "#,##0", t[4] = "#,##0.00", t[9] = "0%", t[10] = "0.00%", t[11] = "0.00E+00", t[12] = "# ?/?", t[13] = "# ??/??", t[14] = "m/d/yy", t[15] = "d-mmm-yy", t[16] = "d-mmm", t[17] = "mmm-yy", t[18] = "h:mm AM/PM", t[19] = "h:mm:ss AM/PM", t[20] = "h:mm", t[21] = "h:mm:ss", t[22] = "m/d/yy h:mm", t[37] = "#,##0 ;(#,##0)", t[38] = "#,##0 ;[Red](#,##0)", t[39] = "#,##0.00;(#,##0.00)", t[40] = "#,##0.00;[Red](#,##0.00)", t[45] = "mm:ss", t[46] = "[h]:mm:ss", t[47] = "mmss.0", t[48] = "##0.0E+0", t[49] = "@", t[56] = '"上午/下午 "hh"時"mm"分"ss"秒 "', t[65535] = "General";
-}
-const _t = {};
-No(_t);
-function pn(t, e, n) {
- const r = t < 0 ? -1 : 1;
- let i = t * r, a = 0, c = 1, h = 0, p = 1, u = 0, o = 0, s = Math.floor(i);
- for (; u < e && (s = Math.floor(i), h = s * c + a, o = s * u + p, !(i - s < 5e-8)); )
- i = 1 / (i - s), a = c, c = h, p = u, u = o;
- if (o > e && (u > e ? (o = p, h = a) : (o = u, h = c)), !n)
- return [0, r * h, o];
- const l = Math.floor(r * h / o);
- return [l, r * h - l * o, o];
-}
-function Zt(t, e, n) {
- if (t > 2958465 || t < 0)
- return null;
- let r = t | 0, i = Math.floor(86400 * (t - r)), a = 0, c = [];
- const h = { D: r, T: i, u: 86400 * (t - r) - i, y: 0, m: 0, d: 0, H: 0, M: 0, S: 0, q: 0 };
- if (Math.abs(h.u) < 1e-6 && (h.u = 0), e && e.date1904 && (r += 1462), h.u > 0.9999 && (h.u = 0, ++i === 86400 && (h.T = i = 0, ++r, ++h.D)), r === 60)
- c = n ? [1317, 10, 29] : [1900, 2, 29], a = 3;
- else if (r === 0)
- c = n ? [1317, 8, 29] : [1900, 1, 0], a = 6;
- else {
- r > 60 && --r;
- const p = new Date(1900, 0, 1);
- p.setDate(p.getDate() + r - 1), c = [p.getFullYear(), p.getMonth() + 1, p.getDate()], a = p.getDay(), r < 60 && (a = (a + 6) % 7), n && (a = Ea());
- }
- return h.y = c[0], h.m = c[1], h.d = c[2], h.S = i % 60, i = Math.floor(i / 60), h.M = i % 60, i = Math.floor(i / 60), h.H = i, h.q = a, h;
-}
-_e.parse_date_code = Zt;
-const Ao = new Date(1899, 11, 31, 0, 0, 0), va = Ao.getTime(), ga = new Date(1900, 2, 1, 0, 0, 0);
-function yo(t, e) {
- let n = t.getTime();
- return e ? n -= 1461 * 24 * 60 * 60 * 1e3 : t >= ga && (n += 24 * 60 * 60 * 1e3), (n - (va + (t.getTimezoneOffset() - Ao.getTimezoneOffset()) * 6e4)) / (24 * 60 * 60 * 1e3);
-}
-function To(t) {
- return t.toString(10);
-}
-_e._general_int = To;
-const wo = function() {
- const e = /\.(\d*[1-9])0+$/, n = /\.0*$/, r = /\.(\d*[1-9])0+/, i = /\.0*[Ee]/, a = /(E[+-])(\d)$/;
- function c(o) {
- const s = o < 0 ? 12 : 11;
- let l = u(o.toFixed(12));
- return l.length <= s || (l = o.toPrecision(10), l.length <= s) ? l : o.toExponential(5);
- }
- function h(o) {
- let s = o.toFixed(11).replace(e, ".$1");
- return s.length > (o < 0 ? 12 : 11) && (s = o.toPrecision(6)), s;
- }
- function p(o) {
- for (let s = 0; s !== o.length; ++s)
- if ((o.charCodeAt(s) | 32) === 101)
- return o.replace(r, ".$1").replace(i, "E").replace("e", "E").replace(a, "$10$2");
- return o;
- }
- function u(o) {
- return o.indexOf(".") > -1 ? o.replace(n, "").replace(e, ".$1") : o;
- }
- return function(s) {
- let l = Math.floor(Math.log(Math.abs(s)) * Math.LOG10E), f;
- return l >= -4 && l <= -1 ? f = s.toPrecision(10 + l) : Math.abs(l) <= 9 ? f = c(s) : l === 10 ? f = s.toFixed(10).substr(0, 12) : f = h(s), u(p(f));
- };
-}();
-_e._general_num = wo;
-function _n(t, e) {
- switch (typeof t) {
- case "string":
- return t;
- case "boolean":
- return t ? "TRUE" : "FALSE";
- case "number":
- return (t | 0) === t ? To(t) : wo(t);
- case "undefined":
- return "";
- case "object":
- if (t == null)
- return "";
- if (t instanceof Date)
- return Uo(14, yo(t, e && e.date1904), e);
- }
- throw new Error("unsupported value in General format: " + t);
-}
-_e._general = _n;
-function Ea() {
- return 0;
-}
-function ma(t, e, n, r) {
- let i = "", a = 0, c = 0, h = n.y, p, u = 0;
- switch (t) {
- case 98:
- h = n.y + 543;
- case 121:
- switch (e.length) {
- case 1:
- case 2:
- p = h % 100, u = 2;
- break;
- default:
- p = h % 1e4, u = 4;
- break;
- }
- break;
- case 109:
- switch (e.length) {
- case 1:
- case 2:
- p = n.m, u = e.length;
- break;
- case 3:
- return cr[n.m - 1][1];
- case 5:
- return cr[n.m - 1][0];
- default:
- return cr[n.m - 1][2];
- }
- break;
- case 100:
- switch (e.length) {
- case 1:
- case 2:
- p = n.d, u = e.length;
- break;
- case 3:
- return ci[n.q][0];
- default:
- return ci[n.q][1];
- }
- break;
- case 104:
- switch (e.length) {
- case 1:
- case 2:
- p = 1 + (n.H + 11) % 12, u = e.length;
- break;
- default:
- throw "bad hour format: " + e;
- }
- break;
- case 72:
- switch (e.length) {
- case 1:
- case 2:
- p = n.H, u = e.length;
- break;
- default:
- throw "bad hour format: " + e;
- }
- break;
- case 77:
- switch (e.length) {
- case 1:
- case 2:
- p = n.M, u = e.length;
- break;
- default:
- throw "bad minute format: " + e;
- }
- break;
- case 115:
- if (e !== "s" && e !== "ss" && e !== ".0" && e !== ".00" && e !== ".000")
- throw "bad second format: " + e;
- return n.u === 0 && (e === "s" || e === "ss") ? Xe(n.S, e.length) : (r >= 2 ? c = r === 3 ? 1e3 : 100 : c = r === 1 ? 10 : 1, a = Math.round(c * (n.S + n.u)), a >= 60 * c && (a = 0), e === "s" ? a === 0 ? "0" : "" + a / c : (i = Xe(a, 2 + r), e === "ss" ? i.substr(0, 2) : "." + i.substr(2, e.length - 1)));
- case 90:
- switch (e) {
- case "[h]":
- case "[hh]":
- p = n.D * 24 + n.H;
- break;
- case "[m]":
- case "[mm]":
- p = (n.D * 24 + n.H) * 60 + n.M;
- break;
- case "[s]":
- case "[ss]":
- p = ((n.D * 24 + n.H) * 60 + n.M) * 60 + Math.round(n.S + n.u);
- break;
- default:
- throw "bad abstime format: " + e;
- }
- u = e.length === 3 ? 1 : 2;
- break;
- case 101:
- p = h, u = 1;
- }
- return u > 0 ? Xe(p, u) : "";
-}
-function Nt(t) {
- if (t.length <= 3)
- return t;
- let n = t.length % 3, r = t.substr(0, n);
- for (; n !== t.length; n += 3)
- r += (r.length > 0 ? "," : "") + t.substr(n, 3);
- return r;
-}
-const ht = function() {
- const e = /%/g;
- function n(y, R, T) {
- const w = R.replace(e, ""), C = R.length - w.length;
- return ht(y, w, T * Math.pow(10, 2 * C)) + ke("%", C);
- }
- function r(y, R, T) {
- let w = R.length - 1;
- for (; R.charCodeAt(w - 1) === 44; )
- --w;
- return ht(y, R.substr(0, w), T / Math.pow(10, 3 * (R.length - w)));
- }
- function i(y, R) {
- let T, w = y.indexOf("E") - y.indexOf(".") - 1;
- if (y.match(/^#+0.0E\+0$/)) {
- if (R === 0)
- return "0.0E+0";
- if (R < 0)
- return "-" + i(y, -R);
- let C = y.indexOf(".");
- C === -1 && (C = y.indexOf("E"));
- let M = Math.floor(Math.log(R) * Math.LOG10E) % C;
- if (M < 0 && (M += C), T = (R / Math.pow(10, M)).toPrecision(w + 1 + (C + M) % C), T.indexOf("e") === -1) {
- const _ = Math.floor(Math.log(R) * Math.LOG10E);
- for (T.indexOf(".") === -1 ? T = T.charAt(0) + "." + T.substr(1) + "E+" + (_ - T.length + M) : T += "E+" + (_ - M); T.substr(0, 2) === "0."; )
- T = T.charAt(0) + T.substr(2, C) + "." + T.substr(2 + C), T = T.replace(/^0+([1-9])/, "$1").replace(/^0+\./, "0.");
- T = T.replace(/\+-/, "-");
- }
- T = T.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/, function(_, W, F, S) {
- return W + F + S.substr(0, (C + M) % C) + "." + S.substr(M) + "E";
- });
- } else
- T = R.toExponential(w);
- return y.match(/E\+00$/) && T.match(/e[+-]\d$/) && (T = T.substr(0, T.length - 1) + "0" + T.charAt(T.length - 1)), y.match(/E\-/) && T.match(/e\+/) && (T = T.replace(/e\+/, "e")), T.replace("e", "E");
- }
- const a = /# (\?+)( ?)\/( ?)(\d+)/;
- function c(y, R, T) {
- const w = parseInt(y[4], 10), C = Math.round(R * w), M = Math.floor(C / w);
- let _ = C - M * w, W = w;
- return T + (M === 0 ? "" : "" + M) + " " + (_ === 0 ? ke(" ", y[1].length + 1 + y[4].length) : ar(_, y[1].length) + y[2] + "/" + y[3] + Xe(W, y[4].length));
- }
- function h(y, R, T) {
- return T + (R === 0 ? "" : "" + R) + ke(" ", y[1].length + 2 + y[4].length);
- }
- const p = /^#*0*\.([0#]+)/, u = /\).*[0#]/, o = /\(###\) ###\\?-####/;
- function s(y) {
- let R = "", T;
- for (let w = 0; w !== y.length; ++w)
- switch (T = y.charCodeAt(w)) {
- case 35:
- break;
- case 63:
- R += " ";
- break;
- case 48:
- R += "0";
- break;
- default:
- R += String.fromCharCode(T);
- }
- return R;
- }
- function l(y, R) {
- const T = Math.pow(10, R);
- return "" + Math.round(y * T) / T;
- }
- function f(y, R) {
- return R < ("" + Math.round((y - Math.floor(y)) * Math.pow(10, R))).length ? 0 : Math.round((y - Math.floor(y)) * Math.pow(10, R));
- }
- function v(y, R) {
- return R < ("" + Math.round((y - Math.floor(y)) * Math.pow(10, R))).length ? 1 : 0;
- }
- function d(y) {
- return y < 2147483647 && y > -2147483648 ? "" + (y >= 0 ? y | 0 : y - 1 | 0) : "" + Math.floor(y);
- }
- function g(y, R, T) {
- if (y.charCodeAt(0) === 40 && !R.match(u)) {
- const G = R.replace(/\( */, "").replace(/ \)/, "").replace(/\)/, "");
- return T >= 0 ? g("n", G, T) : "(" + g("n", G, -T) + ")";
- }
- if (R.charCodeAt(R.length - 1) === 44)
- return r(y, R, T);
- if (R.indexOf("%") !== -1)
- return n(y, R, T);
- if (R.indexOf("E") !== -1)
- return i(R, T);
- if (R.charCodeAt(0) === 36)
- return "$" + g(y, R.substr(R.charAt(1) == " " ? 2 : 1), T);
- let w, C, M, _, W = Math.abs(T), F = T < 0 ? "-" : "";
- if (R.match(/^00+$/))
- return F + Dt(W, R.length);
- if (R.match(/^[#?]+$/))
- return w = Dt(T, 0), w === "0" && (w = ""), w.length > R.length ? w : s(R.substr(0, R.length - w.length)) + w;
- if (C = R.match(a))
- return c(C, W, F);
- if (R.match(/^#+0+$/))
- return F + Dt(W, R.length - R.indexOf("0"));
- if (C = R.match(p))
- return w = l(T, C[1].length).replace(/^([^\.]+)$/, "$1." + s(C[1])).replace(/\.$/, "." + s(C[1])).replace(/\.(\d*)$/, function(G, J) {
- return "." + J + ke("0", s(C[1]).length - J.length);
- }), R.indexOf("0.") !== -1 ? w : w.replace(/^0\./, ".");
- if (R = R.replace(/^#+([0.])/, "$1"), C = R.match(/^(0*)\.(#*)$/))
- return F + l(W, C[2].length).replace(/\.(\d*[1-9])0*$/, ".$1").replace(/^(-?\d*)$/, "$1.").replace(/^0\./, C[1].length ? "0." : ".");
- if (C = R.match(/^#{1,3},##0(\.?)$/))
- return F + Nt(Dt(W, 0));
- if (C = R.match(/^#,##0\.([#0]*0)$/))
- return T < 0 ? "-" + g(y, R, -T) : Nt("" + (Math.floor(T) + v(T, C[1].length))) + "." + Xe(f(T, C[1].length), C[1].length);
- if (C = R.match(/^#,#*,#0/))
- return g(y, R.replace(/^#,#*,/, ""), T);
- if (C = R.match(/^([0#]+)(\\?-([0#]+))+$/))
- return w = bt(g(y, R.replace(/[\\-]/g, ""), T)), M = 0, bt(bt(R.replace(/\\/g, "")).replace(/[0#]/g, function(G) {
- return M < w.length ? w.charAt(M++) : G === "0" ? "0" : "";
- }));
- if (R.match(o))
- return w = g(y, "##########", T), "(" + w.substr(0, 3) + ") " + w.substr(3, 3) + "-" + w.substr(6);
- let S = "";
- if (C = R.match(/^([#0?]+)( ?)\/( ?)([#0?]+)/))
- return M = Math.min(C[4].length, 7), _ = pn(W, Math.pow(10, M) - 1, !1), w = "" + F, S = ht("n", C[1], _[1]), S.charAt(S.length - 1) === " " && (S = S.substr(0, S.length - 1) + "0"), w += S + C[2] + "/" + C[3], S = hn(_[2], M), S.length < C[4].length && (S = s(C[4].substr(C[4].length - S.length)) + S), w += S, w;
- if (C = R.match(/^# ([#0?]+)( ?)\/( ?)([#0?]+)/))
- return M = Math.min(Math.max(C[1].length, C[4].length), 7), _ = pn(W, Math.pow(10, M) - 1, !0), F + (_[0] || (_[1] ? "" : "0")) + " " + (_[1] ? ar(_[1], M) + C[2] + "/" + C[3] + hn(_[2], M) : ke(" ", 2 * M + 1 + C[2].length + C[3].length));
- if (C = R.match(/^[#0?]+$/))
- return w = Dt(T, 0), R.length <= w.length ? w : s(R.substr(0, R.length - w.length)) + w;
- if (C = R.match(/^([#0?]+)\.([#0]+)$/)) {
- w = "" + T.toFixed(Math.min(C[2].length, 10)).replace(/([^0])0+$/, "$1"), M = w.indexOf(".");
- const G = R.indexOf(".") - M, J = R.length - w.length - G;
- return s(R.substr(0, G) + w + R.substr(R.length - J));
- }
- if (C = R.match(/^00,000\.([#0]*0)$/))
- return M = f(T, C[1].length), T < 0 ? "-" + g(y, R, -T) : Nt(d(T)).replace(/^\d,\d{3}$/, "0$&").replace(/^\d*$/, function(G) {
- return "00," + (G.length < 3 ? Xe(0, 3 - G.length) : "") + G;
- }) + "." + Xe(M, C[1].length);
- switch (R) {
- case "###,##0.00":
- return g(y, "#,##0.00", T);
- case "###,###":
- case "##,###":
- case "#,###":
- const G = Nt(Dt(W, 0));
- return G !== "0" ? F + G : "";
- case "###,###.00":
- return g(y, "###,##0.00", T).replace(/^0\./, ".");
- case "#,###.00":
- return g(y, "#,##0.00", T).replace(/^0\./, ".");
- }
- throw new Error("unsupported format |" + R + "|");
- }
- function E(y, R, T) {
- let w = R.length - 1;
- for (; R.charCodeAt(w - 1) === 44; )
- --w;
- return ht(y, R.substr(0, w), T / Math.pow(10, 3 * (R.length - w)));
- }
- function A(y, R, T) {
- const w = R.replace(e, ""), C = R.length - w.length;
- return ht(y, w, T * Math.pow(10, 2 * C)) + ke("%", C);
- }
- function m(y, R) {
- let T, w = y.indexOf("E") - y.indexOf(".") - 1;
- if (y.match(/^#+0.0E\+0$/)) {
- if (R === 0)
- return "0.0E+0";
- if (R < 0)
- return "-" + m(y, -R);
- let C = y.indexOf(".");
- C === -1 && (C = y.indexOf("E"));
- let M = Math.floor(Math.log(R) * Math.LOG10E) % C;
- if (M < 0 && (M += C), T = (R / Math.pow(10, M)).toPrecision(w + 1 + (C + M) % C), !T.match(/[Ee]/)) {
- const _ = Math.floor(Math.log(R) * Math.LOG10E);
- T.indexOf(".") === -1 ? T = T.charAt(0) + "." + T.substr(1) + "E+" + (_ - T.length + M) : T += "E+" + (_ - M), T = T.replace(/\+-/, "-");
- }
- T = T.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/, function(_, W, F, S) {
- return W + F + S.substr(0, (C + M) % C) + "." + S.substr(M) + "E";
- });
- } else
- T = R.toExponential(w);
- return y.match(/E\+00$/) && T.match(/e[+-]\d$/) && (T = T.substr(0, T.length - 1) + "0" + T.charAt(T.length - 1)), y.match(/E\-/) && T.match(/e\+/) && (T = T.replace(/e\+/, "e")), T.replace("e", "E");
- }
- function N(y, R, T) {
- if (y.charCodeAt(0) === 40 && !R.match(u)) {
- const G = R.replace(/\( */, "").replace(/ \)/, "").replace(/\)/, "");
- return T >= 0 ? N("n", G, T) : "(" + N("n", G, -T) + ")";
- }
- if (R.charCodeAt(R.length - 1) === 44)
- return E(y, R, T);
- if (R.indexOf("%") !== -1)
- return A(y, R, T);
- if (R.indexOf("E") !== -1)
- return m(R, T);
- if (R.charCodeAt(0) === 36)
- return "$" + N(y, R.substr(R.charAt(1) == " " ? 2 : 1), T);
- let w, C, M, _, W = Math.abs(T), F = T < 0 ? "-" : "";
- if (R.match(/^00+$/))
- return F + Xe(W, R.length);
- if (R.match(/^[#?]+$/))
- return w = "" + T, T === 0 && (w = ""), w.length > R.length ? w : s(R.substr(0, R.length - w.length)) + w;
- if (C = R.match(a))
- return h(C, W, F);
- if (R.match(/^#+0+$/))
- return F + Xe(W, R.length - R.indexOf("0"));
- if (C = R.match(p))
- return w = ("" + T).replace(/^([^\.]+)$/, "$1." + s(C[1])).replace(/\.$/, "." + s(C[1])), w = w.replace(/\.(\d*)$/, function(G, J) {
- return "." + J + ke("0", s(C[1]).length - J.length);
- }), R.indexOf("0.") !== -1 ? w : w.replace(/^0\./, ".");
- if (R = R.replace(/^#+([0.])/, "$1"), C = R.match(/^(0*)\.(#*)$/))
- return F + ("" + W).replace(/\.(\d*[1-9])0*$/, ".$1").replace(/^(-?\d*)$/, "$1.").replace(/^0\./, C[1].length ? "0." : ".");
- if (C = R.match(/^#{1,3},##0(\.?)$/))
- return F + Nt("" + W);
- if (C = R.match(/^#,##0\.([#0]*0)$/))
- return T < 0 ? "-" + N(y, R, -T) : Nt("" + T) + "." + ke("0", C[1].length);
- if (C = R.match(/^#,#*,#0/))
- return N(y, R.replace(/^#,#*,/, ""), T);
- if (C = R.match(/^([0#]+)(\\?-([0#]+))+$/))
- return w = bt(N(y, R.replace(/[\\-]/g, ""), T)), M = 0, bt(bt(R.replace(/\\/g, "")).replace(/[0#]/g, function(G) {
- return M < w.length ? w.charAt(M++) : G === "0" ? "0" : "";
- }));
- if (R.match(o))
- return w = N(y, "##########", T), "(" + w.substr(0, 3) + ") " + w.substr(3, 3) + "-" + w.substr(6);
- let S = "";
- if (C = R.match(/^([#0?]+)( ?)\/( ?)([#0?]+)/))
- return M = Math.min(C[4].length, 7), _ = pn(W, Math.pow(10, M) - 1, !1), w = "" + F, S = ht("n", C[1], _[1]), S.charAt(S.length - 1) == " " && (S = S.substr(0, S.length - 1) + "0"), w += S + C[2] + "/" + C[3], S = hn(_[2], M), S.length < C[4].length && (S = s(C[4].substr(C[4].length - S.length)) + S), w += S, w;
- if (C = R.match(/^# ([#0?]+)( ?)\/( ?)([#0?]+)/))
- return M = Math.min(Math.max(C[1].length, C[4].length), 7), _ = pn(W, Math.pow(10, M) - 1, !0), F + (_[0] || (_[1] ? "" : "0")) + " " + (_[1] ? ar(_[1], M) + C[2] + "/" + C[3] + hn(_[2], M) : ke(" ", 2 * M + 1 + C[2].length + C[3].length));
- if (C = R.match(/^[#0?]+$/))
- return w = "" + T, R.length <= w.length ? w : s(R.substr(0, R.length - w.length)) + w;
- if (C = R.match(/^([#0]+)\.([#0]+)$/)) {
- w = "" + T.toFixed(Math.min(C[2].length, 10)).replace(/([^0])0+$/, "$1"), M = w.indexOf(".");
- let G = R.indexOf(".") - M, J = R.length - w.length - G;
- return s(R.substr(0, G) + w + R.substr(R.length - J));
- }
- if (C = R.match(/^00,000\.([#0]*0)$/))
- return T < 0 ? "-" + N(y, R, -T) : Nt("" + T).replace(/^\d,\d{3}$/, "0$&").replace(/^\d*$/, function(G) {
- return "00," + (G.length < 3 ? Xe(0, 3 - G.length) : "") + G;
- }) + "." + Xe(0, C[1].length);
- switch (R) {
- case "###,###":
- case "##,###":
- case "#,###":
- const G = Nt("" + W);
- return G !== "0" ? F + G : "";
- default:
- if (R.match(/\.[0#?]*$/))
- return N(y, R.slice(0, R.lastIndexOf(".")), T) + s(R.slice(R.lastIndexOf(".")));
- }
- throw new Error("unsupported format |" + R + "|");
- }
- return function(R, T, w) {
- return (w | 0) === w ? N(R, T, w) : g(R, T, w);
- };
-}();
-function Co(t) {
- const e = [];
- let n = !1, r = 0;
- for (let i = 0; i < t.length; ++i)
- switch (
- /*cc=*/
- t.charCodeAt(i)
- ) {
- case 34:
- n = !n;
- break;
- case 95:
- case 42:
- case 92:
- ++i;
- break;
- case 59:
- e[e.length] = t.substr(r, i - r), r = i + 1;
- }
- if (e[e.length] = t.substr(r), n === !0)
- throw new Error("Format |" + t + "| unterminated string ");
- return e;
-}
-_e._split = Co;
-const Io = /\[[HhMmSs]*\]/;
-function Oo(t) {
- let e = 0, n = "", r = "";
- for (; e < t.length; )
- switch (n = t.charAt(e)) {
- case "G":
- Ln(t, e) && (e += 6), e++;
- break;
- case '"':
- for (
- ;
- /*cc=*/
- t.charCodeAt(++e) !== 34 && e < t.length;
- )
- ++e;
- ++e;
- break;
- case "\\":
- e += 2;
- break;
- case "_":
- e += 2;
- break;
- case "@":
- ++e;
- break;
- case "B":
- case "b":
- if (t.charAt(e + 1) === "1" || t.charAt(e + 1) === "2")
- return !0;
- case "M":
- case "D":
- case "Y":
- case "H":
- case "S":
- case "E":
- case "m":
- case "d":
- case "y":
- case "h":
- case "s":
- case "e":
- case "g":
- return !0;
- case "A":
- case "a":
- if (t.substr(e, 3).toUpperCase() === "A/P" || t.substr(e, 5).toUpperCase() === "AM/PM")
- return !0;
- ++e;
- break;
- case "[":
- for (r = n; t.charAt(e++) !== "]" && e < t.length; )
- r += t.charAt(e);
- if (r.match(Io))
- return !0;
- break;
- case ".":
- case "0":
- case "#":
- for (; e < t.length && ("0#?.,E+-%".indexOf(n = t.charAt(++e)) > -1 || n == "\\" && t.charAt(e + 1) == "-" && "0#".indexOf(t.charAt(e + 2)) > -1); )
- ;
- break;
- case "?":
- for (; t.charAt(++e) === n; )
- ;
- break;
- case "*":
- ++e, (t.charAt(e) === " " || t.charAt(e) === "*") && ++e;
- break;
- case "(":
- case ")":
- ++e;
- break;
- case "1":
- case "2":
- case "3":
- case "4":
- case "5":
- case "6":
- case "7":
- case "8":
- case "9":
- for (; e < t.length && "0123456789".indexOf(t.charAt(++e)) > -1; )
- ;
- break;
- case " ":
- ++e;
- break;
- default:
- ++e;
- break;
- }
- return !1;
-}
-_e.is_date = Oo;
-function Mo(t, e, n, r) {
- let i = [], a = "", c = 0, h = "", p = "t", u, o, s, l = "H";
- for (; c < t.length; )
- switch (h = t.charAt(c)) {
- case "G":
- if (!Ln(t, c))
- throw new Error("unrecognized character " + h + " in " + t);
- i[i.length] = { t: "G", v: "General" }, c += 7;
- break;
- case '"':
- for (a = ""; (s = t.charCodeAt(++c)) !== 34 && c < t.length; )
- a += String.fromCharCode(s);
- i[i.length] = { t: "t", v: a }, ++c;
- break;
- case "\\":
- const R = t.charAt(++c), T = R === "(" || R === ")" ? R : "t";
- i[i.length] = { t: T, v: R }, ++c;
- break;
- case "_":
- i[i.length] = { t: "t", v: " " }, c += 2;
- break;
- case "@":
- i[i.length] = { t: "T", v: e }, ++c;
- break;
- case "B":
- case "b":
- if (t.charAt(c + 1) === "1" || t.charAt(c + 1) === "2") {
- if (u == null && (u = Zt(e, n, t.charAt(c + 1) === "2"), u == null))
- return "";
- i[i.length] = { t: "X", v: t.substr(c, 2) }, p = h, c += 2;
- break;
- }
- case "M":
- case "D":
- case "Y":
- case "H":
- case "S":
- case "E":
- h = h.toLowerCase();
- case "m":
- case "d":
- case "y":
- case "h":
- case "s":
- case "e":
- case "g":
- if (e < 0 || u == null && (u = Zt(e, n), u == null))
- return "";
- for (a = h; ++c < t.length && t.charAt(c).toLowerCase() === h; )
- a += h;
- h === "m" && p.toLowerCase() === "h" && (h = "M"), h === "h" && (h = l), i[i.length] = { t: h, v: a }, p = h;
- break;
- case "A":
- case "a":
- const w = { t: h, v: h };
- if (u == null && (u = Zt(e, n)), t.substr(c, 3).toUpperCase() === "A/P" ? (u != null && (w.v = u.H >= 12 ? "P" : "A"), w.t = "T", l = "h", c += 3) : t.substr(c, 5).toUpperCase() === "AM/PM" ? (u != null && (w.v = u.H >= 12 ? "PM" : "AM"), w.t = "T", c += 5, l = "h") : (w.t = "t", ++c), u == null && w.t === "T")
- return "";
- i[i.length] = w, p = h;
- break;
- case "[":
- for (a = h; t.charAt(c++) !== "]" && c < t.length; )
- a += t.charAt(c);
- if (a.slice(-1) !== "]")
- throw 'unterminated "[" block: |' + a + "|";
- if (a.match(Io)) {
- if (u == null && (u = Zt(e, n), u == null))
- return "";
- i[i.length] = { t: "Z", v: a.toLowerCase() }, p = a.charAt(1);
- } else
- a.indexOf("$") > -1 && (a = (a.match(/\$([^-\[\]]*)/) || [])[1] || "$", Oo(t) || (i[i.length] = { t: "t", v: a }));
- break;
- case ".":
- if (u != null) {
- for (a = h; ++c < t.length && (h = t.charAt(c)) === "0"; )
- a += h;
- i[i.length] = { t: "s", v: a };
- break;
- }
- case "0":
- case "#":
- for (a = h; ++c < t.length && "0#?.,E+-%".indexOf(h = t.charAt(c)) > -1 || h == "\\" && t.charAt(c + 1) == "-" && c < t.length - 2 && "0#".indexOf(t.charAt(c + 2)) > -1; )
- a += h;
- i[i.length] = { t: "n", v: a };
- break;
- case "?":
- for (a = h; t.charAt(++c) === h; )
- a += h;
- i[i.length] = { t: h, v: a }, p = h;
- break;
- case "*":
- ++c, (t.charAt(c) === " " || t.charAt(c) === "*") && ++c;
- break;
- case "(":
- case ")":
- i[i.length] = { t: r === 1 || typeof e == "number" && e < 0 ? "t" : h, v: h }, ++c;
- break;
- case "1":
- case "2":
- case "3":
- case "4":
- case "5":
- case "6":
- case "7":
- case "8":
- case "9":
- for (a = h; c < t.length && "0123456789".indexOf(t.charAt(++c)) > -1; )
- a += t.charAt(c);
- i[i.length] = { t: "D", v: a };
- break;
- case " ":
- i[i.length] = { t: h, v: h }, ++c;
- break;
- default:
- if (",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP".indexOf(h) === -1)
- throw new Error("unrecognized character " + h + " in " + t);
- i[i.length] = { t: "t", v: h }, ++c;
- break;
- }
- let f = 0, v = 0, d;
- for (c = i.length - 1, p = "t"; c >= 0; --c)
- switch (i[c].t) {
- case "h":
- case "H":
- i[c].t = l, p = "h", f < 1 && (f = 1);
- break;
- case "s":
- (d = i[c].v.match(/\.0+$/)) && (v = Math.max(v, d[0].length - 1)), f < 3 && (f = 3);
- case "d":
- case "y":
- case "M":
- case "e":
- p = i[c].t;
- break;
- case "m":
- p === "s" && (i[c].t = "M", f < 2 && (f = 2));
- break;
- case "X":
- break;
- case "Z":
- f < 1 && i[c].v.match(/[Hh]/) && (f = 1), f < 2 && i[c].v.match(/[Mm]/) && (f = 2), f < 3 && i[c].v.match(/[Ss]/) && (f = 3);
- }
- switch (f) {
- case 0:
- break;
- case 1:
- u.u >= 0.5 && (u.u = 0, ++u.S), u.S >= 60 && (u.S = 0, ++u.M), u.M >= 60 && (u.M = 0, ++u.H);
- break;
- case 2:
- u.u >= 0.5 && (u.u = 0, ++u.S), u.S >= 60 && (u.S = 0, ++u.M);
- break;
- }
- let g = "", E;
- for (c = 0; c < i.length; ++c)
- switch (i[c].t) {
- case "t":
- case "T":
- case " ":
- case "D":
- break;
- case "X":
- i[c].v = "", i[c].t = ";";
- break;
- case "d":
- case "m":
- case "y":
- case "h":
- case "H":
- case "M":
- case "s":
- case "e":
- case "b":
- case "Z":
- i[c].v = ma(i[c].t.charCodeAt(0), i[c].v, u, v), i[c].t = "t";
- break;
- case "n":
- case "(":
- case "?":
- for (E = c + 1; i[E] != null && ((h = i[E].t) === "?" || h === "D" || (h === " " || h === "t") && i[E + 1] != null && (i[E + 1].t === "?" || i[E + 1].t === "t" && i[E + 1].v === "/") || i[c].t === "(" && (h === " " || h === "n" || h === ")") || h === "t" && (i[E].v === "/" || i[E].v === " " && i[E + 1] != null && i[E + 1].t === "?")); )
- i[c].v += i[E].v, i[E] = { v: "", t: ";" }, ++E;
- g += i[c].v, c = E - 1;
- break;
- case "G":
- i[c].t = "t", i[c].v = _n(e, n);
- break;
- }
- let A = "", m, N;
- if (g.length > 0) {
- g.charCodeAt(0) === 40 ? (m = e < 0 && g.charCodeAt(0) === 45 ? -e : e, N = ht("(", g, m)) : (m = e < 0 && r > 1 ? -e : e, N = ht("n", g, m), m < 0 && i[0] && i[0].t === "t" && (N = N.substr(1), i[0].v = "-" + i[0].v)), E = N.length - 1;
- let R = i.length;
- for (c = 0; c < i.length; ++c)
- if (i[c] != null && i[c].t !== "t" && i[c].v.indexOf(".") > -1) {
- R = c;
- break;
- }
- let T = i.length;
- if (R === i.length && N.indexOf("E") === -1) {
- for (c = i.length - 1; c >= 0; --c)
- i[c] == null || "n?(".indexOf(i[c].t) === -1 || (E >= i[c].v.length - 1 ? (E -= i[c].v.length, i[c].v = N.substr(E + 1, i[c].v.length)) : E < 0 ? i[c].v = "" : (i[c].v = N.substr(0, E + 1), E = -1), i[c].t = "t", T = c);
- E >= 0 && T < i.length && (i[T].v = N.substr(0, E + 1) + i[T].v);
- } else if (R !== i.length && N.indexOf("E") === -1) {
- for (E = N.indexOf(".") - 1, c = R; c >= 0; --c)
- if (!(i[c] == null || "n?(".indexOf(i[c].t) === -1)) {
- for (o = i[c].v.indexOf(".") > -1 && c === R ? i[c].v.indexOf(".") - 1 : i[c].v.length - 1, A = i[c].v.substr(o + 1); o >= 0; --o)
- E >= 0 && (i[c].v.charAt(o) === "0" || i[c].v.charAt(o) === "#") && (A = N.charAt(E--) + A);
- i[c].v = A, i[c].t = "t", T = c;
- }
- for (E >= 0 && T < i.length && (i[T].v = N.substr(0, E + 1) + i[T].v), E = N.indexOf(".") + 1, c = R; c < i.length; ++c)
- if (!(i[c] == null || "n?(".indexOf(i[c].t) === -1 && c !== R)) {
- for (o = i[c].v.indexOf(".") > -1 && c === R ? i[c].v.indexOf(".") + 1 : 0, A = i[c].v.substr(0, o); o < i[c].v.length; ++o)
- E < N.length && (A += N.charAt(E++));
- i[c].v = A, i[c].t = "t", T = c;
- }
- }
- }
- for (c = 0; c < i.length; ++c)
- i[c] != null && "n(?".indexOf(i[c].t) > -1 && (m = r > 1 && e < 0 && c > 0 && i[c - 1].v === "-" ? -e : e, i[c].v = ht(i[c].t, i[c].v, m), i[c].t = "t");
- let y = "";
- for (c = 0; c !== i.length; ++c)
- i[c] != null && (y += i[c].v);
- return y;
-}
-_e._eval = Mo;
-const li = /\[[=<>]/, ui = /\[([=<>]*)(-?\d+\.?\d*)\]/;
-function fi(t, e) {
- if (e == null)
- return !1;
- const n = parseFloat(e[2]);
- switch (e[1]) {
- case "=":
- if (t === n)
- return !0;
- break;
- case ">":
- if (t > n)
- return !0;
- break;
- case "<":
- if (t < n)
- return !0;
- break;
- case "<>":
- if (t !== n)
- return !0;
- break;
- case ">=":
- if (t >= n)
- return !0;
- break;
- case "<=":
- if (t <= n)
- return !0;
- break;
- }
- return !1;
-}
-function Ra(t, e) {
- let n = Co(t), r = n.length, i = n[r - 1].indexOf("@");
- if (r < 4 && i > -1 && --r, n.length > 4)
- throw new Error("cannot find right format for |" + n.join("|") + "|");
- if (typeof e != "number")
- return [4, n.length === 4 || i > -1 ? n[n.length - 1] : "@"];
- switch (n.length) {
- case 1:
- n = i > -1 ? ["General", "General", "General", n[0]] : [n[0], n[0], n[0], "@"];
- break;
- case 2:
- n = i > -1 ? [n[0], n[0], n[0], n[1]] : [n[0], n[1], n[0], "@"];
- break;
- case 3:
- n = i > -1 ? [n[0], n[1], n[0], n[2]] : [n[0], n[1], n[2], "@"];
- break;
- }
- const a = e > 0 ? n[0] : e < 0 ? n[1] : n[2];
- if (n[0].indexOf("[") === -1 && n[1].indexOf("[") === -1)
- return [r, a];
- if (n[0].match(li) != null || n[1].match(li) != null) {
- const c = n[0].match(ui), h = n[1].match(ui);
- return fi(e, c) ? [r, n[0]] : fi(e, h) ? [r, n[1]] : [r, n[c != null && h != null ? 2 : 1]];
- }
- return [r, a];
-}
-function Uo(t, e, n) {
- n == null && (n = {});
- let r = "";
- switch (typeof t) {
- case "string":
- t === "m/d/yy" && n.dateNF ? r = n.dateNF : r = t;
- break;
- case "number":
- t === 14 && n.dateNF ? r = n.dateNF : r = (n.table != null ? n.table : _t)[t];
- break;
- }
- if (Ln(r, 0))
- return _n(e, n);
- e instanceof Date && (e = yo(e, n.date1904));
- const i = Ra(r, e);
- if (Ln(i[1]))
- return _n(e, n);
- if (e === !0)
- e = "TRUE";
- else if (e === !1)
- e = "FALSE";
- else if (e === "" || e == null)
- return "";
- return Mo(i[1], e, n, i[0]);
-}
-function Lo(t, e) {
- if (typeof e != "number") {
- e = +e || -1;
- for (let n = 0; n < 392; ++n) {
- if (_t[n] === void 0) {
- e < 0 && (e = n);
- continue;
- }
- if (_t[n] === t) {
- e = n;
- break;
- }
- }
- e < 0 && (e = 391);
- }
- return _t[e] = t, e;
-}
-_e.load = Lo;
-_e._table = _t;
-_e.get_table = function() {
- return _t;
-};
-_e.load_table = function(e) {
- for (let n = 0; n !== 392; ++n)
- e[n] !== void 0 && Lo(e[n], n);
-};
-_e.init_table = No;
-_e.format = Uo;
-var _o = _e, Po = { exports: {} };
-(function(t) {
- const e = "ศูนย์บาทถ้วน", n = [
- "",
- "หนึ่ง",
- "สอง",
- "สาม",
- "สี่",
- "ห้า",
- "หก",
- "เจ็ด",
- "แปด",
- "เก้า"
- ], r = [
- "",
- "สิบ",
- "ร้อย",
- "พัน",
- "หมื่น",
- "แสน",
- "ล้าน"
- ];
- function i(p) {
- let u = "";
- const o = p.length, s = 7;
- if (o > s) {
- const l = o - s + 1, f = p.slice(0, l), v = p.slice(l);
- return i(f) + "ล้าน" + i(v);
- } else
- for (let l = 0; l < o; l++) {
- const f = p[l];
- f > 0 && (u += n[f] + r[o - l - 1]);
- }
- return u;
- }
- function a(p) {
- let u = p;
- u = u.replace("หนึ่งสิบ", "สิบ"), u = u.replace("สองสิบ", "ยี่สิบ");
- const o = 5;
- return u.length > o && u.length - u.lastIndexOf("หนึ่ง") === o && (u = u.substr(0, u.length - o) + "เอ็ด"), u;
- }
- function c(p, u) {
- let o = "";
- return p === "" && u === "" ? o = e : p !== "" && u === "" ? o = p + "บาทถ้วน" : p === "" && u !== "" ? o = u + "สตางค์" : o = p + "บาท" + u + "สตางค์", o;
- }
- function h(p) {
- let u = e;
- if (isNaN(p) || p >= Number.MAX_SAFE_INTEGER)
- return u;
- const o = Math.floor(p).toString(), s = Math.round(p % 1 * 100).toString(), l = Array.from(o).map(Number), f = Array.from(s).map(Number);
- let v = i(l), d = i(f);
- return v = a(v), d = a(d), u = c(v, d), u;
- }
- t.exports != null && (t.exports = h);
-})(Po);
-var Na = Po.exports;
-const Ce = he(), { FormulaHelpers: Aa, Types: Y, WildCard: hi } = ge(), q = Aa, lr = _o, ya = Na, pi = {
- latin: { halfRE: /[!-~]/g, fullRE: /[!-~]/g, delta: 65248 },
- hangul1: { halfRE: /[ᄀ-ᄒ]/g, fullRE: /[ᆨ-ᇂ]/g, delta: -60921 },
- hangul2: { halfRE: /[ᅡ-ᅵ]/g, fullRE: /[ᅡ-ᅵ]/g, delta: -61025 },
- kana: {
- delta: 0,
- half: "。「」、・ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙゚",
- full: "。「」、・ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゛゜"
- },
- extras: {
- delta: 0,
- half: "¢£¬¯¦¥₩ |←↑→↓■°",
- full: "¢£¬ ̄¦¥₩ │←↑→↓■○"
- }
-}, Ta = (t) => (e) => t.delta ? String.fromCharCode(e.charCodeAt(0) + t.delta) : [...t.full][[...t.half].indexOf(e)], wa = (t) => (e) => t.delta ? String.fromCharCode(e.charCodeAt(0) - t.delta) : [...t.half][[...t.full].indexOf(e)], ko = (t, e) => t[e + "RE"] || new RegExp("[" + t[e] + "]", "g"), xo = Object.keys(pi).map((t) => pi[t]), Ca = (t) => xo.reduce((e, n) => e.replace(ko(n, "half"), Ta(n)), t), Ia = (t) => xo.reduce((e, n) => e.replace(ko(n, "full"), wa(n)), t), ft = {
- ASC: (t) => (t = q.accept(t, Y.STRING), Ia(t)),
- BAHTTEXT: (t) => {
- t = q.accept(t, Y.NUMBER);
- try {
- return ya(t);
- } catch (e) {
- throw Error(`Error in https://github.com/jojoee/bahttext
-${e.toString()}`);
- }
- },
- CHAR: (t) => {
- if (t = q.accept(t, Y.NUMBER), t > 255 || t < 1)
- throw Ce.VALUE;
- return String.fromCharCode(t);
- },
- CLEAN: (t) => (t = q.accept(t, Y.STRING), t.replace(/[\x00-\x1F]/g, "")),
- CODE: (t) => {
- if (t = q.accept(t, Y.STRING), t.length === 0)
- throw Ce.VALUE;
- return t.charCodeAt(0);
- },
- CONCAT: (...t) => {
- let e = "";
- return q.flattenParams(t, Y.STRING, !1, (n) => {
- n = q.accept(n, Y.STRING), e += n;
- }), e;
- },
- CONCATENATE: (...t) => {
- let e = "";
- if (t.length === 0)
- throw Error("CONCATENATE need at least one argument.");
- return t.forEach((n) => {
- n = q.accept(n, Y.STRING), e += n;
- }), e;
- },
- DBCS: (t) => (t = q.accept(t, Y.STRING), Ca(t)),
- DOLLAR: (t, e) => {
- t = q.accept(t, Y.NUMBER), e = q.accept(e, Y.NUMBER, 2);
- const n = Array(e).fill("0").join("");
- return lr.format(`$#,##0.${n}_);($#,##0.${n})`, t).trim();
- },
- EXACT: (t, e) => (t = q.accept(t, [Y.STRING]), e = q.accept(e, [Y.STRING]), t === e),
- FIND: (t, e, n) => {
- if (t = q.accept(t, Y.STRING), e = q.accept(e, Y.STRING), n = q.accept(n, Y.NUMBER, 1), n < 1 || n > e.length)
- throw Ce.VALUE;
- const r = e.indexOf(t, n - 1);
- if (r === -1)
- throw Ce.VALUE;
- return r + 1;
- },
- FINDB: (...t) => ft.FIND(...t),
- FIXED: (t, e, n) => {
- t = q.accept(t, Y.NUMBER), e = q.accept(e, Y.NUMBER, 2), n = q.accept(n, Y.BOOLEAN, !1);
- const r = Array(e).fill("0").join(""), i = n ? "" : "#,";
- return lr.format(`${i}##0.${r}_);(${i}##0.${r})`, t).trim();
- },
- LEFT: (t, e) => {
- if (t = q.accept(t, Y.STRING), e = q.accept(e, Y.NUMBER, 1), e < 0)
- throw Ce.VALUE;
- return e > t.length ? t : t.slice(0, e);
- },
- LEFTB: (...t) => ft.LEFT(...t),
- LEN: (t) => (t = q.accept(t, Y.STRING), t.length),
- LENB: (...t) => ft.LEN(...t),
- LOWER: (t) => (t = q.accept(t, Y.STRING), t.toLowerCase()),
- MID: (t, e, n) => {
- if (t = q.accept(t, Y.STRING), e = q.accept(e, Y.NUMBER), n = q.accept(n, Y.NUMBER), e > t.length)
- return "";
- if (e < 1 || n < 1)
- throw Ce.VALUE;
- return t.slice(e - 1, e + n - 1);
- },
- MIDB: (...t) => ft.MID(...t),
- NUMBERVALUE: (t, e, n) => {
- if (t = q.accept(t, Y.STRING), e = q.accept(e, Y.STRING, "."), n = q.accept(n, Y.STRING, ","), t.length === 0)
- return 0;
- if (e.length === 0 || n.length === 0 || (e = e[0], n = n[0], e === n || t.indexOf(e) < t.lastIndexOf(n)))
- throw Ce.VALUE;
- const r = t.replace(n, "").replace(e, ".").replace(/[^\-0-9.%()]/g, "").match(/([(-]*)([0-9]*[.]*[0-9]+)([)]?)([%]*)/);
- if (!r)
- throw Ce.VALUE;
- const i = r[1].length, a = r[3].length, c = r[4].length;
- let h = Number(r[2]);
- if (i > 1 || i && !a || !i && a || isNaN(h))
- throw Ce.VALUE;
- return h = h / 100 ** c, i ? -h : h;
- },
- PHONETIC: () => {
- },
- PROPER: (t) => (t = q.accept(t, [Y.STRING]), t = t.toLowerCase(), t = t.charAt(0).toUpperCase() + t.slice(1), t.replace(
- /(?:[^a-zA-Z])([a-zA-Z])/g,
- (e) => e.toUpperCase()
- )),
- REPLACE: (t, e, n, r) => {
- t = q.accept(t, [Y.STRING]), e = q.accept(e, [Y.NUMBER]), n = q.accept(n, [Y.NUMBER]), r = q.accept(r, [Y.STRING]);
- let i = t.split("");
- return i.splice(e - 1, n, r), i.join("");
- },
- REPLACEB: (...t) => ft.REPLACE(...t),
- REPT: (t, e) => {
- t = q.accept(t, Y.STRING), e = q.accept(e, Y.NUMBER);
- let n = "";
- for (let r = 0; r < e; r++)
- n += t;
- return n;
- },
- RIGHT: (t, e) => {
- if (t = q.accept(t, Y.STRING), e = q.accept(e, Y.NUMBER, 1), e < 0)
- throw Ce.VALUE;
- const n = t.length;
- return e > n ? t : t.slice(n - e);
- },
- RIGHTB: (...t) => ft.RIGHT(...t),
- SEARCH: (t, e, n) => {
- if (t = q.accept(t, Y.STRING), e = q.accept(e, Y.STRING), n = q.accept(n, Y.NUMBER, 1), n < 1 || n > e.length)
- throw Ce.VALUE;
- let r = hi.isWildCard(t) ? hi.toRegex(t, "i") : t;
- const i = e.slice(n - 1).search(r);
- if (i === -1)
- throw Ce.VALUE;
- return i + n;
- },
- SEARCHB: (...t) => ft.SEARCH(...t),
- SUBSTITUTE: (...t) => {
- },
- T: (t) => (t = q.accept(t), typeof t == "string" ? t : ""),
- TEXT: (t, e) => {
- t = q.accept(t, Y.NUMBER), e = q.accept(e, Y.STRING);
- try {
- return lr.format(e, t);
- } catch (n) {
- throw console.error(n), Ce.VALUE;
- }
- },
- TEXTJOIN: (...t) => {
- },
- TRIM: (t) => (t = q.accept(t, [Y.STRING]), t.replace(/^\s+|\s+$/g, "")),
- UNICHAR: (t) => {
- if (t = q.accept(t, [Y.NUMBER]), t <= 0)
- throw Ce.VALUE;
- return String.fromCharCode(t);
- },
- UNICODE: (t) => ft.CODE(t)
-};
-var So = ft;
-const tn = he(), { FormulaHelpers: Pn } = ge(), Oa = {
- unaryOp: (t, e, n) => {
- let r = 1;
- if (t.forEach((i) => {
- if (i !== "+")
- if (i === "-")
- r = -r;
- else
- throw new Error(`Unrecognized prefix: ${i}`);
- }), e == null && (e = 0), r === 1)
- return e;
- try {
- e = Pn.acceptNumber(e, n);
- } catch (i) {
- if (i instanceof tn)
- Array.isArray(e) && (e = e[0][0]);
- else
- throw i;
- }
- return typeof e == "number" && isNaN(e) ? tn.VALUE : -e;
- }
-}, Ma = {
- percentOp: (t, e, n) => {
- try {
- t = Pn.acceptNumber(t, n);
- } catch (r) {
- if (r instanceof tn)
- return r;
- throw r;
- }
- if (e === "%")
- return t / 100;
- throw new Error(`Unrecognized postfix: ${e}`);
- }
-}, At = { boolean: 3, string: 2, number: 1 }, Ua = {
- compareOp: (t, e, n, r, i) => {
- t == null && (t = 0), n == null && (n = 0), r && (t = t[0][0]), i && (n = n[0][0]);
- const a = typeof t, c = typeof n;
- if (a === c)
- switch (e) {
- case "=":
- return t === n;
- case ">":
- return t > n;
- case "<":
- return t < n;
- case "<>":
- return t !== n;
- case "<=":
- return t <= n;
- case ">=":
- return t >= n;
- }
- else
- switch (e) {
- case "=":
- return !1;
- case ">":
- return At[a] > At[c];
- case "<":
- return At[a] < At[c];
- case "<>":
- return !0;
- case "<=":
- return At[a] <= At[c];
- case ">=":
- return At[a] >= At[c];
- }
- throw Error("Infix.compareOp: Should not reach here.");
- },
- concatOp: (t, e, n, r, i) => {
- t == null && (t = ""), n == null && (n = ""), r && (t = t[0][0]), i && (n = n[0][0]);
- const a = typeof t, c = typeof n;
- return a === "boolean" && (t = t ? "TRUE" : "FALSE"), c === "boolean" && (n = n ? "TRUE" : "FALSE"), "" + t + n;
- },
- mathOp: (t, e, n, r, i) => {
- t == null && (t = 0), n == null && (n = 0);
- try {
- t = Pn.acceptNumber(t, r), n = Pn.acceptNumber(n, i);
- } catch (a) {
- if (a instanceof tn)
- return a;
- throw a;
- }
- switch (e) {
- case "+":
- return t + n;
- case "-":
- return t - n;
- case "*":
- return t * n;
- case "/":
- return n === 0 ? tn.DIV0 : t / n;
- case "^":
- return t ** n;
- }
- throw Error("Infix.mathOp: Should not reach here.");
- }
-};
-var Dr = {
- Prefix: Oa,
- Postfix: Ma,
- Infix: Ua,
- Operators: {
- compareOp: ["<", ">", "=", "<>", "<=", ">="],
- concatOp: ["&"],
- mathOp: ["+", "-", "*", "/", "^"]
- }
-};
-const Q = he(), { FormulaHelpers: La, Types: P, Factorials: Bo, Criteria: _a } = ge(), { Infix: Pa } = Dr, L = La, ur = [], fr = [];
-function Cn(t) {
- return t <= 100 ? Bo[t] : ur[t] > 0 ? ur[t] : ur[t] = Cn(t - 1) * t;
-}
-function Fo(t) {
- return t === 1 || t === 0 ? 1 : t === 2 ? 2 : fr[t] > 0 ? fr[t] : fr[t] = Fo(t - 2) * t;
-}
-const Pe = {
- ABS: (t) => (t = L.accept(t, P.NUMBER), Math.abs(t)),
- AGGREGATE: (t, e, n, ...r) => {
- },
- ARABIC: (t) => {
- if (t = L.accept(t, P.STRING).toUpperCase(), !/^M*(?:D?C{0,3}|C[MD])(?:L?X{0,3}|X[CL])(?:V?I{0,3}|I[XV])$/.test(t))
- throw new Q("#VALUE!", "Invalid roman numeral in ARABIC evaluation.");
- let e = 0;
- return t.replace(/[MDLV]|C[MD]?|X[CL]?|I[XV]?/g, function(n) {
- e += {
- M: 1e3,
- CM: 900,
- D: 500,
- CD: 400,
- C: 100,
- XC: 90,
- L: 50,
- XL: 40,
- X: 10,
- IX: 9,
- V: 5,
- IV: 4,
- I: 1
- }[n];
- }), e;
- },
- BASE: (t, e, n) => {
- if (t = L.accept(t, P.NUMBER), t < 0 || t >= 2 ** 53 || (e = L.accept(e, P.NUMBER), e < 2 || e > 36) || (n = L.accept(n, P.NUMBER, 0), n < 0))
- throw Q.NUM;
- const r = t.toString(e).toUpperCase();
- return new Array(Math.max(n + 1 - r.length, 0)).join("0") + r;
- },
- CEILING: (t, e) => {
- if (t = L.accept(t, P.NUMBER), e = L.accept(e, P.NUMBER), e === 0)
- return 0;
- if (t / e % 1 === 0)
- return t;
- const n = Math.abs(e), r = Math.floor(Math.abs(t) / n);
- return t < 0 ? e < 0 ? -n * (r + 1) : -n * r : (r + 1) * n;
- },
- "CEILING.MATH": (t, e, n) => {
- if (t = L.accept(t, P.NUMBER), e = L.accept(e, P.NUMBER, t > 0 ? 1 : -1), n = L.accept(n, P.NUMBER, 0), t >= 0)
- return Pe.CEILING(t, e);
- const r = n ? e : 0;
- return Pe.CEILING(t, e) - r;
- },
- "CEILING.PRECISE": (t, e) => (t = L.accept(t, P.NUMBER), e = L.accept(e, P.NUMBER, 1), Pe.CEILING(t, Math.abs(e))),
- COMBIN: (t, e) => {
- if (t = L.accept(t, P.NUMBER), e = L.accept(e, P.NUMBER), t < 0 || e < 0 || t < e)
- throw Q.NUM;
- const n = Pe.FACT(t), r = Pe.FACT(e);
- return n / r / Pe.FACT(t - e);
- },
- COMBINA: (t, e) => {
- if (t = L.accept(t, P.NUMBER), e = L.accept(e, P.NUMBER), (t === 0 || t === 1) && e === 0)
- return 1;
- if (t < 0 || e < 0)
- throw Q.NUM;
- return Pe.COMBIN(t + e - 1, t - 1);
- },
- DECIMAL: (t, e) => {
- if (t = L.accept(t, P.STRING), e = L.accept(e, P.NUMBER), e = Math.trunc(e), e < 2 || e > 36)
- throw Q.NUM;
- const n = parseInt(t, e);
- if (isNaN(n))
- throw Q.NUM;
- return n;
- },
- DEGREES: (t) => (t = L.accept(t, P.NUMBER), t * (180 / Math.PI)),
- EVEN: (t) => Pe.CEILING(t, -2),
- EXP: (t) => (t = L.accept(t, P.NUMBER), Math.exp(t)),
- FACT: (t) => {
- if (t = L.accept(t, P.NUMBER), t = Math.trunc(t), t > 170 || t < 0)
- throw Q.NUM;
- return t <= 100 ? Bo[t] : Cn(t);
- },
- FACTDOUBLE: (t) => {
- if (t = L.accept(t, P.NUMBER), t = Math.trunc(t), t < -1)
- throw Q.NUM;
- return t === -1 ? 1 : Fo(t);
- },
- FLOOR: (t, e) => {
- if (t = L.accept(t, P.NUMBER), e = L.accept(e, P.NUMBER), e === 0)
- return 0;
- if (t > 0 && e < 0)
- throw Q.NUM;
- if (t / e % 1 === 0)
- return t;
- const n = Math.abs(e), r = Math.floor(Math.abs(t) / n);
- return t < 0 ? e < 0 ? -n * r : -n * (r + 1) : r * n;
- },
- "FLOOR.MATH": (t, e, n) => (t = L.accept(t, P.NUMBER), e = L.accept(e, P.NUMBER, t > 0 ? 1 : -1), n = L.accept(n, P.NUMBER, 0), n === 0 || t >= 0 ? Pe.FLOOR(t, Math.abs(e)) : Pe.FLOOR(t, e) + e),
- "FLOOR.PRECISE": (t, e) => (t = L.accept(t, P.NUMBER), e = L.accept(e, P.NUMBER, 1), Pe.FLOOR(t, Math.abs(e))),
- GCD: (...t) => {
- const e = [];
- L.flattenParams(
- t,
- null,
- !1,
- (c) => {
- if (c = typeof c == "boolean" ? NaN : Number(c), isNaN(c))
- throw Q.VALUE;
- if (c < 0 || c > 9007199254740990)
- throw Q.NUM;
- e.push(Math.trunc(c));
- },
- 0
- );
- let n, r, i = t.length, a = Math.abs(e[0]);
- for (n = 1; n < i; n++) {
- for (r = Math.abs(e[n]); a && r; )
- a > r ? a %= r : r %= a;
- a += r;
- }
- return a;
- },
- INT: (t) => (t = L.accept(t, P.NUMBER), Math.floor(t)),
- "ISO.CEILING": (...t) => Pe["CEILING.PRECISE"](...t),
- LCM: (...t) => {
- const e = [];
- L.flattenParams(
- t,
- null,
- !1,
- (i) => {
- if (i = typeof i == "boolean" ? NaN : Number(i), isNaN(i))
- throw Q.VALUE;
- if (i < 0 || i > 9007199254740990)
- throw Q.NUM;
- e.push(Math.trunc(i));
- },
- 1
- );
- let n = e.length, r = Math.abs(e[0]);
- for (let i = 1; i < n; i++) {
- let a = Math.abs(e[i]), c = r;
- for (; r && a; )
- r > a ? r %= a : a %= r;
- r = Math.abs(c * e[i]) / (r + a);
- }
- return r;
- },
- LN: (t) => (t = L.accept(t, P.NUMBER), Math.log(t)),
- LOG: (t, e) => (t = L.accept(t, P.NUMBER), e = L.accept(e, P.NUMBER, 10), Math.log(t) / Math.log(e)),
- LOG10: (t) => (t = L.accept(t, P.NUMBER), Math.log10(t)),
- MDETERM: (t) => {
- if (t = L.accept(t, P.ARRAY, void 0, !1, !0), t[0].length !== t.length)
- throw Q.VALUE;
- const e = t.length, n = t[0].length;
- let r = 0, i, a;
- if (e === 1)
- return t[0][0];
- if (e === 2)
- return t[0][0] * t[1][1] - t[0][1] * t[1][0];
- for (let c = 0; c < n; c++) {
- i = t[0][c], a = t[0][c];
- for (let h = 1; h < e; h++)
- a *= t[h][((c + h) % n + n) % n], i *= t[h][((c - h) % n + n) % n];
- r += a - i;
- }
- return r;
- },
- MINVERSE: (t) => {
- },
- MMULT: (t, e) => {
- t = L.accept(t, P.ARRAY, void 0, !1, !0), e = L.accept(e, P.ARRAY, void 0, !1, !0);
- const n = t.length, r = t[0].length, i = e.length, a = e[0].length, c = new Array(n);
- if (r !== i)
- throw Q.VALUE;
- for (let h = 0; h < n; h++) {
- c[h] = new Array(a);
- for (let p = 0; p < a; p++) {
- c[h][p] = 0;
- for (let u = 0; u < r; u++) {
- const o = t[h][u], s = e[u][p];
- if (typeof o != "number" || typeof s != "number")
- throw Q.VALUE;
- c[h][p] += t[h][u] * e[u][p];
- }
- }
- }
- return c;
- },
- MOD: (t, e) => {
- if (t = L.accept(t, P.NUMBER), e = L.accept(e, P.NUMBER), e === 0)
- throw Q.DIV0;
- return t - e * Pe.INT(t / e);
- },
- MROUND: (t, e) => {
- if (t = L.accept(t, P.NUMBER), e = L.accept(e, P.NUMBER), e === 0)
- return 0;
- if (t > 0 && e < 0 || t < 0 && e > 0)
- throw Q.NUM;
- return t / e % 1 === 0 ? t : Math.round(t / e) * e;
- },
- MULTINOMIAL: (...t) => {
- let e = 0, n = 1;
- return L.flattenParams(t, P.NUMBER, !1, (r) => {
- if (r < 0)
- throw Q.NUM;
- e += r, n *= Cn(r);
- }), Cn(e) / n;
- },
- MUNIT: (t) => {
- t = L.accept(t, P.NUMBER);
- const e = [];
- for (let n = 0; n < t; n++) {
- const r = [];
- for (let i = 0; i < t; i++)
- n === i ? r.push(1) : r.push(0);
- e.push(r);
- }
- return e;
- },
- ODD: (t) => {
- if (t = L.accept(t, P.NUMBER), t === 0)
- return 1;
- let e = Math.ceil(Math.abs(t));
- return e = e & 1 ? e : e + 1, t > 0 ? e : -e;
- },
- PI: () => Math.PI,
- POWER: (t, e) => (t = L.accept(t, P.NUMBER), e = L.accept(e, P.NUMBER), t ** e),
- PRODUCT: (...t) => {
- let e = 1;
- return L.flattenParams(t, null, !0, (n, r) => {
- const i = Number(n);
- r.isLiteral && !isNaN(i) ? e *= i : typeof n == "number" && (e *= n);
- }, 1), e;
- },
- QUOTIENT: (t, e) => (t = L.accept(t, P.NUMBER), e = L.accept(e, P.NUMBER), Math.trunc(t / e)),
- RADIANS: (t) => (t = L.accept(t, P.NUMBER), t / 180 * Math.PI),
- RAND: () => Math.random(),
- RANDBETWEEN: (t, e) => (t = L.accept(t, P.NUMBER), e = L.accept(e, P.NUMBER), Math.floor(Math.random() * (e - t + 1) + t)),
- ROMAN: (t, e) => {
- if (t = L.accept(t, P.NUMBER), e = L.accept(e, P.NUMBER, 0), e !== 0)
- throw Error("ROMAN: only allows form=0 (classic form).");
- const n = String(t).split(""), r = ["", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM", "", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC", "", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"];
- let i = "", a = 3;
- for (; a--; )
- i = (r[+n.pop() + a * 10] || "") + i;
- return new Array(+n.join("") + 1).join("M") + i;
- },
- ROUND: (t, e) => {
- t = L.accept(t, P.NUMBER), e = L.accept(e, P.NUMBER);
- const n = Math.pow(10, Math.abs(e)), r = t > 0 ? 1 : -1;
- return e > 0 ? r * Math.round(Math.abs(t) * n) / n : e === 0 ? r * Math.round(Math.abs(t)) : r * Math.round(Math.abs(t) / n) * n;
- },
- ROUNDDOWN: (t, e) => {
- t = L.accept(t, P.NUMBER), e = L.accept(e, P.NUMBER);
- const n = Math.pow(10, Math.abs(e)), r = t > 0 ? 1 : -1;
- if (e > 0) {
- const i = 1 / n * 0.5;
- return r * Math.round((Math.abs(t) - i) * n) / n;
- } else {
- if (e === 0)
- return r * Math.round(Math.abs(t) - 0.5);
- {
- const i = n * 0.5;
- return r * Math.round((Math.abs(t) - i) / n) * n;
- }
- }
- },
- ROUNDUP: (t, e) => {
- t = L.accept(t, P.NUMBER), e = L.accept(e, P.NUMBER);
- const n = Math.pow(10, Math.abs(e)), r = t > 0 ? 1 : -1;
- if (e > 0) {
- const i = 1 / n * 0.5;
- return r * Math.round((Math.abs(t) + i) * n) / n;
- } else {
- if (e === 0)
- return r * Math.round(Math.abs(t) + 0.5);
- {
- const i = n * 0.5;
- return r * Math.round((Math.abs(t) + i) / n) * n;
- }
- }
- },
- SERIESSUM: (t, e, n, r) => {
- t = L.accept(t, P.NUMBER), e = L.accept(e, P.NUMBER), n = L.accept(n, P.NUMBER);
- let i = 0, a;
- return L.flattenParams([r], P.NUMBER, !1, (c) => {
- if (typeof c != "number")
- throw Q.VALUE;
- i === 0 ? a = c * Math.pow(t, e) : a += c * Math.pow(t, e + i * n), i++;
- }), a;
- },
- SIGN: (t) => (t = L.accept(t, P.NUMBER), t > 0 ? 1 : t === 0 ? 0 : -1),
- SQRT: (t) => {
- if (t = L.accept(t, P.NUMBER), t < 0)
- throw Q.NUM;
- return Math.sqrt(t);
- },
- SQRTPI: (t) => {
- if (t = L.accept(t, P.NUMBER), t < 0)
- throw Q.NUM;
- return Math.sqrt(t * Math.PI);
- },
- SUBTOTAL: () => {
- },
- SUM: (...t) => {
- let e = 0;
- return L.flattenParams(
- t,
- P.NUMBER,
- !0,
- (n, r) => {
- (r.isLiteral || typeof n == "number") && (e += n);
- }
- ), e;
- },
- /**
- * This functions requires instance of {@link FormulaParser}.
- */
- SUMIF: (t, e, n, r) => {
- const i = L.retrieveRanges(t, e, r);
- e = i[0], r = i[1], n = L.retrieveArg(t, n);
- const a = n.isArray;
- n = _a.parse(L.accept(n));
- let c = 0;
- return e.forEach((h, p) => {
- h.forEach((u, o) => {
- const s = r[p][o];
- typeof s == "number" && (n.op === "wc" ? n.match === n.value.test(u) && (c += s) : Pa.compareOp(u, n.op, n.value, Array.isArray(u), a) && (c += s));
- });
- }), c;
- },
- SUMIFS: () => {
- },
- SUMPRODUCT: (t, ...e) => {
- t = L.accept(t, P.ARRAY, void 0, !1, !0), e.forEach((r) => {
- if (r = L.accept(r, P.ARRAY, void 0, !1, !0), t[0].length !== r[0].length || t.length !== r.length)
- throw Q.VALUE;
- for (let i = 0; i < t.length; i++)
- for (let a = 0; a < t[0].length; a++)
- typeof t[i][a] != "number" && (t[i][a] = 0), typeof r[i][a] != "number" && (r[i][a] = 0), t[i][a] *= r[i][a];
- });
- let n = 0;
- return t.forEach((r) => {
- r.forEach((i) => {
- n += i;
- });
- }), n;
- },
- SUMSQ: (...t) => {
- let e = 0;
- return L.flattenParams(
- t,
- P.NUMBER,
- !0,
- (n, r) => {
- (r.isLiteral || typeof n == "number") && (e += n ** 2);
- }
- ), e;
- },
- SUMX2MY2: (t, e) => {
- const n = [], r = [];
- let i = 0;
- if (L.flattenParams([t], null, !1, (a, c) => {
- n.push(a);
- }), L.flattenParams([e], null, !1, (a, c) => {
- r.push(a);
- }), n.length !== r.length)
- throw Q.NA;
- for (let a = 0; a < n.length; a++)
- typeof n[a] == "number" && typeof r[a] == "number" && (i += n[a] ** 2 - r[a] ** 2);
- return i;
- },
- SUMX2PY2: (t, e) => {
- const n = [], r = [];
- let i = 0;
- if (L.flattenParams([t], null, !1, (a, c) => {
- n.push(a);
- }), L.flattenParams([e], null, !1, (a, c) => {
- r.push(a);
- }), n.length !== r.length)
- throw Q.NA;
- for (let a = 0; a < n.length; a++)
- typeof n[a] == "number" && typeof r[a] == "number" && (i += n[a] ** 2 + r[a] ** 2);
- return i;
- },
- SUMXMY2: (t, e) => {
- const n = [], r = [];
- let i = 0;
- if (L.flattenParams([t], null, !1, (a, c) => {
- n.push(a);
- }), L.flattenParams([e], null, !1, (a, c) => {
- r.push(a);
- }), n.length !== r.length)
- throw Q.NA;
- for (let a = 0; a < n.length; a++)
- typeof n[a] == "number" && typeof r[a] == "number" && (i += (n[a] - r[a]) ** 2);
- return i;
- },
- TRUNC: (t) => (t = L.accept(t, P.NUMBER), Math.trunc(t))
-};
-var bo = Pe;
-const Ie = he(), { FormulaHelpers: ka, Types: ie } = ge(), oe = ka, Vt = 2 ** 27 - 1, xa = {
- ACOS: (t) => {
- if (t = oe.accept(t, ie.NUMBER), t > 1 || t < -1)
- throw Ie.NUM;
- return Math.acos(t);
- },
- ACOSH: (t) => {
- if (t = oe.accept(t, ie.NUMBER), t < 1)
- throw Ie.NUM;
- return Math.acosh(t);
- },
- ACOT: (t) => (t = oe.accept(t, ie.NUMBER), Math.PI / 2 - Math.atan(t)),
- ACOTH: (t) => {
- if (t = oe.accept(t, ie.NUMBER), Math.abs(t) <= 1)
- throw Ie.NUM;
- return Math.atanh(1 / t);
- },
- ASIN: (t) => {
- if (t = oe.accept(t, ie.NUMBER), t > 1 || t < -1)
- throw Ie.NUM;
- return Math.asin(t);
- },
- ASINH: (t) => (t = oe.accept(t, ie.NUMBER), Math.asinh(t)),
- ATAN: (t) => (t = oe.accept(t, ie.NUMBER), Math.atan(t)),
- ATAN2: (t, e) => {
- if (t = oe.accept(t, ie.NUMBER), e = oe.accept(e, ie.NUMBER), e === 0 && t === 0)
- throw Ie.DIV0;
- return Math.atan2(e, t);
- },
- ATANH: (t) => {
- if (t = oe.accept(t, ie.NUMBER), Math.abs(t) > 1)
- throw Ie.NUM;
- return Math.atanh(t);
- },
- COS: (t) => {
- if (t = oe.accept(t, ie.NUMBER), Math.abs(t) > Vt)
- throw Ie.NUM;
- return Math.cos(t);
- },
- COSH: (t) => (t = oe.accept(t, ie.NUMBER), Math.cosh(t)),
- COT: (t) => {
- if (t = oe.accept(t, ie.NUMBER), Math.abs(t) > Vt)
- throw Ie.NUM;
- if (t === 0)
- throw Ie.DIV0;
- return 1 / Math.tan(t);
- },
- COTH: (t) => {
- if (t = oe.accept(t, ie.NUMBER), t === 0)
- throw Ie.DIV0;
- return 1 / Math.tanh(t);
- },
- CSC: (t) => {
- if (t = oe.accept(t, ie.NUMBER), Math.abs(t) > Vt)
- throw Ie.NUM;
- return 1 / Math.sin(t);
- },
- CSCH: (t) => {
- if (t = oe.accept(t, ie.NUMBER), t === 0)
- throw Ie.DIV0;
- return 1 / Math.sinh(t);
- },
- SEC: (t) => {
- if (t = oe.accept(t, ie.NUMBER), Math.abs(t) > Vt)
- throw Ie.NUM;
- return 1 / Math.cos(t);
- },
- SECH: (t) => (t = oe.accept(t, ie.NUMBER), 1 / Math.cosh(t)),
- SIN: (t) => {
- if (t = oe.accept(t, ie.NUMBER), Math.abs(t) > Vt)
- throw Ie.NUM;
- return Math.sin(t);
- },
- SINH: (t) => (t = oe.accept(t, ie.NUMBER), Math.sinh(t)),
- TAN: (t) => {
- if (t = oe.accept(t, ie.NUMBER), Math.abs(t) > Vt)
- throw Ie.NUM;
- return Math.tan(t);
- },
- TANH: (t) => (t = oe.accept(t, ie.NUMBER), Math.tanh(t))
-};
-var Sa = xa;
-const yt = he(), { FormulaHelpers: Ba, Types: hr } = ge(), ze = Ba;
-function pr(t) {
- let e = 0, n = 0;
- return ze.flattenParams(t, null, !0, (r) => {
- const i = typeof r;
- i === "string" ? r === "TRUE" ? r = !0 : r === "FALSE" && (r = !1) : i === "number" && (r = !!r), typeof r == "boolean" && (r === !0 ? e++ : n++);
- }), [e, n];
-}
-const Fa = {
- AND: (...t) => {
- const [e, n] = pr(t);
- return e === 0 && n === 0 ? yt.VALUE : e > 0 && n === 0;
- },
- FALSE: () => !1,
- // Special
- IF: (t, e, n, r) => (e = ze.accept(e, hr.BOOLEAN), n = ze.accept(n), r = ze.accept(r, null, !1), e ? n : r),
- IFERROR: (t, e) => t.value instanceof yt ? ze.accept(e) : ze.accept(t),
- IFNA: function(t, e) {
- if (arguments.length > 2)
- throw yt.TOO_MANY_ARGS("IFNA");
- return yt.NA.equals(t.value) ? ze.accept(e) : ze.accept(t);
- },
- IFS: (...t) => {
- if (t.length % 2 !== 0)
- return new yt("#N/A", "IFS expects all arguments after position 0 to be in pairs.");
- for (let e = 0; e < t.length / 2; e++) {
- const n = ze.accept(t[e * 2], hr.BOOLEAN), r = ze.accept(t[e * 2 + 1]);
- if (n)
- return r;
- }
- return yt.NA;
- },
- NOT: (t) => (t = ze.accept(t, hr.BOOLEAN), !t),
- OR: (...t) => {
- const [e, n] = pr(t);
- return e === 0 && n === 0 ? yt.VALUE : e > 0;
- },
- SWITCH: (...t) => {
- },
- TRUE: () => !0,
- XOR: (...t) => {
- const [e, n] = pr(t);
- return e === 0 && n === 0 ? yt.VALUE : e % 2 === 1;
- }
-};
-var ba = Fa, Do = {};
-(function(t) {
- (function(e) {
- e(typeof DO_NOT_EXPORT_BESSEL > "u" ? t : {});
- })(function(e) {
- e.version = "1.0.2";
- var n = Math;
- function r(o, s) {
- for (var l = 0, f = 0; l < o.length; ++l)
- f = s * f + o[l];
- return f;
- }
- function i(o, s, l, f, v) {
- if (s === 0)
- return l;
- if (s === 1)
- return f;
- for (var d = 2 / o, g = f, E = 1; E < s; ++E)
- g = f * E * d + v * l, l = f, f = g;
- return g;
- }
- function a(o, s, l, f, v) {
- return function(g, E) {
- if (f) {
- if (g === 0)
- return f == 1 ? -1 / 0 : 1 / 0;
- if (g < 0)
- return NaN;
- }
- if (E === 0)
- return o(g);
- if (E === 1)
- return s(g);
- if (E < 0)
- return NaN;
- E |= 0;
- var A = o(g), m = s(g);
- return i(g, E, A, m, v);
- };
- }
- var c = function() {
- var o = 0.636619772, s = [57568490574, -13362590354, 6516196407e-1, -1121442418e-2, 77392.33017, -184.9052456].reverse(), l = [57568490411, 1029532985, 9494680718e-3, 59272.64853, 267.8532712, 1].reverse(), f = [1, -0.001098628627, 2734510407e-14, -2073370639e-15, 2093887211e-16].reverse(), v = [-0.01562499995, 1430488765e-13, -6911147651e-15, 7621095161e-16, -934935152e-16].reverse();
- function d(y) {
- var R = 0, T = 0, w = 0, C = y * y;
- if (y < 8)
- T = r(s, C), w = r(l, C), R = T / w;
- else {
- var M = y - 0.785398164;
- C = 64 / C, T = r(f, C), w = r(v, C), R = n.sqrt(o / y) * (n.cos(M) * T - n.sin(M) * w * 8 / y);
- }
- return R;
- }
- var g = [72362614232, -7895059235, 2423968531e-1, -2972611439e-3, 15704.4826, -30.16036606].reverse(), E = [144725228442, 2300535178, 1858330474e-2, 99447.43394, 376.9991397, 1].reverse(), A = [1, 183105e-8, -3516396496e-14, 2457520174e-15, -240337019e-15].reverse(), m = [0.04687499995, -2002690873e-13, 8449199096e-15, -88228987e-14, 105787412e-15].reverse();
- function N(y) {
- var R = 0, T = 0, w = 0, C = y * y, M = n.abs(y) - 2.356194491;
- return Math.abs(y) < 8 ? (T = y * r(g, C), w = r(E, C), R = T / w) : (C = 64 / C, T = r(A, C), w = r(m, C), R = n.sqrt(o / n.abs(y)) * (n.cos(M) * T - n.sin(M) * w * 8 / n.abs(y)), y < 0 && (R = -R)), R;
- }
- return function y(R, T) {
- if (T = Math.round(T), !isFinite(R))
- return isNaN(R) ? R : 0;
- if (T < 0)
- return (T % 2 ? -1 : 1) * y(R, -T);
- if (R < 0)
- return (T % 2 ? -1 : 1) * y(-R, T);
- if (T === 0)
- return d(R);
- if (T === 1)
- return N(R);
- if (R === 0)
- return 0;
- var w = 0;
- if (R > T)
- w = i(R, T, d(R), N(R), -1);
- else {
- for (var C = 2 * n.floor((T + n.floor(n.sqrt(40 * T))) / 2), M = !1, _ = 0, W = 0, F = 1, S = 0, G = 2 / R, J = C; J > 0; J--)
- S = J * G * F - _, _ = F, F = S, n.abs(F) > 1e10 && (F *= 1e-10, _ *= 1e-10, w *= 1e-10, W *= 1e-10), M && (W += F), M = !M, J == T && (w = _);
- W = 2 * W - F, w /= W;
- }
- return w;
- };
- }(), h = function() {
- var o = 0.636619772, s = [-2957821389, 7062834065, -5123598036e-1, 1087988129e-2, -86327.92757, 228.4622733].reverse(), l = [40076544269, 7452499648e-1, 7189466438e-3, 47447.2647, 226.1030244, 1].reverse(), f = [1, -0.001098628627, 2734510407e-14, -2073370639e-15, 2093887211e-16].reverse(), v = [-0.01562499995, 1430488765e-13, -6911147651e-15, 7621095161e-16, -934945152e-16].reverse();
- function d(y) {
- var R = 0, T = 0, w = 0, C = y * y, M = y - 0.785398164;
- return y < 8 ? (T = r(s, C), w = r(l, C), R = T / w + o * c(y, 0) * n.log(y)) : (C = 64 / C, T = r(f, C), w = r(v, C), R = n.sqrt(o / y) * (n.sin(M) * T + n.cos(M) * w * 8 / y)), R;
- }
- var g = [-4900604943e3, 127527439e4, -51534381390, 7349264551e-1, -4237922726e-3, 8511.937935].reverse(), E = [249958057e5, 424441966400, 3733650367, 2245904002e-2, 102042.605, 354.9632885, 1].reverse(), A = [1, 183105e-8, -3516396496e-14, 2457520174e-15, -240337019e-15].reverse(), m = [0.04687499995, -2002690873e-13, 8449199096e-15, -88228987e-14, 105787412e-15].reverse();
- function N(y) {
- var R = 0, T = 0, w = 0, C = y * y, M = y - 2.356194491;
- return y < 8 ? (T = y * r(g, C), w = r(E, C), R = T / w + o * (c(y, 1) * n.log(y) - 1 / y)) : (C = 64 / C, T = r(A, C), w = r(m, C), R = n.sqrt(o / y) * (n.sin(M) * T + n.cos(M) * w * 8 / y)), R;
- }
- return a(d, N, "BESSELY", 1, -1);
- }(), p = function() {
- var o = [1, 3.5156229, 3.0899424, 1.2067492, 0.2659732, 0.0360768, 45813e-7].reverse(), s = [0.39894228, 0.01328592, 225319e-8, -157565e-8, 916281e-8, -0.02057706, 0.02635537, -0.01647633, 392377e-8].reverse();
- function l(g) {
- return g <= 3.75 ? r(o, g * g / (3.75 * 3.75)) : n.exp(n.abs(g)) / n.sqrt(n.abs(g)) * r(s, 3.75 / n.abs(g));
- }
- var f = [0.5, 0.87890594, 0.51498869, 0.15084934, 0.02658733, 301532e-8, 32411e-8].reverse(), v = [0.39894228, -0.03988024, -362018e-8, 163801e-8, -0.01031555, 0.02282967, -0.02895312, 0.01787654, -420059e-8].reverse();
- function d(g) {
- return g < 3.75 ? g * r(f, g * g / (3.75 * 3.75)) : (g < 0 ? -1 : 1) * n.exp(n.abs(g)) / n.sqrt(n.abs(g)) * r(v, 3.75 / n.abs(g));
- }
- return function g(E, A) {
- if (A = Math.round(A), A === 0)
- return l(E);
- if (A === 1)
- return d(E);
- if (A < 0)
- return NaN;
- if (n.abs(E) === 0)
- return 0;
- if (E == 1 / 0)
- return 1 / 0;
- var m = 0, N, y = 2 / n.abs(E), R = 0, T = 1, w = 0, C = 2 * n.round((A + n.round(n.sqrt(40 * A))) / 2);
- for (N = C; N > 0; N--)
- w = N * y * T + R, R = T, T = w, n.abs(T) > 1e10 && (T *= 1e-10, R *= 1e-10, m *= 1e-10), N == A && (m = R);
- return m *= g(E, 0) / T, E < 0 && A % 2 ? -m : m;
- };
- }(), u = function() {
- var o = [-0.57721566, 0.4227842, 0.23069756, 0.0348859, 262698e-8, 1075e-7, 74e-7].reverse(), s = [1.25331414, -0.07832358, 0.02189568, -0.01062446, 587872e-8, -25154e-7, 53208e-8].reverse();
- function l(g) {
- return g <= 2 ? -n.log(g / 2) * p(g, 0) + r(o, g * g / 4) : n.exp(-g) / n.sqrt(g) * r(s, 2 / g);
- }
- var f = [1, 0.15443144, -0.67278579, -0.18156897, -0.01919402, -110404e-8, -4686e-8].reverse(), v = [1.25331414, 0.23498619, -0.0365562, 0.01504268, -780353e-8, 325614e-8, -68245e-8].reverse();
- function d(g) {
- return g <= 2 ? n.log(g / 2) * p(g, 1) + 1 / g * r(f, g * g / 4) : n.exp(-g) / n.sqrt(g) * r(v, 2 / g);
- }
- return a(l, d, "BESSELK", 2, 1);
- }();
- e.besselj = c, e.bessely = h, e.besseli = p, e.besselk = u;
- });
-})(Do);
-var Vo = { exports: {} };
-(function(t, e) {
- (function(n, r) {
- t.exports = r();
- })(Ro, function() {
- var n = function(r, i) {
- var a = Array.prototype.concat, c = Array.prototype.slice, h = Object.prototype.toString;
- function p(A, m) {
- var N = A > m ? A : m;
- return r.pow(
- 10,
- 17 - ~~(r.log(N > 0 ? N : -N) * r.LOG10E)
- );
- }
- var u = Array.isArray || function(m) {
- return h.call(m) === "[object Array]";
- };
- function o(A) {
- return h.call(A) === "[object Function]";
- }
- function s(A) {
- return typeof A == "number" ? A - A === 0 : !1;
- }
- function l(A) {
- return a.apply([], A);
- }
- function f() {
- return new f._init(arguments);
- }
- f.fn = f.prototype, f._init = function(m) {
- if (u(m[0]))
- if (u(m[0][0])) {
- o(m[1]) && (m[0] = f.map(m[0], m[1]));
- for (var N = 0; N < m[0].length; N++)
- this[N] = m[0][N];
- this.length = m[0].length;
- } else
- this[0] = o(m[1]) ? f.map(m[0], m[1]) : m[0], this.length = 1;
- else if (s(m[0]))
- this[0] = f.seq.apply(null, m), this.length = 1;
- else {
- if (m[0] instanceof f)
- return f(m[0].toArray());
- this[0] = [], this.length = 1;
- }
- return this;
- }, f._init.prototype = f.prototype, f._init.constructor = f, f.utils = {
- calcRdx: p,
- isArray: u,
- isFunction: o,
- isNumber: s,
- toVector: l
- }, f._random_fn = r.random, f.setRandom = function(m) {
- if (typeof m != "function")
- throw new TypeError("fn is not a function");
- f._random_fn = m;
- }, f.extend = function(m) {
- var N, y;
- if (arguments.length === 1) {
- for (y in m)
- f[y] = m[y];
- return this;
- }
- for (N = 1; N < arguments.length; N++)
- for (y in arguments[N])
- m[y] = arguments[N][y];
- return m;
- }, f.rows = function(m) {
- return m.length || 1;
- }, f.cols = function(m) {
- return m[0].length || 1;
- }, f.dimensions = function(m) {
- return {
- rows: f.rows(m),
- cols: f.cols(m)
- };
- }, f.row = function(m, N) {
- return u(N) ? N.map(function(y) {
- return f.row(m, y);
- }) : m[N];
- }, f.rowa = function(m, N) {
- return f.row(m, N);
- }, f.col = function(m, N) {
- if (u(N)) {
- var y = f.arange(m.length).map(function() {
- return new Array(N.length);
- });
- return N.forEach(function(w, C) {
- f.arange(m.length).forEach(function(M) {
- y[M][C] = m[M][w];
- });
- }), y;
- }
- for (var R = new Array(m.length), T = 0; T < m.length; T++)
- R[T] = [m[T][N]];
- return R;
- }, f.cola = function(m, N) {
- return f.col(m, N).map(function(y) {
- return y[0];
- });
- }, f.diag = function(m) {
- for (var N = f.rows(m), y = new Array(N), R = 0; R < N; R++)
- y[R] = [m[R][R]];
- return y;
- }, f.antidiag = function(m) {
- for (var N = f.rows(m) - 1, y = new Array(N), R = 0; N >= 0; N--, R++)
- y[R] = [m[R][N]];
- return y;
- }, f.transpose = function(m) {
- var N = [], y, R, T, w, C;
- for (u(m[0]) || (m = [m]), R = m.length, T = m[0].length, C = 0; C < T; C++) {
- for (y = new Array(R), w = 0; w < R; w++)
- y[w] = m[w][C];
- N.push(y);
- }
- return N.length === 1 ? N[0] : N;
- }, f.map = function(m, N, y) {
- var R, T, w, C, M;
- for (u(m[0]) || (m = [m]), T = m.length, w = m[0].length, C = y ? m : new Array(T), R = 0; R < T; R++)
- for (C[R] || (C[R] = new Array(w)), M = 0; M < w; M++)
- C[R][M] = N(m[R][M], R, M);
- return C.length === 1 ? C[0] : C;
- }, f.cumreduce = function(m, N, y) {
- var R, T, w, C, M;
- for (u(m[0]) || (m = [m]), T = m.length, w = m[0].length, C = y ? m : new Array(T), R = 0; R < T; R++)
- for (C[R] || (C[R] = new Array(w)), w > 0 && (C[R][0] = m[R][0]), M = 1; M < w; M++)
- C[R][M] = N(C[R][M - 1], m[R][M]);
- return C.length === 1 ? C[0] : C;
- }, f.alter = function(m, N) {
- return f.map(m, N, !0);
- }, f.create = function(m, N, y) {
- var R = new Array(m), T, w;
- for (o(N) && (y = N, N = m), T = 0; T < m; T++)
- for (R[T] = new Array(N), w = 0; w < N; w++)
- R[T][w] = y(T, w);
- return R;
- };
- function v() {
- return 0;
- }
- f.zeros = function(m, N) {
- return s(N) || (N = m), f.create(m, N, v);
- };
- function d() {
- return 1;
- }
- f.ones = function(m, N) {
- return s(N) || (N = m), f.create(m, N, d);
- }, f.rand = function(m, N) {
- return s(N) || (N = m), f.create(m, N, f._random_fn);
- };
- function g(A, m) {
- return A === m ? 1 : 0;
- }
- f.identity = function(m, N) {
- return s(N) || (N = m), f.create(m, N, g);
- }, f.symmetric = function(m) {
- var N = m.length, y, R;
- if (m.length !== m[0].length)
- return !1;
- for (y = 0; y < N; y++)
- for (R = 0; R < N; R++)
- if (m[R][y] !== m[y][R])
- return !1;
- return !0;
- }, f.clear = function(m) {
- return f.alter(m, v);
- }, f.seq = function(m, N, y, R) {
- o(R) || (R = !1);
- var T = [], w = p(m, N), C = (N * w - m * w) / ((y - 1) * w), M = m, _;
- for (_ = 0; M <= N && _ < y; _++, M = (m * w + C * w * _) / w)
- T.push(R ? R(M, _) : M);
- return T;
- }, f.arange = function(m, N, y) {
- var R = [], T;
- if (y = y || 1, N === i && (N = m, m = 0), m === N || y === 0)
- return [];
- if (m < N && y < 0)
- return [];
- if (m > N && y > 0)
- return [];
- if (y > 0)
- for (T = m; T < N; T += y)
- R.push(T);
- else
- for (T = m; T > N; T += y)
- R.push(T);
- return R;
- }, f.slice = function() {
- function A(N, y, R, T) {
- var w, C = [], M = N.length;
- if (y === i && R === i && T === i)
- return f.copy(N);
- if (y = y || 0, R = R || N.length, y = y >= 0 ? y : M + y, R = R >= 0 ? R : M + R, T = T || 1, y === R || T === 0)
- return [];
- if (y < R && T < 0)
- return [];
- if (y > R && T > 0)
- return [];
- if (T > 0)
- for (w = y; w < R; w += T)
- C.push(N[w]);
- else
- for (w = y; w > R; w += T)
- C.push(N[w]);
- return C;
- }
- function m(N, y) {
- var R, T;
- if (y = y || {}, s(y.row)) {
- if (s(y.col))
- return N[y.row][y.col];
- var w = f.rowa(N, y.row);
- return R = y.col || {}, A(w, R.start, R.end, R.step);
- }
- if (s(y.col)) {
- var C = f.cola(N, y.col);
- return T = y.row || {}, A(C, T.start, T.end, T.step);
- }
- T = y.row || {}, R = y.col || {};
- var M = A(N, T.start, T.end, T.step);
- return M.map(function(_) {
- return A(_, R.start, R.end, R.step);
- });
- }
- return m;
- }(), f.sliceAssign = function(m, N, y) {
- var R, T;
- if (s(N.row)) {
- if (s(N.col))
- return m[N.row][N.col] = y;
- N.col = N.col || {}, N.col.start = N.col.start || 0, N.col.end = N.col.end || m[0].length, N.col.step = N.col.step || 1, R = f.arange(
- N.col.start,
- r.min(m.length, N.col.end),
- N.col.step
- );
- var w = N.row;
- return R.forEach(function(M, _) {
- m[w][M] = y[_];
- }), m;
- }
- if (s(N.col)) {
- N.row = N.row || {}, N.row.start = N.row.start || 0, N.row.end = N.row.end || m.length, N.row.step = N.row.step || 1, T = f.arange(
- N.row.start,
- r.min(m[0].length, N.row.end),
- N.row.step
- );
- var C = N.col;
- return T.forEach(function(M, _) {
- m[M][C] = y[_];
- }), m;
- }
- return y[0].length === i && (y = [y]), N.row.start = N.row.start || 0, N.row.end = N.row.end || m.length, N.row.step = N.row.step || 1, N.col.start = N.col.start || 0, N.col.end = N.col.end || m[0].length, N.col.step = N.col.step || 1, T = f.arange(
- N.row.start,
- r.min(m.length, N.row.end),
- N.row.step
- ), R = f.arange(
- N.col.start,
- r.min(m[0].length, N.col.end),
- N.col.step
- ), T.forEach(function(M, _) {
- R.forEach(function(W, F) {
- m[M][W] = y[_][F];
- });
- }), m;
- }, f.diagonal = function(m) {
- var N = f.zeros(m.length, m.length);
- return m.forEach(function(y, R) {
- N[R][R] = y;
- }), N;
- }, f.copy = function(m) {
- return m.map(function(N) {
- return s(N) ? N : N.map(function(y) {
- return y;
- });
- });
- };
- var E = f.prototype;
- return E.length = 0, E.push = Array.prototype.push, E.sort = Array.prototype.sort, E.splice = Array.prototype.splice, E.slice = Array.prototype.slice, E.toArray = function() {
- return this.length > 1 ? c.call(this) : c.call(this)[0];
- }, E.map = function(m, N) {
- return f(f.map(this, m, N));
- }, E.cumreduce = function(m, N) {
- return f(f.cumreduce(this, m, N));
- }, E.alter = function(m) {
- return f.alter(this, m), this;
- }, function(A) {
- for (var m = 0; m < A.length; m++)
- (function(N) {
- E[N] = function(y) {
- var R = this, T;
- return y ? (setTimeout(function() {
- y.call(R, E[N].call(R));
- }), this) : (T = f[N](this), u(T) ? f(T) : T);
- };
- })(A[m]);
- }("transpose clear symmetric rows cols dimensions diag antidiag".split(" ")), function(A) {
- for (var m = 0; m < A.length; m++)
- (function(N) {
- E[N] = function(y, R) {
- var T = this;
- return R ? (setTimeout(function() {
- R.call(T, E[N].call(T, y));
- }), this) : f(f[N](this, y));
- };
- })(A[m]);
- }("row col".split(" ")), function(A) {
- for (var m = 0; m < A.length; m++)
- (function(N) {
- E[N] = function() {
- return f(f[N].apply(null, arguments));
- };
- })(A[m]);
- }("create zeros ones rand identity".split(" ")), f;
- }(Math);
- return function(r, i) {
- var a = r.utils.isFunction;
- function c(u, o) {
- return u - o;
- }
- function h(u, o, s) {
- return i.max(o, i.min(u, s));
- }
- r.sum = function(o) {
- for (var s = 0, l = o.length; --l >= 0; )
- s += o[l];
- return s;
- }, r.sumsqrd = function(o) {
- for (var s = 0, l = o.length; --l >= 0; )
- s += o[l] * o[l];
- return s;
- }, r.sumsqerr = function(o) {
- for (var s = r.mean(o), l = 0, f = o.length, v; --f >= 0; )
- v = o[f] - s, l += v * v;
- return l;
- }, r.sumrow = function(o) {
- for (var s = 0, l = o.length; --l >= 0; )
- s += o[l];
- return s;
- }, r.product = function(o) {
- for (var s = 1, l = o.length; --l >= 0; )
- s *= o[l];
- return s;
- }, r.min = function(o) {
- for (var s = o[0], l = 0; ++l < o.length; )
- o[l] < s && (s = o[l]);
- return s;
- }, r.max = function(o) {
- for (var s = o[0], l = 0; ++l < o.length; )
- o[l] > s && (s = o[l]);
- return s;
- }, r.unique = function(o) {
- for (var s = {}, l = [], f = 0; f < o.length; f++)
- s[o[f]] || (s[o[f]] = !0, l.push(o[f]));
- return l;
- }, r.mean = function(o) {
- return r.sum(o) / o.length;
- }, r.meansqerr = function(o) {
- return r.sumsqerr(o) / o.length;
- }, r.geomean = function(o) {
- var s = o.map(i.log), l = r.mean(s);
- return i.exp(l);
- }, r.median = function(o) {
- var s = o.length, l = o.slice().sort(c);
- return s & 1 ? l[s / 2 | 0] : (l[s / 2 - 1] + l[s / 2]) / 2;
- }, r.cumsum = function(o) {
- return r.cumreduce(o, function(s, l) {
- return s + l;
- });
- }, r.cumprod = function(o) {
- return r.cumreduce(o, function(s, l) {
- return s * l;
- });
- }, r.diff = function(o) {
- var s = [], l = o.length, f;
- for (f = 1; f < l; f++)
- s.push(o[f] - o[f - 1]);
- return s;
- }, r.rank = function(u) {
- var o, s = [], l = {};
- for (o = 0; o < u.length; o++) {
- var f = u[o];
- l[f] ? l[f]++ : (l[f] = 1, s.push(f));
- }
- var v = s.sort(c), d = {}, g = 1;
- for (o = 0; o < v.length; o++) {
- var f = v[o], E = l[f], A = g, m = g + E - 1, N = (A + m) / 2;
- d[f] = N, g += E;
- }
- return u.map(function(y) {
- return d[y];
- });
- }, r.mode = function(o) {
- var s = o.length, l = o.slice().sort(c), f = 1, v = 0, d = 0, g = [], E;
- for (E = 0; E < s; E++)
- l[E] === l[E + 1] ? f++ : (f > v ? (g = [l[E]], v = f, d = 0) : f === v && (g.push(l[E]), d++), f = 1);
- return d === 0 ? g[0] : g;
- }, r.range = function(o) {
- return r.max(o) - r.min(o);
- }, r.variance = function(o, s) {
- return r.sumsqerr(o) / (o.length - (s ? 1 : 0));
- }, r.pooledvariance = function(o) {
- var s = o.reduce(function(f, v) {
- return f + r.sumsqerr(v);
- }, 0), l = o.reduce(function(f, v) {
- return f + v.length;
- }, 0);
- return s / (l - o.length);
- }, r.deviation = function(u) {
- for (var o = r.mean(u), s = u.length, l = new Array(s), f = 0; f < s; f++)
- l[f] = u[f] - o;
- return l;
- }, r.stdev = function(o, s) {
- return i.sqrt(r.variance(o, s));
- }, r.pooledstdev = function(o) {
- return i.sqrt(r.pooledvariance(o));
- }, r.meandev = function(o) {
- for (var s = r.mean(o), l = [], f = o.length - 1; f >= 0; f--)
- l.push(i.abs(o[f] - s));
- return r.mean(l);
- }, r.meddev = function(o) {
- for (var s = r.median(o), l = [], f = o.length - 1; f >= 0; f--)
- l.push(i.abs(o[f] - s));
- return r.median(l);
- }, r.coeffvar = function(o) {
- return r.stdev(o) / r.mean(o);
- }, r.quartiles = function(o) {
- var s = o.length, l = o.slice().sort(c);
- return [
- l[i.round(s / 4) - 1],
- l[i.round(s / 2) - 1],
- l[i.round(s * 3 / 4) - 1]
- ];
- }, r.quantiles = function(o, s, l, f) {
- var v = o.slice().sort(c), d = [s.length], g = o.length, E, A, m, N, y, R;
- for (typeof l > "u" && (l = 3 / 8), typeof f > "u" && (f = 3 / 8), E = 0; E < s.length; E++)
- A = s[E], m = l + A * (1 - l - f), N = g * A + m, y = i.floor(h(N, 1, g - 1)), R = h(N - y, 0, 1), d[E] = (1 - R) * v[y - 1] + R * v[y];
- return d;
- }, r.percentile = function(o, s, l) {
- var f = o.slice().sort(c), v = s * (f.length + (l ? 1 : -1)) + (l ? 0 : 1), d = parseInt(v), g = v - d;
- return d + 1 < f.length ? f[d - 1] + g * (f[d] - f[d - 1]) : f[d - 1];
- }, r.percentileOfScore = function(o, s, l) {
- var f = 0, v = o.length, d = !1, g, E;
- for (l === "strict" && (d = !0), E = 0; E < v; E++)
- g = o[E], (d && g < s || !d && g <= s) && f++;
- return f / v;
- }, r.histogram = function(o, s) {
- s = s || 4;
- var l = r.min(o), f = (r.max(o) - l) / s, v = o.length, d = [], g;
- for (g = 0; g < s; g++)
- d[g] = 0;
- for (g = 0; g < v; g++)
- d[i.min(i.floor((o[g] - l) / f), s - 1)] += 1;
- return d;
- }, r.covariance = function(o, s) {
- var l = r.mean(o), f = r.mean(s), v = o.length, d = new Array(v), g;
- for (g = 0; g < v; g++)
- d[g] = (o[g] - l) * (s[g] - f);
- return r.sum(d) / (v - 1);
- }, r.corrcoeff = function(o, s) {
- return r.covariance(o, s) / r.stdev(o, 1) / r.stdev(s, 1);
- }, r.spearmancoeff = function(u, o) {
- return u = r.rank(u), o = r.rank(o), r.corrcoeff(u, o);
- }, r.stanMoment = function(o, s) {
- for (var l = r.mean(o), f = r.stdev(o), v = o.length, d = 0, g = 0; g < v; g++)
- d += i.pow((o[g] - l) / f, s);
- return d / o.length;
- }, r.skewness = function(o) {
- return r.stanMoment(o, 3);
- }, r.kurtosis = function(o) {
- return r.stanMoment(o, 4) - 3;
- };
- var p = r.prototype;
- (function(u) {
- for (var o = 0; o < u.length; o++)
- (function(s) {
- p[s] = function(l, f) {
- var v = [], d = 0, g = this;
- if (a(l) && (f = l, l = !1), f)
- return setTimeout(function() {
- f.call(g, p[s].call(g, l));
- }), this;
- if (this.length > 1) {
- for (g = l === !0 ? this : this.transpose(); d < g.length; d++)
- v[d] = r[s](g[d]);
- return v;
- }
- return r[s](this[0], l);
- };
- })(u[o]);
- })("cumsum cumprod".split(" ")), function(u) {
- for (var o = 0; o < u.length; o++)
- (function(s) {
- p[s] = function(l, f) {
- var v = [], d = 0, g = this;
- if (a(l) && (f = l, l = !1), f)
- return setTimeout(function() {
- f.call(g, p[s].call(g, l));
- }), this;
- if (this.length > 1) {
- for (s !== "sumrow" && (g = l === !0 ? this : this.transpose()); d < g.length; d++)
- v[d] = r[s](g[d]);
- return l === !0 ? r[s](r.utils.toVector(v)) : v;
- }
- return r[s](this[0], l);
- };
- })(u[o]);
- }("sum sumsqrd sumsqerr sumrow product min max unique mean meansqerr geomean median diff rank mode range variance deviation stdev meandev meddev coeffvar quartiles histogram skewness kurtosis".split(" ")), function(u) {
- for (var o = 0; o < u.length; o++)
- (function(s) {
- p[s] = function() {
- var l = [], f = 0, v = this, d = Array.prototype.slice.call(arguments), g;
- if (a(d[d.length - 1])) {
- g = d[d.length - 1];
- var E = d.slice(0, d.length - 1);
- return setTimeout(function() {
- g.call(
- v,
- p[s].apply(v, E)
- );
- }), this;
- } else {
- g = void 0;
- var A = function(N) {
- return r[s].apply(v, [N].concat(d));
- };
- }
- if (this.length > 1) {
- for (v = v.transpose(); f < v.length; f++)
- l[f] = A(v[f]);
- return l;
- }
- return A(this[0]);
- };
- })(u[o]);
- }("quantiles percentileOfScore".split(" "));
- }(n, Math), function(r, i) {
- r.gammaln = function(c) {
- var h = 0, p = [
- 76.18009172947146,
- -86.50532032941678,
- 24.01409824083091,
- -1.231739572450155,
- 0.001208650973866179,
- -5395239384953e-18
- ], u = 1.000000000190015, o, s, l;
- for (l = (s = o = c) + 5.5, l -= (o + 0.5) * i.log(l); h < 6; h++)
- u += p[h] / ++s;
- return i.log(2.5066282746310007 * u / o) - l;
- }, r.loggam = function(c) {
- var h, p, u, o, s, l, f, v = [
- 0.08333333333333333,
- -0.002777777777777778,
- 7936507936507937e-19,
- -5952380952380952e-19,
- 8417508417508418e-19,
- -0.001917526917526918,
- 0.00641025641025641,
- -0.02955065359477124,
- 0.1796443723688307,
- -1.3924322169059
- ];
- if (h = c, f = 0, c == 1 || c == 2)
- return 0;
- for (c <= 7 && (f = i.floor(7 - c), h = c + f), p = 1 / (h * h), u = 2 * i.PI, s = v[9], l = 8; l >= 0; l--)
- s *= p, s += v[l];
- if (o = s / h + 0.5 * i.log(u) + (h - 0.5) * i.log(h) - h, c <= 7)
- for (l = 1; l <= f; l++)
- o -= i.log(h - 1), h -= 1;
- return o;
- }, r.gammafn = function(c) {
- var h = [
- -1.716185138865495,
- 24.76565080557592,
- -379.80425647094563,
- 629.3311553128184,
- 866.9662027904133,
- -31451.272968848367,
- -36144.413418691176,
- 66456.14382024054
- ], p = [
- -30.8402300119739,
- 315.35062697960416,
- -1015.1563674902192,
- -3107.771671572311,
- 22538.11842098015,
- 4755.846277527881,
- -134659.9598649693,
- -115132.2596755535
- ], u = !1, o = 0, s = 0, l = 0, f = c, v, d, g, E;
- if (c > 171.6243769536076)
- return 1 / 0;
- if (f <= 0)
- if (E = f % 1 + 36e-17, E)
- u = (f & 1 ? -1 : 1) * i.PI / i.sin(i.PI * E), f = 1 - f;
- else
- return 1 / 0;
- for (g = f, f < 1 ? d = f++ : d = (f -= o = (f | 0) - 1) - 1, v = 0; v < 8; ++v)
- l = (l + h[v]) * d, s = s * d + p[v];
- if (E = l / s + 1, g < f)
- E /= g;
- else if (g > f)
- for (v = 0; v < o; ++v)
- E *= f, f++;
- return u && (E = u / E), E;
- }, r.gammap = function(c, h) {
- return r.lowRegGamma(c, h) * r.gammafn(c);
- }, r.lowRegGamma = function(c, h) {
- var p = r.gammaln(c), u = c, o = 1 / c, s = o, l = h + 1 - c, f = 1 / 1e-30, v = 1 / l, d = v, g = 1, E = -~(i.log(c >= 1 ? c : 1 / c) * 8.5 + c * 0.4 + 17), A;
- if (h < 0 || c <= 0)
- return NaN;
- if (h < c + 1) {
- for (; g <= E; g++)
- o += s *= h / ++u;
- return o * i.exp(-h + c * i.log(h) - p);
- }
- for (; g <= E; g++)
- A = -g * (g - c), l += 2, v = A * v + l, f = l + A / f, v = 1 / v, d *= v * f;
- return 1 - d * i.exp(-h + c * i.log(h) - p);
- }, r.factorialln = function(c) {
- return c < 0 ? NaN : r.gammaln(c + 1);
- }, r.factorial = function(c) {
- return c < 0 ? NaN : r.gammafn(c + 1);
- }, r.combination = function(c, h) {
- return c > 170 || h > 170 ? i.exp(r.combinationln(c, h)) : r.factorial(c) / r.factorial(h) / r.factorial(c - h);
- }, r.combinationln = function(c, h) {
- return r.factorialln(c) - r.factorialln(h) - r.factorialln(c - h);
- }, r.permutation = function(c, h) {
- return r.factorial(c) / r.factorial(c - h);
- }, r.betafn = function(c, h) {
- if (!(c <= 0 || h <= 0))
- return c + h > 170 ? i.exp(r.betaln(c, h)) : r.gammafn(c) * r.gammafn(h) / r.gammafn(c + h);
- }, r.betaln = function(c, h) {
- return r.gammaln(c) + r.gammaln(h) - r.gammaln(c + h);
- }, r.betacf = function(c, h, p) {
- var u = 1e-30, o = 1, s = h + p, l = h + 1, f = h - 1, v = 1, d = 1 - s * c / l, g, E, A, m;
- for (i.abs(d) < u && (d = u), d = 1 / d, m = d; o <= 100 && (g = 2 * o, E = o * (p - o) * c / ((f + g) * (h + g)), d = 1 + E * d, i.abs(d) < u && (d = u), v = 1 + E / v, i.abs(v) < u && (v = u), d = 1 / d, m *= d * v, E = -(h + o) * (s + o) * c / ((h + g) * (l + g)), d = 1 + E * d, i.abs(d) < u && (d = u), v = 1 + E / v, i.abs(v) < u && (v = u), d = 1 / d, A = d * v, m *= A, !(i.abs(A - 1) < 3e-7)); o++)
- ;
- return m;
- }, r.gammapinv = function(c, h) {
- var p = 0, u = h - 1, o = 1e-8, s = r.gammaln(h), l, f, v, d, g, E, A;
- if (c >= 1)
- return i.max(100, h + 100 * i.sqrt(h));
- if (c <= 0)
- return 0;
- for (h > 1 ? (E = i.log(u), A = i.exp(u * (E - 1) - s), g = c < 0.5 ? c : 1 - c, v = i.sqrt(-2 * i.log(g)), l = (2.30753 + v * 0.27061) / (1 + v * (0.99229 + v * 0.04481)) - v, c < 0.5 && (l = -l), l = i.max(
- 1e-3,
- h * i.pow(1 - 1 / (9 * h) - l / (3 * i.sqrt(h)), 3)
- )) : (v = 1 - h * (0.253 + h * 0.12), c < v ? l = i.pow(c / v, 1 / h) : l = 1 - i.log(1 - (c - v) / (1 - v))); p < 12; p++) {
- if (l <= 0)
- return 0;
- if (f = r.lowRegGamma(h, l) - c, h > 1 ? v = A * i.exp(-(l - u) + u * (i.log(l) - E)) : v = i.exp(-l + u * i.log(l) - s), d = f / v, l -= v = d / (1 - 0.5 * i.min(1, d * ((h - 1) / l - 1))), l <= 0 && (l = 0.5 * (l + v)), i.abs(v) < o * l)
- break;
- }
- return l;
- }, r.erf = function(c) {
- var h = [
- -1.3026537197817094,
- 0.6419697923564902,
- 0.019476473204185836,
- -0.00956151478680863,
- -946595344482036e-18,
- 366839497852761e-18,
- 42523324806907e-18,
- -20278578112534e-18,
- -1624290004647e-18,
- 130365583558e-17,
- 15626441722e-18,
- -85238095915e-18,
- 6529054439e-18,
- 5059343495e-18,
- -991364156e-18,
- -227365122e-18,
- 96467911e-18,
- 2394038e-18,
- -6886027e-18,
- 894487e-18,
- 313092e-18,
- -112708e-18,
- 381e-18,
- 7106e-18,
- -1523e-18,
- -94e-18,
- 121e-18,
- -28e-18
- ], p = h.length - 1, u = !1, o = 0, s = 0, l, f, v, d;
- for (c < 0 && (c = -c, u = !0), l = 2 / (2 + c), f = 4 * l - 2; p > 0; p--)
- v = o, o = f * o - s + h[p], s = v;
- return d = l * i.exp(-c * c + 0.5 * (h[0] + f * o) - s), u ? d - 1 : 1 - d;
- }, r.erfc = function(c) {
- return 1 - r.erf(c);
- }, r.erfcinv = function(c) {
- var h = 0, p, u, o, s;
- if (c >= 2)
- return -100;
- if (c <= 0)
- return 100;
- for (s = c < 1 ? c : 2 - c, o = i.sqrt(-2 * i.log(s / 2)), p = -0.70711 * ((2.30753 + o * 0.27061) / (1 + o * (0.99229 + o * 0.04481)) - o); h < 2; h++)
- u = r.erfc(p) - s, p += u / (1.1283791670955126 * i.exp(-p * p) - p * u);
- return c < 1 ? p : -p;
- }, r.ibetainv = function(c, h, p) {
- var u = 1e-8, o = h - 1, s = p - 1, l = 0, f, v, d, g, E, A, m, N, y, R, T;
- if (c <= 0)
- return 0;
- if (c >= 1)
- return 1;
- for (h >= 1 && p >= 1 ? (d = c < 0.5 ? c : 1 - c, g = i.sqrt(-2 * i.log(d)), m = (2.30753 + g * 0.27061) / (1 + g * (0.99229 + g * 0.04481)) - g, c < 0.5 && (m = -m), N = (m * m - 3) / 6, y = 2 / (1 / (2 * h - 1) + 1 / (2 * p - 1)), R = m * i.sqrt(N + y) / y - (1 / (2 * p - 1) - 1 / (2 * h - 1)) * (N + 5 / 6 - 2 / (3 * y)), m = h / (h + p * i.exp(2 * R))) : (f = i.log(h / (h + p)), v = i.log(p / (h + p)), g = i.exp(h * f) / h, E = i.exp(p * v) / p, R = g + E, c < g / R ? m = i.pow(h * R * c, 1 / h) : m = 1 - i.pow(p * R * (1 - c), 1 / p)), T = -r.gammaln(h) - r.gammaln(p) + r.gammaln(h + p); l < 10; l++) {
- if (m === 0 || m === 1)
- return m;
- if (A = r.ibeta(m, h, p) - c, g = i.exp(o * i.log(m) + s * i.log(1 - m) + T), E = A / g, m -= g = E / (1 - 0.5 * i.min(1, E * (o / m - s / (1 - m)))), m <= 0 && (m = 0.5 * (m + g)), m >= 1 && (m = 0.5 * (m + g + 1)), i.abs(g) < u * m && l > 0)
- break;
- }
- return m;
- }, r.ibeta = function(c, h, p) {
- var u = c === 0 || c === 1 ? 0 : i.exp(r.gammaln(h + p) - r.gammaln(h) - r.gammaln(p) + h * i.log(c) + p * i.log(1 - c));
- return c < 0 || c > 1 ? !1 : c < (h + 1) / (h + p + 2) ? u * r.betacf(c, h, p) / h : 1 - u * r.betacf(1 - c, p, h) / p;
- }, r.randn = function(c, h) {
- var p, u, o, s, l;
- if (h || (h = c), c)
- return r.create(c, h, function() {
- return r.randn();
- });
- do
- p = r._random_fn(), u = 1.7156 * (r._random_fn() - 0.5), o = p - 0.449871, s = i.abs(u) + 0.386595, l = o * o + s * (0.196 * s - 0.25472 * o);
- while (l > 0.27597 && (l > 0.27846 || u * u > -4 * i.log(p) * p * p));
- return u / p;
- }, r.randg = function(c, h, p) {
- var u = c, o, s, l, f, v, d;
- if (p || (p = h), c || (c = 1), h)
- return d = r.zeros(h, p), d.alter(function() {
- return r.randg(c);
- }), d;
- c < 1 && (c += 1), o = c - 1 / 3, s = 1 / i.sqrt(9 * o);
- do {
- do
- v = r.randn(), f = 1 + s * v;
- while (f <= 0);
- f = f * f * f, l = r._random_fn();
- } while (l > 1 - 0.331 * i.pow(v, 4) && i.log(l) > 0.5 * v * v + o * (1 - f + i.log(f)));
- if (c == u)
- return o * f;
- do
- l = r._random_fn();
- while (l === 0);
- return i.pow(l, 1 / u) * o * f;
- }, function(a) {
- for (var c = 0; c < a.length; c++)
- (function(h) {
- r.fn[h] = function() {
- return r(
- r.map(this, function(p) {
- return r[h](p);
- })
- );
- };
- })(a[c]);
- }("gammaln gammafn factorial factorialln".split(" ")), function(a) {
- for (var c = 0; c < a.length; c++)
- (function(h) {
- r.fn[h] = function() {
- return r(r[h].apply(null, arguments));
- };
- })(a[c]);
- }("randn".split(" "));
- }(n, Math), function(r, i) {
- (function(u) {
- for (var o = 0; o < u.length; o++)
- (function(s) {
- r[s] = function l(f, v, d) {
- return this instanceof l ? (this._a = f, this._b = v, this._c = d, this) : new l(f, v, d);
- }, r.fn[s] = function(l, f, v) {
- var d = r[s](l, f, v);
- return d.data = this, d;
- }, r[s].prototype.sample = function(l) {
- var f = this._a, v = this._b, d = this._c;
- return l ? r.alter(l, function() {
- return r[s].sample(f, v, d);
- }) : r[s].sample(f, v, d);
- }, function(l) {
- for (var f = 0; f < l.length; f++)
- (function(v) {
- r[s].prototype[v] = function(d) {
- var g = this._a, E = this._b, A = this._c;
- return !d && d !== 0 && (d = this.data), typeof d != "number" ? r.fn.map.call(d, function(m) {
- return r[s][v](m, g, E, A);
- }) : r[s][v](d, g, E, A);
- };
- })(l[f]);
- }("pdf cdf inv".split(" ")), function(l) {
- for (var f = 0; f < l.length; f++)
- (function(v) {
- r[s].prototype[v] = function() {
- return r[s][v](this._a, this._b, this._c);
- };
- })(l[f]);
- }("mean median mode variance".split(" "));
- })(u[o]);
- })("beta centralF cauchy chisquare exponential gamma invgamma kumaraswamy laplace lognormal noncentralt normal pareto studentt weibull uniform binomial negbin hypgeom poisson triangular tukey arcsine".split(" ")), r.extend(r.beta, {
- pdf: function(o, s, l) {
- return o > 1 || o < 0 ? 0 : s == 1 && l == 1 ? 1 : s < 512 && l < 512 ? i.pow(o, s - 1) * i.pow(1 - o, l - 1) / r.betafn(s, l) : i.exp((s - 1) * i.log(o) + (l - 1) * i.log(1 - o) - r.betaln(s, l));
- },
- cdf: function(o, s, l) {
- return o > 1 || o < 0 ? (o > 1) * 1 : r.ibeta(o, s, l);
- },
- inv: function(o, s, l) {
- return r.ibetainv(o, s, l);
- },
- mean: function(o, s) {
- return o / (o + s);
- },
- median: function(o, s) {
- return r.ibetainv(0.5, o, s);
- },
- mode: function(o, s) {
- return (o - 1) / (o + s - 2);
- },
- // return a random sample
- sample: function(o, s) {
- var l = r.randg(o);
- return l / (l + r.randg(s));
- },
- variance: function(o, s) {
- return o * s / (i.pow(o + s, 2) * (o + s + 1));
- }
- }), r.extend(r.centralF, {
- // This implementation of the pdf function avoids float overflow
- // See the way that R calculates this value:
- // https://svn.r-project.org/R/trunk/src/nmath/df.c
- pdf: function(o, s, l) {
- var f, v, d;
- return o < 0 ? 0 : s <= 2 ? o === 0 && s < 2 ? 1 / 0 : o === 0 && s === 2 ? 1 : 1 / r.betafn(s / 2, l / 2) * i.pow(s / l, s / 2) * i.pow(o, s / 2 - 1) * i.pow(1 + s / l * o, -(s + l) / 2) : (f = s * o / (l + o * s), v = l / (l + o * s), d = s * v / 2, d * r.binomial.pdf((s - 2) / 2, (s + l - 2) / 2, f));
- },
- cdf: function(o, s, l) {
- return o < 0 ? 0 : r.ibeta(s * o / (s * o + l), s / 2, l / 2);
- },
- inv: function(o, s, l) {
- return l / (s * (1 / r.ibetainv(o, s / 2, l / 2) - 1));
- },
- mean: function(o, s) {
- return s > 2 ? s / (s - 2) : void 0;
- },
- mode: function(o, s) {
- return o > 2 ? s * (o - 2) / (o * (s + 2)) : void 0;
- },
- // return a random sample
- sample: function(o, s) {
- var l = r.randg(o / 2) * 2, f = r.randg(s / 2) * 2;
- return l / o / (f / s);
- },
- variance: function(o, s) {
- if (!(s <= 4))
- return 2 * s * s * (o + s - 2) / (o * (s - 2) * (s - 2) * (s - 4));
- }
- }), r.extend(r.cauchy, {
- pdf: function(o, s, l) {
- return l < 0 ? 0 : l / (i.pow(o - s, 2) + i.pow(l, 2)) / i.PI;
- },
- cdf: function(o, s, l) {
- return i.atan((o - s) / l) / i.PI + 0.5;
- },
- inv: function(u, o, s) {
- return o + s * i.tan(i.PI * (u - 0.5));
- },
- median: function(o) {
- return o;
- },
- mode: function(o) {
- return o;
- },
- sample: function(o, s) {
- return r.randn() * i.sqrt(1 / (2 * r.randg(0.5))) * s + o;
- }
- }), r.extend(r.chisquare, {
- pdf: function(o, s) {
- return o < 0 ? 0 : o === 0 && s === 2 ? 0.5 : i.exp((s / 2 - 1) * i.log(o) - o / 2 - s / 2 * i.log(2) - r.gammaln(s / 2));
- },
- cdf: function(o, s) {
- return o < 0 ? 0 : r.lowRegGamma(s / 2, o / 2);
- },
- inv: function(u, o) {
- return 2 * r.gammapinv(u, 0.5 * o);
- },
- mean: function(u) {
- return u;
- },
- // TODO: this is an approximation (is there a better way?)
- median: function(o) {
- return o * i.pow(1 - 2 / (9 * o), 3);
- },
- mode: function(o) {
- return o - 2 > 0 ? o - 2 : 0;
- },
- sample: function(o) {
- return r.randg(o / 2) * 2;
- },
- variance: function(o) {
- return 2 * o;
- }
- }), r.extend(r.exponential, {
- pdf: function(o, s) {
- return o < 0 ? 0 : s * i.exp(-s * o);
- },
- cdf: function(o, s) {
- return o < 0 ? 0 : 1 - i.exp(-s * o);
- },
- inv: function(u, o) {
- return -i.log(1 - u) / o;
- },
- mean: function(u) {
- return 1 / u;
- },
- median: function(u) {
- return 1 / u * i.log(2);
- },
- mode: function() {
- return 0;
- },
- sample: function(o) {
- return -1 / o * i.log(r._random_fn());
- },
- variance: function(u) {
- return i.pow(u, -2);
- }
- }), r.extend(r.gamma, {
- pdf: function(o, s, l) {
- return o < 0 ? 0 : o === 0 && s === 1 ? 1 / l : i.exp((s - 1) * i.log(o) - o / l - r.gammaln(s) - s * i.log(l));
- },
- cdf: function(o, s, l) {
- return o < 0 ? 0 : r.lowRegGamma(s, o / l);
- },
- inv: function(u, o, s) {
- return r.gammapinv(u, o) * s;
- },
- mean: function(u, o) {
- return u * o;
- },
- mode: function(o, s) {
- if (o > 1)
- return (o - 1) * s;
- },
- sample: function(o, s) {
- return r.randg(o) * s;
- },
- variance: function(o, s) {
- return o * s * s;
- }
- }), r.extend(r.invgamma, {
- pdf: function(o, s, l) {
- return o <= 0 ? 0 : i.exp(-(s + 1) * i.log(o) - l / o - r.gammaln(s) + s * i.log(l));
- },
- cdf: function(o, s, l) {
- return o <= 0 ? 0 : 1 - r.lowRegGamma(s, l / o);
- },
- inv: function(u, o, s) {
- return s / r.gammapinv(1 - u, o);
- },
- mean: function(u, o) {
- return u > 1 ? o / (u - 1) : void 0;
- },
- mode: function(o, s) {
- return s / (o + 1);
- },
- sample: function(o, s) {
- return s / r.randg(o);
- },
- variance: function(o, s) {
- if (!(o <= 2))
- return s * s / ((o - 1) * (o - 1) * (o - 2));
- }
- }), r.extend(r.kumaraswamy, {
- pdf: function(o, s, l) {
- return o === 0 && s === 1 ? l : o === 1 && l === 1 ? s : i.exp(i.log(s) + i.log(l) + (s - 1) * i.log(o) + (l - 1) * i.log(1 - i.pow(o, s)));
- },
- cdf: function(o, s, l) {
- return o < 0 ? 0 : o > 1 ? 1 : 1 - i.pow(1 - i.pow(o, s), l);
- },
- inv: function(o, s, l) {
- return i.pow(1 - i.pow(1 - o, 1 / l), 1 / s);
- },
- mean: function(u, o) {
- return o * r.gammafn(1 + 1 / u) * r.gammafn(o) / r.gammafn(1 + 1 / u + o);
- },
- median: function(o, s) {
- return i.pow(1 - i.pow(2, -1 / s), 1 / o);
- },
- mode: function(o, s) {
- if (o >= 1 && s >= 1 && o !== 1 && s !== 1)
- return i.pow((o - 1) / (o * s - 1), 1 / o);
- },
- variance: function() {
- throw new Error("variance not yet implemented");
- }
- }), r.extend(r.lognormal, {
- pdf: function(o, s, l) {
- return o <= 0 ? 0 : i.exp(-i.log(o) - 0.5 * i.log(2 * i.PI) - i.log(l) - i.pow(i.log(o) - s, 2) / (2 * l * l));
- },
- cdf: function(o, s, l) {
- return o < 0 ? 0 : 0.5 + 0.5 * r.erf((i.log(o) - s) / i.sqrt(2 * l * l));
- },
- inv: function(u, o, s) {
- return i.exp(-1.4142135623730951 * s * r.erfcinv(2 * u) + o);
- },
- mean: function(o, s) {
- return i.exp(o + s * s / 2);
- },
- median: function(o) {
- return i.exp(o);
- },
- mode: function(o, s) {
- return i.exp(o - s * s);
- },
- sample: function(o, s) {
- return i.exp(r.randn() * s + o);
- },
- variance: function(o, s) {
- return (i.exp(s * s) - 1) * i.exp(2 * o + s * s);
- }
- }), r.extend(r.noncentralt, {
- pdf: function(o, s, l) {
- var f = 1e-14;
- return i.abs(l) < f ? r.studentt.pdf(o, s) : i.abs(o) < f ? i.exp(r.gammaln((s + 1) / 2) - l * l / 2 - 0.5 * i.log(i.PI * s) - r.gammaln(s / 2)) : s / o * (r.noncentralt.cdf(o * i.sqrt(1 + 2 / s), s + 2, l) - r.noncentralt.cdf(o, s, l));
- },
- cdf: function(o, s, l) {
- var f = 1e-14, v = 200;
- if (i.abs(l) < f)
- return r.studentt.cdf(o, s);
- var d = !1;
- o < 0 && (d = !0, l = -l);
- for (var g = r.normal.cdf(-l, 0, 1), E = f + 1, A = E, m = o * o / (o * o + s), N = 0, y = i.exp(-l * l / 2), R = i.exp(-l * l / 2 - 0.5 * i.log(2) - r.gammaln(3 / 2)) * l; N < v || A > f || E > f; )
- A = E, N > 0 && (y *= l * l / (2 * N), R *= l * l / (2 * (N + 1 / 2))), E = y * r.beta.cdf(m, N + 0.5, s / 2) + R * r.beta.cdf(m, N + 1, s / 2), g += 0.5 * E, N++;
- return d ? 1 - g : g;
- }
- }), r.extend(r.normal, {
- pdf: function(o, s, l) {
- return i.exp(-0.5 * i.log(2 * i.PI) - i.log(l) - i.pow(o - s, 2) / (2 * l * l));
- },
- cdf: function(o, s, l) {
- return 0.5 * (1 + r.erf((o - s) / i.sqrt(2 * l * l)));
- },
- inv: function(u, o, s) {
- return -1.4142135623730951 * s * r.erfcinv(2 * u) + o;
- },
- mean: function(u) {
- return u;
- },
- median: function(o) {
- return o;
- },
- mode: function(u) {
- return u;
- },
- sample: function(o, s) {
- return r.randn() * s + o;
- },
- variance: function(u, o) {
- return o * o;
- }
- }), r.extend(r.pareto, {
- pdf: function(o, s, l) {
- return o < s ? 0 : l * i.pow(s, l) / i.pow(o, l + 1);
- },
- cdf: function(o, s, l) {
- return o < s ? 0 : 1 - i.pow(s / o, l);
- },
- inv: function(o, s, l) {
- return s / i.pow(1 - o, 1 / l);
- },
- mean: function(o, s) {
- if (!(s <= 1))
- return s * i.pow(o, s) / (s - 1);
- },
- median: function(o, s) {
- return o * (s * i.SQRT2);
- },
- mode: function(o) {
- return o;
- },
- variance: function(u, o) {
- if (!(o <= 2))
- return u * u * o / (i.pow(o - 1, 2) * (o - 2));
- }
- }), r.extend(r.studentt, {
- pdf: function(o, s) {
- return s = s > 1e100 ? 1e100 : s, 1 / (i.sqrt(s) * r.betafn(0.5, s / 2)) * i.pow(1 + o * o / s, -((s + 1) / 2));
- },
- cdf: function(o, s) {
- var l = s / 2;
- return r.ibeta((o + i.sqrt(o * o + s)) / (2 * i.sqrt(o * o + s)), l, l);
- },
- inv: function(u, o) {
- var s = r.ibetainv(2 * i.min(u, 1 - u), 0.5 * o, 0.5);
- return s = i.sqrt(o * (1 - s) / s), u > 0.5 ? s : -s;
- },
- mean: function(o) {
- return o > 1 ? 0 : void 0;
- },
- median: function() {
- return 0;
- },
- mode: function() {
- return 0;
- },
- sample: function(o) {
- return r.randn() * i.sqrt(o / (2 * r.randg(o / 2)));
- },
- variance: function(o) {
- return o > 2 ? o / (o - 2) : o > 1 ? 1 / 0 : void 0;
- }
- }), r.extend(r.weibull, {
- pdf: function(o, s, l) {
- return o < 0 || s < 0 || l < 0 ? 0 : l / s * i.pow(o / s, l - 1) * i.exp(-i.pow(o / s, l));
- },
- cdf: function(o, s, l) {
- return o < 0 ? 0 : 1 - i.exp(-i.pow(o / s, l));
- },
- inv: function(u, o, s) {
- return o * i.pow(-i.log(1 - u), 1 / s);
- },
- mean: function(u, o) {
- return u * r.gammafn(1 + 1 / o);
- },
- median: function(o, s) {
- return o * i.pow(i.log(2), 1 / s);
- },
- mode: function(o, s) {
- return s <= 1 ? 0 : o * i.pow((s - 1) / s, 1 / s);
- },
- sample: function(o, s) {
- return o * i.pow(-i.log(r._random_fn()), 1 / s);
- },
- variance: function(o, s) {
- return o * o * r.gammafn(1 + 2 / s) - i.pow(r.weibull.mean(o, s), 2);
- }
- }), r.extend(r.uniform, {
- pdf: function(o, s, l) {
- return o < s || o > l ? 0 : 1 / (l - s);
- },
- cdf: function(o, s, l) {
- return o < s ? 0 : o < l ? (o - s) / (l - s) : 1;
- },
- inv: function(u, o, s) {
- return o + u * (s - o);
- },
- mean: function(o, s) {
- return 0.5 * (o + s);
- },
- median: function(o, s) {
- return r.mean(o, s);
- },
- mode: function() {
- throw new Error("mode is not yet implemented");
- },
- sample: function(o, s) {
- return o / 2 + s / 2 + (s / 2 - o / 2) * (2 * r._random_fn() - 1);
- },
- variance: function(o, s) {
- return i.pow(s - o, 2) / 12;
- }
- });
- function a(u, o, s, l) {
- for (var f = 0, v = 1, d = 1, g = 1, E = 0, A = 0, m; i.abs((d - A) / d) > l; )
- A = d, m = -(o + E) * (o + s + E) * u / (o + 2 * E) / (o + 2 * E + 1), f = d + m * f, v = g + m * v, E = E + 1, m = E * (s - E) * u / (o + 2 * E - 1) / (o + 2 * E), d = f + m * d, g = v + m * g, f = f / g, v = v / g, d = d / g, g = 1;
- return d / o;
- }
- r.extend(r.binomial, {
- pdf: function(o, s, l) {
- return l === 0 || l === 1 ? s * l === o ? 1 : 0 : r.combination(s, o) * i.pow(l, o) * i.pow(1 - l, s - o);
- },
- cdf: function(o, s, l) {
- var f, v = 1e-10;
- if (o < 0)
- return 0;
- if (o >= s)
- return 1;
- if (l < 0 || l > 1 || s <= 0)
- return NaN;
- o = i.floor(o);
- var d = l, g = o + 1, E = s - o, A = g + E, m = i.exp(r.gammaln(A) - r.gammaln(E) - r.gammaln(g) + g * i.log(d) + E * i.log(1 - d));
- return d < (g + 1) / (A + 2) ? f = m * a(d, g, E, v) : f = 1 - m * a(1 - d, E, g, v), i.round((1 - f) * (1 / v)) / (1 / v);
- }
- }), r.extend(r.negbin, {
- pdf: function(o, s, l) {
- return o !== o >>> 0 ? !1 : o < 0 ? 0 : r.combination(o + s - 1, s - 1) * i.pow(1 - l, o) * i.pow(l, s);
- },
- cdf: function(o, s, l) {
- var f = 0, v = 0;
- if (o < 0)
- return 0;
- for (; v <= o; v++)
- f += r.negbin.pdf(v, s, l);
- return f;
- }
- }), r.extend(r.hypgeom, {
- pdf: function(o, s, l, f) {
- if (o !== o | 0)
- return !1;
- if (o < 0 || o < l - (s - f))
- return 0;
- if (o > f || o > l)
- return 0;
- if (l * 2 > s)
- return f * 2 > s ? r.hypgeom.pdf(s - l - f + o, s, s - l, s - f) : r.hypgeom.pdf(f - o, s, s - l, f);
- if (f * 2 > s)
- return r.hypgeom.pdf(l - o, s, l, s - f);
- if (l < f)
- return r.hypgeom.pdf(o, s, f, l);
- for (var v = 1, d = 0, g = 0; g < o; g++) {
- for (; v > 1 && d < f; )
- v *= 1 - l / (s - d), d++;
- v *= (f - g) * (l - g) / ((g + 1) * (s - l - f + g + 1));
- }
- for (; d < f; d++)
- v *= 1 - l / (s - d);
- return i.min(1, i.max(0, v));
- },
- cdf: function(o, s, l, f) {
- if (o < 0 || o < l - (s - f))
- return 0;
- if (o >= f || o >= l)
- return 1;
- if (l * 2 > s)
- return f * 2 > s ? r.hypgeom.cdf(s - l - f + o, s, s - l, s - f) : 1 - r.hypgeom.cdf(f - o - 1, s, s - l, f);
- if (f * 2 > s)
- return 1 - r.hypgeom.cdf(l - o - 1, s, l, s - f);
- if (l < f)
- return r.hypgeom.cdf(o, s, f, l);
- for (var v = 1, d = 1, g = 0, E = 0; E < o; E++) {
- for (; v > 1 && g < f; ) {
- var A = 1 - l / (s - g);
- d *= A, v *= A, g++;
- }
- d *= (f - E) * (l - E) / ((E + 1) * (s - l - f + E + 1)), v += d;
- }
- for (; g < f; g++)
- v *= 1 - l / (s - g);
- return i.min(1, i.max(0, v));
- }
- }), r.extend(r.poisson, {
- pdf: function(o, s) {
- return s < 0 || o % 1 !== 0 || o < 0 ? 0 : i.pow(s, o) * i.exp(-s) / r.factorial(o);
- },
- cdf: function(o, s) {
- var l = [], f = 0;
- if (o < 0)
- return 0;
- for (; f <= o; f++)
- l.push(r.poisson.pdf(f, s));
- return r.sum(l);
- },
- mean: function(u) {
- return u;
- },
- variance: function(u) {
- return u;
- },
- sampleSmall: function(o) {
- var s = 1, l = 0, f = i.exp(-o);
- do
- l++, s *= r._random_fn();
- while (s > f);
- return l - 1;
- },
- sampleLarge: function(o) {
- var s = o, l, f, v, d, g, E, A, m, N, y;
- for (d = i.sqrt(s), g = i.log(s), A = 0.931 + 2.53 * d, E = -0.059 + 0.02483 * A, m = 1.1239 + 1.1328 / (A - 3.4), N = 0.9277 - 3.6224 / (A - 2); ; ) {
- if (f = i.random() - 0.5, v = i.random(), y = 0.5 - i.abs(f), l = i.floor((2 * E / y + A) * f + s + 0.43), y >= 0.07 && v <= N)
- return l;
- if (!(l < 0 || y < 0.013 && v > y) && i.log(v) + i.log(m) - i.log(E / (y * y) + A) <= -s + l * g - r.loggam(l + 1))
- return l;
- }
- },
- sample: function(o) {
- return o < 10 ? this.sampleSmall(o) : this.sampleLarge(o);
- }
- }), r.extend(r.triangular, {
- pdf: function(o, s, l, f) {
- return l <= s || f < s || f > l ? NaN : o < s || o > l ? 0 : o < f ? 2 * (o - s) / ((l - s) * (f - s)) : o === f ? 2 / (l - s) : 2 * (l - o) / ((l - s) * (l - f));
- },
- cdf: function(o, s, l, f) {
- return l <= s || f < s || f > l ? NaN : o <= s ? 0 : o >= l ? 1 : o <= f ? i.pow(o - s, 2) / ((l - s) * (f - s)) : 1 - i.pow(l - o, 2) / ((l - s) * (l - f));
- },
- inv: function(o, s, l, f) {
- return l <= s || f < s || f > l ? NaN : o <= (f - s) / (l - s) ? s + (l - s) * i.sqrt(o * ((f - s) / (l - s))) : s + (l - s) * (1 - i.sqrt((1 - o) * (1 - (f - s) / (l - s))));
- },
- mean: function(o, s, l) {
- return (o + s + l) / 3;
- },
- median: function(o, s, l) {
- if (l <= (o + s) / 2)
- return s - i.sqrt((s - o) * (s - l)) / i.sqrt(2);
- if (l > (o + s) / 2)
- return o + i.sqrt((s - o) * (l - o)) / i.sqrt(2);
- },
- mode: function(o, s, l) {
- return l;
- },
- sample: function(o, s, l) {
- var f = r._random_fn();
- return f < (l - o) / (s - o) ? o + i.sqrt(f * (s - o) * (l - o)) : s - i.sqrt((1 - f) * (s - o) * (s - l));
- },
- variance: function(o, s, l) {
- return (o * o + s * s + l * l - o * s - o * l - s * l) / 18;
- }
- }), r.extend(r.arcsine, {
- pdf: function(o, s, l) {
- return l <= s ? NaN : o <= s || o >= l ? 0 : 2 / i.PI * i.pow(i.pow(l - s, 2) - i.pow(2 * o - s - l, 2), -0.5);
- },
- cdf: function(o, s, l) {
- return o < s ? 0 : o < l ? 2 / i.PI * i.asin(i.sqrt((o - s) / (l - s))) : 1;
- },
- inv: function(u, o, s) {
- return o + (0.5 - 0.5 * i.cos(i.PI * u)) * (s - o);
- },
- mean: function(o, s) {
- return s <= o ? NaN : (o + s) / 2;
- },
- median: function(o, s) {
- return s <= o ? NaN : (o + s) / 2;
- },
- mode: function() {
- throw new Error("mode is not yet implemented");
- },
- sample: function(o, s) {
- return (o + s) / 2 + (s - o) / 2 * i.sin(2 * i.PI * r.uniform.sample(0, 1));
- },
- variance: function(o, s) {
- return s <= o ? NaN : i.pow(s - o, 2) / 8;
- }
- });
- function c(u) {
- return u / i.abs(u);
- }
- r.extend(r.laplace, {
- pdf: function(o, s, l) {
- return l <= 0 ? 0 : i.exp(-i.abs(o - s) / l) / (2 * l);
- },
- cdf: function(o, s, l) {
- return l <= 0 ? 0 : o < s ? 0.5 * i.exp((o - s) / l) : 1 - 0.5 * i.exp(-(o - s) / l);
- },
- mean: function(u) {
- return u;
- },
- median: function(u) {
- return u;
- },
- mode: function(u) {
- return u;
- },
- variance: function(u, o) {
- return 2 * o * o;
- },
- sample: function(o, s) {
- var l = r._random_fn() - 0.5;
- return o - s * c(l) * i.log(1 - 2 * i.abs(l));
- }
- });
- function h(u, o, s) {
- var l = 12, f = 6, v = -30, d = -50, g = 60, E = 8, A = 3, m = 2, N = 3, y = [
- 0.9815606342467192,
- 0.9041172563704749,
- 0.7699026741943047,
- 0.5873179542866175,
- 0.3678314989981802,
- 0.1252334085114689
- ], R = [
- 0.04717533638651183,
- 0.10693932599531843,
- 0.16007832854334622,
- 0.20316742672306592,
- 0.2334925365383548,
- 0.24914704581340277
- ], T = u * 0.5;
- if (T >= E)
- return 1;
- var w = 2 * r.normal.cdf(T, 0, 1, 1, 0) - 1;
- w >= i.exp(d / s) ? w = i.pow(w, s) : w = 0;
- var C;
- u > A ? C = m : C = N;
- for (var M = T, _ = (E - T) / C, W = M + _, F = 0, S = s - 1, G = 1; G <= C; G++) {
- for (var J = 0, le = 0.5 * (W + M), nt = 0.5 * (W - M), Ae = 1; Ae <= l; Ae++) {
- var Be, Fe;
- f < Ae ? (Be = l - Ae + 1, Fe = y[Be - 1]) : (Be = Ae, Fe = -y[Be - 1]);
- var rt = nt * Fe, Ee = le + rt, ue = Ee * Ee;
- if (ue > g)
- break;
- var Et = 2 * r.normal.cdf(Ee, 0, 1, 1, 0), Bt = 2 * r.normal.cdf(Ee, u, 1, 1, 0), mt = Et * 0.5 - Bt * 0.5;
- mt >= i.exp(v / S) && (mt = R[Be - 1] * i.exp(-(0.5 * ue)) * i.pow(mt, S), J += mt);
- }
- J *= 2 * nt * s / i.sqrt(2 * i.PI), F += J, M = W, W += _;
- }
- return w += F, w <= i.exp(v / o) ? 0 : (w = i.pow(w, o), w >= 1 ? 1 : w);
- }
- function p(u, o, s) {
- var l = 0.322232421088, f = 0.099348462606, v = -1, d = 0.588581570495, g = -0.342242088547, E = 0.531103462366, A = -0.204231210125, m = 0.10353775285, N = -453642210148e-16, y = 0.0038560700634, R = 0.8832, T = 0.2368, w = 1.214, C = 1.208, M = 1.4142, _ = 120, W = 0.5 - 0.5 * u, F = i.sqrt(i.log(1 / (W * W))), S = F + ((((F * N + A) * F + g) * F + v) * F + l) / ((((F * y + m) * F + E) * F + d) * F + f);
- s < _ && (S += (S * S * S + S) / s / 4);
- var G = R - T * S;
- return s < _ && (G += -w / s + C * S / s), S * (G * i.log(o - 1) + M);
- }
- r.extend(r.tukey, {
- cdf: function(o, s, l) {
- var f = 1, v = s, d = 16, g = 8, E = -30, A = 1e-14, m = 100, N = 800, y = 5e3, R = 25e3, T = 1, w = 0.5, C = 0.25, M = 0.125, _ = [
- 0.9894009349916499,
- 0.9445750230732326,
- 0.8656312023878318,
- 0.755404408355003,
- 0.6178762444026438,
- 0.45801677765722737,
- 0.2816035507792589,
- 0.09501250983763744
- ], W = [
- 0.027152459411754096,
- 0.062253523938647894,
- 0.09515851168249279,
- 0.12462897125553388,
- 0.14959598881657674,
- 0.16915651939500254,
- 0.18260341504492358,
- 0.1894506104550685
- ];
- if (o <= 0)
- return 0;
- if (l < 2 || f < 1 || v < 2)
- return NaN;
- if (!Number.isFinite(o))
- return 1;
- if (l > R)
- return h(o, f, v);
- var F = l * 0.5, S = F * i.log(l) - l * i.log(2) - r.gammaln(F), G = F - 1, J = l * 0.25, le;
- l <= m ? le = T : l <= N ? le = w : l <= y ? le = C : le = M, S += i.log(le);
- for (var nt = 0, Ae = 1; Ae <= 50; Ae++) {
- for (var Be = 0, Fe = (2 * Ae - 1) * le, rt = 1; rt <= d; rt++) {
- var Ee, ue;
- g < rt ? (Ee = rt - g - 1, ue = S + G * i.log(Fe + _[Ee] * le) - (_[Ee] * le + Fe) * J) : (Ee = rt - 1, ue = S + G * i.log(Fe - _[Ee] * le) + (_[Ee] * le - Fe) * J);
- var Et;
- if (ue >= E) {
- g < rt ? Et = o * i.sqrt((_[Ee] * le + Fe) * 0.5) : Et = o * i.sqrt((-(_[Ee] * le) + Fe) * 0.5);
- var Bt = h(Et, f, v), mt = Bt * W[Ee] * i.exp(ue);
- Be += mt;
- }
- }
- if (Ae * le >= 1 && Be <= A)
- break;
- nt += Be;
- }
- if (Be > A)
- throw new Error("tukey.cdf failed to converge");
- return nt > 1 && (nt = 1), nt;
- },
- inv: function(u, o, s) {
- var l = 1, f = o, v = 1e-4, d = 50;
- if (s < 2 || l < 1 || f < 2)
- return NaN;
- if (u < 0 || u > 1)
- return NaN;
- if (u === 0)
- return 0;
- if (u === 1)
- return 1 / 0;
- var g = p(u, f, s), E = r.tukey.cdf(g, o, s) - u, A;
- E > 0 ? A = i.max(0, g - 1) : A = g + 1;
- for (var m = r.tukey.cdf(A, o, s) - u, N, y = 1; y < d; y++) {
- N = A - m * (A - g) / (m - E), E = m, g = A, N < 0 && (N = 0, m = -u), m = r.tukey.cdf(N, o, s) - u, A = N;
- var R = i.abs(A - g);
- if (R < v)
- return N;
- }
- throw new Error("tukey.inv failed to converge");
- }
- });
- }(n, Math), function(r, i) {
- var a = Array.prototype.push, c = r.utils.isArray;
- function h(p) {
- return c(p) || p instanceof r;
- }
- r.extend({
- // add a vector/matrix to a vector/matrix or scalar
- add: function(u, o) {
- return h(o) ? (h(o[0]) || (o = [o]), r.map(u, function(s, l, f) {
- return s + o[l][f];
- })) : r.map(u, function(s) {
- return s + o;
- });
- },
- // subtract a vector or scalar from the vector
- subtract: function(u, o) {
- return h(o) ? (h(o[0]) || (o = [o]), r.map(u, function(s, l, f) {
- return s - o[l][f] || 0;
- })) : r.map(u, function(s) {
- return s - o;
- });
- },
- // matrix division
- divide: function(u, o) {
- return h(o) ? (h(o[0]) || (o = [o]), r.multiply(u, r.inv(o))) : r.map(u, function(s) {
- return s / o;
- });
- },
- // matrix multiplication
- multiply: function(u, o) {
- var s, l, f, v, d, g, E, A;
- if (u.length === void 0 && o.length === void 0)
- return u * o;
- if (d = u.length, g = u[0].length, E = r.zeros(d, f = h(o) ? o[0].length : g), A = 0, h(o)) {
- for (; A < f; A++)
- for (s = 0; s < d; s++) {
- for (v = 0, l = 0; l < g; l++)
- v += u[s][l] * o[l][A];
- E[s][A] = v;
- }
- return d === 1 && A === 1 ? E[0][0] : E;
- }
- return r.map(u, function(m) {
- return m * o;
- });
- },
- // outer([1,2,3],[4,5,6])
- // ===
- // [[1],[2],[3]] times [[4,5,6]]
- // ->
- // [[4,5,6],[8,10,12],[12,15,18]]
- outer: function(u, o) {
- return r.multiply(u.map(function(s) {
- return [s];
- }), [o]);
- },
- // Returns the dot product of two matricies
- dot: function(u, o) {
- h(u[0]) || (u = [u]), h(o[0]) || (o = [o]);
- for (var s = u[0].length === 1 && u.length !== 1 ? r.transpose(u) : u, l = o[0].length === 1 && o.length !== 1 ? r.transpose(o) : o, f = [], v = 0, d = s.length, g = s[0].length, E, A; v < d; v++) {
- for (f[v] = [], E = 0, A = 0; A < g; A++)
- E += s[v][A] * l[v][A];
- f[v] = E;
- }
- return f.length === 1 ? f[0] : f;
- },
- // raise every element by a scalar
- pow: function(u, o) {
- return r.map(u, function(s) {
- return i.pow(s, o);
- });
- },
- // exponentiate every element
- exp: function(u) {
- return r.map(u, function(o) {
- return i.exp(o);
- });
- },
- // generate the natural log of every element
- log: function(u) {
- return r.map(u, function(o) {
- return i.log(o);
- });
- },
- // generate the absolute values of the vector
- abs: function(u) {
- return r.map(u, function(o) {
- return i.abs(o);
- });
- },
- // computes the p-norm of the vector
- // In the case that a matrix is passed, uses the first row as the vector
- norm: function(u, o) {
- var s = 0, l = 0;
- for (isNaN(o) && (o = 2), h(u[0]) && (u = u[0]); l < u.length; l++)
- s += i.pow(i.abs(u[l]), o);
- return i.pow(s, 1 / o);
- },
- // computes the angle between two vectors in rads
- // In case a matrix is passed, this uses the first row as the vector
- angle: function(u, o) {
- return i.acos(r.dot(u, o) / (r.norm(u) * r.norm(o)));
- },
- // augment one matrix by another
- // Note: this function returns a matrix, not a jStat object
- aug: function(u, o) {
- var s = [], l;
- for (l = 0; l < u.length; l++)
- s.push(u[l].slice());
- for (l = 0; l < s.length; l++)
- a.apply(s[l], o[l]);
- return s;
- },
- // The inv() function calculates the inverse of a matrix
- // Create the inverse by augmenting the matrix by the identity matrix of the
- // appropriate size, and then use G-J elimination on the augmented matrix.
- inv: function(u) {
- for (var o = u.length, s = u[0].length, l = r.identity(o, s), f = r.gauss_jordan(u, l), v = [], d = 0, g; d < o; d++)
- for (v[d] = [], g = s; g < f[0].length; g++)
- v[d][g - s] = f[d][g];
- return v;
- },
- // calculate the determinant of a matrix
- det: function p(u) {
- if (u.length === 2)
- return u[0][0] * u[1][1] - u[0][1] * u[1][0];
- for (var o = 0, s = 0; s < u.length; s++) {
- for (var l = [], f = 1; f < u.length; f++) {
- l[f - 1] = [];
- for (var v = 0; v < u.length; v++)
- v < s ? l[f - 1][v] = u[f][v] : v > s && (l[f - 1][v - 1] = u[f][v]);
- }
- var d = s % 2 ? -1 : 1;
- o += p(l) * u[0][s] * d;
- }
- return o;
- },
- gauss_elimination: function(u, o) {
- var s = 0, l = 0, f = u.length, v = u[0].length, d = 1, g = 0, E = [], A, m, N, y;
- for (u = r.aug(u, o), A = u[0].length, s = 0; s < f; s++) {
- for (m = u[s][s], l = s, y = s + 1; y < v; y++)
- m < i.abs(u[y][s]) && (m = u[y][s], l = y);
- if (l != s)
- for (y = 0; y < A; y++)
- N = u[s][y], u[s][y] = u[l][y], u[l][y] = N;
- for (l = s + 1; l < f; l++)
- for (d = u[l][s] / u[s][s], y = s; y < A; y++)
- u[l][y] = u[l][y] - d * u[s][y];
- }
- for (s = f - 1; s >= 0; s--) {
- for (g = 0, l = s + 1; l <= f - 1; l++)
- g = g + E[l] * u[s][l];
- E[s] = (u[s][A - 1] - g) / u[s][s];
- }
- return E;
- },
- gauss_jordan: function(u, o) {
- var s = r.aug(u, o), l = s.length, f = s[0].length, v = 0, d, g, E;
- for (g = 0; g < l; g++) {
- var A = g;
- for (E = g + 1; E < l; E++)
- i.abs(s[E][g]) > i.abs(s[A][g]) && (A = E);
- var m = s[g];
- for (s[g] = s[A], s[A] = m, E = g + 1; E < l; E++)
- for (v = s[E][g] / s[g][g], d = g; d < f; d++)
- s[E][d] -= s[g][d] * v;
- }
- for (g = l - 1; g >= 0; g--) {
- for (v = s[g][g], E = 0; E < g; E++)
- for (d = f - 1; d > g - 1; d--)
- s[E][d] -= s[g][d] * s[E][g] / v;
- for (s[g][g] /= v, d = l; d < f; d++)
- s[g][d] /= v;
- }
- return s;
- },
- // solve equation
- // Ax=b
- // A is upper triangular matrix
- // A=[[1,2,3],[0,4,5],[0,6,7]]
- // b=[1,2,3]
- // triaUpSolve(A,b) // -> [2.666,0.1666,1.666]
- // if you use matrix style
- // A=[[1,2,3],[0,4,5],[0,6,7]]
- // b=[[1],[2],[3]]
- // will return [[2.666],[0.1666],[1.666]]
- triaUpSolve: function(u, o) {
- var s = u[0].length, l = r.zeros(1, s)[0], f, v = !1;
- return o[0].length != null && (o = o.map(function(d) {
- return d[0];
- }), v = !0), r.arange(s - 1, -1, -1).forEach(function(d) {
- f = r.arange(d + 1, s).map(function(g) {
- return l[g] * u[d][g];
- }), l[d] = (o[d] - r.sum(f)) / u[d][d];
- }), v ? l.map(function(d) {
- return [d];
- }) : l;
- },
- triaLowSolve: function(u, o) {
- var s = u[0].length, l = r.zeros(1, s)[0], f, v = !1;
- return o[0].length != null && (o = o.map(function(d) {
- return d[0];
- }), v = !0), r.arange(s).forEach(function(d) {
- f = r.arange(d).map(function(g) {
- return u[d][g] * l[g];
- }), l[d] = (o[d] - r.sum(f)) / u[d][d];
- }), v ? l.map(function(d) {
- return [d];
- }) : l;
- },
- // A -> [L,U]
- // A=LU
- // L is lower triangular matrix
- // U is upper triangular matrix
- lu: function(u) {
- var o = u.length, s = r.identity(o), l = r.zeros(u.length, u[0].length), f;
- return r.arange(o).forEach(function(v) {
- l[0][v] = u[0][v];
- }), r.arange(1, o).forEach(function(v) {
- r.arange(v).forEach(function(d) {
- f = r.arange(d).map(function(g) {
- return s[v][g] * l[g][d];
- }), s[v][d] = (u[v][d] - r.sum(f)) / l[d][d];
- }), r.arange(v, o).forEach(function(d) {
- f = r.arange(v).map(function(g) {
- return s[v][g] * l[g][d];
- }), l[v][d] = u[f.length][d] - r.sum(f);
- });
- }), [s, l];
- },
- // A -> T
- // A=TT'
- // T is lower triangular matrix
- cholesky: function(u) {
- var o = u.length, s = r.zeros(u.length, u[0].length), l;
- return r.arange(o).forEach(function(f) {
- l = r.arange(f).map(function(v) {
- return i.pow(s[f][v], 2);
- }), s[f][f] = i.sqrt(u[f][f] - r.sum(l)), r.arange(f + 1, o).forEach(function(v) {
- l = r.arange(f).map(function(d) {
- return s[f][d] * s[v][d];
- }), s[v][f] = (u[f][v] - r.sum(l)) / s[f][f];
- });
- }), s;
- },
- gauss_jacobi: function(u, o, s, l) {
- for (var f = 0, v = 0, d = u.length, g = [], E = [], A = [], m, N, y, R; f < d; f++)
- for (g[f] = [], E[f] = [], A[f] = [], v = 0; v < d; v++)
- f > v ? (g[f][v] = u[f][v], E[f][v] = A[f][v] = 0) : f < v ? (E[f][v] = u[f][v], g[f][v] = A[f][v] = 0) : (A[f][v] = u[f][v], g[f][v] = E[f][v] = 0);
- for (y = r.multiply(r.multiply(r.inv(A), r.add(g, E)), -1), N = r.multiply(r.inv(A), o), m = s, R = r.add(r.multiply(y, s), N), f = 2; i.abs(r.norm(r.subtract(R, m))) > l; )
- m = R, R = r.add(r.multiply(y, m), N), f++;
- return R;
- },
- gauss_seidel: function(u, o, s, l) {
- for (var f = 0, v = u.length, d = [], g = [], E = [], A, m, N, y, R; f < v; f++)
- for (d[f] = [], g[f] = [], E[f] = [], A = 0; A < v; A++)
- f > A ? (d[f][A] = u[f][A], g[f][A] = E[f][A] = 0) : f < A ? (g[f][A] = u[f][A], d[f][A] = E[f][A] = 0) : (E[f][A] = u[f][A], d[f][A] = g[f][A] = 0);
- for (y = r.multiply(r.multiply(r.inv(r.add(E, d)), g), -1), N = r.multiply(r.inv(r.add(E, d)), o), m = s, R = r.add(r.multiply(y, s), N), f = 2; i.abs(r.norm(r.subtract(R, m))) > l; )
- m = R, R = r.add(r.multiply(y, m), N), f = f + 1;
- return R;
- },
- SOR: function(u, o, s, l, f) {
- for (var v = 0, d = u.length, g = [], E = [], A = [], m, N, y, R, T; v < d; v++)
- for (g[v] = [], E[v] = [], A[v] = [], m = 0; m < d; m++)
- v > m ? (g[v][m] = u[v][m], E[v][m] = A[v][m] = 0) : v < m ? (E[v][m] = u[v][m], g[v][m] = A[v][m] = 0) : (A[v][m] = u[v][m], g[v][m] = E[v][m] = 0);
- for (R = r.multiply(
- r.inv(r.add(A, r.multiply(g, f))),
- r.subtract(
- r.multiply(A, 1 - f),
- r.multiply(E, f)
- )
- ), y = r.multiply(r.multiply(r.inv(r.add(
- A,
- r.multiply(g, f)
- )), o), f), N = s, T = r.add(r.multiply(R, s), y), v = 2; i.abs(r.norm(r.subtract(T, N))) > l; )
- N = T, T = r.add(r.multiply(R, N), y), v++;
- return T;
- },
- householder: function(u) {
- for (var o = u.length, s = u[0].length, l = 0, f = [], v = [], d, g, E, A, m; l < o - 1; l++) {
- for (d = 0, A = l + 1; A < s; A++)
- d += u[A][l] * u[A][l];
- for (m = u[l + 1][l] > 0 ? -1 : 1, d = m * i.sqrt(d), g = i.sqrt((d * d - u[l + 1][l] * d) / 2), f = r.zeros(o, 1), f[l + 1][0] = (u[l + 1][l] - d) / (2 * g), E = l + 2; E < o; E++)
- f[E][0] = u[E][l] / (2 * g);
- v = r.subtract(
- r.identity(o, s),
- r.multiply(r.multiply(f, r.transpose(f)), 2)
- ), u = r.multiply(v, r.multiply(u, v));
- }
- return u;
- },
- // A -> [Q,R]
- // Q is orthogonal matrix
- // R is upper triangular
- QR: function() {
- var p = r.sum, u = r.arange;
- function o(s) {
- var l = s.length, f = s[0].length, v = r.zeros(f, f);
- s = r.copy(s);
- var d, g, E;
- for (g = 0; g < f; g++) {
- for (v[g][g] = i.sqrt(p(u(l).map(function(A) {
- return s[A][g] * s[A][g];
- }))), d = 0; d < l; d++)
- s[d][g] = s[d][g] / v[g][g];
- for (E = g + 1; E < f; E++)
- for (v[g][E] = p(u(l).map(function(A) {
- return s[A][g] * s[A][E];
- })), d = 0; d < l; d++)
- s[d][E] = s[d][E] - s[d][g] * v[g][E];
- }
- return [s, v];
- }
- return o;
- }(),
- lstsq: function() {
- function p(o) {
- o = r.copy(o);
- var s = o.length, l = r.identity(s);
- return r.arange(s - 1, -1, -1).forEach(function(f) {
- r.sliceAssign(
- l,
- { row: f },
- r.divide(r.slice(l, { row: f }), o[f][f])
- ), r.sliceAssign(
- o,
- { row: f },
- r.divide(r.slice(o, { row: f }), o[f][f])
- ), r.arange(f).forEach(function(v) {
- var d = r.multiply(o[v][f], -1), g = r.slice(o, { row: v }), E = r.multiply(r.slice(o, { row: f }), d);
- r.sliceAssign(o, { row: v }, r.add(g, E));
- var A = r.slice(l, { row: v }), m = r.multiply(r.slice(l, { row: f }), d);
- r.sliceAssign(l, { row: v }, r.add(A, m));
- });
- }), l;
- }
- function u(o, s) {
- var l = !1;
- s[0].length === void 0 && (s = s.map(function(R) {
- return [R];
- }), l = !0);
- var f = r.QR(o), v = f[0], d = f[1], g = o[0].length, E = r.slice(v, { col: { end: g } }), A = r.slice(d, { row: { end: g } }), m = p(A), N = r.transpose(E);
- N[0].length === void 0 && (N = [N]);
- var y = r.multiply(r.multiply(m, N), s);
- return y.length === void 0 && (y = [[y]]), l ? y.map(function(R) {
- return R[0];
- }) : y;
- }
- return u;
- }(),
- jacobi: function(u) {
- for (var o = 1, s = u.length, l = r.identity(s, s), f = [], v, d, g, E, A, m, N, y; o === 1; ) {
- for (m = u[0][1], E = 0, A = 1, d = 0; d < s; d++)
- for (g = 0; g < s; g++)
- d != g && m < i.abs(u[d][g]) && (m = i.abs(u[d][g]), E = d, A = g);
- for (u[E][E] === u[A][A] ? N = u[E][A] > 0 ? i.PI / 4 : -i.PI / 4 : N = i.atan(2 * u[E][A] / (u[E][E] - u[A][A])) / 2, y = r.identity(s, s), y[E][E] = i.cos(N), y[E][A] = -i.sin(N), y[A][E] = i.sin(N), y[A][A] = i.cos(N), l = r.multiply(l, y), v = r.multiply(r.multiply(r.inv(y), u), y), u = v, o = 0, d = 1; d < s; d++)
- for (g = 1; g < s; g++)
- d != g && i.abs(u[d][g]) > 1e-3 && (o = 1);
- }
- for (d = 0; d < s; d++)
- f.push(u[d][d]);
- return [l, f];
- },
- rungekutta: function(u, o, s, l, f, v) {
- var d, g, E, A, m;
- if (v === 2)
- for (; l <= s; )
- d = o * u(l, f), g = o * u(l + o, f + d), E = f + (d + g) / 2, f = E, l = l + o;
- if (v === 4)
- for (; l <= s; )
- d = o * u(l, f), g = o * u(l + o / 2, f + d / 2), A = o * u(l + o / 2, f + g / 2), m = o * u(l + o, f + A), E = f + (d + 2 * g + 2 * A + m) / 6, f = E, l = l + o;
- return f;
- },
- romberg: function(u, o, s, l) {
- for (var f = 0, v = (s - o) / 2, d = [], g = [], E = [], A, m, N, y, R; f < l / 2; ) {
- for (R = u(o), N = o, y = 0; N <= s; N = N + v, y++)
- d[y] = N;
- for (A = d.length, N = 1; N < A - 1; N++)
- R += (N % 2 !== 0 ? 4 : 2) * u(d[N]);
- R = v / 3 * (R + u(s)), E[f] = R, v /= 2, f++;
- }
- for (m = E.length, A = 1; m !== 1; ) {
- for (N = 0; N < m - 1; N++)
- g[N] = (i.pow(4, A) * E[N + 1] - E[N]) / (i.pow(4, A) - 1);
- m = g.length, E = g, g = [], A++;
- }
- return E;
- },
- richardson: function(u, o, s, l) {
- function f(T, w) {
- for (var C = 0, M = T.length, _; C < M; C++)
- T[C] === w && (_ = C);
- return _;
- }
- for (var v = i.abs(s - u[f(u, s) + 1]), d = 0, g = [], E = [], A, m, N, y, R; l >= v; )
- A = f(u, s + l), m = f(u, s), g[d] = (o[A] - 2 * o[m] + o[2 * m - A]) / (l * l), l /= 2, d++;
- for (y = g.length, N = 1; y != 1; ) {
- for (R = 0; R < y - 1; R++)
- E[R] = (i.pow(4, N) * g[R + 1] - g[R]) / (i.pow(4, N) - 1);
- y = E.length, g = E, E = [], N++;
- }
- return g;
- },
- simpson: function(u, o, s, l) {
- for (var f = (s - o) / l, v = u(o), d = [], g = o, E = 0, A = 1, m; g <= s; g = g + f, E++)
- d[E] = g;
- for (m = d.length; A < m - 1; A++)
- v += (A % 2 !== 0 ? 4 : 2) * u(d[A]);
- return f / 3 * (v + u(s));
- },
- hermite: function(u, o, s, l) {
- for (var f = u.length, v = 0, d = 0, g = [], E = [], A = [], m = [], N; d < f; d++) {
- for (g[d] = 1, N = 0; N < f; N++)
- d != N && (g[d] *= (l - u[N]) / (u[d] - u[N]));
- for (E[d] = 0, N = 0; N < f; N++)
- d != N && (E[d] += 1 / (u[d] - u[N]));
- A[d] = (1 - 2 * (l - u[d]) * E[d]) * (g[d] * g[d]), m[d] = (l - u[d]) * (g[d] * g[d]), v += A[d] * o[d] + m[d] * s[d];
- }
- return v;
- },
- lagrange: function(u, o, s) {
- for (var l = 0, f = 0, v, d, g = u.length; f < g; f++) {
- for (d = o[f], v = 0; v < g; v++)
- f != v && (d *= (s - u[v]) / (u[f] - u[v]));
- l += d;
- }
- return l;
- },
- cubic_spline: function(u, o, s) {
- for (var l = u.length, f = 0, v, d = [], g = [], E = [], A = [], m = [], N = [], y = []; f < l - 1; f++)
- m[f] = u[f + 1] - u[f];
- for (E[0] = 0, f = 1; f < l - 1; f++)
- E[f] = 3 / m[f] * (o[f + 1] - o[f]) - 3 / m[f - 1] * (o[f] - o[f - 1]);
- for (f = 1; f < l - 1; f++)
- d[f] = [], g[f] = [], d[f][f - 1] = m[f - 1], d[f][f] = 2 * (m[f - 1] + m[f]), d[f][f + 1] = m[f], g[f][0] = E[f];
- for (A = r.multiply(r.inv(d), g), v = 0; v < l - 1; v++)
- N[v] = (o[v + 1] - o[v]) / m[v] - m[v] * (A[v + 1][0] + 2 * A[v][0]) / 3, y[v] = (A[v + 1][0] - A[v][0]) / (3 * m[v]);
- for (v = 0; v < l && !(u[v] > s); v++)
- ;
- return v -= 1, o[v] + (s - u[v]) * N[v] + r.sq(s - u[v]) * A[v] + (s - u[v]) * r.sq(s - u[v]) * y[v];
- },
- gauss_quadrature: function() {
- throw new Error("gauss_quadrature not yet implemented");
- },
- PCA: function(u) {
- var o = u.length, s = u[0].length, l = 0, f, v, d = [], g = [], E = [], A = [], m = [], N = [], y = [], R = [], T = [], w = [];
- for (l = 0; l < o; l++)
- d[l] = r.sum(u[l]) / s;
- for (l = 0; l < s; l++)
- for (y[l] = [], f = 0; f < o; f++)
- y[l][f] = u[f][l] - d[f];
- for (y = r.transpose(y), l = 0; l < o; l++)
- for (R[l] = [], f = 0; f < o; f++)
- R[l][f] = r.dot([y[l]], [y[f]]) / (s - 1);
- for (E = r.jacobi(R), T = E[0], g = E[1], w = r.transpose(T), l = 0; l < g.length; l++)
- for (f = l; f < g.length; f++)
- g[l] < g[f] && (v = g[l], g[l] = g[f], g[f] = v, A = w[l], w[l] = w[f], w[f] = A);
- for (N = r.transpose(y), l = 0; l < o; l++)
- for (m[l] = [], f = 0; f < N.length; f++)
- m[l][f] = r.dot([w[l]], [N[f]]);
- return [u, g, w, m];
- }
- }), function(p) {
- for (var u = 0; u < p.length; u++)
- (function(o) {
- r.fn[o] = function(s, l) {
- var f = this;
- return l ? (setTimeout(function() {
- l.call(f, r.fn[o].call(f, s));
- }, 15), this) : typeof r[o](this, s) == "number" ? r[o](this, s) : r(r[o](this, s));
- };
- })(p[u]);
- }("add divide multiply subtract dot pow exp log abs norm angle".split(" "));
- }(n, Math), function(r, i) {
- var a = [].slice, c = r.utils.isNumber, h = r.utils.isArray;
- r.extend({
- // 2 different parameter lists:
- // (value, mean, sd)
- // (value, array, flag)
- zscore: function() {
- var o = a.call(arguments);
- return c(o[1]) ? (o[0] - o[1]) / o[2] : (o[0] - r.mean(o[1])) / r.stdev(o[1], o[2]);
- },
- // 3 different paramter lists:
- // (value, mean, sd, sides)
- // (zscore, sides)
- // (value, array, sides, flag)
- ztest: function() {
- var o = a.call(arguments), s;
- return h(o[1]) ? (s = r.zscore(o[0], o[1], o[3]), o[2] === 1 ? r.normal.cdf(-i.abs(s), 0, 1) : r.normal.cdf(-i.abs(s), 0, 1) * 2) : o.length > 2 ? (s = r.zscore(o[0], o[1], o[2]), o[3] === 1 ? r.normal.cdf(-i.abs(s), 0, 1) : r.normal.cdf(-i.abs(s), 0, 1) * 2) : (s = o[0], o[1] === 1 ? r.normal.cdf(-i.abs(s), 0, 1) : r.normal.cdf(-i.abs(s), 0, 1) * 2);
- }
- }), r.extend(r.fn, {
- zscore: function(o, s) {
- return (o - this.mean()) / this.stdev(s);
- },
- ztest: function(o, s, l) {
- var f = i.abs(this.zscore(o, l));
- return s === 1 ? r.normal.cdf(-f, 0, 1) : r.normal.cdf(-f, 0, 1) * 2;
- }
- }), r.extend({
- // 2 parameter lists
- // (value, mean, sd, n)
- // (value, array)
- tscore: function() {
- var o = a.call(arguments);
- return o.length === 4 ? (o[0] - o[1]) / (o[2] / i.sqrt(o[3])) : (o[0] - r.mean(o[1])) / (r.stdev(o[1], !0) / i.sqrt(o[1].length));
- },
- // 3 different paramter lists:
- // (value, mean, sd, n, sides)
- // (tscore, n, sides)
- // (value, array, sides)
- ttest: function() {
- var o = a.call(arguments), s;
- return o.length === 5 ? (s = i.abs(r.tscore(o[0], o[1], o[2], o[3])), o[4] === 1 ? r.studentt.cdf(-s, o[3] - 1) : r.studentt.cdf(-s, o[3] - 1) * 2) : c(o[1]) ? (s = i.abs(o[0]), o[2] == 1 ? r.studentt.cdf(-s, o[1] - 1) : r.studentt.cdf(-s, o[1] - 1) * 2) : (s = i.abs(r.tscore(o[0], o[1])), o[2] == 1 ? r.studentt.cdf(-s, o[1].length - 1) : r.studentt.cdf(-s, o[1].length - 1) * 2);
- }
- }), r.extend(r.fn, {
- tscore: function(o) {
- return (o - this.mean()) / (this.stdev(!0) / i.sqrt(this.cols()));
- },
- ttest: function(o, s) {
- return s === 1 ? 1 - r.studentt.cdf(i.abs(this.tscore(o)), this.cols() - 1) : r.studentt.cdf(-i.abs(this.tscore(o)), this.cols() - 1) * 2;
- }
- }), r.extend({
- // Paramter list is as follows:
- // (array1, array2, array3, ...)
- // or it is an array of arrays
- // array of arrays conversion
- anovafscore: function() {
- var o = a.call(arguments), s, l, f, v, d, g, E, A;
- if (o.length === 1) {
- for (d = new Array(o[0].length), E = 0; E < o[0].length; E++)
- d[E] = o[0][E];
- o = d;
- }
- for (l = new Array(), E = 0; E < o.length; E++)
- l = l.concat(o[E]);
- for (f = r.mean(l), s = 0, E = 0; E < o.length; E++)
- s = s + o[E].length * i.pow(r.mean(o[E]) - f, 2);
- for (s /= o.length - 1, g = 0, E = 0; E < o.length; E++)
- for (v = r.mean(o[E]), A = 0; A < o[E].length; A++)
- g += i.pow(o[E][A] - v, 2);
- return g /= l.length - o.length, s / g;
- },
- // 2 different paramter setups
- // (array1, array2, array3, ...)
- // (anovafscore, df1, df2)
- anovaftest: function() {
- var o = a.call(arguments), s, l, f, v;
- if (c(o[0]))
- return 1 - r.centralF.cdf(o[0], o[1], o[2]);
- var d = r.anovafscore(o);
- for (s = o.length - 1, f = 0, v = 0; v < o.length; v++)
- f = f + o[v].length;
- return l = f - s - 1, 1 - r.centralF.cdf(d, s, l);
- },
- ftest: function(o, s, l) {
- return 1 - r.centralF.cdf(o, s, l);
- }
- }), r.extend(r.fn, {
- anovafscore: function() {
- return r.anovafscore(this.toArray());
- },
- anovaftes: function() {
- var o = 0, s;
- for (s = 0; s < this.length; s++)
- o = o + this[s].length;
- return r.ftest(this.anovafscore(), this.length - 1, o - this.length);
- }
- }), r.extend({
- // 2 parameter lists
- // (mean1, mean2, n1, n2, sd)
- // (array1, array2, sd)
- qscore: function() {
- var o = a.call(arguments), s, l, f, v, d;
- return c(o[0]) ? (s = o[0], l = o[1], f = o[2], v = o[3], d = o[4]) : (s = r.mean(o[0]), l = r.mean(o[1]), f = o[0].length, v = o[1].length, d = o[2]), i.abs(s - l) / (d * i.sqrt((1 / f + 1 / v) / 2));
- },
- // 3 different parameter lists:
- // (qscore, n, k)
- // (mean1, mean2, n1, n2, sd, n, k)
- // (array1, array2, sd, n, k)
- qtest: function() {
- var o = a.call(arguments), s;
- o.length === 3 ? (s = o[0], o = o.slice(1)) : o.length === 7 ? (s = r.qscore(o[0], o[1], o[2], o[3], o[4]), o = o.slice(5)) : (s = r.qscore(o[0], o[1], o[2]), o = o.slice(3));
- var l = o[0], f = o[1];
- return 1 - r.tukey.cdf(s, f, l - f);
- },
- tukeyhsd: function(o) {
- for (var s = r.pooledstdev(o), l = o.map(function(A) {
- return r.mean(A);
- }), f = o.reduce(function(A, m) {
- return A + m.length;
- }, 0), v = [], d = 0; d < o.length; ++d)
- for (var g = d + 1; g < o.length; ++g) {
- var E = r.qtest(l[d], l[g], o[d].length, o[g].length, s, f, o.length);
- v.push([[d, g], E]);
- }
- return v;
- }
- }), r.extend({
- // 2 different parameter setups
- // (value, alpha, sd, n)
- // (value, alpha, array)
- normalci: function() {
- var o = a.call(arguments), s = new Array(2), l;
- return o.length === 4 ? l = i.abs(r.normal.inv(o[1] / 2, 0, 1) * o[2] / i.sqrt(o[3])) : l = i.abs(r.normal.inv(o[1] / 2, 0, 1) * r.stdev(o[2]) / i.sqrt(o[2].length)), s[0] = o[0] - l, s[1] = o[0] + l, s;
- },
- // 2 different parameter setups
- // (value, alpha, sd, n)
- // (value, alpha, array)
- tci: function() {
- var o = a.call(arguments), s = new Array(2), l;
- return o.length === 4 ? l = i.abs(r.studentt.inv(o[1] / 2, o[3] - 1) * o[2] / i.sqrt(o[3])) : l = i.abs(r.studentt.inv(o[1] / 2, o[2].length - 1) * r.stdev(o[2], !0) / i.sqrt(o[2].length)), s[0] = o[0] - l, s[1] = o[0] + l, s;
- },
- significant: function(o, s) {
- return o < s;
- }
- }), r.extend(r.fn, {
- normalci: function(o, s) {
- return r.normalci(o, s, this.toArray());
- },
- tci: function(o, s) {
- return r.tci(o, s, this.toArray());
- }
- });
- function p(u, o, s, l) {
- if (u > 1 || s > 1 || u <= 0 || s <= 0)
- throw new Error("Proportions should be greater than 0 and less than 1");
- var f = (u * o + s * l) / (o + l), v = i.sqrt(f * (1 - f) * (1 / o + 1 / l));
- return (u - s) / v;
- }
- r.extend(r.fn, {
- oneSidedDifferenceOfProportions: function(o, s, l, f) {
- var v = p(o, s, l, f);
- return r.ztest(v, 1);
- },
- twoSidedDifferenceOfProportions: function(o, s, l, f) {
- var v = p(o, s, l, f);
- return r.ztest(v, 2);
- }
- });
- }(n, Math), n.models = function() {
- function r(p) {
- var u = p[0].length, o = n.arange(u).map(function(s) {
- var l = n.arange(u).filter(function(f) {
- return f !== s;
- });
- return i(
- n.col(p, s).map(function(f) {
- return f[0];
- }),
- n.col(p, l)
- );
- });
- return o;
- }
- function i(p, u) {
- var o = p.length, s = u[0].length - 1, l = o - s - 1, f = n.lstsq(u, p), v = n.multiply(u, f.map(function(y) {
- return [y];
- })).map(function(y) {
- return y[0];
- }), d = n.subtract(p, v), g = n.mean(p), E = n.sum(v.map(function(y) {
- return Math.pow(y - g, 2);
- })), A = n.sum(p.map(function(y, R) {
- return Math.pow(y - v[R], 2);
- })), m = E + A, N = E / m;
- return {
- exog: u,
- endog: p,
- nobs: o,
- df_model: s,
- df_resid: l,
- coef: f,
- predict: v,
- resid: d,
- ybar: g,
- SST: m,
- SSE: E,
- SSR: A,
- R2: N
- };
- }
- function a(p) {
- var u = r(p.exog), o = Math.sqrt(p.SSR / p.df_resid), s = u.map(function(g) {
- var E = g.SST, A = g.R2;
- return o / Math.sqrt(E * (1 - A));
- }), l = p.coef.map(function(g, E) {
- return (g - 0) / s[E];
- }), f = l.map(function(g) {
- var E = n.studentt.cdf(g, p.df_resid);
- return (E > 0.5 ? 1 - E : E) * 2;
- }), v = n.studentt.inv(0.975, p.df_resid), d = p.coef.map(function(g, E) {
- var A = v * s[E];
- return [g - A, g + A];
- });
- return {
- se: s,
- t: l,
- p: f,
- sigmaHat: o,
- interval95: d
- };
- }
- function c(p) {
- var u = p.R2 / p.df_model / ((1 - p.R2) / p.df_resid), o = function(l, f, v) {
- return n.beta.cdf(l / (v / f + l), f / 2, v / 2);
- }, s = 1 - o(u, p.df_model, p.df_resid);
- return { F_statistic: u, pvalue: s };
- }
- function h(p, u) {
- var o = i(p, u), s = a(o), l = c(o), f = 1 - (1 - o.R2) * ((o.nobs - 1) / o.df_resid);
- return o.t = s, o.f = l, o.adjust_R2 = f, o;
- }
- return { ols: h };
- }(), n.extend({
- buildxmatrix: function() {
- for (var i = new Array(arguments.length), a = 0; a < arguments.length; a++) {
- var c = [1];
- i[a] = c.concat(arguments[a]);
- }
- return n(i);
- },
- builddxmatrix: function() {
- for (var i = new Array(arguments[0].length), a = 0; a < arguments[0].length; a++) {
- var c = [1];
- i[a] = c.concat(arguments[0][a]);
- }
- return n(i);
- },
- buildjxmatrix: function(i) {
- for (var a = new Array(i.length), c = 0; c < i.length; c++)
- a[c] = i[c];
- return n.builddxmatrix(a);
- },
- buildymatrix: function(i) {
- return n(i).transpose();
- },
- buildjymatrix: function(i) {
- return i.transpose();
- },
- matrixmult: function(i, a) {
- var c, h, p, u, o;
- if (i.cols() == a.rows()) {
- if (a.rows() > 1) {
- for (u = [], c = 0; c < i.rows(); c++)
- for (u[c] = [], h = 0; h < a.cols(); h++) {
- for (o = 0, p = 0; p < i.cols(); p++)
- o += i.toArray()[c][p] * a.toArray()[p][h];
- u[c][h] = o;
- }
- return n(u);
- }
- for (u = [], c = 0; c < i.rows(); c++)
- for (u[c] = [], h = 0; h < a.cols(); h++) {
- for (o = 0, p = 0; p < i.cols(); p++)
- o += i.toArray()[c][p] * a.toArray()[h];
- u[c][h] = o;
- }
- return n(u);
- }
- },
- //regress and regresst to be fixed
- regress: function(i, a) {
- var c = n.xtranspxinv(i), h = i.transpose(), p = n.matrixmult(n(c), h);
- return n.matrixmult(p, a);
- },
- regresst: function(i, a, c) {
- var h = n.regress(i, a), p = {};
- p.anova = {};
- var u = n.jMatYBar(i, h);
- p.yBar = u;
- var o = a.mean();
- p.anova.residuals = n.residuals(a, u), p.anova.ssr = n.ssr(u, o), p.anova.msr = p.anova.ssr / (i[0].length - 1), p.anova.sse = n.sse(a, u), p.anova.mse = p.anova.sse / (a.length - (i[0].length - 1) - 1), p.anova.sst = n.sst(a, o), p.anova.mst = p.anova.sst / (a.length - 1), p.anova.r2 = 1 - p.anova.sse / p.anova.sst, p.anova.r2 < 0 && (p.anova.r2 = 0), p.anova.fratio = p.anova.msr / p.anova.mse, p.anova.pvalue = n.anovaftest(
- p.anova.fratio,
- i[0].length - 1,
- a.length - (i[0].length - 1) - 1
- ), p.anova.rmse = Math.sqrt(p.anova.mse), p.anova.r2adj = 1 - p.anova.mse / p.anova.mst, p.anova.r2adj < 0 && (p.anova.r2adj = 0), p.stats = new Array(i[0].length);
- for (var s = n.xtranspxinv(i), l, f, v, d = 0; d < h.length; d++)
- l = Math.sqrt(p.anova.mse * Math.abs(s[d][d])), f = Math.abs(h[d] / l), v = n.ttest(f, a.length - i[0].length - 1, c), p.stats[d] = [h[d], l, f, v];
- return p.regress = h, p;
- },
- xtranspx: function(i) {
- return n.matrixmult(i.transpose(), i);
- },
- xtranspxinv: function(i) {
- var a = n.matrixmult(i.transpose(), i), c = n.inv(a);
- return c;
- },
- jMatYBar: function(i, a) {
- var c = n.matrixmult(i, a);
- return new n(c);
- },
- residuals: function(i, a) {
- return n.matrixsubtract(i, a);
- },
- ssr: function(i, a) {
- for (var c = 0, h = 0; h < i.length; h++)
- c += Math.pow(i[h] - a, 2);
- return c;
- },
- sse: function(i, a) {
- for (var c = 0, h = 0; h < i.length; h++)
- c += Math.pow(i[h] - a[h], 2);
- return c;
- },
- sst: function(i, a) {
- for (var c = 0, h = 0; h < i.length; h++)
- c += Math.pow(i[h] - a, 2);
- return c;
- },
- matrixsubtract: function(i, a) {
- for (var c = new Array(i.length), h = 0; h < i.length; h++) {
- c[h] = new Array(i[h].length);
- for (var p = 0; p < i[h].length; p++)
- c[h][p] = i[h][p] - a[h][p];
- }
- return n(c);
- }
- }), n.jStat = n, n;
- });
-})(Vo);
-var Go = Vo.exports;
-const D = he(), Ke = So, { FormulaHelpers: Da, Types: H } = ge(), b = Da, dn = Do, di = Go, Va = 536870911, Ga = -536870912, dr = 511, vn = -512, $a = /^\s?[+-]?\s?[0-9]+[.]?[0-9]*([eE][+\-][0-9]+)?\s?$/, Ha = /^\s?([+-]?\s?([0-9]+[.]?[0-9]*([eE][+\-][0-9]+)?)?)\s?[ij]\s?$/, Wa = /^\s?([+-]?\s?[0-9]+[.]?[0-9]*([eE][+\-][0-9]+)?)\s?([+-]?\s?([0-9]+[.]?[0-9]*([eE][+\-][0-9]+)?)?)\s?[ij]\s?$/;
-function re(t) {
- t = b.accept(t);
- let e = 0, n = 0, r = "i";
- if (typeof t == "number")
- return { real: t, im: n, unit: r };
- if (typeof t == "boolean")
- throw D.VALUE;
- let i = t.match($a);
- if (i)
- return e = Number(i[0]), { real: e, im: n, unit: r };
- if (i = t.match(Ha), i)
- return n = Number(/^\s?[+-]?\s?$/.test(i[1]) ? i[1] + "1" : i[1]), r = i[0].slice(-1), { real: e, im: n, unit: r };
- if (i = t.match(Wa), i)
- return e = Number(i[1]), n = Number(/^\s?[+-]?\s?$/.test(i[3]) ? i[3] + "1" : i[3]), r = i[0].slice(-1), { real: e, im: n, unit: r };
- throw D.NUM;
-}
-const K = {
- BESSELI: (t, e) => {
- if (t = b.accept(t, H.NUMBER_NO_BOOLEAN), e = b.accept(e, H.NUMBER_NO_BOOLEAN), e = Math.trunc(e), e < 0)
- throw D.NUM;
- return dn.besseli(t, e);
- },
- BESSELJ: (t, e) => {
- if (t = b.accept(t, H.NUMBER_NO_BOOLEAN), e = b.accept(e, H.NUMBER_NO_BOOLEAN), e = Math.trunc(e), e < 0)
- throw D.NUM;
- return dn.besselj(t, e);
- },
- BESSELK: (t, e) => {
- if (t = b.accept(t, H.NUMBER_NO_BOOLEAN), e = b.accept(e, H.NUMBER_NO_BOOLEAN), e = Math.trunc(e), e < 0)
- throw D.NUM;
- return dn.besselk(t, e);
- },
- BESSELY: (t, e) => {
- if (t = b.accept(t, H.NUMBER_NO_BOOLEAN), e = b.accept(e, H.NUMBER_NO_BOOLEAN), e = Math.trunc(e), e < 0)
- throw D.NUM;
- return dn.bessely(t, e);
- },
- BIN2DEC: (t) => {
- t = b.accept(t, H.NUMBER_NO_BOOLEAN);
- let e = t.toString();
- if (e.length > 10)
- throw D.NUM;
- return e.length === 10 && e.substring(0, 1) === "1" ? parseInt(e.substring(1), 2) + vn : parseInt(e, 2);
- },
- BIN2HEX: (t, e) => {
- t = b.accept(t, H.NUMBER_NO_BOOLEAN), e = b.accept(e, H.NUMBER_NO_BOOLEAN, null);
- const n = t.toString();
- if (n.length > 10)
- throw D.NUM;
- if (n.length === 10 && n.substring(0, 1) === "1")
- return (parseInt(n.substring(1), 2) + 1099511627264).toString(16).toUpperCase();
- const r = parseInt(t, 2).toString(16);
- if (e == null)
- return r.toUpperCase();
- if (e < 0)
- throw D.NUM;
- if (e = Math.trunc(e), e >= r.length)
- return (Ke.REPT("0", e - r.length) + r).toUpperCase();
- throw D.NUM;
- },
- BIN2OCT: (t, e) => {
- t = b.accept(t, H.NUMBER_NO_BOOLEAN), e = b.accept(e, H.NUMBER, null);
- let n = t.toString();
- if (n.length > 10)
- throw D.NUM;
- if (n.length === 10 && n.substr(0, 1) === "1")
- return (parseInt(n.substr(1), 2) + 1073741312).toString(8);
- let r = parseInt(t, 2).toString(8);
- if (e == null)
- return r.toUpperCase();
- if (e < 0)
- throw D.NUM;
- if (e = Math.trunc(e), e >= r.length)
- return Ke.REPT("0", e - r.length) + r;
- throw D.NUM;
- },
- BITAND: (t, e) => {
- if (t = b.accept(t, H.NUMBER), e = b.accept(e, H.NUMBER), t < 0 || e < 0 || Math.floor(t) !== t || Math.floor(e) !== e || t > 281474976710655 || e > 281474976710655)
- throw D.NUM;
- return t & e;
- },
- BITLSHIFT: (t, e) => {
- if (t = b.accept(t, H.NUMBER), e = b.accept(e, H.NUMBER), e = Math.trunc(e), Math.abs(e) > 53 || t < 0 || Math.floor(t) !== t || t > 281474976710655)
- throw D.NUM;
- const n = e >= 0 ? t * 2 ** e : Math.trunc(t / 2 ** -e);
- if (n > 281474976710655)
- throw D.NUM;
- return n;
- },
- BITOR: (t, e) => {
- if (t = b.accept(t, H.NUMBER), e = b.accept(e, H.NUMBER), t < 0 || e < 0 || Math.floor(t) !== t || Math.floor(e) !== e || t > 281474976710655 || e > 281474976710655)
- throw D.NUM;
- return t | e;
- },
- BITRSHIFT: (t, e) => (t = b.accept(t, H.NUMBER), e = b.accept(e, H.NUMBER), K.BITLSHIFT(t, -e)),
- BITXOR: (t, e) => {
- if (t = b.accept(t, H.NUMBER), e = b.accept(e, H.NUMBER), t < 0 || t > 281474976710655 || Math.floor(t) !== t || e < 0 || e > 281474976710655 || Math.floor(e) !== e)
- throw D.NUM;
- return t ^ e;
- },
- COMPLEX: (t, e, n) => {
- if (t = b.accept(t, H.NUMBER_NO_BOOLEAN), e = b.accept(e, H.NUMBER_NO_BOOLEAN), n = b.accept(n, H.STRING, "i"), n !== "i" && n !== "j")
- throw D.VALUE;
- if (t === 0 && e === 0)
- return 0;
- if (t === 0)
- return e === 1 ? n : e === -1 ? "-" + n : e.toString() + n;
- if (e === 0)
- return t.toString();
- {
- let r = e > 0 ? "+" : "";
- return e === 1 ? t.toString() + r + n : e === -1 ? t.toString() + r + "-" + n : t.toString() + r + e.toString() + n;
- }
- },
- DEC2BIN: (t, e) => {
- if (t = b.accept(t, H.NUMBER), e = b.accept(e, H.NUMBER, null), t < vn || t > dr)
- throw D.NUM;
- if (t < 0)
- return "1" + Ke.REPT("0", 9 - (512 + t).toString(2).length) + (512 + t).toString(2);
- let n = parseInt(t, 10).toString(2);
- if (e == null)
- return n;
- if (e = Math.trunc(e), e <= 0 || e < n.length)
- throw D.NUM;
- return Ke.REPT("0", e - n.length) + n;
- },
- DEC2HEX: (t, e) => {
- if (t = b.accept(t, H.NUMBER), e = b.accept(e, H.NUMBER, null), t < -549755813888 || t > 549755813888)
- throw D.NUM;
- if (t < 0)
- return (1099511627776 + t).toString(16).toUpperCase();
- let n = parseInt(t, 10).toString(16);
- if (e == null)
- return n.toUpperCase();
- if (e = Math.trunc(e), e <= 0 || e < n.length)
- throw D.NUM;
- return Ke.REPT("0", e - n.length) + n.toUpperCase();
- },
- DEC2OCT: (t, e) => {
- if (t = b.accept(t, H.NUMBER), e = b.accept(e, H.NUMBER, null), t < -536870912 || t > 536870912)
- throw D.NUM;
- if (t < 0)
- return (t + 1073741824).toString(8);
- let n = parseInt(t, 10).toString(8);
- if (e == null)
- return n.toUpperCase();
- if (e = Math.trunc(e), e <= 0 || e < n.length)
- throw D.NUM;
- return Ke.REPT("0", e - n.length) + n;
- },
- DELTA: (t, e) => (t = b.accept(t, H.NUMBER_NO_BOOLEAN), e = b.accept(e, H.NUMBER_NO_BOOLEAN, 0), t === e ? 1 : 0),
- ERF: (t, e) => (t = b.accept(t, H.NUMBER_NO_BOOLEAN), e = b.accept(e, H.NUMBER_NO_BOOLEAN, 0), di.erf(t)),
- ERFC: (t) => (t = b.accept(t, H.NUMBER_NO_BOOLEAN), di.erfc(t)),
- GESTEP: (t, e) => (t = b.accept(t, H.NUMBER_NO_BOOLEAN), e = b.accept(e, H.NUMBER_NO_BOOLEAN, 0), t >= e ? 1 : 0),
- HEX2BIN: (t, e) => {
- if (t = b.accept(t, H.STRING), e = b.accept(e, H.NUMBER, null), t.length > 10 || !/^[0-9a-fA-F]*$/.test(t))
- throw D.NUM;
- let n = t.length === 10 && t.substr(0, 1).toLowerCase() === "f", r = n ? parseInt(t, 16) - 1099511627776 : parseInt(t, 16);
- if (r < vn || r > dr)
- throw D.NUM;
- if (n)
- return "1" + Ke.REPT("0", 9 - (r + 512).toString(2).length) + (r + 512).toString(2);
- let i = r.toString(2);
- if (e == null)
- return i;
- if (e = Math.trunc(e), e <= 0 || e < i.length)
- throw D.NUM;
- return Ke.REPT("0", e - i.length) + i;
- },
- HEX2DEC: (t) => {
- if (t = b.accept(t, H.STRING), t.length > 10 || !/^[0-9a-fA-F]*$/.test(t))
- throw D.NUM;
- let e = parseInt(t, 16);
- return e >= 549755813888 ? e - 1099511627776 : e;
- },
- HEX2OCT: (t, e) => {
- if (t = b.accept(t, H.STRING), t.length > 10 || !/^[0-9a-fA-F]*$/.test(t))
- throw D.NUM;
- let n = K.HEX2DEC(t);
- if (n > Va || n < Ga)
- throw D.NUM;
- return K.DEC2OCT(n, e);
- },
- IMABS: (t) => {
- const { real: e, im: n } = re(t);
- return Math.sqrt(Math.pow(e, 2) + Math.pow(n, 2));
- },
- IMAGINARY: (t) => re(t).im,
- IMARGUMENT: (t) => {
- const { real: e, im: n } = re(t);
- if (e === 0 && n === 0)
- throw D.DIV0;
- return e === 0 && n > 0 ? Math.PI / 2 : e === 0 && n < 0 ? -Math.PI / 2 : e < 0 && n === 0 ? Math.PI : e > 0 && n === 0 ? 0 : e > 0 ? Math.atan(n / e) : e < 0 && n > 0 ? Math.atan(n / e) + Math.PI : Math.atan(n / e) - Math.PI;
- },
- IMCONJUGATE: (t) => {
- const { real: e, im: n, unit: r } = re(t);
- return n !== 0 ? K.COMPLEX(e, -n, r) : "" + e;
- },
- IMCOS: (t) => {
- const { real: e, im: n, unit: r } = re(t);
- let i = Math.cos(e) * (Math.exp(n) + Math.exp(-n)) / 2, a = -Math.sin(e) * (Math.exp(n) - Math.exp(-n)) / 2;
- return K.COMPLEX(i, a, r);
- },
- IMCOSH: (t) => {
- const { real: e, im: n, unit: r } = re(t);
- let i = Math.cos(n) * (Math.exp(e) + Math.exp(-e)) / 2, a = -Math.sin(n) * (Math.exp(e) - Math.exp(-e)) / 2;
- return K.COMPLEX(i, -a, r);
- },
- IMCOT: (t) => {
- t = b.accept(t);
- let e = K.IMCOS(t), n = K.IMSIN(t);
- return K.IMDIV(e, n);
- },
- IMCSC: (t) => (t = b.accept(t), K.IMDIV("1", K.IMSIN(t))),
- IMCSCH: (t) => (t = b.accept(t), K.IMDIV("1", K.IMSINH(t))),
- IMDIV: (t, e) => {
- const n = re(t), r = n.real, i = n.im, a = n.unit, c = re(e), h = c.real, p = c.im, u = c.unit;
- if (h === 0 && p === 0 || a !== u)
- throw D.NUM;
- let o = a, s = Math.pow(h, 2) + Math.pow(p, 2);
- return K.COMPLEX((r * h + i * p) / s, (i * h - r * p) / s, o);
- },
- IMEXP: (t) => {
- const { real: e, im: n, unit: r } = re(t);
- let i = Math.exp(e);
- return K.COMPLEX(i * Math.cos(n), i * Math.sin(n), r);
- },
- IMLN: (t) => {
- const { real: e, im: n, unit: r } = re(t);
- return K.COMPLEX(
- Math.log(Math.sqrt(Math.pow(e, 2) + Math.pow(n, 2))),
- Math.atan(n / e),
- r
- );
- },
- IMLOG10: (t) => {
- const { real: e, im: n, unit: r } = re(t);
- let i = Math.log(Math.sqrt(Math.pow(e, 2) + Math.pow(n, 2))) / Math.log(10), a = Math.atan(n / e) / Math.log(10);
- return K.COMPLEX(i, a, r);
- },
- IMLOG2: (t) => {
- const { real: e, im: n, unit: r } = re(t);
- let i = Math.log(Math.sqrt(Math.pow(e, 2) + Math.pow(n, 2))) / Math.log(2), a = Math.atan(n / e) / Math.log(2);
- return K.COMPLEX(i, a, r);
- },
- IMPOWER: (t, e) => {
- let { unit: n } = re(t);
- e = b.accept(e, H.NUMBER_NO_BOOLEAN);
- let r = Math.pow(K.IMABS(t), e), i = K.IMARGUMENT(t), a = r * Math.cos(e * i), c = r * Math.sin(e * i);
- return K.COMPLEX(a, c, n);
- },
- IMPRODUCT: (...t) => {
- let e, n = 0;
- return b.flattenParams(t, null, !1, (r) => {
- if (n === 0)
- e = b.accept(r), re(e);
- else {
- const i = re(e), a = i.real, c = i.im, h = i.unit, p = re(r), u = p.real, o = p.im, s = p.unit;
- if (h !== s)
- throw D.VALUE;
- e = K.COMPLEX(a * u - c * o, a * o + c * u);
- }
- n++;
- }, 1), e;
- },
- IMREAL: (t) => re(t).real,
- IMSEC: (t) => K.IMDIV("1", K.IMCOS(t)),
- IMSECH: (t) => K.IMDIV("1", K.IMCOSH(t)),
- IMSIN: (t) => {
- const { real: e, im: n, unit: r } = re(t);
- let i = Math.sin(e) * (Math.exp(n) + Math.exp(-n)) / 2, a = Math.cos(e) * (Math.exp(n) - Math.exp(-n)) / 2;
- return K.COMPLEX(i, a, r);
- },
- IMSINH: (t) => {
- const { real: e, im: n, unit: r } = re(t);
- let i = Math.cos(n) * (Math.exp(e) - Math.exp(-e)) / 2, a = Math.sin(n) * (Math.exp(e) + Math.exp(-e)) / 2;
- return K.COMPLEX(i, a, r);
- },
- IMSQRT: (t) => {
- const { unit: e } = re(t);
- let n = Math.sqrt(K.IMABS(t)), r = K.IMARGUMENT(t);
- return K.COMPLEX(n * Math.cos(r / 2), n * Math.sin(r / 2), e);
- },
- IMSUB: (t, e) => {
- const n = re(t), r = n.real, i = n.im, a = n.unit, c = re(e), h = c.real, p = c.im, u = c.unit;
- if (a !== u)
- throw D.VALUE;
- return K.COMPLEX(r - h, i - p, a);
- },
- IMSUM: (...t) => {
- let e = 0, n = 0, r;
- return b.flattenParams(t, null, !1, (i) => {
- const { real: a, im: c, unit: h } = re(i);
- if (r || (r = h), r !== h)
- throw D.VALUE;
- e += a, n += c;
- }), K.COMPLEX(e, n, r);
- },
- IMTAN: (t) => {
- const { unit: e } = re(t);
- return K.IMDIV(K.IMSIN(t), K.IMCOS(t), e);
- },
- // FIXME: need to check the test cases
- OCT2BIN: (t, e) => {
- if (t = b.accept(t, H.STRING), e = b.accept(e, H.NUMBER, null), t.length > 10 || e > 10 || e !== null && e < 0)
- throw D.NUM;
- e = Math.trunc(e);
- let n = t.length === 10 && t.substring(0, 1) === "7", r = K.OCT2DEC(t);
- if (r < vn || r > dr)
- return D.NUM;
- if (n)
- return "1" + Ke.REPT("0", 9 - (512 + r).toString(2).length) + (512 + r).toString(2);
- let i = r.toString(2);
- if (e === 0)
- return i;
- if (e < i.length)
- throw D.NUM;
- return Ke.REPT("0", e - i.length) + i;
- },
- OCT2DEC: (t) => {
- if (t = b.accept(t, H.STRING), t.length > 10)
- throw D.NUM;
- for (const n of t)
- if (n < "0" || n > "7")
- throw D.NUM;
- let e = parseInt(t, 8);
- return e >= 536870912 ? e - 1073741824 : e;
- },
- OCT2HEX: (t, e) => {
- if (t = b.accept(t, H.STRING), e = b.accept(e, H.NUMBER_NO_BOOLEAN, null), t.length > 10)
- throw D.NUM;
- for (const i of t)
- if (i < "0" || i > "7")
- throw D.NUM;
- if (e = Math.trunc(e), e < 0 || e > 10)
- throw D.NUM;
- let n = K.OCT2DEC(t), r = K.DEC2HEX(n);
- if (e === 0)
- return r;
- if (e < r.length)
- throw D.NUM;
- return Ke.REPT("0", e - r.length) + r;
- }
-};
-var qa = K;
-const te = he(), { FormulaHelpers: Ya, Types: Oe, WildCard: gn, Address: Ka } = ge(), vi = Gn, X = Ya, za = {
- ADDRESS: (t, e, n, r, i) => {
- if (t = X.accept(t, Oe.NUMBER), e = X.accept(e, Oe.NUMBER), n = X.accept(n, Oe.NUMBER, 1), r = X.accept(r, Oe.BOOLEAN, !0), i = X.accept(i, Oe.STRING, ""), t < 1 || e < 1 || n < 1 || n > 4)
- throw te.VALUE;
- let a = "";
- return i.length > 0 && (/[^A-Za-z_.\d\u007F-\uFFFF]/.test(i) ? a += `'${i}'!` : a += i + "!"), r ? (a += n === 1 || n === 3 ? "$" : "", a += Ka.columnNumberToName(e), a += n === 1 || n === 2 ? "$" : "", a += t) : (a += "R", a += n === 4 || n === 3 ? `[${t}]` : t, a += "C", a += n === 4 || n === 2 ? `[${e}]` : e), a;
- },
- AREAS: (t) => (t = X.accept(t), t instanceof vi ? t.length : 1),
- CHOOSE: (t, ...e) => {
- },
- // Special
- COLUMN: (t, e) => {
- if (e == null) {
- if (t.position.col != null)
- return t.position.col;
- throw Error("FormulaParser.parse is called without position parameter.");
- } else {
- if (typeof e != "object" || Array.isArray(e))
- throw te.VALUE;
- if (X.isCellRef(e))
- return e.ref.col;
- if (X.isRangeRef(e))
- return e.ref.from.col;
- throw Error("ReferenceFunctions.COLUMN should not reach here.");
- }
- },
- // Special
- COLUMNS: (t, e) => {
- if (e == null)
- throw Error("COLUMNS requires one argument");
- if (typeof e != "object" || Array.isArray(e))
- throw te.VALUE;
- if (X.isCellRef(e))
- return 1;
- if (X.isRangeRef(e))
- return Math.abs(e.ref.from.col - e.ref.to.col) + 1;
- throw Error("ReferenceFunctions.COLUMNS should not reach here.");
- },
- HLOOKUP: (t, e, n, r) => {
- t = X.accept(t);
- try {
- e = X.accept(e, Oe.ARRAY, void 0, !1);
- } catch (a) {
- throw a instanceof te ? te.NA : a;
- }
- if (n = X.accept(n, Oe.NUMBER), r = X.accept(r, Oe.BOOLEAN, !0), n < 1)
- throw te.VALUE;
- if (e[n - 1] === void 0)
- throw te.REF;
- const i = typeof t;
- if (r) {
- let a = i === typeof e[0][0] ? e[0][0] : null;
- for (let c = 1; c < e[0].length; c++) {
- const h = e[0][c];
- if (typeof h === i) {
- if (a > t && h > t)
- throw te.NA;
- if (h === t)
- return e[n - 1][c];
- if (a != null && h > t && a <= t)
- return e[n - 1][c - 1];
- a = h;
- }
- }
- if (a == null)
- throw te.NA;
- return a;
- } else {
- let a = -1;
- if (gn.isWildCard(t) ? a = e[0].findIndex((c) => gn.toRegex(t, "i").test(c)) : a = e[0].findIndex((c) => c === t), a === -1)
- throw te.NA;
- return e[n - 1][a];
- }
- },
- // Special
- INDEX: (t, e, n, r, i) => {
- n = t.utils.extractRefValue(n), n = { value: n.val, isArray: n.isArray }, n = X.accept(n, Oe.NUMBER), n = Math.trunc(n), r == null ? r = 1 : (r = t.utils.extractRefValue(r), r = { value: r.val, isArray: r.isArray }, r = X.accept(r, Oe.NUMBER, 1), r = Math.trunc(r)), i == null ? i = 1 : (i = t.utils.extractRefValue(i), i = { value: i.val, isArray: i.isArray }, i = X.accept(i, Oe.NUMBER, 1), i = Math.trunc(i));
- let a = e;
- if (e instanceof vi)
- a = e.refs[i - 1];
- else if (i > 1)
- throw te.REF;
- if (n === 0 && r === 0)
- return a;
- if (n === 0) {
- if (X.isRangeRef(a)) {
- if (a.ref.to.col - a.ref.from.col < r - 1)
- throw te.REF;
- return a.ref.from.col += r - 1, a.ref.to.col = a.ref.from.col, a;
- } else if (Array.isArray(a)) {
- const c = [];
- return a.forEach((h) => c.push([h[r - 1]])), c;
- }
- }
- if (r === 0) {
- if (X.isRangeRef(a)) {
- if (a.ref.to.row - a.ref.from.row < n - 1)
- throw te.REF;
- return a.ref.from.row += n - 1, a.ref.to.row = a.ref.from.row, a;
- } else if (Array.isArray(a))
- return a[r - 1];
- }
- if (n !== 0 && r !== 0) {
- if (X.isRangeRef(a)) {
- if (a = a.ref, a.to.row - a.from.row < n - 1 || a.to.col - a.from.col < r - 1)
- throw te.REF;
- return { ref: { row: a.from.row + n - 1, col: a.from.col + r - 1 } };
- } else if (X.isCellRef(a)) {
- if (a = a.ref, n > 1 || r > 1)
- throw te.REF;
- return { ref: { row: a.row + n - 1, col: a.col + r - 1 } };
- } else if (Array.isArray(a)) {
- if (a.length < n || a[0].length < r)
- throw te.REF;
- return a[n - 1][r - 1];
- }
- }
- },
- MATCH: () => {
- },
- // Special
- ROW: (t, e) => {
- if (e == null) {
- if (t.position.row != null)
- return t.position.row;
- throw Error("FormulaParser.parse is called without position parameter.");
- } else {
- if (typeof e != "object" || Array.isArray(e))
- throw te.VALUE;
- if (X.isCellRef(e))
- return e.ref.row;
- if (X.isRangeRef(e))
- return e.ref.from.row;
- throw Error("ReferenceFunctions.ROW should not reach here.");
- }
- },
- // Special
- ROWS: (t, e) => {
- if (e == null)
- throw Error("ROWS requires one argument");
- if (typeof e != "object" || Array.isArray(e))
- throw te.VALUE;
- if (X.isCellRef(e))
- return 1;
- if (X.isRangeRef(e))
- return Math.abs(e.ref.from.row - e.ref.to.row) + 1;
- throw Error("ReferenceFunctions.ROWS should not reach here.");
- },
- TRANSPOSE: (t) => {
- t = X.accept(t, Oe.ARRAY, void 0, !1);
- const e = [];
- for (let n = 0; n < t[0].length; n++) {
- e[n] = [];
- for (let r = 0; r < t.length; r++)
- e[n][r] = t[r][n];
- }
- return e;
- },
- VLOOKUP: (t, e, n, r) => {
- t = X.accept(t);
- try {
- e = X.accept(e, Oe.ARRAY, void 0, !1);
- } catch (a) {
- throw a instanceof te ? te.NA : a;
- }
- if (n = X.accept(n, Oe.NUMBER), r = X.accept(r, Oe.BOOLEAN, !0), n < 1)
- throw te.VALUE;
- if (e[0][n - 1] === void 0)
- throw te.REF;
- const i = typeof t;
- if (r) {
- let a = i === typeof e[0][0] ? e[0][0] : null;
- for (let c = 1; c < e.length; c++) {
- const h = e[c], p = e[c][0];
- if (typeof p === i) {
- if (a > t && p > t)
- throw te.NA;
- if (p === t)
- return h[n - 1];
- if (a != null && p > t && a <= t)
- return e[c - 1][n - 1];
- a = p;
- }
- }
- if (a == null)
- throw te.NA;
- return a;
- } else {
- let a = -1;
- if (gn.isWildCard(t) ? a = e.findIndex((c) => gn.toRegex(t, "i").test(c[0])) : a = e.findIndex((c) => c[0] === t), a === -1)
- throw te.NA;
- return e[a][n - 1];
- }
- }
-};
-var Xa = za;
-const lt = he(), { FormulaHelpers: Qa, Types: Za } = ge(), me = Qa, Ja = {
- "#NULL!": 1,
- "#DIV/0!": 2,
- "#VALUE!": 3,
- "#REF!": 4,
- "#NAME?": 5,
- "#NUM!": 6,
- "#N/A": 7
-}, ja = {
- CELL: (t, e) => {
- },
- "ERROR.TYPE": (t) => {
- if (t = me.accept(t), t instanceof lt)
- return Ja[t.toString()];
- throw lt.NA;
- },
- INFO: () => {
- },
- ISBLANK: (t) => t.ref ? t.value == null || t.value === "" : !1,
- ISERR: (t) => (t = me.accept(t), t instanceof lt && t.toString() !== "#N/A"),
- ISERROR: (t) => (t = me.accept(t), t instanceof lt),
- ISEVEN: (t) => (t = me.accept(t, Za.NUMBER), t = Math.trunc(t), t % 2 === 0),
- ISLOGICAL: (t) => (t = me.accept(t), typeof t == "boolean"),
- ISNA: (t) => (t = me.accept(t), t instanceof lt && t.toString() === "#N/A"),
- ISNONTEXT: (t) => (t = me.accept(t), typeof t != "string"),
- ISNUMBER: (t) => (t = me.accept(t), typeof t == "number"),
- ISREF: (t) => !t.ref || me.isCellRef(t) && (t.ref.row > 1048576 || t.ref.col > 16384) || me.isRangeRef(t) && (t.ref.from.row > 1048576 || t.ref.from.col > 16384 || t.ref.to.row > 1048576 || t.ref.to.col > 16384) ? !1 : (t = me.accept(t), !(t instanceof lt && t.toString() === "#REF!")),
- ISTEXT: (t) => (t = me.accept(t), typeof t == "string"),
- N: (t) => {
- t = me.accept(t);
- const e = typeof t;
- if (e === "number")
- return t;
- if (e === "boolean")
- return Number(t);
- if (t instanceof lt)
- throw t;
- return 0;
- },
- NA: () => {
- throw lt.NA;
- },
- TYPE: (t) => {
- if (t.ref) {
- if (me.isRangeRef(t))
- return 16;
- if (me.isCellRef(t) && (t = me.accept(t), typeof t == "string" && t.length === 0))
- return 1;
- }
- t = me.accept(t);
- const e = typeof t;
- if (e === "number")
- return 1;
- if (e === "string")
- return 2;
- if (e === "boolean")
- return 4;
- if (t instanceof lt)
- return 16;
- if (Array.isArray(t))
- return 64;
- }
-};
-var ec = ja;
-const k = he(), { FormulaHelpers: tc, Types: I } = ge(), O = tc, B = Go, En = bo, nc = 2.5066282746310002, $o = {
- "BETA.DIST": (t, e, n, r, i, a) => {
- if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.NUMBER), r = O.accept(r, I.BOOLEAN), i = O.accept(i, I.NUMBER, 0), a = O.accept(a, I.NUMBER, 1), e <= 0 || n <= 0 || t < i || t > a || i === a)
- throw k.NUM;
- return t = (t - i) / (a - i), r ? B.beta.cdf(t, e, n) : B.beta.pdf(t, e, n) / (a - i);
- },
- "BETA.INV": (t, e, n, r, i) => {
- if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.NUMBER), r = O.accept(r, I.NUMBER, 0), i = O.accept(i, I.NUMBER, 1), e <= 0 || n <= 0 || t <= 0 || t > 1)
- throw k.NUM;
- return B.beta.inv(t, e, n) * (i - r) + r;
- },
- "BINOM.DIST": (t, e, n, r) => {
- if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.NUMBER), r = O.accept(r, I.BOOLEAN), e < 0 || n < 0 || n > 1 || t < 0 || t > e)
- throw k.NUM;
- return r ? B.binomial.cdf(t, e, n) : B.binomial.pdf(t, e, n);
- },
- "BINOM.DIST.RANGE": (t, e, n, r) => {
- if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.NUMBER), r = O.accept(r, I.NUMBER, n), t < 0 || e < 0 || e > 1 || n < 0 || n > t || r < n || r > t)
- throw k.NUM;
- let i = 0;
- for (let a = n; a <= r; a++)
- i += En.COMBIN(t, a) * Math.pow(e, a) * Math.pow(1 - e, t - a);
- return i;
- },
- "BINOM.INV": (t, e, n) => {
- if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.NUMBER), t < 0 || e < 0 || e > 1 || n < 0 || n > 1)
- throw k.NUM;
- let r = 0;
- for (; r <= t; ) {
- if (B.binomial.cdf(r, t, e) >= n)
- return r;
- r++;
- }
- },
- "CHISQ.DIST": (t, e, n) => {
- if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.NUMBER), e = Math.trunc(e), t < 0 || e < 1 || e > 10 ** 10)
- throw k.NUM;
- return n ? B.chisquare.cdf(t, e) : B.chisquare.pdf(t, e);
- },
- "CHISQ.DIST.RT": (t, e) => {
- if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), e = Math.trunc(e), t < 0 || e < 1 || e > 10 ** 10)
- throw k.NUM;
- return 1 - B.chisquare.cdf(t, e);
- },
- "CHISQ.INV": (t, e) => {
- if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), e = Math.trunc(e), t < 0 || t > 1 || e < 1 || e > 10 ** 10)
- throw k.NUM;
- return B.chisquare.inv(t, e);
- },
- "CHISQ.INV.RT": (t, e) => {
- if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), e = Math.trunc(e), t < 0 || t > 1 || e < 1 || e > 10 ** 10)
- throw k.NUM;
- return B.chisquare.inv(1 - t, e);
- },
- "CHISQ.TEST": (t, e) => {
- const n = O.accept(t, I.ARRAY, void 0, !1, !1), r = O.accept(e, I.ARRAY, void 0, !1, !1);
- if (n.length !== r.length || n[0].length !== r[0].length || n.length === 1 && n[0].length === 1)
- throw k.NA;
- const i = n.length, a = n[0].length;
- let c = (i - 1) * (a - 1);
- i === 1 ? c = a - 1 : c = i - 1;
- let h = 0;
- for (let l = 0; l < i; l++)
- for (let f = 0; f < a; f++)
- if (!(typeof n[l][f] != "number" || typeof r[l][f] != "number")) {
- if (r[l][f] === 0)
- throw k.DIV0;
- h += Math.pow(n[l][f] - r[l][f], 2) / r[l][f];
- }
- let p = Math.exp(-0.5 * h);
- c % 2 === 1 && (p = p * Math.sqrt(2 * h / Math.PI));
- let u = c;
- for (; u >= 2; )
- p = p * h / u, u = u - 2;
- let o = p, s = c;
- for (; o > 1e-15 * p; )
- s = s + 2, o = o * h / s, p = p + o;
- return 1 - p;
- },
- "CONFIDENCE.NORM": (t, e, n) => {
- if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.NUMBER), n = Math.trunc(n), t <= 0 || t >= 1 || e <= 0 || n < 1)
- throw k.NUM;
- return B.normalci(1, t, e, n)[1] - 1;
- },
- "CONFIDENCE.T": (t, e, n) => {
- if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.NUMBER), n = Math.trunc(n), t <= 0 || t >= 1 || e <= 0 || n < 1)
- throw k.NUM;
- if (n === 1)
- throw k.DIV0;
- return B.tci(1, t, e, n)[1] - 1;
- },
- CORREL: (t, e) => {
- if (t = O.accept(t, I.ARRAY, void 0, !0, !0), e = O.accept(e, I.ARRAY, void 0, !0, !0), t.length !== e.length)
- throw k.NA;
- const n = [], r = [];
- for (let i = 0; i < t.length; i++)
- typeof t[i] != "number" || typeof e[i] != "number" || (n.push(t[i]), r.push(e[i]));
- if (n.length <= 1)
- throw k.DIV0;
- return B.corrcoeff(n, r);
- },
- "COVARIANCE.P": (t, e) => {
- if (t = O.accept(t, I.ARRAY, void 0, !0, !0), e = O.accept(e, I.ARRAY, void 0, !0, !0), t.length !== e.length)
- throw k.NA;
- const n = [], r = [];
- for (let h = 0; h < t.length; h++)
- typeof t[h] != "number" || typeof e[h] != "number" || (n.push(t[h]), r.push(e[h]));
- const i = B.mean(n), a = B.mean(r);
- let c = 0;
- for (let h = 0; h < n.length; h++)
- c += (n[h] - i) * (r[h] - a);
- return c / n.length;
- },
- "COVARIANCE.S": (t, e) => {
- if (t = O.accept(t, I.ARRAY, void 0, !0, !0), e = O.accept(e, I.ARRAY, void 0, !0, !0), t.length !== e.length)
- throw k.NA;
- const n = [], r = [];
- for (let i = 0; i < t.length; i++)
- typeof t[i] != "number" || typeof e[i] != "number" || (n.push(t[i]), r.push(e[i]));
- if (n.length <= 1)
- throw k.DIV0;
- return B.covariance(n, r);
- },
- DEVSQ: (...t) => {
- let e = 0, n = [];
- O.flattenParams(t, I.NUMBER, !0, (i, a) => {
- typeof i == "number" && (e += i, n.push(i));
- });
- const r = e / n.length;
- e = 0;
- for (let i = 0; i < n.length; i++)
- e += (n[i] - r) ** 2;
- return e;
- },
- "EXPON.DIST": (t, e, n) => {
- if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.BOOLEAN), t < 0 || e <= 0)
- throw k.NUM;
- return n ? B.exponential.cdf(t, e) : B.exponential.pdf(t, e);
- },
- "F.DIST": (t, e, n, r) => {
- if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.NUMBER), r = O.accept(r, I.BOOLEAN), t < 0 || e < 1 || n < 1)
- throw k.NUM;
- return e = Math.trunc(e), n = Math.trunc(n), r ? B.centralF.cdf(t, e, n) : B.centralF.pdf(t, e, n);
- },
- "F.DIST.RT": (t, e, n) => {
- if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.NUMBER), t < 0 || e < 1 || n < 1)
- throw k.NUM;
- return e = Math.trunc(e), n = Math.trunc(n), 1 - B.centralF.cdf(t, e, n);
- },
- "F.INV": (t, e, n) => {
- if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.NUMBER), t < 0 || t > 1 || e < 1 || n < 1)
- throw k.NUM;
- return e = Math.trunc(e), n = Math.trunc(n), B.centralF.inv(t, e, n);
- },
- "F.INV.RT": (t, e, n) => {
- if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.NUMBER), t < 0 || t > 1 || e < 1 || e >= Math.pow(10, 10) || n < 1 || n >= Math.pow(10, 10))
- throw k.NUM;
- return e = Math.trunc(e), n = Math.trunc(n), B.centralF.inv(1 - t, e, n);
- },
- /**
- * https://en.wikipedia.org/wiki/F-test_of_equality_of_variances
- */
- "F.TEST": (t, e) => {
- t = O.accept(t, I.ARRAY, void 0, !0, !0), e = O.accept(e, I.ARRAY, void 0, !0, !0);
- const n = [], r = [];
- let i = 0, a = 0;
- for (let p = 0; p < Math.max(t.length, e.length); p++)
- typeof t[p] == "number" && (n.push(t[p]), i += t[p]), typeof e[p] == "number" && (r.push(e[p]), a += e[p]);
- if (n.length <= 1 || r.length <= 1)
- throw k.DIV0;
- i /= n.length, a /= r.length;
- let c = 0, h = 0;
- for (let p = 0; p < n.length; p++)
- c += (i - n[p]) ** 2;
- c /= n.length - 1;
- for (let p = 0; p < r.length; p++)
- h += (a - r[p]) ** 2;
- return h /= r.length - 1, B.centralF.cdf(c / h, n.length - 1, r.length - 1) * 2;
- },
- FISHER: (t) => {
- if (t = O.accept(t, I.NUMBER), t <= -1 || t >= 1)
- throw k.NUM;
- return Math.log((1 + t) / (1 - t)) / 2;
- },
- FISHERINV: (t) => {
- t = O.accept(t, I.NUMBER);
- let e = Math.exp(2 * t);
- return (e - 1) / (e + 1);
- },
- // FIXME
- FORECAST: (t, e, n) => {
- if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.ARRAY, void 0, !0, !0), n = O.accept(n, I.ARRAY, void 0, !0, !0), n.length !== e.length)
- throw k.NA;
- const r = [], i = [];
- let a = !0;
- for (let l = 0; l < e.length; l++)
- typeof e[l] != "number" || typeof n[l] != "number" || (r.push(e[l]), i.push(n[l]), n[l] !== n[0] && (a = !1));
- if (a)
- throw k.DIV0;
- const c = B.mean(r), h = B.mean(i);
- let p = 0, u = 0;
- for (let l = 0; l < r.length; l++)
- p += (i[l] - h) * (r[l] - c), u += (i[l] - h) ** 2;
- const o = p / u;
- return c - o * h + o * t;
- },
- "FORECAST.ETS": () => {
- },
- "FORECAST.ETS.CONFINT": () => {
- },
- "FORECAST.ETS.SEASONALITY": () => {
- },
- "FORECAST.ETS.STAT": () => {
- },
- "FORECAST.LINEAR": (...t) => $o.FORECAST(...t),
- FREQUENCY: (t, e) => {
- t = O.accept(t, I.ARRAY, void 0, !0, !0), e = O.accept(e, I.ARRAY, void 0, !0, !0);
- const n = [];
- for (let i = 0; i < e.length; i++)
- typeof e[i] == "number" && n.push(e[i]);
- n.sort(), n.push(1 / 0);
- const r = [];
- for (let i = 0; i < n.length; i++) {
- r[i] = [], r[i][0] = 0;
- for (let a = 0; a < t.length; a++) {
- if (typeof t[a] != "number")
- continue;
- t[a] <= n[i] && (r[i][0]++, t[a] = null);
- }
- }
- return r;
- },
- GAMMA: (t) => {
- if (t = O.accept(t, I.NUMBER), t === 0 || t < 0 && t === Math.trunc(t))
- throw k.NUM;
- return B.gammafn(t);
- },
- "GAMMA.DIST": (t, e, n, r) => {
- if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.NUMBER), r = O.accept(r, I.BOOLEAN), t < 0 || e <= 0 || n <= 0)
- throw k.NUM;
- return r ? B.gamma.cdf(t, e, n, !0) : B.gamma.pdf(t, e, n, !1);
- },
- "GAMMA.INV": (t, e, n) => {
- if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.NUMBER), t < 0 || t > 1 || e <= 0 || n <= 0)
- throw k.NUM;
- return B.gamma.inv(t, e, n);
- },
- GAMMALN: (t) => {
- if (t = O.accept(t, I.NUMBER), t <= 0)
- throw k.NUM;
- return B.gammaln(t);
- },
- "GAMMALN.PRECISE": (t) => {
- if (t = O.accept(t, I.NUMBER), t <= 0)
- throw k.NUM;
- return B.gammaln(t);
- },
- GAUSS: (t) => (t = O.accept(t, I.NUMBER), B.normal.cdf(t, 0, 1) - 0.5),
- GEOMEAN: (...t) => {
- const e = [];
- return O.flattenParams(t, I.NUMBER, !0, (n, r) => {
- typeof n == "number" && e.push(n);
- }), B.geomean(e);
- },
- GROWTH: (t, e, n, r) => {
- t = O.accept(t, I.ARRAY, void 0, !0, !0);
- for (let f = 0; f < t.length; f++)
- if (typeof t[f] != "number")
- throw k.VALUE;
- e = O.accept(e, I.ARRAY, null, !0, !0);
- const i = e == null;
- if (e == null) {
- e = [];
- for (let f = 1; f <= t.length; f++)
- e.push(f);
- } else {
- if (e.length !== t.length)
- throw k.REF;
- for (let f = 0; f < e.length; f++)
- if (typeof e[f] != "number")
- throw k.VALUE;
- }
- if (n = O.accept(n, I.ARRAY, null, !1, !0), n == null && i) {
- n = [];
- for (let f = 1; f <= t.length; f++)
- n.push(f);
- n = [n];
- } else
- n == null && (n = Array.isArray(e[0]) ? e : [e]);
- r = O.accept(r, I.BOOLEAN, !0);
- const a = t.length;
- let c = 0, h = 0, p = 0, u = 0;
- for (let f = 0; f < a; f++) {
- const v = e[f], d = Math.log(t[f]);
- c += v, h += d, p += v * d, u += v * v;
- }
- c /= a, h /= a, p /= a, u /= a;
- let o, s;
- r ? (o = (p - c * h) / (u - c * c), s = h - o * c) : (o = p / u, s = 0);
- const l = [];
- for (let f = 0; f < n.length; f++) {
- l[f] = [];
- for (let v = 0; v < n[0].length; v++) {
- if (typeof n[f][v] != "number")
- throw k.VALUE;
- l[f][v] = Math.exp(s + o * n[f][v]);
- }
- }
- return l;
- },
- HARMEAN: (...t) => {
- let e = 0, n = 0;
- return O.flattenParams(t, I.NUMBER, !0, (r, i) => {
- typeof r == "number" && (n += 1 / r, e++);
- }), e / n;
- },
- "HYPGEOM.DIST": (t, e, n, r, i) => {
- if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.NUMBER), r = O.accept(r, I.NUMBER), i = O.accept(i, I.BOOLEAN), t = Math.trunc(t), e = Math.trunc(e), n = Math.trunc(n), r = Math.trunc(r), r <= 0 || t < 0 || e <= 0 || n <= 0 || e > r || n > r || e < t || n < t || t < e - r + n)
- throw k.NUM;
- function a(h, p, u, o) {
- return En.COMBIN(u, h) * En.COMBIN(o - u, p - h) / En.COMBIN(o, p);
- }
- function c(h, p, u, o) {
- let s = 0;
- for (let l = 0; l <= h; l++)
- s += a(l, p, u, o);
- return s;
- }
- return i ? c(t, e, n, r) : a(t, e, n, r);
- },
- INTERCEPT: (t, e) => {
- if (t = O.accept(t, I.ARRAY, void 0, !0, !0), e = O.accept(e, I.ARRAY, void 0, !0, !0), e.length !== t.length)
- throw k.NA;
- const n = [], r = [];
- for (let u = 0; u < t.length; u++)
- typeof t[u] != "number" || typeof e[u] != "number" || (n.push(t[u]), r.push(e[u]));
- if (n.length <= 1)
- throw k.DIV0;
- const i = B.mean(n), a = B.mean(r);
- let c = 0, h = 0;
- for (let u = 0; u < n.length; u++)
- c += (r[u] - a) * (n[u] - i), h += (r[u] - a) ** 2;
- const p = c / h;
- return i - p * a;
- },
- KURT: (...t) => {
- let e = 0, n = [];
- O.flattenParams(t, I.NUMBER, !0, (a, c) => {
- typeof a == "number" && (e += a, n.push(a));
- });
- const r = n.length;
- e /= r;
- let i = 0;
- for (let a = 0; a < r; a++)
- i += Math.pow(n[a] - e, 4);
- return i = i / Math.pow(B.stdev(n, !0), 4), r * (r + 1) / ((r - 1) * (r - 2) * (r - 3)) * i - 3 * (r - 1) * (r - 1) / ((r - 2) * (r - 3));
- },
- LINEST: () => {
- },
- LOGEST: () => {
- },
- "LOGNORM.DIST": (t, e, n, r) => {
- if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.NUMBER), r = O.accept(r, I.BOOLEAN), t <= 0 || n <= 0)
- throw k.NUM;
- return r ? B.lognormal.cdf(t, e, n) : B.lognormal.pdf(t, e, n);
- },
- "LOGNORM.INV": (t, e, n) => {
- if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.NUMBER), t <= 0 || t >= 1 || n <= 0)
- throw k.NUM;
- return B.lognormal.inv(t, e, n);
- },
- "MODE.MULT": () => {
- },
- "MODE.SNGL": () => {
- },
- "NEGBINOM.DIST": (t, e, n, r) => {
- if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.NUMBER), r = O.accept(r, I.BOOLEAN), t = Math.trunc(t), e = Math.trunc(e), n < 0 || n > 1 || t < 0 || e < 1)
- throw k.NUM;
- return r ? B.negbin.cdf(t, e, n) : B.negbin.pdf(t, e, n);
- },
- "NORM.DIST": (t, e, n, r) => {
- if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.NUMBER), r = O.accept(r, I.BOOLEAN), n <= 0)
- throw k.NUM;
- return r ? B.normal.cdf(t, e, n) : B.normal.pdf(t, e, n);
- },
- "NORM.INV": (t, e, n) => {
- if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.NUMBER), t <= 0 || t >= 1 || n <= 0)
- throw k.NUM;
- return B.normal.inv(t, e, n);
- },
- "NORM.S.DIST": (t, e) => (t = O.accept(t, I.NUMBER), e = O.accept(e, I.BOOLEAN), e ? B.normal.cdf(t, 0, 1) : B.normal.pdf(t, 0, 1)),
- "NORM.S.INV": (t) => {
- if (t = O.accept(t, I.NUMBER), t <= 0 || t >= 1)
- throw k.NUM;
- return B.normal.inv(t, 0, 1);
- },
- PEARSON: () => {
- },
- "PERCENTILE.EXC": () => {
- },
- "PERCENTILE.INC": () => {
- },
- "PERCENTRANK.EXC": () => {
- },
- "PERCENTRANK.INC": () => {
- },
- PERMUTATIONA: () => {
- },
- PHI: (t) => (t = O.accept(t, I.NUMBER), Math.exp(-0.5 * t * t) / nc),
- "POISSON.DIST": (t, e, n) => {
- if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.BOOLEAN), t < 0 || e < 0)
- throw k.NUM;
- return t = Math.trunc(t), n ? B.poisson.cdf(t, e) : B.poisson.pdf(t, e);
- },
- PROB: () => {
- },
- "QUARTILE.EXC": () => {
- },
- "QUARTILE.INC": () => {
- },
- "RANK.AVG": () => {
- },
- "RANK.EQ": () => {
- },
- RSQ: () => {
- },
- SKEW: () => {
- },
- "SKEW.P": () => {
- },
- SLOPE: () => {
- },
- STANDARDIZE: (t, e, n) => {
- if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.NUMBER), n <= 0)
- throw k.NUM;
- return (t - e) / n;
- },
- "STDEV.P": () => {
- },
- "STDEV.S": () => {
- },
- STDEVA: () => {
- },
- STDEVPA: () => {
- },
- STEYX: () => {
- },
- "T.DIST": (t, e, n) => {
- if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.BOOLEAN), e < 1)
- throw k.NUM;
- return n ? B.studentt.cdf(t, e) : B.studentt.pdf(t, e);
- },
- "T.DIST.2T": (t, e) => {
- if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), e < 1 || t < 0)
- throw k.NUM;
- return (1 - B.studentt.cdf(t, e)) * 2;
- },
- "T.DIST.RT": (t, e) => {
- if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), e < 1)
- throw k.NUM;
- return 1 - B.studentt.cdf(t, e);
- },
- "T.INV": (t, e) => {
- if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), t <= 0 || t > 1 || e < 1)
- throw k.NUM;
- return e = e % 1 === 0 ? e : Math.trunc(e), B.studentt.inv(t, e);
- },
- "T.INV.2T": (t, e) => {
- if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), t <= 0 || t > 1 || e < 1)
- throw k.NUM;
- return e = e % 1 === 0 ? e : Math.trunc(e), Math.abs(B.studentt.inv(t / 2, e));
- },
- "T.TEST": () => {
- },
- TREND: () => {
- },
- TRIMMEAN: () => {
- },
- "VAR.P": () => {
- },
- "VAR.S": () => {
- },
- VARA: () => {
- },
- VARPA: () => {
- },
- "WEIBULL.DIST": (t, e, n, r) => {
- if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.NUMBER), r = O.accept(r, I.BOOLEAN), t < 0 || e <= 0 || n <= 0)
- throw k.NUM;
- return r ? 1 - Math.exp(-Math.pow(t / n, e)) : Math.pow(t, e - 1) * Math.exp(-Math.pow(t / n, e)) * e / Math.pow(n, e);
- },
- "Z.TEST": () => {
- }
-};
-var rc = {
- DistributionFunctions: $o
-};
-const ic = he(), { FormulaHelpers: oc, Types: mn, Criteria: gi, Address: Dh } = ge(), { Infix: Ei } = Dr, ut = oc, { DistributionFunctions: sc } = rc, ac = {
- AVEDEV: (...t) => {
- let e = 0;
- const n = [];
- ut.flattenParams(t, mn.NUMBER, !0, (i, a) => {
- typeof i == "number" && (e += i, n.push(i));
- });
- const r = e / n.length;
- e = 0;
- for (let i = 0; i < n.length; i++)
- e += Math.abs(n[i] - r);
- return e / n.length;
- },
- AVERAGE: (...t) => {
- let e = 0, n = 0;
- return ut.flattenParams(t, mn.NUMBER, !0, (r, i) => {
- typeof r == "number" && (e += r, n++);
- }), e / n;
- },
- AVERAGEA: (...t) => {
- let e = 0, n = 0;
- return ut.flattenParams(t, mn.NUMBER, !0, (r, i) => {
- const a = typeof r;
- a === "number" ? (e += r, n++) : a === "string" && n++;
- }), e / n;
- },
- // special
- AVERAGEIF: (t, e, n, r) => {
- const i = ut.retrieveRanges(t, e, r);
- e = i[0], r = i[1], n = ut.retrieveArg(t, n);
- const a = n.isArray;
- n = gi.parse(ut.accept(n));
- let c = 0, h = 0;
- if (e.forEach((p, u) => {
- p.forEach((o, s) => {
- const l = r[u][s];
- typeof l == "number" && (n.op === "wc" ? n.match === n.value.test(o) && (c += l, h++) : Ei.compareOp(o, n.op, n.value, Array.isArray(o), a) && (c += l, h++));
- });
- }), h === 0)
- throw ic.DIV0;
- return c / h;
- },
- AVERAGEIFS: () => {
- },
- COUNT: (...t) => {
- let e = 0;
- return ut.flattenParams(
- t,
- null,
- !0,
- (n, r) => {
- (r.isLiteral && !isNaN(n) || typeof n == "number") && e++;
- }
- ), e;
- },
- COUNTIF: (t, e) => {
- t = ut.accept(t, mn.ARRAY, void 0, !1, !0);
- const n = e.isArray;
- e = ut.accept(e);
- let r = 0;
- return e = gi.parse(e), t.forEach((i) => {
- i.forEach((a) => {
- e.op === "wc" ? e.match === e.value.test(a) && r++ : Ei.compareOp(a, e.op, e.value, Array.isArray(a), n) && r++;
- });
- }), r;
- },
- LARGE: () => {
- },
- MAX: () => {
- },
- MAXA: () => {
- },
- MAXIFS: () => {
- },
- MEDIAN: () => {
- },
- MIN: () => {
- },
- MINA: () => {
- },
- MINIFS: () => {
- },
- PERMUT: () => {
- },
- PERMUTATIONA: () => {
- },
- SMALL: () => {
- }
-};
-var cc = Object.assign(ac, sc);
-const De = he(), { FormulaHelpers: lc, Types: pe } = ge(), ae = lc, Rn = 1e3 * 60 * 60 * 24, Or = new Date(Date.UTC(1900, 0, 1)), uc = [
- void 0,
- 0,
- 1,
- void 0,
- void 0,
- void 0,
- void 0,
- void 0,
- void 0,
- void 0,
- void 0,
- void 0,
- 1,
- 2,
- 3,
- 4,
- 5,
- 6,
- 0
-], fc = [
- void 0,
- [1, 2, 3, 4, 5, 6, 7],
- [7, 1, 2, 3, 4, 5, 6],
- [6, 0, 1, 2, 3, 4, 5],
- void 0,
- void 0,
- void 0,
- void 0,
- void 0,
- void 0,
- void 0,
- [7, 1, 2, 3, 4, 5, 6],
- [6, 7, 1, 2, 3, 4, 5],
- [5, 6, 7, 1, 2, 3, 4],
- [4, 5, 6, 7, 1, 2, 3],
- [3, 4, 5, 6, 7, 1, 2],
- [2, 3, 4, 5, 6, 7, 1],
- [1, 2, 3, 4, 5, 6, 7]
-], mi = [
- void 0,
- [6, 0],
- [0, 1],
- [1, 2],
- [2, 3],
- [3, 4],
- [4, 5],
- [5, 6],
- void 0,
- void 0,
- void 0,
- [0],
- [1],
- [2],
- [3],
- [4],
- [5],
- [6]
-], hc = /^\s*(\d\d?)\s*(:\s*\d\d?)?\s*(:\s*\d\d?)?\s*(pm|am)?\s*$/i, pc = /^\s*((\d\d?)\s*([-\/])\s*(\d\d?))([\d:.apm\s]*)$/i, dc = /^\s*((\d\d?)\s*([-/])\s*(jan\w*|feb\w*|mar\w*|apr\w*|may\w*|jun\w*|jul\w*|aug\w*|sep\w*|oct\w*|nov\w*|dec\w*))([\d:.apm\s]*)$/i, vc = /^\s*((jan\w*|feb\w*|mar\w*|apr\w*|may\w*|jun\w*|jul\w*|aug\w*|sep\w*|oct\w*|nov\w*|dec\w*)\s*([-/])\s*(\d\d?))([\d:.apm\s]*)$/i;
-function gc(t) {
- const e = t.match(pc), n = t.match(dc), r = t.match(vc);
- return e ? t = e[1] + e[3] + (/* @__PURE__ */ new Date()).getFullYear() + e[5] : n ? t = n[1] + n[3] + (/* @__PURE__ */ new Date()).getFullYear() + n[5] : r && (t = r[1] + r[3] + (/* @__PURE__ */ new Date()).getFullYear() + r[5]), new Date(Date.parse(`${t} UTC`));
-}
-function Ec(t) {
- const e = t.match(hc);
- if (!e)
- return;
- const n = e[2] ? e[2] : ":00", r = e[3] ? e[3] : ":00", i = e[4] ? " " + e[4] : "", a = new Date(Date.parse(`1/1/1900 ${e[1] + n + r + i} UTC`));
- let c = /* @__PURE__ */ new Date();
- return c = new Date(Date.UTC(
- c.getFullYear(),
- c.getMonth(),
- c.getDate(),
- c.getHours(),
- c.getMinutes(),
- c.getSeconds(),
- c.getMilliseconds()
- )), new Date(Date.UTC(
- c.getUTCFullYear(),
- c.getUTCMonth(),
- c.getUTCDate(),
- a.getUTCHours(),
- a.getUTCMinutes(),
- a.getUTCSeconds(),
- a.getUTCMilliseconds()
- ));
-}
-function Ot(t) {
- const e = t > -22038912e5 ? 2 : 1;
- return Math.floor((t - Or) / 864e5) + e;
-}
-function mc(t) {
- if (t < 0)
- throw De.VALUE;
- return t <= 60 ? new Date(Or.getTime() + (t - 1) * 864e5) : new Date(Or.getTime() + (t - 2) * 864e5);
-}
-function Ho(t) {
- if (t instanceof Date)
- return { date: t };
- t = ae.accept(t);
- let e = !0, n;
- return isNaN(t) ? (n = Ec(t), n ? e = !1 : n = gc(t)) : (t = Number(t), n = mc(t)), { date: n, isDateGiven: e };
-}
-function Z(t) {
- return Ho(t).date;
-}
-function vr(t, e) {
- return t.getUTCFullYear() === e.getUTCFullYear() && t.getUTCMonth() === e.getUTCMonth() && t.getUTCDate() === e.getUTCDate();
-}
-function Rc(t) {
- return t === 1900 ? !0 : new Date(t, 1, 29).getMonth() === 1;
-}
-const Mt = {
- DATE: (t, e, n) => {
- if (t = ae.accept(t, pe.NUMBER), e = ae.accept(e, pe.NUMBER), n = ae.accept(n, pe.NUMBER), t < 0 || t >= 1e4)
- throw De.NUM;
- return t < 1900 && (t += 1900), Ot(Date.UTC(t, e - 1, n));
- },
- DATEDIF: (t, e, n) => {
- if (t = Z(t), e = Z(e), n = ae.accept(n, pe.STRING).toLowerCase(), t > e)
- throw De.NUM;
- const r = e.getUTCFullYear() - t.getUTCFullYear(), i = e.getUTCMonth() - t.getUTCMonth(), a = e.getUTCDate() - t.getUTCDate();
- let c;
- switch (n) {
- case "y":
- return c = i < 0 || i === 0 && a < 0 ? -1 : 0, c + r;
- case "m":
- return c = a < 0 ? -1 : 0, r * 12 + i + c;
- case "d":
- return Math.floor(e - t) / Rn;
- case "md":
- return t.setUTCFullYear(e.getUTCFullYear()), a < 0 ? t.setUTCMonth(e.getUTCMonth() - 1) : t.setUTCMonth(e.getUTCMonth()), Math.floor(e - t) / Rn;
- case "ym":
- return c = a < 0 ? -1 : 0, (c + r * 12 + i) % 12;
- case "yd":
- return i < 0 || i === 0 && a < 0 ? t.setUTCFullYear(e.getUTCFullYear() - 1) : t.setUTCFullYear(e.getUTCFullYear()), Math.floor(e - t) / Rn;
- }
- },
- /**
- * Limitation: Year must be four digit, only support ISO 8016 date format.
- * Does not support date without year, i.e. "5-JUL".
- * @param {string} dateText
- */
- DATEVALUE: (t) => {
- t = ae.accept(t, pe.STRING);
- const { date: e, isDateGiven: n } = Ho(t);
- if (!n)
- return 0;
- const r = Ot(e);
- if (r < 0 || r > 2958465)
- throw De.VALUE;
- return r;
- },
- DAY: (t) => Z(t).getUTCDate(),
- DAYS: (t, e) => {
- t = Z(t), e = Z(e);
- let n = 0;
- return e < -22038912e5 && -22038912e5 < t && (n = 1), Math.floor(t - e) / Rn + n;
- },
- DAYS360: (t, e, n) => {
- t = Z(t), e = Z(e), n = ae.accept(n, pe.BOOLEAN, !1), t.getUTCDate() === 31 && t.setUTCDate(30), !n && t.getUTCDate() < 30 && e.getUTCDate() > 30 ? e.setUTCMonth(e.getUTCMonth() + 1, 1) : e.getUTCDate() === 31 && e.setUTCDate(30);
- const r = e.getUTCFullYear() - t.getUTCFullYear(), i = e.getUTCMonth() - t.getUTCMonth(), a = e.getUTCDate() - t.getUTCDate();
- return i * 30 + a + r * 12 * 30;
- },
- EDATE: (t, e) => (t = Z(t), e = ae.accept(e, pe.NUMBER), t.setUTCMonth(t.getUTCMonth() + e), Ot(t)),
- EOMONTH: (t, e) => (t = Z(t), e = ae.accept(e, pe.NUMBER), t.setUTCMonth(t.getUTCMonth() + e + 1, 0), Ot(t)),
- HOUR: (t) => Z(t).getUTCHours(),
- ISOWEEKNUM: (t) => {
- const e = Z(t), n = new Date(Date.UTC(e.getFullYear(), e.getMonth(), e.getDate())), r = n.getUTCDay();
- n.setUTCDate(n.getUTCDate() + 4 - r);
- const i = new Date(Date.UTC(n.getUTCFullYear(), 0, 1));
- return Math.ceil(((n - i) / 864e5 + 1) / 7);
- },
- MINUTE: (t) => Z(t).getUTCMinutes(),
- MONTH: (t) => Z(t).getUTCMonth() + 1,
- NETWORKDAYS: (t, e, n) => {
- t = Z(t), e = Z(e);
- let r = 1;
- if (t > e) {
- r = -1;
- const c = t;
- t = e, e = c;
- }
- const i = [];
- n != null && ae.flattenParams([n], pe.NUMBER, !1, (c) => {
- i.push(Z(c));
- });
- let a = 0;
- for (; t <= e; ) {
- if (t.getUTCDay() !== 0 && t.getUTCDay() !== 6) {
- let c = !1;
- for (let h = 0; h < i.length; h++)
- if (vr(t, i[h])) {
- c = !0;
- break;
- }
- c || a++;
- }
- t.setUTCDate(t.getUTCDate() + 1);
- }
- return r * a;
- },
- "NETWORKDAYS.INTL": (t, e, n, r) => {
- t = Z(t), e = Z(e);
- let i = 1;
- if (t > e) {
- i = -1;
- const h = t;
- t = e, e = h;
- }
- if (n = ae.accept(n, null, 1), n === "1111111")
- return 0;
- if (typeof n == "string" && Number(n).toString() !== n) {
- if (n.length !== 7)
- throw De.VALUE;
- n = n.charAt(6) + n.slice(0, 6);
- const h = [];
- for (let p = 0; p < n.length; p++)
- n.charAt(p) === "1" && h.push(p);
- n = h;
- } else {
- if (typeof n != "number")
- throw De.VALUE;
- n = mi[n];
- }
- const a = [];
- r != null && ae.flattenParams([r], pe.NUMBER, !1, (h) => {
- a.push(Z(h));
- });
- let c = 0;
- for (; t <= e; ) {
- let h = !1;
- for (let p = 0; p < n.length; p++)
- if (n[p] === t.getUTCDay()) {
- h = !0;
- break;
- }
- if (!h) {
- let p = !1;
- for (let u = 0; u < a.length; u++)
- if (vr(t, a[u])) {
- p = !0;
- break;
- }
- p || c++;
- }
- t.setUTCDate(t.getUTCDate() + 1);
- }
- return i * c;
- },
- NOW: () => {
- const t = /* @__PURE__ */ new Date();
- return Ot(Date.UTC(
- t.getFullYear(),
- t.getMonth(),
- t.getDate(),
- t.getHours(),
- t.getMinutes(),
- t.getSeconds(),
- t.getMilliseconds()
- )) + (3600 * t.getHours() + 60 * t.getMinutes() + t.getSeconds()) / 86400;
- },
- SECOND: (t) => Z(t).getUTCSeconds(),
- TIME: (t, e, n) => {
- if (t = ae.accept(t, pe.NUMBER), e = ae.accept(e, pe.NUMBER), n = ae.accept(n, pe.NUMBER), t < 0 || t > 32767 || e < 0 || e > 32767 || n < 0 || n > 32767)
- throw De.NUM;
- return (3600 * t + 60 * e + n) / 86400;
- },
- TIMEVALUE: (t) => (t = Z(t), (3600 * t.getUTCHours() + 60 * t.getUTCMinutes() + t.getUTCSeconds()) / 86400),
- TODAY: () => {
- const t = /* @__PURE__ */ new Date();
- return Ot(Date.UTC(t.getFullYear(), t.getMonth(), t.getDate()));
- },
- WEEKDAY: (t, e) => {
- const n = Z(t);
- e = ae.accept(e, pe.NUMBER, 1);
- const r = n.getUTCDay(), i = fc[e];
- if (!i)
- throw De.NUM;
- return i[r];
- },
- WEEKNUM: (t, e) => {
- const n = Z(t);
- if (e = ae.accept(e, pe.NUMBER, 1), e === 21)
- return Mt.ISOWEEKNUM(t);
- const r = uc[e], i = new Date(Date.UTC(n.getUTCFullYear(), 0, 1)), a = i.getUTCDay() < r ? 1 : 0;
- return Math.ceil(((n - i) / 864e5 + 1) / 7) + a;
- },
- WORKDAY: (t, e, n) => Mt["WORKDAY.INTL"](t, e, 1, n),
- "WORKDAY.INTL": (t, e, n, r) => {
- if (t = Z(t), e = ae.accept(e, pe.NUMBER), n = ae.accept(n, null, 1), n === "1111111")
- throw De.VALUE;
- if (typeof n == "string" && Number(n).toString() !== n) {
- if (n.length !== 7)
- throw De.VALUE;
- n = n.charAt(6) + n.slice(0, 6);
- const c = [];
- for (let h = 0; h < n.length; h++)
- n.charAt(h) === "1" && c.push(h);
- n = c;
- } else {
- if (typeof n != "number")
- throw De.VALUE;
- if (n = mi[n], n == null)
- throw De.NUM;
- }
- const i = [];
- r != null && ae.flattenParams([r], pe.NUMBER, !1, (c) => {
- i.push(Z(c));
- }), t.setUTCDate(t.getUTCDate() + 1);
- let a = 0;
- for (; a < e; ) {
- let c = !1;
- for (let h = 0; h < n.length; h++)
- if (n[h] === t.getUTCDay()) {
- c = !0;
- break;
- }
- if (!c) {
- let h = !1;
- for (let p = 0; p < i.length; p++)
- if (vr(t, i[p])) {
- h = !0;
- break;
- }
- h || a++;
- }
- t.setUTCDate(t.getUTCDate() + 1);
- }
- return Ot(t) - 1;
- },
- YEAR: (t) => Z(t).getUTCFullYear(),
- // Warning: may have bugs
- YEARFRAC: (t, e, n) => {
- if (t = Z(t), e = Z(e), t > e) {
- const u = t;
- t = e, e = u;
- }
- if (n = ae.accept(n, pe.NUMBER, 0), n = Math.trunc(n), n < 0 || n > 4)
- throw De.VALUE;
- let r = t.getUTCDate();
- const i = t.getUTCMonth() + 1, a = t.getUTCFullYear();
- let c = e.getUTCDate();
- const h = e.getUTCMonth() + 1, p = e.getUTCFullYear();
- switch (n) {
- case 0:
- return r === 31 && c === 31 ? (r = 30, c = 30) : r === 31 ? r = 30 : r === 30 && c === 31 && (c = 30), Math.abs(c + h * 30 + p * 360 - (r + i * 30 + a * 360)) / 360;
- case 1:
- if (p - a < 2) {
- const u = Rc(a) && a !== 1900 ? 366 : 365;
- return Mt.DAYS(e, t) / u;
- } else {
- const u = p - a + 1, s = (new Date(p + 1, 0, 1) - new Date(a, 0, 1)) / 1e3 / 60 / 60 / 24 / u;
- return Mt.DAYS(e, t) / s;
- }
- case 2:
- return Math.abs(Mt.DAYS(e, t) / 360);
- case 3:
- return Math.abs(Mt.DAYS(e, t) / 365);
- case 4:
- return Math.abs(c + h * 30 + p * 360 - (r + i * 30 + a * 360)) / 360;
- }
- }
-};
-var Nc = Mt;
-const Ac = he(), { FormulaHelpers: yc, Types: Tc } = ge(), wc = yc, Cc = {
- ENCODEURL: (t) => encodeURIComponent(wc.accept(t, Tc.STRING)),
- FILTERXML: () => {
- },
- WEBSERVICE: (t, e) => {
- throw Ac.ERROR("WEBSERVICE is not supported in sync mode.");
- }
-};
-var Ic = Cc, Mr = "7.1.2";
-function ee(t) {
- return t && t.length === 0;
-}
-function Ze(t) {
- return t == null ? [] : Object.keys(t);
-}
-function xe(t) {
- for (var e = [], n = Object.keys(t), r = 0; r < n.length; r++)
- e.push(t[n[r]]);
- return e;
-}
-function Oc(t, e) {
- for (var n = [], r = Ze(t), i = 0; i < r.length; i++) {
- var a = r[i];
- n.push(e.call(null, t[a], a));
- }
- return n;
-}
-function x(t, e) {
- for (var n = [], r = 0; r < t.length; r++)
- n.push(e.call(null, t[r], r));
- return n;
-}
-function Ge(t) {
- for (var e = [], n = 0; n < t.length; n++) {
- var r = t[n];
- Array.isArray(r) ? e = e.concat(Ge(r)) : e.push(r);
- }
- return e;
-}
-function Je(t) {
- return ee(t) ? void 0 : t[0];
-}
-function Wo(t) {
- var e = t && t.length;
- return e ? t[e - 1] : void 0;
-}
-function V(t, e) {
- if (Array.isArray(t))
- for (var n = 0; n < t.length; n++)
- e.call(null, t[n], n);
- else if (Gr(t))
- for (var r = Ze(t), n = 0; n < r.length; n++) {
- var i = r[n], a = t[i];
- e.call(null, a, i);
- }
- else
- throw Error("non exhaustive match");
-}
-function st(t) {
- return typeof t == "string";
-}
-function pt(t) {
- return t === void 0;
-}
-function Ct(t) {
- return t instanceof Function;
-}
-function Re(t, e) {
- return e === void 0 && (e = 1), t.slice(e, t.length);
-}
-function nn(t, e) {
- return e === void 0 && (e = 1), t.slice(0, t.length - e);
-}
-function je(t, e) {
- var n = [];
- if (Array.isArray(t))
- for (var r = 0; r < t.length; r++) {
- var i = t[r];
- e.call(null, i) && n.push(i);
- }
- return n;
-}
-function Ht(t, e) {
- return je(t, function(n) {
- return !e(n);
- });
-}
-function et(t, e) {
- for (var n = Object.keys(t), r = {}, i = 0; i < n.length; i++) {
- var a = n[i], c = t[a];
- e(c) && (r[a] = c);
- }
- return r;
-}
-function $(t, e) {
- return Gr(t) ? t.hasOwnProperty(e) : !1;
-}
-function fe(t, e) {
- return $t(t, function(n) {
- return n === e;
- }) !== void 0;
-}
-function Se(t) {
- for (var e = [], n = 0; n < t.length; n++)
- e.push(t[n]);
- return e;
-}
-function on(t) {
- var e = {};
- for (var n in t)
- Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
- return e;
-}
-function $t(t, e) {
- for (var n = 0; n < t.length; n++) {
- var r = t[n];
- if (e.call(null, r))
- return r;
- }
-}
-function Mc(t, e) {
- for (var n = [], r = 0; r < t.length; r++) {
- var i = t[r];
- e.call(null, i) && n.push(i);
- }
- return n;
-}
-function Ne(t, e, n) {
- for (var r = Array.isArray(t), i = r ? t : xe(t), a = r ? [] : Ze(t), c = n, h = 0; h < i.length; h++)
- c = e.call(null, c, i[h], r ? h : a[h]);
- return c;
-}
-function sn(t) {
- return Ht(t, function(e) {
- return e == null;
- });
-}
-function Vr(t, e) {
- e === void 0 && (e = function(r) {
- return r;
- });
- var n = [];
- return Ne(t, function(r, i) {
- var a = e(i);
- return fe(n, a) ? r : (n.push(a), r.concat(i));
- }, []);
-}
-function ot(t) {
- return Array.isArray(t);
-}
-function dt(t) {
- return t instanceof RegExp;
-}
-function Gr(t) {
- return t instanceof Object;
-}
-function We(t, e) {
- for (var n = 0; n < t.length; n++)
- if (!e(t[n], n))
- return !1;
- return !0;
-}
-function $n(t, e) {
- return Ht(t, function(n) {
- return fe(e, n);
- });
-}
-function qo(t, e) {
- for (var n = 0; n < t.length; n++)
- if (e(t[n]))
- return !0;
- return !1;
-}
-function Uc(t, e) {
- for (var n = 0; n < t.length; n++)
- if (t[n] === e)
- return n;
- return -1;
-}
-function tt(t) {
- for (var e = [], n = 1; n < arguments.length; n++)
- e[n - 1] = arguments[n];
- for (var r = 0; r < e.length; r++)
- for (var i = e[r], a = Ze(i), c = 0; c < a.length; c++) {
- var h = a[c];
- t[h] = i[h];
- }
- return t;
-}
-function Lc(t) {
- for (var e = [], n = 1; n < arguments.length; n++)
- e[n - 1] = arguments[n];
- for (var r = 0; r < e.length; r++)
- for (var i = e[r], a = Ze(i), c = 0; c < a.length; c++) {
- var h = a[c];
- $(t, h) || (t[h] = i[h]);
- }
- return t;
-}
-function $r() {
- for (var t = [], e = 0; e < arguments.length; e++)
- t[e] = arguments[e];
- return Lc.apply(null, [{}].concat(t));
-}
-function _c(t, e) {
- var n = {};
- return V(t, function(r) {
- var i = e(r), a = n[i];
- a ? a.push(r) : n[i] = [r];
- }), n;
-}
-function Ri(t, e) {
- for (var n = on(t), r = Ze(e), i = 0; i < r.length; i++) {
- var a = r[i], c = e[a];
- n[a] = c;
- }
- return n;
-}
-function de() {
-}
-function Ni(t) {
- return t;
-}
-function Pc(t) {
- for (var e = [], n = 0; n < t.length; n++) {
- var r = t[n];
- e.push(r !== void 0 ? r : void 0);
- }
- return e;
-}
-function Ur(t) {
- console && console.error && console.error("Error: " + t);
-}
-function Yo(t) {
- console && console.warn && console.warn("Warning: " + t);
-}
-function Ai() {
- return typeof Map == "function";
-}
-function kc(t, e) {
- e.forEach(function(n) {
- var r = n.prototype;
- Object.getOwnPropertyNames(r).forEach(function(i) {
- if (i !== "constructor") {
- var a = Object.getOwnPropertyDescriptor(r, i);
- a && (a.get || a.set) ? Object.defineProperty(t.prototype, i, a) : t.prototype[i] = n.prototype[i];
- }
- });
- });
-}
-function Ko(t) {
- function e() {
- }
- e.prototype = t;
- var n = new e();
- function r() {
- return typeof n.bar;
- }
- return r(), r(), t;
-}
-function kn(t) {
- return t[t.length - 1];
-}
-function zo(t) {
- var e = (/* @__PURE__ */ new Date()).getTime(), n = t(), r = (/* @__PURE__ */ new Date()).getTime(), i = r - e;
- return { time: i, value: n };
-}
-var Xo = { exports: {} };
-(function(t) {
- (function(e, n) {
- t.exports ? t.exports = n() : e.regexpToAst = n();
- })(
- typeof self < "u" ? (
- // istanbul ignore next
- self
- ) : Ro,
- function() {
- function e() {
- }
- e.prototype.saveState = function() {
- return {
- idx: this.idx,
- input: this.input,
- groupIdx: this.groupIdx
- };
- }, e.prototype.restoreState = function(d) {
- this.idx = d.idx, this.input = d.input, this.groupIdx = d.groupIdx;
- }, e.prototype.pattern = function(d) {
- this.idx = 0, this.input = d, this.groupIdx = 0, this.consumeChar("/");
- var g = this.disjunction();
- this.consumeChar("/");
- for (var E = {
- type: "Flags",
- loc: { begin: this.idx, end: d.length },
- global: !1,
- ignoreCase: !1,
- multiLine: !1,
- unicode: !1,
- sticky: !1
- }; this.isRegExpFlag(); )
- switch (this.popChar()) {
- case "g":
- h(E, "global");
- break;
- case "i":
- h(E, "ignoreCase");
- break;
- case "m":
- h(E, "multiLine");
- break;
- case "u":
- h(E, "unicode");
- break;
- case "y":
- h(E, "sticky");
- break;
- }
- if (this.idx !== this.input.length)
- throw Error(
- "Redundant input: " + this.input.substring(this.idx)
- );
- return {
- type: "Pattern",
- flags: E,
- value: g,
- loc: this.loc(0)
- };
- }, e.prototype.disjunction = function() {
- var d = [], g = this.idx;
- for (d.push(this.alternative()); this.peekChar() === "|"; )
- this.consumeChar("|"), d.push(this.alternative());
- return { type: "Disjunction", value: d, loc: this.loc(g) };
- }, e.prototype.alternative = function() {
- for (var d = [], g = this.idx; this.isTerm(); )
- d.push(this.term());
- return { type: "Alternative", value: d, loc: this.loc(g) };
- }, e.prototype.term = function() {
- return this.isAssertion() ? this.assertion() : this.atom();
- }, e.prototype.assertion = function() {
- var d = this.idx;
- switch (this.popChar()) {
- case "^":
- return {
- type: "StartAnchor",
- loc: this.loc(d)
- };
- case "$":
- return { type: "EndAnchor", loc: this.loc(d) };
- case "\\":
- switch (this.popChar()) {
- case "b":
- return {
- type: "WordBoundary",
- loc: this.loc(d)
- };
- case "B":
- return {
- type: "NonWordBoundary",
- loc: this.loc(d)
- };
- }
- throw Error("Invalid Assertion Escape");
- case "(":
- this.consumeChar("?");
- var g;
- switch (this.popChar()) {
- case "=":
- g = "Lookahead";
- break;
- case "!":
- g = "NegativeLookahead";
- break;
- }
- p(g);
- var E = this.disjunction();
- return this.consumeChar(")"), {
- type: g,
- value: E,
- loc: this.loc(d)
- };
- }
- u();
- }, e.prototype.quantifier = function(d) {
- var g, E = this.idx;
- switch (this.popChar()) {
- case "*":
- g = {
- atLeast: 0,
- atMost: 1 / 0
- };
- break;
- case "+":
- g = {
- atLeast: 1,
- atMost: 1 / 0
- };
- break;
- case "?":
- g = {
- atLeast: 0,
- atMost: 1
- };
- break;
- case "{":
- var A = this.integerIncludingZero();
- switch (this.popChar()) {
- case "}":
- g = {
- atLeast: A,
- atMost: A
- };
- break;
- case ",":
- var m;
- this.isDigit() ? (m = this.integerIncludingZero(), g = {
- atLeast: A,
- atMost: m
- }) : g = {
- atLeast: A,
- atMost: 1 / 0
- }, this.consumeChar("}");
- break;
- }
- if (d === !0 && g === void 0)
- return;
- p(g);
- break;
- }
- if (!(d === !0 && g === void 0))
- return p(g), this.peekChar(0) === "?" ? (this.consumeChar("?"), g.greedy = !1) : g.greedy = !0, g.type = "Quantifier", g.loc = this.loc(E), g;
- }, e.prototype.atom = function() {
- var d, g = this.idx;
- switch (this.peekChar()) {
- case ".":
- d = this.dotAll();
- break;
- case "\\":
- d = this.atomEscape();
- break;
- case "[":
- d = this.characterClass();
- break;
- case "(":
- d = this.group();
- break;
- }
- return d === void 0 && this.isPatternCharacter() && (d = this.patternCharacter()), p(d), d.loc = this.loc(g), this.isQuantifier() && (d.quantifier = this.quantifier()), d;
- }, e.prototype.dotAll = function() {
- return this.consumeChar("."), {
- type: "Set",
- complement: !0,
- value: [a(`
-`), a("\r"), a("\u2028"), a("\u2029")]
- };
- }, e.prototype.atomEscape = function() {
- switch (this.consumeChar("\\"), this.peekChar()) {
- case "1":
- case "2":
- case "3":
- case "4":
- case "5":
- case "6":
- case "7":
- case "8":
- case "9":
- return this.decimalEscapeAtom();
- case "d":
- case "D":
- case "s":
- case "S":
- case "w":
- case "W":
- return this.characterClassEscape();
- case "f":
- case "n":
- case "r":
- case "t":
- case "v":
- return this.controlEscapeAtom();
- case "c":
- return this.controlLetterEscapeAtom();
- case "0":
- return this.nulCharacterAtom();
- case "x":
- return this.hexEscapeSequenceAtom();
- case "u":
- return this.regExpUnicodeEscapeSequenceAtom();
- default:
- return this.identityEscapeAtom();
- }
- }, e.prototype.decimalEscapeAtom = function() {
- var d = this.positiveInteger();
- return { type: "GroupBackReference", value: d };
- }, e.prototype.characterClassEscape = function() {
- var d, g = !1;
- switch (this.popChar()) {
- case "d":
- d = s;
- break;
- case "D":
- d = s, g = !0;
- break;
- case "s":
- d = f;
- break;
- case "S":
- d = f, g = !0;
- break;
- case "w":
- d = l;
- break;
- case "W":
- d = l, g = !0;
- break;
- }
- return p(d), { type: "Set", value: d, complement: g };
- }, e.prototype.controlEscapeAtom = function() {
- var d;
- switch (this.popChar()) {
- case "f":
- d = a("\f");
- break;
- case "n":
- d = a(`
-`);
- break;
- case "r":
- d = a("\r");
- break;
- case "t":
- d = a(" ");
- break;
- case "v":
- d = a("\v");
- break;
- }
- return p(d), { type: "Character", value: d };
- }, e.prototype.controlLetterEscapeAtom = function() {
- this.consumeChar("c");
- var d = this.popChar();
- if (/[a-zA-Z]/.test(d) === !1)
- throw Error("Invalid ");
- var g = d.toUpperCase().charCodeAt(0) - 64;
- return { type: "Character", value: g };
- }, e.prototype.nulCharacterAtom = function() {
- return this.consumeChar("0"), { type: "Character", value: a("\0") };
- }, e.prototype.hexEscapeSequenceAtom = function() {
- return this.consumeChar("x"), this.parseHexDigits(2);
- }, e.prototype.regExpUnicodeEscapeSequenceAtom = function() {
- return this.consumeChar("u"), this.parseHexDigits(4);
- }, e.prototype.identityEscapeAtom = function() {
- var d = this.popChar();
- return { type: "Character", value: a(d) };
- }, e.prototype.classPatternCharacterAtom = function() {
- switch (this.peekChar()) {
- case `
-`:
- case "\r":
- case "\u2028":
- case "\u2029":
- case "\\":
- case "]":
- throw Error("TBD");
- default:
- var d = this.popChar();
- return { type: "Character", value: a(d) };
- }
- }, e.prototype.characterClass = function() {
- var d = [], g = !1;
- for (this.consumeChar("["), this.peekChar(0) === "^" && (this.consumeChar("^"), g = !0); this.isClassAtom(); ) {
- var E = this.classAtom(), A = E.type === "Character";
- if (A && this.isRangeDash()) {
- this.consumeChar("-");
- var m = this.classAtom(), N = m.type === "Character";
- if (N) {
- if (m.value < E.value)
- throw Error("Range out of order in character class");
- d.push({ from: E.value, to: m.value });
- } else
- c(E.value, d), d.push(a("-")), c(m.value, d);
- } else
- c(E.value, d);
- }
- return this.consumeChar("]"), { type: "Set", complement: g, value: d };
- }, e.prototype.classAtom = function() {
- switch (this.peekChar()) {
- case "]":
- case `
-`:
- case "\r":
- case "\u2028":
- case "\u2029":
- throw Error("TBD");
- case "\\":
- return this.classEscape();
- default:
- return this.classPatternCharacterAtom();
- }
- }, e.prototype.classEscape = function() {
- switch (this.consumeChar("\\"), this.peekChar()) {
- case "b":
- return this.consumeChar("b"), { type: "Character", value: a("\b") };
- case "d":
- case "D":
- case "s":
- case "S":
- case "w":
- case "W":
- return this.characterClassEscape();
- case "f":
- case "n":
- case "r":
- case "t":
- case "v":
- return this.controlEscapeAtom();
- case "c":
- return this.controlLetterEscapeAtom();
- case "0":
- return this.nulCharacterAtom();
- case "x":
- return this.hexEscapeSequenceAtom();
- case "u":
- return this.regExpUnicodeEscapeSequenceAtom();
- default:
- return this.identityEscapeAtom();
- }
- }, e.prototype.group = function() {
- var d = !0;
- switch (this.consumeChar("("), this.peekChar(0)) {
- case "?":
- this.consumeChar("?"), this.consumeChar(":"), d = !1;
- break;
- default:
- this.groupIdx++;
- break;
- }
- var g = this.disjunction();
- this.consumeChar(")");
- var E = {
- type: "Group",
- capturing: d,
- value: g
- };
- return d && (E.idx = this.groupIdx), E;
- }, e.prototype.positiveInteger = function() {
- var d = this.popChar();
- if (i.test(d) === !1)
- throw Error("Expecting a positive integer");
- for (; r.test(this.peekChar(0)); )
- d += this.popChar();
- return parseInt(d, 10);
- }, e.prototype.integerIncludingZero = function() {
- var d = this.popChar();
- if (r.test(d) === !1)
- throw Error("Expecting an integer");
- for (; r.test(this.peekChar(0)); )
- d += this.popChar();
- return parseInt(d, 10);
- }, e.prototype.patternCharacter = function() {
- var d = this.popChar();
- switch (d) {
- case `
-`:
- case "\r":
- case "\u2028":
- case "\u2029":
- case "^":
- case "$":
- case "\\":
- case ".":
- case "*":
- case "+":
- case "?":
- case "(":
- case ")":
- case "[":
- case "|":
- throw Error("TBD");
- default:
- return { type: "Character", value: a(d) };
- }
- }, e.prototype.isRegExpFlag = function() {
- switch (this.peekChar(0)) {
- case "g":
- case "i":
- case "m":
- case "u":
- case "y":
- return !0;
- default:
- return !1;
- }
- }, e.prototype.isRangeDash = function() {
- return this.peekChar() === "-" && this.isClassAtom(1);
- }, e.prototype.isDigit = function() {
- return r.test(this.peekChar(0));
- }, e.prototype.isClassAtom = function(d) {
- switch (d === void 0 && (d = 0), this.peekChar(d)) {
- case "]":
- case `
-`:
- case "\r":
- case "\u2028":
- case "\u2029":
- return !1;
- default:
- return !0;
- }
- }, e.prototype.isTerm = function() {
- return this.isAtom() || this.isAssertion();
- }, e.prototype.isAtom = function() {
- if (this.isPatternCharacter())
- return !0;
- switch (this.peekChar(0)) {
- case ".":
- case "\\":
- case "[":
- case "(":
- return !0;
- default:
- return !1;
- }
- }, e.prototype.isAssertion = function() {
- switch (this.peekChar(0)) {
- case "^":
- case "$":
- return !0;
- case "\\":
- switch (this.peekChar(1)) {
- case "b":
- case "B":
- return !0;
- default:
- return !1;
- }
- case "(":
- return this.peekChar(1) === "?" && (this.peekChar(2) === "=" || this.peekChar(2) === "!");
- default:
- return !1;
- }
- }, e.prototype.isQuantifier = function() {
- var d = this.saveState();
- try {
- return this.quantifier(!0) !== void 0;
- } catch {
- return !1;
- } finally {
- this.restoreState(d);
- }
- }, e.prototype.isPatternCharacter = function() {
- switch (this.peekChar()) {
- case "^":
- case "$":
- case "\\":
- case ".":
- case "*":
- case "+":
- case "?":
- case "(":
- case ")":
- case "[":
- case "|":
- case "/":
- case `
-`:
- case "\r":
- case "\u2028":
- case "\u2029":
- return !1;
- default:
- return !0;
- }
- }, e.prototype.parseHexDigits = function(d) {
- for (var g = "", E = 0; E < d; E++) {
- var A = this.popChar();
- if (n.test(A) === !1)
- throw Error("Expecting a HexDecimal digits");
- g += A;
- }
- var m = parseInt(g, 16);
- return { type: "Character", value: m };
- }, e.prototype.peekChar = function(d) {
- return d === void 0 && (d = 0), this.input[this.idx + d];
- }, e.prototype.popChar = function() {
- var d = this.peekChar(0);
- return this.consumeChar(), d;
- }, e.prototype.consumeChar = function(d) {
- if (d !== void 0 && this.input[this.idx] !== d)
- throw Error(
- "Expected: '" + d + "' but found: '" + this.input[this.idx] + "' at offset: " + this.idx
- );
- if (this.idx >= this.input.length)
- throw Error("Unexpected end of input");
- this.idx++;
- }, e.prototype.loc = function(d) {
- return { begin: d, end: this.idx };
- };
- var n = /[0-9a-fA-F]/, r = /[0-9]/, i = /[1-9]/;
- function a(d) {
- return d.charCodeAt(0);
- }
- function c(d, g) {
- d.length !== void 0 ? d.forEach(function(E) {
- g.push(E);
- }) : g.push(d);
- }
- function h(d, g) {
- if (d[g] === !0)
- throw "duplicate flag " + g;
- d[g] = !0;
- }
- function p(d) {
- if (d === void 0)
- throw Error("Internal Error - Should never get here!");
- }
- function u() {
- throw Error("Internal Error - Should never get here!");
- }
- var o, s = [];
- for (o = a("0"); o <= a("9"); o++)
- s.push(o);
- var l = [a("_")].concat(s);
- for (o = a("a"); o <= a("z"); o++)
- l.push(o);
- for (o = a("A"); o <= a("Z"); o++)
- l.push(o);
- var f = [
- a(" "),
- a("\f"),
- a(`
-`),
- a("\r"),
- a(" "),
- a("\v"),
- a(" "),
- a(" "),
- a(" "),
- a(" "),
- a(" "),
- a(" "),
- a(" "),
- a(" "),
- a(" "),
- a(" "),
- a(" "),
- a(" "),
- a(" "),
- a(" "),
- a("\u2028"),
- a("\u2029"),
- a(" "),
- a(" "),
- a(" "),
- a("\uFEFF")
- ];
- function v() {
- }
- return v.prototype.visitChildren = function(d) {
- for (var g in d) {
- var E = d[g];
- d.hasOwnProperty(g) && (E.type !== void 0 ? this.visit(E) : Array.isArray(E) && E.forEach(function(A) {
- this.visit(A);
- }, this));
- }
- }, v.prototype.visit = function(d) {
- switch (d.type) {
- case "Pattern":
- this.visitPattern(d);
- break;
- case "Flags":
- this.visitFlags(d);
- break;
- case "Disjunction":
- this.visitDisjunction(d);
- break;
- case "Alternative":
- this.visitAlternative(d);
- break;
- case "StartAnchor":
- this.visitStartAnchor(d);
- break;
- case "EndAnchor":
- this.visitEndAnchor(d);
- break;
- case "WordBoundary":
- this.visitWordBoundary(d);
- break;
- case "NonWordBoundary":
- this.visitNonWordBoundary(d);
- break;
- case "Lookahead":
- this.visitLookahead(d);
- break;
- case "NegativeLookahead":
- this.visitNegativeLookahead(d);
- break;
- case "Character":
- this.visitCharacter(d);
- break;
- case "Set":
- this.visitSet(d);
- break;
- case "Group":
- this.visitGroup(d);
- break;
- case "GroupBackReference":
- this.visitGroupBackReference(d);
- break;
- case "Quantifier":
- this.visitQuantifier(d);
- break;
- }
- this.visitChildren(d);
- }, v.prototype.visitPattern = function(d) {
- }, v.prototype.visitFlags = function(d) {
- }, v.prototype.visitDisjunction = function(d) {
- }, v.prototype.visitAlternative = function(d) {
- }, v.prototype.visitStartAnchor = function(d) {
- }, v.prototype.visitEndAnchor = function(d) {
- }, v.prototype.visitWordBoundary = function(d) {
- }, v.prototype.visitNonWordBoundary = function(d) {
- }, v.prototype.visitLookahead = function(d) {
- }, v.prototype.visitNegativeLookahead = function(d) {
- }, v.prototype.visitCharacter = function(d) {
- }, v.prototype.visitSet = function(d) {
- }, v.prototype.visitGroup = function(d) {
- }, v.prototype.visitGroupBackReference = function(d) {
- }, v.prototype.visitQuantifier = function(d) {
- }, {
- RegExpParser: e,
- BaseRegExpVisitor: v,
- VERSION: "0.5.0"
- };
- }
- );
-})(Xo);
-var an = Xo.exports, In = {}, xc = new an.RegExpParser();
-function Hn(t) {
- var e = t.toString();
- if (In.hasOwnProperty(e))
- return In[e];
- var n = xc.pattern(e);
- return In[e] = n, n;
-}
-function Sc() {
- In = {};
-}
-var Bc = globalThis && globalThis.__extends || function() {
- var t = function(e, n) {
- return t = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(r, i) {
- r.__proto__ = i;
- } || function(r, i) {
- for (var a in i)
- Object.prototype.hasOwnProperty.call(i, a) && (r[a] = i[a]);
- }, t(e, n);
- };
- return function(e, n) {
- t(e, n);
- function r() {
- this.constructor = e;
- }
- e.prototype = n === null ? Object.create(n) : (r.prototype = n.prototype, new r());
- };
-}(), Qo = "Complement Sets are not supported for first char optimization", xn = `Unable to use "first char" lexer optimizations:
-`;
-function Fc(t, e) {
- e === void 0 && (e = !1);
- try {
- var n = Hn(t), r = Lr(n.value, {}, n.flags.ignoreCase);
- return r;
- } catch (a) {
- if (a.message === Qo)
- e && Yo("" + xn + (" Unable to optimize: < " + t.toString() + ` >
-`) + ` Complement Sets cannot be automatically optimized.
+"use strict";var js=Object.defineProperty;var ea=(t,e,n)=>e in t?js(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var U=(t,e,n)=>(ea(t,typeof e!="symbol"?e+"":e,n),n);Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var Ve;(function(t){t.CELL_CLICK="CELL_CLICK",t.SELECTION_CHANGE="CHANGE_SELECTION",t.CELL_CHANGE="CELL_CHANGE",t.COPY_CELLS="COPY_CELLS"})(Ve||(Ve={}));class ta{constructor(e){U(this,"root");U(this,"cellClick",(e,n)=>{var p,u;if(e.button!==0)return;const{offsetX:r,offsetY:i}=e,a=this.root.getCellByCoords(r,i),c=this.root.getCell(a),h=new Hn;h.selectedCell=a,h.selectedRange={from:a,to:a},n.setSelectingMode(!0),this.changeSelection(h,!0),(u=(p=this.root.config).onCellClick)==null||u.call(p,e,c)});U(this,"changeSelection",(e,n=!1)=>{var r,i;this.root.selection=e,n&&((i=(r=this.root.config).onSelectonChange)==null||i.call(r,e)),this.root.renderSheet(),this.root.renderColumnsBar(),this.root.renderRowsBar()});U(this,"copy",(e,n,r)=>{var i,a;(a=(i=this.root.config).onCopy)==null||a.call(i,e,n,r)});this.root=e}async dispatch(e){switch(e.type){case Ve.CELL_CLICK:{const{event:n,scroller:r}=e;this.cellClick(n,r);break}case Ve.SELECTION_CHANGE:{const{selection:n,enableCallback:r}=e;this.changeSelection(n,r);break}case Ve.CELL_CHANGE:{const{cell:n,enableCallback:r}=e;if(n.value.substring(0,1).startsWith("="))try{await n.evalFormula(this.root.formulaParser),n.displayValue=n.resultValue,this.root.renderCell(n.position.row,n.position.column),this.changeCellValues(n,r);return}catch(i){console.error(i)}this.root.renderCell(n.position.row,n.position.column),this.changeCellValues(n,r);break}case Ve.COPY_CELLS:{const{data:n,dataAsString:r,range:i}=e;this.copy(i,n,r);break}}}changeCellValues(e,n=!0){var r,i;n&&((i=(r=this.root.config).onCellChange)==null||i.call(r,e))}}class kt{constructor(e,n){U(this,"x");U(this,"y");U(this,"width");U(this,"height");this.x=this.getXCoord(n.column,e),this.y=this.getYCoord(n.row,e),this.width=e.columns[n.column].width,this.height=e.rows[n.row].height}getXCoord(e,n){let r=0;for(let i=0;i{const{key:n}=e;switch(n){case"Escape":{this.hide();break}case"Enter":{if(!this.root.selection.selectedCell)return;this.root.changeCellValues(this.root.selection.selectedCell,{value:this.element.value,displayValue:this.element.value}),this.root.events.dispatch({type:Ve.CELL_CHANGE,cell:this.root.getCell(this.root.selection.selectedCell)}),this.hide(),this.root.renderSelection()}}});U(this,"handleClickOutside",e=>{const n=e.target;this.element.contains(n)||this.hide()});this.root=e;const n=document.createElement("input");n.classList.add(Ft+"editor"),this.element=n,this.hide()}hide(){this.element.style.display="none",this.element.classList.add("hide"),this.element.blur(),window.removeEventListener("click",this.handleClickOutside),this.element.removeEventListener("keydown",this.handleKeydown),this.root.focusTable()}show(e,n){const{height:r,width:i,x:a,y:c}=new kt(this.root.config,e),h=this.root.getCell(e);this.element.classList.remove("hide"),this.element.style.top=c-this.root.viewport.top+this.root.columnsBarHeight+"px",this.element.style.left=a-this.root.viewport.left+this.root.rowsBarWidth+"px",this.element.style.width=i+"px",this.element.style.height=r+"px",this.element.style.display="block",window.addEventListener("click",this.handleClickOutside),this.element.addEventListener("keydown",this.handleKeydown),this.element.value=n||h.value,this.element.focus(),n||this.element.select()}}function ci(t,e){return t.column===e.column&&t.row===e.row}class ra{constructor(e){U(this,"element");U(this,"verticalScroller");U(this,"horizontalScroller");U(this,"root");U(this,"isSelecting",!1);U(this,"handleMouseMove",e=>{if(!this.isSelecting)return;const{offsetX:n,offsetY:r}=e,i=this.root.getCellByCoords(n,r);let a=!1;this.root.selection.selectedRange&&(a=!ci(this.root.selection.selectedRange.to,i),a&&(this.root.selection.selectedRange.to=i,this.root.events.dispatch({type:Ve.SELECTION_CHANGE,selection:this.root.selection,enableCallback:!0})))});U(this,"handleMouseUp",()=>{this.isSelecting=!1;const e={...this.root.selection};this.root.selection.selectedRange&&ci(this.root.selection.selectedRange.from,this.root.selection.selectedRange.to)&&(e.selectedRange=null,this.root.events.dispatch({type:Ve.SELECTION_CHANGE,selection:e,enableCallback:!1})),this.root.renderSheet(),this.root.renderColumnsBar(),this.root.renderRowsBar()});U(this,"handleDoubleClick",e=>{e.preventDefault();const n=this.root.getCellByCoords(e.offsetX,e.offsetY);this.root.showEditor(n)});U(this,"handleKeydown",e=>{if(["ArrowLeft","ArrowRight","ArrowUp","ArrowDown"].includes(e.key)){switch(e.preventDefault(),this.root.selection.selectedRange=null,e.key){case"ArrowLeft":{this.root.selection.selectedCell&&this.root.selection.selectedCell.column>0&&(this.root.selection.selectedCell.column-=1);break}case"ArrowRight":{this.root.selection.selectedCell&&this.root.selection.selectedCell.column0&&(this.root.selection.selectedCell.row-=1);break}case"ArrowDown":{this.root.selection.selectedCell&&this.root.selection.selectedCell.rowu.slice(a.column,c.column+1))]}else if(this.root.selection.selectedCell){const{column:a,row:c}=this.root.selection.selectedCell;r=[[this.root.data[c][a]]],i.selectedRange={from:this.root.selection.selectedCell,to:this.root.selection.selectedCell}}else return;this.root.clipboard.copy(r,i.selectedRange);return}e.code}});U(this,"handleClick",e=>{this.root.events.dispatch({type:Ve.CELL_CLICK,event:e,scroller:this})});U(this,"handleScroll",()=>{const e=this.getViewportBoundlingRect();this.root.viewport.updateValues(e),this.root.renderSheet(),this.root.renderColumnsBar(),this.root.renderRowsBar()});this.root=e;const{horizontalScroller:n,scroller:r,verticalScroller:i}=this.buildComponent();this.element=r,this.verticalScroller=i,this.horizontalScroller=n,this.element.style.height=this.root.config.view.height+"px",this.element.style.width=this.root.config.view.width+"px",this.element.style.top=this.root.columnsBarHeight+"px",this.element.style.left=this.root.rowsBarWidth+"px",this.element.tabIndex=-1,this.updateScrollerSize(),this.element.addEventListener("scroll",this.handleScroll),this.element.addEventListener("mousedown",this.handleClick),this.element.addEventListener("mousemove",this.handleMouseMove),this.element.addEventListener("mouseup",this.handleMouseUp),this.element.addEventListener("dblclick",this.handleDoubleClick),this.element.addEventListener("keydown",this.handleKeydown),this.element.addEventListener("paste",a=>{this.root.selection.selectedCell&&this.root.clipboard.paste(this.root,this.root.selection.selectedCell,a)})}setSelectingMode(e){this.isSelecting=e}getViewportBoundlingRect(){const{scrollTop:e,scrollLeft:n}=this.element,{height:r,width:i}=this.element.getBoundingClientRect(),a=e+r,c=n+i;return{top:e,left:n,bottom:a,right:c}}buildComponent(){const e=document.createElement("div"),n=document.createElement("div"),r=document.createElement("div"),i=document.createElement("div"),a=document.createElement("div");return n.style.width="0px",n.style.pointerEvents="none",r.style.pointerEvents="none",i.style.display="flex",a.appendChild(n),a.appendChild(r),i.appendChild(a),this.verticalScroller=n,this.horizontalScroller=r,e.appendChild(i),e.contentEditable="false",e.classList.add(Ft+"scroller"),{scroller:e,verticalScroller:n,horizontalScroller:r}}getActualHeight(){return this.root.config.rows.reduce((e,n)=>(e+=n.height,e),0)}getActualWidth(){return this.root.config.columns.reduce((e,n)=>(e+=n.width,e),0)}updateScrollerSize(){const e=this.getActualHeight(),n=this.getActualWidth();this.setScrollerHeight(e),this.setScrollerWidth(n)}setScrollerHeight(e){this.verticalScroller.style.height=e+"px"}setScrollerWidth(e){this.horizontalScroller.style.width=e+"px"}}class Vr{constructor(e){U(this,"fontSize",16);U(this,"fontColor","black");U(this,"background","white");U(this,"borderColor","black");U(this,"selectedBackground","#4287f5");U(this,"selectedFontColor","#ffffff");e&&Object.assign(this,e)}}class Ro{constructor(e,n){U(this,"row");U(this,"column");this.row=e,this.column=n}}class No{constructor(e){U(this,"value");U(this,"displayValue");U(this,"resultValue");U(this,"position");U(this,"style");this.value=e.value,this.displayValue=e.displayValue,this.resultValue=e.resultValue,this.position=e.position,this.style=e.style}}let $n=class{constructor(e){U(this,"value");U(this,"displayValue");U(this,"resultValue");U(this,"position");U(this,"style",null);U(this,"cellsDependsOnThisCell",[]);U(this,"dependedFromCells",[]);this.value=e.value,this.displayValue=e.displayValue,this.resultValue=e.resultValue,this.position=e.position,this.style=e.style}getSerializableCell(){return new No({displayValue:this.displayValue,position:this.position,resultValue:this.resultValue,style:this.style,value:this.value})}changeStyles(e){this.style=e}changeValues(e){Object.assign(this,e)}evalFormula(e){this.value.substring(0,1)==="="&&(this.resultValue=e.parser.parse(this.value.slice(1),{col:this.position.column,row:this.position.row}))}render(e){const n=new kt(e.config,this.position);let{x:r,y:i}=n;const{height:a,width:c}=n,{ctx:h}=e;i-=e.viewport.top,r-=e.viewport.left;const p=this.style??e.styles.cells;h.clearRect(r,i,c,a),h.fillStyle=p.background,h.strokeStyle="black",h.fillRect(r,i,c-1,a-1),h.strokeRect(r,i,c,a),h.fillStyle=p.fontColor,h.textAlign="left",h.font=`${p.fontSize}px Arial`,h.textBaseline="middle",h.fillText(this.displayValue,r+2,i+a/2)}},ia=class{constructor(e){U(this,"element");U(this,"ctx");U(this,"root");this.root=e;const n=document.createElement("canvas");n.classList.add(Ft+"sheet"),n.height=this.root.config.view.height,n.width=this.root.config.view.width,n.style.width=this.root.config.view.width+"px",n.style.height=this.root.config.view.height+"px",n.style.left="0px",this.element=n;const r=this.element.getContext("2d");if(!r)throw new Error("Enable hardware acceleration");this.ctx=r}getCellByCoords(e,n){let r=0,i=0;for(;i<=n&&(i+=this.root.config.rows[r].height,!(i>=n));)r++;let a=0,c=0;for(;c<=e&&(c+=this.root.config.columns[a].width,!(c>=e));)a++;return new Ro(r,a)}renderCell(e){const{column:n,row:r}=e;this.root.data[r][n].render(this.root)}getSelectionRange(){const{selectedCell:e,selectedRange:n}=this.root.selection;if(!(!e&&!n)){if(n){const r=Math.min(n.from.row,n.to.row),i=Math.min(n.from.column,n.to.column),a=Math.max(n.from.row,n.to.row),c=Math.max(n.from.column,n.to.column),h=new kt(this.root.config,{row:r,column:i});let p=0;for(let l=i;l<=c;l++)p+=this.root.config.columns[l].width;let u=0;for(let l=r;l<=a;l++)u+=this.root.config.rows[l].height;const o=h.x-this.root.viewport.left,s=h.y-this.root.viewport.top;return{x:o,y:s,height:u,width:p}}if(!n&&e){const r=new kt(this.root.config,e);return r.x-=this.root.viewport.left,r.y-=this.root.viewport.top,r}}}renderSelectionRange(e,n,r,i){this.ctx.save(),this.ctx.strokeStyle="#7da8ff",this.ctx.lineWidth=3,this.ctx.strokeRect(e,n,r,i),this.ctx.fillStyle="#7da8ff35",this.ctx.fillRect(e,n,r,i),this.ctx.restore()}renderSelection(){const e=this.getSelectionRange();if(!e)return;const{height:n,width:r,x:i,y:a}=e;this.renderSelectionRange(i,a,r,n)}renderSheet(){const e=this.root.viewport.firstRow,n=this.root.viewport.lastCol+3,r=this.root.viewport.lastRow+3,i=this.root.viewport.firstCol;for(let a=e;a<=r;a++)for(let c=i;c<=n&&!(!this.root.config.columns[c]||!this.root.config.rows[a]);c++)this.renderCell({column:c,row:a});this.renderSelection()}};class oa{constructor(e){U(this,"element");U(this,"root");this.root=e;const n=document.createElement("div");n.classList.add(Ft+"spreadsheet_container"),this.element=n,this.changeElementSizes(this.root.viewProps)}changeElementSizes(e){const{height:n,width:r}=e;this.element.style.width=r+this.root.rowsBarWidth+"px",this.element.style.height=n+this.root.columnsBarHeight+"px"}}class sa{constructor(e){U(this,"element");U(this,"root");U(this,"height",0);this.root=e;const n=document.createElement("div");n.classList.add(Ft+"toolbar"),this.element=n}}class Ln{constructor(e){U(this,"rows");U(this,"columns");U(this,"view",{width:800,height:600});U(this,"onCellClick",null);U(this,"onSelectonChange",null);U(this,"onCellChange",null);U(this,"onCopy");this.columns=e.columns,this.rows=e.rows,this.view=e.view,this.onCellClick=e.onCellClick??null,this.onSelectonChange=e.onSelectionChange??null,this.onCellChange=e.onCellChange??null,this.onCopy=e.onCopy??null}}class Hn{constructor(){U(this,"selectedCell",null);U(this,"selectedRange",null)}}class Ao{constructor(){U(this,"cells");this.cells=new Vr}}class Ur{constructor(e,n){U(this,"root");U(this,"top");U(this,"left");U(this,"right");U(this,"bottom");U(this,"firstRow");U(this,"lastRow");U(this,"firstCol");U(this,"lastCol");this.root=e,this.top=n.top,this.left=n.left,this.right=n.right,this.bottom=n.bottom,this.firstRow=this.getFirstRow(),this.lastCol=this.getFirstRow();//!Temp
+this.firstCol=this.getFirstRow();//!Temp
+this.lastRow=this.getLastRow(),this.updateValues({top:0,left:0,right:this.root.viewProps.width,bottom:this.root.viewProps.height})}updateValues(e){this.top=e.top,this.left=e.left,this.right=e.right,this.bottom=e.bottom,this.firstRow=this.getFirstRow(),this.lastRow=this.getLastRow(),this.firstCol=this.getFirstCol(),this.lastCol=this.getLastCol()}getFirstRow(){return this.root.cache.getRowByYCoord(this.top)}getLastRow(){return this.root.cache.getRowByYCoord(this.bottom)}getFirstCol(){return this.root.cache.getColumnByXCoord(this.left)}getLastCol(){return this.root.cache.getColumnByXCoord(this.right)}}let Gr=class{constructor(e){U(this,"width");U(this,"title");this.width=e.width,this.title=e.title}};class $r{constructor(e){U(this,"height");U(this,"title");this.height=e.height,this.title=e.title}}function Hr(t,e,n=!1){const r=[];for(let i=0;i<=t;i++){const a=[];for(let c=0;c<=e;c++){const h=n?`${i}:${c}`:"",p=new $n({displayValue:h,resultValue:h,value:h,position:{column:c,row:i},style:null});a.push(p)}r.push(a)}return r}function yo(t,e){const n=[];for(let a=0;a<=t;a++){const c=new $r({height:40,title:String(a)});n.push(c)}const r=[];for(let a=0;a<=e;a++){const c=new Gr({title:String(a),width:150});r.push(c)}return new Ln({columns:r,rows:n,view:{height:600,width:800}})}function aa(t,e){const n=Hr(t,e),r=yo(t,e);return{data:n,config:r}}class To{constructor(e){U(this,"xPos");U(this,"colIdx");this.xPos=e.xPos,this.colIdx=e.colIdx}}class wo{constructor(e){U(this,"yPos");U(this,"rowIdx");this.yPos=e.yPos,this.rowIdx=e.rowIdx}}class Co{constructor(e){U(this,"columns");U(this,"rows");this.columns=e.columns,this.rows=e.rows}getRowByYCoord(e){let n=0;for(let r=0;r=Math.min(r.from.column,r.to.column)&&e<=Math.max(r.from.column,r.to.column):!1}renderText(e,n){const{width:r,x:i}=n;this.ctx.fillStyle="black",this.ctx.textAlign="center",this.ctx.textBaseline="middle",this.ctx.font="12px Arial",this.ctx.fillText(this.root.config.columns[e].title,i+r/2-this.root.viewport.left,0+this.height/2)}renderRect(e,n){const{width:r,x:i}=n,a=this.isColumnSelected(e);this.ctx.fillStyle=a?"#c7ebff":"white",this.ctx.strokeStyle="black",this.ctx.lineWidth=1;const c=i-this.root.viewport.left;this.ctx.fillRect(c-1,0,r,this.height),this.ctx.strokeRect(c-1,0,r,this.height)}renderSingleColumn(e){const n=new kt(this.root.config,{row:0,column:e});this.renderRect(e,n),this.renderText(e,n)}renderBar(){const e=this.root.viewport.lastCol+3,n=this.root.viewport.firstCol;this.ctx.beginPath(),this.ctx.strokeStyle="black",this.ctx.lineWidth=1,this.ctx.moveTo(0,0),this.ctx.lineTo(0,this.height),this.ctx.closePath(),this.ctx.stroke();for(let r=n;r<=e&&this.root.config.columns[r];r++)this.renderSingleColumn(r)}}class la{constructor(e){U(this,"element");U(this,"ctx");U(this,"root");U(this,"width",35);U(this,"height");U(this,"resizerHeight",1);this.root=e,this.element=this.createElement();const n=this.element.getContext("2d");if(!n)throw new Error("Enable hardware acceleration");this.ctx=n,this.height=this.root.viewProps.height}createElement(){const e=document.createElement("canvas");return e.style.position="absolute",e.style.height=this.root.viewProps.height+"px",e.style.width=this.width+"px",e.style.display="block",e.style.borderTop="1px solid black",e.width=this.width,e.height=this.root.viewProps.height,e}setElementPosition(e,n){this.element.style.top=e+"px",this.element.style.left=n+"px"}isRowSelected(e){const{selectedCell:n,selectedRange:r}=this.root.selection;return n&&n.row===e?!0:r?e>=Math.min(r.from.row,r.to.row)&&e<=Math.max(r.from.row,r.to.row):!1}renderText(e,n){const{y:r,height:i}=n;this.ctx.fillStyle="black",this.ctx.textAlign="center",this.ctx.textBaseline="middle",this.ctx.font="12px Arial",this.ctx.fillText(this.root.config.rows[e].title,this.width/2,r-this.root.viewport.top+i/2)}renderRect(e,n){const{y:r,height:i}=n,a=this.isRowSelected(e);this.ctx.fillStyle=a?"#c7ebff":"white",this.ctx.strokeStyle="black",this.ctx.lineWidth=this.resizerHeight;const c=r-this.root.viewport.top;this.ctx.fillRect(0,c-1,this.width,i),this.ctx.strokeRect(0,c-1,this.width,i)}renderSingleRow(e){const n=new kt(this.root.config,{column:0,row:e});this.renderRect(e,n),this.renderText(e,n)}renderBar(){const e=this.root.viewport.lastRow+3,n=this.root.viewport.firstRow;this.ctx.beginPath(),this.ctx.moveTo(0,0),this.ctx.strokeStyle="black",this.ctx.lineWidth=16,this.ctx.lineTo(35,0),this.ctx.closePath(),this.ctx.stroke();for(let r=n;r<=e&&this.root.config.rows[r];r++)this.renderSingleRow(r)}}class ua{constructor(e){U(this,"saved",null);U(this,"root");this.root=e}copy(e,n){const r=e.map(i=>i.map(a=>a.displayValue).join(" ")).join(`
+`);this.saved=e,navigator.clipboard.writeText(r),this.root.events.dispatch({type:Ve.COPY_CELLS,data:e,dataAsString:r,range:n})}paste(e,{column:n,row:r},i){if(!this.saved){if(!i.clipboardData)return;const h=i.clipboardData.getData("text");try{const u=h.split(`
+`).map(l=>l.split(" ")).map(l=>l.map(f=>{const v={displayValue:f,position:{column:n,row:r},resultValue:f,style:new Vr,value:f};return new $n(v)})),o=u.length,s=u[0]?u[0].length:0;for(let l=0;l{i[n[o]]=o});class a{constructor(){this.Types=n,this.type2Number={number:n.NUMBER,boolean:n.BOOLEAN,string:n.STRING,object:-1}}checkFunctionResult(s){if(typeof s==="number"){if(isNaN(s))return t.VALUE;if(!isFinite(s))return t.NUM}return s??t.NULL}flattenDeep(s){return s.reduce((l,f)=>Array.isArray(f)?l.concat(this.flattenDeep(f)):l.concat(f),[])}acceptNumber(s,l=!0,f=!0){if(s instanceof t)return s;let v;if(typeof s=="number")v=s;else if(typeof s=="boolean")if(f)v=Number(s);else throw t.VALUE;else if(typeof s=="string"){if(s.length===0||(v=Number(s),v!==v))throw t.VALUE}else if(Array.isArray(s))if(l)v=this.acceptNumber(s[0][0]);else if(s[0].length===1)v=this.acceptNumber(s[0][0]);else throw t.VALUE;else throw Error("Unknown type in FormulaHelpers.acceptNumber");return v}flattenParams(s,l,f,v,d=null,g=1){if(s.length{const{isCellRef:A,isRangeRef:m,isArray:N}=E,y=E.value instanceof e,R=!A&&!m&&!N&&!y,T={isLiteral:R,isCellRef:A,isRangeRef:m,isArray:N,isUnion:y};if(R)E.omitted?E=d:E=this.accept(E,l,d),v(E,T);else if(A)v(E.value,T);else if(y){if(!f)throw t.VALUE;E=E.value.data,E=this.flattenDeep(E),E.forEach(w=>{v(w,T)})}else(m||N)&&(E=this.flattenDeep(E.value),E.forEach(w=>{v(w,T)}))})}accept(s,l=null,f,v=!0,d=!1){if(Array.isArray(l)&&(l=l[0]),s==null&&f===void 0)throw t.ARG_MISSING([l]);if(s==null)return f;if(typeof s!="object"||Array.isArray(s))return s;const g=s.isArray;if(s.value!=null&&(s=s.value),l==null)return s;if(s instanceof t)throw s;if(l===n.ARRAY){if(Array.isArray(s))return v?this.flattenDeep(s):s;if(s instanceof e)throw t.VALUE;if(d)return v?[s]:[[s]];throw t.VALUE}else if(l===n.COLLECTIONS)return s;g&&(s=s[0][0]);const E=this.type(s);if(l===n.STRING)E===n.BOOLEAN?s=s?"TRUE":"FALSE":s=`${s}`;else if(l===n.BOOLEAN){if(E===n.STRING)throw t.VALUE;E===n.NUMBER&&(s=!!s)}else if(l===n.NUMBER)s=this.acceptNumber(s,!1);else if(l===n.NUMBER_NO_BOOLEAN)s=this.acceptNumber(s,!1,!1);else throw t.VALUE;return s}type(s){let l=this.type2Number[typeof s];return l===-1&&(Array.isArray(s)?l=n.ARRAY:s.ref?s.ref.from?l=n.RANGE_REF:l=n.CELL_REF:s instanceof e&&(l=n.COLLECTIONS)),l}isRangeRef(s){return s.ref&&s.ref.from}isCellRef(s){return s.ref&&!s.ref.from}retrieveRanges(s,l,f){return f=u.extend(l,f),l=this.retrieveArg(s,l),l=c.accept(l,n.ARRAY,void 0,!1,!0),f!==l?(f=this.retrieveArg(s,f),f=c.accept(f,n.ARRAY,void 0,!1,!0)):f=l,[l,f]}retrieveArg(s,l){if(l===null)return{value:0,isArray:!1,omitted:!0};const f=s.utils.extractRefValue(l);return{value:f.val,isArray:f.isArray,ref:l.ref}}}const c=new a,h={isWildCard:o=>typeof o=="string"?/[*?]/.test(o):!1,toRegex:(o,s)=>RegExp(o.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/([^~]??)[?]/g,"$1.").replace(/([^~]??)[*]/g,"$1.*").replace(/~([?*])/g,"$1"),s)},p={parse:o=>{const s=typeof o;if(s==="string"){const l=o.toUpperCase();if(l==="TRUE"||l==="FALSE")return{op:"=",value:l==="TRUE"};const f=o.match(/(<>|>=|<=|>|<|=)(.*)/);if(f){let v=f[1],d;if(isNaN(f[2])){const g=f[2].toUpperCase();if(g==="TRUE"||g==="FALSE")d=g==="TRUE";else if(/#NULL!|#DIV\/0!|#VALUE!|#NAME\?|#NUM!|#N\/A|#REF!/.test(f[2]))d=new t(f[2]);else if(d=f[2],h.isWildCard(d))return{op:"wc",value:h.toRegex(d),match:v==="="}}else d=Number(f[2]);return{op:v,value:d}}else return h.isWildCard(o)?{op:"wc",value:h.toRegex(o),match:!0}:{op:"=",value:o}}else{if(s==="boolean"||s==="number"||Array.isArray(o)||o instanceof t)return{op:"=",value:o};throw Error(`Criteria.parse: type ${typeof o} not support`)}}},u={columnNumberToName:o=>{let s=o,l="",f=0;for(;s>0;)f=(s-1)%26,l=String.fromCharCode("A".charCodeAt(0)+f)+l,s=Math.floor((s-f)/26);return l},columnNameToNumber:o=>{o=o.toUpperCase();const s=o.length;let l=0;for(let f=0;f{if(s==null)return o;let l,f;if(c.isCellRef(o))l=0,f=0;else if(c.isRangeRef(o))l=o.ref.to.row-o.ref.from.row,f=o.ref.to.col-o.ref.from.col;else throw Error("Address.extend should not reach here.");return c.isCellRef(s)?(l>0||f>0)&&(s={ref:{from:{col:s.ref.col,row:s.ref.row},to:{row:s.ref.row+l,col:s.ref.col+f}}}):(s.ref.to.row=s.ref.from.row+l,s.ref.to.col=s.ref.from.col+f),s}};return cr={FormulaHelpers:c,Types:n,ReversedTypes:i,Factorials:r,WildCard:h,Criteria:p,Address:u},cr}var lr,ui;function he(){if(ui)return lr;ui=1;class t extends Error{constructor(n,r,i){if(super(r),r==null&&i==null&&t.errorMap.has(n))return t.errorMap.get(n);r==null&&i==null?(this._error=n,t.errorMap.set(n,this)):this._error=n,this.details=i}get error(){return this._error}get name(){return this._error}equals(n){return n instanceof t&&n._error===this._error}toString(){return this._error}}return t.errorMap=new Map,t.DIV0=new t("#DIV/0!"),t.NA=new t("#N/A"),t.NAME=new t("#NAME?"),t.NULL=new t("#NULL!"),t.NUM=new t("#NUM!"),t.REF=new t("#REF!"),t.VALUE=new t("#VALUE!"),t.NOT_IMPLEMENTED=e=>new t("#NAME?",`Function ${e} is not implemented.`),t.TOO_MANY_ARGS=e=>new t("#N/A",`Function ${e} has too many arguments.`),t.ARG_MISSING=e=>{const{Types:n}=ge();return new t("#N/A",`Argument type ${e.map(r=>n[r]).join(", ")} is missing.`)},t.ERROR=(e,n)=>new t("#ERROR!",e,n),lr=t,lr}let _e=class{};_e.version="0.10.3";function Vt(t){let e="",n=t.length-1;for(;n>=0;)e+=t.charAt(n--);return e}function ke(t,e){let n="";for(;n.length=e?n:ke("0",e-n.length)+n}function ur(t,e){let n=""+t;return n.length>=e?n:ke(" ",e-n.length)+n}function hn(t,e){let n=""+t;return n.length>=e?n:n+ke(" ",e-n.length)}function da(t,e){let n=""+Math.round(t);return n.length>=e?n:ke("0",e-n.length)+n}function va(t,e){let n=""+t;return n.length>=e?n:ke("0",e-n.length)+n}const fi=Math.pow(2,32);function Gt(t,e){if(t>fi||t<-fi)return da(t,e);const n=Math.round(t);return va(n,e)}function _n(t,e){return e=e||0,t.length>=7+e&&(t.charCodeAt(e)|32)===103&&(t.charCodeAt(e+1)|32)===101&&(t.charCodeAt(e+2)|32)===110&&(t.charCodeAt(e+3)|32)===101&&(t.charCodeAt(e+4)|32)===114&&(t.charCodeAt(e+5)|32)===97&&(t.charCodeAt(e+6)|32)===108}const hi=[["Sun","Sunday"],["Mon","Monday"],["Tue","Tuesday"],["Wed","Wednesday"],["Thu","Thursday"],["Fri","Friday"],["Sat","Saturday"]],fr=[["J","Jan","January"],["F","Feb","February"],["M","Mar","March"],["A","Apr","April"],["M","May","May"],["J","Jun","June"],["J","Jul","July"],["A","Aug","August"],["S","Sep","September"],["O","Oct","October"],["N","Nov","November"],["D","Dec","December"]];function Oo(t){t[0]="General",t[1]="0",t[2]="0.00",t[3]="#,##0",t[4]="#,##0.00",t[9]="0%",t[10]="0.00%",t[11]="0.00E+00",t[12]="# ?/?",t[13]="# ??/??",t[14]="m/d/yy",t[15]="d-mmm-yy",t[16]="d-mmm",t[17]="mmm-yy",t[18]="h:mm AM/PM",t[19]="h:mm:ss AM/PM",t[20]="h:mm",t[21]="h:mm:ss",t[22]="m/d/yy h:mm",t[37]="#,##0 ;(#,##0)",t[38]="#,##0 ;[Red](#,##0)",t[39]="#,##0.00;(#,##0.00)",t[40]="#,##0.00;[Red](#,##0.00)",t[45]="mm:ss",t[46]="[h]:mm:ss",t[47]="mmss.0",t[48]="##0.0E+0",t[49]="@",t[56]='"上午/下午 "hh"時"mm"分"ss"秒 "',t[65535]="General"}const _t={};Oo(_t);function pn(t,e,n){const r=t<0?-1:1;let i=t*r,a=0,c=1,h=0,p=1,u=0,o=0,s=Math.floor(i);for(;ue&&(u>e?(o=p,h=a):(o=u,h=c)),!n)return[0,r*h,o];const l=Math.floor(r*h/o);return[l,r*h-l*o,o]}function Zt(t,e,n){if(t>2958465||t<0)return null;let r=t|0,i=Math.floor(86400*(t-r)),a=0,c=[];const h={D:r,T:i,u:86400*(t-r)-i,y:0,m:0,d:0,H:0,M:0,S:0,q:0};if(Math.abs(h.u)<1e-6&&(h.u=0),e&&e.date1904&&(r+=1462),h.u>.9999&&(h.u=0,++i===86400&&(h.T=i=0,++r,++h.D)),r===60)c=n?[1317,10,29]:[1900,2,29],a=3;else if(r===0)c=n?[1317,8,29]:[1900,1,0],a=6;else{r>60&&--r;const p=new Date(1900,0,1);p.setDate(p.getDate()+r-1),c=[p.getFullYear(),p.getMonth()+1,p.getDate()],a=p.getDay(),r<60&&(a=(a+6)%7),n&&(a=ma())}return h.y=c[0],h.m=c[1],h.d=c[2],h.S=i%60,i=Math.floor(i/60),h.M=i%60,i=Math.floor(i/60),h.H=i,h.q=a,h}_e.parse_date_code=Zt;const Mo=new Date(1899,11,31,0,0,0),ga=Mo.getTime(),Ea=new Date(1900,2,1,0,0,0);function Uo(t,e){let n=t.getTime();return e?n-=1461*24*60*60*1e3:t>=Ea&&(n+=24*60*60*1e3),(n-(ga+(t.getTimezoneOffset()-Mo.getTimezoneOffset())*6e4))/(24*60*60*1e3)}function Lo(t){return t.toString(10)}_e._general_int=Lo;const _o=function(){const e=/\.(\d*[1-9])0+$/,n=/\.0*$/,r=/\.(\d*[1-9])0+/,i=/\.0*[Ee]/,a=/(E[+-])(\d)$/;function c(o){const s=o<0?12:11;let l=u(o.toFixed(12));return l.length<=s||(l=o.toPrecision(10),l.length<=s)?l:o.toExponential(5)}function h(o){let s=o.toFixed(11).replace(e,".$1");return s.length>(o<0?12:11)&&(s=o.toPrecision(6)),s}function p(o){for(let s=0;s!==o.length;++s)if((o.charCodeAt(s)|32)===101)return o.replace(r,".$1").replace(i,"E").replace("e","E").replace(a,"$10$2");return o}function u(o){return o.indexOf(".")>-1?o.replace(n,"").replace(e,".$1"):o}return function(s){let l=Math.floor(Math.log(Math.abs(s))*Math.LOG10E),f;return l>=-4&&l<=-1?f=s.toPrecision(10+l):Math.abs(l)<=9?f=c(s):l===10?f=s.toFixed(10).substr(0,12):f=h(s),u(p(f))}}();_e._general_num=_o;function Pn(t,e){switch(typeof t){case"string":return t;case"boolean":return t?"TRUE":"FALSE";case"number":return(t|0)===t?Lo(t):_o(t);case"undefined":return"";case"object":if(t==null)return"";if(t instanceof Date)return Bo(14,Uo(t,e&&e.date1904),e)}throw new Error("unsupported value in General format: "+t)}_e._general=Pn;function ma(){return 0}function Ra(t,e,n,r){let i="",a=0,c=0,h=n.y,p,u=0;switch(t){case 98:h=n.y+543;case 121:switch(e.length){case 1:case 2:p=h%100,u=2;break;default:p=h%1e4,u=4;break}break;case 109:switch(e.length){case 1:case 2:p=n.m,u=e.length;break;case 3:return fr[n.m-1][1];case 5:return fr[n.m-1][0];default:return fr[n.m-1][2]}break;case 100:switch(e.length){case 1:case 2:p=n.d,u=e.length;break;case 3:return hi[n.q][0];default:return hi[n.q][1]}break;case 104:switch(e.length){case 1:case 2:p=1+(n.H+11)%12,u=e.length;break;default:throw"bad hour format: "+e}break;case 72:switch(e.length){case 1:case 2:p=n.H,u=e.length;break;default:throw"bad hour format: "+e}break;case 77:switch(e.length){case 1:case 2:p=n.M,u=e.length;break;default:throw"bad minute format: "+e}break;case 115:if(e!=="s"&&e!=="ss"&&e!==".0"&&e!==".00"&&e!==".000")throw"bad second format: "+e;return n.u===0&&(e==="s"||e==="ss")?Xe(n.S,e.length):(r>=2?c=r===3?1e3:100:c=r===1?10:1,a=Math.round(c*(n.S+n.u)),a>=60*c&&(a=0),e==="s"?a===0?"0":""+a/c:(i=Xe(a,2+r),e==="ss"?i.substr(0,2):"."+i.substr(2,e.length-1)));case 90:switch(e){case"[h]":case"[hh]":p=n.D*24+n.H;break;case"[m]":case"[mm]":p=(n.D*24+n.H)*60+n.M;break;case"[s]":case"[ss]":p=((n.D*24+n.H)*60+n.M)*60+Math.round(n.S+n.u);break;default:throw"bad abstime format: "+e}u=e.length===3?1:2;break;case 101:p=h,u=1}return u>0?Xe(p,u):""}function Nt(t){if(t.length<=3)return t;let n=t.length%3,r=t.substr(0,n);for(;n!==t.length;n+=3)r+=(r.length>0?",":"")+t.substr(n,3);return r}const ht=function(){const e=/%/g;function n(y,R,T){const w=R.replace(e,""),C=R.length-w.length;return ht(y,w,T*Math.pow(10,2*C))+ke("%",C)}function r(y,R,T){let w=R.length-1;for(;R.charCodeAt(w-1)===44;)--w;return ht(y,R.substr(0,w),T/Math.pow(10,3*(R.length-w)))}function i(y,R){let T,w=y.indexOf("E")-y.indexOf(".")-1;if(y.match(/^#+0.0E\+0$/)){if(R===0)return"0.0E+0";if(R<0)return"-"+i(y,-R);let C=y.indexOf(".");C===-1&&(C=y.indexOf("E"));let M=Math.floor(Math.log(R)*Math.LOG10E)%C;if(M<0&&(M+=C),T=(R/Math.pow(10,M)).toPrecision(w+1+(C+M)%C),T.indexOf("e")===-1){const _=Math.floor(Math.log(R)*Math.LOG10E);for(T.indexOf(".")===-1?T=T.charAt(0)+"."+T.substr(1)+"E+"+(_-T.length+M):T+="E+"+(_-M);T.substr(0,2)==="0.";)T=T.charAt(0)+T.substr(2,C)+"."+T.substr(2+C),T=T.replace(/^0+([1-9])/,"$1").replace(/^0+\./,"0.");T=T.replace(/\+-/,"-")}T=T.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/,function(_,W,F,S){return W+F+S.substr(0,(C+M)%C)+"."+S.substr(M)+"E"})}else T=R.toExponential(w);return y.match(/E\+00$/)&&T.match(/e[+-]\d$/)&&(T=T.substr(0,T.length-1)+"0"+T.charAt(T.length-1)),y.match(/E\-/)&&T.match(/e\+/)&&(T=T.replace(/e\+/,"e")),T.replace("e","E")}const a=/# (\?+)( ?)\/( ?)(\d+)/;function c(y,R,T){const w=parseInt(y[4],10),C=Math.round(R*w),M=Math.floor(C/w);let _=C-M*w,W=w;return T+(M===0?"":""+M)+" "+(_===0?ke(" ",y[1].length+1+y[4].length):ur(_,y[1].length)+y[2]+"/"+y[3]+Xe(W,y[4].length))}function h(y,R,T){return T+(R===0?"":""+R)+ke(" ",y[1].length+2+y[4].length)}const p=/^#*0*\.([0#]+)/,u=/\).*[0#]/,o=/\(###\) ###\\?-####/;function s(y){let R="",T;for(let w=0;w!==y.length;++w)switch(T=y.charCodeAt(w)){case 35:break;case 63:R+=" ";break;case 48:R+="0";break;default:R+=String.fromCharCode(T)}return R}function l(y,R){const T=Math.pow(10,R);return""+Math.round(y*T)/T}function f(y,R){return R<(""+Math.round((y-Math.floor(y))*Math.pow(10,R))).length?0:Math.round((y-Math.floor(y))*Math.pow(10,R))}function v(y,R){return R<(""+Math.round((y-Math.floor(y))*Math.pow(10,R))).length?1:0}function d(y){return y<2147483647&&y>-2147483648?""+(y>=0?y|0:y-1|0):""+Math.floor(y)}function g(y,R,T){if(y.charCodeAt(0)===40&&!R.match(u)){const G=R.replace(/\( */,"").replace(/ \)/,"").replace(/\)/,"");return T>=0?g("n",G,T):"("+g("n",G,-T)+")"}if(R.charCodeAt(R.length-1)===44)return r(y,R,T);if(R.indexOf("%")!==-1)return n(y,R,T);if(R.indexOf("E")!==-1)return i(R,T);if(R.charCodeAt(0)===36)return"$"+g(y,R.substr(R.charAt(1)==" "?2:1),T);let w,C,M,_,W=Math.abs(T),F=T<0?"-":"";if(R.match(/^00+$/))return F+Gt(W,R.length);if(R.match(/^[#?]+$/))return w=Gt(T,0),w==="0"&&(w=""),w.length>R.length?w:s(R.substr(0,R.length-w.length))+w;if(C=R.match(a))return c(C,W,F);if(R.match(/^#+0+$/))return F+Gt(W,R.length-R.indexOf("0"));if(C=R.match(p))return w=l(T,C[1].length).replace(/^([^\.]+)$/,"$1."+s(C[1])).replace(/\.$/,"."+s(C[1])).replace(/\.(\d*)$/,function(G,J){return"."+J+ke("0",s(C[1]).length-J.length)}),R.indexOf("0.")!==-1?w:w.replace(/^0\./,".");if(R=R.replace(/^#+([0.])/,"$1"),C=R.match(/^(0*)\.(#*)$/))return F+l(W,C[2].length).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,C[1].length?"0.":".");if(C=R.match(/^#{1,3},##0(\.?)$/))return F+Nt(Gt(W,0));if(C=R.match(/^#,##0\.([#0]*0)$/))return T<0?"-"+g(y,R,-T):Nt(""+(Math.floor(T)+v(T,C[1].length)))+"."+Xe(f(T,C[1].length),C[1].length);if(C=R.match(/^#,#*,#0/))return g(y,R.replace(/^#,#*,/,""),T);if(C=R.match(/^([0#]+)(\\?-([0#]+))+$/))return w=Vt(g(y,R.replace(/[\\-]/g,""),T)),M=0,Vt(Vt(R.replace(/\\/g,"")).replace(/[0#]/g,function(G){return M=0?N("n",G,T):"("+N("n",G,-T)+")"}if(R.charCodeAt(R.length-1)===44)return E(y,R,T);if(R.indexOf("%")!==-1)return A(y,R,T);if(R.indexOf("E")!==-1)return m(R,T);if(R.charCodeAt(0)===36)return"$"+N(y,R.substr(R.charAt(1)==" "?2:1),T);let w,C,M,_,W=Math.abs(T),F=T<0?"-":"";if(R.match(/^00+$/))return F+Xe(W,R.length);if(R.match(/^[#?]+$/))return w=""+T,T===0&&(w=""),w.length>R.length?w:s(R.substr(0,R.length-w.length))+w;if(C=R.match(a))return h(C,W,F);if(R.match(/^#+0+$/))return F+Xe(W,R.length-R.indexOf("0"));if(C=R.match(p))return w=(""+T).replace(/^([^\.]+)$/,"$1."+s(C[1])).replace(/\.$/,"."+s(C[1])),w=w.replace(/\.(\d*)$/,function(G,J){return"."+J+ke("0",s(C[1]).length-J.length)}),R.indexOf("0.")!==-1?w:w.replace(/^0\./,".");if(R=R.replace(/^#+([0.])/,"$1"),C=R.match(/^(0*)\.(#*)$/))return F+(""+W).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,C[1].length?"0.":".");if(C=R.match(/^#{1,3},##0(\.?)$/))return F+Nt(""+W);if(C=R.match(/^#,##0\.([#0]*0)$/))return T<0?"-"+N(y,R,-T):Nt(""+T)+"."+ke("0",C[1].length);if(C=R.match(/^#,#*,#0/))return N(y,R.replace(/^#,#*,/,""),T);if(C=R.match(/^([0#]+)(\\?-([0#]+))+$/))return w=Vt(N(y,R.replace(/[\\-]/g,""),T)),M=0,Vt(Vt(R.replace(/\\/g,"")).replace(/[0#]/g,function(G){return M-1||n=="\\"&&t.charAt(e+1)=="-"&&"0#".indexOf(t.charAt(e+2))>-1););break;case"?":for(;t.charAt(++e)===n;);break;case"*":++e,(t.charAt(e)===" "||t.charAt(e)==="*")&&++e;break;case"(":case")":++e;break;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":for(;e-1;);break;case" ":++e;break;default:++e;break}return!1}_e.is_date=xo;function So(t,e,n,r){let i=[],a="",c=0,h="",p="t",u,o,s,l="H";for(;c=12?"P":"A"),w.t="T",l="h",c+=3):t.substr(c,5).toUpperCase()==="AM/PM"?(u!=null&&(w.v=u.H>=12?"PM":"AM"),w.t="T",c+=5,l="h"):(w.t="t",++c),u==null&&w.t==="T")return"";i[i.length]=w,p=h;break;case"[":for(a=h;t.charAt(c++)!=="]"&&c-1&&(a=(a.match(/\$([^-\[\]]*)/)||[])[1]||"$",xo(t)||(i[i.length]={t:"t",v:a}));break;case".":if(u!=null){for(a=h;++c-1||h=="\\"&&t.charAt(c+1)=="-"&&c-1;)a+=h;i[i.length]={t:"n",v:a};break;case"?":for(a=h;t.charAt(++c)===h;)a+=h;i[i.length]={t:h,v:a},p=h;break;case"*":++c,(t.charAt(c)===" "||t.charAt(c)==="*")&&++c;break;case"(":case")":i[i.length]={t:r===1||typeof e=="number"&&e<0?"t":h,v:h},++c;break;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":for(a=h;c-1;)a+=t.charAt(c);i[i.length]={t:"D",v:a};break;case" ":i[i.length]={t:h,v:h},++c;break;default:if(",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP".indexOf(h)===-1)throw new Error("unrecognized character "+h+" in "+t);i[i.length]={t:"t",v:h},++c;break}let f=0,v=0,d;for(c=i.length-1,p="t";c>=0;--c)switch(i[c].t){case"h":case"H":i[c].t=l,p="h",f<1&&(f=1);break;case"s":(d=i[c].v.match(/\.0+$/))&&(v=Math.max(v,d[0].length-1)),f<3&&(f=3);case"d":case"y":case"M":case"e":p=i[c].t;break;case"m":p==="s"&&(i[c].t="M",f<2&&(f=2));break;case"X":break;case"Z":f<1&&i[c].v.match(/[Hh]/)&&(f=1),f<2&&i[c].v.match(/[Mm]/)&&(f=2),f<3&&i[c].v.match(/[Ss]/)&&(f=3)}switch(f){case 0:break;case 1:u.u>=.5&&(u.u=0,++u.S),u.S>=60&&(u.S=0,++u.M),u.M>=60&&(u.M=0,++u.H);break;case 2:u.u>=.5&&(u.u=0,++u.S),u.S>=60&&(u.S=0,++u.M);break}let g="",E;for(c=0;c0){g.charCodeAt(0)===40?(m=e<0&&g.charCodeAt(0)===45?-e:e,N=ht("(",g,m)):(m=e<0&&r>1?-e:e,N=ht("n",g,m),m<0&&i[0]&&i[0].t==="t"&&(N=N.substr(1),i[0].v="-"+i[0].v)),E=N.length-1;let R=i.length;for(c=0;c-1){R=c;break}let T=i.length;if(R===i.length&&N.indexOf("E")===-1){for(c=i.length-1;c>=0;--c)i[c]==null||"n?(".indexOf(i[c].t)===-1||(E>=i[c].v.length-1?(E-=i[c].v.length,i[c].v=N.substr(E+1,i[c].v.length)):E<0?i[c].v="":(i[c].v=N.substr(0,E+1),E=-1),i[c].t="t",T=c);E>=0&&T=0;--c)if(!(i[c]==null||"n?(".indexOf(i[c].t)===-1)){for(o=i[c].v.indexOf(".")>-1&&c===R?i[c].v.indexOf(".")-1:i[c].v.length-1,A=i[c].v.substr(o+1);o>=0;--o)E>=0&&(i[c].v.charAt(o)==="0"||i[c].v.charAt(o)==="#")&&(A=N.charAt(E--)+A);i[c].v=A,i[c].t="t",T=c}for(E>=0&&T-1&&c===R?i[c].v.indexOf(".")+1:0,A=i[c].v.substr(0,o);o-1&&(m=r>1&&e<0&&c>0&&i[c-1].v==="-"?-e:e,i[c].v=ht(i[c].t,i[c].v,m),i[c].t="t");let y="";for(c=0;c!==i.length;++c)i[c]!=null&&(y+=i[c].v);return y}_e._eval=So;const pi=/\[[=<>]/,di=/\[([=<>]*)(-?\d+\.?\d*)\]/;function vi(t,e){if(e==null)return!1;const n=parseFloat(e[2]);switch(e[1]){case"=":if(t===n)return!0;break;case">":if(t>n)return!0;break;case"<":if(t":if(t!==n)return!0;break;case">=":if(t>=n)return!0;break;case"<=":if(t<=n)return!0;break}return!1}function Na(t,e){let n=Po(t),r=n.length,i=n[r-1].indexOf("@");if(r<4&&i>-1&&--r,n.length>4)throw new Error("cannot find right format for |"+n.join("|")+"|");if(typeof e!="number")return[4,n.length===4||i>-1?n[n.length-1]:"@"];switch(n.length){case 1:n=i>-1?["General","General","General",n[0]]:[n[0],n[0],n[0],"@"];break;case 2:n=i>-1?[n[0],n[0],n[0],n[1]]:[n[0],n[1],n[0],"@"];break;case 3:n=i>-1?[n[0],n[1],n[0],n[2]]:[n[0],n[1],n[2],"@"];break}const a=e>0?n[0]:e<0?n[1]:n[2];if(n[0].indexOf("[")===-1&&n[1].indexOf("[")===-1)return[r,a];if(n[0].match(pi)!=null||n[1].match(pi)!=null){const c=n[0].match(di),h=n[1].match(di);return vi(e,c)?[r,n[0]]:vi(e,h)?[r,n[1]]:[r,n[c!=null&&h!=null?2:1]]}return[r,a]}function Bo(t,e,n){n==null&&(n={});let r="";switch(typeof t){case"string":t==="m/d/yy"&&n.dateNF?r=n.dateNF:r=t;break;case"number":t===14&&n.dateNF?r=n.dateNF:r=(n.table!=null?n.table:_t)[t];break}if(_n(r,0))return Pn(e,n);e instanceof Date&&(e=Uo(e,n.date1904));const i=Na(r,e);if(_n(i[1]))return Pn(e,n);if(e===!0)e="TRUE";else if(e===!1)e="FALSE";else if(e===""||e==null)return"";return So(i[1],e,n,i[0])}function Fo(t,e){if(typeof e!="number"){e=+e||-1;for(let n=0;n<392;++n){if(_t[n]===void 0){e<0&&(e=n);continue}if(_t[n]===t){e=n;break}}e<0&&(e=391)}return _t[e]=t,e}_e.load=Fo;_e._table=_t;_e.get_table=function(){return _t};_e.load_table=function(e){for(let n=0;n!==392;++n)e[n]!==void 0&&Fo(e[n],n)};_e.init_table=Oo;_e.format=Bo;var bo=_e,Do={exports:{}};(function(t){const e="ศูนย์บาทถ้วน",n=["","หนึ่ง","สอง","สาม","สี่","ห้า","หก","เจ็ด","แปด","เก้า"],r=["","สิบ","ร้อย","พัน","หมื่น","แสน","ล้าน"];function i(p){let u="";const o=p.length,s=7;if(o>s){const l=o-s+1,f=p.slice(0,l),v=p.slice(l);return i(f)+"ล้าน"+i(v)}else for(let l=0;l0&&(u+=n[f]+r[o-l-1])}return u}function a(p){let u=p;u=u.replace("หนึ่งสิบ","สิบ"),u=u.replace("สองสิบ","ยี่สิบ");const o=5;return u.length>o&&u.length-u.lastIndexOf("หนึ่ง")===o&&(u=u.substr(0,u.length-o)+"เอ็ด"),u}function c(p,u){let o="";return p===""&&u===""?o=e:p!==""&&u===""?o=p+"บาทถ้วน":p===""&&u!==""?o=u+"สตางค์":o=p+"บาท"+u+"สตางค์",o}function h(p){let u=e;if(isNaN(p)||p>=Number.MAX_SAFE_INTEGER)return u;const o=Math.floor(p).toString(),s=Math.round(p%1*100).toString(),l=Array.from(o).map(Number),f=Array.from(s).map(Number);let v=i(l),d=i(f);return v=a(v),d=a(d),u=c(v,d),u}t.exports!=null&&(t.exports=h)})(Do);var Aa=Do.exports;const Ce=he(),{FormulaHelpers:ya,Types:Y,WildCard:gi}=ge(),q=ya,hr=bo,Ta=Aa,Ei={latin:{halfRE:/[!-~]/g,fullRE:/[!-~]/g,delta:65248},hangul1:{halfRE:/[ᄀ-ᄒ]/g,fullRE:/[ᆨ-ᇂ]/g,delta:-60921},hangul2:{halfRE:/[ᅡ-ᅵ]/g,fullRE:/[ᅡ-ᅵ]/g,delta:-61025},kana:{delta:0,half:"。「」、・ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙゚",full:"。「」、・ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゛゜"},extras:{delta:0,half:"¢£¬¯¦¥₩ |←↑→↓■°",full:"¢£¬ ̄¦¥₩ │←↑→↓■○"}},wa=t=>e=>t.delta?String.fromCharCode(e.charCodeAt(0)+t.delta):[...t.full][[...t.half].indexOf(e)],Ca=t=>e=>t.delta?String.fromCharCode(e.charCodeAt(0)-t.delta):[...t.half][[...t.full].indexOf(e)],Vo=(t,e)=>t[e+"RE"]||new RegExp("["+t[e]+"]","g"),Go=Object.keys(Ei).map(t=>Ei[t]),Ia=t=>Go.reduce((e,n)=>e.replace(Vo(n,"half"),wa(n)),t),Oa=t=>Go.reduce((e,n)=>e.replace(Vo(n,"full"),Ca(n)),t),ft={ASC:t=>(t=q.accept(t,Y.STRING),Oa(t)),BAHTTEXT:t=>{t=q.accept(t,Y.NUMBER);try{return Ta(t)}catch(e){throw Error(`Error in https://github.com/jojoee/bahttext
+${e.toString()}`)}},CHAR:t=>{if(t=q.accept(t,Y.NUMBER),t>255||t<1)throw Ce.VALUE;return String.fromCharCode(t)},CLEAN:t=>(t=q.accept(t,Y.STRING),t.replace(/[\x00-\x1F]/g,"")),CODE:t=>{if(t=q.accept(t,Y.STRING),t.length===0)throw Ce.VALUE;return t.charCodeAt(0)},CONCAT:(...t)=>{let e="";return q.flattenParams(t,Y.STRING,!1,n=>{n=q.accept(n,Y.STRING),e+=n}),e},CONCATENATE:(...t)=>{let e="";if(t.length===0)throw Error("CONCATENATE need at least one argument.");return t.forEach(n=>{n=q.accept(n,Y.STRING),e+=n}),e},DBCS:t=>(t=q.accept(t,Y.STRING),Ia(t)),DOLLAR:(t,e)=>{t=q.accept(t,Y.NUMBER),e=q.accept(e,Y.NUMBER,2);const n=Array(e).fill("0").join("");return hr.format(`$#,##0.${n}_);($#,##0.${n})`,t).trim()},EXACT:(t,e)=>(t=q.accept(t,[Y.STRING]),e=q.accept(e,[Y.STRING]),t===e),FIND:(t,e,n)=>{if(t=q.accept(t,Y.STRING),e=q.accept(e,Y.STRING),n=q.accept(n,Y.NUMBER,1),n<1||n>e.length)throw Ce.VALUE;const r=e.indexOf(t,n-1);if(r===-1)throw Ce.VALUE;return r+1},FINDB:(...t)=>ft.FIND(...t),FIXED:(t,e,n)=>{t=q.accept(t,Y.NUMBER),e=q.accept(e,Y.NUMBER,2),n=q.accept(n,Y.BOOLEAN,!1);const r=Array(e).fill("0").join(""),i=n?"":"#,";return hr.format(`${i}##0.${r}_);(${i}##0.${r})`,t).trim()},LEFT:(t,e)=>{if(t=q.accept(t,Y.STRING),e=q.accept(e,Y.NUMBER,1),e<0)throw Ce.VALUE;return e>t.length?t:t.slice(0,e)},LEFTB:(...t)=>ft.LEFT(...t),LEN:t=>(t=q.accept(t,Y.STRING),t.length),LENB:(...t)=>ft.LEN(...t),LOWER:t=>(t=q.accept(t,Y.STRING),t.toLowerCase()),MID:(t,e,n)=>{if(t=q.accept(t,Y.STRING),e=q.accept(e,Y.NUMBER),n=q.accept(n,Y.NUMBER),e>t.length)return"";if(e<1||n<1)throw Ce.VALUE;return t.slice(e-1,e+n-1)},MIDB:(...t)=>ft.MID(...t),NUMBERVALUE:(t,e,n)=>{if(t=q.accept(t,Y.STRING),e=q.accept(e,Y.STRING,"."),n=q.accept(n,Y.STRING,","),t.length===0)return 0;if(e.length===0||n.length===0||(e=e[0],n=n[0],e===n||t.indexOf(e)1||i&&!a||!i&&a||isNaN(h))throw Ce.VALUE;return h=h/100**c,i?-h:h},PHONETIC:()=>{},PROPER:t=>(t=q.accept(t,[Y.STRING]),t=t.toLowerCase(),t=t.charAt(0).toUpperCase()+t.slice(1),t.replace(/(?:[^a-zA-Z])([a-zA-Z])/g,e=>e.toUpperCase())),REPLACE:(t,e,n,r)=>{t=q.accept(t,[Y.STRING]),e=q.accept(e,[Y.NUMBER]),n=q.accept(n,[Y.NUMBER]),r=q.accept(r,[Y.STRING]);let i=t.split("");return i.splice(e-1,n,r),i.join("")},REPLACEB:(...t)=>ft.REPLACE(...t),REPT:(t,e)=>{t=q.accept(t,Y.STRING),e=q.accept(e,Y.NUMBER);let n="";for(let r=0;r{if(t=q.accept(t,Y.STRING),e=q.accept(e,Y.NUMBER,1),e<0)throw Ce.VALUE;const n=t.length;return e>n?t:t.slice(n-e)},RIGHTB:(...t)=>ft.RIGHT(...t),SEARCH:(t,e,n)=>{if(t=q.accept(t,Y.STRING),e=q.accept(e,Y.STRING),n=q.accept(n,Y.NUMBER,1),n<1||n>e.length)throw Ce.VALUE;let r=gi.isWildCard(t)?gi.toRegex(t,"i"):t;const i=e.slice(n-1).search(r);if(i===-1)throw Ce.VALUE;return i+n},SEARCHB:(...t)=>ft.SEARCH(...t),SUBSTITUTE:(...t)=>{},T:t=>(t=q.accept(t),typeof t=="string"?t:""),TEXT:(t,e)=>{t=q.accept(t,Y.NUMBER),e=q.accept(e,Y.STRING);try{return hr.format(e,t)}catch(n){throw console.error(n),Ce.VALUE}},TEXTJOIN:(...t)=>{},TRIM:t=>(t=q.accept(t,[Y.STRING]),t.replace(/^\s+|\s+$/g,"")),UNICHAR:t=>{if(t=q.accept(t,[Y.NUMBER]),t<=0)throw Ce.VALUE;return String.fromCharCode(t)},UNICODE:t=>ft.CODE(t)};var $o=ft;const tn=he(),{FormulaHelpers:kn}=ge(),Ma={unaryOp:(t,e,n)=>{let r=1;if(t.forEach(i=>{if(i!=="+")if(i==="-")r=-r;else throw new Error(`Unrecognized prefix: ${i}`)}),e==null&&(e=0),r===1)return e;try{e=kn.acceptNumber(e,n)}catch(i){if(i instanceof tn)Array.isArray(e)&&(e=e[0][0]);else throw i}return typeof e=="number"&&isNaN(e)?tn.VALUE:-e}},Ua={percentOp:(t,e,n)=>{try{t=kn.acceptNumber(t,n)}catch(r){if(r instanceof tn)return r;throw r}if(e==="%")return t/100;throw new Error(`Unrecognized postfix: ${e}`)}},At={boolean:3,string:2,number:1},La={compareOp:(t,e,n,r,i)=>{t==null&&(t=0),n==null&&(n=0),r&&(t=t[0][0]),i&&(n=n[0][0]);const a=typeof t,c=typeof n;if(a===c)switch(e){case"=":return t===n;case">":return t>n;case"<":return t":return t!==n;case"<=":return t<=n;case">=":return t>=n}else switch(e){case"=":return!1;case">":return At[a]>At[c];case"<":return At[a]":return!0;case"<=":return At[a]<=At[c];case">=":return At[a]>=At[c]}throw Error("Infix.compareOp: Should not reach here.")},concatOp:(t,e,n,r,i)=>{t==null&&(t=""),n==null&&(n=""),r&&(t=t[0][0]),i&&(n=n[0][0]);const a=typeof t,c=typeof n;return a==="boolean"&&(t=t?"TRUE":"FALSE"),c==="boolean"&&(n=n?"TRUE":"FALSE"),""+t+n},mathOp:(t,e,n,r,i)=>{t==null&&(t=0),n==null&&(n=0);try{t=kn.acceptNumber(t,r),n=kn.acceptNumber(n,i)}catch(a){if(a instanceof tn)return a;throw a}switch(e){case"+":return t+n;case"-":return t-n;case"*":return t*n;case"/":return n===0?tn.DIV0:t/n;case"^":return t**n}throw Error("Infix.mathOp: Should not reach here.")}};var Wr={Prefix:Ma,Postfix:Ua,Infix:La,Operators:{compareOp:["<",">","=","<>","<=",">="],concatOp:["&"],mathOp:["+","-","*","/","^"]}};const Q=he(),{FormulaHelpers:_a,Types:P,Factorials:Ho,Criteria:Pa}=ge(),{Infix:ka}=Wr,L=_a,pr=[],dr=[];function Cn(t){return t<=100?Ho[t]:pr[t]>0?pr[t]:pr[t]=Cn(t-1)*t}function Wo(t){return t===1||t===0?1:t===2?2:dr[t]>0?dr[t]:dr[t]=Wo(t-2)*t}const Pe={ABS:t=>(t=L.accept(t,P.NUMBER),Math.abs(t)),AGGREGATE:(t,e,n,...r)=>{},ARABIC:t=>{if(t=L.accept(t,P.STRING).toUpperCase(),!/^M*(?:D?C{0,3}|C[MD])(?:L?X{0,3}|X[CL])(?:V?I{0,3}|I[XV])$/.test(t))throw new Q("#VALUE!","Invalid roman numeral in ARABIC evaluation.");let e=0;return t.replace(/[MDLV]|C[MD]?|X[CL]?|I[XV]?/g,function(n){e+={M:1e3,CM:900,D:500,CD:400,C:100,XC:90,L:50,XL:40,X:10,IX:9,V:5,IV:4,I:1}[n]}),e},BASE:(t,e,n)=>{if(t=L.accept(t,P.NUMBER),t<0||t>=2**53||(e=L.accept(e,P.NUMBER),e<2||e>36)||(n=L.accept(n,P.NUMBER,0),n<0))throw Q.NUM;const r=t.toString(e).toUpperCase();return new Array(Math.max(n+1-r.length,0)).join("0")+r},CEILING:(t,e)=>{if(t=L.accept(t,P.NUMBER),e=L.accept(e,P.NUMBER),e===0)return 0;if(t/e%1===0)return t;const n=Math.abs(e),r=Math.floor(Math.abs(t)/n);return t<0?e<0?-n*(r+1):-n*r:(r+1)*n},"CEILING.MATH":(t,e,n)=>{if(t=L.accept(t,P.NUMBER),e=L.accept(e,P.NUMBER,t>0?1:-1),n=L.accept(n,P.NUMBER,0),t>=0)return Pe.CEILING(t,e);const r=n?e:0;return Pe.CEILING(t,e)-r},"CEILING.PRECISE":(t,e)=>(t=L.accept(t,P.NUMBER),e=L.accept(e,P.NUMBER,1),Pe.CEILING(t,Math.abs(e))),COMBIN:(t,e)=>{if(t=L.accept(t,P.NUMBER),e=L.accept(e,P.NUMBER),t<0||e<0||t{if(t=L.accept(t,P.NUMBER),e=L.accept(e,P.NUMBER),(t===0||t===1)&&e===0)return 1;if(t<0||e<0)throw Q.NUM;return Pe.COMBIN(t+e-1,t-1)},DECIMAL:(t,e)=>{if(t=L.accept(t,P.STRING),e=L.accept(e,P.NUMBER),e=Math.trunc(e),e<2||e>36)throw Q.NUM;const n=parseInt(t,e);if(isNaN(n))throw Q.NUM;return n},DEGREES:t=>(t=L.accept(t,P.NUMBER),t*(180/Math.PI)),EVEN:t=>Pe.CEILING(t,-2),EXP:t=>(t=L.accept(t,P.NUMBER),Math.exp(t)),FACT:t=>{if(t=L.accept(t,P.NUMBER),t=Math.trunc(t),t>170||t<0)throw Q.NUM;return t<=100?Ho[t]:Cn(t)},FACTDOUBLE:t=>{if(t=L.accept(t,P.NUMBER),t=Math.trunc(t),t<-1)throw Q.NUM;return t===-1?1:Wo(t)},FLOOR:(t,e)=>{if(t=L.accept(t,P.NUMBER),e=L.accept(e,P.NUMBER),e===0)return 0;if(t>0&&e<0)throw Q.NUM;if(t/e%1===0)return t;const n=Math.abs(e),r=Math.floor(Math.abs(t)/n);return t<0?e<0?-n*r:-n*(r+1):r*n},"FLOOR.MATH":(t,e,n)=>(t=L.accept(t,P.NUMBER),e=L.accept(e,P.NUMBER,t>0?1:-1),n=L.accept(n,P.NUMBER,0),n===0||t>=0?Pe.FLOOR(t,Math.abs(e)):Pe.FLOOR(t,e)+e),"FLOOR.PRECISE":(t,e)=>(t=L.accept(t,P.NUMBER),e=L.accept(e,P.NUMBER,1),Pe.FLOOR(t,Math.abs(e))),GCD:(...t)=>{const e=[];L.flattenParams(t,null,!1,c=>{if(c=typeof c=="boolean"?NaN:Number(c),isNaN(c))throw Q.VALUE;if(c<0||c>9007199254740990)throw Q.NUM;e.push(Math.trunc(c))},0);let n,r,i=t.length,a=Math.abs(e[0]);for(n=1;nr?a%=r:r%=a;a+=r}return a},INT:t=>(t=L.accept(t,P.NUMBER),Math.floor(t)),"ISO.CEILING":(...t)=>Pe["CEILING.PRECISE"](...t),LCM:(...t)=>{const e=[];L.flattenParams(t,null,!1,i=>{if(i=typeof i=="boolean"?NaN:Number(i),isNaN(i))throw Q.VALUE;if(i<0||i>9007199254740990)throw Q.NUM;e.push(Math.trunc(i))},1);let n=e.length,r=Math.abs(e[0]);for(let i=1;ia?r%=a:a%=r;r=Math.abs(c*e[i])/(r+a)}return r},LN:t=>(t=L.accept(t,P.NUMBER),Math.log(t)),LOG:(t,e)=>(t=L.accept(t,P.NUMBER),e=L.accept(e,P.NUMBER,10),Math.log(t)/Math.log(e)),LOG10:t=>(t=L.accept(t,P.NUMBER),Math.log10(t)),MDETERM:t=>{if(t=L.accept(t,P.ARRAY,void 0,!1,!0),t[0].length!==t.length)throw Q.VALUE;const e=t.length,n=t[0].length;let r=0,i,a;if(e===1)return t[0][0];if(e===2)return t[0][0]*t[1][1]-t[0][1]*t[1][0];for(let c=0;c{},MMULT:(t,e)=>{t=L.accept(t,P.ARRAY,void 0,!1,!0),e=L.accept(e,P.ARRAY,void 0,!1,!0);const n=t.length,r=t[0].length,i=e.length,a=e[0].length,c=new Array(n);if(r!==i)throw Q.VALUE;for(let h=0;h{if(t=L.accept(t,P.NUMBER),e=L.accept(e,P.NUMBER),e===0)throw Q.DIV0;return t-e*Pe.INT(t/e)},MROUND:(t,e)=>{if(t=L.accept(t,P.NUMBER),e=L.accept(e,P.NUMBER),e===0)return 0;if(t>0&&e<0||t<0&&e>0)throw Q.NUM;return t/e%1===0?t:Math.round(t/e)*e},MULTINOMIAL:(...t)=>{let e=0,n=1;return L.flattenParams(t,P.NUMBER,!1,r=>{if(r<0)throw Q.NUM;e+=r,n*=Cn(r)}),Cn(e)/n},MUNIT:t=>{t=L.accept(t,P.NUMBER);const e=[];for(let n=0;n{if(t=L.accept(t,P.NUMBER),t===0)return 1;let e=Math.ceil(Math.abs(t));return e=e&1?e:e+1,t>0?e:-e},PI:()=>Math.PI,POWER:(t,e)=>(t=L.accept(t,P.NUMBER),e=L.accept(e,P.NUMBER),t**e),PRODUCT:(...t)=>{let e=1;return L.flattenParams(t,null,!0,(n,r)=>{const i=Number(n);r.isLiteral&&!isNaN(i)?e*=i:typeof n=="number"&&(e*=n)},1),e},QUOTIENT:(t,e)=>(t=L.accept(t,P.NUMBER),e=L.accept(e,P.NUMBER),Math.trunc(t/e)),RADIANS:t=>(t=L.accept(t,P.NUMBER),t/180*Math.PI),RAND:()=>Math.random(),RANDBETWEEN:(t,e)=>(t=L.accept(t,P.NUMBER),e=L.accept(e,P.NUMBER),Math.floor(Math.random()*(e-t+1)+t)),ROMAN:(t,e)=>{if(t=L.accept(t,P.NUMBER),e=L.accept(e,P.NUMBER,0),e!==0)throw Error("ROMAN: only allows form=0 (classic form).");const n=String(t).split(""),r=["","C","CC","CCC","CD","D","DC","DCC","DCCC","CM","","X","XX","XXX","XL","L","LX","LXX","LXXX","XC","","I","II","III","IV","V","VI","VII","VIII","IX"];let i="",a=3;for(;a--;)i=(r[+n.pop()+a*10]||"")+i;return new Array(+n.join("")+1).join("M")+i},ROUND:(t,e)=>{t=L.accept(t,P.NUMBER),e=L.accept(e,P.NUMBER);const n=Math.pow(10,Math.abs(e)),r=t>0?1:-1;return e>0?r*Math.round(Math.abs(t)*n)/n:e===0?r*Math.round(Math.abs(t)):r*Math.round(Math.abs(t)/n)*n},ROUNDDOWN:(t,e)=>{t=L.accept(t,P.NUMBER),e=L.accept(e,P.NUMBER);const n=Math.pow(10,Math.abs(e)),r=t>0?1:-1;if(e>0){const i=1/n*.5;return r*Math.round((Math.abs(t)-i)*n)/n}else{if(e===0)return r*Math.round(Math.abs(t)-.5);{const i=n*.5;return r*Math.round((Math.abs(t)-i)/n)*n}}},ROUNDUP:(t,e)=>{t=L.accept(t,P.NUMBER),e=L.accept(e,P.NUMBER);const n=Math.pow(10,Math.abs(e)),r=t>0?1:-1;if(e>0){const i=1/n*.5;return r*Math.round((Math.abs(t)+i)*n)/n}else{if(e===0)return r*Math.round(Math.abs(t)+.5);{const i=n*.5;return r*Math.round((Math.abs(t)+i)/n)*n}}},SERIESSUM:(t,e,n,r)=>{t=L.accept(t,P.NUMBER),e=L.accept(e,P.NUMBER),n=L.accept(n,P.NUMBER);let i=0,a;return L.flattenParams([r],P.NUMBER,!1,c=>{if(typeof c!="number")throw Q.VALUE;i===0?a=c*Math.pow(t,e):a+=c*Math.pow(t,e+i*n),i++}),a},SIGN:t=>(t=L.accept(t,P.NUMBER),t>0?1:t===0?0:-1),SQRT:t=>{if(t=L.accept(t,P.NUMBER),t<0)throw Q.NUM;return Math.sqrt(t)},SQRTPI:t=>{if(t=L.accept(t,P.NUMBER),t<0)throw Q.NUM;return Math.sqrt(t*Math.PI)},SUBTOTAL:()=>{},SUM:(...t)=>{let e=0;return L.flattenParams(t,P.NUMBER,!0,(n,r)=>{(r.isLiteral||typeof n=="number")&&(e+=n)}),e},SUMIF:(t,e,n,r)=>{const i=L.retrieveRanges(t,e,r);e=i[0],r=i[1],n=L.retrieveArg(t,n);const a=n.isArray;n=Pa.parse(L.accept(n));let c=0;return e.forEach((h,p)=>{h.forEach((u,o)=>{const s=r[p][o];typeof s=="number"&&(n.op==="wc"?n.match===n.value.test(u)&&(c+=s):ka.compareOp(u,n.op,n.value,Array.isArray(u),a)&&(c+=s))})}),c},SUMIFS:()=>{},SUMPRODUCT:(t,...e)=>{t=L.accept(t,P.ARRAY,void 0,!1,!0),e.forEach(r=>{if(r=L.accept(r,P.ARRAY,void 0,!1,!0),t[0].length!==r[0].length||t.length!==r.length)throw Q.VALUE;for(let i=0;i{r.forEach(i=>{n+=i})}),n},SUMSQ:(...t)=>{let e=0;return L.flattenParams(t,P.NUMBER,!0,(n,r)=>{(r.isLiteral||typeof n=="number")&&(e+=n**2)}),e},SUMX2MY2:(t,e)=>{const n=[],r=[];let i=0;if(L.flattenParams([t],null,!1,(a,c)=>{n.push(a)}),L.flattenParams([e],null,!1,(a,c)=>{r.push(a)}),n.length!==r.length)throw Q.NA;for(let a=0;a{const n=[],r=[];let i=0;if(L.flattenParams([t],null,!1,(a,c)=>{n.push(a)}),L.flattenParams([e],null,!1,(a,c)=>{r.push(a)}),n.length!==r.length)throw Q.NA;for(let a=0;a{const n=[],r=[];let i=0;if(L.flattenParams([t],null,!1,(a,c)=>{n.push(a)}),L.flattenParams([e],null,!1,(a,c)=>{r.push(a)}),n.length!==r.length)throw Q.NA;for(let a=0;a(t=L.accept(t,P.NUMBER),Math.trunc(t))};var qo=Pe;const Ie=he(),{FormulaHelpers:xa,Types:ie}=ge(),oe=xa,$t=2**27-1,Sa={ACOS:t=>{if(t=oe.accept(t,ie.NUMBER),t>1||t<-1)throw Ie.NUM;return Math.acos(t)},ACOSH:t=>{if(t=oe.accept(t,ie.NUMBER),t<1)throw Ie.NUM;return Math.acosh(t)},ACOT:t=>(t=oe.accept(t,ie.NUMBER),Math.PI/2-Math.atan(t)),ACOTH:t=>{if(t=oe.accept(t,ie.NUMBER),Math.abs(t)<=1)throw Ie.NUM;return Math.atanh(1/t)},ASIN:t=>{if(t=oe.accept(t,ie.NUMBER),t>1||t<-1)throw Ie.NUM;return Math.asin(t)},ASINH:t=>(t=oe.accept(t,ie.NUMBER),Math.asinh(t)),ATAN:t=>(t=oe.accept(t,ie.NUMBER),Math.atan(t)),ATAN2:(t,e)=>{if(t=oe.accept(t,ie.NUMBER),e=oe.accept(e,ie.NUMBER),e===0&&t===0)throw Ie.DIV0;return Math.atan2(e,t)},ATANH:t=>{if(t=oe.accept(t,ie.NUMBER),Math.abs(t)>1)throw Ie.NUM;return Math.atanh(t)},COS:t=>{if(t=oe.accept(t,ie.NUMBER),Math.abs(t)>$t)throw Ie.NUM;return Math.cos(t)},COSH:t=>(t=oe.accept(t,ie.NUMBER),Math.cosh(t)),COT:t=>{if(t=oe.accept(t,ie.NUMBER),Math.abs(t)>$t)throw Ie.NUM;if(t===0)throw Ie.DIV0;return 1/Math.tan(t)},COTH:t=>{if(t=oe.accept(t,ie.NUMBER),t===0)throw Ie.DIV0;return 1/Math.tanh(t)},CSC:t=>{if(t=oe.accept(t,ie.NUMBER),Math.abs(t)>$t)throw Ie.NUM;return 1/Math.sin(t)},CSCH:t=>{if(t=oe.accept(t,ie.NUMBER),t===0)throw Ie.DIV0;return 1/Math.sinh(t)},SEC:t=>{if(t=oe.accept(t,ie.NUMBER),Math.abs(t)>$t)throw Ie.NUM;return 1/Math.cos(t)},SECH:t=>(t=oe.accept(t,ie.NUMBER),1/Math.cosh(t)),SIN:t=>{if(t=oe.accept(t,ie.NUMBER),Math.abs(t)>$t)throw Ie.NUM;return Math.sin(t)},SINH:t=>(t=oe.accept(t,ie.NUMBER),Math.sinh(t)),TAN:t=>{if(t=oe.accept(t,ie.NUMBER),Math.abs(t)>$t)throw Ie.NUM;return Math.tan(t)},TANH:t=>(t=oe.accept(t,ie.NUMBER),Math.tanh(t))};var Ba=Sa;const yt=he(),{FormulaHelpers:Fa,Types:vr}=ge(),ze=Fa;function gr(t){let e=0,n=0;return ze.flattenParams(t,null,!0,r=>{const i=typeof r;i==="string"?r==="TRUE"?r=!0:r==="FALSE"&&(r=!1):i==="number"&&(r=!!r),typeof r=="boolean"&&(r===!0?e++:n++)}),[e,n]}const ba={AND:(...t)=>{const[e,n]=gr(t);return e===0&&n===0?yt.VALUE:e>0&&n===0},FALSE:()=>!1,IF:(t,e,n,r)=>(e=ze.accept(e,vr.BOOLEAN),n=ze.accept(n),r=ze.accept(r,null,!1),e?n:r),IFERROR:(t,e)=>t.value instanceof yt?ze.accept(e):ze.accept(t),IFNA:function(t,e){if(arguments.length>2)throw yt.TOO_MANY_ARGS("IFNA");return yt.NA.equals(t.value)?ze.accept(e):ze.accept(t)},IFS:(...t)=>{if(t.length%2!==0)return new yt("#N/A","IFS expects all arguments after position 0 to be in pairs.");for(let e=0;e(t=ze.accept(t,vr.BOOLEAN),!t),OR:(...t)=>{const[e,n]=gr(t);return e===0&&n===0?yt.VALUE:e>0},SWITCH:(...t)=>{},TRUE:()=>!0,XOR:(...t)=>{const[e,n]=gr(t);return e===0&&n===0?yt.VALUE:e%2===1}};var Da=ba,Yo={};(function(t){(function(e){e(typeof DO_NOT_EXPORT_BESSEL>"u"?t:{})})(function(e){e.version="1.0.2";var n=Math;function r(o,s){for(var l=0,f=0;lT)w=i(R,T,d(R),N(R),-1);else{for(var C=2*n.floor((T+n.floor(n.sqrt(40*T)))/2),M=!1,_=0,W=0,F=1,S=0,G=2/R,J=C;J>0;J--)S=J*G*F-_,_=F,F=S,n.abs(F)>1e10&&(F*=1e-10,_*=1e-10,w*=1e-10,W*=1e-10),M&&(W+=F),M=!M,J==T&&(w=_);W=2*W-F,w/=W}return w}}(),h=function(){var o=.636619772,s=[-2957821389,7062834065,-5123598036e-1,1087988129e-2,-86327.92757,228.4622733].reverse(),l=[40076544269,7452499648e-1,7189466438e-3,47447.2647,226.1030244,1].reverse(),f=[1,-.001098628627,2734510407e-14,-2073370639e-15,2093887211e-16].reverse(),v=[-.01562499995,.0001430488765,-6911147651e-15,7621095161e-16,-934945152e-16].reverse();function d(y){var R=0,T=0,w=0,C=y*y,M=y-.785398164;return y<8?(T=r(s,C),w=r(l,C),R=T/w+o*c(y,0)*n.log(y)):(C=64/C,T=r(f,C),w=r(v,C),R=n.sqrt(o/y)*(n.sin(M)*T+n.cos(M)*w*8/y)),R}var g=[-4900604943e3,127527439e4,-51534381390,7349264551e-1,-4237922726e-3,8511.937935].reverse(),E=[249958057e5,424441966400,3733650367,2245904002e-2,102042.605,354.9632885,1].reverse(),A=[1,.00183105,-3516396496e-14,2457520174e-15,-240337019e-15].reverse(),m=[.04687499995,-.0002002690873,8449199096e-15,-88228987e-14,105787412e-15].reverse();function N(y){var R=0,T=0,w=0,C=y*y,M=y-2.356194491;return y<8?(T=y*r(g,C),w=r(E,C),R=T/w+o*(c(y,1)*n.log(y)-1/y)):(C=64/C,T=r(A,C),w=r(m,C),R=n.sqrt(o/y)*(n.sin(M)*T+n.cos(M)*w*8/y)),R}return a(d,N,"BESSELY",1,-1)}(),p=function(){var o=[1,3.5156229,3.0899424,1.2067492,.2659732,.0360768,.0045813].reverse(),s=[.39894228,.01328592,.00225319,-.00157565,.00916281,-.02057706,.02635537,-.01647633,.00392377].reverse();function l(g){return g<=3.75?r(o,g*g/(3.75*3.75)):n.exp(n.abs(g))/n.sqrt(n.abs(g))*r(s,3.75/n.abs(g))}var f=[.5,.87890594,.51498869,.15084934,.02658733,.00301532,32411e-8].reverse(),v=[.39894228,-.03988024,-.00362018,.00163801,-.01031555,.02282967,-.02895312,.01787654,-.00420059].reverse();function d(g){return g<3.75?g*r(f,g*g/(3.75*3.75)):(g<0?-1:1)*n.exp(n.abs(g))/n.sqrt(n.abs(g))*r(v,3.75/n.abs(g))}return function g(E,A){if(A=Math.round(A),A===0)return l(E);if(A===1)return d(E);if(A<0)return NaN;if(n.abs(E)===0)return 0;if(E==1/0)return 1/0;var m=0,N,y=2/n.abs(E),R=0,T=1,w=0,C=2*n.round((A+n.round(n.sqrt(40*A)))/2);for(N=C;N>0;N--)w=N*y*T+R,R=T,T=w,n.abs(T)>1e10&&(T*=1e-10,R*=1e-10,m*=1e-10),N==A&&(m=R);return m*=g(E,0)/T,E<0&&A%2?-m:m}}(),u=function(){var o=[-.57721566,.4227842,.23069756,.0348859,.00262698,1075e-7,74e-7].reverse(),s=[1.25331414,-.07832358,.02189568,-.01062446,.00587872,-.0025154,53208e-8].reverse();function l(g){return g<=2?-n.log(g/2)*p(g,0)+r(o,g*g/4):n.exp(-g)/n.sqrt(g)*r(s,2/g)}var f=[1,.15443144,-.67278579,-.18156897,-.01919402,-.00110404,-4686e-8].reverse(),v=[1.25331414,.23498619,-.0365562,.01504268,-.00780353,.00325614,-68245e-8].reverse();function d(g){return g<=2?n.log(g/2)*p(g,1)+1/g*r(f,g*g/4):n.exp(-g)/n.sqrt(g)*r(v,2/g)}return a(l,d,"BESSELK",2,1)}();e.besselj=c,e.bessely=h,e.besseli=p,e.besselk=u})})(Yo);var Ko={exports:{}};(function(t,e){(function(n,r){t.exports=r()})(Io,function(){var n=function(r,i){var a=Array.prototype.concat,c=Array.prototype.slice,h=Object.prototype.toString;function p(A,m){var N=A>m?A:m;return r.pow(10,17-~~(r.log(N>0?N:-N)*r.LOG10E))}var u=Array.isArray||function(m){return h.call(m)==="[object Array]"};function o(A){return h.call(A)==="[object Function]"}function s(A){return typeof A=="number"?A-A===0:!1}function l(A){return a.apply([],A)}function f(){return new f._init(arguments)}f.fn=f.prototype,f._init=function(m){if(u(m[0]))if(u(m[0][0])){o(m[1])&&(m[0]=f.map(m[0],m[1]));for(var N=0;N=0;N--,R++)y[R]=[m[R][N]];return y},f.transpose=function(m){var N=[],y,R,T,w,C;for(u(m[0])||(m=[m]),R=m.length,T=m[0].length,C=0;C0&&(C[R][0]=m[R][0]),M=1;MN&&y>0)return[];if(y>0)for(T=m;TN;T+=y)R.push(T);return R},f.slice=function(){function A(N,y,R,T){var w,C=[],M=N.length;if(y===i&&R===i&&T===i)return f.copy(N);if(y=y||0,R=R||N.length,y=y>=0?y:M+y,R=R>=0?R:M+R,T=T||1,y===R||T===0)return[];if(yR&&T>0)return[];if(T>0)for(w=y;wR;w+=T)C.push(N[w]);return C}function m(N,y){var R,T;if(y=y||{},s(y.row)){if(s(y.col))return N[y.row][y.col];var w=f.rowa(N,y.row);return R=y.col||{},A(w,R.start,R.end,R.step)}if(s(y.col)){var C=f.cola(N,y.col);return T=y.row||{},A(C,T.start,T.end,T.step)}T=y.row||{},R=y.col||{};var M=A(N,T.start,T.end,T.step);return M.map(function(_){return A(_,R.start,R.end,R.step)})}return m}(),f.sliceAssign=function(m,N,y){var R,T;if(s(N.row)){if(s(N.col))return m[N.row][N.col]=y;N.col=N.col||{},N.col.start=N.col.start||0,N.col.end=N.col.end||m[0].length,N.col.step=N.col.step||1,R=f.arange(N.col.start,r.min(m.length,N.col.end),N.col.step);var w=N.row;return R.forEach(function(M,_){m[w][M]=y[_]}),m}if(s(N.col)){N.row=N.row||{},N.row.start=N.row.start||0,N.row.end=N.row.end||m.length,N.row.step=N.row.step||1,T=f.arange(N.row.start,r.min(m[0].length,N.row.end),N.row.step);var C=N.col;return T.forEach(function(M,_){m[M][C]=y[_]}),m}return y[0].length===i&&(y=[y]),N.row.start=N.row.start||0,N.row.end=N.row.end||m.length,N.row.step=N.row.step||1,N.col.start=N.col.start||0,N.col.end=N.col.end||m[0].length,N.col.step=N.col.step||1,T=f.arange(N.row.start,r.min(m.length,N.row.end),N.row.step),R=f.arange(N.col.start,r.min(m[0].length,N.col.end),N.col.step),T.forEach(function(M,_){R.forEach(function(W,F){m[M][W]=y[_][F]})}),m},f.diagonal=function(m){var N=f.zeros(m.length,m.length);return m.forEach(function(y,R){N[R][R]=y}),N},f.copy=function(m){return m.map(function(N){return s(N)?N:N.map(function(y){return y})})};var E=f.prototype;return E.length=0,E.push=Array.prototype.push,E.sort=Array.prototype.sort,E.splice=Array.prototype.splice,E.slice=Array.prototype.slice,E.toArray=function(){return this.length>1?c.call(this):c.call(this)[0]},E.map=function(m,N){return f(f.map(this,m,N))},E.cumreduce=function(m,N){return f(f.cumreduce(this,m,N))},E.alter=function(m){return f.alter(this,m),this},function(A){for(var m=0;m=0;)s+=o[l];return s},r.sumsqrd=function(o){for(var s=0,l=o.length;--l>=0;)s+=o[l]*o[l];return s},r.sumsqerr=function(o){for(var s=r.mean(o),l=0,f=o.length,v;--f>=0;)v=o[f]-s,l+=v*v;return l},r.sumrow=function(o){for(var s=0,l=o.length;--l>=0;)s+=o[l];return s},r.product=function(o){for(var s=1,l=o.length;--l>=0;)s*=o[l];return s},r.min=function(o){for(var s=o[0],l=0;++ls&&(s=o[l]);return s},r.unique=function(o){for(var s={},l=[],f=0;fv?(g=[l[E]],v=f,d=0):f===v&&(g.push(l[E]),d++),f=1);return d===0?g[0]:g},r.range=function(o){return r.max(o)-r.min(o)},r.variance=function(o,s){return r.sumsqerr(o)/(o.length-(s?1:0))},r.pooledvariance=function(o){var s=o.reduce(function(f,v){return f+r.sumsqerr(v)},0),l=o.reduce(function(f,v){return f+v.length},0);return s/(l-o.length)},r.deviation=function(u){for(var o=r.mean(u),s=u.length,l=new Array(s),f=0;f=0;f--)l.push(i.abs(o[f]-s));return r.mean(l)},r.meddev=function(o){for(var s=r.median(o),l=[],f=o.length-1;f>=0;f--)l.push(i.abs(o[f]-s));return r.median(l)},r.coeffvar=function(o){return r.stdev(o)/r.mean(o)},r.quartiles=function(o){var s=o.length,l=o.slice().sort(c);return[l[i.round(s/4)-1],l[i.round(s/2)-1],l[i.round(s*3/4)-1]]},r.quantiles=function(o,s,l,f){var v=o.slice().sort(c),d=[s.length],g=o.length,E,A,m,N,y,R;for(typeof l>"u"&&(l=3/8),typeof f>"u"&&(f=3/8),E=0;E1){for(g=l===!0?this:this.transpose();d1){for(s!=="sumrow"&&(g=l===!0?this:this.transpose());d1){for(v=v.transpose();f=0;l--)s*=p,s+=v[l];if(o=s/h+.5*i.log(u)+(h-.5)*i.log(h)-h,c<=7)for(l=1;l<=f;l++)o-=i.log(h-1),h-=1;return o},r.gammafn=function(c){var h=[-1.716185138865495,24.76565080557592,-379.80425647094563,629.3311553128184,866.9662027904133,-31451.272968848367,-36144.413418691176,66456.14382024054],p=[-30.8402300119739,315.35062697960416,-1015.1563674902192,-3107.771671572311,22538.11842098015,4755.846277527881,-134659.9598649693,-115132.2596755535],u=!1,o=0,s=0,l=0,f=c,v,d,g,E;if(c>171.6243769536076)return 1/0;if(f<=0)if(E=f%1+36e-17,E)u=(f&1?-1:1)*i.PI/i.sin(i.PI*E),f=1-f;else return 1/0;for(g=f,f<1?d=f++:d=(f-=o=(f|0)-1)-1,v=0;v<8;++v)l=(l+h[v])*d,s=s*d+p[v];if(E=l/s+1,gf)for(v=0;v=1?c:1/c)*8.5+c*.4+17),A;if(h<0||c<=0)return NaN;if(h170||h>170?i.exp(r.combinationln(c,h)):r.factorial(c)/r.factorial(h)/r.factorial(c-h)},r.combinationln=function(c,h){return r.factorialln(c)-r.factorialln(h)-r.factorialln(c-h)},r.permutation=function(c,h){return r.factorial(c)/r.factorial(c-h)},r.betafn=function(c,h){if(!(c<=0||h<=0))return c+h>170?i.exp(r.betaln(c,h)):r.gammafn(c)*r.gammafn(h)/r.gammafn(c+h)},r.betaln=function(c,h){return r.gammaln(c)+r.gammaln(h)-r.gammaln(c+h)},r.betacf=function(c,h,p){var u=1e-30,o=1,s=h+p,l=h+1,f=h-1,v=1,d=1-s*c/l,g,E,A,m;for(i.abs(d)=1)return i.max(100,h+100*i.sqrt(h));if(c<=0)return 0;for(h>1?(E=i.log(u),A=i.exp(u*(E-1)-s),g=c<.5?c:1-c,v=i.sqrt(-2*i.log(g)),l=(2.30753+v*.27061)/(1+v*(.99229+v*.04481))-v,c<.5&&(l=-l),l=i.max(.001,h*i.pow(1-1/(9*h)-l/(3*i.sqrt(h)),3))):(v=1-h*(.253+h*.12),c1?v=A*i.exp(-(l-u)+u*(i.log(l)-E)):v=i.exp(-l+u*i.log(l)-s),d=f/v,l-=v=d/(1-.5*i.min(1,d*((h-1)/l-1))),l<=0&&(l=.5*(l+v)),i.abs(v)0;p--)v=o,o=f*o-s+h[p],s=v;return d=l*i.exp(-c*c+.5*(h[0]+f*o)-s),u?d-1:1-d},r.erfc=function(c){return 1-r.erf(c)},r.erfcinv=function(c){var h=0,p,u,o,s;if(c>=2)return-100;if(c<=0)return 100;for(s=c<1?c:2-c,o=i.sqrt(-2*i.log(s/2)),p=-.70711*((2.30753+o*.27061)/(1+o*(.99229+o*.04481))-o);h<2;h++)u=r.erfc(p)-s,p+=u/(1.1283791670955126*i.exp(-p*p)-p*u);return c<1?p:-p},r.ibetainv=function(c,h,p){var u=1e-8,o=h-1,s=p-1,l=0,f,v,d,g,E,A,m,N,y,R,T;if(c<=0)return 0;if(c>=1)return 1;for(h>=1&&p>=1?(d=c<.5?c:1-c,g=i.sqrt(-2*i.log(d)),m=(2.30753+g*.27061)/(1+g*(.99229+g*.04481))-g,c<.5&&(m=-m),N=(m*m-3)/6,y=2/(1/(2*h-1)+1/(2*p-1)),R=m*i.sqrt(N+y)/y-(1/(2*p-1)-1/(2*h-1))*(N+5/6-2/(3*y)),m=h/(h+p*i.exp(2*R))):(f=i.log(h/(h+p)),v=i.log(p/(h+p)),g=i.exp(h*f)/h,E=i.exp(p*v)/p,R=g+E,c=1&&(m=.5*(m+g+1)),i.abs(g)0)break}return m},r.ibeta=function(c,h,p){var u=c===0||c===1?0:i.exp(r.gammaln(h+p)-r.gammaln(h)-r.gammaln(p)+h*i.log(c)+p*i.log(1-c));return c<0||c>1?!1:c<(h+1)/(h+p+2)?u*r.betacf(c,h,p)/h:1-u*r.betacf(1-c,p,h)/p},r.randn=function(c,h){var p,u,o,s,l;if(h||(h=c),c)return r.create(c,h,function(){return r.randn()});do p=r._random_fn(),u=1.7156*(r._random_fn()-.5),o=p-.449871,s=i.abs(u)+.386595,l=o*o+s*(.196*s-.25472*o);while(l>.27597&&(l>.27846||u*u>-4*i.log(p)*p*p));return u/p},r.randg=function(c,h,p){var u=c,o,s,l,f,v,d;if(p||(p=h),c||(c=1),h)return d=r.zeros(h,p),d.alter(function(){return r.randg(c)}),d;c<1&&(c+=1),o=c-1/3,s=1/i.sqrt(9*o);do{do v=r.randn(),f=1+s*v;while(f<=0);f=f*f*f,l=r._random_fn()}while(l>1-.331*i.pow(v,4)&&i.log(l)>.5*v*v+o*(1-f+i.log(f)));if(c==u)return o*f;do l=r._random_fn();while(l===0);return i.pow(l,1/u)*o*f},function(a){for(var c=0;c1||o<0?0:s==1&&l==1?1:s<512&&l<512?i.pow(o,s-1)*i.pow(1-o,l-1)/r.betafn(s,l):i.exp((s-1)*i.log(o)+(l-1)*i.log(1-o)-r.betaln(s,l))},cdf:function(o,s,l){return o>1||o<0?(o>1)*1:r.ibeta(o,s,l)},inv:function(o,s,l){return r.ibetainv(o,s,l)},mean:function(o,s){return o/(o+s)},median:function(o,s){return r.ibetainv(.5,o,s)},mode:function(o,s){return(o-1)/(o+s-2)},sample:function(o,s){var l=r.randg(o);return l/(l+r.randg(s))},variance:function(o,s){return o*s/(i.pow(o+s,2)*(o+s+1))}}),r.extend(r.centralF,{pdf:function(o,s,l){var f,v,d;return o<0?0:s<=2?o===0&&s<2?1/0:o===0&&s===2?1:1/r.betafn(s/2,l/2)*i.pow(s/l,s/2)*i.pow(o,s/2-1)*i.pow(1+s/l*o,-(s+l)/2):(f=s*o/(l+o*s),v=l/(l+o*s),d=s*v/2,d*r.binomial.pdf((s-2)/2,(s+l-2)/2,f))},cdf:function(o,s,l){return o<0?0:r.ibeta(s*o/(s*o+l),s/2,l/2)},inv:function(o,s,l){return l/(s*(1/r.ibetainv(o,s/2,l/2)-1))},mean:function(o,s){return s>2?s/(s-2):void 0},mode:function(o,s){return o>2?s*(o-2)/(o*(s+2)):void 0},sample:function(o,s){var l=r.randg(o/2)*2,f=r.randg(s/2)*2;return l/o/(f/s)},variance:function(o,s){if(!(s<=4))return 2*s*s*(o+s-2)/(o*(s-2)*(s-2)*(s-4))}}),r.extend(r.cauchy,{pdf:function(o,s,l){return l<0?0:l/(i.pow(o-s,2)+i.pow(l,2))/i.PI},cdf:function(o,s,l){return i.atan((o-s)/l)/i.PI+.5},inv:function(u,o,s){return o+s*i.tan(i.PI*(u-.5))},median:function(o){return o},mode:function(o){return o},sample:function(o,s){return r.randn()*i.sqrt(1/(2*r.randg(.5)))*s+o}}),r.extend(r.chisquare,{pdf:function(o,s){return o<0?0:o===0&&s===2?.5:i.exp((s/2-1)*i.log(o)-o/2-s/2*i.log(2)-r.gammaln(s/2))},cdf:function(o,s){return o<0?0:r.lowRegGamma(s/2,o/2)},inv:function(u,o){return 2*r.gammapinv(u,.5*o)},mean:function(u){return u},median:function(o){return o*i.pow(1-2/(9*o),3)},mode:function(o){return o-2>0?o-2:0},sample:function(o){return r.randg(o/2)*2},variance:function(o){return 2*o}}),r.extend(r.exponential,{pdf:function(o,s){return o<0?0:s*i.exp(-s*o)},cdf:function(o,s){return o<0?0:1-i.exp(-s*o)},inv:function(u,o){return-i.log(1-u)/o},mean:function(u){return 1/u},median:function(u){return 1/u*i.log(2)},mode:function(){return 0},sample:function(o){return-1/o*i.log(r._random_fn())},variance:function(u){return i.pow(u,-2)}}),r.extend(r.gamma,{pdf:function(o,s,l){return o<0?0:o===0&&s===1?1/l:i.exp((s-1)*i.log(o)-o/l-r.gammaln(s)-s*i.log(l))},cdf:function(o,s,l){return o<0?0:r.lowRegGamma(s,o/l)},inv:function(u,o,s){return r.gammapinv(u,o)*s},mean:function(u,o){return u*o},mode:function(o,s){if(o>1)return(o-1)*s},sample:function(o,s){return r.randg(o)*s},variance:function(o,s){return o*s*s}}),r.extend(r.invgamma,{pdf:function(o,s,l){return o<=0?0:i.exp(-(s+1)*i.log(o)-l/o-r.gammaln(s)+s*i.log(l))},cdf:function(o,s,l){return o<=0?0:1-r.lowRegGamma(s,l/o)},inv:function(u,o,s){return s/r.gammapinv(1-u,o)},mean:function(u,o){return u>1?o/(u-1):void 0},mode:function(o,s){return s/(o+1)},sample:function(o,s){return s/r.randg(o)},variance:function(o,s){if(!(o<=2))return s*s/((o-1)*(o-1)*(o-2))}}),r.extend(r.kumaraswamy,{pdf:function(o,s,l){return o===0&&s===1?l:o===1&&l===1?s:i.exp(i.log(s)+i.log(l)+(s-1)*i.log(o)+(l-1)*i.log(1-i.pow(o,s)))},cdf:function(o,s,l){return o<0?0:o>1?1:1-i.pow(1-i.pow(o,s),l)},inv:function(o,s,l){return i.pow(1-i.pow(1-o,1/l),1/s)},mean:function(u,o){return o*r.gammafn(1+1/u)*r.gammafn(o)/r.gammafn(1+1/u+o)},median:function(o,s){return i.pow(1-i.pow(2,-1/s),1/o)},mode:function(o,s){if(o>=1&&s>=1&&o!==1&&s!==1)return i.pow((o-1)/(o*s-1),1/o)},variance:function(){throw new Error("variance not yet implemented")}}),r.extend(r.lognormal,{pdf:function(o,s,l){return o<=0?0:i.exp(-i.log(o)-.5*i.log(2*i.PI)-i.log(l)-i.pow(i.log(o)-s,2)/(2*l*l))},cdf:function(o,s,l){return o<0?0:.5+.5*r.erf((i.log(o)-s)/i.sqrt(2*l*l))},inv:function(u,o,s){return i.exp(-1.4142135623730951*s*r.erfcinv(2*u)+o)},mean:function(o,s){return i.exp(o+s*s/2)},median:function(o){return i.exp(o)},mode:function(o,s){return i.exp(o-s*s)},sample:function(o,s){return i.exp(r.randn()*s+o)},variance:function(o,s){return(i.exp(s*s)-1)*i.exp(2*o+s*s)}}),r.extend(r.noncentralt,{pdf:function(o,s,l){var f=1e-14;return i.abs(l)f||E>f;)A=E,N>0&&(y*=l*l/(2*N),R*=l*l/(2*(N+1/2))),E=y*r.beta.cdf(m,N+.5,s/2)+R*r.beta.cdf(m,N+1,s/2),g+=.5*E,N++;return d?1-g:g}}),r.extend(r.normal,{pdf:function(o,s,l){return i.exp(-.5*i.log(2*i.PI)-i.log(l)-i.pow(o-s,2)/(2*l*l))},cdf:function(o,s,l){return .5*(1+r.erf((o-s)/i.sqrt(2*l*l)))},inv:function(u,o,s){return-1.4142135623730951*s*r.erfcinv(2*u)+o},mean:function(u){return u},median:function(o){return o},mode:function(u){return u},sample:function(o,s){return r.randn()*s+o},variance:function(u,o){return o*o}}),r.extend(r.pareto,{pdf:function(o,s,l){return o1e100?1e100:s,1/(i.sqrt(s)*r.betafn(.5,s/2))*i.pow(1+o*o/s,-((s+1)/2))},cdf:function(o,s){var l=s/2;return r.ibeta((o+i.sqrt(o*o+s))/(2*i.sqrt(o*o+s)),l,l)},inv:function(u,o){var s=r.ibetainv(2*i.min(u,1-u),.5*o,.5);return s=i.sqrt(o*(1-s)/s),u>.5?s:-s},mean:function(o){return o>1?0:void 0},median:function(){return 0},mode:function(){return 0},sample:function(o){return r.randn()*i.sqrt(o/(2*r.randg(o/2)))},variance:function(o){return o>2?o/(o-2):o>1?1/0:void 0}}),r.extend(r.weibull,{pdf:function(o,s,l){return o<0||s<0||l<0?0:l/s*i.pow(o/s,l-1)*i.exp(-i.pow(o/s,l))},cdf:function(o,s,l){return o<0?0:1-i.exp(-i.pow(o/s,l))},inv:function(u,o,s){return o*i.pow(-i.log(1-u),1/s)},mean:function(u,o){return u*r.gammafn(1+1/o)},median:function(o,s){return o*i.pow(i.log(2),1/s)},mode:function(o,s){return s<=1?0:o*i.pow((s-1)/s,1/s)},sample:function(o,s){return o*i.pow(-i.log(r._random_fn()),1/s)},variance:function(o,s){return o*o*r.gammafn(1+2/s)-i.pow(r.weibull.mean(o,s),2)}}),r.extend(r.uniform,{pdf:function(o,s,l){return ol?0:1/(l-s)},cdf:function(o,s,l){return ol;)A=d,m=-(o+E)*(o+s+E)*u/(o+2*E)/(o+2*E+1),f=d+m*f,v=g+m*v,E=E+1,m=E*(s-E)*u/(o+2*E-1)/(o+2*E),d=f+m*d,g=v+m*g,f=f/g,v=v/g,d=d/g,g=1;return d/o}r.extend(r.binomial,{pdf:function(o,s,l){return l===0||l===1?s*l===o?1:0:r.combination(s,o)*i.pow(l,o)*i.pow(1-l,s-o)},cdf:function(o,s,l){var f,v=1e-10;if(o<0)return 0;if(o>=s)return 1;if(l<0||l>1||s<=0)return NaN;o=i.floor(o);var d=l,g=o+1,E=s-o,A=g+E,m=i.exp(r.gammaln(A)-r.gammaln(E)-r.gammaln(g)+g*i.log(d)+E*i.log(1-d));return d<(g+1)/(A+2)?f=m*a(d,g,E,v):f=1-m*a(1-d,E,g,v),i.round((1-f)*(1/v))/(1/v)}}),r.extend(r.negbin,{pdf:function(o,s,l){return o!==o>>>0?!1:o<0?0:r.combination(o+s-1,s-1)*i.pow(1-l,o)*i.pow(l,s)},cdf:function(o,s,l){var f=0,v=0;if(o<0)return 0;for(;v<=o;v++)f+=r.negbin.pdf(v,s,l);return f}}),r.extend(r.hypgeom,{pdf:function(o,s,l,f){if(o!==o|0)return!1;if(o<0||of||o>l)return 0;if(l*2>s)return f*2>s?r.hypgeom.pdf(s-l-f+o,s,s-l,s-f):r.hypgeom.pdf(f-o,s,s-l,f);if(f*2>s)return r.hypgeom.pdf(l-o,s,l,s-f);if(l1&&d=f||o>=l)return 1;if(l*2>s)return f*2>s?r.hypgeom.cdf(s-l-f+o,s,s-l,s-f):1-r.hypgeom.cdf(f-o-1,s,s-l,f);if(f*2>s)return 1-r.hypgeom.cdf(l-o-1,s,l,s-f);if(l1&&gf);return l-1},sampleLarge:function(o){var s=o,l,f,v,d,g,E,A,m,N,y;for(d=i.sqrt(s),g=i.log(s),A=.931+2.53*d,E=-.059+.02483*A,m=1.1239+1.1328/(A-3.4),N=.9277-3.6224/(A-2);;){if(f=i.random()-.5,v=i.random(),y=.5-i.abs(f),l=i.floor((2*E/y+A)*f+s+.43),y>=.07&&v<=N)return l;if(!(l<0||y<.013&&v>y)&&i.log(v)+i.log(m)-i.log(E/(y*y)+A)<=-s+l*g-r.loggam(l+1))return l}},sample:function(o){return o<10?this.sampleSmall(o):this.sampleLarge(o)}}),r.extend(r.triangular,{pdf:function(o,s,l,f){return l<=s||fl?NaN:ol?0:ol?NaN:o<=s?0:o>=l?1:o<=f?i.pow(o-s,2)/((l-s)*(f-s)):1-i.pow(l-o,2)/((l-s)*(l-f))},inv:function(o,s,l,f){return l<=s||fl?NaN:o<=(f-s)/(l-s)?s+(l-s)*i.sqrt(o*((f-s)/(l-s))):s+(l-s)*(1-i.sqrt((1-o)*(1-(f-s)/(l-s))))},mean:function(o,s,l){return(o+s+l)/3},median:function(o,s,l){if(l<=(o+s)/2)return s-i.sqrt((s-o)*(s-l))/i.sqrt(2);if(l>(o+s)/2)return o+i.sqrt((s-o)*(l-o))/i.sqrt(2)},mode:function(o,s,l){return l},sample:function(o,s,l){var f=r._random_fn();return f<(l-o)/(s-o)?o+i.sqrt(f*(s-o)*(l-o)):s-i.sqrt((1-f)*(s-o)*(s-l))},variance:function(o,s,l){return(o*o+s*s+l*l-o*s-o*l-s*l)/18}}),r.extend(r.arcsine,{pdf:function(o,s,l){return l<=s?NaN:o<=s||o>=l?0:2/i.PI*i.pow(i.pow(l-s,2)-i.pow(2*o-s-l,2),-.5)},cdf:function(o,s,l){return o=E)return 1;var w=2*r.normal.cdf(T,0,1,1,0)-1;w>=i.exp(d/s)?w=i.pow(w,s):w=0;var C;u>A?C=m:C=N;for(var M=T,_=(E-T)/C,W=M+_,F=0,S=s-1,G=1;G<=C;G++){for(var J=0,le=.5*(W+M),nt=.5*(W-M),Ae=1;Ae<=l;Ae++){var Be,Fe;fg)break;var Et=2*r.normal.cdf(Ee,0,1,1,0),bt=2*r.normal.cdf(Ee,u,1,1,0),mt=Et*.5-bt*.5;mt>=i.exp(v/S)&&(mt=R[Be-1]*i.exp(-(.5*ue))*i.pow(mt,S),J+=mt)}J*=2*nt*s/i.sqrt(2*i.PI),F+=J,M=W,W+=_}return w+=F,w<=i.exp(v/o)?0:(w=i.pow(w,o),w>=1?1:w)}function p(u,o,s){var l=.322232421088,f=.099348462606,v=-1,d=.588581570495,g=-.342242088547,E=.531103462366,A=-.204231210125,m=.10353775285,N=-453642210148e-16,y=.0038560700634,R=.8832,T=.2368,w=1.214,C=1.208,M=1.4142,_=120,W=.5-.5*u,F=i.sqrt(i.log(1/(W*W))),S=F+((((F*N+A)*F+g)*F+v)*F+l)/((((F*y+m)*F+E)*F+d)*F+f);s<_&&(S+=(S*S*S+S)/s/4);var G=R-T*S;return s<_&&(G+=-w/s+C*S/s),S*(G*i.log(o-1)+M)}r.extend(r.tukey,{cdf:function(o,s,l){var f=1,v=s,d=16,g=8,E=-30,A=1e-14,m=100,N=800,y=5e3,R=25e3,T=1,w=.5,C=.25,M=.125,_=[.9894009349916499,.9445750230732326,.8656312023878318,.755404408355003,.6178762444026438,.45801677765722737,.2816035507792589,.09501250983763744],W=[.027152459411754096,.062253523938647894,.09515851168249279,.12462897125553388,.14959598881657674,.16915651939500254,.18260341504492358,.1894506104550685];if(o<=0)return 0;if(l<2||f<1||v<2)return NaN;if(!Number.isFinite(o))return 1;if(l>R)return h(o,f,v);var F=l*.5,S=F*i.log(l)-l*i.log(2)-r.gammaln(F),G=F-1,J=l*.25,le;l<=m?le=T:l<=N?le=w:l<=y?le=C:le=M,S+=i.log(le);for(var nt=0,Ae=1;Ae<=50;Ae++){for(var Be=0,Fe=(2*Ae-1)*le,rt=1;rt<=d;rt++){var Ee,ue;g