!function(n,t){"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?module.exports=t():n.indent=t()}(this,function(){var n=function(n){function t(n,t){var e,r=[];for(e=0;e0&&(L[R]--,T+=R!==M);$=L[M],_[M]=$>T?1:$0?1:0}for(M=0;M0?c(y,H):"")+k[M].trim()));return B.join("\r\n")}function l(n){for(var t=new Array(n),e=0;e/],n:!0,m:!0},{a:"html",b:"doctype",j:[/\<\!doctype html>/i],l:[m],n:!0,m:!0},{a:"js html",b:"void-tags",j:[/\<(area|base|br|col|command|embed|hr|img|input|keygen|link|menuitem|meta|param|source|track|wbr)/i],l:[/>/],d:!0,m:!0},{a:"html",b:"mode switch js",j:[function(n){var t=/].*/i,e=/<\/script>/i,r=t.exec(n),a=e.exec(n);return r&&(!a||a.index/i],e:"js",m:!0,d:!0,f:!0},{a:"html",b:"mode switch css",j:[function(n){var t=/].*/i,e=/<\/style>/i,r=t.exec(n),a=e.exec(n);return r&&(!a||a.index/i],e:"css",m:!0,d:!0,f:!0},{a:"html",b:"html-tag",j:[//i],m:!0},{a:"js html",b:"tag",j:[function(n,t,e){var r=/<([A-Za-z][A-Za-z0-9\-\.]*)/,a=n.match(r);return a?(e.openingTag=a[1],{matchIndex:a.index,length:a[0].length}):null}],l:[function(n,t,e){var r=new RegExp("|\\s/>","i"),a=n.match(r);return a?{matchIndex:a.index,length:a[0].length}:null}],d:!0,m:!0},{a:"js",b:"line-comment",j:[/\/\//],l:[m],n:!0},{a:"js css",b:"block-comment",j:[/\/\*/],l:[/\*\//],n:!0,m:!0},{a:"js",b:"regex",j:[function(n,t){var e=/[(,=:[!&|?{};][\s]*\/[^\/]|^[\s]*\/[^\/]/,r=n.search(e);if(r!=-1){r=n.indexOf("/",r);var a=n.substring(r+1),l=f(a,t.l,t);if(l.matchIndex!=-1){a=a.substring(0,l.matchIndex);try{return new RegExp(a),{matchIndex:r,length:1}}catch(s){return null}}}return null}],l:[function(n){for(var t=0,e=n.indexOf("/");e!=-1;)try{new RegExp(n.substring(0,e));break}catch(r){e=n.indexOf("/",t),t=e+1}return e===-1?null:{matchIndex:e,length:1}}],n:!0,m:!0},{a:"js html",b:"quotes",h:j,j:[/"/],l:[/"/,m],n:!0,m:!0},{a:"js html",b:"quotes",h:j,j:[/'/],l:[/'/,m],n:!0,m:!0},{a:"js css",b:"string",j:[/(''|""|``)/],l:[/./,m]},{a:"js css",b:"string",j:[/\"(?=[^"])/],l:[/[^\\]\"/,m],n:!0,m:!0},{a:"js css",b:"string",j:[/\'(?=[^'])/],l:[/[^\\]\'/,m],n:!0,m:!0},{a:"js css",b:"string",j:[/\`(?=[^`])/],l:[/[^\\]\`/],n:!0,m:!0},{a:"js",b:"if",j:[/^if\s*(?=\()/,/[\s]+if\s*(?=\()/],l:[/else[\s]+/,h,/[{;]/],d:!0},{a:"js",b:"for|while",j:[/^(for|while)\s*(?=\()/],l:[h,/[{;]/],d:!0},{a:"js",b:"else",j:[/else[\s]+/],l:[/if[^\w$]/,h,/[{;]/],d:!0},{a:"js css",b:"bracket",j:[/\(\s*(var|let|const)?\s*/],l:[/\)/],d:!0,m:!0,f:!0},{a:"js",b:"dot-chain",j:[/^\.[A-Za-z$_]/],l:[/[\.;]/,m],d:!0,k:!0,c:-1},{a:"js",b:"dot-chain",j:[/\.\s*\r*\n/],l:[/[\.;})\]]/,/[^\s]\s*\r*\n/],d:!0},{a:"js css",b:"array",j:[/\[/],l:[/\]/],d:!0,m:!0,f:!0},{a:"js css",b:"block",j:[/\{/],l:[/\}/],d:!0,m:!0,f:!0},{a:"js",b:"var/let/const",j:[/(var|let|const)[\s]*\r*\n/],l:[h],d:!0,g:!0},{a:"js",b:"var/let/const",j:[/(var|let|const)\s+(?=[\w$])/],l:[/[,;=]/,h],d:!0},{a:"js",b:"var/let/const",i:["var/let/const","="],j:[/,[\s]*\r*\n/],l:[/[,;]/,h],d:!0,callback:o},{a:"js",b:"var/let/const",i:["var/let/const","="],j:[/^,/],l:[/[,;]/,h],k:!0,d:!0,c:-1,callback:o},{a:"js",b:"equality",j:[/[=<>!]=(=)?/],l:[/./]},{a:"js",b:"=",h:j,j:[/=/],l:[/[,;\)\]}]/,m]},{a:"js",b:"?:",j:[/\?/],l:[/[:;]/],g:!0,d:!0},{a:"js",b:"case",j:[/^(case|default)[\s:]/],l:[/break[\s;\r\n]/,/^return[\s;\r\n]/,/^case[\s]+/,/^default[\s:]/,/}/],g:function(n){return n.endPatternIndex<=1},d:!0,f:!0},{a:"js",b:"semicolon",j:[/;/],l:[/./]}];return{css:function(n,t){return a(n,r("css",g),t)},js:function(n,t){return a(n,r("js",g),t)},ts:function(n,t){return a(n,r("js",g),t)},html:function(n,t){var e=t&&t.indentHtmlTag?r("html",g,"html-tag"):r("html",g);return a(n,e,t)}}}(this);return n});