From 5f562b01cdafdc1c58e219c4d786f16b38e7b7bf Mon Sep 17 00:00:00 2001 From: Artur Arseniev Date: Thu, 9 Nov 2017 21:05:11 +0100 Subject: [PATCH] Update grapesjs v0.12.30 and mjml plugin v0.0.26 --- demo-mjml.html | 5 +- demo.html | 4 +- js/grapes.min.js | 4 +- js/grapesjs-mjml.min.js | 162308 ++++++++++++++++------------------ stylesheets/grapes.min.css | 2 +- 5 files changed, 78508 insertions(+), 83815 deletions(-) diff --git a/demo-mjml.html b/demo-mjml.html index 5a73e5bc3..9afc54fb4 100644 --- a/demo-mjml.html +++ b/demo-mjml.html @@ -5,13 +5,12 @@ GrapesJS MJML Newsletter Builder - + - - + diff --git a/demo.html b/demo.html index 52123c77a..9777fc8fd 100644 --- a/demo.html +++ b/demo.html @@ -4,7 +4,7 @@ GrapesJS Demo - Open Source Website Page Builder - + @@ -14,7 +14,7 @@ - + diff --git a/js/grapes.min.js b/js/grapes.min.js index c5e8ee406..f9d1fd87d 100644 --- a/js/grapes.min.js +++ b/js/grapes.min.js @@ -1,5 +1,5 @@ -/*! grapesjs - 0.12.25 */ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.grapesjs=e():t.grapesjs=e()}(this,function(){return function(t){function e(i){if(n[i])return n[i].exports;var r=n[i]={i:i,l:!1,exports:{}};return t[i].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var n={};return e.m=t,e.c=n,e.d=function(t,n,i){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:i})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=56)}([function(t,e,n){(function(i){var r,o;!function(s){var a="object"==typeof self&&self.self===self&&self||"object"==typeof i&&i.global===i&&i;r=[n(1),n(8),e],void 0!==(o=function(t,e,n){a.Backbone=s(a,n,t,e)}.apply(e,r))&&(t.exports=o)}(function(t,e,n,i){var r=t.Backbone,o=Array.prototype.slice;e.VERSION="1.3.3",e.$=i,e.noConflict=function(){return t.Backbone=r,this},e.emulateHTTP=!1,e.emulateJSON=!1;var s=function(t,e,i){switch(t){case 1:return function(){return n[e](this[i])};case 2:return function(t){return n[e](this[i],t)};case 3:return function(t,r){return n[e](this[i],l(t,this),r)};case 4:return function(t,r,o){return n[e](this[i],l(t,this),r,o)};default:return function(){var t=o.call(arguments);return t.unshift(this[i]),n[e].apply(n,t)}}},a=function(t,e,i){n.each(e,function(e,r){n[r]&&(t.prototype[r]=s(e,r,i))})},l=function(t,e){return n.isFunction(t)?t:n.isObject(t)&&!e._isModel(t)?c(t):n.isString(t)?function(e){return e.get(t)}:t},c=function(t){var e=n.matches(t);return function(t){return e(t.attributes)}},u=e.Events={},h=/\s+/,d=function(t,e,i,r,o){var s,a=0;if(i&&"object"==typeof i){void 0!==r&&"context"in o&&void 0===o.context&&(o.context=r);for(s=n.keys(i);athis.length&&(r=this.length),r<0&&(r+=this.length+1);var o,s,a=[],l=[],c=[],u=[],h={},d=e.add,f=e.merge,p=e.remove,g=!1,m=this.comparator&&null==r&&!1!==e.sort,v=n.isString(this.comparator)?this.comparator:null;for(s=0;s7),this._useHashChange=this._wantsHashChange&&this._hasHashChange,this._wantsPushState=!!this.options.pushState,this._hasPushState=!(!this.history||!this.history.pushState),this._usePushState=this._wantsPushState&&this._hasPushState,this.fragment=this.getFragment(),this.root=("/"+this.root+"/").replace(_,"/"),this._wantsHashChange&&this._wantsPushState){if(!this._hasPushState&&!this.atRoot()){var e=this.root.slice(0,-1)||"/";return this.location.replace(e+"#"+this.getPath()),!0}this._hasPushState&&this.atRoot()&&this.navigate(this.getHash(),{replace:!0})}if(!this._hasHashChange&&this._wantsHashChange&&!this._usePushState){this.iframe=document.createElement("iframe"),this.iframe.src="javascript:0",this.iframe.style.display="none",this.iframe.tabIndex=-1;var i=document.body,r=i.insertBefore(this.iframe,i.firstChild).contentWindow;r.document.open(),r.document.close(),r.location.hash="#"+this.fragment}var o=window.addEventListener||function(t,e){return attachEvent("on"+t,e)};if(this._usePushState?o("popstate",this.checkUrl,!1):this._useHashChange&&!this.iframe?o("hashchange",this.checkUrl,!1):this._wantsHashChange&&(this._checkUrlInterval=setInterval(this.checkUrl,this.interval)),!this.options.silent)return this.loadUrl()},stop:function(){var t=window.removeEventListener||function(t,e){return detachEvent("on"+t,e)};this._usePushState?t("popstate",this.checkUrl,!1):this._useHashChange&&!this.iframe&&t("hashchange",this.checkUrl,!1),this.iframe&&(document.body.removeChild(this.iframe),this.iframe=null),this._checkUrlInterval&&clearInterval(this._checkUrlInterval),D.started=!1},route:function(t,e){this.handlers.unshift({route:t,callback:e})},checkUrl:function(t){var e=this.getFragment();if(e===this.fragment&&this.iframe&&(e=this.getHash(this.iframe.contentWindow)),e===this.fragment)return!1;this.iframe&&this.navigate(e),this.loadUrl()},loadUrl:function(t){return!!this.matchRoot()&&(t=this.fragment=this.getFragment(t),n.some(this.handlers,function(e){if(e.route.test(t))return e.callback(t),!0}))},navigate:function(t,e){if(!D.started)return!1;e&&!0!==e||(e={trigger:!!e}),t=this.getFragment(t||"");var n=this.root;""!==t&&"?"!==t.charAt(0)||(n=n.slice(0,-1)||"/");var i=n+t;if(t=this.decodeFragment(t.replace(F,"")),this.fragment!==t){if(this.fragment=t,this._usePushState)this.history[e.replace?"replaceState":"pushState"]({},document.title,i);else{if(!this._wantsHashChange)return this.location.assign(i);if(this._updateHash(this.location,t,e.replace),this.iframe&&t!==this.getHash(this.iframe.contentWindow)){var r=this.iframe.contentWindow;e.replace||(r.document.open(),r.document.close()),this._updateHash(r.location,t,e.replace)}}return e.trigger?this.loadUrl(t):void 0}},_updateHash:function(t,e,n){if(n){var i=t.href.replace(/(javascript:|#).*$/,"");t.replace(i+"#"+e)}else t.hash="#"+e}}),e.history=new D;var $=function(t,e){var i,r=this;return i=t&&n.has(t,"constructor")?t.constructor:function(){return r.apply(this,arguments)},n.extend(i,r,e),i.prototype=n.create(r.prototype,t),i.prototype.constructor=i,i.__super__=r.prototype,i};b.extend=x.extend=P.extend=S.extend=D.extend=$;var z=function(){throw new Error('A "url" property or function must be specified')},H=function(t,e){var n=e.error;e.error=function(i){n&&n.call(e.context,t,i,e),t.trigger("error",t,i,e)}};return e})}).call(e,n(15))},function(t,e,n){var i,r;(function(){function n(t){function e(e,n,i,r,o,s){for(;o>=0&&o0?0:a-1;return arguments.length<3&&(r=n[s?s[l]:l],l+=t),e(n,i,r,s,l,a)}}function o(t){return function(e,n,i){n=S(n,i);for(var r=A(e),o=t>0?0:r-1;o>=0&&o0?s=o>=0?o:Math.max(o+a,s):a=o>=0?Math.min(o+1,a):o+a+1;else if(n&&o&&a)return o=n(i,r),i[o]===r?o:-1;if(r!==r)return o=e(p.call(i,s,a),C.isNaN),o>=0?o+s:-1;for(o=t>0?s:a-1;o>=0&&o=0&&e<=P};C.each=C.forEach=function(t,e,n){e=k(e,n);var i,r;if(L(t))for(i=0,r=t.length;i=0},C.invoke=function(t,e){var n=p.call(arguments,2),i=C.isFunction(e);return C.map(t,function(t){var r=i?e:t[e];return null==r?r:r.apply(t,n)})},C.pluck=function(t,e){return C.map(t,C.property(e))},C.where=function(t,e){return C.filter(t,C.matcher(e))},C.findWhere=function(t,e){return C.find(t,C.matcher(e))},C.max=function(t,e,n){var i,r,o=-1/0,s=-1/0;if(null==e&&null!=t){t=L(t)?t:C.values(t);for(var a=0,l=t.length;ao&&(o=i)}else e=S(e,n),C.each(t,function(t,n,i){((r=e(t,n,i))>s||r===-1/0&&o===-1/0)&&(o=t,s=r)});return o},C.min=function(t,e,n){var i,r,o=1/0,s=1/0;if(null==e&&null!=t){t=L(t)?t:C.values(t);for(var a=0,l=t.length;ai||void 0===n)return 1;if(ne?(s&&(clearTimeout(s),s=null),a=c,o=t.apply(i,r),s||(i=r=null)):s||!1===n.trailing||(s=setTimeout(l,u)),o}},C.debounce=function(t,e,n){var i,r,o,s,a,l=function(){var c=C.now()-s;c=0?i=setTimeout(l,e-c):(i=null,n||(a=t.apply(o,r),i||(o=r=null)))};return function(){o=this,r=arguments,s=C.now();var c=n&&!i;return i||(i=setTimeout(l,e)),c&&(a=t.apply(o,r),o=r=null),a}},C.wrap=function(t,e){return C.partial(e,t)},C.negate=function(t){return function(){return!t.apply(this,arguments)}},C.compose=function(){var t=arguments,e=t.length-1;return function(){for(var n=e,i=t[e].apply(this,arguments);n--;)i=t[n].call(this,i);return i}},C.after=function(t,e){return function(){if(--t<1)return e.apply(this,arguments)}},C.before=function(t,e){var n;return function(){return--t>0&&(n=e.apply(this,arguments)),t<=1&&(e=null),n}},C.once=C.partial(C.before,2);var I=!{toString:null}.propertyIsEnumerable("toString"),_=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"];C.keys=function(t){if(!C.isObject(t))return[];if(y)return y(t);var e=[];for(var n in t)C.has(t,n)&&e.push(n);return I&&a(t,e),e},C.allKeys=function(t){if(!C.isObject(t))return[];var e=[];for(var n in t)e.push(n);return I&&a(t,e),e},C.values=function(t){for(var e=C.keys(t),n=e.length,i=Array(n),r=0;r":">",'"':""","'":"'","`":"`"},z=C.invert($),H=function(t){var e=function(e){return t[e]},n="(?:"+C.keys(t).join("|")+")",i=RegExp(n),r=RegExp(n,"g");return function(t){return t=null==t?"":""+t,i.test(t)?t.replace(r,e):t}};C.escape=H($),C.unescape=H(z),C.result=function(t,e,n){var i=null==t?void 0:t[e];return void 0===i&&(i=n),C.isFunction(i)?i.call(t):i};var R=0;C.uniqueId=function(t){var e=++R+"";return t?t+e:e},C.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var V=/(.)^/,j={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},B=/\\|'|\r|\n|\u2028|\u2029/g,W=function(t){return"\\"+j[t]};C.template=function(t,e,n){!e&&n&&(e=n),e=C.defaults({},e,C.templateSettings);var i=RegExp([(e.escape||V).source,(e.interpolate||V).source,(e.evaluate||V).source].join("|")+"|$","g"),r=0,o="__p+='";t.replace(i,function(e,n,i,s,a){return o+=t.slice(r,a).replace(B,W),r=a+e.length,n?o+="'+\n((__t=("+n+"))==null?'':_.escape(__t))+\n'":i?o+="'+\n((__t=("+i+"))==null?'':__t)+\n'":s&&(o+="';\n"+s+"\n__p+='"),e}),o+="';\n",e.variable||(o="with(obj||{}){\n"+o+"}\n"),o="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+o+"return __p;\n";try{var s=new Function(e.variable||"obj","_",o)}catch(t){throw t.source=o,t}var a=function(t){return s.call(this,t,C)};return a.source="function("+(e.variable||"obj")+"){\n"+o+"}",a},C.chain=function(t){var e=C(t);return e._chain=!0,e};var U=function(t,e){return t._chain?C(e).chain():e};C.mixin=function(t){C.each(C.functions(t),function(e){var n=C[e]=t[e];C.prototype[e]=function(){var t=[this._wrapped];return f.apply(t,arguments),U(this,n.apply(C,t))}})},C.mixin(C),C.each(["pop","push","reverse","shift","sort","splice","unshift"],function(t){var e=u[t];C.prototype[t]=function(){var n=this._wrapped;return e.apply(n,arguments),"shift"!==t&&"splice"!==t||0!==n.length||delete n[0],U(this,n)}}),C.each(["concat","join","slice"],function(t){var e=u[t];C.prototype[t]=function(){return U(this,e.apply(this._wrapped,arguments))}}),C.prototype.value=function(){return this._wrapped},C.prototype.valueOf=C.prototype.toJSON=C.prototype.value,C.prototype.toString=function(){return""+this._wrapped},i=[],void 0!==(r=function(){return C}.apply(e,i))&&(t.exports=r)}).call(this)},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=function(t,e,n){e=e.split(/\s+/),t=t instanceof Array?t:[t];for(var i=0;i0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.sm||e.em||{},i=this.parent(),s=i&&i.attributes;if(s&&s.propagate){var a={},l=s.propagate;l.forEach(function(t){return a[t]=i.get(t)}),a.propagate=l,a=r({},a,t),this.set(a)}var c=this.get("propagate");c&&this.set("propagate",(0,o.isArray)(c)?c:[c]),e&&e.config&&e.config.voidElements.indexOf(this.get("tagName"))>=0&&this.set("void",!0),e.em=n,this.opt=e,this.sm=n,this.em=n,this.config=t,this.set("attributes",this.get("attributes")||{}),this.listenTo(this,"change:script",this.scriptUpdated),this.listenTo(this,"change:traits",this.traitsUpdated),this.loadTraits(),this.initClasses(),this.initComponents(),this.initToolbar(),["stylable"].forEach(function(t){var e=this.get(t);if("string"==typeof e){var n=e.split(",").map(function(t){return t.trim()});this.set(t,n)}},this),this.set("status",""),this.init()},setAttributes:function(t){t=r({},t);var e=t.class;e&&this.setClass(e),delete t.class;var n=t.style;n&&this.setStyle(n),delete t.style,this.set("attributes",t)},getAttributes:function(){return this.get("attributes")},addClass:function(t){var e=this.em.get("SelectorManager").addClass(t);return this.get("classes").add(e)},setClass:function(t){return this.get("classes").reset(),this.addClass(t)},initClasses:function(){var t=this.normalizeClasses(this.get("classes")||this.config.classes||[]);return this.set("classes",new u(t)),this},initComponents:function(){var t=new c(null,this.opt);return t.parent=this,t.reset(this.get("components")),this.set("components",t),this},init:function(){},append:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.components().add(t,e);return(0,o.isArray)(n)?n:[n]},components:function(t){var e=this.get("components");if((0,o.isUndefined)(t))return e;e.reset(),t&&this.append(t)},parent:function(){var t=this.collection;return t&&t.parent},scriptUpdated:function(){this.set("scriptUpdated",1)},traitsUpdated:function(){var t=0,e=Object.assign({},this.get("attributes")),n=this.get("traits");if(!(n instanceof h))return void this.loadTraits();n.each(function(n){if(t=1,!n.get("changeProp")){var i=n.getInitValue();i&&(e[n.get("name")]=i)}}),t&&this.set("attributes",e)},initToolbar:function(){var t=this;if(!t.get("toolbar")){var e=[];t.collection&&e.push({attributes:{class:"fa fa-arrow-up"},command:"select-parent"}),t.get("draggable")&&e.push({attributes:{class:"fa fa-arrows"},command:"tlb-move"}),t.get("copyable")&&e.push({attributes:{class:"fa fa-clone"},command:"tlb-clone"}),t.get("removable")&&e.push({attributes:{class:"fa fa-trash-o"},command:"tlb-delete"}),t.set("toolbar",e)}},loadTraits:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=new h([],this.opt);return n.setTarget(this),t=t||this.get("traits"),t.length&&n.add(t),this.set("traits",n,e),this},normalizeClasses:function(t){var e=[];if(this.sm.get){var n=this.sm.get("SelectorManager");if(n)return t.forEach(function(t){var i="";i="string"==typeof t?t:t.name;var r=n.add(i);e.push(r)}),e}},clone:function(t){var n=e.clone(this.attributes),i=this.get("components"),r=this.get("traits"),o=this.get("classes");return n.components=[],n.classes=[],n.traits=[],i.each(function(t,e){n.components[e]=t.clone(1)}),r.each(function(t,e){n.traits[e]=t.clone()}),o.each(function(t,e){n.classes[e]=t.get("name")}),n.status="",n.view="",t&&(this.opt.collection=null),new this.constructor(n,this.opt)},getName:function(){var t=this.get("custom-name"),e=this.get("tagName");e="div"==e?"box":e;var n=this.get("type")||e;return n=n.charAt(0).toUpperCase()+n.slice(1),t||n},getIcon:function(){var t=this.get("icon");return t?t+" ":""},toHTML:function(t){var n="",r=this,o=r.get("tagName"),s=0,a=r.get("void"),l="",c="",u=this.getAttrToHTML();for(var h in u){"id"==h&&(s=1);var d=u[h];c+=void 0!==(void 0===d?"undefined":i(d))&&""!==d?" "+h+'="'+d+'"':""}var f="";return r.get("classes").each(function(t){f+=" "+t.get("name")}),f=""!==f?' class="'+f.trim()+'"':"",e.isEmpty(r.get("style"))||s||(l=' id="'+r.getId()+'" '),n+="<"+o+f+l+c+(a?"/":"")+">"+r.get("content"),r.get("components").each(function(t){n+=t.toHTML()}),a||(n+=""),n},getAttrToHTML:function(){var t=this.get("attributes")||{};return delete t.style,t},toJSON:function(){for(var t=arguments.length,e=Array(t),n=0;n\n '+this.templateLabel(t)+'\n \n
\n '+this.templateInput(t)+"\n
\n "},templateLabel:function(t){var e=this.pfx;return'\n \n '+t.get("name")+'\n \n ⨯\n '},templateInput:function(t){return'\n
\n \n
\n '},events:{change:"inputValueChanged"},initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,r.bindAll)(this,"targetUpdated"),this.config=t.config||{};var e=this.config.em;this.em=e,this.pfx=this.config.stylePrefix||"",this.ppfx=this.config.pStylePrefix||"",this.target=t.target||{},this.propTarget=t.propTarget||{},this.onChange=t.onChange,this.onInputRender=t.onInputRender||{},this.customValue=t.customValue||{};var n=this.model;this.property=n.get("property"),this.input=null;var i=this.pfx;this.inputHolderId="#"+i+"input-holder",this.sector=n.collection&&n.collection.sector,n.view=this,n.get("value")||n.set("value",n.getDefaultValue()),e&&e.on("update:component:style:"+this.property,this.targetUpdated),this.listenTo(this.propTarget,"update",this.targetUpdated),this.listenTo(n,"destroy remove",this.remove),this.listenTo(n,"change:value",this.modelValueChanged),this.listenTo(n,"targetUpdated",this.targetUpdated),this.listenTo(n,"change:visible",this.updateVisibility),this.listenTo(n,"change:status",this.updateStatus),this.events["click ."+i+"clear"]="clear",this.delegateEvents();var o=this.init&&this.init.bind(this);o&&o()},updateStatus:function(){var t=this.model.get("status"),e=this.pfx,n=this.ppfx,i=this.config,r=n+"color-hl",o=n+"color-warn",s=this.$el.children("."+e+"label"),a=this.getClearEl().style;switch(s.removeClass(r+" "+o),a.display="none",t){case"updated":s.addClass(r),i.clearProperties&&(a.display="inline");break;case"computed":s.addClass(o)}},clear:function(){this.getTargetModel().removeStyle(this.model.get("property")),this.targetUpdated()},getClearEl:function(){return this.el.querySelector("."+this.pfx+"clear")},getTarget:function(){return this.getTargetModel()},getTargetModel:function(){return this.propTarget&&this.propTarget.model},getHelperModel:function(){return this.propTarget&&this.propTarget.helper},inputValueChanged:function(t){t&&t.stopPropagation(),this.model.setValue(this.getInputValue(),1,{fromInput:1}),this.elementUpdated()},elementUpdated:function(){this.model.set("status","updated");var t=this.model.parent,e=t&&t.view;e&&e.elementUpdated()},setStatus:function(t){this.model.set("status",t);var e=this.model.parent;e&&e.set("status",t)},targetUpdated:function(){if(this.checkVisibility()){var t=this.config,e=t.em,n=this.model,i="",r="",o=this.getTargetValue({ignoreDefault:1}),s=n.getDefaultValue(),a=this.getComputedValue();o?(i=o,t.highlightChanged&&(r="updated")):a&&t.showComputed&&a!=s?(i=a,t.highlightComputed&&(r="computed")):(i=s,r=""),n.setValue(i,0,{fromTarget:1}),this.setStatus(r),e&&(e.trigger("styleManager:change",this),e.trigger("styleManager:change:"+n.get("property"),this))}},checkVisibility:function(){var t=1;return this.config.hideNotStylable&&(this.isTargetStylable()&&this.isComponentStylable()?this.show():(this.hide(),t=0),this.sector&&this.sector.trigger("updateVisibility")),t},getTargetValue:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.model,i=this.getTargetModel(),r=this.customValue;if(!i)return t;if(t=i.getStyle()[n.get("property")],t||e.ignoreDefault||(t=n.getDefaultValue()),"function"==typeof r&&!e.ignoreCustomValue){var o=n.collection.indexOf(n),s=r(this,o);s&&(t=s)}return t},getComputedValue:function(){var t=this.propTarget,e=t.computed||{},n=t.computedDefault||{},i=this.config.avoidComputed||[],r=this.model.get("property"),s=i.indexOf(r)<0,a=e[r],l=n[(0,o.camelCase)(r)];return e&&s&&l!==a&&a},getInputValue:function(){var t=this.getInputEl();return t?t.value:""},modelValueChanged:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=this.config.em,r=this.model,o=r.getFullValue(),s=this.getTarget(),a=this.onChange;n.fromInput||this.setValue(o),s&&this.isTargetStylable()&&this.isComponentStylable()&&(n.fromTarget||(a&&!n.fromParent?a(s,this,n):this.updateTargetStyle(o,null,n)),i&&(i.trigger("component:update",r),i.trigger("component:styleUpdate",r),i.trigger("component:styleUpdate:"+r.get("property"),r)))},updateTargetStyle:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=e||this.model.get("property"),r=this.getTarget(),o=r.getStyle();t?o[i]=t:delete o[i],r.setStyle(o,n);var s=this.getHelperModel();s&&s.setStyle(o,n)},isTargetStylable:function(){var t=this.getTarget().get("stylable");return t instanceof Array&&(t=i.indexOf(t,this.property)>=0),t},isComponentStylable:function(){var t=this.em,e=t&&t.get("selectedComponent");if(!e)return!0;var n=e.get("stylable");return n instanceof Array&&(n=i.indexOf(n,this.property)>=0),n},setRawValue:function(t){this.setValue(this.model.parseValue(t))},setValue:function(t){var e=this.model,n=t||e.getDefaultValue(),i=this.getInputEl();i&&(i.value=n)},getInputEl:function(){return this.input||(this.input=this.el.querySelector("input")),this.input},updateVisibility:function(){this.el.style.display=this.model.get("visible")?"block":"none"},show:function(){this.model.set("visible",1)},hide:function(){this.model.set("visible",0)},cleanValue:function(){this.setValue("")},render:function(){var t=this.pfx,e=this.model,n=this.el;n.innerHTML=this.template(e),n.className=t+"property "+t+e.get("type"),this.updateStatus();var i=this.onRender&&this.onRender.bind(this);i&&i(),this.setValue(e.get("value"),{targetUpdate:1})}})}).call(e,n(0),n(1))},function(t,e,n){!function(e,n){t.exports=n()}(0,function(){"use strict";function t(t){return new RegExp("(^|\\s)"+t+"(?:$|\\s)\\s*")}function e(t){for(var e=t.childNodes.length;e>0;--e)t.removeChild(t.firstChild);return t}function n(t,n){return e(t).appendChild(n)}function i(t,e,n,i){var r=document.createElement(t);if(n&&(r.className=n),i&&(r.style.cssText=i),"string"==typeof e)r.appendChild(document.createTextNode(e));else if(e)for(var o=0;o=e)return s+(e-o);s+=a-o,s+=n-s%n,o=a+1}}function d(t,e){for(var n=0;n=e)return i+Math.min(s,e-r);if(r+=o-i,r+=n-r%n,i=o+1,r>=e)return i}}function p(t){for(;qs.length<=t;)qs.push(g(qs)+" ");return qs[t]}function g(t){return t[t.length-1]}function m(t,e){for(var n=[],i=0;i"ย€"&&(t.toUpperCase()!=t.toLowerCase()||Ks.test(t))}function w(t,e){return e?!!(e.source.indexOf("\\w")>-1&&x(t))||e.test(t):x(t)}function C(t){for(var e in t)if(t.hasOwnProperty(e)&&t[e])return!1;return!0}function k(t){return t.charCodeAt(0)>=768&&Gs.test(t)}function S(t,e,n){for(;(n<0?e>0:en?-1:1;;){if(e==n)return e;var r=(e+n)/2,o=i<0?Math.ceil(r):Math.floor(r);if(o==e)return t(o)?e:n;t(o)?n=o:e=o+i}}function M(t,e,n){var o=this;this.input=n,o.scrollbarFiller=i("div",null,"CodeMirror-scrollbar-filler"),o.scrollbarFiller.setAttribute("cm-not-content","true"),o.gutterFiller=i("div",null,"CodeMirror-gutter-filler"),o.gutterFiller.setAttribute("cm-not-content","true"),o.lineDiv=r("div",null,"CodeMirror-code"),o.selectionDiv=i("div",null,null,"position: relative; z-index: 1"),o.cursorDiv=i("div",null,"CodeMirror-cursors"),o.measure=i("div",null,"CodeMirror-measure"),o.lineMeasure=i("div",null,"CodeMirror-measure"),o.lineSpace=r("div",[o.measure,o.lineMeasure,o.selectionDiv,o.cursorDiv,o.lineDiv],null,"position: relative; outline: none");var s=r("div",[o.lineSpace],"CodeMirror-lines");o.mover=i("div",[s],null,"position: relative"),o.sizer=i("div",[o.mover],"CodeMirror-sizer"),o.sizerWidth=null,o.heightForcer=i("div",null,null,"position: absolute; height: "+Vs+"px; width: 1px;"),o.gutters=i("div",null,"CodeMirror-gutters"),o.lineGutter=null,o.scroller=i("div",[o.sizer,o.heightForcer,o.gutters],"CodeMirror-scroll"),o.scroller.setAttribute("tabIndex","-1"),o.wrapper=i("div",[o.scrollbarFiller,o.gutterFiller,o.scroller],"CodeMirror"),vs&&ys<8&&(o.gutters.style.zIndex=-1,o.scroller.style.paddingRight=0),bs||fs&&Ps||(o.scroller.draggable=!0),t&&(t.appendChild?t.appendChild(o.wrapper):t(o.wrapper)),o.viewFrom=o.viewTo=e.first,o.reportedViewFrom=o.reportedViewTo=e.first,o.view=[],o.renderedView=null,o.externalMeasured=null,o.viewOffset=0,o.lastWrapHeight=o.lastWrapWidth=0,o.updateLineNumbers=null,o.nativeBarWidth=o.barHeight=o.barWidth=0,o.scrollbarsClipped=!1,o.lineNumWidth=o.lineNumInnerWidth=o.lineNumChars=null,o.alignWidgets=!1,o.cachedCharWidth=o.cachedTextHeight=o.cachedPaddingH=null,o.maxLine=null,o.maxLineLength=0,o.maxLineChanged=!1,o.wheelDX=o.wheelDY=o.wheelStartX=o.wheelStartY=null,o.shift=!1,o.selForContextMenu=null,o.activeTouch=null,n.init(o)}function E(t,e){if((e-=t.first)<0||e>=t.size)throw new Error("There is no line "+(e+t.first)+" in the document.");for(var n=t;!n.lines;)for(var i=0;;++i){var r=n.children[i],o=r.chunkSize();if(e=t.first&&en?_(n,E(t,n).text.length):B(e,E(t,e.line).text.length)}function B(t,e){var n=t.ch;return null==n||n>e?_(t.line,e):n<0?_(t.line,0):t}function W(t,e){for(var n=[],i=0;i=e:o.to>e);(i||(i=[])).push(new K(s,o.from,l?null:o.to))}}return i}function Z(t,e,n){var i;if(t)for(var r=0;r=e:o.to>e);if(a||o.from==e&&"bookmark"==s.type&&(!n||o.marker.insertLeft)){var l=null==o.from||(s.inclusiveLeft?o.from<=e:o.from0&&a)for(var w=0;w0)){var u=[l,1],h=F(c.from,a.from),f=F(c.to,a.to);(h<0||!s.inclusiveLeft&&!h)&&u.push({from:c.from,to:a.from}),(f>0||!s.inclusiveRight&&!f)&&u.push({from:a.to,to:c.to}),r.splice.apply(r,u),l+=u.length-3}}return r}function nt(t){var e=t.markedSpans;if(e){for(var n=0;n=0&&h<=0||u<=0&&h>=0)&&(u<=0&&(l.marker.inclusiveRight&&r.inclusiveLeft?F(c.to,n)>=0:F(c.to,n)>0)||u>=0&&(l.marker.inclusiveRight&&r.inclusiveLeft?F(c.from,i)<=0:F(c.from,i)<0)))return!0}}}function ht(t){for(var e;e=lt(t);)t=e.find(-1,!0).line;return t}function dt(t){for(var e;e=ct(t);)t=e.find(1,!0).line;return t}function ft(t){for(var e,n;e=ct(t);)t=e.find(1,!0).line,(n||(n=[])).push(t);return n}function pt(t,e){var n=E(t,e),i=ht(n);return n==i?e:O(i)}function gt(t,e){if(e>t.lastLine())return e;var n,i=E(t,e);if(!mt(t,i))return e;for(;n=ct(i);)i=n.find(1,!0).line;return O(i)+1}function mt(t,e){var n=Xs&&e.markedSpans;if(n)for(var i=void 0,r=0;re.maxLineLength&&(e.maxLineLength=n,e.maxLine=t)})}function wt(t,e,n,i){if(!t)return i(e,n,"ltr",0);for(var r=!1,o=0;oe||e==n&&s.to==e)&&(i(Math.max(s.from,e),Math.min(s.to,n),1==s.level?"rtl":"ltr",o),r=!0)}r||i(e,n,"ltr")}function Ct(t,e,n){var i;Js=null;for(var r=0;re)return r;o.to==e&&(o.from!=o.to&&"before"==n?i=r:Js=r),o.from==e&&(o.from!=o.to&&"before"!=n?i=r:Js=r)}return null!=i?i:Js}function kt(t,e){var n=t.order;return null==n&&(n=t.order=Zs(t.text,e)),n}function St(t,e){return t._handlers&&t._handlers[e]||Qs}function Tt(t,e,n){if(t.removeEventListener)t.removeEventListener(e,n,!1);else if(t.detachEvent)t.detachEvent("on"+e,n);else{var i=t._handlers,r=i&&i[e];if(r){var o=d(r,n);o>-1&&(i[e]=r.slice(0,o).concat(r.slice(o+1)))}}}function Mt(t,e){var n=St(t,e);if(n.length)for(var i=Array.prototype.slice.call(arguments,2),r=0;r0}function Lt(t){t.prototype.on=function(t,e){ta(this,t,e)},t.prototype.off=function(t,e){Tt(this,t,e)}}function Ot(t){t.preventDefault?t.preventDefault():t.returnValue=!1}function Nt(t){t.stopPropagation?t.stopPropagation():t.cancelBubble=!0}function Dt(t){return null!=t.defaultPrevented?t.defaultPrevented:0==t.returnValue}function It(t){Ot(t),Nt(t)}function _t(t){return t.target||t.srcElement}function Ft(t){var e=t.which;return null==e&&(1&t.button?e=1:2&t.button?e=3:4&t.button&&(e=2)),As&&t.ctrlKey&&1==e&&(e=3),e}function $t(t){if(null==Hs){var e=i("span","โ€‹");n(t,i("span",[e,document.createTextNode("x")])),0!=t.firstChild.offsetHeight&&(Hs=e.offsetWidth<=1&&e.offsetHeight>2&&!(vs&&ys<8))}var r=Hs?i("span","โ€‹"):i("span","ย ",null,"display: inline-block; width: 1px; margin-right: -1px");return r.setAttribute("cm-text",""),r}function zt(t){if(null!=Rs)return Rs;var i=n(t,document.createTextNode("AุฎA")),r=Ds(i,0,1).getBoundingClientRect(),o=Ds(i,1,2).getBoundingClientRect();return e(t),!(!r||r.left==r.right)&&(Rs=o.right-r.right<3)}function Ht(t){if(null!=oa)return oa;var e=n(t,i("span","x")),r=e.getBoundingClientRect(),o=Ds(e,0,1).getBoundingClientRect();return oa=Math.abs(r.left-o.left)>1}function Rt(t,e){arguments.length>2&&(e.dependencies=Array.prototype.slice.call(arguments,2)),sa[t]=e}function Vt(t,e){aa[t]=e}function jt(t){if("string"==typeof t&&aa.hasOwnProperty(t))t=aa[t];else if(t&&"string"==typeof t.name&&aa.hasOwnProperty(t.name)){var e=aa[t.name];"string"==typeof e&&(e={name:e}),t=b(e,t),t.name=e.name}else{if("string"==typeof t&&/^[\w\-]+\/[\w\-]+\+xml$/.test(t))return jt("application/xml");if("string"==typeof t&&/^[\w\-]+\/[\w\-]+\+json$/.test(t))return jt("application/json")}return"string"==typeof t?{name:t}:t||{name:"null"}}function Bt(t,e){e=jt(e);var n=sa[e.name];if(!n)return Bt(t,"text/plain");var i=n(t,e);if(la.hasOwnProperty(e.name)){var r=la[e.name];for(var o in r)r.hasOwnProperty(o)&&(i.hasOwnProperty(o)&&(i["_"+o]=i[o]),i[o]=r[o])}if(i.name=e.name,e.helperType&&(i.helperType=e.helperType),e.modeProps)for(var s in e.modeProps)i[s]=e.modeProps[s];return i}function Wt(t,e){u(e,la.hasOwnProperty(t)?la[t]:la[t]={})}function Ut(t,e){if(!0===e)return e;if(t.copyState)return t.copyState(e);var n={};for(var i in e){var r=e[i];r instanceof Array&&(r=r.concat([])),n[i]=r}return n}function qt(t,e){for(var n;t.innerMode&&(n=t.innerMode(e))&&n.mode!=t;)e=n.state,t=n.mode;return n||{mode:t,state:e}}function Kt(t,e,n){return!t.startState||t.startState(e,n)}function Gt(t,e,n,i){var r=[t.state.modeGen],o={};ne(t,e.text,t.doc.mode,n,function(t,e){return r.push(t,e)},o,i);for(var s=n.state,a=0;at&&r.splice(l,1,t,r[l+1],i),l+=2,c=Math.min(t,i)}if(e)if(a.opaque)r.splice(n,l-n,t,"overlay "+e),l=n+2;else for(;nt.options.maxHighlightLength&&Ut(t.doc.mode,i.state),o=Gt(t,e,i);r&&(i.state=r),e.stateAfter=i.save(!r),e.styles=o.styles,o.classes?e.styleClasses=o.classes:e.styleClasses&&(e.styleClasses=null),n===t.doc.highlightFrontier&&(t.doc.modeFrontier=Math.max(t.doc.modeFrontier,++t.doc.highlightFrontier))}return e.styles}function Xt(t,e,n){var i=t.doc,r=t.display;if(!i.mode.startState)return new ha(i,!0,e);var o=ie(t,e,n),s=o>i.first&&E(i,o-1).stateAfter,a=s?ha.fromSaved(i,s,o):new ha(i,Kt(i.mode),o);return i.iter(o,e,function(n){Jt(t,n.text,a);var i=a.line;n.stateAfter=i==e-1||i%5==0||i>=r.viewFrom&&ie.start)return o}throw new Error("Mode "+t.name+" failed to advance stream.")}function te(t,e,n,i){var r,o=t.doc,s=o.mode;e=j(o,e);var a,l=E(o,e.line),c=Xt(t,e.line,n),u=new ca(l.text,t.options.tabSize,c);for(i&&(a=[]);(i||u.post.options.maxHighlightLength?(a=!1,s&&Jt(t,e,i,h.pos),h.pos=e.length,l=null):l=ee(Qt(n,h,i.state,d),o),d){var f=d[0].name;f&&(l="m-"+(l?f+" "+l:f))}if(!a||u!=l){for(;cs;--a){if(a<=o.first)return o.first;var l=E(o,a-1),c=l.stateAfter;if(c&&(!n||a+(c instanceof ua?c.lookAhead:0)<=o.modeFrontier))return a;var u=h(l.text,null,t.options.tabSize);(null==r||i>u)&&(r=a-1,i=u)}return r}function re(t,e){if(t.modeFrontier=Math.min(t.modeFrontier,e),!(t.highlightFrontiern;i--){var r=E(t,i).stateAfter;if(r&&(!(r instanceof ua)||i+r.lookAhead1&&!/ /.test(t))return t;for(var n=e,i="",r=0;rc&&h.from<=c));d++);if(h.to>=u)return t(n,i,r,o,s,a,l);t(n,i.slice(0,h.to-c),r,o,null,a,l),o=null,i=i.slice(h.to-c),c=h.to}}}function fe(t,e,n,i){var r=!i&&n.widgetNode;r&&t.map.push(t.pos,t.pos+e,r),!i&&t.cm.display.input.needsContentAttribute&&(r||(r=t.content.appendChild(document.createElement("span"))),r.setAttribute("cm-marker",n.id)),r&&(t.cm.display.input.setUneditable(r),t.content.appendChild(r)),t.pos+=e,t.trailingSpace=!1}function pe(t,e,n){var i=t.markedSpans,r=t.text,o=0;if(i)for(var s,a,l,c,u,h,d,f=r.length,p=0,g=1,m="",v=0;;){if(v==p){l=c=u=h=a="",d=null,v=1/0;for(var y=[],b=void 0,x=0;xp||C.collapsed&&w.to==p&&w.from==p)?(null!=w.to&&w.to!=p&&v>w.to&&(v=w.to,c=""),C.className&&(l+=" "+C.className),C.css&&(a=(a?a+";":"")+C.css),C.startStyle&&w.from==p&&(u+=" "+C.startStyle),C.endStyle&&w.to==v&&(b||(b=[])).push(C.endStyle,w.to),C.title&&!h&&(h=C.title),C.collapsed&&(!d||st(d.marker,C)<0)&&(d=w)):w.from>p&&v>w.from&&(v=w.from)}if(b)for(var k=0;k=f)break;for(var T=Math.min(f,v);;){if(m){var M=p+m.length;if(!d){var E=M>T?m.slice(0,T-p):m;e.addToken(e,E,s?s+l:l,u,p+E.length==v?c:"",h,a)}if(M>=T){m=m.slice(T-p),p=T;break}p=M,u=""}m=r.slice(o,o=n[g++]),s=ae(n[g++],e.cm.options)}}else for(var P=1;P2&&o.push((l.bottom+c.top)/2-n.top)}}o.push(n.bottom-n.top)}}function Be(t,e,n){if(t.line==e)return{map:t.measure.map,cache:t.measure.cache};for(var i=0;in)return{map:t.measure.maps[r],cache:t.measure.caches[r],before:!0}}function We(t,e){e=ht(e);var i=O(e),r=t.display.externalMeasured=new ge(t.doc,e,i);r.lineN=i;var o=r.built=le(t,r);return r.text=o.pre,n(t.display.lineMeasure,o.pre),r}function Ue(t,e,n,i){return Ge(t,Ke(t,e),n,i)}function qe(t,e){if(e>=t.display.viewFrom&&e=n.lineN&&ee)&&(o=l-a,r=o-1,e>=l&&(s="right")),null!=r){if(i=t[c+2],a==l&&n==(i.insertLeft?"left":"right")&&(s=n),"left"==n&&0==r)for(;c&&t[c-2]==t[c-3]&&t[c-1].insertLeft;)i=t[2+(c-=3)],s="left";if("right"==n&&r==l-a)for(;c=0&&(n=t[r]).left==n.right;r--);return n}function Je(t,e,n,i){var r,o=Ye(e.map,n,i),s=o.node,a=o.start,l=o.end,c=o.collapse;if(3==s.nodeType){for(var u=0;u<4;u++){for(;a&&k(e.line.text.charAt(o.coverStart+a));)--a;for(;o.coverStart+l0&&(c=i="right");var h;r=t.options.lineWrapping&&(h=s.getClientRects()).length>1?h["right"==i?h.length-1:0]:s.getBoundingClientRect()}if(vs&&ys<9&&!a&&(!r||!r.left&&!r.right)){var d=s.parentNode.getClientRects()[0];r=d?{left:d.left,right:d.left+xn(t.display),top:d.top,bottom:d.bottom}:ba}for(var f=r.top-e.rect.top,p=r.bottom-e.rect.top,g=(f+p)/2,m=e.view.measure.heights,v=0;v=i.text.length?(c=i.text.length,u="before"):c<=0&&(c=0,u="after"),!l)return s("before"==u?c-1:c,"before"==u);var h=Ct(l,c,u),d=Js,f=a(c,h,"before"==u);return null!=d&&(f.other=a(c,d,"before"!=u)),f}function un(t,e){var n=0;e=j(t.doc,e),t.options.lineWrapping||(n=xn(t.display)*e.ch);var i=E(t.doc,e.line),r=yt(i)+Fe(t.display);return{left:n,right:n,top:r,bottom:r+i.height}}function hn(t,e,n,i,r){var o=_(t,e,n);return o.xRel=r,i&&(o.outside=!0),o}function dn(t,e,n){var i=t.doc;if((n+=t.display.viewOffset)<0)return hn(i.first,0,null,!0,-1);var r=N(i,n),o=i.first+i.size-1;if(r>o)return hn(i.first+i.size-1,E(i,o).text.length,null,!0,1);e<0&&(e=0);for(var s=E(i,r);;){var a=mn(t,s,r,e,n),l=ct(s),c=l&&l.find(0,!0);if(!l||!(a.ch>c.from.ch||a.ch==c.from.ch&&a.xRel>0))return a;r=O(s=c.to.line)}}function fn(t,e,n,i){i-=on(e);var r=e.text.length,o=T(function(e){return Ge(t,n,e-1).bottom<=i},r,0);return r=T(function(e){return Ge(t,n,e).top>i},o,r),{begin:o,end:r}}function pn(t,e,n,i){return n||(n=Ke(t,e)),fn(t,e,n,sn(t,e,Ge(t,n,i),"line").top)}function gn(t,e,n,i){return!(t.bottom<=n)&&(t.top>n||(i?t.left:t.right)>e)}function mn(t,e,n,i,r){r-=yt(e);var o=Ke(t,e),s=on(e),a=0,l=e.text.length,c=!0,u=kt(e,t.doc.direction);if(u){var h=(t.options.lineWrapping?yn:vn)(t,e,n,o,u,i,r);c=1!=h.level,a=c?h.from:h.to-1,l=c?h.to:h.from-1}var d,f,p=null,g=null,m=T(function(e){var n=Ge(t,o,e);return n.top+=s,n.bottom+=s,!!gn(n,i,r,!1)&&(n.top<=r&&n.left<=i&&(p=e,g=n),!0)},a,l),v=!1;if(g){var y=i-g.left=x.bottom}return m=S(e.text,m,1),hn(n,m,f,v,i-d)}function vn(t,e,n,i,r,o,s){var a=T(function(a){var l=r[a],c=1!=l.level;return gn(cn(t,_(n,c?l.to:l.from,c?"before":"after"),"line",e,i),o,s,!0)},0,r.length-1),l=r[a];if(a>0){var c=1!=l.level,u=cn(t,_(n,c?l.from:l.to,c?"after":"before"),"line",e,i);gn(u,o,s,!0)&&u.top>s&&(l=r[a-1])}return l}function yn(t,e,n,i,r,o,s){var a=fn(t,e,i,s),l=a.begin,c=a.end;/\s/.test(e.text.charAt(c-1))&&c--;for(var u=null,h=null,d=0;d=c||f.to<=l)){var p=1!=f.level,g=Ge(t,i,p?Math.min(c,f.to)-1:Math.max(l,f.from)).right,m=gm)&&(u=f,h=m)}}return u||(u=r[r.length-1]),u.fromc&&(u={from:u.from,to:c,level:u.level}),u}function bn(t){if(null!=t.cachedTextHeight)return t.cachedTextHeight;if(null==pa){pa=i("pre");for(var r=0;r<49;++r)pa.appendChild(document.createTextNode("x")),pa.appendChild(i("br"));pa.appendChild(document.createTextNode("x"))}n(t.measure,pa);var o=pa.offsetHeight/50;return o>3&&(t.cachedTextHeight=o),e(t.measure),o||1}function xn(t){if(null!=t.cachedCharWidth)return t.cachedCharWidth;var e=i("span","xxxxxxxxxx"),r=i("pre",[e]);n(t.measure,r);var o=e.getBoundingClientRect(),s=(o.right-o.left)/10;return s>2&&(t.cachedCharWidth=s),s||10}function wn(t){for(var e=t.display,n={},i={},r=e.gutters.clientLeft,o=e.gutters.firstChild,s=0;o;o=o.nextSibling,++s)n[t.options.gutters[s]]=o.offsetLeft+o.clientLeft+r,i[t.options.gutters[s]]=o.clientWidth;return{fixedPos:Cn(e),gutterTotalWidth:e.gutters.offsetWidth,gutterLeft:n,gutterWidth:i,wrapperWidth:e.wrapper.clientWidth}}function Cn(t){return t.scroller.getBoundingClientRect().left-t.sizer.getBoundingClientRect().left}function kn(t){var e=bn(t.display),n=t.options.lineWrapping,i=n&&Math.max(5,t.display.scroller.clientWidth/xn(t.display)-3);return function(r){if(mt(t.doc,r))return 0;var o=0;if(r.widgets)for(var s=0;s=t.display.viewTo)return null;if((e-=t.display.viewFrom)<0)return null;for(var n=t.display.view,i=0;i=t.display.viewTo||a.to().line0?e.blinker=setInterval(function(){return e.cursorDiv.style.visibility=(n=!n)?"":"hidden"},t.options.cursorBlinkRate):t.options.cursorBlinkRate<0&&(e.cursorDiv.style.visibility="hidden")}}function Dn(t){t.state.focused||(t.display.input.focus(),_n(t))}function In(t){t.state.delayingBlurEvent=!0,setTimeout(function(){t.state.delayingBlurEvent&&(t.state.delayingBlurEvent=!1,Fn(t))},100)}function _n(t,e){t.state.delayingBlurEvent&&(t.state.delayingBlurEvent=!1),"nocursor"!=t.options.readOnly&&(t.state.focused||(Mt(t,"focus",t,e),t.state.focused=!0,a(t.display.wrapper,"CodeMirror-focused"),t.curOp||t.display.selForContextMenu==t.doc.sel||(t.display.input.reset(),bs&&setTimeout(function(){return t.display.input.reset(!0)},20)),t.display.input.receivedFocus()),Nn(t))}function Fn(t,e){t.state.delayingBlurEvent||(t.state.focused&&(Mt(t,"blur",t,e),t.state.focused=!1,Fs(t.display.wrapper,"CodeMirror-focused")),clearInterval(t.display.blinker),setTimeout(function(){t.state.focused||(t.display.shift=!1)},150))}function $n(t){for(var e=t.display,n=e.lineDiv.offsetTop,i=0;i.005||l<-.005)&&(L(r.line,o),zn(r.line),r.rest))for(var c=0;c=s&&(o=N(e,yt(E(e,l))-t.wrapper.clientHeight),s=l)}return{from:o,to:Math.max(s,o+1)}}function Rn(t){var e=t.display,n=e.view;if(e.alignWidgets||e.gutters.firstChild&&t.options.fixedGutter){for(var i=Cn(e)-e.scroller.scrollLeft+t.doc.scrollLeft,r=e.gutters.offsetWidth,o=i+"px",s=0;s(window.innerHeight||document.documentElement.clientHeight)&&(o=!1),null!=o&&!Ts){var s=i("div","โ€‹",null,"position: absolute;\n top: "+(e.top-n.viewOffset-Fe(t.display))+"px;\n height: "+(e.bottom-e.top+He(t)+n.barHeight)+"px;\n left: "+e.left+"px; width: "+Math.max(2,e.right-e.left)+"px;");t.display.lineSpace.appendChild(s),s.scrollIntoView(o),t.display.lineSpace.removeChild(s)}}}function Bn(t,e,n,i){null==i&&(i=0);var r;t.options.lineWrapping||e!=n||(e=e.ch?_(e.line,"before"==e.sticky?e.ch-1:e.ch,"after"):e,n="before"==e.sticky?_(e.line,e.ch+1,"before"):e);for(var o=0;o<5;o++){var s=!1,a=cn(t,e),l=n&&n!=e?cn(t,n):a;r={left:Math.min(a.left,l.left),top:Math.min(a.top,l.top)-i,right:Math.max(a.left,l.left),bottom:Math.max(a.bottom,l.bottom)+i};var c=Un(t,r),u=t.doc.scrollTop,h=t.doc.scrollLeft;if(null!=c.scrollTop&&(Zn(t,c.scrollTop),Math.abs(t.doc.scrollTop-u)>1&&(s=!0)),null!=c.scrollLeft&&(ti(t,c.scrollLeft),Math.abs(t.doc.scrollLeft-h)>1&&(s=!0)),!s)break}return r}function Wn(t,e){var n=Un(t,e);null!=n.scrollTop&&Zn(t,n.scrollTop),null!=n.scrollLeft&&ti(t,n.scrollLeft)}function Un(t,e){var n=t.display,i=bn(t.display);e.top<0&&(e.top=0);var r=t.curOp&&null!=t.curOp.scrollTop?t.curOp.scrollTop:n.scroller.scrollTop,o=Ve(t),s={};e.bottom-e.top>o&&(e.bottom=e.top+o);var a=t.doc.height+$e(n),l=e.topa-i;if(e.topr+o){var u=Math.min(e.top,(c?a:e.bottom)-o);u!=r&&(s.scrollTop=u)}var h=t.curOp&&null!=t.curOp.scrollLeft?t.curOp.scrollLeft:n.scroller.scrollLeft,d=Re(t)-(t.options.fixedGutter?n.gutters.offsetWidth:0),f=e.right-e.left>d;return f&&(e.right=e.left+d),e.left<10?s.scrollLeft=0:e.leftd+h-3&&(s.scrollLeft=e.right+(f?0:10)-d),s}function qn(t,e){null!=e&&(Xn(t),t.curOp.scrollTop=(null==t.curOp.scrollTop?t.doc.scrollTop:t.curOp.scrollTop)+e)}function Kn(t){Xn(t);var e=t.getCursor();t.curOp.scrollToPos={from:e,to:e,margin:t.options.cursorScrollMargin}}function Gn(t,e,n){null==e&&null==n||Xn(t),null!=e&&(t.curOp.scrollLeft=e),null!=n&&(t.curOp.scrollTop=n)}function Yn(t,e){Xn(t),t.curOp.scrollToPos=e}function Xn(t){var e=t.curOp.scrollToPos;if(e){t.curOp.scrollToPos=null;Jn(t,un(t,e.from),un(t,e.to),e.margin)}}function Jn(t,e,n,i){var r=Un(t,{left:Math.min(e.left,n.left),top:Math.min(e.top,n.top)-i,right:Math.max(e.right,n.right),bottom:Math.max(e.bottom,n.bottom)+i});Gn(t,r.scrollLeft,r.scrollTop)}function Zn(t,e){Math.abs(t.doc.scrollTop-e)<2||(fs||Li(t,{top:e}),Qn(t,e,!0),fs&&Li(t),ki(t,100))}function Qn(t,e,n){e=Math.min(t.display.scroller.scrollHeight-t.display.scroller.clientHeight,e),(t.display.scroller.scrollTop!=e||n)&&(t.doc.scrollTop=e,t.display.scrollbars.setScrollTop(e),t.display.scroller.scrollTop!=e&&(t.display.scroller.scrollTop=e))}function ti(t,e,n,i){e=Math.min(e,t.display.scroller.scrollWidth-t.display.scroller.clientWidth),(n?e==t.doc.scrollLeft:Math.abs(t.doc.scrollLeft-e)<2)&&!i||(t.doc.scrollLeft=e,Rn(t),t.display.scroller.scrollLeft!=e&&(t.display.scroller.scrollLeft=e),t.display.scrollbars.setScrollLeft(e))}function ei(t){var e=t.display,n=e.gutters.offsetWidth,i=Math.round(t.doc.height+$e(t.display));return{clientHeight:e.scroller.clientHeight,viewHeight:e.wrapper.clientHeight,scrollWidth:e.scroller.scrollWidth,clientWidth:e.scroller.clientWidth,viewWidth:e.wrapper.clientWidth,barLeft:t.options.fixedGutter?n:0,docHeight:i,scrollHeight:i+He(t)+e.barHeight,nativeBarWidth:e.nativeBarWidth,gutterWidth:n}}function ni(t,e){e||(e=ei(t));var n=t.display.barWidth,i=t.display.barHeight;ii(t,e);for(var r=0;r<4&&n!=t.display.barWidth||i!=t.display.barHeight;r++)n!=t.display.barWidth&&t.options.lineWrapping&&$n(t),ii(t,ei(t)),n=t.display.barWidth,i=t.display.barHeight}function ii(t,e){var n=t.display,i=n.scrollbars.update(e);n.sizer.style.paddingRight=(n.barWidth=i.right)+"px",n.sizer.style.paddingBottom=(n.barHeight=i.bottom)+"px",n.heightForcer.style.borderBottom=i.bottom+"px solid transparent",i.right&&i.bottom?(n.scrollbarFiller.style.display="block",n.scrollbarFiller.style.height=i.bottom+"px",n.scrollbarFiller.style.width=i.right+"px"):n.scrollbarFiller.style.display="",i.bottom&&t.options.coverGutterNextToScrollbar&&t.options.fixedGutter?(n.gutterFiller.style.display="block",n.gutterFiller.style.height=i.bottom+"px",n.gutterFiller.style.width=e.gutterWidth+"px"):n.gutterFiller.style.display=""}function ri(t){t.display.scrollbars&&(t.display.scrollbars.clear(),t.display.scrollbars.addClass&&Fs(t.display.wrapper,t.display.scrollbars.addClass)),t.display.scrollbars=new Ca[t.options.scrollbarStyle](function(e){t.display.wrapper.insertBefore(e,t.display.scrollbarFiller),ta(e,"mousedown",function(){t.state.focused&&setTimeout(function(){return t.display.input.focus()},0)}),e.setAttribute("cm-not-content","true")},function(e,n){"horizontal"==n?ti(t,e):Zn(t,e)},t),t.display.scrollbars.addClass&&a(t.display.wrapper,t.display.scrollbars.addClass)}function oi(t){t.curOp={cm:t,viewChanged:!1,startHeight:t.doc.height,forceUpdate:!1,updateInput:null,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++ka},ve(t.curOp)}function si(t){be(t.curOp,function(t){for(var e=0;e=n.viewTo)||n.maxLineChanged&&e.options.lineWrapping,t.update=t.mustUpdate&&new Sa(e,t.mustUpdate&&{top:t.scrollTop,ensure:t.scrollToPos},t.forceUpdate)}function ci(t){t.updatedDisplay=t.mustUpdate&&Pi(t.cm,t.update)}function ui(t){var e=t.cm,n=e.display;t.updatedDisplay&&$n(e),t.barMeasure=ei(e),n.maxLineChanged&&!e.options.lineWrapping&&(t.adjustWidthTo=Ue(e,n.maxLine,n.maxLine.text.length).left+3,e.display.sizerWidth=t.adjustWidthTo,t.barMeasure.scrollWidth=Math.max(n.scroller.clientWidth,n.sizer.offsetLeft+t.adjustWidthTo+He(e)+e.display.barWidth),t.maxScrollLeft=Math.max(0,n.sizer.offsetLeft+t.adjustWidthTo-Re(e))),(t.updatedDisplay||t.selectionChanged)&&(t.preparedSelection=n.input.prepareSelection())}function hi(t){var e=t.cm;null!=t.adjustWidthTo&&(e.display.sizer.style.minWidth=t.adjustWidthTo+"px",t.maxScrollLefte)&&(r.updateLineNumbers=e),t.curOp.viewChanged=!0,e>=r.viewTo)Xs&&pt(t.doc,e)r.viewFrom?bi(t):(r.viewFrom+=i,r.viewTo+=i);else if(e<=r.viewFrom&&n>=r.viewTo)bi(t);else if(e<=r.viewFrom){var o=xi(t,n,n+i,1);o?(r.view=r.view.slice(o.index),r.viewFrom=o.lineN,r.viewTo+=i):bi(t)}else if(n>=r.viewTo){var s=xi(t,e,e,-1);s?(r.view=r.view.slice(0,s.index),r.viewTo=s.lineN):bi(t)}else{var a=xi(t,e,e,-1),l=xi(t,n,n+i,1);a&&l?(r.view=r.view.slice(0,a.index).concat(me(t,a.lineN,l.lineN)).concat(r.view.slice(l.index)),r.viewTo+=i):bi(t)}var c=r.externalMeasured;c&&(n=r.lineN&&e=i.viewTo)){var o=i.view[Mn(t,e)];if(null!=o.node){var s=o.changes||(o.changes=[]);-1==d(s,n)&&s.push(n)}}}function bi(t){t.display.viewFrom=t.display.viewTo=t.doc.first,t.display.view=[],t.display.viewOffset=0}function xi(t,e,n,i){var r,o=Mn(t,e),s=t.display.view;if(!Xs||n==t.doc.first+t.doc.size)return{index:o,lineN:n};for(var a=t.display.viewFrom,l=0;l0){if(o==s.length-1)return null;r=a+s[o].size-e,o++}else r=a-e;e+=r,n+=r}for(;pt(t.doc,n)!=n;){if(o==(i<0?0:s.length-1))return null;n+=i*s[o-(i<0?1:0)].size,o+=i}return{index:o,lineN:n}}function wi(t,e,n){var i=t.display;0==i.view.length||e>=i.viewTo||n<=i.viewFrom?(i.view=me(t,e,n),i.viewFrom=e):(i.viewFrom>e?i.view=me(t,e,i.viewFrom).concat(i.view):i.viewFromn&&(i.view=i.view.slice(0,Mn(t,n)))),i.viewTo=n}function Ci(t){for(var e=t.display.view,n=0,i=0;i=t.display.viewTo)){var n=+new Date+t.options.workTime,i=Xt(t,e.highlightFrontier),r=[];e.iter(i.line,Math.min(e.first+e.size,t.display.viewTo+500),function(o){if(i.line>=t.display.viewFrom){var s=o.styles,a=o.text.length>t.options.maxHighlightLength?Ut(e.mode,i.state):null,l=Gt(t,o,i,!0);a&&(i.state=a),o.styles=l.styles;var c=o.styleClasses,u=l.classes;u?o.styleClasses=u:c&&(o.styleClasses=null);for(var h=!s||s.length!=o.styles.length||c!=u&&(!c||!u||c.bgClass!=u.bgClass||c.textClass!=u.textClass),d=0;!h&&dn)return ki(t,t.options.workDelay),!0}),e.highlightFrontier=i.line,e.modeFrontier=Math.max(e.modeFrontier,i.line),r.length&&fi(t,function(){for(var e=0;e=i.viewFrom&&n.visible.to<=i.viewTo&&(null==i.updateLineNumbers||i.updateLineNumbers>=i.viewTo)&&i.renderedView==i.view&&0==Ci(t))return!1;Vn(t)&&(bi(t),n.dims=wn(t));var o=r.first+r.size,s=Math.max(n.visible.from-t.options.viewportMargin,r.first),a=Math.min(o,n.visible.to+t.options.viewportMargin);i.viewFroma&&i.viewTo-a<20&&(a=Math.min(o,i.viewTo)),Xs&&(s=pt(t.doc,s),a=gt(t.doc,a));var l=s!=i.viewFrom||a!=i.viewTo||i.lastWrapHeight!=n.wrapperHeight||i.lastWrapWidth!=n.wrapperWidth;wi(t,s,a),i.viewOffset=yt(E(t.doc,i.viewFrom)),t.display.mover.style.top=i.viewOffset+"px";var c=Ci(t);if(!l&&0==c&&!n.force&&i.renderedView==i.view&&(null==i.updateLineNumbers||i.updateLineNumbers>=i.viewTo))return!1;var u=Mi(t);return c>4&&(i.lineDiv.style.display="none"),Oi(t,i.updateLineNumbers,n.dims),c>4&&(i.lineDiv.style.display=""),i.renderedView=i.view,Ei(u),e(i.cursorDiv),e(i.selectionDiv),i.gutters.style.height=i.sizer.style.minHeight=0,l&&(i.lastWrapHeight=n.wrapperHeight,i.lastWrapWidth=n.wrapperWidth,ki(t,400)),i.updateLineNumbers=null,!0}function Ai(t,e){for(var n=e.viewport,i=!0;(i&&t.options.lineWrapping&&e.oldDisplayWidth!=Re(t)||(n&&null!=n.top&&(n={top:Math.min(t.doc.height+$e(t.display)-Ve(t),n.top)}),e.visible=Hn(t.display,t.doc,n),!(e.visible.from>=t.display.viewFrom&&e.visible.to<=t.display.viewTo)))&&Pi(t,e);i=!1){$n(t);var r=ei(t);En(t),ni(t,r),Di(t,r),e.force=!1}e.signal(t,"update",t),t.display.viewFrom==t.display.reportedViewFrom&&t.display.viewTo==t.display.reportedViewTo||(e.signal(t,"viewportChange",t,t.display.viewFrom,t.display.viewTo),t.display.reportedViewFrom=t.display.viewFrom,t.display.reportedViewTo=t.display.viewTo)}function Li(t,e){var n=new Sa(t,e);if(Pi(t,n)){$n(t),Ai(t,n);var i=ei(t);En(t),ni(t,i),Di(t,i),n.finish()}}function Oi(t,n,i){function r(e){var n=e.nextSibling;return bs&&As&&t.display.currentWheelTarget==e?e.style.display="none":e.parentNode.removeChild(e),n}for(var o=t.display,s=t.options.lineNumbers,a=o.lineDiv,l=a.firstChild,c=o.view,u=o.viewFrom,h=0;h-1&&(p=!1),Ce(t,f,u,i)),p&&(e(f.lineNumber),f.lineNumber.appendChild(document.createTextNode(I(t.options,u)))),l=f.node.nextSibling}else{var g=Le(t,f,u,i);a.insertBefore(g,l)}u+=f.size}for(;l;)l=r(l)}function Ni(t){var e=t.display.gutters.offsetWidth;t.display.sizer.style.marginLeft=e+"px"}function Di(t,e){t.display.sizer.style.minHeight=e.docHeight+"px",t.display.heightForcer.style.top=e.docHeight+"px",t.display.gutters.style.height=e.docHeight+t.display.barHeight+He(t)+"px"}function Ii(t){var n=t.display.gutters,r=t.options.gutters;e(n);for(var o=0;o-1&&!t.lineNumbers&&(t.gutters=t.gutters.slice(0),t.gutters.splice(e,1))}function Fi(t){var e=t.wheelDeltaX,n=t.wheelDeltaY;return null==e&&t.detail&&t.axis==t.HORIZONTAL_AXIS&&(e=t.detail),null==n&&t.detail&&t.axis==t.VERTICAL_AXIS?n=t.detail:null==n&&(n=t.wheelDelta),{x:e,y:n}}function $i(t){var e=Fi(t);return e.x*=Ma,e.y*=Ma,e}function zi(t,e){var n=Fi(e),i=n.x,r=n.y,o=t.display,s=o.scroller,a=s.scrollWidth>s.clientWidth,l=s.scrollHeight>s.clientHeight;if(i&&a||r&&l){if(r&&As&&bs)t:for(var c=e.target,u=o.view;c!=s;c=c.parentNode)for(var h=0;h=0){var s=R(o.from(),r.from()),a=H(o.to(),r.to()),l=o.empty()?r.from()==r.head:o.from()==o.head;i<=e&&--e,t.splice(--i,2,new Pa(l?a:s,l?s:a))}}return new Ea(t,e)}function Ri(t,e){return new Ea([new Pa(t,e||t)],0)}function Vi(t){return t.text?_(t.from.line+t.text.length-1,g(t.text).length+(1==t.text.length?t.from.ch:0)):t.to}function ji(t,e){if(F(t,e.from)<0)return t;if(F(t,e.to)<=0)return Vi(e);var n=t.line+e.text.length-(e.to.line-e.from.line)-1,i=t.ch;return t.line==e.to.line&&(i+=Vi(e).ch-e.to.ch),_(n,i)}function Bi(t,e){for(var n=[],i=0;i1&&t.remove(a.line+1,p-1),t.insert(a.line+1,y)}xe(t,"change",t,e)}function Xi(t,e,n){function i(t,r,o){if(t.linked)for(var s=0;s1&&!t.done[t.done.length-2].ranges?(t.done.pop(),g(t.done)):void 0}function rr(t,e,n,i){var r=t.history;r.undone.length=0;var o,s,a=+new Date;if((r.lastOp==i||r.lastOrigin==e.origin&&e.origin&&("+"==e.origin.charAt(0)&&t.cm&&r.lastModTime>a-t.cm.options.historyEventDelay||"*"==e.origin.charAt(0)))&&(o=ir(r,r.lastOp==i)))s=g(o.changes),0==F(e.from,e.to)&&0==F(e.from,s.to)?s.to=Vi(e):o.changes.push(er(t,e));else{var l=g(r.done);for(l&&l.ranges||ar(t.sel,r.done),o={changes:[er(t,e)],generation:r.generation},r.done.push(o);r.done.length>r.undoDepth;)r.done.shift(),r.done[0].ranges||r.done.shift()}r.done.push(n),r.generation=++r.maxGeneration,r.lastModTime=r.lastSelTime=a,r.lastOp=r.lastSelOp=i,r.lastOrigin=r.lastSelOrigin=e.origin,s||Mt(t,"historyAdded")}function or(t,e,n,i){var r=e.charAt(0);return"*"==r||"+"==r&&n.ranges.length==i.ranges.length&&n.somethingSelected()==i.somethingSelected()&&new Date-t.history.lastSelTime<=(t.cm?t.cm.options.historyEventDelay:500)}function sr(t,e,n,i){var r=t.history,o=i&&i.origin;n==r.lastSelOp||o&&r.lastSelOrigin==o&&(r.lastModTime==r.lastSelTime&&r.lastOrigin==o||or(t,o,g(r.done),e))?r.done[r.done.length-1]=e:ar(e,r.done),r.lastSelTime=+new Date,r.lastSelOrigin=o,r.lastSelOp=n,i&&!1!==i.clearRedo&&nr(r.undone)}function ar(t,e){var n=g(e);n&&n.ranges&&n.equals(t)||e.push(t)}function lr(t,e,n,i){var r=e["spans_"+t.id],o=0;t.iter(Math.max(t.first,n),Math.min(t.first+t.size,i),function(n){n.markedSpans&&((r||(r=e["spans_"+t.id]={}))[o]=n.markedSpans),++o})}function cr(t){if(!t)return null;for(var e,n=0;n-1&&(g(a)[h]=c[h],delete c[h])}}}return i}function fr(t,e,n,i){if(i){var r=t.anchor;if(n){var o=F(e,r)<0;o!=F(n,r)<0?(r=e,e=n):o!=F(e,n)<0&&(e=n)}return new Pa(r,e)}return new Pa(n||e,e)}function pr(t,e,n,i,r){null==r&&(r=t.cm&&(t.cm.display.shift||t.extend)),xr(t,new Ea([fr(t.sel.primary(),e,n,r)],0),i)}function gr(t,e,n){for(var i=[],r=t.cm&&(t.cm.display.shift||t.extend),o=0;o=e.ch:a.to>e.ch))){if(r&&(Mt(l,"beforeCursorEnter"),l.explicitlyCleared)){if(o.markedSpans){--s;continue}break}if(!l.atomic)continue;if(n){var c=l.find(i<0?1:-1),u=void 0;if((i<0?l.inclusiveRight:l.inclusiveLeft)&&(c=Er(t,c,-i,c&&c.line==e.line?o:null)),c&&c.line==e.line&&(u=F(c,n))&&(i<0?u<0:u>0))return Tr(t,c,e,i,r)}var h=l.find(i<0?-1:1);return(i<0?l.inclusiveLeft:l.inclusiveRight)&&(h=Er(t,h,i,h.line==e.line?o:null)),h?Tr(t,h,e,i,r):null}}return e}function Mr(t,e,n,i,r){var o=i||1,s=Tr(t,e,n,o,r)||!r&&Tr(t,e,n,o,!0)||Tr(t,e,n,-o,r)||!r&&Tr(t,e,n,-o,!0);return s||(t.cantEdit=!0,_(t.first,0))}function Er(t,e,n,i){return n<0&&0==e.ch?e.line>t.first?j(t,_(e.line-1)):null:n>0&&e.ch==(i||E(t,e.line)).text.length?e.line=0;--r)Or(t,{from:i[r].from,to:i[r].to,text:r?[""]:e.text,origin:e.origin});else Or(t,e)}}function Or(t,e){if(1!=e.text.length||""!=e.text[0]||0!=F(e.from,e.to)){var n=Bi(t,e);rr(t,e,n,t.cm?t.cm.curOp.id:NaN),Ir(t,e,n,Q(t,e));var i=[];Xi(t,function(t,n){n||-1!=d(i,t.history)||(Hr(t.history,e),i.push(t.history)),Ir(t,e,null,Q(t,e))})}}function Nr(t,e,n){if(!t.cm||!t.cm.state.suppressEdits||n){for(var i,r=t.history,o=t.sel,s="undo"==e?r.done:r.undone,a="undo"==e?r.undone:r.done,l=0;l=0;--h){var f=function(n){var r=i.changes[n];if(r.origin=e,u&&!Ar(t,r,!1))return s.length=0,{};c.push(er(t,r));var o=n?Bi(t,r):g(s);Ir(t,r,o,hr(t,r)),!n&&t.cm&&t.cm.scrollIntoView({from:r.from,to:Vi(r)});var a=[];Xi(t,function(t,e){e||-1!=d(a,t.history)||(Hr(t.history,r),a.push(t.history)),Ir(t,r,null,hr(t,r))})}(h);if(f)return f.v}}}}function Dr(t,e){if(0!=e&&(t.first+=e,t.sel=new Ea(m(t.sel.ranges,function(t){return new Pa(_(t.anchor.line+e,t.anchor.ch),_(t.head.line+e,t.head.ch))}),t.sel.primIndex),t.cm)){vi(t.cm,t.first,t.first-e,e);for(var n=t.cm.display,i=n.viewFrom;it.lastLine())){if(e.from.lineo&&(e={from:e.from,to:_(o,E(t,o).text.length),text:[e.text[0]],origin:e.origin}),e.removed=P(t,e.from,e.to),n||(n=Bi(t,e)),t.cm?_r(t.cm,e,i):Yi(t,e,i),wr(t,n,Bs)}}function _r(t,e,n){var i=t.doc,r=t.display,o=e.from,s=e.to,a=!1,l=o.line;t.options.lineWrapping||(l=O(ht(E(i,o.line))),i.iter(l,s.line+1,function(t){if(t==r.maxLine)return a=!0,!0})),i.sel.contains(e.from,e.to)>-1&&Pt(t),Yi(i,e,n,kn(t)),t.options.lineWrapping||(i.iter(l,o.line+e.text.length,function(t){var e=bt(t);e>r.maxLineLength&&(r.maxLine=t,r.maxLineLength=e,r.maxLineChanged=!0,a=!1)}),a&&(t.curOp.updateMaxLine=!0)),re(i,o.line),ki(t,400);var c=e.text.length-(s.line-o.line)-1;e.full?vi(t):o.line!=s.line||1!=e.text.length||Gi(t.doc,e)?vi(t,o.line,s.line+1,c):yi(t,o.line,"text");var u=At(t,"changes"),h=At(t,"change");if(h||u){var d={from:o,to:s,text:e.text,removed:e.removed,origin:e.origin};h&&xe(t,"change",t,d),u&&(t.curOp.changeObjs||(t.curOp.changeObjs=[])).push(d)}t.display.selForContextMenu=null}function Fr(t,e,n,i,r){if(i||(i=n),F(i,n)<0){var o;o=[i,n],n=o[0],i=o[1]}"string"==typeof e&&(e=t.splitLines(e)),Lr(t,{from:n,to:i,text:e,origin:r})}function $r(t,e,n,i){n0||0==a&&!1!==s.clearWhenEmpty)return s;if(s.replacedWith&&(s.collapsed=!0,s.widgetNode=r("span",[s.replacedWith],"CodeMirror-widget"),i.handleMouseEvents||s.widgetNode.setAttribute("cm-ignore-events","true"),i.insertLeft&&(s.widgetNode.insertLeft=!0)),s.collapsed){if(ut(t,e.line,e,n,s)||e.line!=n.line&&ut(t,n.line,e,n,s))throw new Error("Inserting collapsed marker partially overlapping an existing one");q()}s.addToHistory&&rr(t,{from:e,to:n,origin:"markText"},t.sel,NaN);var l,c=e.line,h=t.cm;if(t.iter(c,n.line+1,function(t){h&&s.collapsed&&!h.options.lineWrapping&&ht(t)==h.display.maxLine&&(l=!0),s.collapsed&&c!=e.line&&L(t,0),X(t,new K(s,c==e.line?e.ch:null,c==n.line?n.ch:null)),++c}),s.collapsed&&t.iter(e.line,n.line+1,function(e){mt(t,e)&&L(e,0)}),s.clearOnEnter&&ta(s,"beforeCursorEnter",function(){return s.clear()}),s.readOnly&&(U(),(t.history.done.length||t.history.undone.length)&&t.clearHistory()),s.collapsed&&(s.id=++La,s.atomic=!0),h){if(l&&(h.curOp.updateMaxLine=!0),s.collapsed)vi(h,e.line,n.line+1);else if(s.className||s.title||s.startStyle||s.endStyle||s.css)for(var d=e.line;d<=n.line;d++)yi(h,d,"text");s.atomic&&kr(h.doc),xe(h,"markerAdded",h,s)}return s}function qr(t,e,n,i,r){i=u(i),i.shared=!1;var o=[Ur(t,e,n,i,r)],s=o[0],a=i.widgetNode;return Xi(t,function(t){a&&(i.widgetNode=a.cloneNode(!0)),o.push(Ur(t,j(t,e),j(t,n),i,r));for(var l=0;l-1)return e.state.draggingText(t),void setTimeout(function(){return e.display.input.focus()},20);try{var l=t.dataTransfer.getData("Text");if(l){var c;if(e.state.draggingText&&!e.state.draggingText.copy&&(c=e.listSelections()),wr(e.doc,Ri(n,n)),c)for(var u=0;u=0;e--)Fr(t.doc,"",i[e].from,i[e].to,"+delete");Kn(t)})}function fo(t,e,n){var i=S(t.text,e+n,n);return i<0||i>t.text.length?null:i}function po(t,e,n){var i=fo(t,e.ch,n);return null==i?null:new _(e.line,i,n<0?"after":"before")}function go(t,e,n,i,r){if(t){var o=kt(n,e.doc.direction);if(o){var s,a=r<0?g(o):o[0],l=r<0==(1==a.level),c=l?"after":"before";if(a.level>0||"rtl"==e.doc.direction){var u=Ke(e,n);s=r<0?n.text.length-1:0;var h=Ge(e,u,s).top;s=T(function(t){return Ge(e,u,t).top==h},r<0==(1==a.level)?a.from:a.to-1,s),"before"==c&&(s=fo(n,s,1))}else s=r<0?a.to:a.from;return new _(i,s,c)}}return new _(i,r<0?n.text.length:0,r<0?"before":"after")}function mo(t,e,n,i){var r=kt(e,t.doc.direction);if(!r)return po(e,n,i);n.ch>=e.text.length?(n.ch=e.text.length,n.sticky="before"):n.ch<=0&&(n.ch=0,n.sticky="after");var o=Ct(r,n.ch,n.sticky),s=r[o];if("ltr"==t.doc.direction&&s.level%2==0&&(i>0?s.to>n.ch:s.from=s.from&&d>=u.begin)){var f=h?"before":"after";return new _(n.line,d,f)}}var p=function(t,e,i){for(var o=function(t,e){return e?new _(n.line,l(t,1),"before"):new _(n.line,t,"after")};t>=0&&t0==(1!=s.level),c=a?i.begin:l(i.end,-1);if(s.from<=c&&c0?u.end:l(u.begin,-1);return null==m||i>0&&m==e.text.length||!(g=p(i>0?0:r.length-1,i,c(m)))?null:g}function vo(t,e){var n=E(t.doc,e),i=ht(n);return i!=n&&(e=O(i)),go(!0,t,i,e,1)}function yo(t,e){var n=E(t.doc,e),i=dt(n);return i!=n&&(e=O(i)),go(!0,t,n,e,-1)}function bo(t,e){var n=vo(t,e.line),i=E(t.doc,n.line),r=kt(i,t.doc.direction);if(!r||0==r[0].level){var o=Math.max(0,i.text.search(/\S/)),s=e.line==n.line&&e.ch<=o&&e.ch;return _(n.line,s?0:o,n.sticky)}return n}function xo(t,e,n){if("string"==typeof e&&!(e=ja[e]))return!1;t.display.input.ensurePolled();var i=t.display.shift,r=!1;try{t.isReadOnly()&&(t.state.suppressEdits=!0),n&&(t.display.shift=!1),r=e(t)!=js}finally{t.display.shift=i,t.state.suppressEdits=!1}return r}function wo(t,e,n){for(var i=0;i-1&&(F((r=a.ranges[r]).from(),e)<0||e.xRel>0)&&(F(r.to(),e)>0||e.xRel<0)?Io(t,i,e,o):Fo(t,i,e,o)}function Io(t,e,n,i){var r=t.display,o=!1,s=pi(t,function(e){bs&&(r.scroller.draggable=!1),t.state.draggingText=!1,Tt(document,"mouseup",s),Tt(document,"mousemove",a),Tt(r.scroller,"dragstart",l),Tt(r.scroller,"drop",s),o||(Ot(e),i.addNew||pr(t.doc,n,null,null,i.extend),bs||vs&&9==ys?setTimeout(function(){document.body.focus(),r.input.focus()},20):r.input.focus())}),a=function(t){o=o||Math.abs(e.clientX-t.clientX)+Math.abs(e.clientY-t.clientY)>=10},l=function(){return o=!0};bs&&(r.scroller.draggable=!0),t.state.draggingText=s,s.copy=!i.moveOnDrag,r.scroller.dragDrop&&r.scroller.dragDrop(),ta(document,"mouseup",s),ta(document,"mousemove",a),ta(r.scroller,"dragstart",l),ta(r.scroller,"drop",s),In(t),setTimeout(function(){return r.input.focus()},20)}function _o(t,e,n){if("char"==n)return new Pa(e,e);if("word"==n)return t.findWordAt(e);if("line"==n)return new Pa(_(e.line,0),j(t.doc,_(e.line+1,0)));var i=n(t,e);return new Pa(i.from,i.to)}function Fo(t,e,n,i){function r(e){if(0!=F(v,e))if(v=e,"rectangle"==i.unit){for(var r=[],o=t.options.tabSize,s=h(E(c,n.line).text,n.ch,o),a=h(E(c,e.line).text,e.ch,o),l=Math.min(s,a),g=Math.max(s,a),m=Math.min(n.line,e.line),y=Math.min(t.lastLine(),Math.max(n.line,e.line));m<=y;m++){var b=E(c,m).text,x=f(b,l,o);l==g?r.push(new Pa(_(m,x),_(m,x))):b.length>x&&r.push(new Pa(_(m,x),_(m,f(b,g,o))))}r.length||r.push(new Pa(n,n)),xr(c,Hi(p.ranges.slice(0,d).concat(r),d),{origin:"*mouse",scroll:!1}),t.scrollIntoView(e)}else{var w,C=u,k=_o(t,e,i.unit),S=C.anchor;F(k.anchor,S)>0?(w=k.head,S=R(C.from(),k.anchor)):(w=k.anchor,S=H(C.to(),k.head));var T=p.ranges.slice(0);T[d]=$o(t,new Pa(j(c,S),w)),xr(c,Hi(T,d),Ws)}}function o(e){var n=++b,a=Tn(t,e,!0,"rectangle"==i.unit);if(a)if(0!=F(a,v)){t.curOp.focus=s(),r(a);var u=Hn(l,c);(a.line>=u.to||a.liney.bottom?20:0;h&&setTimeout(pi(t,function(){b==n&&(l.scroller.scrollTop+=h,o(e))}),50)}}function a(e){t.state.selectingText=!1,b=1/0,Ot(e),l.input.focus(),Tt(document,"mousemove",x),Tt(document,"mouseup",w),c.history.lastSelOrigin=null}var l=t.display,c=t.doc;Ot(e);var u,d,p=c.sel,g=p.ranges;if(i.addNew&&!i.extend?(d=c.sel.contains(n),u=d>-1?g[d]:new Pa(n,n)):(u=c.sel.primary(),d=c.sel.primIndex),"rectangle"==i.unit)i.addNew||(u=new Pa(n,n)),n=Tn(t,e,!0,!0),d=-1;else{var m=_o(t,n,i.unit);u=i.extend?fr(u,m.anchor,m.head,i.extend):m}i.addNew?-1==d?(d=g.length,xr(c,Hi(g.concat([u]),d),{scroll:!1,origin:"*mouse"})):g.length>1&&g[d].empty()&&"char"==i.unit&&!i.extend?(xr(c,Hi(g.slice(0,d).concat(g.slice(d+1)),0),{scroll:!1,origin:"*mouse"}),p=c.sel):mr(c,d,u,Ws):(d=0,xr(c,new Ea([u],0),Ws),p=c.sel);var v=n,y=l.wrapper.getBoundingClientRect(),b=0,x=pi(t,function(t){Ft(t)?o(t):a(t)}),w=pi(t,a);t.state.selectingText=w,ta(document,"mousemove",x),ta(document,"mouseup",w)}function $o(t,e){var n=e.anchor,i=e.head,r=E(t.doc,n.line);if(0==F(n,i)&&n.sticky==i.sticky)return e;var o=kt(r);if(!o)return e;var s=Ct(o,n.ch,n.sticky),a=o[s];if(a.from!=n.ch&&a.to!=n.ch)return e;var l=s+(a.from==n.ch==(1!=a.level)?0:1);if(0==l||l==o.length)return e;var c;if(i.line!=n.line)c=(i.line-n.line)*("ltr"==t.doc.direction?1:-1)>0;else{var u=Ct(o,i.ch,i.sticky),h=u-s||(i.ch-n.ch)*(1==a.level?-1:1);c=u==l-1||u==l?h<0:h>0}var d=o[l+(c?-1:0)],f=c==(1==d.level),p=f?d.from:d.to,g=f?"after":"before";return n.ch==p&&n.sticky==g?e:new Pa(new _(n.line,p,g),i)}function zo(t,e,n,i){var r,o;if(e.touches)r=e.touches[0].clientX,o=e.touches[0].clientY;else try{r=e.clientX,o=e.clientY}catch(e){return!1}if(r>=Math.floor(t.display.gutters.getBoundingClientRect().right))return!1;i&&Ot(e);var s=t.display,a=s.lineDiv.getBoundingClientRect();if(o>a.bottom||!At(t,n))return Dt(e);o-=a.top-s.viewOffset;for(var l=0;l=r){return Mt(t,n,t,N(t.doc,o),t.options.gutters[l],e),Dt(e)}}}function Ho(t,e){return zo(t,e,"gutterClick",!0)}function Ro(t,e){_e(t.display,e)||Vo(t,e)||Et(t,e,"contextmenu")||t.display.input.onContextMenu(e)}function Vo(t,e){return!!At(t,"gutterContextMenu")&&zo(t,e,"gutterContextMenu",!1)}function jo(t){t.display.wrapper.className=t.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+t.options.theme.replace(/(^|\s)\s*/g," cm-s-"),en(t)}function Bo(t){Ii(t),vi(t),Rn(t)}function Wo(t,e,n){if(!e!=!(n&&n!=Ga)){var i=t.display.dragFunctions,r=e?ta:Tt;r(t.display.scroller,"dragstart",i.start),r(t.display.scroller,"dragenter",i.enter),r(t.display.scroller,"dragover",i.over),r(t.display.scroller,"dragleave",i.leave),r(t.display.scroller,"drop",i.drop)}}function Uo(t){t.options.lineWrapping?(a(t.display.wrapper,"CodeMirror-wrap"),t.display.sizer.style.minWidth="",t.display.sizerWidth=null):(Fs(t.display.wrapper,"CodeMirror-wrap"),xt(t)),Sn(t),vi(t),en(t),setTimeout(function(){return ni(t)},100)}function qo(t,e){var n=this;if(!(this instanceof qo))return new qo(t,e);this.options=e=e?u(e):{},u(Ya,e,!1),_i(e);var i=e.value;"string"==typeof i&&(i=new Ia(i,e.mode,null,e.lineSeparator,e.direction)),this.doc=i;var r=new qo.inputStyles[e.inputStyle](this),o=this.display=new M(t,i,r);o.wrapper.CodeMirror=this,Ii(this),jo(this),e.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),ri(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:!1,cutIncoming:!1,selectingText:!1,draggingText:!1,highlight:new zs,keySeq:null,specialChars:null},e.autofocus&&!Ps&&o.input.focus(),vs&&ys<11&&setTimeout(function(){return n.display.input.reset(!0)},20),Ko(this),eo(),oi(this),this.curOp.forceUpdate=!0,Ji(this,i),e.autofocus&&!Ps||this.hasFocus()?setTimeout(c(_n,this),20):Fn(this);for(var s in Xa)Xa.hasOwnProperty(s)&&Xa[s](n,e[s],Ga);Vn(this),e.finishInit&&e.finishInit(this);for(var a=0;a400}var r=t.display;ta(r.scroller,"mousedown",pi(t,Lo)),vs&&ys<11?ta(r.scroller,"dblclick",pi(t,function(e){if(!Et(t,e)){var n=Tn(t,e);if(n&&!Ho(t,e)&&!_e(t.display,e)){Ot(e);var i=t.findWordAt(n);pr(t.doc,i.anchor,i.head)}}})):ta(r.scroller,"dblclick",function(e){return Et(t,e)||Ot(e)}),_s||ta(r.scroller,"contextmenu",function(e){return Ro(t,e)});var o,s={end:0};ta(r.scroller,"touchstart",function(e){if(!Et(t,e)&&!n(e)&&!Ho(t,e)){r.input.ensurePolled(),clearTimeout(o);var i=+new Date;r.activeTouch={start:i,moved:!1,prev:i-s.end<=300?s:null},1==e.touches.length&&(r.activeTouch.left=e.touches[0].pageX,r.activeTouch.top=e.touches[0].pageY)}}),ta(r.scroller,"touchmove",function(){r.activeTouch&&(r.activeTouch.moved=!0)}),ta(r.scroller,"touchend",function(n){var o=r.activeTouch;if(o&&!_e(r,n)&&null!=o.left&&!o.moved&&new Date-o.start<300){var s,a=t.coordsChar(r.activeTouch,"page");s=!o.prev||i(o,o.prev)?new Pa(a,a):!o.prev.prev||i(o,o.prev.prev)?t.findWordAt(a):new Pa(_(a.line,0),j(t.doc,_(a.line+1,0))),t.setSelection(s.anchor,s.head),t.focus(),Ot(n)}e()}),ta(r.scroller,"touchcancel",e),ta(r.scroller,"scroll",function(){r.scroller.clientHeight&&(Zn(t,r.scroller.scrollTop),ti(t,r.scroller.scrollLeft,!0),Mt(t,"scroll",t))}),ta(r.scroller,"mousewheel",function(e){return zi(t,e)}),ta(r.scroller,"DOMMouseScroll",function(e){return zi(t,e)}),ta(r.wrapper,"scroll",function(){return r.wrapper.scrollTop=r.wrapper.scrollLeft=0}),r.dragFunctions={enter:function(e){Et(t,e)||It(e)},over:function(e){Et(t,e)||(Zr(t,e),It(e))},start:function(e){return Jr(t,e)},drop:pi(t,Xr),leave:function(e){Et(t,e)||Qr(t)}};var a=r.input.getField();ta(a,"keyup",function(e){return Eo.call(t,e)}),ta(a,"keydown",pi(t,To)),ta(a,"keypress",pi(t,Po)),ta(a,"focus",function(e){return _n(t,e)}),ta(a,"blur",function(e){return Fn(t,e)})}function Go(t,e,n,i){var r,o=t.doc;null==n&&(n="add"),"smart"==n&&(o.mode.indent?r=Xt(t,e).state:n="prev");var s=t.options.tabSize,a=E(o,e),l=h(a.text,null,s);a.stateAfter&&(a.stateAfter=null);var c,u=a.text.match(/^\s*/)[0];if(i||/\S/.test(a.text)){if("smart"==n&&((c=o.mode.indent(r,a.text.slice(u.length),a.text))==js||c>150)){if(!i)return;n="prev"}}else c=0,n="not";"prev"==n?c=e>o.first?h(E(o,e-1).text,null,s):0:"add"==n?c=l+t.options.indentUnit:"subtract"==n?c=l-t.options.indentUnit:"number"==typeof n&&(c=l+n),c=Math.max(0,c);var d="",f=0;if(t.options.indentWithTabs)for(var g=Math.floor(c/s);g;--g)f+=s,d+="\t";if(f1)if(Za&&Za.text.join("\n")==e){if(i.ranges.length%Za.text.length==0){l=[];for(var c=0;c=0;h--){var d=i.ranges[h],f=d.from(),p=d.to();d.empty()&&(n&&n>0?f=_(f.line,f.ch-n):t.state.overwrite&&!s?p=_(p.line,Math.min(E(o,p.line).text.length,p.ch+g(a).length)):Za&&Za.lineWise&&Za.text.join("\n")==e&&(f=p=_(f.line,0))),u=t.curOp.updateInput;var v={from:f,to:p,text:l?l[h%l.length]:a,origin:r||(s?"paste":t.state.cutIncoming?"cut":"+input")};Lr(t.doc,v),xe(t,"inputRead",t,v)}e&&!s&&Zo(t,e),Kn(t),t.curOp.updateInput=u,t.curOp.typing=!0,t.state.pasteIncoming=t.state.cutIncoming=!1}function Jo(t,e){var n=t.clipboardData&&t.clipboardData.getData("Text");if(n)return t.preventDefault(),e.isReadOnly()||e.options.disableInput||fi(e,function(){return Xo(e,n,0,null,"paste")}),!0}function Zo(t,e){if(t.options.electricChars&&t.options.smartIndent)for(var n=t.doc.sel,i=n.ranges.length-1;i>=0;i--){var r=n.ranges[i];if(!(r.head.ch>100||i&&n.ranges[i-1].head.line==r.head.line)){var o=t.getModeAt(r.head),s=!1;if(o.electricChars){for(var a=0;a-1){s=Go(t,r.head.line,"smart");break}}else o.electricInput&&o.electricInput.test(E(t.doc,r.head.line).text.slice(0,r.head.ch))&&(s=Go(t,r.head.line,"smart"));s&&xe(t,"electricInput",t,r.head.line)}}}function Qo(t){for(var e=[],n=[],i=0;i=t.first+t.size)&&(e=new _(i,e.ch,e.sticky),c=E(t,i))}function s(i){var s;if(null==(s=r?mo(t.cm,c,e,n):po(c,e,n))){if(i||!o())return!1;e=go(r,t.cm,c,e.line,n)}else e=s;return!0}var a=e,l=n,c=E(t,e.line);if("char"==i)s();else if("column"==i)s(!0);else if("word"==i||"group"==i)for(var u=null,h="group"==i,d=t.cm&&t.cm.getHelper(e,"wordChars"),f=!0;!(n<0)||s(!f);f=!1){var p=c.text.charAt(e.ch)||"\n",g=w(p,d)?"w":h&&"\n"==p?"n":!h||/\s/.test(p)?null:"p";if(!h||f||g||(g="s"),u&&u!=g){n<0&&(n=1,s(),e.sticky="after");break}if(g&&(u=g),n>0&&!s(!f))break}var m=Mr(t,e,a,l,!0);return $(a,m)&&(m.hitSide=!0),m}function is(t,e,n,i){var r,o=t.doc,s=e.left;if("page"==i){var a=Math.min(t.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),l=Math.max(a-.5*bn(t.display),3);r=(n>0?e.bottom:e.top)+n*l}else"line"==i&&(r=n>0?e.bottom+3:e.top-3);for(var c;c=dn(t,s,r),c.outside;){if(n<0?r<=0:r>=o.height){c.hitSide=!0;break}r+=5*n}return c}function rs(t,e){var n=qe(t,e.line);if(!n||n.hidden)return null;var i=E(t.doc,e.line),r=Be(n,i,e.line),o=kt(i,t.doc.direction),s="left";if(o){s=Ct(o,e.ch)%2?"right":"left"}var a=Ye(r.map,e.ch,s);return a.offset="right"==a.collapse?a.end:a.start,a}function os(t){for(var e=t;e;e=e.parentNode)if(/CodeMirror-gutter-wrapper/.test(e.className))return!0;return!1}function ss(t,e){return e&&(t.bad=!0),t}function as(t,e,n,i,r){function o(t){return function(e){return e.id==t}}function s(){u&&(c+=h,u=!1)}function a(t){t&&(s(),c+=t)}function l(e){if(1==e.nodeType){var n=e.getAttribute("cm-text");if(null!=n)return void a(n||e.textContent.replace(/\u200b/g,""));var c,d=e.getAttribute("cm-marker");if(d){var f=t.findMarks(_(i,0),_(r+1,0),o(+d));return void(f.length&&(c=f[0].find(0))&&a(P(t.doc,c.from,c.to).join(h)))}if("false"==e.getAttribute("contenteditable"))return;var p=/^(pre|div|p)$/i.test(e.nodeName);p&&s();for(var g=0;g=15&&(Cs=!1,bs=!0);var Ds,Is=As&&(xs||Cs&&(null==Ns||Ns<12.11)),_s=fs||vs&&ys>=9,Fs=function(e,n){var i=e.className,r=t(n).exec(i);if(r){var o=i.slice(r.index+r[0].length);e.className=i.slice(0,r.index)+(o?r[1]+o:"")}};Ds=document.createRange?function(t,e,n,i){var r=document.createRange();return r.setEnd(i||t,n),r.setStart(t,e),r}:function(t,e,n){var i=document.body.createTextRange();try{i.moveToElementText(t.parentNode)}catch(t){return i}return i.collapse(!0),i.moveEnd("character",n),i.moveStart("character",e),i};var $s=function(t){t.select()};Ms?$s=function(t){t.selectionStart=0,t.selectionEnd=t.value.length}:vs&&($s=function(t){try{t.select()}catch(t){}});var zs=function(){this.id=null};zs.prototype.set=function(t,e){clearTimeout(this.id),this.id=setTimeout(e,t)};var Hs,Rs,Vs=30,js={toString:function(){return"CodeMirror.Pass"}},Bs={scroll:!1},Ws={origin:"*mouse"},Us={origin:"+move"},qs=[""],Ks=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,Gs=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/,Ys=!1,Xs=!1,Js=null,Zs=function(){function t(t){return t<=247?n.charAt(t):1424<=t&&t<=1524?"R":1536<=t&&t<=1785?i.charAt(t-1536):1774<=t&&t<=2220?"r":8192<=t&&t<=8203?"w":8204==t?"b":"L"}function e(t,e,n){this.level=t,this.from=e,this.to=n}var n="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",i="nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111",r=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,o=/[stwN]/,s=/[LRr]/,a=/[Lb1n]/,l=/[1n]/;return function(n,i){var c="ltr"==i?"L":"R";if(0==n.length||"ltr"==i&&!r.test(n))return!1;for(var u=n.length,h=[],d=0;d=this.string.length},ca.prototype.sol=function(){return this.pos==this.lineStart},ca.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},ca.prototype.next=function(){if(this.pose},ca.prototype.eatSpace=function(){for(var t=this,e=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++t.pos;return this.pos>e},ca.prototype.skipToEnd=function(){this.pos=this.string.length},ca.prototype.skipTo=function(t){var e=this.string.indexOf(t,this.pos);if(e>-1)return this.pos=e,!0},ca.prototype.backUp=function(t){this.pos-=t},ca.prototype.column=function(){return this.lastColumnPos0?null:(i&&!1!==e&&(this.pos+=i[0].length),i)}var r=function(t){return n?t.toLowerCase():t};if(r(this.string.substr(this.pos,t.length))==r(t))return!1!==e&&(this.pos+=t.length),!0},ca.prototype.current=function(){return this.string.slice(this.start,this.pos)},ca.prototype.hideFirstChars=function(t,e){this.lineStart+=t;try{return e()}finally{this.lineStart-=t}},ca.prototype.lookAhead=function(t){var e=this.lineOracle;return e&&e.lookAhead(t)},ca.prototype.baseToken=function(){var t=this.lineOracle;return t&&t.baseToken(this.pos)};var ua=function(t,e){this.state=t,this.lookAhead=e},ha=function(t,e,n,i){this.state=e,this.doc=t,this.line=n,this.maxLookAhead=i||0,this.baseTokens=null,this.baseTokenPos=1};ha.prototype.lookAhead=function(t){var e=this.doc.getLine(this.line+t);return null!=e&&t>this.maxLookAhead&&(this.maxLookAhead=t),e},ha.prototype.baseToken=function(t){var e=this;if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=t;)e.baseTokenPos+=2;var n=this.baseTokens[this.baseTokenPos+1];return{type:n&&n.replace(/( |^)overlay .*/,""),size:this.baseTokens[this.baseTokenPos]-t}},ha.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},ha.fromSaved=function(t,e,n){return e instanceof ua?new ha(t,Ut(t.mode,e.state),n,e.lookAhead):new ha(t,Ut(t.mode,e),n)},ha.prototype.save=function(t){var e=!1!==t?Ut(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new ua(e,this.maxLookAhead):e};var da=function(t,e,n){this.start=t.start,this.end=t.pos,this.string=t.current(),this.type=e||null,this.state=n},fa=function(t,e,n){this.text=t,it(this,e),this.height=n?n(this):1};fa.prototype.lineNo=function(){return O(this)},Lt(fa);var pa,ga={},ma={},va=null,ya=null,ba={left:0,right:0,top:0,bottom:0},xa=function(t,e,n){this.cm=n;var r=this.vert=i("div",[i("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),o=this.horiz=i("div",[i("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");t(r),t(o),ta(r,"scroll",function(){r.clientHeight&&e(r.scrollTop,"vertical")}),ta(o,"scroll",function(){o.clientWidth&&e(o.scrollLeft,"horizontal")}),this.checkedZeroWidth=!1,vs&&ys<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};xa.prototype.update=function(t){var e=t.scrollWidth>t.clientWidth+1,n=t.scrollHeight>t.clientHeight+1,i=t.nativeBarWidth;if(n){this.vert.style.display="block",this.vert.style.bottom=e?i+"px":"0";var r=t.viewHeight-(e?i:0);this.vert.firstChild.style.height=Math.max(0,t.scrollHeight-t.clientHeight+r)+"px"}else this.vert.style.display="",this.vert.firstChild.style.height="0";if(e){this.horiz.style.display="block",this.horiz.style.right=n?i+"px":"0",this.horiz.style.left=t.barLeft+"px";var o=t.viewWidth-t.barLeft-(n?i:0);this.horiz.firstChild.style.width=Math.max(0,t.scrollWidth-t.clientWidth+o)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&t.clientHeight>0&&(0==i&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:n?i:0,bottom:e?i:0}},xa.prototype.setScrollLeft=function(t){this.horiz.scrollLeft!=t&&(this.horiz.scrollLeft=t),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},xa.prototype.setScrollTop=function(t){this.vert.scrollTop!=t&&(this.vert.scrollTop=t),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},xa.prototype.zeroWidthHack=function(){var t=As&&!Ss?"12px":"18px";this.horiz.style.height=this.vert.style.width=t,this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new zs,this.disableVert=new zs},xa.prototype.enableZeroWidthBar=function(t,e,n){function i(){var r=t.getBoundingClientRect();("vert"==n?document.elementFromPoint(r.right-1,(r.top+r.bottom)/2):document.elementFromPoint((r.right+r.left)/2,r.bottom-1))!=t?t.style.pointerEvents="none":e.set(1e3,i)}t.style.pointerEvents="auto",e.set(1e3,i)},xa.prototype.clear=function(){var t=this.horiz.parentNode;t.removeChild(this.horiz),t.removeChild(this.vert)};var wa=function(){};wa.prototype.update=function(){return{bottom:0,right:0}},wa.prototype.setScrollLeft=function(){},wa.prototype.setScrollTop=function(){},wa.prototype.clear=function(){};var Ca={native:xa,null:wa},ka=0,Sa=function(t,e,n){var i=t.display;this.viewport=e,this.visible=Hn(i,t.doc,e),this.editorIsHidden=!i.wrapper.offsetWidth,this.wrapperHeight=i.wrapper.clientHeight,this.wrapperWidth=i.wrapper.clientWidth,this.oldDisplayWidth=Re(t),this.force=n,this.dims=wn(t),this.events=[]};Sa.prototype.signal=function(t,e){At(t,e)&&this.events.push(arguments)},Sa.prototype.finish=function(){for(var t=this,e=0;e=0&&F(t,r.to())<=0)return i}return-1};var Pa=function(t,e){this.anchor=t,this.head=e};Pa.prototype.from=function(){return R(this.anchor,this.head)},Pa.prototype.to=function(){return H(this.anchor,this.head)},Pa.prototype.empty=function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch},Vr.prototype={chunkSize:function(){return this.lines.length},removeInner:function(t,e){for(var n=this,i=t,r=t+e;i1||!(this.children[0]instanceof Vr))){var l=[];this.collapse(l),this.children=[new Vr(l)],this.children[0].parent=this}},collapse:function(t){for(var e=this,n=0;n50){for(var a=o.lines.length%25+25,l=a;l10);t.parent.maybeSpill()}},iterN:function(t,e,n){for(var i=this,r=0;re.display.maxLineLength&&(e.display.maxLine=u,e.display.maxLineLength=h,e.display.maxLineChanged=!0)}null!=r&&e&&this.collapsed&&vi(e,r,o+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,e&&kr(e.doc)),e&&xe(e,"markerCleared",e,this,r,o),n&&si(e),this.parent&&this.parent.clear()}},Oa.prototype.find=function(t,e){var n=this;null==t&&"bookmark"==this.type&&(t=1);for(var i,r,o=0;o=0;c--)Lr(i,r[c]);l?br(this,l):this.cm&&Kn(this.cm)}),undo:mi(function(){Nr(this,"undo")}),redo:mi(function(){Nr(this,"redo")}),undoSelection:mi(function(){Nr(this,"undo",!0)}),redoSelection:mi(function(){Nr(this,"redo",!0)}),setExtending:function(t){this.extend=t},getExtending:function(){return this.extend},historySize:function(){for(var t=this.history,e=0,n=0,i=0;i=t.ch)&&e.push(r.marker.parent||r.marker)}return e},findMarks:function(t,e,n){t=j(this,t),e=j(this,e);var i=[],r=t.line;return this.iter(t.line,e.line+1,function(o){var s=o.markedSpans;if(s)for(var a=0;a=l.to||null==l.from&&r!=t.line||null!=l.from&&r==e.line&&l.from>=e.ch||n&&!n(l.marker)||i.push(l.marker.parent||l.marker)}++r}),i},getAllMarks:function(){var t=[];return this.iter(function(e){var n=e.markedSpans;if(n)for(var i=0;it)return e=t,!0;t-=o,++n}),j(this,_(n,e))},indexFromPos:function(t){t=j(this,t);var e=t.ch;if(t.linee&&(e=t.from),null!=t.to&&t.to0)r=new _(r.line,r.ch+1),t.replaceRange(o.charAt(r.ch-1)+o.charAt(r.ch-2),_(r.line,r.ch-2),r,"+transpose");else if(r.line>t.doc.first){var s=E(t.doc,r.line-1).text;s&&(r=new _(r.line,1),t.replaceRange(o.charAt(0)+t.doc.lineSeparator()+s.charAt(s.length-1),_(r.line-1,s.length-1),r,"+transpose"))}n.push(new Pa(r,r))}t.setSelections(n)})},newlineAndIndent:function(t){return fi(t,function(){for(var e=t.listSelections(),n=e.length-1;n>=0;n--)t.replaceRange(t.doc.lineSeparator(),e[n].anchor,e[n].head,"+input");e=t.listSelections();for(var i=0;it&&0==F(e,this.pos)&&n==this.button};var qa,Ka,Ga={toString:function(){return"CodeMirror.Init"}},Ya={},Xa={};qo.defaults=Ya,qo.optionHandlers=Xa;var Ja=[];qo.defineInitHook=function(t){return Ja.push(t)};var Za=null,Qa=function(t){this.cm=t,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new zs,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};Qa.prototype.init=function(t){function e(t){if(!Et(r,t)){if(r.somethingSelected())Yo({lineWise:!1,text:r.getSelections()}),"cut"==t.type&&r.replaceSelection("",null,"cut");else{if(!r.options.lineWiseCopyCut)return;var e=Qo(r);Yo({lineWise:!0,text:e.text}),"cut"==t.type&&r.operation(function(){r.setSelections(e.ranges,0,Bs),r.replaceSelection("",null,"cut")})}if(t.clipboardData){t.clipboardData.clearData();var n=Za.text.join("\n");if(t.clipboardData.setData("Text",n),t.clipboardData.getData("Text")==n)return void t.preventDefault()}var s=es(),a=s.firstChild;r.display.lineSpace.insertBefore(s,r.display.lineSpace.firstChild),a.value=Za.text.join("\n");var l=document.activeElement;$s(a),setTimeout(function(){r.display.lineSpace.removeChild(s),l.focus(),l==o&&i.showPrimarySelection()},50)}}var n=this,i=this,r=i.cm,o=i.div=t.lineDiv;ts(o,r.options.spellcheck),ta(o,"paste",function(t){Et(r,t)||Jo(t,r)||ys<=11&&setTimeout(pi(r,function(){return n.updateFromDOM()}),20)}),ta(o,"compositionstart",function(t){n.composing={data:t.data,done:!1}}),ta(o,"compositionupdate",function(t){n.composing||(n.composing={data:t.data,done:!1})}),ta(o,"compositionend",function(t){n.composing&&(t.data!=n.composing.data&&n.readFromDOMSoon(),n.composing.done=!0)}),ta(o,"touchstart",function(){return i.forceCompositionEnd()}),ta(o,"input",function(){n.composing||n.readFromDOMSoon()}),ta(o,"copy",e),ta(o,"cut",e)},Qa.prototype.prepareSelection=function(){var t=Pn(this.cm,!1);return t.focus=this.cm.state.focused,t},Qa.prototype.showSelection=function(t,e){t&&this.cm.display.view.length&&((t.focus||e)&&this.showPrimarySelection(),this.showMultipleSelections(t))},Qa.prototype.showPrimarySelection=function(){var t=window.getSelection(),e=this.cm,n=e.doc.sel.primary(),i=n.from(),r=n.to();if(e.display.viewTo==e.display.viewFrom||i.line>=e.display.viewTo||r.line=e.display.viewFrom&&rs(e,i)||{node:a[0].measure.map[2],offset:0},c=r.linet.firstLine()&&(i=_(i.line-1,E(t.doc,i.line-1).length)),r.ch==E(t.doc,r.line).text.length&&r.linee.viewTo-1)return!1;var o,s,a;i.line==e.viewFrom||0==(o=Mn(t,i.line))?(s=O(e.view[0].line),a=e.view[0].node):(s=O(e.view[o].line),a=e.view[o-1].node.nextSibling);var l,c,u=Mn(t,r.line);if(u==e.view.length-1?(l=e.viewTo-1,c=e.lineDiv.lastChild):(l=O(e.view[u+1].line)-1,c=e.view[u+1].node.previousSibling),!a)return!1;for(var h=t.doc.splitLines(as(t,a,c,s,l)),d=P(t.doc,_(s,0),_(l,E(t.doc,l).text.length));h.length>1&&d.length>1;)if(g(h)==g(d))h.pop(),d.pop(),l--;else{if(h[0]!=d[0])break;h.shift(),d.shift(),s++}for(var f=0,p=0,m=h[0],v=d[0],y=Math.min(m.length,v.length);fi.ch&&b.charCodeAt(b.length-p-1)==x.charCodeAt(x.length-p-1);)f--,p++;h[h.length-1]=b.slice(0,b.length-p).replace(/^\u200b+/,""),h[0]=h[0].slice(f).replace(/\u200b+$/,"");var C=_(s,f),k=_(l,d.length?g(d).length-p:0);return h.length>1||h[0]||F(C,k)?(Fr(t.doc,h,C,k,"+input"),!0):void 0},Qa.prototype.ensurePolled=function(){this.forceCompositionEnd()},Qa.prototype.reset=function(){this.forceCompositionEnd()},Qa.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},Qa.prototype.readFromDOMSoon=function(){var t=this;null==this.readDOMTimeout&&(this.readDOMTimeout=setTimeout(function(){if(t.readDOMTimeout=null,t.composing){if(!t.composing.done)return;t.composing=null}t.updateFromDOM()},80))},Qa.prototype.updateFromDOM=function(){var t=this;!this.cm.isReadOnly()&&this.pollContent()||fi(this.cm,function(){return vi(t.cm)})},Qa.prototype.setUneditable=function(t){t.contentEditable="false"},Qa.prototype.onKeyPress=function(t){0!=t.charCode&&(t.preventDefault(),this.cm.isReadOnly()||pi(this.cm,Xo)(this.cm,String.fromCharCode(null==t.charCode?t.keyCode:t.charCode),0))},Qa.prototype.readOnlyChanged=function(t){this.div.contentEditable=String("nocursor"!=t)},Qa.prototype.onContextMenu=function(){},Qa.prototype.resetPosition=function(){},Qa.prototype.needsContentAttribute=!0;var tl=function(t){this.cm=t,this.prevInput="",this.pollingFast=!1,this.polling=new zs,this.hasSelection=!1,this.composing=null};tl.prototype.init=function(t){function e(t){if(!Et(r,t)){if(r.somethingSelected())Yo({lineWise:!1,text:r.getSelections()});else{if(!r.options.lineWiseCopyCut)return;var e=Qo(r);Yo({lineWise:!0,text:e.text}),"cut"==t.type?r.setSelections(e.ranges,null,Bs):(i.prevInput="",s.value=e.text.join("\n"),$s(s))}"cut"==t.type&&(r.state.cutIncoming=!0)}}var n=this,i=this,r=this.cm,o=this.wrapper=es(),s=this.textarea=o.firstChild;t.wrapper.insertBefore(o,t.wrapper.firstChild),Ms&&(s.style.width="0px"),ta(s,"input",function(){vs&&ys>=9&&n.hasSelection&&(n.hasSelection=null),i.poll()}),ta(s,"paste",function(t){Et(r,t)||Jo(t,r)||(r.state.pasteIncoming=!0,i.fastPoll())}),ta(s,"cut",e),ta(s,"copy",e),ta(t.scroller,"paste",function(e){_e(t,e)||Et(r,e)||(r.state.pasteIncoming=!0,i.focus())}),ta(t.lineSpace,"selectstart",function(e){_e(t,e)||Ot(e)}),ta(s,"compositionstart",function(){var t=r.getCursor("from");i.composing&&i.composing.range.clear(),i.composing={start:t,range:r.markText(t,r.getCursor("to"),{className:"CodeMirror-composing"})}}),ta(s,"compositionend",function(){i.composing&&(i.poll(),i.composing.range.clear(),i.composing=null)})},tl.prototype.prepareSelection=function(){var t=this.cm,e=t.display,n=t.doc,i=Pn(t);if(t.options.moveInputWithCursor){var r=cn(t,n.sel.primary().head,"div"),o=e.wrapper.getBoundingClientRect(),s=e.lineDiv.getBoundingClientRect();i.teTop=Math.max(0,Math.min(e.wrapper.clientHeight-10,r.top+s.top-o.top)),i.teLeft=Math.max(0,Math.min(e.wrapper.clientWidth-10,r.left+s.left-o.left))}return i},tl.prototype.showSelection=function(t){var e=this.cm,i=e.display;n(i.cursorDiv,t.cursors),n(i.selectionDiv,t.selection),null!=t.teTop&&(this.wrapper.style.top=t.teTop+"px",this.wrapper.style.left=t.teLeft+"px")},tl.prototype.reset=function(t){if(!this.contextMenuPending&&!this.composing){var e=this.cm;if(e.somethingSelected()){this.prevInput="";var n=e.getSelection();this.textarea.value=n,e.state.focused&&$s(this.textarea),vs&&ys>=9&&(this.hasSelection=n)}else t||(this.prevInput=this.textarea.value="",vs&&ys>=9&&(this.hasSelection=null))}},tl.prototype.getField=function(){return this.textarea},tl.prototype.supportsTouch=function(){return!1},tl.prototype.focus=function(){if("nocursor"!=this.cm.options.readOnly&&(!Ps||s()!=this.textarea))try{this.textarea.focus()}catch(t){}},tl.prototype.blur=function(){this.textarea.blur()},tl.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},tl.prototype.receivedFocus=function(){this.slowPoll()},tl.prototype.slowPoll=function(){var t=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,function(){t.poll(),t.cm.state.focused&&t.slowPoll()})},tl.prototype.fastPoll=function(){function t(){n.poll()||e?(n.pollingFast=!1,n.slowPoll()):(e=!0,n.polling.set(60,t))}var e=!1,n=this;n.pollingFast=!0,n.polling.set(20,t)},tl.prototype.poll=function(){var t=this,e=this.cm,n=this.textarea,i=this.prevInput;if(this.contextMenuPending||!e.state.focused||ia(n)&&!i&&!this.composing||e.isReadOnly()||e.options.disableInput||e.state.keySeq)return!1;var r=n.value;if(r==i&&!e.somethingSelected())return!1;if(vs&&ys>=9&&this.hasSelection===r||As&&/[\uf700-\uf7ff]/.test(r))return e.display.input.reset(),!1;if(e.doc.sel==e.display.selForContextMenu){var o=r.charCodeAt(0);if(8203!=o||i||(i="โ€‹"),8666==o)return this.reset(),this.cm.execCommand("undo")}for(var s=0,a=Math.min(i.length,r.length);s1e3||r.indexOf("\n")>-1?n.value=t.prevInput="":t.prevInput=r,t.composing&&(t.composing.range.clear(),t.composing.range=e.markText(t.composing.start,e.getCursor("to"),{className:"CodeMirror-composing"}))}),!0},tl.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},tl.prototype.onKeyPress=function(){vs&&ys>=9&&(this.hasSelection=null),this.fastPoll()},tl.prototype.onContextMenu=function(t){function e(){if(null!=s.selectionStart){var t=r.somethingSelected(),e="โ€‹"+(t?s.value:"");s.value="โ‡š",s.value=e,i.prevInput=t?"":"โ€‹",s.selectionStart=1,s.selectionEnd=e.length,o.selForContextMenu=r.doc.sel}}function n(){if(i.contextMenuPending=!1,i.wrapper.style.cssText=u,s.style.cssText=c,vs&&ys<9&&o.scrollbars.setScrollTop(o.scroller.scrollTop=l),null!=s.selectionStart){(!vs||vs&&ys<9)&&e();var t=0,n=function(){o.selForContextMenu==r.doc.sel&&0==s.selectionStart&&s.selectionEnd>0&&"โ€‹"==i.prevInput?pi(r,Pr)(r):t++<10?o.detectingSelectAll=setTimeout(n,500):(o.selForContextMenu=null,o.input.reset())};o.detectingSelectAll=setTimeout(n,200)}}var i=this,r=i.cm,o=r.display,s=i.textarea,a=Tn(r,t),l=o.scroller.scrollTop;if(a&&!Cs){r.options.resetSelectionOnContextMenu&&-1==r.doc.sel.contains(a)&&pi(r,xr)(r.doc,Ri(a),Bs);var c=s.style.cssText,u=i.wrapper.style.cssText;i.wrapper.style.cssText="position: absolute";var h=i.wrapper.getBoundingClientRect();s.style.cssText="position: absolute; width: 30px; height: 30px;\n top: "+(t.clientY-h.top-5)+"px; left: "+(t.clientX-h.left-5)+"px;\n z-index: 1000; background: "+(vs?"rgba(255, 255, 255, .05)":"transparent")+";\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);";var d;if(bs&&(d=window.scrollY),o.input.focus(),bs&&window.scrollTo(null,d),o.input.reset(),r.somethingSelected()||(s.value=i.prevInput=" "),i.contextMenuPending=!0,o.selForContextMenu=r.doc.sel,clearTimeout(o.detectingSelectAll),vs&&ys>=9&&e(),_s){It(t);var f=function(){Tt(window,"mouseup",f),setTimeout(n,20)};ta(window,"mouseup",f)}else setTimeout(n,50)}},tl.prototype.readOnlyChanged=function(t){t||this.reset(),this.textarea.disabled="nocursor"==t},tl.prototype.setUneditable=function(){},tl.prototype.needsContentAttribute=!1,function(t){function e(e,i,r,o){t.defaults[e]=i,r&&(n[e]=o?function(t,e,n){n!=Ga&&r(t,e,n)}:r)}var n=t.optionHandlers;t.defineOption=e,t.Init=Ga,e("value","",function(t,e){return t.setValue(e)},!0),e("mode",null,function(t,e){t.doc.modeOption=e,qi(t)},!0),e("indentUnit",2,qi,!0),e("indentWithTabs",!1),e("smartIndent",!0),e("tabSize",4,function(t){Ki(t),en(t),vi(t)},!0),e("lineSeparator",null,function(t,e){if(t.doc.lineSep=e,e){var n=[],i=t.doc.first;t.doc.iter(function(t){for(var r=0;;){var o=t.text.indexOf(e,r);if(-1==o)break;r=o+e.length,n.push(_(i,o))}i++});for(var r=n.length-1;r>=0;r--)Fr(t.doc,e,n[r],_(n[r].line,n[r].ch+e.length))}}),e("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b-\u200f\u2028\u2029\ufeff]/g,function(t,e,n){t.state.specialChars=new RegExp(e.source+(e.test("\t")?"":"|\t"),"g"),n!=Ga&&t.refresh()}),e("specialCharPlaceholder",ce,function(t){return t.refresh()},!0),e("electricChars",!0),e("inputStyle",Ps?"contenteditable":"textarea",function(){throw new Error("inputStyle can not (yet) be changed in a running editor")},!0),e("spellcheck",!1,function(t,e){return t.getInputField().spellcheck=e},!0),e("rtlMoveVisually",!Os),e("wholeLineUpdateBefore",!0),e("theme","default",function(t){jo(t),Bo(t)},!0),e("keyMap","default",function(t,e,n){var i=uo(e),r=n!=Ga&&uo(n);r&&r.detach&&r.detach(t,i),i.attach&&i.attach(t,r||null)}),e("extraKeys",null),e("configureMouse",null),e("lineWrapping",!1,Uo,!0),e("gutters",[],function(t){_i(t.options),Bo(t)},!0),e("fixedGutter",!0,function(t,e){t.display.gutters.style.left=e?Cn(t.display)+"px":"0",t.refresh()},!0),e("coverGutterNextToScrollbar",!1,function(t){return ni(t)},!0),e("scrollbarStyle","native",function(t){ri(t),ni(t),t.display.scrollbars.setScrollTop(t.doc.scrollTop),t.display.scrollbars.setScrollLeft(t.doc.scrollLeft)},!0),e("lineNumbers",!1,function(t){_i(t.options),Bo(t)},!0),e("firstLineNumber",1,Bo,!0),e("lineNumberFormatter",function(t){return t},Bo,!0),e("showCursorWhenSelecting",!1,En,!0),e("resetSelectionOnContextMenu",!0),e("lineWiseCopyCut",!0),e("pasteLinesPerSelection",!0),e("readOnly",!1,function(t,e){"nocursor"==e&&(Fn(t),t.display.input.blur()),t.display.input.readOnlyChanged(e)}),e("disableInput",!1,function(t,e){e||t.display.input.reset()},!0),e("dragDrop",!0,Wo),e("allowDropFileTypes",null),e("cursorBlinkRate",530),e("cursorScrollMargin",0),e("cursorHeight",1,En,!0),e("singleCursorHeightPerLine",!0,En,!0),e("workTime",100),e("workDelay",100),e("flattenSpans",!0,Ki,!0),e("addModeClass",!1,Ki,!0),e("pollInterval",100),e("undoDepth",200,function(t,e){return t.doc.history.undoDepth=e}),e("historyEventDelay",1250),e("viewportMargin",10,function(t){return t.refresh()},!0),e("maxHighlightLength",1e4,Ki,!0),e("moveInputWithCursor",!0,function(t,e){e||t.display.input.resetPosition()}),e("tabindex",null,function(t,e){return t.display.input.getField().tabIndex=e||""}),e("autofocus",null),e("direction","ltr",function(t,e){return t.doc.setDirection(e)},!0)}(qo),function(t){var e=t.optionHandlers,n=t.helpers={};t.prototype={constructor:t,focus:function(){window.focus(),this.display.input.focus()},setOption:function(t,n){var i=this.options,r=i[t];i[t]==n&&"mode"!=t||(i[t]=n,e.hasOwnProperty(t)&&pi(this,e[t])(this,n,r),Mt(this,"optionChange",this,t))},getOption:function(t){return this.options[t]},getDoc:function(){return this.doc},addKeyMap:function(t,e){this.state.keyMaps[e?"push":"unshift"](uo(t))},removeKeyMap:function(t){for(var e=this.state.keyMaps,n=0;ni&&(Go(e,o.head.line,t,!0),i=o.head.line,r==e.doc.sel.primIndex&&Kn(e));else{var s=o.from(),a=o.to(),l=Math.max(i,s.line);i=Math.min(e.lastLine(),a.line-(a.ch?0:1))+1;for(var c=l;c0&&mr(e.doc,r,new Pa(s,u[r].to()),Bs)}}}),getTokenAt:function(t,e){return te(this,t,e)},getLineTokens:function(t,e){return te(this,_(t),e,!0)},getTokenTypeAt:function(t){t=j(this.doc,t);var e,n=Yt(this,E(this.doc,t.line)),i=0,r=(n.length-1)/2,o=t.ch;if(0==o)e=n[2];else for(;;){var s=i+r>>1;if((s?n[2*s-1]:0)>=o)r=s;else{if(!(n[2*s+1]o&&(t=o,r=!0),i=E(this.doc,t)}else i=t;return sn(this,i,{top:0,left:0},e||"page",n||r).top+(r?this.doc.height-yt(i):0)},defaultTextHeight:function(){return bn(this.display)},defaultCharWidth:function(){return xn(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(t,e,n,i,r){var o=this.display;t=cn(this,j(this.doc,t));var s=t.bottom,a=t.left;if(e.style.position="absolute",e.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(e),o.sizer.appendChild(e),"over"==i)s=t.top;else if("above"==i||"near"==i){var l=Math.max(o.wrapper.clientHeight,this.doc.height),c=Math.max(o.sizer.clientWidth,o.lineSpace.clientWidth);("above"==i||t.bottom+e.offsetHeight>l)&&t.top>e.offsetHeight?s=t.top-e.offsetHeight:t.bottom+e.offsetHeight<=l&&(s=t.bottom),a+e.offsetWidth>c&&(a=c-e.offsetWidth)}e.style.top=s+"px",e.style.left=e.style.right="","right"==r?(a=o.sizer.clientWidth-e.offsetWidth,e.style.right="0px"):("left"==r?a=0:"middle"==r&&(a=(o.sizer.clientWidth-e.offsetWidth)/2),e.style.left=a+"px"),n&&Wn(this,{left:a,top:s,right:a+e.offsetWidth,bottom:s+e.offsetHeight})},triggerOnKeyDown:gi(To),triggerOnKeyPress:gi(Po),triggerOnKeyUp:Eo,triggerOnMouseDown:gi(Lo),execCommand:function(t){if(ja.hasOwnProperty(t))return ja[t].call(null,this)},triggerElectric:gi(function(t){Zo(this,t)}),findPosH:function(t,e,n,i){var r=this,o=1;e<0&&(o=-1,e=-e);for(var s=j(this.doc,t),a=0;a0&&a(n.charAt(i-1));)--i;for(;r.5)&&Sn(this),Mt(this,"refresh",this)}),swapDoc:gi(function(t){var e=this.doc;return e.cm=null,Ji(this,t),en(this),this.display.input.reset(),Gn(this,t.scrollLeft,t.scrollTop),this.curOp.forceScroll=!0,xe(this,"swapDoc",this,e),e}),getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},Lt(t),t.registerHelper=function(e,i,r){n.hasOwnProperty(e)||(n[e]=t[e]={_global:[]}),n[e][i]=r},t.registerGlobalHelper=function(e,i,r,o){t.registerHelper(e,i,o),n[e]._global.push({pred:r,val:o})}}(qo);var el="iter insert remove copy getEditor constructor".split(" ");for(var nl in Ia.prototype)Ia.prototype.hasOwnProperty(nl)&&d(el,nl)<0&&(qo.prototype[nl]=function(t){return function(){return t.apply(this.doc,arguments)}}(Ia.prototype[nl]));return Lt(Ia),qo.inputStyles={textarea:tl,contenteditable:Qa},qo.defineMode=function(t){qo.defaults.mode||"null"==t||(qo.defaults.mode=t),Rt.apply(this,arguments)},qo.defineMIME=Vt,qo.defineMode("null",function(){return{token:function(t){return t.skipToEnd()}}}),qo.defineMIME("text/plain","null"),qo.defineExtension=function(t,e){qo.prototype[t]=e},qo.defineDocExtension=function(t,e){Ia.prototype[t]=e},qo.fromTextArea=us,function(t){t.off=Tt,t.on=ta,t.wheelEventPixels=$i,t.Doc=Ia,t.splitLines=na,t.countColumn=h,t.findColumn=f,t.isWordChar=x,t.Pass=js,t.signal=Mt,t.Line=fa,t.changeEnd=Vi,t.scrollbarModel=Ca,t.Pos=_,t.cmpPos=F,t.modes=sa,t.mimeModes=aa,t.resolveMode=jt,t.getMode=Bt,t.modeExtensions=la,t.extendMode=Wt,t.copyState=Ut,t.startState=Kt,t.innerMode=qt,t.commands=ja,t.keyMap=Va,t.keyName=co,t.isModifierKey=ao,t.lookupKey=so,t.normalizeKeyMap=oo,t.StringStream=ca,t.SharedTextMarker=Na,t.TextMarker=Oa,t.LineWidget=Aa,t.e_preventDefault=Ot,t.e_stopPropagation=Nt,t.e_stop=It,t.addClass=a,t.contains=o,t.rmClass=Fs,t.keyNames=$a}(qo),qo.version="5.31.0",qo})},function(t,e,n){"use strict";(function(e,n){var i=e.$;t.exports=e.View.extend({events:{change:"onChange"},initialize:function(t){var e=this.model;this.config=t.config||{},this.pfx=this.config.stylePrefix||"",this.ppfx=this.config.pStylePrefix||"",this.target=e.target,this.className=this.pfx+"trait",this.labelClass=this.ppfx+"label",this.fieldClass=this.ppfx+"field "+this.ppfx+"field-"+e.get("type"),this.inputhClass=this.ppfx+"input-holder",e.off("change:value",this.onValueChange),this.listenTo(e,"change:value",this.onValueChange),this.tmpl='
'},onChange:function(){this.model.set("value",this.getInputEl().value)},getValueForTarget:function(){return this.model.get("value")},onValueChange:function(){var t=this.model,e=this.target,i=t.get("name"),r=this.getValueForTarget();if(t.get("changeProp"))e.set(i,r);else{var o=n.clone(e.get("attributes"));o[i]=r,e.set("attributes",o)}},renderLabel:function(){this.$el.html('
'+this.getLabel()+"
")},getLabel:function(){var t=this.model,e=t.get("label")||t.get("name");return e.charAt(0).toUpperCase()+e.slice(1).replace(/-/g," ")},getInputEl:function(){if(!this.$input){var t=this.model,e=this.target,n=t.get("name"),r=t.get("placeholder")||t.get("default")||"",o=t.get("type")||"text",s=e.get("attributes"),a=t.get("min"),l=t.get("max"),c=t.get("changeProp")?e.get(n):t.get("value")||s[n],u=i('');c&&u.prop("value",c),a&&u.prop("min",a),l&&u.prop("max",l),this.$input=u}return this.$input.get(0)},getModelValue:function(){var t,e=this.model,n=this.target,i=e.get("name");if(e.get("changeProp"))t=n.get(i);else{var r=n.get("attributes");t=e.get("value")||r[i]}return t},renderField:function(){if(!this.$input){this.$el.append(this.tmpl);var t=this.getInputEl(),e=this.el.querySelector("."+this.inputhClass);e.insertBefore(t,e.childNodes[0])}},render:function(){return this.renderLabel(),this.renderField(),this.el.className=this.className,this}})}).call(e,n(0),n(1))},function(t,e,n){"use strict";var i,r;!function(o,s){i=s,void 0!==(r="function"==typeof i?i.call(e,n,e,t):i)&&(t.exports=r)}(0,function(){function t(t,e){return e=e||E,$.test(t)?e.getElementsByClassName(t.slice(1)):H.test(t)?e.getElementsByTagName(t):e.querySelectorAll(t)}function e(t){if(!M){M=E.implementation.createHTMLDocument();var e=M.createElement("base");e.href=E.location.href,M.head.appendChild(e)}return M.body.innerHTML=t,M.body.childNodes}function n(t){"loading"!==E.readyState?t():E.addEventListener("DOMContentLoaded",t)}function i(i,r){if(!i)return this;if(i.cash&&i!==P)return i;var o,s=i,a=0;if(_(i))s=F.test(i)?E.getElementById(i.slice(1)):z.test(i)?e(i):t(i,r);else if(I(i))return n(i),this;if(!s)return this;if(s.nodeType||s===P)this[0]=s,this.length=1;else for(o=this.length=s.length;a=0&&s.splice(i,1)):(o(s,function(n){t.removeEventListener(e,n)}),s=[]))}function x(t,e){return"&"+encodeURIComponent(t)+"="+encodeURIComponent(e).replace(/%20/g,"+")}function w(t){var e=[];return o(t.options,function(t){t.selected&&e.push(t.value)}),e.length?e:null}function C(t){var e=t.selectedIndex;return e>=0?t.options[e].value:null}function k(t){var e=t.type;if(!e)return null;switch(e.toLowerCase()){case"select-one":return C(t);case"select-multiple":return w(t);case"radio":case"checkbox":return t.checked?t.value:null;default:return t.value?t.value:null}}function S(t,e,n){if(n){var i=t.childNodes[0];t.insertBefore(e,i)}else t.appendChild(e)}function T(t,e,n){var i=_(e);if(!i&&e.length)return void o(e,function(e){return T(t,e,n)});o(t,i?function(t){return t.insertAdjacentHTML(n?"afterbegin":"beforeend",e)}:function(t,i){return S(t,0===i?e:e.cloneNode(!0),n)})}var M,E=document,P=window,A=Array.prototype,L=A.slice,O=A.filter,N=A.push,D=function(){},I=function(t){return typeof t==typeof D&&t.call},_=function(t){return"string"==typeof t},F=/^#[\w-]*$/,$=/^\.[\w-]*$/,z=/<.+>/,H=/^\w+$/,R=r.fn=r.prototype=i.prototype={cash:!0,length:0,push:N,splice:A.splice,map:A.map,init:i};Object.defineProperty(R,"constructor",{value:r}),r.parseHTML=e,r.noop=D,r.isFunction=I,r.isString=_,r.extend=R.extend=function(t){t=t||{};var e=L.call(arguments),n=e.length,i=1;for(1===e.length&&(t=this,i=0);i1?this.each(function(n){return n.style[t]=e}):P.getComputedStyle(this[0])[t];for(var n in t)this.css(n,t[n]);return this}}),o(["Width","Height"],function(t){var e=t.toLowerCase();R[e]=function(){return this[0].getBoundingClientRect()[e]},R["inner"+t]=function(){return this[0]["client"+t]},R["outer"+t]=function(e){return this[0]["offset"+t]+(e?v(this,"margin"+("Width"===t?"Left":"Top"))+v(this,"margin"+("Width"===t?"Right":"Bottom")):0)}}),R.extend({off:function(t,e){return this.each(function(n){return b(n,t,e)})},on:function(t,e,i,r){var o;if(!_(t)){for(var a in t)this.on(a,e,t[a]);return this}return I(e)&&(i=e,e=null),"ready"===t?(n(i),this):(e&&(o=i,i=function(t){for(var n=t.target;!s(n,e);){if(n===this)return n=!1;n=n.parentNode}n&&o.call(n,t)}),this.each(function(e){var n=i;r&&(n=function(){i.apply(this,arguments),b(e,t,n)}),y(e,t,n)}))},one:function(t,e,n){return this.on(t,e,n,!0)},ready:n,trigger:function(t,e){var n=E.createEvent("HTMLEvents");return n.data=e,n.initEvent(t,!0,!1),this.each(function(t){return t.dispatchEvent(n)})}}),R.extend({serialize:function(){var t="";return o(this[0].elements||this,function(e){if(!e.disabled&&"FIELDSET"!==e.tagName){var n=e.name;switch(e.type.toLowerCase()){case"file":case"reset":case"submit":case"button":break;case"select-multiple":var i=k(e);null!==i&&o(i,function(e){t+=x(n,e)});break;default:var r=k(e);null!==r&&(t+=x(n,r))}}}),t.substr(1)},val:function(t){return void 0===t?k(this[0]):this.each(function(e){return e.value=t})}}),R.extend({after:function(t){return r(t).insertAfter(this),this},append:function(t){return T(this,t),this},appendTo:function(t){return T(r(t),this),this},before:function(t){return r(t).insertBefore(this),this},clone:function(){return r(this.map(function(t){return t.cloneNode(!0)}))},empty:function(){return this.html(""),this},html:function(t){if(void 0===t)return this[0].innerHTML;var e=t.nodeType?t[0].outerHTML:t;return this.each(function(t){return t.innerHTML=e})},insertAfter:function(t){var e=this;return r(t).each(function(t,n){var i=t.parentNode,r=t.nextSibling;e.each(function(t){i.insertBefore(0===n?t:t.cloneNode(!0),r)})}),this},insertBefore:function(t){var e=this;return r(t).each(function(t,n){var i=t.parentNode;e.each(function(e){i.insertBefore(0===n?e:e.cloneNode(!0),t)})}),this},prepend:function(t){return T(this,t,!0),this},prependTo:function(t){return T(r(t),this,!0),this},remove:function(){return this.each(function(t){return t.parentNode.removeChild(t)})},text:function(t){return void 0===t?this[0].textContent:this.each(function(e){return e.textContent=t})}});var U=E.documentElement;return R.extend({position:function(){var t=this[0];return{left:t.offsetLeft,top:t.offsetTop}},offset:function(){var t=this[0].getBoundingClientRect();return{top:t.top+P.pageYOffset-U.clientTop,left:t.left+P.pageXOffset-U.clientLeft}},offsetParent:function(){return r(this[0].offsetParent)}}),R.extend({children:function(t){var e=[];return this.each(function(t){N.apply(e,t.children)}),e=l(e),t?e.filter(function(e){return s(e,t)}):e},closest:function(t){return!t||this.length<1?r():this.is(t)?this.filter(t):this.parent().closest(t)},is:function(t){if(!t)return!1;var e=!1,n=a(t);return this.each(function(i){return!(e=n(i,t))}),e},find:function(e){if(!e||e.nodeType)return r(e&&this.has(e).length?e:null);var n=[];return this.each(function(i){N.apply(n,t(e,i))}),l(n)},has:function(e){var n=_(e)?function(n){return 0!==t(e,n).length}:function(t){return t.contains(e)};return this.filter(n)},next:function(){return r(this[0].nextElementSibling)},not:function(t){if(!t)return this;var e=a(t);return this.filter(function(n){return!e(n,t)})},parent:function(){var t=[];return this.each(function(e){e&&e.parentNode&&t.push(e.parentNode)}),l(t)},parents:function(t){var e,n=[];return this.each(function(i){for(e=i;e&&e.parentNode&&e!==E.body.parentNode;)e=e.parentNode,(!t||t&&s(e,t))&&n.push(e)}),l(n)},prev:function(){return r(this[0].previousElementSibling)},siblings:function(){var t=this.parent().children(),e=this[0];return t.filter(function(t){return t!==e})}}),r})},function(t,e,n){"use strict";var i=n(0),r=i.Model.extend({idAttribute:"name",defaults:{name:"",label:"",type:"class",active:!0,private:!1,protected:!1},initialize:function(){var t=this.get("name"),e=this.get("label");t?e||this.set("label",t):this.set("name",e),this.set("name",r.escapeName(this.get("name")))},getFullName:function(){var t="";switch(this.get("type")){case"class":t=".";break;case"id":t="#"}return t+this.get("name")}},{escapeName:function(t){return(""+t).trim().replace(/([^a-z0-9\w-]+)/gi,"-")}});t.exports=r},function(t,e,n){"use strict";var i=n(30),r=function(t){return t&&t.__esModule?t:{default:t}}(i),o=n(11);t.exports=n(0).Collection.extend(r.default).extend({types:[{id:"stack",model:n(114),view:n(32),isType:function(t){if(t&&"stack"==t.type)return t}},{id:"composite",model:n(31),view:n(16),isType:function(t){if(t&&"composite"==t.type)return t}},{id:"file",model:o,view:n(38),isType:function(t){if(t&&"file"==t.type)return t}},{id:"color",model:o,view:n(36),isType:function(t){if(t&&"color"==t.type)return t}},{id:"select",model:n(39),view:n(35),isType:function(t){if(t&&"select"==t.type)return t}},{id:"radio",model:n(39),view:n(34),isType:function(t){if(t&&"radio"==t.type)return t}},{id:"slider",model:n(120),view:n(121),isType:function(t){if(t&&"slider"==t.type)return t}},{id:"integer",model:n(40),view:n(13),isType:function(t){if(t&&"integer"==t.type)return t}},{id:"base",model:o,view:n(5),isType:function(t){return t.type="base",t}}],deepClone:function(){var t=this.clone();return t.reset(t.map(function(t){var e=t.clone();return e.typeView=t.typeView,e})),t},parseValue:function(t){var e=this,n=[];return t.split(" ").forEach(function(t,i){var r=e.at(i);n.push(Object.assign({},r.attributes,{value:t}))}),n},getFullValue:function(){var t="";return this.each(function(e){return t+=e.getFullValue()+" "}),t.trim()}})},function(t,e,n){"use strict";var i=Object.assign||function(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.parseValue(t);this.set(r,i({},n,{avoidStore:1})),e&&(this.set("value","",n),this.set(r,n))},setValueFromInput:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.setValue(t,e,i({},n,{fromInput:1}))},parseValue:function(t){var e={value:t};if(!this.get("functionName"))return e;var n=[],i=""+t,r=i.indexOf("(")+1,o=i.lastIndexOf(")");return n.push(r),o>=0&&n.push(o),e.value=String.prototype.substring.apply(i,n),e},getDefaultValue:function(){return this.get("defaults")},getFullValue:function(t){var e=this.get("functionName"),n=t||this.get("value");return e&&(n=e+"("+n+")"),n}})},function(t,e,n){"use strict";(function(e){n(5),n(13),n(34),n(35),n(36),n(38),n(16),n(32);t.exports=e.View.extend({initialize:function(t){this.config=t.config||{},this.pfx=this.config.stylePrefix||"",this.target=t.target||{},this.propTarget=t.propTarget||{},this.onChange=t.onChange,this.onInputRender=t.onInputRender||{},this.customValue=t.customValue||{};var e=this.collection;this.listenTo(e,"add",this.addTo),this.listenTo(e,"reset",this.render)},addTo:function(t){this.add(t)},add:function(t,e){var n=new t.typeView({model:t,name:t.get("name"),id:this.pfx+t.get("property"),target:this.target,propTarget:this.propTarget,onChange:this.onChange,onInputRender:this.onInputRender,config:this.config});"composite"!=t.get("type")&&(n.customValue=this.customValue),n.render();var i=n.el;e?e.appendChild(i):this.el.appendChild(i)},render:function(){var t=this,e=document.createDocumentFragment();return this.collection.each(function(n){return t.add(n,e)}),this.$el.append(e),this.$el.attr("class",this.pfx+"properties"),this}})}).call(e,n(0))},function(t,e,n){"use strict";(function(e){var i=(n(17),e.$);t.exports=n(5).extend({templateInput:function(){return""},init:function(){var t=this.model;this.listenTo(t,"change:unit",this.modelValueChanged),this.listenTo(t,"el:change",this.elementUpdated)},setValue:function(t){this.inputInst.setValue(t,{silent:1})},onRender:function(){var t=this.ppfx;if(!this.input){var e=this.model.input;e.ppfx=t,e.render();this.el.querySelector("."+t+"fields").appendChild(e.el),this.$input=e.inputEl,this.unit=e.unitEl,this.$unit=i(this.unit),this.input=this.$input.get(0),this.inputInst=e}}})}).call(e,n(0))},function(t,e,n){"use strict";var i=(n(0),n(4));t.exports=i.extend({tagName:"img",events:{dblclick:"openModal",click:"initResize"},initialize:function(t){i.prototype.initialize.apply(this,arguments),this.listenTo(this.model,"change:src",this.updateSrc),this.listenTo(this.model,"dblclick active",this.openModal),this.classEmpty=this.ppfx+"plh-image",this.config.modal&&(this.modal=this.config.modal),this.config.am&&(this.am=this.config.am)},updateSrc:function(){var t=this.model.get("src");this.$el.attr("src",t),t?this.$el.removeClass(this.classEmpty):this.$el.addClass(this.classEmpty)},openModal:function(t){var e=this.opts.config.em,n=e?e.get("Editor"):"";n&&n.runCommand("open-assets",{target:this.model,onSelect:function(){n.Modal.close(),n.AssetManager.setTarget(null)}})},render:function(){this.updateAttributes(),this.updateClasses();var t=this.$el.attr("class")||"";return this.model.get("src")||this.$el.attr("class",(t+" "+this.classEmpty).trim()),this.$el.attr("onmousedown","return false"),this}})},function(t,e){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(n=window)}t.exports=n},function(t,e,n){"use strict";(function(e){var i=n(5),r=e.$;t.exports=i.extend({templateInput:function(){var t=this.pfx;return'\n
\n \n
\n '},inputValueChanged:function(){if(!this.model.get("detached")){for(var t=arguments.length,e=Array(t),n=0;n'),this.input=this.$input.get(0)),this.props||(this.props=t.get("properties")),!this.$props)){this.props.each(function(e,n){e&&"composite"==e.get("type")&&(this.props.remove(e),console.warn("Nested composite types not yet allowed.")),e.parent=t},this);var i=n(12),o=new i(this.getPropsConfig());this.$props=o.render().$el,this.$el.find("#"+this.pfx+"input-holder").append(this.$props)}},getPropsConfig:function(t){var e=this,n=this.model,i={config:this.config,collection:this.props,target:this.target,propTarget:this.propTarget,onChange:function(t,e,i){n.set("value",n.getFullValue(),i)},customValue:function(t,n){return e.valueOnIndex(n,t)}};return n.get("detached")&&delete i.onChange,i},valueOnIndex:function(t,e){var n=void 0,i=this.getTargetValue({ignoreDefault:1});if(i){n=i.split(" ")[t]}else n=e&&e.getTargetValue({ignoreCustomValue:1,ignoreDefault:1});return e&&(n=e.model.parseValue(n).value),n}})}).call(e,n(0))},function(t,e,n){"use strict";(function(e){var i=n(1),r=n(2),o=n(33),s=n(0);s.$;t.exports=o.extend({events:{"change input":"handleChange","change select":"handleUnitChange","click [data-arrow-up]":"upArrowClick","click [data-arrow-down]":"downArrowClick","mousedown [data-arrows]":"downIncrement"},template:function(){var t=this.ppfx;return'\n \n \n
\n
\n
\n
\n '},inputClass:function(){var t=this.ppfx;return this.opts.contClass||t+"field "+t+"field-integer"},initialize:function(){arguments.length>0&&void 0!==arguments[0]&&arguments[0];o.prototype.initialize.apply(this,arguments),(0,i.bindAll)(this,"moveIncrement","upIncrement"),this.doc=document,this.listenTo(this.model,"change:unit",this.handleModelChange)},setValue:function(t,e){var n=e||{},i=this.validateInputValue(t,{deepCheck:1}),r={value:i.value};(i.unit||i.force)&&(r.unit=i.unit),this.model.set(r,n),n.silent&&this.handleModelChange()},handleChange:function(t){t.stopPropagation(),this.setValue(this.getInputEl().value),this.elementUpdated()},handleUnitChange:function(t){t.stopPropagation();var e=this.getUnitEl().value;this.model.set("unit",e),this.elementUpdated()},elementUpdated:function(){this.model.trigger("el:change")},handleModelChange:function(){var t=this.model;this.getInputEl().value=t.get("value");var e=this.getUnitEl();e&&(e.value=t.get("unit"))},getUnitEl:function(){if(!this.unitEl){var t=this.model,e=t.get("units")||[];if(e.length){var n=[];e.forEach(function(e){var i=e==t.get("unit")?"selected":"";n.push("")});var i=document.createElement("div");i.innerHTML='",this.unitEl=i.firstChild}}return this.unitEl},upArrowClick:function(){var t=this.model,e=t.get("step"),n=t.get("value");n=this.normalizeValue(n+e);var i=this.validateInputValue(n);t.set("value",i.value),this.elementUpdated()},downArrowClick:function(){var t=this.model,e=t.get("step"),n=t.get("value"),i=this.normalizeValue(n-e),r=this.validateInputValue(i);t.set("value",r.value),this.elementUpdated()},downIncrement:function(t){t.preventDefault(),this.moved=0;var e=this.model.get("value");e=this.normalizeValue(e),this.current={y:t.pageY,val:e},(0,r.on)(this.doc,"mousemove",this.moveIncrement),(0,r.on)(this.doc,"mouseup",this.upIncrement)},moveIncrement:function(t){this.moved=1;var e=this.model,n=e.get("step"),i=this.current,r=this.normalizeValue(i.val+(i.y-t.pageY)*n);return this.prValue=this.validateInputValue(r).value,e.set("value",this.prValue,{avoidStore:1}),!1},upIncrement:function(){var t=this.model,e=t.get("step");if((0,r.off)(this.doc,"mouseup",this.upIncrement),(0,r.off)(this.doc,"mousemove",this.moveIncrement),this.prValue&&this.moved){var n=this.prValue-e;t.set("value",n,{avoidStore:1}).set("value",n+e),this.elementUpdated()}},normalizeValue:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.model,i=n.get("step"),r=0;if(isNaN(t))return e;if(t=parseFloat(t),Math.floor(t)!==t){var o=i.toString().split(".")[1];r=o?o.length:0}return r?parseFloat(t.toFixed(r)):t},validateInputValue:function(t,n){var i=0,r=n||{},o=this.model,s=""!==t?t:o.get("defaults"),a=o.get("units")||[],l=o.get("unit")||a.length&&a[0]||"",c=o.get("max"),u=o.get("min");if(r.deepCheck){var h=o.get("fixedValues")||[];if(s){var d=new RegExp("^"+h.join("|"),"g");if(h.length&&d.test(s))s=s.match(d)[0],l="",i=1;else{var f=s+"";s+="",s=parseFloat(s.replace(",",".")),s=isNaN(s)?o.get("defaults"):s;var p=f.replace(s,"");e.indexOf(a,p)>=0&&(l=p)}}}return void 0!==c&&""!==c&&(s=s>c?c:s),void 0!==u&&""!==u&&(s=s1&&void 0!==arguments[1]?arguments[1]:{},r=i.el,s=i.config,a=i.resizer,l=s.keyHeight,h=s.keyWidth,d=s.currentUnit;f("add",0,i),e=n.get("StyleManager").getModelToStyle(c);var p=getComputedStyle(r),g=e.getStyle(),m=g[h]||p[h],v=g[l]||p[l];a.startDim.w=parseFloat(m),a.startDim.h=parseFloat(v),u=0,d&&(s.unitHeight=(0,o.getUnitFromValue)(v),s.unitWidth=(0,o.getUnitFromValue)(m))},onMove:function(){r.trigger("change:canvasOffset")},onEnd:function(t,e){f("remove",0,e),r.trigger("change:canvasOffset"),u=1},updateTarget:function(t,i){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var o=r.store,s=r.selectedHandler,a=r.config,l=a.keyHeight,c=a.keyWidth,u=["tc","bc"].indexOf(s)>=0,h=["cl","cr"].indexOf(s)>=0,d=e.getStyle();u||(d[c]=i.w+a.unitWidth),h||(d[l]=i.h+a.unitHeight),e.setStyle(d,{avoidStore:1});n&&n.trigger("update:component:style:height update:component:style:width"),o&&e.trigger("change:style",e,d,{})}}},"object"==(void 0===h?"undefined":i(h))&&(d=Object.assign(d,h)),r.runCommand("resize",{el:t,options:d}))},updateToolbar:function(t){var e=this.config.em,n=t==e?e.get("selectedComponent"):t,i=this.canvas.getToolbarEl(),r=i.style;if(!n)return void(r.opacity=0);var o=n.get("toolbar");this.ppfx;if(e.get("Config").showToolbar&&o&&o.length){if(r.opacity="",r.display="",!this.toolbar){i.innerHTML="",this.toolbar=new a(o);var l=new s({collection:this.toolbar,editor:this.editor});i.appendChild(l.render().el)}this.toolbar.reset(o);var c=n.view;c&&this.updateToolbarPos(c.el)}else r.display="none"},updateToolbarPos:function(t,e){var n=this.canvas.getToolbarEl(),i=n.style,r=this.canvas.getTargetToElementDim(n,t,{elPos:e,event:"toolbarPosUpdate"}),o=r.left+r.elementWidth-r.targetWidth;i.top=r.top+"px",i.left=o+"px"},getCanvasPosition:function(){return this.canvas.getCanvasView().getPosition()},clean:function(){this.selEl&&this.selEl.removeClass(this.hoverClass)},getBadge:function(){return this.canvas.getBadgeEl()},onFrameScroll:function(t){var e=this.cacheEl;if(e){var n=this.getElementPos(e);this.updateBadge(e,n);var i=this.em.get("selectedComponent");i&&this.updateToolbarPos(i.view.el)}},updateAttached:function(){var t=this.em.get("selectedComponent");if(t){var e=t.view;this.updateToolbarPos(e.el),this.showFixedElementOffset(e.el)}},getElementPos:function(t,e){return this.canvas.getCanvasView().getElementPos(t)},hideBadge:function(){this.getBadge().style.display="none"},cleanPrevious:function(t){t&&t.set({status:"",state:""})},getContentWindow:function(){return this.frameEl.contentWindow},run:function(t){this.editor=t&&t.get("Editor"),this.enable()},stop:function(){this.stopSelectComponent(),this.cleanPrevious(this.em.get("selectedComponent")),this.clean(),this.em.set("selectedComponent",null),this.toggleClipboard(),this.hideBadge(),this.hideFixedElementOffset(),this.canvas.getToolbarEl().style.display="none",this.em.off("component:update",this.updateAttached,this),this.em.off("change:canvasOffset",this.updateAttached,this),this.em.off("change:selectedComponent",this.updateToolbar,this)}}},function(t,e,n){"use strict";(function(e,i){var r=n(51),o=e.$;t.exports=i.extend({},r,{init:function(t){i.bindAll(this,"startDraw","draw","endDraw","rollback"),this.config=t||{},this.hType=this.config.newFixedH?"height":"min-height",this.allowDraw=1},enable:function(){for(var t=arguments.length,e=Array(t),n=0;n*\/]/.test(n)?i(null,"select-op"):"."==n&&t.match(/^-?[_a-z][_a-z0-9-]*/i)?i("qualifier","qualifier"):/[:;{}\[\]\(\)]/.test(n)?i(null,n):"u"==n&&t.match(/rl(-prefix)?\(/)||"d"==n&&t.match("omain(")||"r"==n&&t.match("egexp(")?(t.backUp(1),e.tokenize=s,i("property","word")):/[\w\\\-]/.test(n)?(t.eatWhile(/[\w\\\-]/),i("property","word")):i(null,null):/[\d.]/.test(t.peek())?(t.eatWhile(/[\w.%]/),i("number","unit")):t.match(/^-[\w\\\-]+/)?(t.eatWhile(/[\w\\\-]/),t.match(/^\s*:/,!1)?i("variable-2","variable-definition"):i("variable-2","variable")):t.match(/^\w+-/)?i("meta","meta"):void 0}function o(t){return function(e,n){for(var r,o=!1;null!=(r=e.next());){if(r==t&&!o){")"==t&&e.backUp(1);break}o=!o&&"\\"==r}return(r==t||!o&&")"!=t)&&(n.tokenize=null),i("string","string")}}function s(t,e){return t.next(),t.match(/\s*[\"\')]/,!1)?e.tokenize=null:e.tokenize=o(")"),i(null,"(")}function a(t,e,n){this.type=t,this.indent=e,this.prev=n}function l(t,e,n,i){return t.context=new a(n,e.indentation()+(!1===i?0:m),t.context),n}function c(t){return t.context.prev&&(t.context=t.context.prev),t.context.type}function u(t,e,n){return O[n.context.type](t,e,n)}function h(t,e,n,i){for(var r=i||1;r>0;r--)n.context=n.context.prev;return u(t,e,n)}function d(t){var e=t.current().toLowerCase();g=E.hasOwnProperty(e)?"atom":M.hasOwnProperty(e)?"keyword":"variable"}var f=n.inline;n.propertyKeywords||(n=t.resolveMode("text/css"));var p,g,m=e.indentUnit,v=n.tokenHooks,y=n.documentTypes||{},b=n.mediaTypes||{},x=n.mediaFeatures||{},w=n.mediaValueKeywords||{},C=n.propertyKeywords||{},k=n.nonStandardPropertyKeywords||{},S=n.fontProperties||{},T=n.counterDescriptors||{},M=n.colorKeywords||{},E=n.valueKeywords||{},P=n.allowNested,A=n.lineComment,L=!0===n.supportsAtComponent,O={};return O.top=function(t,e,n){if("{"==t)return l(n,e,"block");if("}"==t&&n.context.prev)return c(n);if(L&&/@component/.test(t))return l(n,e,"atComponentBlock");if(/^@(-moz-)?document$/.test(t))return l(n,e,"documentTypes");if(/^@(media|supports|(-moz-)?document|import)$/.test(t))return l(n,e,"atBlock");if(/^@(font-face|counter-style)/.test(t))return n.stateArg=t,"restricted_atBlock_before";if(/^@(-(moz|ms|o|webkit)-)?keyframes$/.test(t))return"keyframes";if(t&&"@"==t.charAt(0))return l(n,e,"at");if("hash"==t)g="builtin";else if("word"==t)g="tag";else{if("variable-definition"==t)return"maybeprop";if("interpolation"==t)return l(n,e,"interpolation");if(":"==t)return"pseudo";if(P&&"("==t)return l(n,e,"parens")}return n.context.type},O.block=function(t,e,n){if("word"==t){var i=e.current().toLowerCase();return C.hasOwnProperty(i)?(g="property","maybeprop"):k.hasOwnProperty(i)?(g="string-2","maybeprop"):P?(g=e.match(/^\s*:(?:\s|$)/,!1)?"property":"tag","block"):(g+=" error","maybeprop")}return"meta"==t?"block":P||"hash"!=t&&"qualifier"!=t?O.top(t,e,n):(g="error","block")},O.maybeprop=function(t,e,n){return":"==t?l(n,e,"prop"):u(t,e,n)},O.prop=function(t,e,n){if(";"==t)return c(n);if("{"==t&&P)return l(n,e,"propBlock");if("}"==t||"{"==t)return h(t,e,n);if("("==t)return l(n,e,"parens");if("hash"!=t||/^#([0-9a-fA-f]{3,4}|[0-9a-fA-f]{6}|[0-9a-fA-f]{8})$/.test(e.current())){if("word"==t)d(e);else if("interpolation"==t)return l(n,e,"interpolation")}else g+=" error";return"prop"},O.propBlock=function(t,e,n){return"}"==t?c(n):"word"==t?(g="property","maybeprop"):n.context.type},O.parens=function(t,e,n){return"{"==t||"}"==t?h(t,e,n):")"==t?c(n):"("==t?l(n,e,"parens"):"interpolation"==t?l(n,e,"interpolation"):("word"==t&&d(e),"parens")},O.pseudo=function(t,e,n){return"meta"==t?"pseudo":"word"==t?(g="variable-3",n.context.type):u(t,e,n)},O.documentTypes=function(t,e,n){return"word"==t&&y.hasOwnProperty(e.current())?(g="tag",n.context.type):O.atBlock(t,e,n)},O.atBlock=function(t,e,n){if("("==t)return l(n,e,"atBlock_parens");if("}"==t||";"==t)return h(t,e,n);if("{"==t)return c(n)&&l(n,e,P?"block":"top");if("interpolation"==t)return l(n,e,"interpolation");if("word"==t){var i=e.current().toLowerCase();g="only"==i||"not"==i||"and"==i||"or"==i?"keyword":b.hasOwnProperty(i)?"attribute":x.hasOwnProperty(i)?"property":w.hasOwnProperty(i)?"keyword":C.hasOwnProperty(i)?"property":k.hasOwnProperty(i)?"string-2":E.hasOwnProperty(i)?"atom":M.hasOwnProperty(i)?"keyword":"error"}return n.context.type},O.atComponentBlock=function(t,e,n){return"}"==t?h(t,e,n):"{"==t?c(n)&&l(n,e,P?"block":"top",!1):("word"==t&&(g="error"),n.context.type)},O.atBlock_parens=function(t,e,n){return")"==t?c(n):"{"==t||"}"==t?h(t,e,n,2):O.atBlock(t,e,n)},O.restricted_atBlock_before=function(t,e,n){return"{"==t?l(n,e,"restricted_atBlock"):"word"==t&&"@counter-style"==n.stateArg?(g="variable","restricted_atBlock_before"):u(t,e,n)},O.restricted_atBlock=function(t,e,n){return"}"==t?(n.stateArg=null,c(n)):"word"==t?(g="@font-face"==n.stateArg&&!S.hasOwnProperty(e.current().toLowerCase())||"@counter-style"==n.stateArg&&!T.hasOwnProperty(e.current().toLowerCase())?"error":"property","maybeprop"):"restricted_atBlock"},O.keyframes=function(t,e,n){return"word"==t?(g="variable","keyframes"):"{"==t?l(n,e,"top"):u(t,e,n)},O.at=function(t,e,n){return";"==t?c(n):"{"==t||"}"==t?h(t,e,n):("word"==t?g="tag":"hash"==t&&(g="builtin"),"at")},O.interpolation=function(t,e,n){return"}"==t?c(n):"{"==t||";"==t?h(t,e,n):("word"==t?g="variable":"variable"!=t&&"("!=t&&")"!=t&&(g="error"),"interpolation")},{startState:function(t){return{tokenize:null,state:f?"block":"top",stateArg:null,context:new a(f?"block":"top",t||0,null)}},token:function(t,e){if(!e.tokenize&&t.eatSpace())return null;var n=(e.tokenize||r)(t,e);return n&&"object"==typeof n&&(p=n[1],n=n[0]),g=n,"comment"!=p&&(e.state=O[e.state](p,t,e)),g},indent:function(t,e){var n=t.context,i=e&&e.charAt(0),r=n.indent;return"prop"!=n.type||"}"!=i&&")"!=i||(n=n.prev),n.prev&&("}"!=i||"block"!=n.type&&"top"!=n.type&&"interpolation"!=n.type&&"restricted_atBlock"!=n.type?(")"!=i||"parens"!=n.type&&"atBlock_parens"!=n.type)&&("{"!=i||"at"!=n.type&&"atBlock"!=n.type)||(r=Math.max(0,n.indent-m)):(n=n.prev,r=n.indent)),r},electricChars:"}",blockCommentStart:"/*",blockCommentEnd:"*/",blockCommentContinue:" * ",lineComment:A,fold:"brace"}});var i=["domain","regexp","url","url-prefix"],r=e(i),o=["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"],s=e(o),a=["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid","orientation","device-pixel-ratio","min-device-pixel-ratio","max-device-pixel-ratio","pointer","any-pointer","hover","any-hover"],l=e(a),c=["landscape","portrait","none","coarse","fine","on-demand","hover","interlace","progressive"],u=e(c),h=["align-content","align-items","align-self","alignment-adjust","alignment-baseline","anchor-point","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","azimuth","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","baseline-shift","binding","bleed","bookmark-label","bookmark-level","bookmark-state","bookmark-target","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","color","color-profile","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","crop","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","drop-initial-after-adjust","drop-initial-after-align","drop-initial-before-adjust","drop-initial-before-align","drop-initial-size","drop-initial-value","elevation","empty-cells","fit","fit-position","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-offset","flow-from","flow-into","font","font-feature-settings","font-family","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-weight","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-gap","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-gap","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","inline-box-align","justify-content","justify-items","justify-self","left","letter-spacing","line-break","line-height","line-stacking","line-stacking-ruby","line-stacking-shift","line-stacking-strategy","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","marquee-direction","marquee-loop","marquee-play-count","marquee-speed","marquee-style","max-height","max-width","min-height","min-width","move-to","nav-down","nav-index","nav-left","nav-right","nav-up","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-style","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","page-policy","pause","pause-after","pause-before","perspective","perspective-origin","pitch","pitch-range","place-content","place-items","place-self","play-during","position","presentation-level","punctuation-trim","quotes","region-break-after","region-break-before","region-break-inside","region-fragment","rendering-intent","resize","rest","rest-after","rest-before","richness","right","rotation","rotation-point","ruby-align","ruby-overhang","ruby-position","ruby-span","shape-image-threshold","shape-inside","shape-margin","shape-outside","size","speak","speak-as","speak-header","speak-numeral","speak-punctuation","speech-rate","stress","string-set","tab-size","table-layout","target","target-name","target-new","target-position","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-height","text-indent","text-justify","text-outline","text-overflow","text-shadow","text-size-adjust","text-space-collapse","text-transform","text-underline-position","text-wrap","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","user-select","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","z-index","clip-path","clip-rule","mask","enable-background","filter","flood-color","flood-opacity","lighting-color","stop-color","stop-opacity","pointer-events","color-interpolation","color-interpolation-filters","color-rendering","fill","fill-opacity","fill-rule","image-rendering","marker","marker-end","marker-mid","marker-start","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-rendering","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","text-anchor","writing-mode"],d=e(h),f=["scrollbar-arrow-color","scrollbar-base-color","scrollbar-dark-shadow-color","scrollbar-face-color","scrollbar-highlight-color","scrollbar-shadow-color","scrollbar-3d-light-color","scrollbar-track-color","shape-inside","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","zoom"],p=e(f),g=["font-family","src","unicode-range","font-variant","font-feature-settings","font-stretch","font-weight","font-style"],m=e(g),v=["additive-symbols","fallback","negative","pad","prefix","range","speak-as","suffix","symbols","system"],y=e(v),b=["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"],x=e(b),w=["above","absolute","activeborder","additive","activecaption","afar","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","amharic","amharic-abegede","antialiased","appworkspace","arabic-indic","armenian","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","background","backwards","baseline","below","bidi-override","binary","bengali","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","cambodian","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","cjk-earthly-branch","cjk-heavenly-stem","cjk-ideographic","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","devanagari","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic","ethiopic-abegede","ethiopic-abegede-am-et","ethiopic-abegede-gez","ethiopic-abegede-ti-er","ethiopic-abegede-ti-et","ethiopic-halehame-aa-er","ethiopic-halehame-aa-et","ethiopic-halehame-am-et","ethiopic-halehame-gez","ethiopic-halehame-om-et","ethiopic-halehame-sid-et","ethiopic-halehame-so-et","ethiopic-halehame-ti-er","ethiopic-halehame-ti-et","ethiopic-halehame-tig","ethiopic-numeric","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","georgian","graytext","grid","groove","gujarati","gurmukhi","hand","hangul","hangul-consonant","hard-light","hebrew","help","hidden","hide","higher","highlight","highlighttext","hiragana","hiragana-iroha","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","japanese-formal","japanese-informal","justify","kannada","katakana","katakana-iroha","keep-all","khmer","korean-hangul-formal","korean-hanja-formal","korean-hanja-informal","landscape","lao","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-alpha","lower-armenian","lower-greek","lower-hexadecimal","lower-latin","lower-norwegian","lower-roman","lowercase","ltr","luminosity","malayalam","match","matrix","matrix3d","media-controls-background","media-current-time-display","media-fullscreen-button","media-mute-button","media-play-button","media-return-to-realtime-button","media-rewind-button","media-seek-back-button","media-seek-forward-button","media-slider","media-sliderthumb","media-time-remaining-display","media-volume-slider","media-volume-slider-container","media-volume-sliderthumb","medium","menu","menulist","menulist-button","menulist-text","menulist-textfield","menutext","message-box","middle","min-intrinsic","mix","mongolian","monospace","move","multiple","multiply","myanmar","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","octal","opacity","open-quote","optimizeLegibility","optimizeSpeed","oriya","oromo","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","persian","perspective","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","searchfield","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","self-start","self-end","semi-condensed","semi-expanded","separate","serif","show","sidama","simp-chinese-formal","simp-chinese-informal","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","somali","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","square-button","start","static","status-bar","stretch","stroke","sub","subpixel-antialiased","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","tamil","telugu","text","text-bottom","text-top","textarea","textfield","thai","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","tibetan","tigre","tigrinya-er","tigrinya-er-abegede","tigrinya-et","tigrinya-et-abegede","to","top","trad-chinese-formal","trad-chinese-informal","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unset","up","upper-alpha","upper-armenian","upper-greek","upper-hexadecimal","upper-latin","upper-norwegian","upper-roman","uppercase","urdu","url","var","vertical","vertical-text","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"],C=e(w),k=i.concat(o).concat(a).concat(c).concat(h).concat(f).concat(b).concat(w);t.registerHelper("hintWords","css",k),t.defineMIME("text/css",{documentTypes:r,mediaTypes:s,mediaFeatures:l,mediaValueKeywords:u,propertyKeywords:d,nonStandardPropertyKeywords:p,fontProperties:m,counterDescriptors:y,colorKeywords:x,valueKeywords:C,tokenHooks:{"/":function(t,e){return!!t.eat("*")&&(e.tokenize=n,n(t,e))}},name:"css"}),t.defineMIME("text/x-scss",{mediaTypes:s,mediaFeatures:l,mediaValueKeywords:u,propertyKeywords:d,nonStandardPropertyKeywords:p,colorKeywords:x,valueKeywords:C,fontProperties:m,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(t,e){return t.eat("/")?(t.skipToEnd(),["comment","comment"]):t.eat("*")?(e.tokenize=n,n(t,e)):["operator","operator"]},":":function(t){return!!t.match(/\s*\{/,!1)&&[null,null]},$:function(t){return t.match(/^[\w-]+/),t.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"]},"#":function(t){return!!t.eat("{")&&[null,"interpolation"]}},name:"css",helperType:"scss"}),t.defineMIME("text/x-less",{mediaTypes:s,mediaFeatures:l,mediaValueKeywords:u,propertyKeywords:d,nonStandardPropertyKeywords:p,colorKeywords:x,valueKeywords:C,fontProperties:m,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(t,e){return t.eat("/")?(t.skipToEnd(),["comment","comment"]):t.eat("*")?(e.tokenize=n,n(t,e)):["operator","operator"]},"@":function(t){return t.eat("{")?[null,"interpolation"]:!t.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\b/,!1)&&(t.eatWhile(/[\w\\\-]/),t.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"])},"&":function(){return["atom","atom"]}},name:"css",helperType:"less"}),t.defineMIME("text/x-gss",{documentTypes:r,mediaTypes:s,mediaFeatures:l,propertyKeywords:d,nonStandardPropertyKeywords:p,fontProperties:m,counterDescriptors:y,colorKeywords:x,valueKeywords:C,supportsAtComponent:!0,tokenHooks:{"/":function(t,e){return!!t.eat("*")&&(e.tokenize=n,n(t,e))}},name:"css",helperType:"gss"})})},function(t,e,n){"use strict";var i=n(0),r=n(26);t.exports=i.Model.extend({defaults:{id:"",content:"",visible:!0,buttons:[]},initialize:function(t){this.btn=this.get("buttons")||[],this.buttons=new r(this.btn),this.set("buttons",this.buttons)}})},function(t,e,n){"use strict";var i=n(0),r=n(104);t.exports=i.Collection.extend({model:r,deactivateAllExceptOne:function(t,e){this.forEach(function(n,i){n!==t&&(n.set("active",!1),e&&n.get("buttons").length&&n.get("buttons").deactivateAllExceptOne(t,e))})},deactivateAll:function(t){var e=t||"";this.forEach(function(t,n){t.get("context")==e&&(t.set("active",!1),t.get("buttons").length&&t.get("buttons").deactivateAll(e))})},disableAllButtons:function(t){var e=t||"";this.forEach(function(t,n){t.get("context")==e&&(t.set("disable",!0),t.get("buttons").length&&t.get("buttons").disableAllButtons(e))})},disableAllButtonsExceptOne:function(t,e){this.forEach(function(n,i){n!==t&&(n.set("disable",!0),e&&n.get("buttons").length&&n.get("buttons").disableAllButtonsExceptOne(t,e))})}})},function(t,e,n){"use strict";var i=n(0),r=n(28);t.exports=i.View.extend({initialize:function(t){this.config=t.config||{},this.pfx=this.config.stylePrefix||"",this.buttons=this.model.get("buttons"),this.className=this.pfx+"panel",this.id=this.pfx+this.model.get("id"),this.listenTo(this.model,"change:appendContent",this.appendContent),this.listenTo(this.model,"change:content",this.updateContent)},appendContent:function(){this.$el.append(this.model.get("appendContent"))},updateContent:function(){this.$el.html(this.model.get("content"))},initResize:function(){var t=this.config.em,e=t?t.get("Editor"):"",n=this.model.get("resizable");if(e&&n){var i,r,o,s=!0===n?[1,1,1,1]:n,a=s.length,l=0;2==a?(i=s[0],o=s[0],r=s[1],l=s[1]):4==a&&(i=s[0],r=s[1],o=s[2],l=s[3]);var c=e.Utils.Resizer.init({tc:i,cr:r,bc:o,cl:l,tl:0,tr:0,bl:0,br:0,appendTo:this.el,prefix:e.getConfig().stylePrefix,posFetcher:function(t){var e=t.getBoundingClientRect();return{left:0,top:0,width:e.width,height:e.height}}});c.blur=function(){},c.focus(this.el)}},render:function(){if(this.$el.attr("class",this.className),this.id&&this.$el.attr("id",this.id),this.buttons.length){var t=new r({collection:this.buttons,config:this.config});this.$el.append(t.render().el)}return this.$el.append(this.model.get("content")),this}})},function(t,e,n){"use strict";(function(e){var i=n(0),r=n(106);t.exports=i.View.extend({initialize:function(t){this.opt=t||{},this.config=this.opt.config||{},this.pfx=this.config.stylePrefix||"",this.parentM=this.opt.parentM||null,this.listenTo(this.collection,"add",this.addTo),this.listenTo(this.collection,"reset",this.render),this.className=this.pfx+"buttons"},addTo:function(t){this.addToCollection(t)},addToCollection:function(t,e){var n=e||null,i=r,o=new i({model:t,config:this.config,parentM:this.parentM}),s=o.render().el;return n?n.appendChild(s):this.$el.append(s),s},render:function(){var t=document.createDocumentFragment();return this.$el.empty(),this.collection.each(function(e){this.addToCollection(e,t)},this),this.$el.append(t),this.$el.attr("class",e.result(this,"className")),this}})}).call(e,n(1))},function(t,e,n){"use strict";var i=Object.assign||function(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},n=e.model,o=void 0===n?{}:n,s=e.view,a=void 0===s?{}:s,l=this.getType(t);if(l)return new l.view(i({model:new l.model(o),config:r},a))},render:function(){return e.render().el}}}},function(t,e,n){"use strict";(function(t){Object.defineProperty(e,"__esModule",{value:!0});var n=t.Model,i=t.View;e.default={types:[],initialize:function(t,e){var n=this;this.model=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=void 0,r=void 0,o=void 0;if(t&&t.type){var s=n.getBaseType();o=n.getType(t.type),i=o?o.model:s.model,r=o?o.view:s.view}else{var a=n.recognizeType(t);o=a.type,i=o.model,r=o.view,t=a.attributes}var l=new i(t,e);return l.typeView=r,l};var i=this.init&&this.init.bind(this);i&&i()},recognizeType:function(t){for(var e=this.getTypes(),n=0;n\n \n
\n \n '},init:function(){var t=this.model;this.pfx;t.set("stackIndex",null),this.events["click [data-add-layer]"]="addLayer",this.listenTo(t,"change:stackIndex",this.indexChanged),this.listenTo(t,"updateValue",this.inputValueChanged),this.delegateEvents()},targetUpdated:function(){if(this.model.get("detached"))this.checkVisibility();else{for(var t=arguments.length,e=Array(t),n=0;n'},inputClass:function(){return this.ppfx+"field"},holderClass:function(){return this.ppfx+"input-holder"},initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.ppfx||"";this.opts=t,this.ppfx=e,this.target=t.target||{},this.listenTo(this.model,"change:value",this.handleModelChange)},elementUpdated:function(){this.model.trigger("el:change")},setValue:function(t){var e=this.model,n=t||e.get("defaults"),i=this.getInputEl();i&&(i.value=n)},handleModelChange:function(t,e,n){this.setValue(e,n)},handleChange:function(t){t.stopPropagation(),this.model.set("value",this.getInputEl().value),this.elementUpdated()},getInputEl:function(){if(!this.inputEl){var t=this.model.get("defaults");this.inputEl=n('')}return this.inputEl.get(0)},render:function(){var t=this.$el;return t.addClass(this.inputClass()),t.html(this.template()),t.find("."+this.holderClass()).append(this.getInputEl()),this}})}).call(e,n(0))},function(t,e,n){"use strict";t.exports=n(5).extend({templateInput:function(){var t=(this.pfx,this.ppfx);return'\n
\n
\n '},onRender:function(){var t=this.pfx,e=this.ppfx,n=e+"radio-item-label",i=this.model,r=i.get("property"),o=i.get("list")||i.get("options")||[];if(!this.input&&o&&o.length){var s="";o.forEach(function(i){var o=i.className?i.className+" "+t+"icon "+n:"",a=r+"-"+i.value,l=i.name||i.value,c=i.title?'title="'+i.title+'"':"";s+='\n
\n \n \n
\n "});var a=this.el.querySelector("."+e+"field");a.innerHTML='
'+s+"
",this.input=a.firstChild}},getInputValue:function(){var t=this.getCheckedEl();return t?t.value:""},getCheckedEl:function(){var t=this.getInputEl();return t?t.querySelector("input:checked"):""},setValue:function(t){var e=this.model,n=t||e.get("value")||e.getDefaultValue(),i=this.getInputEl(),r=i?i.querySelector('[value="'+n+'"]'):"";if(r)r.checked=!0;else{var o=this.getCheckedEl();o&&(o.checked=!1)}}})},function(t,e,n){"use strict";(function(e){e.$;t.exports=n(5).extend({templateInput:function(){var t=this.pfx,e=this.ppfx;return'\n
\n \n
\n
\n
\n
\n '},onRender:function(){var t=this.pfx,e=this.model,n=e.get("list")||e.get("options")||[];if(!this.input){var i="";n.forEach(function(t){var e=t.name||t.value,n=t.style?t.style.replace(/"/g,"""):"",r=n?'style="'+n+'"':"",o=t.value.replace(/"/g,""");i+='"});var r=this.el.querySelector("#"+t+"input-holder");r.innerHTML="",this.input=r.firstChild}}})}).call(e,n(0))},function(t,e,n){"use strict";var i=n(37);t.exports=n(13).extend({setValue:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e=Object.assign({},e,{silent:1}),this.inputInst.setValue(t,e)},onRender:function(){if(!this.input){var t=this.ppfx,e=new i({target:this.target,model:this.model,ppfx:t}),n=e.render();this.el.querySelector("."+t+"fields").appendChild(n.el),this.$input=n.inputEl,this.$color=n.colorEl,this.input=this.$input.get(0),this.inputInst=n}}})},function(t,e,n){"use strict";(function(e){n(117);var i=n(33),r=e.$;t.exports=i.extend({template:function(){var t=this.ppfx;return'\n
\n
\n
\n
\n
\n
\n '},inputClass:function(){var t=this.ppfx;return t+"field "+t+"field-color"},holderClass:function(){return this.ppfx+"input-holder"},setValue:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.model,i=t||n.get("defaults"),r=this.getInputEl(),o=this.getColorEl(),s="none"!=i?i:"";r.value=i,o.get(0).style.backgroundColor=s,e.fromTarget&&(o.spectrum("set",s),this.noneColor="none"==i)},getColorEl:function(){if(!this.colorEl){var t=this,e=this.model,n=r('
'),i=n.get(0).style,o=this.target&&this.target.config?this.target.config.el:"",s=function(t){return(1==t.getAlpha()?t.toHexString():t.toRgbString()).replace(/ /g,"")},a=0,l=void 0;this.$el.find("[data-colorp-c]").append(n),n.spectrum({appendTo:o||"body",maxSelectionSize:8,showPalette:!0,showAlpha:!0,chooseText:"Ok",cancelText:"โจฏ",palette:[],move:function(t){var n=s(t);i.backgroundColor=n,e.setValueFromInput(n,0)},change:function(n){a=1;var r=s(n);i.backgroundColor=r,e.setValueFromInput(r),t.noneColor=0},show:function(t){a=0,l=s(t)},hide:function(r){!a&&l&&(t.noneColor&&(l=""),i.backgroundColor=l,n.spectrum("set",l),e.setValueFromInput(l,0))}}),this.colorEl=n}return this.colorEl},render:function(){return i.prototype.render.call(this),this.getColorEl(),this}})}).call(e,n(0))},function(t,e,n){"use strict";(function(e){var i=n(5),r=e.$;t.exports=i.extend({templateInput:function(){var t=this.pfx;this.ppfx;return'\n
\n
\n
\n \n
\n
\n
\n
\n
\n
⨯
\n
\n
\n '},init:function(){var t=this.em;this.modal=t.get("Modal"),this.am=t.get("AssetManager"),this.events["click #"+this.pfx+"close"]="removeFile",this.events["click #"+this.pfx+"images"]="openAssetManager",this.delegateEvents()},onRender:function(){if(!this.$input){var t=this.model.getDefaultValue();this.$input=r('')}this.$preview||(this.$preview=this.$el.find("#"+this.pfx+"preview-file")),this.$previewBox||(this.$previewBox=this.$el.find("#"+this.pfx+"preview-box")),this.setValue(this.componentValue,0)},setValue:function(t,e){i.prototype.setValue.apply(this,arguments),this.setPreviewView(t&&t!=this.model.getDefaultValue()),this.setPreview(t)},setPreviewView:function(t){var e=this.$previewBox;e&&e[t?"addClass":"removeClass"](this.pfx+"show")},spreadUrl:function(t){this.model.set("value",t),this.setPreviewView(1)},setPreview:function(t){var e=this.$preview;t=t&&t.indexOf("url(")<0?"url("+t+")":t,e&&e.css("background-image",t)},cleanValue:function(){this.setPreviewView(0),this.model.set({value:""},{silent:!0})},removeFile:function(){this.model.set("value",this.model.getDefaultValue());for(var t=arguments.length,e=Array(t),n=0;n\n
\n '},getInfo:function(){var t=this.pfx,e=this.model,n=e.get("name"),i=e.get("width"),r=e.get("height"),o=e.get("unitDim"),s=i&&r?i+"x"+r+o:"";return n=n||e.getFilename(),'\n
'+n+'
\n
'+s+"
\n "},init:function(t){var e=this.pfx;this.className+=" "+e+"asset-image"},onClick:function(){var t=this.config.onClick,e=this.model;this.collection.trigger("deselectAll"),this.$el.addClass(this.pfx+"highlight"),"function"==typeof t?t(e):this.updateTarget(this.collection.target)},onDblClick:function(){var t=this.em,e=this.config.onDblClick,n=this.model;"function"==typeof e?e(n):(this.updateTarget(this.collection.target),t&&t.get("Modal").close());var i=this.collection.onSelect;"function"==typeof i&&i(this.model)},onRemove:function(t){t.stopPropagation(),this.model.collection.remove(this.model)}})},function(t,e,n){"use strict";(function(e,n){t.exports=e.View.extend({initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.options=t,this.collection=t.collection;var e=t.config||{};this.config=e,this.pfx=e.stylePrefix||"",this.ppfx=e.pStylePrefix||"",this.em=e.em,this.className=this.pfx+"asset",this.listenTo(this.model,"destroy remove",this.remove),this.model.view=this;var n=this.init&&this.init.bind(this);n&&n(t)},template:function(){var t=this.pfx;return'\n
\n '+this.getPreview()+'\n
\n
\n '+this.getInfo()+'\n
\n
\n ⨯\n
\n '},updateTarget:function(t){t&&t.set&&(t.set("attributes",n.clone(t.get("attributes"))),t.set("src",this.model.get("src")))},getPreview:function(){return""},getInfo:function(){return""},render:function(){var t=this.el;return t.innerHTML=this.template(this,this.model),t.className=this.className,this}})}).call(e,n(0),n(1))},function(t,e,n){"use strict";(function(e,i){var r=n(21),o=function(t){return t&&t.__esModule?t:{default:t}}(r);t.exports=e.View.extend({template:i.template('\n
\n
<%= title %>
\n multiple/>\n
\n
\n '),events:{},initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.options=t;var e=t.config||{};this.config=e,this.pfx=e.stylePrefix||"",this.ppfx=e.pStylePrefix||"",this.target=this.options.globalCollection||{},this.uploadId=this.pfx+"uploadFile",this.disabled=void 0!==e.disableUpload?e.disableUpload:!e.upload&&!e.embedAsBase64,this.events["change #"+this.uploadId]="uploadFile";var n=e.uploadFile;n?this.uploadFile=n.bind(this):e.embedAsBase64&&(this.uploadFile=this.constructor.embedAsBase64),this.delegateEvents()},onUploadStart:function(){var t=this.config.em;t&&t.trigger("asset:upload:start")},onUploadEnd:function(t){var e=this.config.em;e&&e.trigger("asset:upload:end",t)},onUploadError:function(t){var e=this.config.em;console.error(t),this.onUploadEnd(t),e&&e.trigger("asset:upload:error",t)},onUploadResponse:function(t){var e=this.config.em,n=this.config,i=this.target,r="string"==typeof t?JSON.parse(t):t;e&&e.trigger("asset:upload:response",r),n.autoAdd&&i&&i.add(r.data,{at:0}),this.onUploadEnd(t)},uploadFile:function(t){for(var e=this,n=t.dataTransfer?t.dataTransfer.files:t.target.files,i=new FormData,r=this.config,s=r.params,a=0;a'+i.dropzoneContent+""),h(),"draggable"in o&&[o,a].forEach(function(t){t.ondragover=d,t.ondragleave=f,t.ondrop=p})},render:function(){return this.$el.html(this.template({title:this.config.uploadText,uploadId:this.uploadId,disabled:this.disabled,pfx:this.pfx})),this.initDrop(),this.$el.attr("class",this.pfx+"file-uploader"),this}},{embedAsBase64:function(t){var e=this,n=t.dataTransfer?t.dataTransfer.files:t.target.files,i={data:[]};if(!FileReader)return void this.onUploadError(new Error("Unsupported platform, FileReader is not defined"));var r=[],o=/^(.+)\/(.+)$/,s=!0,a=!1,l=void 0;try{for(var c,u=n[Symbol.iterator]();!(s=(c=u.next()).done);s=!0){var h=c.value;!function(t){var e=new Promise(function(e,n){var i=new FileReader;i.addEventListener("load",function(r){var s=void 0,a=t.name,l=o.exec(t.type);if("image"===(s=l?l[1]:t.type)){var c={src:i.result,name:a,type:s,height:0,width:0},u=new Image;u.addEventListener("error",function(t){n(t)}),u.addEventListener("load",function(){c.height=u.height,c.width=u.width,e(c)}),u.src=c.src}else e(s?{src:i.result,name:a,type:s}:i.result)}),i.addEventListener("error",function(t){n(t)}),i.addEventListener("abort",function(t){n("Aborted")}),i.readAsDataURL(t)});r.push(e)}(h)}}catch(t){a=!0,l=t}finally{try{!s&&u.return&&u.return()}finally{if(a)throw l}}Promise.all(r).then(function(t){i.data=t,e.onUploadResponse(i)},function(t){e.onUploadError(t)})}})}).call(e,n(0),n(1))},function(t,e,n){"use strict";(function(e){var i=n(45),r=function(t){return t&&t.__esModule?t:{default:t}}(i),o=n(0),s=n(46);t.exports=o.Model.extend(r.default).extend({defaults:{selectors:{},selectorsAdd:"",style:{},mediaText:"",state:"",stylable:!0},initialize:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.config=t||{};var n=e.em,i=this.config.selectors||[];if(this.em=n,n){var r=n.get("SelectorManager"),o=[];i.forEach(function(t){o.push(r.add(t))}),i=o}this.set("selectors",new s(i))},compare:function(t,n,i,r){var o=r||{},s=n||"",a=i||"",l=o.selectorsAdd||"";t instanceof Array||t.models||(t=[t]);var c=e.map(t.models||t,function(t){return t.get("name")}),u=e.map(this.get("selectors").models,function(t){return t.get("name")});if(c.length!==u.length)return!1;for(var h=0;h0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,i.isString)(t)&&(t=s(t)),this.set("style",Object.assign({},t),e);for(var n in t)this.trigger("change:style:"+n)},addStyle:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};"string"==typeof t?t={prop:e}:n=e||{},t=this.extendStyle(t),this.setStyle(t,n)},removeStyle:function(t){var e=this.getStyle();delete e[t],this.setStyle(e)}}},function(t,e,n){"use strict";var i=n(0);t.exports=i.Collection.extend({initialize:function(t,e){this.model=function(t,e){return this.ClassTag||(this.ClassTag=n(9)),new this.ClassTag(t,e)}}})},function(t,e,n){"use strict";var i=n(0);t.exports=i.View.extend({itemView:"",itemsView:"",itemType:"type",initialize:function(t,e){this.config=e||{}},addTo:function(t){this.add(t)},add:function(t,e){var n=e||null,i=this.itemView,r=t.get(this.itemType);this.itemsView&&this.itemsView[r]&&(i=this.itemsView[r]);var o=new i({model:t,config:this.config},this.config),s=o.render().el;n?n.appendChild(s):this.$el.append(s)},render:function(){var t=document.createDocumentFragment();return this.$el.empty(),this.collection.length&&this.collection.each(function(e){this.add(e,t)},this),this.$el.append(t),this}})},function(t,e,n){"use strict";var i=Object.assign||function(t){for(var e=1;e0;for(o in C)(!C[o]&&n(i.mods,+o)>-1||C[o]&&-1==n(i.mods,+o))&&(a=!1);(0!=i.mods.length||C[16]||C[18]||C[17]||C[91])&&!a||!1===i.method(t,i)&&(t.preventDefault?t.preventDefault():t.returnValue=!1,t.stopPropagation&&t.stopPropagation(),t.cancelBubble&&(t.cancelBubble=!0))}}function s(t){var e,i=t.keyCode,r=n(E,i);if(r>=0&&E.splice(r,1),93!=i&&224!=i||(i=91),i in C){C[i]=!1;for(e in S)S[e]==i&&(l[e]=!1)}}function a(){for(x in C)C[x]=!1;for(x in S)l[x]=!1}function l(t,e,n){var i,r;i=m(t),void 0===n&&(n=e,e="all");for(var o=0;o1&&(r=v(t),t=[t[t.length-1]]),t=t[0],t=M(t),t in w||(w[t]=[]),w[t].push({shortcut:i[o],scope:e,method:n,key:i[o],mods:r})}function c(t,e){var n,r,o,s,a,l=[];for(n=m(t),s=0;s1&&(l=v(r),t=r[r.length-1]),t=M(t),void 0===e&&(e=p()),!w[t])return;for(o=0;o\n \n <% } %>\n\n
\n
\n
\n \n \n <%= icon %>\n \n
\n
\n
\n\n
<%= (count ? count : \'\') %>
\n\n
\n \n
\n\n
'),initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.opt=t,this.level=t.level,this.config=t.config,this.em=t.config.em,this.ppfx=this.em.get("Config").stylePrefix,this.sorter=t.sorter||"",this.pfx=this.config.stylePrefix;var e=this.pfx,n=this.ppfx,i=this.model,r=i.get("components");i.set("open",!1),this.listenTo(r,"remove add change reset",this.checkChildren),this.listenTo(i,"destroy remove",this.remove),this.listenTo(i,"change:status",this.updateStatus),this.listenTo(i,"change:open",this.updateOpening),this.className=e+"item no-select",this.editBtnCls=e+"nav-item-edit",this.inputNameCls=n+"nav-comp-name",this.caretCls=n+"nav-item-caret",this.titleCls=e+"title",this.$el.data("model",i),this.$el.data("collection",r)},handleEdit:function(t){t.stopPropagation();var e=this.getInputName();e.readOnly=!1,e.focus()},handleEditEnd:function(t){t.stopPropagation();var e=this.getInputName();e.readOnly=!0,this.model.set("custom-name",e.value)},getInputName:function(){return this.inputName||(this.inputName=this.el.querySelector("."+this.inputNameCls)),this.inputName},updateOpening:function(){var t=this.opt.opened||{},e=this.model;e.get("open")?(this.$el.addClass("open"),this.getCaret().addClass("fa-chevron-down"),t[e.cid]=e):(this.$el.removeClass("open"),this.getCaret().removeClass("fa-chevron-down"),delete t[e.cid])},toggleOpening:function(t){t.stopPropagation(),this.model.get("components").length&&this.model.set("open",!this.model.get("open"))},handleSelect:function(t){t.stopPropagation(),this.em&&this.em.setSelected(this.model,{fromLayers:1})},startSort:function(t){t.stopPropagation(),0===t.button&&this.sorter&&this.sorter.startSort(t.target)},freeze:function(){this.$el.addClass(this.pfx+"opac50"),this.model.set("open",0)},unfreeze:function(){this.$el.removeClass(this.pfx+"opac50")},updateStatus:function(t){o.prototype.updateStatus.apply(this,arguments)},toggleVisibility:function(t){t.stopPropagation();var n=this.pfx;this.$eye||(this.$eye=this.$el.children("#"+n+"btn-eye"));var i=e.clone(this.model.get("style")),r=this.pfx+"hide";this.isVisible()?(this.$el.addClass(r),this.$eye.addClass("fa-eye-slash"),i.display="none"):(this.$el.removeClass(r),this.$eye.removeClass("fa-eye-slash"),delete i.display),this.model.set("style",i)},isVisible:function(){var t=this.model.get("style"),e=t.display;if(!e||"none"!=e)return 1},checkChildren:function(){var t=this.model,e=this.countChildren(t),n=this.pfx,i=n+"no-chld",r=this.$el.children("."+n+"title-c").children("."+n+"title");this.$counter||(this.$counter=this.$el.children("#"+n+"counter")),e?(r.removeClass(i),this.$counter.html(e)):(r.addClass(i),this.$counter.empty(),t.set("open",0))},countChildren:function(t){var e=0;return t.get("components").each(function(t){var n=this.opt.isCountable,i=this.config.hideTextnode;n&&!n(t,i)||e++},this),e},getCaret:function(){if(!this.caret){var t=this.pfx;this.caret=this.$el.children("."+t+"title-c").find("#"+t+"caret")}return this.caret},render:function(){var t=this.model,r=this.pfx,o=this.isVisible(),s=this.countChildren(t),a=this.$el,l=this.level+1;a.html(this.template({title:t.getName(),icon:t.getIcon(),addClass:s?"":r+"no-chld",editBtnCls:this.editBtnCls,inputNameCls:this.inputNameCls,caretCls:this.caretCls,count:s,visible:o,hidable:this.config.hidable,prefix:r,ppfx:this.ppfx,level:l})),void 0===i&&(i=n(54));var c=new i({collection:t.get("components"),config:this.config,sorter:this.sorter,opened:this.opt.opened,parent:t,level:l}).render().$el;return a.find("."+r+"children").append(c),t.get("draggable")&&this.config.sortable||a.children("#"+r+"move").remove(),o||(this.className+=" "+r+"hide"),a.attr("class",e.result(this,"className")),this.updateOpening(),this.updateStatus(),this}})}).call(e,n(1))},function(t,e,n){"use strict";var i=n(0),r=n(53);t.exports=i.View.extend({initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.opt=t;var e=t.config||{};if(this.level=t.level,this.config=e,this.preview=t.preview,this.ppfx=e.pStylePrefix||"",this.pfx=e.stylePrefix||"",this.parent=t.parent,this.listenTo(this.collection,"add",this.addTo),this.listenTo(this.collection,"reset resetNavigator",this.render),this.className=this.pfx+"items",e.sortable&&!this.opt.sorter){var n=this.pfx,i=e.em.get("Utils");this.opt.sorter=new i.Sorter({container:e.sortContainer||this.el,containerSel:"."+n+"items",itemSel:"."+n+"item",ppfx:this.ppfx,ignoreViewChildren:1,avoidSelectOnEnd:1,pfx:n,nested:1})}this.sorter=this.opt.sorter||"",this.$el.data("collection",this.collection),this.parent&&this.$el.data("model",this.parent)},addTo:function(t){var e=this.collection.indexOf(t);this.addToCollection(t,null,e)},addToCollection:function(t,e,n){var i=this.level,o=e||null,s=r;if(this.isCountable(t,this.config.hideTextnode)){var a=new s({level:i,model:t,config:this.config,sorter:this.sorter,isCountable:this.isCountable,opened:this.opt.opened}),l=a.render().el;if(o)o.appendChild(l);else if(void 0!==n){var c="before";this.$el.children().length==n&&(n--,c="after"),n<0?this.$el.append(l):this.$el.children().eq(n)[c](l)}else this.$el.append(l);return l}},isCountable:function(t,e){var n=t.get("type"),i=t.get("tagName");return!(("textnode"==n||"br"==i)&&e||!t.get("layerable"))},render:function(){var t=this,e=document.createDocumentFragment();return this.el.innerHTML="",this.collection.each(function(n){return t.addToCollection(n,e)}),this.el.appendChild(e),this.$el.attr("class",this.className),this}})},function(t,e,n){"use strict";var i=n(0);t.exports=i.Model.extend({defaults:{id:"",label:"",open:!0,attributes:{}}})},function(t,e,n){"use strict";t.exports=n(57)},function(t,e,n){"use strict";var i=n(8),r=function(t){return t&&t.__esModule?t:{default:t}}(i),o=n(1);t.exports=function(){var t=n(58),e=n(59),i=n(212),s=new i,a=[];return{$:r.default,editors:a,plugins:s,version:"0.12.25",init:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=n.container;if(!i)throw new Error("'container' is required");(0,o.defaults)(n,t),n.el=i instanceof window.HTMLElement?i:document.querySelector(i);var r=new e(n).init();return n.plugins.forEach(function(t){var e=s.get(t);e?e(r,n.pluginsOpts[t]||{}):console.warn("Plugin "+t+" not found")}),r.getModel().loadOnStart(),n.autorender&&r.render(),a.push(r),r}}}()},function(t,e,n){"use strict";t.exports={autorender:1,container:"",components:"",style:"",fromElement:0,copyPaste:!0,undoManager:!0,storageManager:{},plugins:[],pluginsOpts:{}}},function(t,e,n){"use strict";var i=n(8),r=function(t){return t&&t.__esModule?t:{default:t}}(i);t.exports=function(t){var e=t||{},i=n(60),o=n(61),s=n(211);for(var a in i)a in e||(e[a]=i[a]);e.pStylePrefix=e.stylePrefix;var l=new o(e),c=new s({model:l,config:e});return{$:r.default,editor:l,DomComponents:l.get("DomComponents"),CssComposer:l.get("CssComposer"),StorageManager:l.get("StorageManager"),AssetManager:l.get("AssetManager"),BlockManager:l.get("BlockManager"),TraitManager:l.get("TraitManager"),SelectorManager:l.get("SelectorManager"),CodeManager:l.get("CodeManager"),Commands:l.get("Commands"),Modal:l.get("Modal"),Panels:l.get("Panels"),StyleManager:l.get("StyleManager"),Canvas:l.get("Canvas"),UndoManager:l.get("UndoManager"),DeviceManager:l.get("DeviceManager"),RichTextEditor:l.get("RichTextEditor"),Utils:l.get("Utils"),Config:l.get("Config"),init:function(){return l.init(this),this},getConfig:function(){return e},getHtml:function(){return l.getHtml()},getCss:function(){return l.getCss()},getJs:function(){return l.getJs()},getComponents:function(){return l.get("DomComponents").getComponents()},setComponents:function(t){return l.setComponents(t),this},addComponents:function(t,e){return this.getComponents().add(t,e)},getStyle:function(){return l.get("CssComposer").getAll()},setStyle:function(t){return l.setStyle(t),this},getSelected:function(){return l.getSelected()},getSelectedToStyle:function(){var t=l.getSelected();if(t)return this.StyleManager.getModelToStyle(t)},select:function(t){return l.setSelected(t),this},setDevice:function(t){return l.set("device",t),this},getDevice:function(){return l.get("device")},runCommand:function(t,e){var n,i=l.get("Commands").get(t);return i&&(n=i.run(this,this,e),this.trigger("run:"+t)),n},stopCommand:function(t,e){var n,i=l.get("Commands").get(t);return i&&(n=i.stop(this,this,e),this.trigger("stop:"+t)),n},store:function(t){return l.store(t)},load:function(t){return l.load(t)},getContainer:function(){return e.el},refresh:function(){l.refreshCanvas()},setCustomRte:function(t){this.RichTextEditor.customRte=t},on:function(t,e){return l.on(t,e)},off:function(t,e){return l.off(t,e)},trigger:function(t){return l.trigger.apply(l,arguments)},getEl:function(){return c.el},getModel:function(){return l},render:function(){return l.on("loaded",function(){l.get("modules").forEach(function(t){t.postRender&&t.postRender(c)})}),c.render(),c.el}}}},function(t,e,n){"use strict";t.exports={stylePrefix:"gjs-",components:"",copyPaste:!0,noticeOnUnload:!0,undoManager:!0,showOffsets:!1,showOffsetsSelected:!1,forceClass:!0,height:"900px",width:"100%",protectedCss:"*{box-sizing: border-box;}",canvasCss:"",defaultCommand:"select-comp",showToolbar:1,allowScripts:0,showDevices:1,devicePreviewMode:0,mediaCondition:"max-width",tagVarStart:"{[ ",tagVarEnd:" ]}",jsInHtml:!0,exportWrapper:0,wrappesIsBody:1,el:"",assetManager:{},canvas:{},layers:{},storageManager:{},rte:{},domComponents:{},modal:{},codeManager:{},panels:{},commands:{},cssComposer:{},selectorManager:{},deviceManager:{devices:[{name:"Desktop",width:""},{name:"Tablet",width:"768px",widthMedia:"992px"},{name:"Mobile landscape",width:"568px",widthMedia:"768px"},{name:"Mobile portrait",width:"320px",widthMedia:"480px"}]},styleManager:{sectors:[{name:"General",open:!1,buildProps:["float","display","position","top","right","left","bottom"]},{name:"Dimension",open:!1,buildProps:["width","height","max-width","min-height","margin","padding"]},{name:"Typography",open:!1,buildProps:["font-family","font-size","font-weight","letter-spacing","color","line-height","text-align","text-shadow"],properties:[{property:"text-align",list:[{value:"left",className:"fa fa-align-left"},{value:"center",className:"fa fa-align-center"},{value:"right",className:"fa fa-align-right"},{value:"justify",className:"fa fa-align-justify"}]}]},{name:"Decorations",open:!1,buildProps:["border-radius-c","background-color","border-radius","border","box-shadow","background"]},{name:"Extra",open:!1,buildProps:["transition","perspective","transform"]}]},blockManager:{}}},function(t,e,n){"use strict";var i=n(1),r=[n(62),n(66),n(74),n(79),n(82),n(86),n(90),n(102),n(108),n(29),n(125),n(131),n(136),n(143),n(168),n(174),n(200)],o=n(0),s=n(208),a=n(50),l=void 0;n(210)({Backbone:o,$:o.$});var c=o.$;t.exports=o.Model.extend({defaults:{clipboard:null,designerMode:!1,selectedComponent:null,previousModel:null,changesCount:0,storables:[],modules:[],toLoad:[],opened:{},device:""},initialize:function(t){this.config=t,this.set("Config",t),this.set("modules",[]),t.el&&t.fromElement&&(this.config.components=t.el.innerHTML),r.forEach(function(t){this.loadModule(t)},this),this.initUndoManager(),this.on("change:selectedComponent",this.componentSelected,this),this.on("change:changesCount",this.updateChanges,this)},loadOnStart:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,n=this.get("StorageManager");this.get("toLoad").forEach(function(t){t.onLoad()});var i=function(){t.um.clear(),t.initUndoManager(),t.get("modules").forEach(function(e){return e.postLoad&&e.postLoad(t)}),e&&e()};n&&n.getConfig().autoload?this.load(i):i()},updateChanges:function(){var t=this.get("StorageManager"),e=this.get("changesCount");this.config.noticeOnUnload&&e?window.onbeforeunload=function(t){return 1}:window.onbeforeunload=null,t.isAutosave()&&e>=t.getStepsBeforeSave()&&this.store()},loadModule:function(t){var e=this.config,n=new t,i=n.name.charAt(0).toLowerCase()+n.name.slice(1),r=e[i]||e[n.name]||{};r.pStylePrefix=e.pStylePrefix||"";var o=this.get("StorageManager");if(n.storageKey&&n.store&&n.load&&o){r.stm=o;var s=this.get("storables");s.push(n),this.set("storables",s)}return r.em=this,n.init(Object.create(r)),n.private||this.set(n.name,n),n.onLoad&&this.get("toLoad").push(n),this.get("modules").push(n),this},init:function(t){this.set("Editor",t)},listenRules:function(t){this.stopListening(t,"add remove",this.listenRule),this.listenTo(t,"add remove",this.listenRule),t.each(function(t){this.listenRule(t)},this)},listenRule:function(t){this.stopListening(t,"change:style",this.handleUpdates),this.listenTo(t,"change:style",this.handleUpdates)},handleUpdates:function(t,e){var n=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};i.temporary||(l&&clearInterval(l),l=setTimeout(function(){i.avoidStore||n.set("changesCount",n.get("changesCount")+1,i)},0))},initUndoManager:function(){var t=this.get("Canvas");if(!this.um){var e=this.get("DomComponents");if(e&&this.config.undoManager){var n=this;this.um=new s({register:[e.getComponents(),this.get("CssComposer").getAll()],track:!0}),this.UndoManager=this.um,this.set("UndoManager",this.um),a("โŒ˜+z, ctrl+z",function(){t.isInputFocused()||(n.um.undo(!0),n.trigger("component:update"))}),a("โŒ˜+shift+z, ctrl+shift+z",function(){t.isInputFocused()||(n.um.redo(!0),n.trigger("component:update"))});var i,r={on:function(t,e,n){var r=n||{};if(i||(i=t.previousAttributes()),!r||!r.avoidStore){var o={object:t,before:i,after:t.toJSON()};return i=null,o}},undo:function(t,e,i,r){t.set(e),n.trigger("change:selectedComponent")},redo:function(t,e,i,r){t.set(i),n.trigger("change:selectedComponent")}};s.removeUndoType("change"),s.addUndoType("change:style",r),s.addUndoType("change:content",r)}}},componentSelected:function(t,e,n){this.get("selectedComponent")?(this.trigger("select-comp",[t,e,n]),this.trigger("component:selected",arguments)):this.trigger("deselect-comp")},updateComponents:function(t,e,n){var i=t.get("components"),r=t.get("classes"),o=n?n.avoidStore:0;this.um&&this.um.register(i),this.stopListening(i,"add",this.updateComponents),this.stopListening(i,"remove",this.rmComponents),this.listenTo(i,"add",this.updateComponents),this.listenTo(i,"remove",this.rmComponents),this.stopListening(r,"add remove",this.handleUpdates),this.listenTo(r,"add remove",this.handleUpdates);var s="change:style change:content change:attributes";this.stopListening(t,s,this.handleUpdates),this.listenTo(t,s,this.handleUpdates),o||this.handleUpdates(t,e,n)},initChildrenComp:function(t){var e=t.get("components");this.updateComponents(t,null,{avoidStore:1}),e.each(function(t){this.initChildrenComp(t),this.um&&this.um.register(t)},this)},rmComponents:function(t,e,n){(n?n.avoidStore:0)||this.handleUpdates(t,e,n)},getSelected:function(){return this.get("selectedComponent")},setSelected:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t;t instanceof HTMLElement&&(n=c(t).data("model")),this.set("selectedComponent",n,e)},setComponents:function(t){return this.get("DomComponents").setComponents(t)},getComponents:function(){var t=this.get("DomComponents"),e=this.get("CodeManager");if(t&&e){var n=t.getComponents();return e.getCode(n,"json")}},setStyle:function(t){for(var e=this.get("CssComposer").getAll(),n=0,i=e.length;n"+i+"<\/script>":""},getCss:function(){var t=this.config,e=t.wrappesIsBody,n=this.get("CssComposer"),i=this.get("DomComponents").getComponent();return t.protectedCss+this.get("CodeManager").getCode(i,"css",{cssc:n,wrappesIsBody:e})},getJs:function(){var t=this.get("DomComponents").getWrapper();return this.get("CodeManager").getCode(t,"js").trim()},store:function(t){var e=this,n=this.get("StorageManager"),i={};if(n)return this.get("storables").forEach(function(t){var e=t.store(1);for(var n in e)i[n]=e[n]}),n.store(i,function(){t&&t(),e.set("changesCount",0),e.trigger("storage:store",i)}),i},load:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;this.getCacheLoad(1,function(n){t.get("storables").forEach(function(t){return t.load(n)}),e&&e(n)})},getCacheLoad:function(t,e){var n=this,i=t?1:0;if(this.cacheLoad&&!i)return this.cacheLoad;var r=this.get("StorageManager"),o=[];if(!r)return{};this.get("storables").forEach(function(t){var e=t.storageKey;e="function"==typeof e?e():e,(e instanceof Array?e:[e]).forEach(function(t){o.push(t)})}),r.load(o,function(t){n.cacheLoad=t,e&&e(t),n.trigger("storage:load",t)})},getDeviceModel:function(){var t=this.get("device");return this.get("DeviceManager").get(t)},runDefault:function(){var t=this.get("Commands").get(this.config.defaultCommand);t&&!this.defaultRunning&&(t.stop(this,this),t.run(this,this),this.defaultRunning=1)},stopDefault:function(){var t=this.get("Commands").get(this.config.defaultCommand);t&&(t.stop(this,this),this.defaultRunning=0)},refreshCanvas:function(){this.set("canvasOffset",this.get("Canvas").getOffset())},clearSelection:function(t){(t||window).getSelection().removeAllRanges()},data:function(t,e,n){if(t["_gjs-data"]||(t["_gjs-data"]={}),(0,i.isUndefined)(n))return t["_gjs-data"][e];t["_gjs-data"][e]=n}})},function(t,e,n){"use strict";t.exports=function(){var t=n(63),e=n(64),i=n(65);return{name:"Utils",init:function(){return this},Sorter:t,Resizer:e,Dragger:i}}},function(t,e,n){"use strict";(function(e,i){var r=n(2),o=e.$;t.exports=e.View.extend({initialize:function(t){this.opt=t||{},i.bindAll(this,"startSort","onMove","endMove","rollback","udpateOffset","moveDragHelper");var e=t||{};this.elT=0,this.elL=0,this.borderOffset=e.borderOffset||10;var n=e.container;this.el="string"==typeof n?document.querySelector(n):n,this.$el=o(this.el),this.containerSel=e.containerSel||"div",this.itemSel=e.itemSel||"div",this.draggable=e.draggable||!0,this.nested=e.nested||0,this.pfx=e.pfx||"",this.ppfx=e.ppfx||"",this.freezeClass=e.freezeClass||this.pfx+"freezed",this.onStart=e.onStart||"",this.onEndMove=e.onEndMove||"",this.direction=e.direction||"v",this.onMoveClb=e.onMove||"",this.relative=e.relative||0,this.ignoreViewChildren=e.ignoreViewChildren||0,this.ignoreModels=e.ignoreModels||0,this.plh=e.placer||"",this.wmargin=e.wmargin||0,this.offTop=e.offsetTop||0,this.offLeft=e.offsetLeft||0,this.document=e.document||document,this.$document=o(this.document),this.dropContent=null,this.em=e.em||"",this.dragHelper=null,this.canvasRelative=e.canvasRelative||0,this.selectOnEnd=!e.avoidSelectOnEnd,this.em&&this.em.on&&(this.em.on("change:canvasOffset",this.udpateOffset),this.udpateOffset())},getContainerEl:function(){if(!this.el){var t=this.opt.container;this.el="string"==typeof t?document.querySelector(t):t,this.$el=o(this.el)}return this.el},getDocuments:function(){var t=this.em,e=t&&t.get("Canvas").getBody().ownerDocument,n=[document];return e&&n.push(e),n},udpateOffset:function(){var t=this.em.get("canvasOffset");this.offTop=t.top,this.offLeft=t.left},setDropContent:function(t){this.dropContent=t},toggleSortCursor:function(t){var e=this.em,n=document.body,i=this.ppfx||this.pfx,r=i+"grabbing",o=e?e.get("Canvas").getBody():"";t?(e&&e.get("Canvas").startAutoscroll(),n.className+=" "+r,e&&(o.className+=" "+r)):(e&&e.get("Canvas").stopAutoscroll(),n.className=n.className.replace(r,"").trim(),e&&(o.className=o.className.replace(r,"").trim()))},setDragHelper:function(t,e){for(var n=e||"",i=t.cloneNode(1),r="",s=getComputedStyle(t),a=0;as+c-10||ra+l-10)return 1},getCurrentPos:function(){var t=this.eventMove;return{x:t.pageX||0,y:t.pageY||0}},getDim:function(t){var e,n,i,r;if(this.canvasRelative&&this.em){var o=this.em.get("Canvas").getElementPos(t),s=window.getComputedStyle(t),a=parseFloat(s.marginTop),l=parseFloat(s.marginBottom),c=parseFloat(s.marginRight),u=parseFloat(s.marginLeft);e=o.top-a,n=o.left-u,i=o.height+a+l,r=o.width+u+c}else{var h=this.offset(t);e=this.relative?t.offsetTop:h.top-(this.wmargin?-1:1)*this.elT,n=this.relative?t.offsetLeft:h.left-(this.wmargin?-1:1)*this.elL,i=t.offsetHeight,r=t.offsetWidth}return[e,n,i,r]},getChildrenDim:function(t){var e=[];if(!t)return e;var n=this.getTargetModel(t);n&&n.view&&!this.ignoreViewChildren&&(t=n.view.getChildrenContainer());for(var i=t.children,r=0,o=i.length;rs||s>a+c-r||l+r>o||o>l+u-r)&&(i=1),!!i},findPosition:function(t,e,n){for(var i={index:0,method:"before"},r=0,o=0,s=0,a=0,l=0,c=0,u=0,h=0,d=0,f=t.length;do||a&&c>=a||r&&s0&&void 0!==arguments[0]?arguments[0]:{};return i(this,t),this.setOptions(e),(0,o.bindAll)(this,"handleKeyDown","handleMouseDown","move","stop"),this}return r(t,[{key:"getConfig",value:function(){return this.opts}},{key:"setOptions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.opts=(0,o.defaults)(t,a),this.setup()}},{key:"setup",value:function(){var t=this.opts,e=t.prefix||"",n=t.appendTo||document.body,i=this.container;for(i||(i=document.createElement("div"),i.className=e+"resizer-c",n.appendChild(i),this.container=i);i.firstChild;)i.removeChild(i.firstChild);var r={};["tl","tc","tr","cl","cr","bl","bc","br"].forEach(function(e){return r[e]=t[e]?l(e,t):""});for(var o in r){var s=r[o];s&&i.appendChild(s)}this.handlers=r,this.mousePosFetcher=t.mousePosFetcher,this.updateTarget=t.updateTarget,this.posFetcher=t.posFetcher,this.onStart=t.onStart,this.onMove=t.onMove,this.onEnd=t.onEnd}},{key:"isHandler",value:function(t){var e=this.handlers;for(var n in e)if(e[n]===t)return!0;return!1}},{key:"getFocusedEl",value:function(){return this.el}},{key:"getDocumentEl",value:function(){return[this.el.ownerDocument,document]}},{key:"getElementPos",value:function(t){var e=this.posFetcher||"";return e?e(t):c(t)}},{key:"focus",value:function(t){if(!t||t!==this.el){this.el=t;var e=this.getElementPos(t),n=this.container,i=n.style;i.left=e.left+"px",i.top=e.top+"px",i.width=e.width+"px",i.height=e.height+"px",n.style.display="block",(0,s.on)(this.getDocumentEl(),"mousedown",this.handleMouseDown)}}},{key:"blur",value:function(){this.container.style.display="none",this.el&&((0,s.off)(this.getDocumentEl(),"mousedown",this.handleMouseDown),this.el=null)}},{key:"start",value:function(t){if(0===t.button){t.preventDefault(),t.stopPropagation();var e=this.el,n=this,i=this.opts||{},r="data-"+i.prefix+"handler",a=this.getElementPos(e);this.handlerAttr=t.target.getAttribute(r),this.clickedHandler=t.target,this.startDim={t:a.top,l:a.left,w:a.width,h:a.height},this.rectDim={t:a.top,l:a.left,w:a.width,h:a.height},this.startPos={x:t.clientX,y:t.clientY};var l=this.getDocumentEl();(0,s.on)(l,"mousemove",this.move),(0,s.on)(l,"keydown",this.handleKeyDown),(0,s.on)(l,"mouseup",this.stop),(0,o.isFunction)(this.onStart)&&this.onStart(t,{docs:l,config:i,el:e,resizer:n}),this.move(t)}}},{key:"move",value:function(t){var e=this.onMove,n=this.mousePosFetcher,i=n?n(t):{x:t.clientX,y:t.clientY};this.currentPos=i,this.delta={x:i.x-this.startPos.x,y:i.y-this.startPos.y},this.keys={shift:t.shiftKey,ctrl:t.ctrlKey,alt:t.altKey},this.rectDim=this.calc(this),this.updateRect(0),e&&e(t),0===t.which&&this.stop(t)}},{key:"stop",value:function(t){var e=this.opts,n=this.getDocumentEl();(0,s.off)(n,"mousemove",this.move),(0,s.off)(n,"keydown",this.handleKeyDown),(0,s.off)(n,"mouseup",this.stop),this.updateRect(1),(0,o.isFunction)(this.onEnd)&&this.onEnd(t,{docs:n,config:e})}},{key:"updateRect",value:function(t){var e=this.el,n=this,i=this.opts,r=this.rectDim,s=this.container.style,a=this.updateTarget,l=this.getSelectedHandler(),c=i.unitHeight,u=i.unitWidth;if((0,o.isFunction)(a))a(e,r,{store:t,selectedHandler:l,resizer:n,config:i});else{var h=e.style;h.width=r.w+u,h.height=r.h+c}var d=this.getElementPos(e);s.left=d.left+"px",s.top=d.top+"px",s.width=d.width+"px",s.height=d.height+"px"}},{key:"getSelectedHandler",value:function(){var t=this.handlers;if(this.selectedHandler)for(var e in t)if(t[e]===this.selectedHandler)return e}},{key:"handleKeyDown",value:function(t){27===t.keyCode&&(this.rectDim=this.startDim,this.stop(t))}},{key:"handleMouseDown",value:function(t){var e=t.target;this.isHandler(e)?(this.selectedHandler=e,this.start(t)):e!==this.el&&(this.selectedHandler="",this.blur())}},{key:"calc",value:function(t){var e=this.opts||{},n=this.startDim,i=e.minDim,r={t:0,l:0,w:n.w,h:n.h};if(t){var o=t.handlerAttr;~o.indexOf("r")&&(r.w=Math.max(i,n.w+t.delta.x)),~o.indexOf("b")&&(r.h=Math.max(i,n.h+t.delta.y)),~o.indexOf("l")&&(r.w=Math.max(i,n.w-t.delta.x)),~o.indexOf("t")&&(r.h=Math.max(i,n.h-t.delta.y));var s=e.ratioDefault?!t.keys.shift:t.keys.shift;if(o.indexOf("c")<0&&s){var a=n.w/n.h;r.w/r.h>a?r.h=Math.round(r.w/a):r.w=Math.round(r.h*a)}return~o.indexOf("l")&&(r.l=n.w-r.w),~o.indexOf("t")&&(r.t=n.h-r.h),r}}}]),t}();t.exports={init:function(t){return new u(t)}}},function(t,e,n){"use strict";(function(e){var n=e.$,i=function(t,e){var n=e||window,i=t.getBoundingClientRect();return{left:i.left+n.pageXOffset,top:i.top+n.pageYOffset,width:i.width,height:i.height}};t.exports={setKey:function(t,e){},getElementRect:function(t){var e=this.opts.posFetcher||"";return e?e(t,{avoidFrameOffset:1}):i(t)},init:function(t){return this.setOptions(t),this.handleMouseDown=this.handleMouseDown.bind(this),this.drag=this.drag.bind(this),this.move=this.move.bind(this),this.stop=this.stop.bind(this),this.setKey("up, right, down, left",this.handleKey),this},setOptions:function(t){this.opts=t||{}},focus:function(t){if(!t||t!==this.el){this.getDocumentEl(t),this.blur(),this.el=t,this.handlers=this.opts.dragHandlers||[t];var e=this.getElementRect(t);this.elRect=e,this.startTop=e.top,this.startLeft=e.left,this.getDocumentEl().on("mousedown",this.handleMouseDown)}},blur:function(){this.getDocumentEl().off("mousedown",this.handleMouseDown),this.el=null},start:function(t){this.startPos=this.getMousePos(t);var e=this.getDocumentEl();e.on("mousemove",this.drag),e.on("mouseup",this.stop);var n=this.opts.onStart;"function"==typeof n&&n(t,{docs:e,el:this.el,start:this.startPos,elRect:this.elRect}),this.drag(t)},stop:function(t){var e=this.getDocumentEl();e.off("mousemove",this.drag),e.off("mouseup",this.stop),this.lockedAxis=null;var n=this.opts.onEnd;"function"==typeof n&&n(t,{docs:e,delta:this.delta,end:{x:this.startLeft+this.delta.x,y:this.startTop+this.delta.y}})},handleMouseDown:function(t){var e=t.target;this.isHandler(e)&&this.start(t)},isHandler:function(t){var e=this.handlers;for(var n in e)if(e[n]===t)return!0;return!1},handleKey:function(t,e){switch(e.shortcut){case"up":this.move(0,-1);break;case"right":this.move(1,0);break;case"down":this.move(0,1);break;case"left":this.move(-1,0)}},getDocumentEl:function(t){var t=t||this.el;if(!this.$doc){var e=[document];t&&e.push(t.ownerDocument),this.$doc=n(e)}return this.$doc},getMousePos:function(t){var e=this.opts.mousePosFetcher;return e?e(t):{x:t.clientX,y:t.clientY}},drag:function(t){var e=this.lockedAxis,n=this.getMousePos(t),i={x:n.x-this.startPos.x,y:n.y-this.startPos.y};if(t.shiftKey){if(!e){var r=i.x,o=i.y,s=Math.abs(r),a=Math.abs(o);o>=s||o<=-s?e="x":(r>a||r<-a)&&(e="y")}}else e=null;"x"===e&&(i.x=this.startPos.x),"y"===e&&(i.y=this.startPos.y),this.lockedAxis=e,this.delta=i,this.move(i.x,i.y);var l=this.opts.onDrag;"function"==typeof l&&l(t,{delta:i,current:{x:this.startLeft+i.x,y:this.startTop+i.y},lockedAxis:e}),0===t.which&&this.stop(t)},move:function(t,e){this.moveX(t),this.moveY(e)},moveX:function(t){var e=this.el,n=(this.opts,this.startLeft+t),i=this.opts.setX;"function"==typeof i?i(n,{el:e,start:this.startLeft,delta:t}):e.style.left=n+"px"},moveY:function(t){var e=this.el,n=(this.opts,this.startTop+t),i=this.opts.setY;"function"==typeof i?i(n,{el:e,start:this.startTop,delta:t}):e.style.top=n+"px"}}}).call(e,n(0))},function(t,e,n){"use strict";t.exports=function(){var t={},e=n(67),i=n(68),r=n(69),o={},s={};return{name:"StorageManager",init:function(n){t=n||{};for(var o in e)o in t||(t[o]=e[o]);return s.remote=new r(t),s.local=new i(t),t.currentStorage=t.type,this.loadDefaultProviders().setCurrent(t.type),this},isAutosave:function(){return!!t.autosave},setAutosave:function(e){return t.autosave=!!e,this},getStepsBeforeSave:function(){return t.stepsBeforeSave},setStepsBeforeSave:function(e){return t.stepsBeforeSave=e,this},add:function(t,e){return o[t]=e,this},get:function(t){return o[t]||null},getStorages:function(){return o},getCurrent:function(){return t.currentStorage},setCurrent:function(e){return t.currentStorage=e,this},store:function(e,n){var i=this.get(this.getCurrent()),r={};for(var o in e)r[t.id+o]=e[o];return i?i.store(r,n):null},load:function(e,n){var i=this.get(this.getCurrent()),r=[],o={};"string"==typeof e&&(e=[e]);for(var s=0,a=e.length;s1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=this.get("contentTypeJson"),s=this.get("headers")||{},a=this.get("params"),l=n.body||{},c=void 0,u=void 0;for(var h in a)l[h]=a[h];if((0,o.isUndefined)(s["X-Requested-With"])&&(s["X-Requested-With"]="XMLHttpRequest"),(0,o.isUndefined)(s["Content-Type"])&&r&&(s["Content-Type"]="application/json; charset=utf-8"),r)u=JSON.stringify(l);else{u=new FormData;for(var d in l)u.append(d,l[d])}c={method:n.method||"post",credentials:"include",headers:s},"post"===c.method&&(c.body=u),this.onStart(),this.fetch(t,c).then(function(t){return 1==(t.status/200|0)?t.text():t.text().then(function(t){return Promise.reject(t)})}).then(function(t){return e.onResponse(t,i)}).catch(function(t){return e.onError(t)})}})},function(t,e,n){(function(e){!function(n){function i(){}function r(t,e){return function(){t.apply(e,arguments)}}function o(t){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof t)throw new TypeError("not a function");this._state=0,this._handled=!1,this._value=void 0,this._deferreds=[],h(t,this)}function s(t,e){for(;3===t._state;)t=t._value;if(0===t._state)return void t._deferreds.push(e);t._handled=!0,o._immediateFn(function(){var n=1===t._state?e.onFulfilled:e.onRejected;if(null===n)return void(1===t._state?a:l)(e.promise,t._value);var i;try{i=n(t._value)}catch(t){return void l(e.promise,t)}a(e.promise,i)})}function a(t,e){try{if(e===t)throw new TypeError("A promise cannot be resolved with itself.");if(e&&("object"==typeof e||"function"==typeof e)){var n=e.then;if(e instanceof o)return t._state=3,t._value=e,void c(t);if("function"==typeof n)return void h(r(n,e),t)}t._state=1,t._value=e,c(t)}catch(e){l(t,e)}}function l(t,e){t._state=2,t._value=e,c(t)}function c(t){2===t._state&&0===t._deferreds.length&&o._immediateFn(function(){t._handled||o._unhandledRejectionFn(t._value)});for(var e=0,n=t._deferreds.length;e=0&&(t._idleTimeoutId=setTimeout(function(){t._onTimeout&&t._onTimeout()},e))},n(72),e.setImmediate=setImmediate,e.clearImmediate=clearImmediate},function(t,e,n){(function(t,e){!function(t,n){"use strict";function i(t){"function"!=typeof t&&(t=new Function(""+t));for(var e=new Array(arguments.length-1),n=0;n1)for(var n=1;n<%= deviceLabel %>\n
\n \n \n \n
\n
\n
\n
\n '),events:{change:"updateDevice"},initialize:function(t){this.config=t.config||{},this.em=this.config.em,this.ppfx=this.config.pStylePrefix||"",this.events["click ."+this.ppfx+"add-trasp"]=this.startAdd,this.listenTo(this.em,"change:device",this.updateSelect),this.delegateEvents()},startAdd:function(){},updateDevice:function(){var t=this.em;if(t){var e=this.devicesEl,n=e?e.val():"";t.set("device",n)}},updateSelect:function(){var t=this.em,e=this.devicesEl;if(t&&t.getDeviceModel&&e){var n=t.getDeviceModel(),i=n?n.get("name"):"";e.val(i)}},getOptions:function(){var t="";return this.collection.each(function(e){var n=e.get("name");t+='"}),t},render:function(){var t=this.ppfx;return this.$el.html(this.template({ppfx:t,deviceLabel:this.config.deviceLabel})),this.devicesEl=this.$el.find("."+t+"devices"),this.devicesEl.append(this.getOptions()),this.el.className=t+"devices-c",this}})}).call(e,n(1))},function(t,e,n){"use strict";t.exports=function(){var t,e,i={},r=n(80),o=n(81),s=n(22);return{compTypes:"",name:"Parser",init:function(n){i=n||{};for(var a in r)a in i||(i[a]=r[a]);return t=new s(i),e=new o(i),this},parseHtml:function(n){return t.compTypes=this.compTypes,t.parse(n,e)},parseCss:function(t){return e.parse(t)}}}},function(t,e,n){"use strict";t.exports={textTags:["br","b","i","u"]}},function(t,e,n){"use strict";t.exports=function(t){return{parseSelector:function(t){for(var e=[],n=[],i=t.split(","),r=0,o=i.length;r1&&void 0!==arguments[1]?arguments[1]:{};"object"==(void 0===t?"undefined":i(t))?n=t:n.name=t,n.label&&!n.name&&(n.name=l.escapeName(n.label));var r=n.name,o=r?this.get(r):e.where(n)[0];return o||e.add(n)},addClass:function(t){var n=[];return(0,r.isString)(t)&&(t=t.trim().split(" ")),t.forEach(function(t){return n.push(e.add({name:t}))}),n},get:function(t){return e.where({name:t})[0]},getAll:function(){return e},render:function(t){if(t){return new u({collection:new c(t),config:s}).render().el}return o.render().el}}}},function(t,e,n){"use strict";t.exports={stylePrefix:"clm-",selectors:[],label:"Classes",statesLabel:"- State -",selectedLabel:"Selected",states:[{name:"hover",label:"Hover"},{name:"active",label:"Click"},{name:"nth-of-type(2n)",label:"Even/Odd"}]}},function(t,e,n){"use strict";(function(e){var i=n(0),r=n(85);t.exports=i.View.extend({template:e.template('\n
\n
<%= label %>
\n
\n \n
\n \n \n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
<%= selectedLabel %>
\n
\n
\n
'),events:{},initialize:function(t){this.config=t.config||{},this.pfx=this.config.stylePrefix||"",this.ppfx=this.config.pStylePrefix||"",this.className=this.pfx+"tags",this.addBtnId=this.pfx+"add-tag",this.newInputId=this.pfx+"new",this.stateInputId=this.pfx+"states",this.stateInputC=this.pfx+"input-c",this.states=this.config.states||[],this.events["click #"+this.addBtnId]="startNewTag",this.events["blur #"+this.newInputId]="endNewTag",this.events["keyup #"+this.newInputId]="onInputKeyUp",this.events["change #"+this.stateInputId]="stateChanged",this.target=this.config.em,this.listenTo(this.target,"change:selectedComponent",this.componentChanged),this.listenTo(this.target,"targetClassUpdated",this.updateSelector),this.listenTo(this.collection,"add",this.addNew),this.listenTo(this.collection,"reset",this.renderClasses),this.listenTo(this.collection,"remove",this.tagRemoved),this.delegateEvents()},tagRemoved:function(t){this.updateStateVis()},getStateOptions:function(){for(var t="",e=0;e'+this.states[e].label+"";return t},addNew:function(t){this.addToClasses(t)},startNewTag:function(t){this.$addBtn.get(0).style.display="none",this.$input.show().focus()},endNewTag:function(t){this.$addBtn.get(0).style.display="",this.$input.hide().val("")},onInputKeyUp:function(t){13===t.keyCode?this.addNewTag(this.$input.val()):27===t.keyCode&&this.endNewTag()},componentChanged:function(t){this.compTarget=this.target.get("selectedComponent");var e=this.compTarget,n=[];e&&(this.getStates().val(e.get("state")),n=e.get("classes").getValid()),this.collection.reset(n),this.updateStateVis()},updateStateVis:function(){this.collection.length?this.getStatesC().css("display","block"):this.getStatesC().css("display","none"),this.updateSelector()},updateSelector:function(){var t=this.target.get("selectedComponent");if(this.compTarget=t,t&&t.get){var e="";this.collection.each(function(t){t.get("active")&&(e+="."+t.get("name"))});var n=t.get("state");e=n?e+":"+n:e,e=e||t.getName();var i=this.el.querySelector("#"+this.pfx+"sel");i&&(i.innerHTML=e)}},stateChanged:function(t){this.compTarget&&(this.compTarget.set("state",this.$states.val()),this.target&&this.target.trigger("targetStateUpdated"),this.updateSelector())},addNewTag:function(t){var e=this.target,n=this.compTarget;if(t.trim()){if(e){var i=e.get("SelectorManager"),r=i.add({label:t});if(n){var o=n.get("classes"),s=o.length;o.add(r);var a=o.length;this.collection.add(r),a>s&&e.trigger("targetClassAdded"),this.updateStateVis()}}this.endNewTag()}},addToClasses:function(t,e){var n=e||null,i=new r({model:t,config:this.config,coll:this.collection}),o=i.render().el;return n?n.appendChild(o):this.getClasses().append(o),o},renderClasses:function(){var t=document.createDocumentFragment();return this.collection.each(function(e){this.addToClasses(e,t)},this),this.getClasses()&&this.getClasses().empty().append(t),this},getClasses:function(){return this.$classes||(this.$classes=this.$el.find("#"+this.pfx+"tags-c")),this.$classes},getStates:function(){return this.$states||(this.$states=this.$el.find("#"+this.stateInputId)),this.$states},getStatesC:function(){return this.$statesC||(this.$statesC=this.$el.find("#"+this.stateInputC)),this.$statesC},render:function(){var t=this.config;return this.$el.html(this.template({selectedLabel:t.selectedLabel,statesLabel:t.statesLabel,label:t.label,pfx:this.pfx,ppfx:this.ppfx})),this.$input=this.$el.find("input#"+this.newInputId),this.$addBtn=this.$el.find("#"+this.addBtnId),this.$classes=this.$el.find("#"+this.pfx+"tags-c"),this.$states=this.$el.find("#"+this.stateInputId),this.$statesC=this.$el.find("#"+this.stateInputC),this.$states.append(this.getStateOptions()),this.renderClasses(),this.$el.attr("class",this.className),this}})}).call(e,n(1))},function(t,e,n){"use strict";(function(e){var i=n(0),r=n(9);t.exports=i.View.extend({template:e.template('\n \n \n />\n \n ⨯'),initialize:function(t){this.config=t.config||{},this.coll=t.coll||null,this.pfx=this.config.stylePrefix||"",this.ppfx=this.config.pStylePrefix||"",this.inputProp="readonly",this.target=this.config.em,this.className=this.pfx+"tag",this.closeId=this.pfx+"close",this.chkId=this.pfx+"checkbox",this.labelId=this.pfx+"tag-label",this.events={},this.events["click #"+this.closeId]="removeTag",this.events["click #"+this.chkId]="changeStatus",this.events["dblclick #"+this.labelId]="startEditTag",this.events["keypress #"+this.labelId+" input"]="updateInputLabel",this.events["blur #"+this.labelId+" input"]="endEditTag",this.listenTo(this.model,"change:active",this.updateStatus),this.delegateEvents()},startEditTag:function(){this.$labelInput.prop(this.inputProp,!1)},endEditTag:function(){var t=this.$labelInput.val(),e=r.escapeName(t);if(this.target){var n=this.target.get("SelectorManager");n&&(n.get(e)?this.$labelInput.val(this.model.get("label")):this.model.set({name:e,label:t}))}this.$labelInput.prop(this.inputProp,!0)},changeStatus:function(){this.model.set("active",!this.model.get("active")),this.target.trigger("targetClassUpdated")},removeTag:function(t){var e=this,n=this.target,i=this.model,r=this.coll,o=(this.el,n&&n.get("selectedComponent"));o&&(o.get,o.get("classes").remove(i)),r&&r.remove(i),setTimeout(function(){return e.remove()},0),n&&n.trigger("targetClassRemoved")},updateStatus:function(){var t="fa-check-square-o";this.$chk||(this.$chk=this.$el.find("#"+this.pfx+"checkbox")),this.model.get("active")?(this.$chk.removeClass("fa-square-o").addClass(t),this.$el.removeClass("opac50")):(this.$chk.removeClass(t).addClass("fa-square-o"),this.$el.addClass("opac50"))},updateInputLabel:function(){this.$labelInput||(this.$labelInput=this.$el.find("input")),this.$labelInput.prop(this.inputProp,!0);var t=this.$labelInput.val().length-1;t=t<1?1:t,this.$labelInput.attr("size",t)},render:function(){return this.$el.html(this.template({label:this.model.get("label"),pfx:this.pfx,ppfx:this.ppfx,inputProp:this.inputProp})),this.$el.attr("class",this.className),this.updateStatus(),this.updateInputLabel(),this}})}).call(e,n(1))},function(t,e,n){"use strict";t.exports=function(){var t,e,i={},r=n(87),o=n(88),s=n(89);return{name:"Modal",init:function(n){i=n||{};for(var a in r)a in i||(i[a]=r[a]);var l=i.pStylePrefix;return l&&(i.stylePrefix=l+i.stylePrefix),t=new o(i),e=new s({model:t,config:i}),this},postRender:function(t){this.render().appendTo(t.el)},open:function(){return e.show(),this},close:function(){return e.hide(),this},isOpen:function(){return!!t.get("open")},setTitle:function(e){return t.set("title",e),this},getTitle:function(){return t.get("title")},setContent:function(e){return t.set("content"," "),t.set("content",e),this},getContent:function(){return t.get("content")},getContentEl:function(){return e.getContent().get(0)},getModel:function(){return t},render:function(){return e.render().$el}}}},function(t,e,n){"use strict";t.exports={stylePrefix:"mdl-",title:"",content:"",backdrop:!0}},function(t,e,n){"use strict";var i=n(0);t.exports=i.Model.extend({defaults:{title:"",content:"",open:!1}})},function(t,e,n){"use strict";(function(e){var i=n(0);t.exports=i.View.extend({template:e.template('\n
\n
\n
<%= title %>
\n
⨯
\n
\n
\n
<%= content %>
\n
\n
\n
\n
\n '),events:{},initialize:function(t){this.config=t.config||{},this.pfx=this.config.stylePrefix||"",this.listenTo(this.model,"change:open",this.updateOpen),this.listenTo(this.model,"change:title",this.updateTitle),this.listenTo(this.model,"change:content",this.updateContent),this.events["click ."+this.pfx+"btn-close"]="hide",this.config.backdrop&&(this.events["click ."+this.pfx+"backlayer"]="hide"),this.delegateEvents()},getCollector:function(){return this.$collector||(this.$collector=this.$el.find("."+this.pfx+"collector")),this.$collector},getContent:function(){var t=this.pfx;return this.$content||(this.$content=this.$el.find("."+t+"content #"+t+"c")),this.$content},getTitle:function(){return this.$title||(this.$title=this.$el.find("."+this.pfx+"title")),this.$title.get(0)},updateContent:function(){var t=this.getContent(),e=t.children(),n=this.getCollector(),i=this.model.get("content");e.length&&n.append(e),t.empty().append(i)},updateTitle:function(){var t=this.getTitle();t&&(t.innerHTML=this.model.get("title"))},updateOpen:function(){this.el.style.display=this.model.get("open")?"":"none"},hide:function(){this.model.set("open",0)},show:function(){this.model.set("open",1)},render:function(){var t=this.model.toJSON();return t.pfx=this.pfx,this.$el.html(this.template(t)),this.$el.attr("class",this.pfx+"container"),this.updateOpen(),this}})}).call(e,n(1))},function(t,e,n){"use strict";t.exports=function(){var t={},e=n(91),i=n(92),r=n(93),o=n(94),s=n(95),a=n(96),l=n(101),c={},u={},h={},d={};return{getConfig:function(){return t},config:t,EditorView:l,name:"CodeManager",init:function(n){t=n||{};for(var l in e)l in t||(t[l]=e[l]);var c=t.pStylePrefix;return c&&(t.stylePrefix=c+t.stylePrefix),u.html=new i,u.css=new r,u.json=new o,u.js=new s,d.CodeMirror=new a,this.loadDefaultGenerators().loadDefaultViewers(),this},addGenerator:function(t,e){return c[t]=e,this},getGenerator:function(t){return c[t]||null},getGenerators:function(){return c},addViewer:function(t,e){return h[t]=e,this},getViewer:function(t){return h[t]||null},getViewers:function(){return h},updateViewer:function(t,e){t.setContent(e)},getCode:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=this.getGenerator(e);return i?i.build(t,n):""},loadDefaultGenerators:function(){for(var t in u)this.addGenerator(t,u[t]);return this},loadDefaultViewers:function(){for(var t in d)this.addViewer(t,d[t]);return this}}}},function(t,e,n){"use strict";t.exports={stylePrefix:"cm-",inlineCss:!1}},function(t,e,n){"use strict";var i=n(0);t.exports=i.Model.extend({build:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.get("components");return e.exportWrapper?e.wrappesIsBody?""+this.buildModels(n)+"":t.toHTML():this.buildModels(n)},buildModels:function(t){var e="";return t.each(function(t){e+=t.toHTML()}),e}})},function(t,e,n){"use strict";var i=n(0);t.exports=i.Model.extend({initialize:function(){this.compCls=[]},buildFromModel:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n="",i=t.get("style"),r=t.get("classes"),o=e.wrappesIsBody;if(r&&r.each(function(t){this.compCls.push(t.get("name"))},this),i&&0!==Object.keys(i).length){var s="#"+t.getId();s=o&&t.get("wrapper")?"body":s,n+=s+"{";for(var a in i)i.hasOwnProperty(a)&&(n+=a+":"+i[a]+";");n+="}"}return n},buildFromComp:function(t){var e=t.get("components")||t,n="";return e.each(function(t){var e=t.get("components");n+=this.buildFromModel(t),e.length&&(n+=this.buildFromComp(e))},this),n},build:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.cssc;this.compCls=[];var i=this.buildFromModel(t,e);i+=this.buildFromComp(t);this.compCls;if(n){var r=n.getAll(),o={};r.each(function(t){var e=t.get("mediaText");if(e){var n=o[e];return void(n?n.push(t):o[e]=[t])}i+=this.buildFromRule(t)},this);for(var s in o){for(var a=o[s],l="",c=0,u=a.length;c-1&&(a=1)}),s&&a||n){s+=o?":"+o:"",s+=n?(s?", ":"")+n:"";var c="";if(r&&0!==Object.keys(r).length)for(var u in r)r.hasOwnProperty(u)&&(c+=u+":"+r[u]+";");c&&(e+=s+"{"+c+"}")}return e}})},function(t,e,n){"use strict";(function(e){var i=n(0);t.exports=i.Model.extend({build:function(t){var n=t.toJSON();return this.beforeEach(n),e.each(n,function(t,e){var r=n[e];if(r instanceof i.Model)n[e]=this.build(r);else if(r instanceof i.Collection){var o=r;n[e]=[],o.length&&o.each(function(t,i){n[e][i]=this.build(t)},this)}},this),n},beforeEach:function(t){delete t.status}})}).call(e,n(1))},function(t,e,n){"use strict";(function(e){var i=n(0);t.exports=i.Model.extend({mapModel:function(t){var n="",i=t.get("script"),r=t.get("type"),o=t.get("components"),s=t.getId();if(i){var a=t.get("attributes");a=e.extend({},a,{id:s}),t.set("attributes",a);var l=t.getScriptString();if(t.get("scriptUpdated"))this.mapJs[r+"-"+s]={ids:[s],code:l};else{var c=this.mapJs[r];c?c.ids.push(s):this.mapJs[r]={ids:[s],code:l}}}return o.each(function(t){n+=this.mapModel(t)},this),n},build:function(t){this.mapJs={},this.mapModel(t);var e="";for(var n in this.mapJs){var i=this.mapJs[n];e+="\n var items = document.querySelectorAll('"+("#"+i.ids.join(", #"))+"');\n for (var i = 0, len = items.length; i < len; i++) {\n (function(){"+i.code+"}.bind(items[i]))();\n }"}return e}})}).call(e,n(1))},function(t,e,n){"use strict";var i=n(0),r=n(6);n(97),n(24),n(100);t.exports=i.Model.extend({defaults:{input:"",label:"",codeName:"",theme:"",readOnly:!0,lineNumbers:!0},init:function(t){return this.editor=r.fromTextArea(t,{dragDrop:!1,lineWrapping:!0,lineNumbers:this.get("lineNumbers"),readOnly:this.get("readOnly"),mode:this.get("codeName"),theme:this.get("theme")}),this},setContent:function(t){this.editor&&(this.editor.setValue(t),this.editor.autoFormatRange&&(r.commands.selectAll(this.editor),this.editor.autoFormatRange(this.editor.getCursor(!0),this.editor.getCursor(!1)),r.commands.goDocStart(this.editor)))}})},function(t,e,n){!function(t){t(n(6),n(98),n(99),n(24))}(function(t){"use strict";function e(t,e,n){var i=t.current(),r=i.search(e);return r>-1?t.backUp(i.length-r):i.match(/<\/?$/)&&(t.backUp(i.length),t.match(e,!1)||t.match(i)),n}function n(t){var e=l[t];return e||(l[t]=new RegExp("\\s+"+t+"\\s*=\\s*('|\")?([^'\"]+)('|\")?\\s*"))}function i(t,e){var i=t.match(n(e));return i?/^\s*(.*?)\s*$/.exec(i[2])[1]:""}function r(t,e){return new RegExp((e?"^":"")+"","i")}function o(t,e){for(var n in t)for(var i=e[n]||(e[n]=[]),r=t[n],o=r.length-1;o>=0;o--)i.unshift(r[o])}function s(t,e){for(var n=0;n\s\/]/.test(i.current())&&(a=o.htmlState.tagName&&o.htmlState.tagName.toLowerCase())&&u.hasOwnProperty(a))o.inTag=a+" ";else if(o.inTag&&d&&/>$/.test(i.current())){var f=/^([\S]+) (.*)/.exec(o.inTag);o.inTag=null;var p=">"==i.current()&&s(u[f[1]],f[2]),g=t.getMode(n,p),m=r(f[1],!0),v=r(f[1],!1);o.token=function(t,n){return t.match(m,!1)?(n.token=l,n.localState=n.localMode=null,null):e(t,v,n.localMode.token(t,n.localState))},o.localMode=g,o.localState=t.startState(g,c.indent(o.htmlState,""))}else o.inTag&&(o.inTag+=i.current(),i.eol()&&(o.inTag+=" "));return h}var c=t.getMode(n,{name:"xml",htmlMode:!0,multilineTagIndentFactor:i.multilineTagIndentFactor,multilineTagIndentPastTag:i.multilineTagIndentPastTag}),u={},h=i&&i.tags,d=i&&i.scriptTypes;if(o(a,u),h&&o(h,u),d)for(var f=d.length-1;f>=0;f--)u.script.unshift(["type",d[f].matches,d[f].mode]);return{startState:function(){return{token:l,inTag:null,localMode:null,localState:null,htmlState:t.startState(c)}},copyState:function(e){var n;return e.localState&&(n=t.copyState(e.localMode,e.localState)),{token:e.token,inTag:e.inTag,localMode:e.localMode,localState:n,htmlState:t.copyState(c,e.htmlState)}},token:function(t,e){return e.token(t,e)},indent:function(e,n,i){return!e.localMode||/^\s*<\//.test(n)?c.indent(e.htmlState,n):e.localMode.indent?e.localMode.indent(e.localState,n,i):t.Pass},innerMode:function(t){return{state:t.localState||t.htmlState,mode:t.localMode||c}}}},"xml","javascript","css"),t.defineMIME("text/html","htmlmixed")})},function(t,e,n){!function(t){t(n(6))}(function(t){"use strict";var e={autoSelfClosers:{area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},implicitlyClosed:{dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},contextGrabbers:{dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}},doNotIndent:{pre:!0},allowUnquoted:!0,allowMissing:!0,caseFold:!0},n={autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1,caseFold:!1};t.defineMode("xml",function(i,r){function o(t,e){function n(n){return e.tokenize=n,n(t,e)}var i=t.next();if("<"==i)return t.eat("!")?t.eat("[")?t.match("CDATA[")?n(l("atom","]]>")):null:t.match("--")?n(l("comment","--\x3e")):t.match("DOCTYPE",!0,!0)?(t.eatWhile(/[\w\._\-]/),n(c(1))):null:t.eat("?")?(t.eatWhile(/[\w\._\-]/),e.tokenize=l("meta","?>"),"meta"):(M=t.eat("/")?"closeTag":"openTag",e.tokenize=s,"tag bracket");if("&"==i){var r;return r=t.eat("#")?t.eat("x")?t.eatWhile(/[a-fA-F\d]/)&&t.eat(";"):t.eatWhile(/[\d]/)&&t.eat(";"):t.eatWhile(/[\w\.\-:]/)&&t.eat(";"),r?"atom":"error"}return t.eatWhile(/[^&<]/),null}function s(t,e){var n=t.next();if(">"==n||"/"==n&&t.eat(">"))return e.tokenize=o,M=">"==n?"endTag":"selfcloseTag","tag bracket";if("="==n)return M="equals",null;if("<"==n){e.tokenize=o,e.state=f,e.tagName=e.tagStart=null;var i=e.tokenize(t,e);return i?i+" tag error":"tag error"}return/[\'\"]/.test(n)?(e.tokenize=a(n),e.stringStartCol=t.column(),e.tokenize(t,e)):(t.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),"word")}function a(t){var e=function(e,n){for(;!e.eol();)if(e.next()==t){n.tokenize=s;break}return"string"};return e.isInAttribute=!0,e}function l(t,e){return function(n,i){for(;!n.eol();){if(n.match(e)){i.tokenize=o;break}n.next()}return t}}function c(t){return function(e,n){for(var i;null!=(i=e.next());){if("<"==i)return n.tokenize=c(t+1),n.tokenize(e,n);if(">"==i){if(1==t){n.tokenize=o;break}return n.tokenize=c(t-1),n.tokenize(e,n)}}return"meta"}}function u(t,e,n){this.prev=t.context,this.tagName=e,this.indent=t.indented,this.startOfLine=n,(k.doNotIndent.hasOwnProperty(e)||t.context&&t.context.noIndent)&&(this.noIndent=!0)}function h(t){t.context&&(t.context=t.context.prev)}function d(t,e){for(var n;;){if(!t.context)return;if(n=t.context.tagName,!k.contextGrabbers.hasOwnProperty(n)||!k.contextGrabbers[n].hasOwnProperty(e))return;h(t)}}function f(t,e,n){return"openTag"==t?(n.tagStart=e.column(),p):"closeTag"==t?g:f}function p(t,e,n){return"word"==t?(n.tagName=e.current(),E="tag",y):(E="error",p)}function g(t,e,n){if("word"==t){var i=e.current();return n.context&&n.context.tagName!=i&&k.implicitlyClosed.hasOwnProperty(n.context.tagName)&&h(n),n.context&&n.context.tagName==i||!1===k.matchClosing?(E="tag",m):(E="tag error",v)}return E="error",v}function m(t,e,n){return"endTag"!=t?(E="error",m):(h(n),f)}function v(t,e,n){return E="error",m(t,e,n)}function y(t,e,n){if("word"==t)return E="attribute",b;if("endTag"==t||"selfcloseTag"==t){var i=n.tagName,r=n.tagStart;return n.tagName=n.tagStart=null,"selfcloseTag"==t||k.autoSelfClosers.hasOwnProperty(i)?d(n,i):(d(n,i),n.context=new u(n,i,r==n.indented)),f}return E="error",y}function b(t,e,n){return"equals"==t?x:(k.allowMissing||(E="error"),y(t,e,n))}function x(t,e,n){return"string"==t?w:"word"==t&&k.allowUnquoted?(E="string",y):(E="error",y(t,e,n))}function w(t,e,n){return"string"==t?w:y(t,e,n)}var C=i.indentUnit,k={},S=r.htmlMode?e:n;for(var T in S)k[T]=S[T];for(var T in r)k[T]=r[T];var M,E;return o.isInText=!0,{startState:function(t){var e={tokenize:o,state:f,indented:t||0,tagName:null,tagStart:null,context:null};return null!=t&&(e.baseIndent=t),e},token:function(t,e){if(!e.tagName&&t.sol()&&(e.indented=t.indentation()),t.eatSpace())return null;M=null;var n=e.tokenize(t,e);return(n||M)&&"comment"!=n&&(E=null,e.state=e.state(M||n,t,e),E&&(n="error"==E?n+" error":E)),n},indent:function(e,n,i){var r=e.context;if(e.tokenize.isInAttribute)return e.tagStart==e.indented?e.stringStartCol+1:e.indented+C;if(r&&r.noIndent)return t.Pass;if(e.tokenize!=s&&e.tokenize!=o)return i?i.match(/^(\s*)/)[0].length:0;if(e.tagName)return!1!==k.multilineTagIndentPastTag?e.tagStart+e.tagName.length+2:e.tagStart+C*(k.multilineTagIndentFactor||1);if(k.alignCDATA&&/$/,blockCommentStart:"\x3c!--",blockCommentEnd:"--\x3e",configuration:k.htmlMode?"html":"xml",helperType:k.htmlMode?"html":"xml",skipAttribute:function(t){t.state==x&&(t.state=y)}}}),t.defineMIME("text/xml","xml"),t.defineMIME("application/xml","xml"),t.mimeModes.hasOwnProperty("text/html")||t.defineMIME("text/html",{name:"xml",htmlMode:!0})})},function(t,e,n){!function(t){t(n(6))}(function(t){"use strict";t.defineMode("javascript",function(e,n){function i(t){for(var e,n=!1,i=!1;null!=(e=t.next());){if(!n){if("/"==e&&!i)return;"["==e?i=!0:i&&"]"==e&&(i=!1)}n=!n&&"\\"==e}}function r(t,e,n){return Tt=t,Mt=n,e}function o(t,e){var n=t.next();if('"'==n||"'"==n)return e.tokenize=s(n),e.tokenize(t,e);if("."==n&&t.match(/^\d+(?:[eE][+\-]?\d+)?/))return r("number","number");if("."==n&&t.match(".."))return r("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(n))return r(n);if("="==n&&t.eat(">"))return r("=>","operator");if("0"==n&&t.eat(/x/i))return t.eatWhile(/[\da-f]/i),r("number","number");if("0"==n&&t.eat(/o/i))return t.eatWhile(/[0-7]/i),r("number","number");if("0"==n&&t.eat(/b/i))return t.eatWhile(/[01]/i),r("number","number");if(/\d/.test(n))return t.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/),r("number","number");if("/"==n)return t.eat("*")?(e.tokenize=a,a(t,e)):t.eat("/")?(t.skipToEnd(),r("comment","comment")):St(t,e,1)?(i(t),t.match(/^\b(([gimyu])(?![gimyu]*\2))+\b/),r("regexp","string-2")):(t.eat("="),r("operator","operator",t.current()));if("`"==n)return e.tokenize=l,l(t,e);if("#"==n)return t.skipToEnd(),r("error","error");if(It.test(n))return">"==n&&e.lexical&&">"==e.lexical.type||(t.eat("=")?"!"!=n&&"="!=n||t.eat("="):/[<>*+\-]/.test(n)&&(t.eat(n),">"==n&&t.eat(n))),r("operator","operator",t.current());if(Nt.test(n)){t.eatWhile(Nt);var o=t.current();if("."!=e.lastType){if(Dt.propertyIsEnumerable(o)){var c=Dt[o];return r(c.type,c.style,o)}if("async"==o&&t.match(/^\s*[\(\w]/,!1))return r("async","keyword",o)}return r("variable","variable",o)}}function s(t){return function(e,n){var i,s=!1;if(At&&"@"==e.peek()&&e.match(_t))return n.tokenize=o,r("jsonld-keyword","meta");for(;null!=(i=e.next())&&(i!=t||s);)s=!s&&"\\"==i;return s||(n.tokenize=o),r("string","string")}}function a(t,e){for(var n,i=!1;n=t.next();){if("/"==n&&i){e.tokenize=o;break}i="*"==n}return r("comment","comment")}function l(t,e){for(var n,i=!1;null!=(n=t.next());){if(!i&&("`"==n||"$"==n&&t.eat("{"))){e.tokenize=o;break}i=!i&&"\\"==n}return r("quasi","string-2",t.current())}function c(t,e){e.fatArrowAt&&(e.fatArrowAt=null);var n=t.string.indexOf("=>",t.start);if(!(n<0)){if(Ot){var i=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(t.string.slice(t.start,n));i&&(n=i.index)}for(var r=0,o=!1,s=n-1;s>=0;--s){var a=t.string.charAt(s),l=Ft.indexOf(a);if(l>=0&&l<3){if(!r){++s;break}if(0==--r){"("==a&&(o=!0);break}}else if(l>=3&&l<6)++r;else if(Nt.test(a))o=!0;else{if(/["'\/]/.test(a))return;if(o&&!r){++s;break}}}o&&!r&&(e.fatArrowAt=s)}}function u(t,e,n,i,r,o){this.indented=t,this.column=e,this.type=n,this.prev=r,this.info=o,null!=i&&(this.align=i)}function h(t,e){for(var n=t.localVars;n;n=n.next)if(n.name==e)return!0;for(var i=t.context;i;i=i.prev)for(var n=i.vars;n;n=n.next)if(n.name==e)return!0}function d(t,e,n,i,r){var o=t.cc;for(zt.state=t,zt.stream=r,zt.marked=null,zt.cc=o,zt.style=e,t.lexical.hasOwnProperty("align")||(t.lexical.align=!0);;){if((o.length?o.pop():Lt?C:w)(n,i)){for(;o.length&&o[o.length-1].lex;)o.pop()();return zt.marked?zt.marked:"variable"==n&&h(t,i)?"variable-2":e}}}function f(){for(var t=arguments.length-1;t>=0;t--)zt.cc.push(arguments[t])}function p(){return f.apply(null,arguments),!0}function g(t){function e(e){for(var n=e;n;n=n.next)if(n.name==t)return!0;return!1}var i=zt.state;if(zt.marked="def",i.context){if(e(i.localVars))return;i.localVars={name:t,next:i.localVars}}else{if(e(i.globalVars))return;n.globalVars&&(i.globalVars={name:t,next:i.globalVars})}}function m(){zt.state.context={prev:zt.state.context,vars:zt.state.localVars},zt.state.localVars=Ht}function v(){zt.state.localVars=zt.state.context.vars,zt.state.context=zt.state.context.prev}function y(t,e){var n=function(){var n=zt.state,i=n.indented;if("stat"==n.lexical.type)i=n.lexical.indented;else for(var r=n.lexical;r&&")"==r.type&&r.align;r=r.prev)i=r.indented;n.lexical=new u(i,zt.stream.column(),t,null,n.lexical,e)};return n.lex=!0,n}function b(){var t=zt.state;t.lexical.prev&&(")"==t.lexical.type&&(t.indented=t.lexical.indented),t.lexical=t.lexical.prev)}function x(t){function e(n){return n==t?p():";"==t?f():p(e)}return e}function w(t,e){return"var"==t?p(y("vardef",e.length),J,x(";"),b):"keyword a"==t?p(y("form"),S,w,b):"keyword b"==t?p(y("form"),w,b):"keyword d"==t?zt.stream.match(/^\s*$/,!1)?p():p(y("stat"),M,x(";"),b):"debugger"==t?p(x(";")):"{"==t?p(y("}"),B,b):";"==t?p():"if"==t?("else"==zt.state.lexical.info&&zt.state.cc[zt.state.cc.length-1]==b&&zt.state.cc.pop()(),p(y("form"),S,w,b,nt)):"function"==t?p(lt):"for"==t?p(y("form"),it,w,b):"variable"==t?Ot&&"type"==e?(zt.marked="keyword",p(U,x("operator"),U,x(";"))):Ot&&"declare"==e?(zt.marked="keyword",p(w)):p(y("stat"),F):"switch"==t?p(y("form"),S,x("{"),y("}","switch"),B,b,b):"case"==t?p(C,x(":")):"default"==t?p(x(":")):"catch"==t?p(y("form"),m,x("("),ct,x(")"),w,b,v):"class"==t?p(y("form"),ht,b):"export"==t?p(y("stat"),gt,b):"import"==t?p(y("stat"),vt,b):"module"==t?p(y("form"),Z,x("{"),y("}"),B,b,b):"async"==t?p(w):"@"==e?p(C,w):f(y("stat"),C,x(";"),b)}function C(t){return T(t,!1)}function k(t){return T(t,!0)}function S(t){return"("!=t?f():p(y(")"),C,x(")"),b)}function T(t,e){if(zt.state.fatArrowAt==zt.stream.start){var n=e?N:O;if("("==t)return p(m,y(")"),V(ct,")"),b,x("=>"),n,v);if("variable"==t)return f(m,Z,x("=>"),n,v)}var i=e?P:E;return $t.hasOwnProperty(t)?p(i):"function"==t?p(lt,i):"class"==t?p(y("form"),ut,b):"keyword c"==t||"async"==t?p(e?k:C):"("==t?p(y(")"),M,x(")"),b,i):"operator"==t||"spread"==t?p(e?k:C):"["==t?p(y("]"),Ct,b,i):"{"==t?j(z,"}",null,i):"quasi"==t?f(A,i):"new"==t?p(D(e)):p()}function M(t){return t.match(/[;\}\)\],]/)?f():f(C)}function E(t,e){return","==t?p(C):P(t,e,!1)}function P(t,e,n){var i=0==n?E:P,r=0==n?C:k;return"=>"==t?p(m,n?N:O,v):"operator"==t?/\+\+|--/.test(e)||Ot&&"!"==e?p(i):"?"==e?p(C,x(":"),r):p(r):"quasi"==t?f(A,i):";"!=t?"("==t?j(k,")","call",i):"."==t?p($,i):"["==t?p(y("]"),M,x("]"),b,i):Ot&&"as"==e?(zt.marked="keyword",p(U,i)):"regexp"==t?(zt.state.lastType=zt.marked="operator",zt.stream.backUp(zt.stream.pos-zt.stream.start-1),p(r)):void 0:void 0}function A(t,e){return"quasi"!=t?f():"${"!=e.slice(e.length-2)?p(A):p(C,L)}function L(t){if("}"==t)return zt.marked="string-2",zt.state.tokenize=l,p(A)}function O(t){return c(zt.stream,zt.state),f("{"==t?w:C)}function N(t){return c(zt.stream,zt.state),f("{"==t?w:k)}function D(t){return function(e){return"."==e?p(t?_:I):"variable"==e&&Ot?p(X,t?P:E):f(t?k:C)}}function I(t,e){if("target"==e)return zt.marked="keyword",p(E)}function _(t,e){if("target"==e)return zt.marked="keyword",p(P)}function F(t){return":"==t?p(b,w):f(E,x(";"),b)}function $(t){if("variable"==t)return zt.marked="property",p()}function z(t,e){if("async"==t)return zt.marked="property",p(z);if("variable"==t||"keyword"==zt.style){if(zt.marked="property","get"==e||"set"==e)return p(H);var n;return Ot&&zt.state.fatArrowAt==zt.stream.start&&(n=zt.stream.match(/^\s*:\s*/,!1))&&(zt.state.fatArrowAt=zt.stream.pos+n[0].length),p(R)}return"number"==t||"string"==t?(zt.marked=At?"property":zt.style+" property",p(R)):"jsonld-keyword"==t?p(R):"modifier"==t?p(z):"["==t?p(C,x("]"),R):"spread"==t?p(k,R):"*"==e?(zt.marked="keyword",p(z)):":"==t?f(R):void 0}function H(t){return"variable"!=t?f(R):(zt.marked="property",p(lt))}function R(t){return":"==t?p(k):"("==t?f(lt):void 0}function V(t,e,n){function i(r,o){if(n?n.indexOf(r)>-1:","==r){var s=zt.state.lexical;return"call"==s.info&&(s.pos=(s.pos||0)+1),p(function(n,i){return n==e||i==e?f():f(t)},i)}return r==e||o==e?p():p(x(e))}return function(n,r){return n==e||r==e?p():f(t,i)}}function j(t,e,n){for(var i=3;i"==t)return p(U)}function K(t,e){return"variable"==t||"keyword"==zt.style?(zt.marked="property",p(K)):"?"==e?p(K):":"==t?p(U):"["==t?p(C,W,x("]"),K):void 0}function G(t){return"variable"==t?p(G):":"==t?p(U):void 0}function Y(t,e){return"<"==e?p(y(">"),V(U,">"),b,Y):"|"==e||"."==t?p(U):"["==t?p(x("]"),Y):"extends"==e?p(U):void 0}function X(t,e){if("<"==e)return p(y(">"),V(U,">"),b,Y)}function J(){return f(Z,W,tt,et)}function Z(t,e){return"modifier"==t?p(Z):"variable"==t?(g(e),p()):"spread"==t?p(Z):"["==t?j(Z,"]"):"{"==t?j(Q,"}"):void 0}function Q(t,e){return"variable"!=t||zt.stream.match(/^\s*:/,!1)?("variable"==t&&(zt.marked="property"),"spread"==t?p(Z):"}"==t?f():p(x(":"),Z,tt)):(g(e),p(tt))}function tt(t,e){if("="==e)return p(k)}function et(t){if(","==t)return p(J)}function nt(t,e){if("keyword b"==t&&"else"==e)return p(y("form","else"),w,b)}function it(t){if("("==t)return p(y(")"),rt,x(")"),b)}function rt(t){return"var"==t?p(J,x(";"),st):";"==t?p(st):"variable"==t?p(ot):f(C,x(";"),st)}function ot(t,e){return"in"==e||"of"==e?(zt.marked="keyword",p(C)):p(E,st)}function st(t,e){return";"==t?p(at):"in"==e||"of"==e?(zt.marked="keyword",p(C)):f(C,x(";"),at)}function at(t){")"!=t&&p(C)}function lt(t,e){return"*"==e?(zt.marked="keyword",p(lt)):"variable"==t?(g(e),p(lt)):"("==t?p(m,y(")"),V(ct,")"),b,W,w,v):Ot&&"<"==e?p(y(">"),V(U,">"),b,lt):void 0}function ct(t,e){return"@"==e&&p(C,ct),"spread"==t||"modifier"==t?p(ct):f(Z,W,tt)}function ut(t,e){return"variable"==t?ht(t,e):dt(t,e)}function ht(t,e){if("variable"==t)return g(e),p(dt)}function dt(t,e){return"<"==e?p(y(">"),V(U,">"),b,dt):"extends"==e||"implements"==e||Ot&&","==t?p(Ot?U:C,dt):"{"==t?p(y("}"),ft,b):void 0}function ft(t,e){return"modifier"==t||"async"==t||"variable"==t&&("static"==e||"get"==e||"set"==e)&&zt.stream.match(/^\s+[\w$\xa1-\uffff]/,!1)?(zt.marked="keyword",p(ft)):"variable"==t||"keyword"==zt.style?(zt.marked="property",p(Ot?pt:lt,ft)):"["==t?p(C,x("]"),Ot?pt:lt,ft):"*"==e?(zt.marked="keyword",p(ft)):";"==t?p(ft):"}"==t?p():"@"==e?p(C,ft):void 0}function pt(t,e){return"?"==e?p(pt):":"==t?p(U,tt):"="==e?p(k):f(lt)}function gt(t,e){return"*"==e?(zt.marked="keyword",p(wt,x(";"))):"default"==e?(zt.marked="keyword",p(C,x(";"))):"{"==t?p(V(mt,"}"),wt,x(";")):f(w)}function mt(t,e){return"as"==e?(zt.marked="keyword",p(x("variable"))):"variable"==t?f(k,mt):void 0}function vt(t){return"string"==t?p():f(yt,bt,wt)}function yt(t,e){return"{"==t?j(yt,"}"):("variable"==t&&g(e),"*"==e&&(zt.marked="keyword"),p(xt))}function bt(t){if(","==t)return p(yt,bt)}function xt(t,e){if("as"==e)return zt.marked="keyword",p(yt)}function wt(t,e){if("from"==e)return zt.marked="keyword",p(C)}function Ct(t){return"]"==t?p():f(V(k,"]"))}function kt(t,e){return"operator"==t.lastType||","==t.lastType||It.test(e.charAt(0))||/[,.]/.test(e.charAt(0))}function St(t,e,n){return e.tokenize==o&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(e.lastType)||"quasi"==e.lastType&&/\{\s*$/.test(t.string.slice(0,t.pos-(n||0)))}var Tt,Mt,Et=e.indentUnit,Pt=n.statementIndent,At=n.jsonld,Lt=n.json||At,Ot=n.typescript,Nt=n.wordCharacters||/[\w$\xa1-\uffff]/,Dt=function(){function t(t){return{type:t,style:"keyword"}}var e=t("keyword a"),n=t("keyword b"),i=t("keyword c"),r=t("keyword d"),o=t("operator"),s={type:"atom",style:"atom"},a={if:t("if"),while:e,with:e,else:n,do:n,try:n,finally:n,return:r,break:r,continue:r,new:t("new"),delete:i,void:i,throw:i,debugger:t("debugger"),var:t("var"),const:t("var"),let:t("var"),function:t("function"),catch:t("catch"),for:t("for"),switch:t("switch"),case:t("case"),default:t("default"),in:o,typeof:o,instanceof:o,true:s,false:s,null:s,undefined:s,NaN:s,Infinity:s,this:t("this"),class:t("class"),super:t("atom"),yield:i,export:t("export"),import:t("import"),extends:i,await:i};if(Ot){var l={type:"variable",style:"type"},c={interface:t("class"),implements:i,namespace:i,module:t("module"),enum:t("module"),public:t("modifier"),private:t("modifier"),protected:t("modifier"),abstract:t("modifier"),readonly:t("modifier"),string:l,number:l,boolean:l,any:l};for(var u in c)a[u]=c[u]}return a}(),It=/[+\-*&%=<>!?|~^@]/,_t=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/,Ft="([{}])",$t={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,"jsonld-keyword":!0},zt={state:null,column:null,marked:null,cc:null},Ht={name:"this",next:{name:"arguments"}};return b.lex=!0,{startState:function(t){var e={tokenize:o,lastType:"sof",cc:[],lexical:new u((t||0)-Et,0,"block",!1),localVars:n.localVars,context:n.localVars&&{vars:n.localVars},indented:t||0};return n.globalVars&&"object"==typeof n.globalVars&&(e.globalVars=n.globalVars),e},token:function(t,e){if(t.sol()&&(e.lexical.hasOwnProperty("align")||(e.lexical.align=!1),e.indented=t.indentation(),c(t,e)),e.tokenize!=a&&t.eatSpace())return null;var n=e.tokenize(t,e);return"comment"==Tt?n:(e.lastType="operator"!=Tt||"++"!=Mt&&"--"!=Mt?Tt:"incdec",d(e,n,Tt,Mt,t))},indent:function(e,i){if(e.tokenize==a)return t.Pass;if(e.tokenize!=o)return 0;var r,s=i&&i.charAt(0),l=e.lexical;if(!/^\s*else\b/.test(i))for(var c=e.cc.length-1;c>=0;--c){var u=e.cc[c];if(u==b)l=l.prev;else if(u!=nt)break}for(;("stat"==l.type||"form"==l.type)&&("}"==s||(r=e.cc[e.cc.length-1])&&(r==E||r==P)&&!/^[,\.=+\-*:?[\(]/.test(i));)l=l.prev;Pt&&")"==l.type&&"stat"==l.prev.type&&(l=l.prev);var h=l.type,d=s==h;return"vardef"==h?l.indented+("operator"==e.lastType||","==e.lastType?l.info+1:0):"form"==h&&"{"==s?l.indented:"form"==h?l.indented+Et:"stat"==h?l.indented+(kt(e,i)?Pt||Et:0):"switch"!=l.info||d||0==n.doubleIndentSwitch?l.align?l.column+(d?0:1):l.indented+(d?0:Et):l.indented+(/^(?:case|default)\b/.test(i)?Et:2*Et)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:Lt?null:"/*",blockCommentEnd:Lt?null:"*/",blockCommentContinue:Lt?null:" * ",lineComment:Lt?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:Lt?"json":"javascript",jsonldMode:At,jsonMode:Lt,expressionAllowed:St,skipExpression:function(t){var e=t.cc[t.cc.length-1];e!=C&&e!=k||t.cc.pop()}}}),t.registerHelper("wordChars","javascript",/[\w$]/),t.defineMIME("text/javascript","javascript"),t.defineMIME("text/ecmascript","javascript"),t.defineMIME("application/javascript","javascript"),t.defineMIME("application/x-javascript","javascript"),t.defineMIME("application/ecmascript","javascript"),t.defineMIME("application/json",{name:"javascript",json:!0}),t.defineMIME("application/x-json",{name:"javascript",json:!0}),t.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),t.defineMIME("text/typescript",{name:"javascript",typescript:!0}),t.defineMIME("application/typescript",{name:"javascript",typescript:!0})})},function(t,e,n){!function(t){t(n(6))}(function(t){t.extendMode("css",{commentStart:"/*",commentEnd:"*/",newlineAfterToken:function(t,e){return/^[;{}]$/.test(e)}}),t.extendMode("javascript",{commentStart:"/*",commentEnd:"*/",newlineAfterToken:function(t,e,n,i){return this.jsonMode?/^[\[,{]$/.test(e)||/^}/.test(n):(";"!=e||!i.lexical||")"!=i.lexical.type)&&(/^[;{}]$/.test(e)&&!/^;/.test(n))}});var e=/^(a|abbr|acronym|area|base|bdo|big|br|button|caption|cite|code|col|colgroup|dd|del|dfn|em|frame|hr|iframe|img|input|ins|kbd|label|legend|link|map|object|optgroup|option|param|q|samp|script|select|small|span|strong|sub|sup|textarea|tt|var)$/;t.extendMode("xml",{commentStart:"\x3c!--",commentEnd:"--\x3e",newlineAfterToken:function(t,n,i,r){var o=!1;return"html"==this.configuration&&(o=!!r.context&&e.test(r.context.tagName)),!o&&("tag"==t&&/>$/.test(n)&&r.context||/^-1&&a>-1&&a>s&&(t=t.substr(0,s)+t.substring(s+o.commentStart.length,a)+t.substr(a+o.commentEnd.length)),r.replaceRange(t,n,i)}})}),t.defineExtension("autoIndentRange",function(t,e){var n=this;this.operation(function(){for(var i=t.line;i<=e.line;i++)n.indentLine(i,"smart")})}),t.defineExtension("autoFormatRange",function(e,n){function i(){c+="\n",h=!0,++u}for(var r=this,o=r.getMode(),s=r.getRange(e,n).split("\n"),a=t.copyState(o,r.getTokenAt(e).state),l=r.getOption("tabSize"),c="",u=0,h=0===e.ch,d=0;d\n \t
<%= label %>
\n \t
\n '),initialize:function(t){this.config=t.config||{},this.pfx=this.config.stylePrefix},render:function(){var t=this.model.toJSON();return t.pfx=this.pfx,this.$el.html(this.template(t)),this.$el.attr("class",this.pfx+"editor-c"),this.$el.find("#"+this.pfx+"code").append(this.model.get("input")),this}})}).call(e,n(1))},function(t,e,n){"use strict";t.exports=function(){var t,e,i={},r=n(103),o=n(25),s=n(105),a=(n(27),n(107));return{name:"Panels",init:function(n){i=n||{};for(var o in r)o in i||(i[o]=r[o]);var l=i.pStylePrefix;return l&&(i.stylePrefix=l+i.stylePrefix),t=new s(i.defaults),e=new a({collection:t,config:i}),this},getPanels:function(){return t},getPanelsEl:function(){return e.el},addPanel:function(e){return t.add(e)},getPanel:function(e){var n=t.where({id:e});return n.length?n[0]:null},addButton:function(t,e){var n=this.getPanel(t);return n?n.get("buttons").add(e):null},getButton:function(t,e){var n=this.getPanel(t);if(n){var i=n.get("buttons").where({id:e});return i.length?i[0]:null}return null},render:function(){return e.render().el},active:function(){this.getPanels().each(function(t){t.get("buttons").each(function(t){t.get("active")&&t.trigger("updateActive")})})},disableButtons:function(){this.getPanels().each(function(t){t.get("buttons").each(function(t){t.get("disable")&&t.trigger("change:disable")})})},Panel:o}}},function(t,e,n){"use strict";var i="sw-visibility",r="export-template",o="open-layers",s="open-blocks",a="fullscreen",l="preview";t.exports={stylePrefix:"pn-",defaults:[{id:"commands",buttons:[{}]},{id:"options",buttons:[{active:!0,id:i,className:"fa fa-square-o",command:i,context:i,attributes:{title:"View components"}},{id:l,className:"fa fa-eye",command:l,context:l,attributes:{title:"Preview"}},{id:a,className:"fa fa-arrows-alt",command:a,context:a,attributes:{title:"Fullscreen"}},{id:r,className:"fa fa-code",command:r,attributes:{title:"View code"}}]},{id:"views",buttons:[{id:"open-sm",className:"fa fa-paint-brush",command:"open-sm",active:!0,attributes:{title:"Open Style Manager"}},{id:"open-tm",className:"fa fa-cog",command:"open-tm",attributes:{title:"Settings"}},{id:o,className:"fa fa-bars",command:o,attributes:{title:"Open Layer Manager"}},{id:s,className:"fa fa-th-large",command:s,attributes:{title:"Open Blocks"}}]}],em:null,delayBtnsShow:300}},function(t,e,n){"use strict";var i=n(0);t.exports=i.Model.extend({defaults:{id:"",className:"",command:"",context:"",buttons:[],attributes:{},options:{},active:!1,dragDrop:!1,runDefaultCommand:!0,stopDefaultCommand:!1,disable:!1},initialize:function(t){if(this.get("buttons").length){var e=n(26);this.set("buttons",new e(this.get("buttons")))}}})},function(t,e,n){"use strict";var i=n(0),r=n(25);t.exports=i.Collection.extend({model:r})},function(t,e,n){"use strict";(function(e,i){var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o=e.$;t.exports=e.View.extend({tagName:"span",initialize:function(t){i.bindAll(this,"startTimer","stopTimer","showButtons","hideButtons","closeOnKeyPress","onDrop","initSorter","stopDrag");var e=this.model.get("className");this.config=t.config||{},this.em=this.config.em||{},this.pfx=this.config.stylePrefix||"",this.ppfx=this.config.pStylePrefix||"",this.id=this.pfx+this.model.get("id"),this.activeCls=this.pfx+"active",this.disableCls=this.pfx+"active",this.btnsVisCls=this.pfx+"visible",this.parentM=t.parentM||null,this.className=this.pfx+"btn"+(e?" "+e:""),this.listenTo(this.model,"change:active updateActive",this.updateActive),this.listenTo(this.model,"checkActive",this.checkActive),this.listenTo(this.model,"change:bntsVis",this.updateBtnsVis),this.listenTo(this.model,"change:attributes",this.updateAttributes),this.listenTo(this.model,"change:className",this.updateClassName),this.listenTo(this.model,"change:disable",this.updateDisable),this.model.get("buttons").length&&(this.$el.on("mousedown",this.startTimer),this.$el.append(o("
",{class:this.pfx+"arrow-rd"}))),this.em&&this.em.get&&(this.commands=this.em.get("Commands")),this.events={},this.model.get("dragDrop")?(this.events.mousedown="initDrag",this.em.on("loaded",this.initSorter)):this.events.click="clicked",this.delegateEvents()},initSorter:function(){if(this.em.Canvas){var t=this.em.Canvas;this.canvasEl=t.getBody(),this.sorter=new this.em.Utils.Sorter({container:this.canvasEl,placer:t.getPlacerEl(),containerSel:"*",itemSel:"*",pfx:this.ppfx,onMove:this.onDrag,onEndMove:this.onDrop,document:t.getFrameEl().contentDocument,direction:"a",wmargin:1,nested:1});var e=t.getOffset();this.sorter.offTop=e.top,this.sorter.offLeft=e.left}},initDrag:function(){this.model.collection.deactivateAll(this.model.get("context")),this.sorter.startSort(this.el),this.sorter.setDropContent(this.model.get("options").content),this.canvasEl.style.cursor="grabbing",o(document).on("mouseup",this.stopDrag)},stopDrag:function(){o(document).off("mouseup",this.stopDrag),this.sorter.endMove()},onDrag:function(t){},onDrop:function(t){this.canvasEl.style.cursor="default"},updateClassName:function(){var t=this.model.get("className");this.$el.attr("class",this.pfx+"btn"+(t?" "+t:""))},updateAttributes:function(){this.$el.attr(this.model.get("attributes"))},updateBtnsVis:function(){this.$buttons&&(this.model.get("bntsVis")?this.$buttons.addClass(this.btnsVisCls):this.$buttons.removeClass(this.btnsVisCls))},startTimer:function(){this.timeout=setTimeout(this.showButtons,this.config.delayBtnsShow),o(document).on("mouseup",this.stopTimer)},stopTimer:function(){o(document).off("mouseup",this.stopTimer),this.timeout&&clearTimeout(this.timeout)},showButtons:function(){clearTimeout(this.timeout),this.model.set("bntsVis",!0),o(document).on("mousedown",this.hideButtons),o(document).on("keypress",this.closeOnKeyPress)},hideButtons:function(t){t&&o(t.target).trigger("click"),this.model.set("bntsVis",!1),o(document).off("mousedown",this.hideButtons),o(document).off("keypress",this.closeOnKeyPress)},closeOnKeyPress:function(t){27==(t.which||t.keyCode)&&this.hideButtons()},updateActive:function(){var t=null,e=this.em&&this.em.get?this.em.get("Editor"):null,n=this.model.get("command");this.commands&&"string"==typeof n?t=this.commands.get(n):null!==n&&"object"===(void 0===n?"undefined":r(n))?t=n:"function"==typeof n&&(t={run:n}),this.model.get("active")?(this.model.collection.deactivateAll(this.model.get("context")),this.model.set("active",!0,{silent:!0}).trigger("checkActive"),this.parentM&&this.parentM.set("active",!0,{silent:!0}).trigger("checkActive"),t&&t.run&&(t.run(e,this.model,this.model.get("options")),e.trigger("run:"+n))):(this.$el.removeClass(this.activeCls),this.model.collection.deactivateAll(this.model.get("context")),this.parentM&&this.parentM.set("active",!1,{silent:!0}).trigger("checkActive"),t&&t.stop&&(t.stop(e,this.model,this.model.get("options")),e.trigger("stop:"+n)))},updateDisable:function(){this.model.get("disable")?this.$el.addClass(this.disableCls):this.$el.removeClass(this.disableCls)},checkActive:function(){this.model.get("active")?this.$el.addClass(this.activeCls):this.$el.removeClass(this.activeCls)},clicked:function(t){this.model.get("bntsVis")||this.model.get("disable")||this.toogleActive()},toogleActive:function(){this.parentM&&this.swapParent();var t=this.model.get("active");this.model.set("active",!t);this.em.get("Commands").get("select-comp");t?this.model.get("runDefaultCommand")&&this.em.runDefault():this.model.get("stopDefaultCommand")&&this.em.stopDefault()},swapParent:function(){this.parentM.collection.deactivateAll(this.model.get("context")),this.parentM.set("attributes",this.model.get("attributes")),this.parentM.set("options",this.model.get("options")),this.parentM.set("command",this.model.get("command")),this.parentM.set("className",this.model.get("className")),this.parentM.set("active",!0,{silent:!0}).trigger("checkActive")},render:function(){if(this.updateAttributes(),this.$el.attr("class",this.className),this.model.get("buttons").length){var t=n(28),e=new t({collection:this.model.get("buttons"),config:this.config,parentM:this.model});this.$buttons=e.render().$el,this.$buttons.append(o("
",{class:this.pfx+"arrow-l"})),this.$el.append(this.$buttons)}return this}})}).call(e,n(0),n(1))},function(t,e,n){"use strict";var i=n(0),r=n(27);t.exports=i.View.extend({initialize:function(t){this.opt=t||{},this.config=this.opt.config||{},this.pfx=this.config.stylePrefix||"",this.listenTo(this.collection,"add",this.addTo),this.listenTo(this.collection,"reset",this.render),this.className=this.pfx+"panels"},addTo:function(t){this.addToCollection(t)},addToCollection:function(t,e){var n=e||null,i=new r({model:t,config:this.config}),o=i.render().el,s=t.get("appendTo");if(s){document.querySelector(s).appendChild(o)}else n?n.appendChild(o):this.$el.append(o);return i.initResize(),o},render:function(){var t=document.createDocumentFragment();return this.$el.empty(),this.collection.each(function(e){this.addToCollection(e,t)},this),this.$el.append(t),this.$el.attr("class",this.className),this}})},function(t,e,n){"use strict";var i=n(109),r=function(t){return t&&t.__esModule?t:{default:t}}(i),o=n(2);t.exports=function(){var t={},e=n(110),i=void 0,s=void 0,a=void 0,l=void 0,c=function(){var t=i.style;t.top="-100px",t.left="-100px",t.display="none"};return{customRte:null,name:"RichTextEditor",init:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t=n;for(var r in e)r in t||(t[r]=e[r]);var a=t.pStylePrefix;return a&&(t.stylePrefix=a+t.stylePrefix),this.pfx=t.stylePrefix,s=t.actions||[],i=document.createElement("div"),i.className=a+"rte-toolbar",l=this.initRte(document.createElement("div")),(0,o.on)(i,"mousedown",function(t){return t.stopPropagation()}),this},postRender:function(t){var e=t.model.get("Canvas");i.style.pointerEvents="all",c(),e.getToolsEl().appendChild(i)},initRte:function(e){var n=this.pfx,o=i,s=this.actionbar,a=this.actions||t.actions,c={actionbar:n+"actionbar",button:n+"action",active:n+"active"},u=new r.default({el:e,classes:c,actions:a,actionbar:s,actionbarContainer:o});return l&&l.setEl(e),u.actionbar&&(this.actionbar=u.actionbar),u.actions&&(this.actions=u.actions),u},add:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e.name=t,l.addAction(e,{sync:1})},get:function(t){var e=void 0;return l.getActions().forEach(function(n){n.name==t&&(e=n)}),e},getAll:function(){return l.getActions()},remove:function(t){var e=this.getAll(),n=this.get(t);if(n){var i=n.btn,r=e.indexOf(n);i.parentNode.removeChild(i),e.splice(r,1)}return n},getToolbarEl:function(){return i},udpatePosition:function(){var e=t.em.get("Canvas"),n=e.getTargetToElementDim(i,a,{event:"rteToolbarPosUpdate"});t.adjustToolbar&&n.top<=n.canvasTop&&(n.top=n.elementTop+n.elementHeight);var r=i.style;r.top=n.top+"px",r.left=n.left+"px"},enable:function(e,n){a=e.el;var r=t.em,o=e.getChildrenContainer(),s=this.customRte;if(i.style.display="",n=s?s.enable(o,n):this.initRte(o).enable(),r){setTimeout(this.udpatePosition.bind(this),0);var l="change:canvasOffset canvasScroll";r.off(l,this.udpatePosition,this),r.on(l,this.udpatePosition,this),r.trigger("rte:enable",e,n)}return n},disable:function(e,n){var i=t.em,r=this.customRte,o=e.getChildrenContainer();r?r.disable(o,n):n.disable(),c(),i&&i.trigger("rte:disable",e,n)}}}},function(t,e,n){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var r=Object.assign||function(t){for(var e=1;eB",attributes:{title:"Bold"},result:function(t){return t.exec("bold")}},italic:{name:"italic",icon:"I",attributes:{title:"Italic"},result:function(t){return t.exec("italic")}},underline:{name:"underline",icon:"U",attributes:{title:"Underline"},result:function(t){return t.exec("underline")}},strikethrough:{name:"strikethrough",icon:"S",attributes:{title:"Strike-through"},result:function(t){return t.exec("strikeThrough")}},link:{icon:'⫘',name:"link",attributes:{style:"font-size:1.4rem;padding:0 4px 2px;",title:"Link"},result:function(t){return t.insertHTML(''+t.selection()+"")}}},c=function(){function t(){var e=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};i(this,t);var o=n.el;if(o[a])return o[a];o[a]=this,this.setEl(o),this.updateActiveActions=this.updateActiveActions.bind(this);var s=n.actions||[];s.forEach(function(t,e){"string"==typeof t?t=l[t]:l[t.name]&&(t=r({},l[t.name],t)),s[e]=t});var c=s.length?s:Object.keys(l).map(function(t){return l[t]});n.classes=r({actionbar:"actionbar",button:"action",active:"active"},n.classes);var u=n.classes,h=n.actionbar;if(this.actionbar=h,this.settings=n,this.classes=u,this.actions=c,!h){var d=n.actionbarContainer;h=document.createElement("div"),h.className=u.actionbar,d.appendChild(h),this.actionbar=h,c.forEach(function(t){return e.addAction(t)})}return n.styleWithCSS&&this.exec("styleWithCSS"),this.syncActions(),this}return o(t,[{key:"setEl",value:function(t){this.el=t,this.doc=t.ownerDocument}},{key:"updateActiveActions",value:function(){var t=this;this.getActions().forEach(function(e){var n=e.btn,i=e.update,r=t.classes.active,o=e.name,s=t.doc;n.className=n.className.replace(r,"").trim(),s.queryCommandState(o)&&(n.className+=" "+r),i&&i(t,e)})}},{key:"enable",value:function(){return this.enabled?this:(this.actionbarEl().style.display="",this.el.contentEditable=!0,(0,s.on)(this.el,"mouseup keyup",this.updateActiveActions),this.syncActions(),this.updateActiveActions(),this.el.focus(),this.enabled=1,this)}},{key:"disable",value:function(){return this.actionbarEl().style.display="none",this.el.contentEditable=!1,(0,s.off)(this.el,"mouseup keyup",this.updateActiveActions),this.enabled=0,this}},{key:"syncActions",value:function(){var t=this;this.getActions().forEach(function(e){var n=e.event||"click";e.btn["on"+n]=function(n){e.result(t,e),t.updateActiveActions()}})}},{key:"addAction",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.sync,i=document.createElement("span"),r=t.icon,o=t.attributes||{};i.className=this.classes.button,t.btn=i;for(var s in o)i.setAttribute(s,o[s]);"string"==typeof r?i.innerHTML=r:i.appendChild(r),this.actionbarEl().appendChild(i),n&&(this.actions.push(t),this.syncActions())}},{key:"getActions",value:function(){return this.actions}},{key:"selection",value:function(){return this.doc.getSelection()}},{key:"exec",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;this.doc.execCommand(t,!1,e)}},{key:"actionbarEl",value:function(){return this.actionbar}},{key:"insertHTML",value:function(t){var e=void 0,n=this.doc,i=n.getSelection();if(i&&i.rangeCount){var r=n.createElement("div"),o=i.getRangeAt(0);o.deleteContents(),r.innerHTML=t,Array.prototype.slice.call(r.childNodes).forEach(function(t){o.insertNode(t),e=t}),i.removeAllRanges(),i.addRange(o),this.el.focus()}}}]),t}();e.default=c},function(t,e,n){"use strict";t.exports={stylePrefix:"rte-",adjustToolbar:1,actions:["bold","italic","underline","strikethrough","link"]}},function(t,e,n){"use strict";t.exports={stylePrefix:"sm-",sectors:[],textNoElement:"Select an element before using Style Manager",hideNotStylable:!0,highlightChanged:!0,highlightComputed:!0,showComputed:!0,clearProperties:!1,avoidComputed:["width","height"]}},function(t,e,n){"use strict";var i=n(113);t.exports=n(0).Collection.extend({model:i})},function(t,e,n){"use strict";(function(e){var i=n(0),r=n(10),o=n(122);t.exports=i.Model.extend({defaults:{id:"",name:"",open:!0,buildProps:"",extendBuilded:1,properties:[]},initialize:function(t){var e=t||{},n=[],i=this.buildProperties(e.buildProps);this.get("id")||this.set("id",this.get("name")),n=i?this.extendProperties(i):this.get("properties");var o=new r(n);o.sector=this,this.set("properties",o)},extendProperties:function(t,n,i){for(var r=t.length,o=n||this.get("properties"),s=this.get("extendBuilded"),a=[],l=0,c=o.length;l')}else{o.push(t("
").append(t('').attr("title",r.noColorSelectedText)).html())}}return"
"+o.join("")+"
"}function r(){for(var t=0;t1&&(delete window.localStorage[B],t.each(e,function(t,e){p(e)}))}catch(t){}try{mt=window.localStorage[B].split(";")}catch(t){}}}function p(e){if(j){var n=st(e).toRgbString();if(!gt[n]&&-1===t.inArray(n,mt))for(mt.push(n);mt.length>vt;)mt.shift();if(B&&window.localStorage)try{window.localStorage[B]=mt.join(";")}catch(t){}}}function g(){var t=[];if(R.showPalette)for(var e=0;eMath.abs(e-r);bt=o?"x":"y"}}else bt=null;var s=!bt||"x"===bt,a=!bt||"y"===bt;s&&(ut=parseFloat(t/tt)),a&&(ht=parseFloat((et-e)/et)),Yt=!1,R.showAlpha||(dt=1),L()},y,b),Ut?(E(Ut),O(),Kt=R.preferredFormat||st(Ut).format,p(Ut)):O(),V&&C();var i=G?"mousedown.spectrum":"click.spectrum touchstart.spectrum";Dt.delegate(".sp-thumb-el",i,e),It.delegate(".sp-thumb-el:nth-child(1)",i,{ignore:!0},e)}();var Jt={show:C,hide:T,toggle:w,reflow:I,option:F,enable:$,disable:z,offset:H,set:function(t){E(t),D()},get:P,destroy:_,container:kt};return Jt.id=K.push(Jt)-1,Jt}function a(e,n){var i=e.outerWidth(),r=e.outerHeight(),o=n.outerHeight(),s=e[0].ownerDocument,a=s.documentElement,l=a.clientWidth,c=a.clientHeight,u=t(s).scrollLeft(),h=t(s).scrollTop(),d=l+u,f=c+h,p=n.offset();return p.top+=o,p.left-=Math.min(p.left,p.left+i>d&&d>i?Math.abs(p.left+i-d):0),p.top-=Math.min(p.top,p.top+r>f&&f>r?Math.abs(r+o-0):0),p}function l(){}function c(t){t.stopPropagation()}function u(t,e){var n=Array.prototype.slice,i=n.call(arguments,2);return function(){return t.apply(e,i.concat(n.call(arguments)))}}function h(e,n,i,r){function o(t){t.stopPropagation&&t.stopPropagation(),t.preventDefault&&t.preventDefault(),t.returnValue=!1}function s(t){if(u){if(G&&c.documentMode<9&&!t.button)return l();var i=t.originalEvent&&t.originalEvent.touches&&t.originalEvent.touches[0],r=i&&i.pageX||t.pageX,s=i&&i.pageY||t.pageY,a=Math.max(0,Math.min(r-h.left,f)),g=Math.max(0,Math.min(s-h.top,d));p&&o(t),n.apply(e,[a,g,t])}}function a(n){(n.which?3==n.which:2==n.button)||u||!1!==i.apply(e,arguments)&&(u=!0,d=t(e).height(),f=t(e).width(),h=t(e).offset(),t(c).bind(g),t(c.body).addClass("sp-dragging"),s(n),o(n))}function l(){u&&(t(c).unbind(g),t(c.body).removeClass("sp-dragging"),setTimeout(function(){r.apply(e,arguments)},0)),u=!1}n=n||function(){},i=i||function(){},r=r||function(){};var c=document,u=!1,h={},d=0,f=0,p="ontouchstart"in window,g={};g.selectstart=o,g.dragstart=o,g["touchmove mousemove"]=s,g["touchend mouseup"]=l,t(e).bind("touchstart mousedown",a)}function d(t,e,n){var i;return function(){var r=this,o=arguments,s=function(){i=null,t.apply(r,o)};n&&clearTimeout(i),!n&&i||(i=setTimeout(s,e))}}function f(){return t.fn.spectrum.inputTypeColorSupport()}function p(t){var n={r:0,g:0,b:0},i=1,r=!1,o=!1;return"string"==typeof t&&(t=U(t)),"object"==(void 0===t?"undefined":e(t))&&(t.hasOwnProperty("r")&&t.hasOwnProperty("g")&&t.hasOwnProperty("b")?(n=g(t.r,t.g,t.b),r=!0,o="%"===String(t.r).substr(-1)?"prgb":"rgb"):t.hasOwnProperty("h")&&t.hasOwnProperty("s")&&t.hasOwnProperty("v")?(t.s=j(t.s),t.v=j(t.v),n=b(t.h,t.s,t.v),r=!0,o="hsv"):t.hasOwnProperty("h")&&t.hasOwnProperty("s")&&t.hasOwnProperty("l")&&(t.s=j(t.s),t.l=j(t.l),n=v(t.h,t.s,t.l),r=!0,o="hsl"),t.hasOwnProperty("a")&&(i=t.a)),i=_(i),{ok:r,format:t.format||o,r:it(255,rt(n.r,0)),g:it(255,rt(n.g,0)),b:it(255,rt(n.b,0)),a:i}}function g(t,e,n){return{r:255*F(t,255),g:255*F(e,255),b:255*F(n,255)}}function m(t,e,n){t=F(t,255),e=F(e,255),n=F(n,255);var i,r,o=rt(t,e,n),s=it(t,e,n),a=(o+s)/2;if(o==s)i=r=0;else{var l=o-s;switch(r=a>.5?l/(2-o-s):l/(o+s),o){case t:i=(e-n)/l+(e1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+(e-t)*(2/3-n)*6:t}var r,o,s;if(t=F(t,360),e=F(e,100),n=F(n,100),0===e)r=o=s=n;else{var a=n<.5?n*(1+e):n+e-n*e,l=2*n-a;r=i(l,a,t+1/3),o=i(l,a,t),s=i(l,a,t-1/3)}return{r:255*r,g:255*o,b:255*s}}function y(t,e,n){t=F(t,255),e=F(e,255),n=F(n,255);var i,r,o=rt(t,e,n),s=it(t,e,n),a=o,l=o-s;if(r=0===o?0:l/o,o==s)i=0;else{switch(o){case t:i=(e-n)/l+(e>1)+720)%360;--e;)i.h=(i.h+r)%360,o.push(st(i));return o}function I(t,e){e=e||6;for(var n=st(t).toHsv(),i=n.h,r=n.s,o=n.v,s=[],a=1/e;e--;)s.push(st({h:i,s:r,v:o})),o=(o+a)%1;return s}function _(t){return t=parseFloat(t),(isNaN(t)||t<0||t>1)&&(t=1),t}function F(t,e){H(t)&&(t="100%");var n=R(t);return t=it(e,rt(0,parseFloat(t))),n&&(t=parseInt(t*e,10)/100),et.abs(t-e)<1e-6?1:t%e/parseFloat(e)}function $(t){return it(1,rt(0,t))}function z(t){return parseInt(t,16)}function H(t){return"string"==typeof t&&-1!=t.indexOf(".")&&1===parseFloat(t)}function R(t){return"string"==typeof t&&-1!=t.indexOf("%")}function V(t){return 1==t.length?"0"+t:""+t}function j(t){return t<=1&&(t=100*t+"%"),t}function B(t){return Math.round(255*parseFloat(t)).toString(16)}function W(t){return z(t)/255}function U(t){t=t.replace(Z,"").replace(Q,"").toLowerCase();var e=!1;if(at[t])t=at[t],e=!0;else if("transparent"==t)return{r:0,g:0,b:0,a:0,format:"name"};var n;return(n=ct.rgb.exec(t))?{r:n[1],g:n[2],b:n[3]}:(n=ct.rgba.exec(t))?{r:n[1],g:n[2],b:n[3],a:n[4]}:(n=ct.hsl.exec(t))?{h:n[1],s:n[2],l:n[3]}:(n=ct.hsla.exec(t))?{h:n[1],s:n[2],l:n[3],a:n[4]}:(n=ct.hsv.exec(t))?{h:n[1],s:n[2],v:n[3]}:(n=ct.hsva.exec(t))?{h:n[1],s:n[2],v:n[3],a:n[4]}:(n=ct.hex8.exec(t))?{a:W(n[1]),r:z(n[2]),g:z(n[3]),b:z(n[4]),format:e?"name":"hex8"}:(n=ct.hex6.exec(t))?{r:z(n[1]),g:z(n[2]),b:z(n[3]),format:e?"name":"hex"}:!!(n=ct.hex3.exec(t))&&{r:z(n[1]+""+n[1]),g:z(n[2]+""+n[2]),b:z(n[3]+""+n[3]),format:e?"name":"hex"}}var q={beforeShow:l,move:l,change:l,show:l,hide:l,color:!1,flat:!1,showInput:!1,allowEmpty:!1,showButtons:!0,clickoutFiresChange:!0,showInitial:!1,showPalette:!1,showPaletteOnly:!1,hideAfterPaletteSelect:!1,togglePaletteOnly:!1,showSelectionPalette:!0,localStorageKey:!1,appendTo:"body",maxSelectionSize:7,cancelText:"cancel",chooseText:"choose",togglePaletteMoreText:"more",togglePaletteLessText:"less",clearText:"Clear Color Selection",noColorSelectedText:"No Color Selected",preferredFormat:!1,className:"",containerClassName:"",replacerClassName:"",showAlpha:!1,theme:"sp-light",palette:[["#ffffff","#000000","#ff0000","#ff8000","#ffff00","#008000","#0000ff","#4b0082","#9400d3"]],selectionPalette:[],disabled:!1,offset:null},K=[],G=!!/msie/i.exec(window.navigator.userAgent),Y=function(){function t(t,e){return!!~(""+t).indexOf(e)}var e=document.createElement("div"),n=e.style;return n.cssText="background-color:rgba(0,0,0,.5)",t(n.backgroundColor,"rgba")||t(n.backgroundColor,"hsla")}(),X=["
","
","
▼
","
"].join(""),J=function(){var t="";if(G)for(var e=1;e<=6;e++)t+="
";return["
","
","
","
","","
","
","
","
","
","
","
","
","
","
","
","
","
","
","
","
","
",t,"
","
","
","
","
","","
","
","
","","","
","
","
"].join("")}();t.fn.spectrum=function(e,n){if("string"==typeof e){var i=this,r=Array.prototype.slice.call(arguments,1);return this.each(function(){var n=K[t(this).data("spectrum.id")];if(n){var o=n[e];if(!o)throw new Error("Spectrum: no such method: '"+e+"'");"get"==e?i=n.get():"container"==e?i=n.container:"option"==e?i=n.option.apply(n,r):"destroy"==e?(n.destroy(),t(this).removeData("spectrum.id")):o.apply(n,r)}}),i}return this.spectrum("destroy").each(function(){var n=t.extend({},e,t(this).data()),i=s(this,n);t(this).data("spectrum.id",i.id)})},t.fn.spectrum.load=!0,t.fn.spectrum.loadOpts={},t.fn.spectrum.draggable=h,t.fn.spectrum.defaults=q,t.fn.spectrum.inputTypeColorSupport=function e(){if(void 0===e._cachedResult){var n=t("")[0];e._cachedResult="color"===n.type&&""!==n.value}return e._cachedResult},t.spectrum={},t.spectrum.localization={},t.spectrum.palettes={},t.fn.spectrum.processNativeColorInputs=function(){var e=t("input[type=color]");e.length&&!f()&&e.spectrum({preferredFormat:"hex6"})};var Z=/^[\s,#]+/,Q=/\s+$/,tt=0,et=Math,nt=et.round,it=et.min,rt=et.max,ot=et.random,st=function t(e,n){if(e=e||"",n=n||{},e instanceof t)return e;if(!(this instanceof t))return new t(e,n);var i=p(e);this._originalInput=e,this._r=i.r,this._g=i.g,this._b=i.b,this._a=i.a,this._roundA=nt(100*this._a)/100,this._format=n.format||i.format,this._gradientType=n.gradientType,this._r<1&&(this._r=nt(this._r)),this._g<1&&(this._g=nt(this._g)),this._b<1&&(this._b=nt(this._b)),this._ok=i.ok,this._tc_id=tt++};st.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var t=this.toRgb();return(299*t.r+587*t.g+114*t.b)/1e3},setAlpha:function(t){return this._a=_(t),this._roundA=nt(100*this._a)/100,this},toHsv:function(){var t=y(this._r,this._g,this._b);return{h:360*t.h,s:t.s,v:t.v,a:this._a}},toHsvString:function(){var t=y(this._r,this._g,this._b),e=nt(360*t.h),n=nt(100*t.s),i=nt(100*t.v);return 1==this._a?"hsv("+e+", "+n+"%, "+i+"%)":"hsva("+e+", "+n+"%, "+i+"%, "+this._roundA+")"},toHsl:function(){var t=m(this._r,this._g,this._b);return{h:360*t.h,s:t.s,l:t.l,a:this._a}},toHslString:function(){var t=m(this._r,this._g,this._b),e=nt(360*t.h),n=nt(100*t.s),i=nt(100*t.l);return 1==this._a?"hsl("+e+", "+n+"%, "+i+"%)":"hsla("+e+", "+n+"%, "+i+"%, "+this._roundA+")"},toHex:function(t){return x(this._r,this._g,this._b,t)},toHexString:function(t){return"#"+this.toHex(t)},toHex8:function(){return w(this._r,this._g,this._b,this._a)},toHex8String:function(){return"#"+this.toHex8()},toRgb:function(){return{r:nt(this._r),g:nt(this._g),b:nt(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+nt(this._r)+", "+nt(this._g)+", "+nt(this._b)+")":"rgba("+nt(this._r)+", "+nt(this._g)+", "+nt(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:nt(100*F(this._r,255))+"%",g:nt(100*F(this._g,255))+"%",b:nt(100*F(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+nt(100*F(this._r,255))+"%, "+nt(100*F(this._g,255))+"%, "+nt(100*F(this._b,255))+"%)":"rgba("+nt(100*F(this._r,255))+"%, "+nt(100*F(this._g,255))+"%, "+nt(100*F(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(lt[x(this._r,this._g,this._b,!0)]||!1)},toFilter:function(t){var e="#"+w(this._r,this._g,this._b,this._a),n=e,i=this._gradientType?"GradientType = 1, ":"";if(t){n=st(t).toHex8String()}return"progid:DXImageTransform.Microsoft.gradient("+i+"startColorstr="+e+",endColorstr="+n+")"},toString:function(t){var e=!!t;t=t||this._format;var n=!1,i=this._a<1&&this._a>=0;return e||!i||"hex"!==t&&"hex6"!==t&&"hex3"!==t&&"name"!==t?("rgb"===t&&(n=this.toRgbString()),"prgb"===t&&(n=this.toPercentageRgbString()),"hex"!==t&&"hex6"!==t||(n=this.toHexString()),"hex3"===t&&(n=this.toHexString(!0)),"hex8"===t&&(n=this.toHex8String()),"name"===t&&(n=this.toName()),"hsl"===t&&(n=this.toHslString()),"hsv"===t&&(n=this.toHsvString()),n||this.toHexString()):"name"===t&&0===this._a?this.toName():this.toRgbString()},_applyModification:function(t,e){var n=t.apply(null,[this].concat([].slice.call(e)));return this._r=n._r,this._g=n._g,this._b=n._b,this.setAlpha(n._a),this},lighten:function(){return this._applyModification(T,arguments)},brighten:function(){return this._applyModification(M,arguments)},darken:function(){return this._applyModification(E,arguments)},desaturate:function(){return this._applyModification(C,arguments)},saturate:function(){return this._applyModification(k,arguments)},greyscale:function(){return this._applyModification(S,arguments)},spin:function(){return this._applyModification(P,arguments)},_applyCombination:function(t,e){return t.apply(null,[this].concat([].slice.call(e)))},analogous:function(){return this._applyCombination(D,arguments)},complement:function(){return this._applyCombination(A,arguments)},monochromatic:function(){return this._applyCombination(I,arguments)},splitcomplement:function(){return this._applyCombination(N,arguments)},triad:function(){return this._applyCombination(L,arguments)},tetrad:function(){return this._applyCombination(O,arguments)}},st.fromRatio=function(t,n){if("object"==(void 0===t?"undefined":e(t))){var i={};for(var r in t)t.hasOwnProperty(r)&&(i[r]="a"===r?t[r]:j(t[r]));t=i}return st(t,n)},st.equals=function(t,e){return!(!t||!e)&&st(t).toRgbString()==st(e).toRgbString()},st.random=function(){return st.fromRatio({r:ot(),g:ot(),b:ot()})},st.mix=function(t,e,n){n=0===n?0:n||50;var i,r=st(t).toRgb(),o=st(e).toRgb(),s=n/100,a=2*s-1,l=o.a-r.a;i=a*l==-1?a:(a+l)/(1+a*l),i=(i+1)/2;var c=1-i,u={r:o.r*i+r.r*c,g:o.g*i+r.g*c,b:o.b*i+r.b*c,a:o.a*s+r.a*(1-s)};return st(u)},st.readability=function(t,e){var n=st(t),i=st(e),r=n.toRgb(),o=i.toRgb(),s=n.getBrightness(),a=i.getBrightness(),l=Math.max(r.r,o.r)-Math.min(r.r,o.r)+Math.max(r.g,o.g)-Math.min(r.g,o.g)+Math.max(r.b,o.b)-Math.min(r.b,o.b);return{brightness:Math.abs(s-a),color:l}},st.isReadable=function(t,e){var n=st.readability(t,e);return n.brightness>125&&n.color>500},st.mostReadable=function(t,e){for(var n=null,i=0,r=!1,o=0;o125&&s.color>500,l=s.brightness/125*3+s.color/500;(a&&!r||a&&r&&l>i||!a&&!r&&l>i)&&(r=a,i=l,n=st(e[o]))}return n};var at=st.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},lt=st.hexNames=function(t){var e={};for(var n in t)t.hasOwnProperty(n)&&(e[t[n]]=n);return e}(at),ct=function(){var t="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)",e="[\\s|\\(]+("+t+")[,|\\s]+("+t+")[,|\\s]+("+t+")\\s*\\)?",n="[\\s|\\(]+("+t+")[,|\\s]+("+t+")[,|\\s]+("+t+")[,|\\s]+("+t+")\\s*\\)?";return{rgb:new RegExp("rgb"+e),rgba:new RegExp("rgba"+n),hsl:new RegExp("hsl"+e),hsla:new RegExp("hsla"+n),hsv:new RegExp("hsv"+e),hsva:new RegExp("hsva"+n),hex3:/^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex8:/^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();window.tinycolor=st,t(function(){t.fn.spectrum.load&&t.fn.spectrum.processNativeColorInputs()})}(t.$)}()}).call(e,n(0))},function(t,e,n){"use strict";var i=n(0),r=n(119);t.exports=i.View.extend({initialize:function(t){this.config=t.config||{},this.stackModel=t.stackModel,this.preview=t.preview,this.pfx=this.config.stylePrefix||"",this.ppfx=this.config.pStylePrefix||"",this.propsConfig=t.propsConfig;var e=this.pfx,n=this.ppfx,i=this.collection;this.className=e+"layers "+n+"field",this.listenTo(i,"add",this.addTo),this.listenTo(i,"deselectAll",this.deselectAll),this.listenTo(i,"reset",this.render);var r=this.config.em||"",o=r?r.get("Utils"):"";this.sorter=o?new o.Sorter({container:this.el,ignoreViewChildren:1,containerSel:"."+e+"layers",itemSel:"."+e+"layer",pfx:this.config.pStylePrefix}):"",i.view=this,this.$el.data("model",i),this.$el.data("collection",i)},addTo:function(t){var e=this.collection.indexOf(t);this.addToCollection(t,null,e)},addToCollection:function(t,e,n){var i=e||null,o=this.stackModel,s=this.config,a=this.sorter,l=this.propsConfig;void 0!==this.preview&&t.set("preview",this.preview);var c=new r({model:t,config:s,sorter:a,stackModel:o,propsConfig:l}),u=c.render().el;if(i)i.appendChild(u);else if(void 0!==n){var h="before";this.$el.children().length==n&&(n--,h="after"),n<0?this.$el.append(u):this.$el.children().eq(n)[h](u)}else this.$el.append(u);return u},deselectAll:function(){this.$el.find("."+this.pfx+"layer").removeClass(this.pfx+"active")},render:function(){var t=document.createDocumentFragment();return this.$el.empty(),this.collection.each(function(e){this.addToCollection(e,t)},this),this.$el.append(t),this.$el.attr("class",this.className),this.sorter&&(this.sorter.plh=null),this}})},function(t,e,n){"use strict";(function(e){t.exports=e.View.extend({events:{click:"active","click [data-close-layer]":"remove","mousedown [data-move-layer]":"initSorter"},template:function(t){var e=this.pfx;return'\n
\n \n
\n
Layer '+t.get("index")+'
\n
\n \t
\n
\n
\n ⨯\n
\n
\n
\n '},initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.model;this.stackModel=t.stackModel||{},this.config=t.config||{},this.pfx=this.config.stylePrefix||"",this.sorter=t.sorter||null,this.propsConfig=t.propsConfig||{},this.customPreview=t.onPreview,this.listenTo(e,"destroy remove",this.remove),this.listenTo(e,"change:active",this.updateVisibility),this.listenTo(e.get("properties"),"change",this.updatePreview),e.get("preview")||this.$el.addClass(this.pfx+"no-preview"),e.view=this,e.set({droppable:0,draggable:1}),this.$el.data("model",e)},initSorter:function(t){this.sorter&&this.sorter.startSort(this.el)},remove:function(t){t&&t.stopPropagation&&t.stopPropagation();var n=this.model,i=n.collection,r=this.stackModel;e.View.prototype.remove.apply(this,arguments),i.contains(n)&&i.remove(n),r&&r.set&&(r.set({stackIndex:null},{silent:!0}),r.trigger("updateValue"))},onPreview:function(t){var e=t.split(" "),n=[];return this.model.get("properties").each(function(t,i){var r=e[i]||"";if(r&&"integer"==t.get("type")){var o=parseInt(r,10),s=r.replace(o,"");o=isNaN(o)?0:o,o=o>3?3:o,o=o<-3?-3:o,r=o+s}n.push(r)}),n.join(" ")},updatePreview:function(){var t=this.stackModel,e=this.customPreview,n=this.getPreviewEl(),i=this.model.getFullValue(),r=e?e(i):this.onPreview(i);r&&t&&n&&(n.style[t.get("property")]=r)},getPropertiesWrapper:function(){return this.propsWrapEl||(this.propsWrapEl=this.el.querySelector("[data-properties]")),this.propsWrapEl},getPreviewEl:function(){return this.previewEl||(this.previewEl=this.el.querySelector("[data-preview]")),this.previewEl},active:function(){var t=this.model,e=t.collection;e.active(e.indexOf(t))},updateVisibility:function(){var t=this.pfx,e=this.getPropertiesWrapper(),n=this.model.get("active");e.style.display=n?"":"none",this.$el[n?"addClass":"removeClass"](t+"active")},render:function(){var t=n(12),e=this.propsConfig,i=this.pfx+"layer",r=this.model,o=this.el,s=new t({collection:r.get("properties"),config:this.config,customValue:e.customValue,propTarget:e.propTarget,onChange:e.onChange}).render().el;return o.innerHTML=this.template(r),o.className=i,this.getPropertiesWrapper().appendChild(s),this.updateVisibility(),this.updatePreview(),this}})}).call(e,n(0))},function(t,e,n){"use strict";var i=Object.assign||function(t){for(var e=1;e\n \n
\n '},getSliderEl:function(){return this.slider||(this.slider=this.el.querySelector("input[type=range]")),this.slider},inputValueChanged:function(){var t=this.model,e=t.get("step");this.getInputEl().value=this.getSliderEl().value;var n=this.getInputValue()-e;t.set("value",n,{avoidStore:1}).set("value",n+e),this.elementUpdated()},inputValueChangedSoft:function(){this.getInputEl().value=this.getSliderEl().value,this.model.set("value",this.getInputValue(),{avoidStore:1}),this.elementUpdated()},setValue:function(t){this.getSliderEl().value=t,this.inputInst.setValue(t,{silent:1})},onRender:function(){i.prototype.onRender.apply(this,arguments),this.model.get("showInput")||(this.inputInst.el.style.display="none")}})},function(t,e,n){"use strict";n(0);t.exports=function(){return{build:function(t){var e=[];"string"==typeof t&&(t=[t]);for(var n=0,i=t.length;n\n \n <%= label %>\n
'),events:{"click [data-sector-title]":"toggle"},initialize:function(t){this.config=t.config||{},this.pfx=this.config.stylePrefix||"",this.target=t.target||{},this.propTarget=t.propTarget||{},this.caretR="fa-caret-right",this.caretD="fa-caret-down";var e=this.model;this.listenTo(e,"change:open",this.updateOpen),this.listenTo(e,"updateVisibility",this.updateVisibility)},updateVisibility:function(){var t;this.model.get("properties").each(function(e){e.get("visible")&&(t=1)}),this.el.style.display=t?"block":"none"},updateOpen:function(){this.model.get("open")?this.show():this.hide()},show:function(){this.$el.addClass(this.pfx+"open"),this.getPropertiesEl().style.display="",this.$caret.removeClass(this.caretR).addClass(this.caretD)},hide:function(){this.$el.removeClass(this.pfx+"open"),this.getPropertiesEl().style.display="none",this.$caret.removeClass(this.caretD).addClass(this.caretR)},getPropertiesEl:function(){return this.$el.find("."+this.pfx+"properties").get(0)},toggle:function(t){var e=this.model.get("open")?0:1;this.model.set("open",e)},render:function(){return this.$el.html(this.template({pfx:this.pfx,label:this.model.get("name")})),this.$caret=this.$el.find("#"+this.pfx+"caret"),this.renderProperties(),this.$el.attr("class",this.pfx+"sector no-select"),this.updateOpen(),this},renderProperties:function(){var t=this.model.get("properties");if(t){var e=new r({collection:t,target:this.target,propTarget:this.propTarget,config:this.config});this.$el.append(e.render().el)}}})}).call(e,n(1))},function(t,e,n){"use strict";t.exports=function(){var t={},e=n(126),i=n(127),r=n(130),o=n(43),s=void 0,a=void 0,l=void 0;return{name:"AssetManager",storageKey:"assets",getConfig:function(){return t},init:function(n){var c=this;t=n||{};for(var u in e)u in t||(t[u]=e[u]);var h=t.pStylePrefix,d=t.em;h&&(t.stylePrefix=h+t.stylePrefix),s=new i([]);var f={collection:new i([]),globalCollection:s,config:t};return l=new o(f),f.fu=l,a=new r(f),s.listenTo(s,"add",function(t){c.getAllVisible().add(t),d&&d.trigger("asset:add",t)}),s.listenTo(s,"remove",function(t){c.getAllVisible().remove(t),d&&d.trigger("asset:remove",t)}),this},add:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return void 0===e.at&&(e.at=0),s.add(t,e)},get:function(t){return s.where({src:t})[0]},getAll:function(){return s},getAllVisible:function(){return a.collection},remove:function(t){var e=this.get(t);return this.getAll().remove(e),this},store:function(e){var n={},i=JSON.stringify(this.getAll().toJSON());return n[this.storageKey]=i,!e&&t.stm&&t.stm.store(n),n},load:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.storageKey,n=t[e]||[];if("string"==typeof n)try{n=JSON.parse(t[e])}catch(t){}return n&&n.length&&this.getAll().reset(n),n},getContainer:function(){return a.el},getAssetsEl:function(){return a.el.querySelector("[data-el=assets]")},render:function(t){var e=t||this.getAll().models;return a.rendered||a.render(),a.collection.reset(e),this.getContainer()},addType:function(t,e){this.getAll().addType(t,e)},getType:function(t){return this.getAll().getType(t)},getTypes:function(){return this.getAll().getTypes()},AssetsView:function(){return a},FileUploader:function(){return l},onLoad:function(){this.getAll().reset(t.assets)},postRender:function(e){t.dropzone&&l.initDropzone(e)},setTarget:function(t){a.collection.target=t},onSelect:function(t){a.collection.onSelect=t},onClick:function(e){t.onClick=e},onDblClick:function(e){t.onDblClick=e}}}},function(t,e,n){"use strict";t.exports={assets:[],noAssets:"",stylePrefix:"am-",upload:0,uploadName:"files",headers:{},params:{},autoAdd:1,uploadText:"Drop files here or click to upload",addBtnText:"Add image",uploadFile:"",handleAdd:"",dropzone:1,openAssetsOnDrop:1,dropzoneContent:"",modalTitle:"Select Image",inputPlaceholder:"http://path/to/the/image.jpg"}},function(t,e,n){"use strict";var i=n(30),r=function(t){return t&&t.__esModule?t:{default:t}}(i);t.exports=n(0).Collection.extend(r.default).extend({types:[{id:"image",model:n(128),view:n(41),isType:function(t){return"string"==typeof t?{type:"image",src:t}:t}}]})},function(t,e,n){"use strict";var i=n(129);t.exports=i.extend({defaults:Object.assign({},i.prototype.defaults,{type:"image",unitDim:"px",height:0,width:0})})},function(t,e,n){"use strict";t.exports=n(0).Model.extend({idAttribute:"src",defaults:{type:"",src:""},getFilename:function(){return this.get("src").split("/").pop()},getExtension:function(){return this.getFilename().split(".").pop()}})},function(t,e,n){"use strict";(function(e){n(42),n(41),n(43);t.exports=e.View.extend({events:{submit:"handleSubmit"},template:function(t){var e=t.pfx,n=t.ppfx;return'\n
\n
\n
\n
\n \n
\n \n
\n
\n \n
\n
\n
\n
\n '},initialize:function(t){this.options=t,this.config=t.config,this.pfx=this.config.stylePrefix||"",this.ppfx=this.config.pStylePrefix||"";var e=this.collection;this.listenTo(e,"reset",this.renderAssets),this.listenTo(e,"add",this.addToAsset),this.listenTo(e,"remove",this.removedAsset),this.listenTo(e,"deselectAll",this.deselectAll)},handleSubmit:function(t){t.preventDefault();var e=this.getAddInput(),n=e.value.trim(),i=this.config.handleAdd;n&&(e.value="",this.getAssetsEl().scrollTop=0,i?i(n):this.options.globalCollection.add(n,{at:0}))},getAssetsEl:function(){return this.el.querySelector("."+this.pfx+"assets")},getAddInput:function(){return this.inputUrl&&this.inputUrl.value||(this.inputUrl=this.el.querySelector("."+this.pfx+"add-asset input")),this.inputUrl},removedAsset:function(t){this.collection.length||this.toggleNoAssets()},addToAsset:function(t){1==this.collection.length&&this.toggleNoAssets(1),this.addAsset(t)},addAsset:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=e,i=this.collection,r=this.config,o=new t.typeView({model:t,collection:i,config:r}).render().el;if(n)n.appendChild(o);else{var s=this.getAssetsEl();s&&s.insertBefore(o,s.firstChild)}return o},toggleNoAssets:function(t){var e=this.$el.find("."+this.pfx+"assets");if(t)e.empty();else{var n=this.config.noAssets;n&&e.append(n)}},deselectAll:function(){var t=this.pfx;this.$el.find("."+t+"highlight").removeClass(t+"highlight")},renderAssets:function(){var t=this,e=document.createDocumentFragment(),n=this.$el.find("."+this.pfx+"assets");n.empty(),this.toggleNoAssets(this.collection.length),this.collection.each(function(n){return t.addAsset(n,e)}),n.append(e)},render:function(){var t=this.options.fu.render().el;return this.$el.empty(),this.$el.append(t).append(this.template(this)),this.el.className=this.ppfx+"asset-manager",this.renderAssets(),this.rendered=1,this}})}).call(e,n(0))},function(t,e,n){"use strict";t.exports=function(){var t,e,i={},r=n(132),o=n(44),s=n(133),a=n(46),l=n(134);return{Selectors:a,name:"CssComposer",storageKey:function(){var t=[],e=i.stm&&i.stm.getConfig()||{};return e.storeCss&&t.push("css"),e.storeStyles&&t.push("styles"),t},init:function(n){i=n||{};for(var o in r)o in i||(i[o]=r[o]);var a=i.pStylePrefix;a&&(i.stylePrefix=a+i.stylePrefix);var c=i.em&&i.em.config.style||"";return i.rules=c||i.rules,i.sm=i.em,t=new s([],i),e=new l({collection:t,config:i}),this},onLoad:function(){t.add(i.rules)},postLoad:function(t){t.listenRules(this.getAll())},load:function(e){var n=e||"";!n&&i.stm&&(n=i.em.getCacheLoad());var r=n.styles||"";if(n.styles)try{r=JSON.parse(n.styles)}catch(t){}else n.css&&(r=i.em.get("Parser").parseCss(n.css));return r&&t.reset(r),r},store:function(e){if(i.stm){var n={},r=this.storageKey();return r.indexOf("css")>=0&&(n.css=i.em.getCss()),r.indexOf("styles")>=0&&(n.styles=JSON.stringify(t)),e||i.stm.store(n),n}},add:function(e,n,r,s){var a=n||"",l=r||"",c=s||{},u=this.get(e,a,l,c);return u||(c.state=a,c.mediaText=l,c.selectors="",u=new o(c,i),u.get("selectors").add(e),t.add(u),u)},get:function(e,n,i,r){var o=null;return t.each(function(t){o||t.compare(e,n,i,r)&&(o=t)}),o},getAll:function(){return t},addCollection:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=[],r=t instanceof Array?t:[t],o=0,s=r.length;o1&&void 0!==arguments[1]?arguments[1]:{};return"string"==typeof t&&(t=this.editor.get("Parser").parseCss(t)),e.em=this.editor,i.Collection.prototype.add.apply(this,[t,e])}})},function(t,e,n){"use strict";var i=n(0),r=n(135);t.exports=i.View.extend({initialize:function(t){this.config=t.config||{},this.pfx=this.config.stylePrefix||"",this.className=this.pfx+"rules",this.listenTo(this.collection,"add",this.addTo),this.listenTo(this.collection,"reset",this.render)},addTo:function(t){this.addToCollection(t)},addToCollection:function(t,e){var n=e||null,i=r,o=new i({model:t,config:this.config}),s=o.render().el;return n?n.appendChild(s):this.$el.append(s),s},render:function(){var t=document.createDocumentFragment();return this.$el.empty(),this.collection.each(function(e){this.addToCollection(e,t)},this),this.$el.append(t),this.$el.attr("class",this.className),this}})},function(t,e,n){"use strict";var i=n(0);t.exports=i.View.extend({tagName:"style",initialize:function(t){this.config=t.config||{},this.listenTo(this.model,"change:style",this.render),this.listenTo(this.model,"change:state",this.render),this.listenTo(this.model,"destroy remove",this.remove),this.listenTo(this.model,"change:mediaText",this.render),this.listenTo(this.model.get("selectors"),"change",this.selChanged)},selChanged:function(){this.selStr=this.renderSelectors(),this.render()},renderSelectors:function(){var t=[],e=this.model,n=e.get("selectorsAdd");e.get("selectors").each(function(e){t.push("."+e.get("name"))});var i=t.join("");return i+(i&&n?", ":"")+n},renderProperties:function(){var t=[],e=this.model.get("style");for(var n in e)t.push(n+":"+e[n]+";");return t.join("")},render:function(){var t="",e="";this.selStr||(this.selStr=this.renderSelectors());var n=this.renderProperties(),i=this.model.get("state"),r=this.model.get("mediaText");return this.selStr&&(i=i?":"+i:"",t=""!==n?"{"+n+"}":""),e=this.selStr&&t?this.selStr+i+t:"",r&&e&&(e="@media "+r+"{"+e+"}"),this.$el.html(e),this}})},function(t,e,n){"use strict";var i=n(1);t.exports=function(){var t={},e=n(137),r=n(138),o=void 0;return{TraitsView:r,name:"TraitManager",getConfig:function(){return t},init:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t=n,(0,i.defaults)(t,e);var s=t.pStylePrefix;return s&&(t.stylePrefix=""+s+t.stylePrefix),o=new r({collection:[],editor:t.em,config:t}),this},getTraitsViewer:function(){return o},addType:function(t,e){var n=o.itemView;o.itemsView[t]=n.extend(e)},getType:function(t){return o.itemsView[t]}}}},function(t,e,n){"use strict";t.exports={stylePrefix:"trt-",labelContainer:"Component settings",labelPlhText:"eg. Text here",labelPlhHref:"eg. https://google.com",optionsTarget:[{value:"",name:"This window"},{value:"_blank",name:"New window"}]}},function(t,e,n){"use strict";var i=n(47),r=n(7),o=n(139),s=n(140),a=n(141),l=n(142);t.exports=i.extend({itemView:r,itemsView:{text:r,number:a,select:o,checkbox:s,color:l},initialize:function(t){this.config=t.config||{},this.em=t.editor,this.pfx=this.config.stylePrefix||"",this.className=this.pfx+"traits",this.listenTo(this.em,"change:selectedComponent",this.updatedCollection),this.updatedCollection()},updatedCollection:function(){this.el.className=this.className;var t=this.em.get("selectedComponent");t&&(this.collection=t.get("traits"),this.render())}})},function(t,e,n){"use strict";(function(e,i){var r=n(7),o=e.$;t.exports=r.extend({initialize:function(t){r.prototype.initialize.apply(this,arguments);var e=this.ppfx;this.tmpl='
'},getInputEl:function(){if(!this.$input){var t=this.model,e=t.get("options")||[],n="",this.input=n,this.$input=o(this.input);var r=this.target,s=t.get("name"),a=t.get("value");if(t.get("changeProp"))a=a||r.get(s);else{a=r.get("attributes")[s]}a&&this.$input.val(a)}return this.$input.get(0)}})}).call(e,n(0),n(1))},function(t,e,n){"use strict";var i=n(7);t.exports=i.extend({initialize:function(t){i.prototype.initialize.apply(this,arguments);var e=this.ppfx+"chk-icon";this.tmpl='
'},onChange:function(){this.model.set("value",this.getInputEl().checked)},getInputEl:function(){var t;this.$input||(t=1);for(var e=arguments.length,n=Array(e),r=0;r0&&void 0!==arguments[0]?arguments[0]:"",e="";if(!t&&i.stm&&(t=i.em.getCacheLoad()),t.components)try{e=JSON.parse(t.components)}catch(t){}else t.html&&(e=t.html);var n=e&&e.constructor===Object;return(e&&e.length||n)&&(this.clear(),this.getComponents().reset(),n?this.getWrapper().set(e).initComponents().initClasses().loadTraits():this.getComponents().add(e)),e},store:function(t){if(i.stm){var e={},n=this.storageKey();if(n.indexOf("html")>=0&&(e.html=i.em.getHtml()),n.indexOf("components")>=0){var r=i.storeWrapper?this.getWrapper():this.getComponents();e.components=JSON.stringify(r)}return t||i.stm.store(e),e}},getComponent:function(){return t},getWrapper:function(){return this.getComponent()},getComponents:function(){return this.getWrapper().get("components")},addComponent:function(t){return this.getComponents().add(t)},render:function(){return e.render().el},clear:function(){for(var t=this.getComponents(),e=0,n=t.length;e1&&void 0!==arguments[1]?arguments[1]:{};if("string"==typeof t){var n=this.editor.get("Parser").parseHtml(t);t=n.html;var r=this.editor.get("CssComposer");if(n.css&&r){var o=e.avoidUpdateStyle;r.addCollection(n.css,{extend:1,avoidUpdateStyle:o})}}return i.Collection.prototype.add.apply(this,[t,e])},onAdd:function(t,n,i){var r=t.get("style"),o=this.editor;if(!e.isEmpty(r)&&o&&o.get&&o.get("Config").forceClass){var s=this.editor.get("CssComposer"),a=this.editor.get("SelectorManager").add(t.cid);t.set({style:{}}),t.get("classes").add(a);s.add(a).set("style",r)}}})}).call(e,n(1))},function(t,e,n){"use strict";var i=n(1),r=n(0),o=n(147),s=n(148);t.exports=r.Collection.extend({model:o,initialize:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.em=e.em||""},setTarget:function(t){this.target=t},add:function(t,e){var n=this.em;if((0,i.isString)(t)||(0,i.isArray)(t)){var o=n&&n.get&&n.get("TraitManager"),a=o&&o.getConfig(),l=s(a);(0,i.isString)(t)&&(t=[t]);for(var c=0,u=t.length;c0&&void 0!==arguments[0]?arguments[0]:{};return{build:function(e){var n=[];"string"==typeof e&&(e=[e]);for(var i=0;is.top+s.height?s.top+s.height:g;var m={top:g,left:p,elementTop:s.top,elementLeft:s.left,elementWidth:s.width,elementHeight:s.height,targetWidth:t.offsetWidth,targetHeight:t.offsetHeight,canvasTop:o.top,canvasLeft:o.left};return h&&r.em&&r.em.trigger(h,m),m},getMouseRelativePos:function(t,e){var n=e||{},i=0,r=0,o=n.subWinOffset,s=t.target.ownerDocument,a=s.defaultView||s.parentWindow,l=a.frameElement,c=o?a.pageYOffset:0,u=o?a.pageXOffset:0;if(l){var h=l.getBoundingClientRect();i=h.top||0,r=h.left||0}return{y:t.clientY+i-c,x:t.clientX+r-u}},getMouseRelativeCanvas:function(t,e){var n=this.getFrameEl(),i=this.getBody(),r=n.offsetTop||0,o=n.offsetLeft||0,s=i.scrollTop||0,a=i.scrollLeft||0;return{y:t.clientY+r+s,x:t.clientX+o+a}},isInputFocused:function(){return"BODY"!==this.getFrameEl().contentDocument.activeElement.tagName},startAutoscroll:function(){this.dragging=1;var t=this.getScrollListeners();e=a.getFrameOffset(1),(0,i.on)(t,"mousemove",this.autoscroll),(0,i.on)(t,"mouseup",this.stopAutoscroll)},autoscroll:function(t){if(t.preventDefault(),this.dragging){var n=this.getFrameEl().contentWindow,i=n.document.body.scrollTop,r=i,o=t.clientY,s=e.height-50;o<50&&(r-=50-o),o>s&&(r+=o-s),n.scrollTo(0,r)}},stopAutoscroll:function(){this.dragging=0;var t=this.getScrollListeners();(0,i.off)(t,"mousemove",this.autoscroll),(0,i.off)(t,"mouseup",this.stopAutoscroll)},getScrollListeners:function(){return[this.getFrameEl().contentWindow,this.getElement()]},getFrameWrapperEl:function(){return a.frame.getWrapper()}}}},function(t,e,n){"use strict";t.exports={stylePrefix:"cv-",rulers:!1,scripts:[],styles:[],customBadgeLabel:""}},function(t,e,n){"use strict";var i=n(0),r=n(171);t.exports=i.Model.extend({defaults:{frame:"",wrapper:"",rulers:!1},initialize:function(t){var e=this.conf||{};this.set("frame",new r(e.frame))}})},function(t,e,n){"use strict";var i=n(0);t.exports=i.Model.extend({defaults:{wrapper:"",width:"",height:"",attributes:{}}})},function(t,e,n){"use strict";(function(e,i){var r=n(173),o=e.$;t.exports=e.View.extend({initialize:function(t){i.bindAll(this,"renderBody","onFrameScroll","clearOff"),this.config=t.config||{},this.em=this.config.em||{},this.ppfx=this.config.pStylePrefix||"",this.className=this.config.stylePrefix+"canvas",this.listenTo(this.em,"change:canvasOffset",this.clearOff),this.frame=new r({model:this.model.get("frame"),config:this.config})},isElInViewport:function(t){var e=t.getBoundingClientRect(),n=this.getFrameOffset(1),i=e.top,r=e.left;return i>=0&&r>=0&&i<=n.height&&r<=n.width},onFrameScroll:function(){var t=this.frame.el.contentDocument.body;this.toolsEl.style.top="-"+t.scrollTop+"px",this.toolsEl.style.left="-"+t.scrollLeft+"px",this.em.trigger("canvasScroll")},renderScripts:function(){var t=this.frame,e=this;t.el.onload=function(){function n(i){if(i.length>0){var r=document.createElement("script");r.type="text/javascript",r.src=i.shift(),r.onerror=r.onload=n.bind(null,i),t.el.contentDocument.head.appendChild(r)}else e.renderBody()}var i=e.config.scripts.slice(0);n(i)}},renderBody:function(){var t=this.model.get("frame").get("wrapper"),e=this.config.em;if(t){var n=this.ppfx,i=o(this.frame.el.contentWindow.document.body),r=e.get("CssComposer"),s=e.get("Config"),a=this.config,l=s.protectedCss,c="";a.styles.forEach(function(t){c+=''});var u="\n \n * {\n box-sizing: border-box;\n }\n html, body, #wrapper {\n min-height: 100%;\n }\n body {\n margin: 0;\n height: 100%;\n background-color: #fff\n }\n #wrapper {\n overflow: auto\n }\n \n\n ."+n+"dashed *[data-highlightable] {\n outline: 1px dashed rgba(170,170,170,0.7);\n outline-offset: -3px\n }\n\n ."+n+"comp-selected {\n outline: 3px solid #3b97e3 !important;\n }\n\n ."+n+"comp-selected-parent {\n outline: 2px solid #ffca6f !important\n }\n\n ."+n+"no-select {\n user-select: none;\n -webkit-user-select:none;\n -moz-user-select: none;\n }\n\n ."+n+"freezed {\n opacity: 0.5;\n pointer-events: none;\n }\n\n ."+n+"no-pointer {\n pointer-events: none;\n }\n\n ."+n+"plh-image {\n background: #f5f5f5;\n border: none;\n height: 50px;\n width: 50px;\n display: block;\n outline: 3px solid #ffca6f;\n cursor: pointer;\n outline-offset: -2px\n }\n\n ."+n+"grabbing {\n cursor: grabbing;\n cursor: -webkit-grabbing;\n }\n\n * ::-webkit-scrollbar-track {\n background: rgba(0, 0, 0, 0.1)\n }\n\n * ::-webkit-scrollbar-thumb {\n background: rgba(255, 255, 255, 0.2)\n }\n\n * ::-webkit-scrollbar {\n width: 10px\n }\n\n "+(s.canvasCss||"")+"\n "+(l||"")+"\n ";c&&i.append(c),i.append(""),i.append(t.render()).append(r.render()),i.append(this.getJsContainer()),e.trigger("loaded"),this.frame.el.contentWindow.onscroll=this.onFrameScroll,this.frame.udpateOffset();var h=document,d=this.frame.el.contentDocument,f=function(t){var e=new KeyboardEvent(t.type,t);return e.keyCodeVal=t.keyCode,["keyCode","which"].forEach(function(t){Object.defineProperty(e,t,{get:function(){return this.keyCodeVal}})}),e};d.addEventListener("keydown",function(t){h.dispatchEvent(f(t))}),d.addEventListener("keyup",function(t){h.dispatchEvent(f(t))})}},offset:function(t){var e=t.getBoundingClientRect(),n=t.ownerDocument.body;return{top:e.top+n.scrollTop,left:e.left+n.scrollLeft,width:e.width,height:e.height}},clearOff:function(){this.frmOff=null,this.cvsOff=null},getFrameOffset:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return this.frmOff&&!t||(this.frmOff=this.offset(this.frame.el)),this.frmOff},getCanvasOffset:function(){return this.cvsOff||(this.cvsOff=this.offset(this.el)),this.cvsOff},getElementPos:function(t,e){var n=e||{},i=this.getFrameOffset(),r=this.getCanvasOffset(),o=this.offset(t),s=n.avoidFrameOffset?0:i.top,a=n.avoidFrameOffset?0:i.left;return{top:o.top+s-r.top,left:o.left+a-r.left,height:t.offsetHeight||t.clientHeight,width:t.offsetWidth||t.clientWidth}},getPosition:function(){var t=this.frame.el.contentDocument.body,e=this.getFrameOffset(),n=this.getCanvasOffset();return{top:e.top+t.scrollTop-n.top,left:e.left+t.scrollLeft-n.left}},updateScript:function(t){t.scriptContainer||(t.scriptContainer=o("
"),this.getJsContainer().append(t.scriptContainer.get(0)));var e=t.model,n=e.getId();t.el.id=n,t.scriptContainer.html("");var i=document.createElement("script");i.innerText="\n setTimeout(function() {\n var item = document.getElementById('"+n+"');\n if (!item) return;\n (function(){"+e.getScriptString()+"}.bind(item))()\n }, 1);",t.scriptContainer.get(0).appendChild(i)},getJsContainer:function(){return this.jsContainer||(this.jsContainer=o('
').get(0)),this.jsContainer},render:function(){if(this.wrapper=this.model.get("wrapper"),this.wrapper&&"function"==typeof this.wrapper.render){this.model.get("frame").set("wrapper",this.wrapper),this.$el.append(this.frame.render().el);var t=this.frame;0===this.config.scripts.length?t.el.onload=this.renderBody:this.renderScripts()}var e=this.ppfx;this.$el.append('\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n ');var n=this.el,i=n.querySelector("#"+e+"tools");return this.hlEl=n.querySelector("."+e+"highlighter"),this.badgeEl=n.querySelector("."+e+"badge"),this.placerEl=n.querySelector("."+e+"placeholder"),this.ghostEl=n.querySelector("."+e+"ghost"),this.toolbarEl=n.querySelector("."+e+"toolbar"),this.resizerEl=n.querySelector("."+e+"resizer"),this.offsetEl=n.querySelector("."+e+"offset-v"),this.fixedOffsetEl=n.querySelector("."+e+"offset-fixed-v"),this.toolsEl=i,this.el.className=this.className,this}})}).call(e,n(0),n(1))},function(t,e,n){"use strict";(function(e){var i=n(0);t.exports=i.View.extend({tagName:"iframe",attributes:{src:"about:blank",allowfullscreen:"allowfullscreen"},initialize:function(t){e.bindAll(this,"udpateOffset"),this.config=t.config||{},this.ppfx=this.config.pStylePrefix||"",this.em=this.config.em,this.motionsEv="transitionend oTransitionEnd transitionend webkitTransitionEnd",this.listenTo(this.em,"change:device",this.updateWidth)},updateWidth:function(t){var e=this.em.getDeviceModel();this.el.style.width=e?e.get("width"):"",this.udpateOffset(),this.$el.on(this.motionsEv,this.udpateOffset)},udpateOffset:function(){var t=this.em.get("Canvas").getOffset();this.em.set("canvasOffset",t),this.$el.off(this.motionsEv,this.udpateOffset)},getBody:function(){this.$el.contents().find("body")},getWrapper:function(){return this.$el.contents().find("body > div")},render:function(){return this.$el.attr({class:this.ppfx+"frame"}),this}})}).call(e,n(1))},function(t,e,n){"use strict";t.exports=function(){var t={},e={},i={},r=n(175),o=n(176),s=function(t,n){return delete n.initialize,e[t]=o.extend(n),this};return{name:"Commands",init:function(e){t=e||{};for(var o in r)o in t||(t[o]=r[o]);var s=t.pStylePrefix;s&&(t.stylePrefix=s+t.stylePrefix);for(var a in t.defaults){var l=t.defaults[a];l.id&&this.add(l.id,l)}return i["select-comp"]=n(19),i["create-comp"]=n(20),i["delete-comp"]=n(181),i["image-comp"]=n(182),i["move-comp"]=n(183),i["text-comp"]=n(184),i["insert-custom"]=n(52),i["export-template"]=n(185),i["sw-visibility"]=n(186),i["open-layers"]=n(187),i["open-sm"]=n(190),i["open-tm"]=n(191),i["open-blocks"]=n(192),i["open-assets"]=n(193),i["show-offset"]=n(194),i["select-parent"]=n(195),i.fullscreen=n(196),i.preview=n(197),i.resize=n(198),i.drag=n(199),i["tlb-delete"]={run:function(t){var e=t.getSelected();if(!e||!e.get("removable"))return void console.warn("The element is not removable");t.select(null),e.destroy()}},i["tlb-clone"]={run:function(t){var e=t.getSelected();if(!e||!e.get("copyable"))return void console.warn("The element is not clonable");var n=e.collection,i=n.indexOf(e);n.add(e.clone(),{at:i+1}),t.trigger("component:update",e)}},i["tlb-move"]={run:function(t,e,n){var i,r=t.getSelected();if(!r||!r.get("draggable"))return void console.warn("The element is not draggable");var o=function(t,e){console.log("start mouse pos ",e.start),console.log("el rect ",e.elRect);var n=e.el;n.style.position="absolute",n.style.margin=0},s=function(e,n){l.runDefault(),l.set("selectedComponent",r),t.trigger("component:update",r),i&&i.blur()},a=function(t,e){console.log("Delta ",e.delta),console.log("Current ",e.current)};t.Canvas.getToolbarEl().style.display="none";var l=t.getModel();if(l.stopDefault(),l.get("designerMode"))i=editor.runCommand("drag",{el:r.view.el,options:{event:n&&n.event,onStart:o,onDrag:a,onEnd:s}});else{var c=t.Commands.get("move-comp");c.onEndMoveFromModel=s,c.initSorterFromModel(r)}r.set("status","selected")}},t.em&&(t.model=t.em.get("Canvas")),this.loadDefaultCommands(),this},add:s,get:function(n){var i=e[n];return"function"==typeof i&&(i=new i(t),e[n]=i),i},has:function(t){return!!e[t]},loadDefaultCommands:function(){for(var t in i)this.add(t,i[t]);return this}}}},function(t,e,n){"use strict";t.exports={ESCAPE_KEY:27,stylePrefix:"com-",defaults:[],em:null,firstCentered:!0,newFixedH:!1,minComponentH:50,minComponentW:50}},function(t,e,n){"use strict";(function(e){var n=e.$;t.exports=e.View.extend({initialize:function(t){this.config=t||{},this.editorModel=this.em=this.config.em||{},this.pfx=this.config.stylePrefix,this.ppfx=this.config.pStylePrefix,this.hoverClass=this.pfx+"hover",this.badgeClass=this.pfx+"badge",this.plhClass=this.pfx+"placeholder",this.freezClass=this.ppfx+"freezed",this.canvas=this.em.get&&this.em.get("Canvas"),this.em.get&&this.setElement(this.getCanvas()),this.canvas&&(this.$canvas=this.$el,this.$wrapper=n(this.getCanvasWrapper()),this.frameEl=this.canvas.getFrameEl(),this.canvasTool=this.getCanvasTools(),this.bodyEl=this.getCanvasBody()),this.init(this.config)},onFrameScroll:function(t){},getCanvas:function(){return this.canvas.getElement()},getCanvasBody:function(){return this.canvas.getBody()},getCanvasWrapper:function(){return this.canvas.getWrapperEl()},getCanvasTools:function(){return this.canvas.getToolsEl()},offset:function(t){var e=t.getBoundingClientRect();return{top:e.top+t.ownerDocument.body.scrollTop,left:e.left+t.ownerDocument.body.scrollLeft}},init:function(t){},run:function(t,e){},stop:function(t,e){}})}).call(e,n(0))},function(t,e,n){"use strict";var i=(n(0),n(47)),r=n(178);t.exports=i.extend({itemView:r,initialize:function(t){this.config={editor:t.editor||""},this.listenTo(this.collection,"reset",this.render)}})},function(t,e,n){"use strict";var i=n(0);t.exports=i.View.extend({events:{mousedown:"handleClick"},attributes:function(){return this.model.get("attributes")},initialize:function(t){this.editor=t.config.editor},handleClick:function(t){t.preventDefault(),t.stopPropagation();var e={event:t},n=this.model.get("command"),i=this.editor;"function"==typeof n&&n(i,null,e),"string"==typeof n&&i.runCommand(n,e)},render:function(){var t=this.editor.getConfig();return this.el.className+=" "+t.stylePrefix+"toolbar-item",this}})},function(t,e,n){"use strict";var i=n(0),r=n(180);t.exports=i.Collection.extend({model:r})},function(t,e,n){"use strict";var i=n(0);t.exports=i.Model.extend({defaults:{command:"",attributes:{}}})},function(t,e,n){"use strict";(function(e,i){var r=n(19),o=e.$;t.exports=i.extend({},r,{init:function(t){i.bindAll(this,"startDelete","stopDelete","onDelete"),this.hoverClass=this.pfx+"hover-delete",this.badgeClass=this.pfx+"badge-red"},enable:function(){this.$el.find("*").mouseover(this.startDelete).mouseout(this.stopDelete).click(this.onDelete)},startDelete:function(t){t.stopPropagation();var e=o(t.target);e.data("model").get("removable")&&(e.addClass(this.hoverClass),this.attachBadge(e.get(0)))},stopDelete:function(t){t.stopPropagation(),o(t.target).removeClass(this.hoverClass),this.badge&&this.badge.css({left:-1e3,top:-1e3})},onDelete:function(t){t.stopPropagation();var e=o(t.target);e.data("model").get("removable")&&(e.data("model").destroy(),this.removeBadge(),this.clean())},updateBadgeLabel:function(t){this.badge.html("Remove "+t.getName())}})}).call(e,n(0),n(1))},function(t,e,n){"use strict";(function(e){var i=(n(0),n(52));t.exports=e.extend({},i,{beforeInsert:function(t){t.type="image",t.style={},t.attributes={},t.attributes.onmousedown="return false",this.config.firstCentered&&this.getCanvasWrapper()==this.sorter.target&&(t.style.margin="0 auto")},afterInsert:function(t){t.trigger("dblclick"),this.sender&&this.sender.set("active",!1)}})}).call(e,n(1))},function(t,e,n){"use strict";(function(e,i){var r=n(2),o=n(19),s=n(51),a=e.$;t.exports=i.extend({},s,o,{init:function(t){o.init.apply(this,arguments),i.bindAll(this,"initSorter","rollback","onEndMove"),this.opt=t,this.hoverClass=this.ppfx+"highlighter-warning",this.badgeClass=this.ppfx+"badge-warning",this.noSelClass=this.ppfx+"no-select"},enable:function(){for(var t=arguments.length,e=Array(t),n=0;n"),o=this.codeMirror.clone().set({label:i,codeName:t,theme:e,input:r[0]}),s=new this.cm.EditorView({model:o,config:this.cm.getConfig()}).render().$el;return o.init(r[0]),{el:o,$el:s}},enable:function(){if(!this.$editors){var t=this.buildEditor("htmlmixed","hopscotch","HTML"),e=this.buildEditor("css","hopscotch","CSS");this.htmlEditor=t.el,this.cssEditor=e.el,this.$editors=n('
'),this.$editors.append(t.$el).append(e.$el)}this.modal&&(this.modal.setTitle("Export template"),this.modal.setContent(this.$editors),this.modal.open());var i=this.em;this.protCss;this.htmlEditor.setContent(i.getHtml()),this.cssEditor.setContent(i.getCss()),this.sender&&this.sender.set("active",!1)},stop:function(){}}}).call(e,n(0))},function(t,e,n){"use strict";t.exports={run:function(t){t.Canvas.getBody().className=this.ppfx+"dashed"},stop:function(t){t.Canvas.getBody().className=""}}},function(t,e,n){"use strict";(function(e){var i=n(188),r=e.$;t.exports={run:function(t,e){if(!this.toAppend){var n=t.DomComponents.getComponent().get("components"),o=t.getConfig(),s=o.stylePrefix,a=t.Panels,l=o.layers.stylePrefix||"nv-";o.layers.stylePrefix=o.stylePrefix+l,o.layers.pStylePrefix=o.stylePrefix,o.layers.em=t.editor,o.layers.opened=t.editor.get("opened"),a.getPanel("views-container")?this.panel=a.getPanel("views-container"):this.panel=a.addPanel({id:"views-container"});var c=r('
');this.panel.set("appendContent",c).trigger("change:appendContent"),o.layers.sortContainer=c.get(0);var u=(new i).init(n,o.layers);this.$layers=u.render(),c.append(this.$layers),this.toAppend=c}this.toAppend.show()},stop:function(){this.toAppend&&this.toAppend.hide()}}}).call(e,n(0))},function(t,e,n){"use strict";t.exports=function(){var t=void 0,e={},i=n(189),r=n(53),o=n(54);return{init:function(n,s){e=s||e;var a=e.em;for(var l in i)l in e||(e[l]=i[l]);var c=o,u=s.opened||{},h={level:0,config:e,opened:u};return e.showWrapper&&n.parent?(c=r,h.model=n.parent):h.collection=n,t=new c(h),a&&a.on("change:selectedComponent",this.componentChanged),this.componentChanged(),this},componentChanged:function(t,n){if(!(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).fromLayers){var i=e.em,r=i.get("opened"),o=i.get("selectedComponent"),s=o&&o.collection?o.collection.parent:null;for(var a in r)r[a].set("open",0);for(;s;)s.set("open",1),r[s.cid]=s,s=s.collection?s.collection.parent:null}},render:function(){return t.render().$el}}}},function(t,e,n){"use strict";t.exports={stylePrefix:"nv-",sortable:1,hidable:1,hideTextnode:1,showWrapper:1}},function(t,e,n){"use strict";var i=(n(29),n(0)),r=i.$;t.exports={run:function(t,e){if(this.sender=e,!this.$cn){var n=t.getConfig(),i=t.Panels;this.$cn=r("
"),this.$cn2=r("
"),this.$cn.append(this.$cn2);var o=t.DeviceManager;if(o&&n.showDevices){i.addPanel({id:"devices-c"}).set("appendContent",o.render()).trigger("change:appendContent")}var s=t.SelectorManager;s&&this.$cn2.append(s.render([])),this.$cn2.append(t.StyleManager.render());var a=t.StyleManager.getConfig(),l=a.stylePrefix;this.$header=r('
'+a.textNoElement+"
"),this.$cn.append(this.$header),i.getPanel("views-container")?this.panel=i.getPanel("views-container"):this.panel=i.addPanel({id:"views-container"}),this.panel.set("appendContent",this.$cn).trigger("change:appendContent"),this.target=t.editor,this.listenTo(this.target,"change:selectedComponent",this.toggleSm)}this.toggleSm()},toggleSm:function(){this.sender.get("active")&&(this.target.get("selectedComponent")?(this.$cn2.show(),this.$header.hide()):(this.$cn2.hide(),this.$header.show()))},stop:function(){this.$cn2&&this.$cn2.hide(),this.$header&&this.$header.hide()}}},function(t,e,n){"use strict";(function(e){var n=e.$;t.exports={run:function(t,e){var i,r=t.Config,o=r.stylePrefix,s=t.TraitManager;if(!this.obj){var a=s.getTraitsViewer(),l=s.getConfig();this.obj=n("
").append('
'+l.labelContainer+"
").get(0),this.obj.appendChild(a.render().el);var c=t.Panels;i=c.getPanel("views-container")?c.getPanel("views-container"):c.addPanel({id:"views-container"}),i.set("appendContent",this.obj).trigger("change:appendContent")}this.obj.style.display="block"},stop:function(){this.obj&&(this.obj.style.display="none")}}}).call(e,n(0))},function(t,e,n){"use strict";t.exports={run:function(t,e){var n=t.BlockManager,i=t.Panels;if(!this.blocks){n.render();var r="views-container",o=document.createElement("div"),s=i.getPanel(r)||i.addPanel({id:r});o.appendChild(n.getContainer()),s.set("appendContent",o).trigger("change:appendContent"),this.blocks=o}this.blocks.style.display="block"},stop:function(){var t=this.blocks;t&&(t.style.display="none")}}},function(t,e,n){"use strict";t.exports={run:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=t.Modal,r=t.AssetManager,o=r.getConfig(),s=n.modalTitle||o.modalTitle||"";r.setTarget(n.target),r.onClick(n.onClick),r.onDblClick(n.onDblClick),r.onSelect(n.onSelect),this.rendered||(r.render(r.getAll().filter(function(t){return"image"==t.get("type")})),this.rendered=1),i.setTitle(s),i.setContent(r.getContainer()),i.open()}}},function(t,e,n){"use strict";(function(e){var n=e.$;t.exports={getOffsetMethod:function(t){return"get"+(t||"")+"OffsetViewerEl"},run:function(t,e,i){var r=i||{},o=r.state||"",s=t.getConfig();if(s.showOffsets&&(s.showOffsetsSelected||"Fixed"!=o)){var a=t.Canvas,l=r.el||"",c=r.elPos||a.getElementPos(l),u=window.getComputedStyle(l),h=this.ppfx,d=o+"State",f=this.getOffsetMethod(o),p=a[f]();p.style.display="block";var g=this["marginT"+o],m=this["marginB"+o],v=this["marginL"+o],y=this["marginR"+o],b=this["padT"+o],x=this["padB"+o],w=this["padL"+o],C=this["padR"+o];if(!this[d]){var k=o.toLowerCase(),S=k+"margin-v",T=k+"padding-v",M=n('
').get(0),E=n('
').get(0),P=h+S+"-el",A=h+T+"-el",L=P+" "+(h+S),O=A+" "+(h+T);g=n('
').get(0),m=n('
').get(0),v=n('
').get(0),y=n('
').get(0),b=n('
').get(0),x=n('
').get(0),w=n('
').get(0),C=n('
').get(0),this["marginT"+o]=g,this["marginB"+o]=m,this["marginL"+o]=v,this["marginR"+o]=y,this["padT"+o]=b,this["padB"+o]=x,this["padL"+o]=w,this["padR"+o]=C,M.appendChild(g),M.appendChild(m),M.appendChild(v),M.appendChild(y),E.appendChild(b),E.appendChild(x),E.appendChild(w),E.appendChild(C),p.appendChild(M),p.appendChild(E),this[d]="1"}var N=u.marginLeft.replace("px",""),D=parseInt(u.marginTop.replace("px","")),I=parseInt(u.marginBottom.replace("px","")),_=g.style,F=m.style,$=v.style,z=y.style,H=b.style,R=x.style,V=w.style,j=C.style,B=parseInt(c.left);_.height=u.marginTop,_.width=u.width,_.top=c.top-u.marginTop.replace("px","")+"px",_.left=B+"px",F.height=u.marginBottom,F.width=u.width,F.top=c.top+c.height+"px",F.left=B+"px";var W=c.height+D+I+"px",U=c.top-D+"px";$.height=W,$.width=u.marginLeft,$.top=U,$.left=B-N+"px",z.height=W,z.width=u.marginRight,z.top=U,z.left=B+c.width+"px";var q=parseInt(u.paddingTop.replace("px",""));H.height=u.paddingTop,H.width=u.width,H.top=c.top+"px",H.left=B+"px";var K=parseInt(u.paddingBottom.replace("px",""));R.height=u.paddingBottom,R.width=u.width,R.top=c.top+c.height-K+"px",R.left=B+"px";var G=c.height-K-q+"px",Y=c.top+q+"px";V.height=G,V.width=u.paddingLeft,V.top=Y,V.left=c.left+"px";var X=parseInt(u.paddingRight.replace("px",""));j.height=G,j.width=u.paddingRight,j.top=Y,j.left=c.left+c.width-X+"px"}},stop:function(t,e,n){var i=n||{},r=i.state||"",o=this.getOffsetMethod(r);t.Canvas[o]().style.display="none"}}}).call(e,n(0))},function(t,e,n){"use strict";t.exports={run:function(t){var e=t.getSelected(),n=e&&e.collection;n&&n.parent&&t.select(n.parent)}}},function(t,e,n){"use strict";t.exports={isEnabled:function(){var t=document;return t.fullscreenElement||t.webkitFullscreenElement||t.mozFullScreenElement?1:0},enable:function(t){var e="";return t.requestFullscreen?t.requestFullscreen():t.webkitRequestFullscreen?(e="webkit",t.webkitRequestFullscreen()):t.mozRequestFullScreen?(e="moz",t.mozRequestFullScreen()):t.msRequestFullscreen?t.msRequestFullscreen():console.warn("Fullscreen not supported"),e},disable:function(){var t=document;t.exitFullscreen?t.exitFullscreen():t.webkitExitFullscreen?t.webkitExitFullscreen():t.mozCancelFullScreen?t.mozCancelFullScreen():t.msExitFullscreen&&t.msExitFullscreen()},fsChanged:function(t,e){var n=(document,(t||"")+"fullscreenchange");this.isEnabled()||(this.stop(null,this.sender),document.removeEventListener(n,this.fsChanged))},run:function(t,e){this.sender=e;var n=this.enable(t.getContainer());this.fsChanged=this.fsChanged.bind(this,n),document.addEventListener(n+"fullscreenchange",this.fsChanged),t&&t.trigger("change:canvasOffset")},stop:function(t,e){e&&e.set&&e.set("active",!1),this.disable(),t&&t.trigger("change:canvasOffset")}}},function(t,e,n){"use strict";(function(e){t.exports={getPanels:function(t){return this.panels||(this.panels=t.Panels.getPanelsEl()),this.panels},tglPointers:function(t,n){var i=t.Canvas.getBody().querySelectorAll("."+this.ppfx+"no-pointer");e.each(i,function(t){t.style.pointerEvents=n?"":"all"})},run:function(t,e){e&&e.set&&e.set("active",!1),t.stopCommand("sw-visibility"),t.getModel().stopDefault();var n=this,i=this.getPanels(t),r=t.Canvas.getElement(),o=t.getEl(),s=t.Config.stylePrefix;this.helper||(this.helper=document.createElement("span"),this.helper.className=s+"off-prv fa fa-eye-slash",o.appendChild(this.helper),this.helper.onclick=function(){n.stop(t)}),this.helper.style.display="inline-block",this.tglPointers(t),i.style.display="none";var a=r.style;a.width="100%",a.height="100%",a.top="0",a.left="0",a.padding="0",a.margin="0",t.trigger("change:canvasOffset")},stop:function(t,e){var n=this.getPanels(t);t.runCommand("sw-visibility"),t.getModel().runDefault(),n.style.display="block",t.Canvas.getElement().setAttribute("style",""),this.helper&&(this.helper.style.display="none"),t.trigger("change:canvasOffset"),this.tglPointers(t,1)}}}).call(e,n(1))},function(t,e,n){"use strict";t.exports={run:function(t,e,n){var i=n||{},r=i.el||"",o=t.Canvas,s=this.canvasResizer,a=i.options||{},l=o.getCanvasView();return a.ratioDefault=1,a.appendTo=o.getResizerEl(),a.prefix=t.getConfig().stylePrefix,a.posFetcher=l.getElementPos.bind(l),a.mousePosFetcher=o.getMouseRelativePos,s&&!i.forceNew||(this.canvasResizer=t.Utils.Resizer.init(a),s=this.canvasResizer),s.setOptions(a),s.focus(r),s},stop:function(){var t=this.canvasResizer;t&&t.blur()}}},function(t,e,n){"use strict";t.exports={run:function(t,e,n){var i=n&&n.el||"",r=t.Canvas,o=this.dragger,s=n.options||{},a=r.getCanvasView();return s.prefix=t.getConfig().stylePrefix,s.mousePosFetcher=r.getMouseRelativePos,s.posFetcher=a.getElementPos.bind(a),o||(o=t.Utils.Dragger.init(s),this.dragger=o),o.setOptions(s),o.focus(i),s.event&&o.start(s.event),o},stop:function(){this.canvasResizer&&this.canvasResizer.blur()}}},function(t,e,n){"use strict";t.exports=function(){var t,e,i,r={},o=n(201),s=n(202),a=n(204),l=n(205),c=[];return{name:"BlockManager",init:function(n){r=n||{};var u=r.em;for(var h in o)h in r||(r[h]=o[h]);return t=new s([]),e=new s([]),c=new a,i=new l({collection:e,categories:c},r),t.listenTo(t,"add",function(t){e.add(t),u&&u.trigger("block:add",t)}),t.listenTo(t,"remove",function(t){e.remove(t),u&&u.trigger("block:remove",t)}),t.listenTo(t,"reset",function(t){e.reset(t.models)}),this},getConfig:function(){return r},onLoad:function(){var t=this.getAll();!t.length&&t.reset(r.blocks)},add:function(e,n){var i=n||{};return i.id=e,t.add(i)},get:function(e){return t.get(e)},getAll:function(){return t},getAllVisible:function(){return e},remove:function(e){return t.remove(e)},getCategories:function(){return c},getContainer:function(){return i.el},render:function(t){var e=t||this.getAll().models;i.rendered||(i.render(),i.rendered=1),i.collection.reset(e)}}}},function(t,e,n){"use strict";t.exports={blocks:[],appendTo:""}},function(t,e,n){"use strict";var i=n(0),r=n(203);t.exports=i.Collection.extend({model:r})},function(t,e,n){"use strict";var i=n(0),r=n(55);t.exports=i.Model.extend({defaults:{label:"",content:"",category:"",attributes:{}},initialize:function(){var t=(arguments.length>0&&void 0!==arguments[0]&&arguments[0],this.get("category"));if(t&&"string"==typeof t){new r({id:t,label:t})}}})},function(t,e,n){"use strict";var i=n(0);t.exports=i.Collection.extend({model:n(55)})},function(t,e,n){"use strict";(function(e){var i=n(0),r=n(206),o=n(207);t.exports=i.View.extend({initialize:function(t,n){e.bindAll(this,"getSorter","onDrag","onDrop"),this.config=n||{},this.categories=t.categories||"",this.renderedCategories=[];var i=this.config.pStylePrefix||"";this.ppfx=i,this.noCatClass=i+"blocks-no-cat",this.blockContClass=i+"blocks-c",this.catsClass=i+"block-categories";var r=this.collection;this.listenTo(r,"add",this.addTo),this.listenTo(r,"reset",this.render),this.em=this.config.em,this.tac="test-tac",this.grabbingCls=this.ppfx+"grabbing",this.em&&(this.config.getSorter=this.getSorter,this.canvas=this.em.get("Canvas"))},getSorter:function(){if(this.em){if(!this.sorter){var t=this.em.get("Utils"),e=this.canvas;this.sorter=new t.Sorter({container:e.getBody(),placer:e.getPlacerEl(),containerSel:"*",itemSel:"*",pfx:this.ppfx,onStart:this.onDrag,onEndMove:this.onDrop,onMove:this.onMove,document:e.getFrameEl().contentDocument,direction:"a",wmargin:1,nested:1,em:this.em,canvasRelative:1})}return this.sorter}},onDrag:function(t){this.em.stopDefault(),this.em.trigger("block:drag:start",t)},onMove:function(t){this.em.trigger("block:drag:move",t)},onDrop:function(t){var e=this.em;e.runDefault(),t&&t.get&&(t.get("activeOnRender")&&(t.trigger("active"),t.set("activeOnRender",0)),e.initChildrenComp(t),e.trigger("block:drag:stop",t))},addTo:function(t){this.add(t)},add:function(t,e){var n=e||null,i=new r({model:t,attributes:t.get("attributes")},this.config),s=i.render().el,a=t.get("category");if(a&&this.categories){"string"==typeof a&&(a={id:a,label:a});var l=this.categories.add(a),c=l.get("id"),u=this.renderedCategories[c],h=this.getCategoriesEl();return t.set("category",l),!u&&h&&(u=new o({model:l},this.config).render(),this.renderedCategories[c]=u,h.appendChild(u.el)),void(u&&u.append(s))}n?n.appendChild(s):this.append(s)},getCategoriesEl:function(){return this.catsEl||(this.catsEl=this.el.querySelector("."+this.catsClass)),this.catsEl},getBlocksEl:function(){return this.blocksEl||(this.blocksEl=this.el.querySelector("."+this.noCatClass+" ."+this.blockContClass)),this.blocksEl},append:function(t){var e=this.getBlocksEl();e&&e.appendChild(t)},render:function(){var t=this,e=document.createDocumentFragment();return this.catsEl=null,this.blocksEl=null,this.renderedCategories=[],this.el.innerHTML='\n
\n
\n
\n
\n ',this.collection.each(function(n){return t.add(n,e)}),this.append(e),this.$el.addClass(this.blockContClass+"s"),this}})}).call(e,n(1))},function(t,e,n){"use strict";(function(e){var i=n(2);t.exports=e.View.extend({events:{mousedown:"startDrag"},initialize:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.config=e,this.endDrag=this.endDrag.bind(this),this.ppfx=e.pStylePrefix||"",this.listenTo(this.model,"destroy remove",this.remove)},startDrag:function(t){if(0===t.button&&this.config.getSorter){this.config.em.refreshCanvas();var e=this.config.getSorter();e.setDragHelper(this.el,t),e.startSort(this.el),e.setDropContent(this.model.get("content")),(0,i.on)(document,"mouseup",this.endDrag)}},endDrag:function(t){(0,i.off)(document,"mouseup",this.endDrag);var e=this.config.getSorter();e.moved=0,e.endMove()},render:function(){var t=this.el,e=this.ppfx+"block";return t.className+=" "+e,t.innerHTML='
'+this.model.get("label")+"
",this}})}).call(e,n(0))},function(t,e,n){"use strict";(function(e){var i=n(0);t.exports=i.View.extend({template:e.template('\n
\n \n <%= label %>\n
\n
\n '),events:{},initialize:function(){var t=(arguments.length>0&&void 0!==arguments[0]&&arguments[0],arguments.length>1&&void 0!==arguments[1]?arguments[1]:{});this.config=t;var e=this.config.pStylePrefix||"";this.pfx=e,this.caretR="fa fa-caret-right",this.caretD="fa fa-caret-down",this.iconClass=e+"caret-icon",this.activeClass=e+"open",this.className=e+"block-category",this.events["click ."+e+"title"]="toggle",this.listenTo(this.model,"change:open",this.updateVisibility),this.delegateEvents()},updateVisibility:function(){this.model.get("open")?this.open():this.close()},open:function(){this.el.className=this.className+" "+this.activeClass,this.getIconEl().className=this.iconClass+" "+this.caretD,this.getBlocksEl().style.display=""},close:function(){this.el.className=this.className,this.getIconEl().className=this.iconClass+" "+this.caretR,this.getBlocksEl().style.display="none"},toggle:function(){var t=this.model;t.set("open",!t.get("open"))},getIconEl:function(){return this.iconEl||(this.iconEl=this.el.querySelector("."+this.iconClass)),this.iconEl},getBlocksEl:function(){return this.blocksEl||(this.blocksEl=this.el.querySelector("."+this.pfx+"blocks-c")),this.blocksEl},append:function(t){this.getBlocksEl().appendChild(t)},render:function(){return this.el.innerHTML=this.template({pfx:this.pfx,label:this.model.get("label")}),this.el.className=this.className,this.updateVisibility(),this}})}).call(e,n(1))},function(t,e,n){var i,r,o;/*! +/*! grapesjs - 0.12.30 */ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.grapesjs=e():t.grapesjs=e()}(this,function(){return function(t){function e(i){if(n[i])return n[i].exports;var r=n[i]={i:i,l:!1,exports:{}};return t[i].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var n={};return e.m=t,e.c=n,e.d=function(t,n,i){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:i})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=58)}([function(t,e,n){(function(i){var r,o;!function(s){var a="object"==typeof self&&self.self===self&&self||"object"==typeof i&&i.global===i&&i;r=[n(1),n(8),e],void 0!==(o=function(t,e,n){a.Backbone=s(a,n,t,e)}.apply(e,r))&&(t.exports=o)}(function(t,e,n,i){var r=t.Backbone,o=Array.prototype.slice;e.VERSION="1.3.3",e.$=i,e.noConflict=function(){return t.Backbone=r,this},e.emulateHTTP=!1,e.emulateJSON=!1;var s=function(t,e,i){switch(t){case 1:return function(){return n[e](this[i])};case 2:return function(t){return n[e](this[i],t)};case 3:return function(t,r){return n[e](this[i],l(t,this),r)};case 4:return function(t,r,o){return n[e](this[i],l(t,this),r,o)};default:return function(){var t=o.call(arguments);return t.unshift(this[i]),n[e].apply(n,t)}}},a=function(t,e,i){n.each(e,function(e,r){n[r]&&(t.prototype[r]=s(e,r,i))})},l=function(t,e){return n.isFunction(t)?t:n.isObject(t)&&!e._isModel(t)?c(t):n.isString(t)?function(e){return e.get(t)}:t},c=function(t){var e=n.matches(t);return function(t){return e(t.attributes)}},u=e.Events={},h=/\s+/,d=function(t,e,i,r,o){var s,a=0;if(i&&"object"==typeof i){void 0!==r&&"context"in o&&void 0===o.context&&(o.context=r);for(s=n.keys(i);athis.length&&(r=this.length),r<0&&(r+=this.length+1);var o,s,a=[],l=[],c=[],u=[],h={},d=e.add,f=e.merge,p=e.remove,g=!1,m=this.comparator&&null==r&&!1!==e.sort,v=n.isString(this.comparator)?this.comparator:null;for(s=0;s7),this._useHashChange=this._wantsHashChange&&this._hasHashChange,this._wantsPushState=!!this.options.pushState,this._hasPushState=!(!this.history||!this.history.pushState),this._usePushState=this._wantsPushState&&this._hasPushState,this.fragment=this.getFragment(),this.root=("/"+this.root+"/").replace(_,"/"),this._wantsHashChange&&this._wantsPushState){if(!this._hasPushState&&!this.atRoot()){var e=this.root.slice(0,-1)||"/";return this.location.replace(e+"#"+this.getPath()),!0}this._hasPushState&&this.atRoot()&&this.navigate(this.getHash(),{replace:!0})}if(!this._hasHashChange&&this._wantsHashChange&&!this._usePushState){this.iframe=document.createElement("iframe"),this.iframe.src="javascript:0",this.iframe.style.display="none",this.iframe.tabIndex=-1;var i=document.body,r=i.insertBefore(this.iframe,i.firstChild).contentWindow;r.document.open(),r.document.close(),r.location.hash="#"+this.fragment}var o=window.addEventListener||function(t,e){return attachEvent("on"+t,e)};if(this._usePushState?o("popstate",this.checkUrl,!1):this._useHashChange&&!this.iframe?o("hashchange",this.checkUrl,!1):this._wantsHashChange&&(this._checkUrlInterval=setInterval(this.checkUrl,this.interval)),!this.options.silent)return this.loadUrl()},stop:function(){var t=window.removeEventListener||function(t,e){return detachEvent("on"+t,e)};this._usePushState?t("popstate",this.checkUrl,!1):this._useHashChange&&!this.iframe&&t("hashchange",this.checkUrl,!1),this.iframe&&(document.body.removeChild(this.iframe),this.iframe=null),this._checkUrlInterval&&clearInterval(this._checkUrlInterval),D.started=!1},route:function(t,e){this.handlers.unshift({route:t,callback:e})},checkUrl:function(t){var e=this.getFragment();if(e===this.fragment&&this.iframe&&(e=this.getHash(this.iframe.contentWindow)),e===this.fragment)return!1;this.iframe&&this.navigate(e),this.loadUrl()},loadUrl:function(t){return!!this.matchRoot()&&(t=this.fragment=this.getFragment(t),n.some(this.handlers,function(e){if(e.route.test(t))return e.callback(t),!0}))},navigate:function(t,e){if(!D.started)return!1;e&&!0!==e||(e={trigger:!!e}),t=this.getFragment(t||"");var n=this.root;""!==t&&"?"!==t.charAt(0)||(n=n.slice(0,-1)||"/");var i=n+t;if(t=this.decodeFragment(t.replace(F,"")),this.fragment!==t){if(this.fragment=t,this._usePushState)this.history[e.replace?"replaceState":"pushState"]({},document.title,i);else{if(!this._wantsHashChange)return this.location.assign(i);if(this._updateHash(this.location,t,e.replace),this.iframe&&t!==this.getHash(this.iframe.contentWindow)){var r=this.iframe.contentWindow;e.replace||(r.document.open(),r.document.close()),this._updateHash(r.location,t,e.replace)}}return e.trigger?this.loadUrl(t):void 0}},_updateHash:function(t,e,n){if(n){var i=t.href.replace(/(javascript:|#).*$/,"");t.replace(i+"#"+e)}else t.hash="#"+e}}),e.history=new D;var $=function(t,e){var i,r=this;return i=t&&n.has(t,"constructor")?t.constructor:function(){return r.apply(this,arguments)},n.extend(i,r,e),i.prototype=n.create(r.prototype,t),i.prototype.constructor=i,i.__super__=r.prototype,i};b.extend=x.extend=P.extend=S.extend=D.extend=$;var z=function(){throw new Error('A "url" property or function must be specified')},R=function(t,e){var n=e.error;e.error=function(i){n&&n.call(e.context,t,i,e),t.trigger("error",t,i,e)}};return e})}).call(e,n(15))},function(t,e,n){var i,r;(function(){function n(t){function e(e,n,i,r,o,s){for(;o>=0&&o0?0:a-1;return arguments.length<3&&(r=n[s?s[l]:l],l+=t),e(n,i,r,s,l,a)}}function o(t){return function(e,n,i){n=S(n,i);for(var r=A(e),o=t>0?0:r-1;o>=0&&o0?s=o>=0?o:Math.max(o+a,s):a=o>=0?Math.min(o+1,a):o+a+1;else if(n&&o&&a)return o=n(i,r),i[o]===r?o:-1;if(r!==r)return o=e(p.call(i,s,a),C.isNaN),o>=0?o+s:-1;for(o=t>0?s:a-1;o>=0&&o=0&&e<=P};C.each=C.forEach=function(t,e,n){e=k(e,n);var i,r;if(L(t))for(i=0,r=t.length;i=0},C.invoke=function(t,e){var n=p.call(arguments,2),i=C.isFunction(e);return C.map(t,function(t){var r=i?e:t[e];return null==r?r:r.apply(t,n)})},C.pluck=function(t,e){return C.map(t,C.property(e))},C.where=function(t,e){return C.filter(t,C.matcher(e))},C.findWhere=function(t,e){return C.find(t,C.matcher(e))},C.max=function(t,e,n){var i,r,o=-1/0,s=-1/0;if(null==e&&null!=t){t=L(t)?t:C.values(t);for(var a=0,l=t.length;ao&&(o=i)}else e=S(e,n),C.each(t,function(t,n,i){((r=e(t,n,i))>s||r===-1/0&&o===-1/0)&&(o=t,s=r)});return o},C.min=function(t,e,n){var i,r,o=1/0,s=1/0;if(null==e&&null!=t){t=L(t)?t:C.values(t);for(var a=0,l=t.length;ai||void 0===n)return 1;if(ne?(s&&(clearTimeout(s),s=null),a=c,o=t.apply(i,r),s||(i=r=null)):s||!1===n.trailing||(s=setTimeout(l,u)),o}},C.debounce=function(t,e,n){var i,r,o,s,a,l=function(){var c=C.now()-s;c=0?i=setTimeout(l,e-c):(i=null,n||(a=t.apply(o,r),i||(o=r=null)))};return function(){o=this,r=arguments,s=C.now();var c=n&&!i;return i||(i=setTimeout(l,e)),c&&(a=t.apply(o,r),o=r=null),a}},C.wrap=function(t,e){return C.partial(e,t)},C.negate=function(t){return function(){return!t.apply(this,arguments)}},C.compose=function(){var t=arguments,e=t.length-1;return function(){for(var n=e,i=t[e].apply(this,arguments);n--;)i=t[n].call(this,i);return i}},C.after=function(t,e){return function(){if(--t<1)return e.apply(this,arguments)}},C.before=function(t,e){var n;return function(){return--t>0&&(n=e.apply(this,arguments)),t<=1&&(e=null),n}},C.once=C.partial(C.before,2);var I=!{toString:null}.propertyIsEnumerable("toString"),_=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"];C.keys=function(t){if(!C.isObject(t))return[];if(y)return y(t);var e=[];for(var n in t)C.has(t,n)&&e.push(n);return I&&a(t,e),e},C.allKeys=function(t){if(!C.isObject(t))return[];var e=[];for(var n in t)e.push(n);return I&&a(t,e),e},C.values=function(t){for(var e=C.keys(t),n=e.length,i=Array(n),r=0;r":">",'"':""","'":"'","`":"`"},z=C.invert($),R=function(t){var e=function(e){return t[e]},n="(?:"+C.keys(t).join("|")+")",i=RegExp(n),r=RegExp(n,"g");return function(t){return t=null==t?"":""+t,i.test(t)?t.replace(r,e):t}};C.escape=R($),C.unescape=R(z),C.result=function(t,e,n){var i=null==t?void 0:t[e];return void 0===i&&(i=n),C.isFunction(i)?i.call(t):i};var H=0;C.uniqueId=function(t){var e=++H+"";return t?t+e:e},C.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var V=/(.)^/,j={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},B=/\\|'|\r|\n|\u2028|\u2029/g,W=function(t){return"\\"+j[t]};C.template=function(t,e,n){!e&&n&&(e=n),e=C.defaults({},e,C.templateSettings);var i=RegExp([(e.escape||V).source,(e.interpolate||V).source,(e.evaluate||V).source].join("|")+"|$","g"),r=0,o="__p+='";t.replace(i,function(e,n,i,s,a){return o+=t.slice(r,a).replace(B,W),r=a+e.length,n?o+="'+\n((__t=("+n+"))==null?'':_.escape(__t))+\n'":i?o+="'+\n((__t=("+i+"))==null?'':__t)+\n'":s&&(o+="';\n"+s+"\n__p+='"),e}),o+="';\n",e.variable||(o="with(obj||{}){\n"+o+"}\n"),o="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+o+"return __p;\n";try{var s=new Function(e.variable||"obj","_",o)}catch(t){throw t.source=o,t}var a=function(t){return s.call(this,t,C)};return a.source="function("+(e.variable||"obj")+"){\n"+o+"}",a},C.chain=function(t){var e=C(t);return e._chain=!0,e};var U=function(t,e){return t._chain?C(e).chain():e};C.mixin=function(t){C.each(C.functions(t),function(e){var n=C[e]=t[e];C.prototype[e]=function(){var t=[this._wrapped];return f.apply(t,arguments),U(this,n.apply(C,t))}})},C.mixin(C),C.each(["pop","push","reverse","shift","sort","splice","unshift"],function(t){var e=u[t];C.prototype[t]=function(){var n=this._wrapped;return e.apply(n,arguments),"shift"!==t&&"splice"!==t||0!==n.length||delete n[0],U(this,n)}}),C.each(["concat","join","slice"],function(t){var e=u[t];C.prototype[t]=function(){return U(this,e.apply(this._wrapped,arguments))}}),C.prototype.value=function(){return this._wrapped},C.prototype.valueOf=C.prototype.toJSON=C.prototype.value,C.prototype.toString=function(){return""+this._wrapped},i=[],void 0!==(r=function(){return C}.apply(e,i))&&(t.exports=r)}).call(this)},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=window.Element.prototype,r=i.matches||i.webkitMatchesSelector||i.mozMatchesSelector||i.msMatchesSelector,o=function(t,e,n){e=e.split(/\s+/),t=t instanceof Array?t:[t];for(var i=0;i0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.sm||e.em||{},i=this.parent(),s=i&&i.attributes;if(s&&s.propagate){var a={},l=s.propagate;l.forEach(function(t){return a[t]=i.get(t)}),a.propagate=l,a=r({},a,t),this.set(a)}var c=this.get("propagate");c&&this.set("propagate",(0,o.isArray)(c)?c:[c]),e&&e.config&&e.config.voidElements.indexOf(this.get("tagName"))>=0&&this.set("void",!0),e.em=n,this.opt=e,this.sm=n,this.em=n,this.config=t,this.set("attributes",this.get("attributes")||{}),this.listenTo(this,"change:script",this.scriptUpdated),this.listenTo(this,"change:traits",this.traitsUpdated),this.loadTraits(),this.initClasses(),this.initComponents(),this.initToolbar(),["stylable"].forEach(function(t){var e=this.get(t);if("string"==typeof e){var n=e.split(",").map(function(t){return t.trim()});this.set(t,n)}},this),this.set("status",""),this.init()},setAttributes:function(t){t=r({},t);var e=t.class;e&&this.setClass(e),delete t.class;var n=t.style;n&&this.setStyle(n),delete t.style,this.set("attributes",t)},getAttributes:function(){return this.get("attributes")},addClass:function(t){var e=this.em.get("SelectorManager").addClass(t);return this.get("classes").add(e)},setClass:function(t){return this.get("classes").reset(),this.addClass(t)},initClasses:function(){var t=this.normalizeClasses(this.get("classes")||this.config.classes||[]);return this.set("classes",new u(t)),this},initComponents:function(){var t=new c(null,this.opt);return t.parent=this,t.reset(this.get("components")),this.set("components",t),this},init:function(){},append:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.components().add(t,e);return(0,o.isArray)(n)?n:[n]},components:function(t){var e=this.get("components");if((0,o.isUndefined)(t))return e;e.reset(),t&&this.append(t)},parent:function(){var t=this.collection;return t&&t.parent},scriptUpdated:function(){this.set("scriptUpdated",1)},traitsUpdated:function(){var t=0,e=Object.assign({},this.get("attributes")),n=this.get("traits");if(!(n instanceof h))return void this.loadTraits();n.each(function(n){if(t=1,!n.get("changeProp")){var i=n.getInitValue();i&&(e[n.get("name")]=i)}}),t&&this.set("attributes",e)},initToolbar:function(){var t=this;if(!t.get("toolbar")){var e=[];t.collection&&e.push({attributes:{class:"fa fa-arrow-up"},command:"select-parent"}),t.get("draggable")&&e.push({attributes:{class:"fa fa-arrows"},command:"tlb-move"}),t.get("copyable")&&e.push({attributes:{class:"fa fa-clone"},command:"tlb-clone"}),t.get("removable")&&e.push({attributes:{class:"fa fa-trash-o"},command:"tlb-delete"}),t.set("toolbar",e)}},loadTraits:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=new h([],this.opt);return n.setTarget(this),t=t||this.get("traits"),t.length&&n.add(t),this.set("traits",n,e),this},normalizeClasses:function(t){var e=[];if(this.sm.get){var n=this.sm.get("SelectorManager");if(n)return t.forEach(function(t){var i="";i="string"==typeof t?t:t.name;var r=n.add(i);e.push(r)}),e}},clone:function(t){var n=e.clone(this.attributes),i=this.get("components"),r=this.get("traits"),o=this.get("classes");return n.components=[],n.classes=[],n.traits=[],i.each(function(t,e){n.components[e]=t.clone(1)}),r.each(function(t,e){n.traits[e]=t.clone()}),o.each(function(t,e){n.classes[e]=t.get("name")}),n.status="",n.view="",t&&(this.opt.collection=null),new this.constructor(n,this.opt)},getName:function(){var t=this.get("custom-name"),e=this.get("tagName");e="div"==e?"box":e;var n=this.get("type")||e;return n=n.charAt(0).toUpperCase()+n.slice(1),t||n},getIcon:function(){var t=this.get("icon");return t?t+" ":""},toHTML:function(t){var n="",r=this,o=r.get("tagName"),s=0,a=r.get("void"),l="",c="",u=this.getAttrToHTML();for(var h in u){"id"==h&&(s=1);var d=u[h];c+=void 0!==(void 0===d?"undefined":i(d))&&""!==d?" "+h+'="'+d+'"':""}var f="";return r.get("classes").each(function(t){f+=" "+t.get("name")}),f=""!==f?' class="'+f.trim()+'"':"",e.isEmpty(r.get("style"))||s||(l=' id="'+r.getId()+'" '),n+="<"+o+f+l+c+(a?"/":"")+">"+r.get("content"),r.get("components").each(function(t){n+=t.toHTML()}),a||(n+=""),n},getAttrToHTML:function(){var t=this.get("attributes")||{};return delete t.style,t},toJSON:function(){for(var t=arguments.length,e=Array(t),n=0;n\n '+this.templateLabel(t)+'\n
\n
\n '+this.templateInput(t)+"\n
\n "},templateLabel:function(t){var e=this.pfx;return'\n \n '+t.get("name")+'\n \n ⨯\n '},templateInput:function(t){return'\n
\n \n
\n '},events:{change:"inputValueChanged"},initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,i.bindAll)(this,"targetUpdated"),this.config=t.config||{};var e=this.config.em;this.em=e,this.pfx=this.config.stylePrefix||"",this.ppfx=this.config.pStylePrefix||"",this.target=t.target||{},this.propTarget=t.propTarget||{},this.onChange=t.onChange,this.onInputRender=t.onInputRender||{},this.customValue=t.customValue||{};var n=this.model;this.property=n.get("property"),this.input=null;var r=this.pfx;this.inputHolderId="#"+r+"input-holder",this.sector=n.collection&&n.collection.sector,n.view=this,n.get("value")||n.set("value",n.getDefaultValue()),e&&e.on("update:component:style:"+this.property,this.targetUpdated),this.listenTo(this.propTarget,"update",this.targetUpdated),this.listenTo(n,"destroy remove",this.remove),this.listenTo(n,"change:value",this.modelValueChanged),this.listenTo(n,"targetUpdated",this.targetUpdated),this.listenTo(n,"change:visible",this.updateVisibility),this.listenTo(n,"change:status",this.updateStatus),this.events["click ."+r+"clear"]="clear",this.delegateEvents();var o=this.init&&this.init.bind(this);o&&o()},updateStatus:function(){var t=this.model.get("status"),e=this.pfx,n=this.ppfx,i=this.config,r=n+"color-hl",o=n+"color-warn",s=this.$el.children("."+e+"label"),a=this.getClearEl().style;switch(s.removeClass(r+" "+o),a.display="none",t){case"updated":s.addClass(r),i.clearProperties&&(a.display="inline");break;case"computed":s.addClass(o)}},clear:function(){this.getTargetModel().removeStyle(this.model.get("property")),this.targetUpdated()},getClearEl:function(){return this.el.querySelector("."+this.pfx+"clear")},getTarget:function(){return this.getTargetModel()},getTargetModel:function(){return this.propTarget&&this.propTarget.model},getHelperModel:function(){return this.propTarget&&this.propTarget.helper},inputValueChanged:function(t){t&&t.stopPropagation(),this.model.setValue(this.getInputValue(),1,{fromInput:1}),this.elementUpdated()},elementUpdated:function(){this.model.set("status","updated");var t=this.model.parent,e=t&&t.view;e&&e.elementUpdated()},setStatus:function(t){this.model.set("status",t);var e=this.model.parent;e&&e.set("status",t)},targetUpdated:function(){if(this.checkVisibility()){var t=this.config,e=t.em,n=this.model,i="",r="",o=this.getTargetValue({ignoreDefault:1}),s=n.getDefaultValue(),a=this.getComputedValue();o?(i=o,t.highlightChanged&&(r="updated")):a&&t.showComputed&&a!=s?(i=a,t.highlightComputed&&(r="computed")):(i=s,r=""),n.setValue(i,0,{fromTarget:1}),this.setStatus(r),e&&(e.trigger("styleManager:change",this),e.trigger("styleManager:change:"+n.get("property"),this))}},checkVisibility:function(){var t=1;return this.config.hideNotStylable&&(this.isTargetStylable()&&this.isComponentStylable()?this.show():(this.hide(),t=0),this.sector&&this.sector.trigger("updateVisibility")),t},getTargetValue:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.model,i=this.getTargetModel(),r=this.customValue;if(!i)return t;if(t=i.getStyle()[n.get("property")],t||e.ignoreDefault||(t=n.getDefaultValue()),"function"==typeof r&&!e.ignoreCustomValue){var o=n.collection.indexOf(n),s=r(this,o);s&&(t=s)}return t},getComputedValue:function(){var t=this.propTarget,e=t.computed||{},n=t.computedDefault||{},i=this.config.avoidComputed||[],o=this.model.get("property"),s=i.indexOf(o)<0,a=e[o],l=n[(0,r.camelCase)(o)];return e&&s&&l!==a&&a},getInputValue:function(){var t=this.getInputEl();return t?t.value:""},modelValueChanged:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=this.config.em,r=this.model,o=r.getFullValue(),s=this.getTarget(),a=this.onChange;n.fromInput||this.setValue(o),s&&this.isTargetStylable()&&this.isComponentStylable()&&(n.fromTarget||(a&&!n.fromParent?a(s,this,n):this.updateTargetStyle(o,null,n)),i&&(i.trigger("component:update",r),i.trigger("component:styleUpdate",r),i.trigger("component:styleUpdate:"+r.get("property"),r)))},updateTargetStyle:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=e||this.model.get("property"),r=this.getTarget(),o=r.getStyle();t?o[i]=t:delete o[i],r.setStyle(o,n);var s=this.getHelperModel();s&&s.setStyle(o,n)},isTargetStylable:function(t){this.model.get("id");var e=t||this.getTarget(),n=this.model,r=n.get("property"),o=n.get("toRequire"),s=e.get("unstylable"),a=e.get("stylable-require"),l=e.get("stylable");return(0,i.isArray)(l)&&(l=l.indexOf(r)>=0),(0,i.isArray)(s)&&(l=s.indexOf(r)<0),o&&(l=a&&a.indexOf(r)>=0||!t),l},isComponentStylable:function(){var t=this.em,e=t&&t.get("selectedComponent");return!e||this.isTargetStylable(e)},setRawValue:function(t){this.setValue(this.model.parseValue(t))},setValue:function(t){var e=this.model,n=t||e.getDefaultValue(),i=this.getInputEl();i&&(i.value=n)},getInputEl:function(){return this.input||(this.input=this.el.querySelector("input")),this.input},updateVisibility:function(){this.el.style.display=this.model.get("visible")?"block":"none"},show:function(){this.model.set("visible",1)},hide:function(){this.model.set("visible",0)},cleanValue:function(){this.setValue("")},render:function(){var t=this.pfx,e=this.model,n=this.el;n.innerHTML=this.template(e),n.className=t+"property "+t+e.get("type"),this.updateStatus();var i=this.onRender&&this.onRender.bind(this);i&&i(),this.setValue(e.get("value"),{targetUpdate:1})}})}).call(e,n(0))},function(t,e,n){!function(e,n){t.exports=n()}(0,function(){"use strict";function t(t){return new RegExp("(^|\\s)"+t+"(?:$|\\s)\\s*")}function e(t){for(var e=t.childNodes.length;e>0;--e)t.removeChild(t.firstChild);return t}function n(t,n){return e(t).appendChild(n)}function i(t,e,n,i){var r=document.createElement(t);if(n&&(r.className=n),i&&(r.style.cssText=i),"string"==typeof e)r.appendChild(document.createTextNode(e));else if(e)for(var o=0;o=e)return s+(e-o);s+=a-o,s+=n-s%n,o=a+1}}function d(t,e){for(var n=0;n=e)return i+Math.min(s,e-r);if(r+=o-i,r+=n-r%n,i=o+1,r>=e)return i}}function p(t){for(;qs.length<=t;)qs.push(g(qs)+" ");return qs[t]}function g(t){return t[t.length-1]}function m(t,e){for(var n=[],i=0;i"ย€"&&(t.toUpperCase()!=t.toLowerCase()||Ks.test(t))}function w(t,e){return e?!!(e.source.indexOf("\\w")>-1&&x(t))||e.test(t):x(t)}function C(t){for(var e in t)if(t.hasOwnProperty(e)&&t[e])return!1;return!0}function k(t){return t.charCodeAt(0)>=768&&Gs.test(t)}function S(t,e,n){for(;(n<0?e>0:en?-1:1;;){if(e==n)return e;var r=(e+n)/2,o=i<0?Math.ceil(r):Math.floor(r);if(o==e)return t(o)?e:n;t(o)?n=o:e=o+i}}function M(t,e,n){var o=this;this.input=n,o.scrollbarFiller=i("div",null,"CodeMirror-scrollbar-filler"),o.scrollbarFiller.setAttribute("cm-not-content","true"),o.gutterFiller=i("div",null,"CodeMirror-gutter-filler"),o.gutterFiller.setAttribute("cm-not-content","true"),o.lineDiv=r("div",null,"CodeMirror-code"),o.selectionDiv=i("div",null,null,"position: relative; z-index: 1"),o.cursorDiv=i("div",null,"CodeMirror-cursors"),o.measure=i("div",null,"CodeMirror-measure"),o.lineMeasure=i("div",null,"CodeMirror-measure"),o.lineSpace=r("div",[o.measure,o.lineMeasure,o.selectionDiv,o.cursorDiv,o.lineDiv],null,"position: relative; outline: none");var s=r("div",[o.lineSpace],"CodeMirror-lines");o.mover=i("div",[s],null,"position: relative"),o.sizer=i("div",[o.mover],"CodeMirror-sizer"),o.sizerWidth=null,o.heightForcer=i("div",null,null,"position: absolute; height: "+Vs+"px; width: 1px;"),o.gutters=i("div",null,"CodeMirror-gutters"),o.lineGutter=null,o.scroller=i("div",[o.sizer,o.heightForcer,o.gutters],"CodeMirror-scroll"),o.scroller.setAttribute("tabIndex","-1"),o.wrapper=i("div",[o.scrollbarFiller,o.gutterFiller,o.scroller],"CodeMirror"),vs&&ys<8&&(o.gutters.style.zIndex=-1,o.scroller.style.paddingRight=0),bs||fs&&Ps||(o.scroller.draggable=!0),t&&(t.appendChild?t.appendChild(o.wrapper):t(o.wrapper)),o.viewFrom=o.viewTo=e.first,o.reportedViewFrom=o.reportedViewTo=e.first,o.view=[],o.renderedView=null,o.externalMeasured=null,o.viewOffset=0,o.lastWrapHeight=o.lastWrapWidth=0,o.updateLineNumbers=null,o.nativeBarWidth=o.barHeight=o.barWidth=0,o.scrollbarsClipped=!1,o.lineNumWidth=o.lineNumInnerWidth=o.lineNumChars=null,o.alignWidgets=!1,o.cachedCharWidth=o.cachedTextHeight=o.cachedPaddingH=null,o.maxLine=null,o.maxLineLength=0,o.maxLineChanged=!1,o.wheelDX=o.wheelDY=o.wheelStartX=o.wheelStartY=null,o.shift=!1,o.selForContextMenu=null,o.activeTouch=null,n.init(o)}function E(t,e){if((e-=t.first)<0||e>=t.size)throw new Error("There is no line "+(e+t.first)+" in the document.");for(var n=t;!n.lines;)for(var i=0;;++i){var r=n.children[i],o=r.chunkSize();if(e=t.first&&en?_(n,E(t,n).text.length):B(e,E(t,e.line).text.length)}function B(t,e){var n=t.ch;return null==n||n>e?_(t.line,e):n<0?_(t.line,0):t}function W(t,e){for(var n=[],i=0;i=e:o.to>e);(i||(i=[])).push(new K(s,o.from,l?null:o.to))}}return i}function Z(t,e,n){var i;if(t)for(var r=0;r=e:o.to>e);if(a||o.from==e&&"bookmark"==s.type&&(!n||o.marker.insertLeft)){var l=null==o.from||(s.inclusiveLeft?o.from<=e:o.from0&&a)for(var w=0;w0)){var u=[l,1],h=F(c.from,a.from),f=F(c.to,a.to);(h<0||!s.inclusiveLeft&&!h)&&u.push({from:c.from,to:a.from}),(f>0||!s.inclusiveRight&&!f)&&u.push({from:a.to,to:c.to}),r.splice.apply(r,u),l+=u.length-3}}return r}function nt(t){var e=t.markedSpans;if(e){for(var n=0;n=0&&h<=0||u<=0&&h>=0)&&(u<=0&&(l.marker.inclusiveRight&&r.inclusiveLeft?F(c.to,n)>=0:F(c.to,n)>0)||u>=0&&(l.marker.inclusiveRight&&r.inclusiveLeft?F(c.from,i)<=0:F(c.from,i)<0)))return!0}}}function ht(t){for(var e;e=lt(t);)t=e.find(-1,!0).line;return t}function dt(t){for(var e;e=ct(t);)t=e.find(1,!0).line;return t}function ft(t){for(var e,n;e=ct(t);)t=e.find(1,!0).line,(n||(n=[])).push(t);return n}function pt(t,e){var n=E(t,e),i=ht(n);return n==i?e:O(i)}function gt(t,e){if(e>t.lastLine())return e;var n,i=E(t,e);if(!mt(t,i))return e;for(;n=ct(i);)i=n.find(1,!0).line;return O(i)+1}function mt(t,e){var n=Xs&&e.markedSpans;if(n)for(var i=void 0,r=0;re.maxLineLength&&(e.maxLineLength=n,e.maxLine=t)})}function wt(t,e,n,i){if(!t)return i(e,n,"ltr",0);for(var r=!1,o=0;oe||e==n&&s.to==e)&&(i(Math.max(s.from,e),Math.min(s.to,n),1==s.level?"rtl":"ltr",o),r=!0)}r||i(e,n,"ltr")}function Ct(t,e,n){var i;Js=null;for(var r=0;re)return r;o.to==e&&(o.from!=o.to&&"before"==n?i=r:Js=r),o.from==e&&(o.from!=o.to&&"before"!=n?i=r:Js=r)}return null!=i?i:Js}function kt(t,e){var n=t.order;return null==n&&(n=t.order=Zs(t.text,e)),n}function St(t,e){return t._handlers&&t._handlers[e]||Qs}function Tt(t,e,n){if(t.removeEventListener)t.removeEventListener(e,n,!1);else if(t.detachEvent)t.detachEvent("on"+e,n);else{var i=t._handlers,r=i&&i[e];if(r){var o=d(r,n);o>-1&&(i[e]=r.slice(0,o).concat(r.slice(o+1)))}}}function Mt(t,e){var n=St(t,e);if(n.length)for(var i=Array.prototype.slice.call(arguments,2),r=0;r0}function Lt(t){t.prototype.on=function(t,e){ta(this,t,e)},t.prototype.off=function(t,e){Tt(this,t,e)}}function Ot(t){t.preventDefault?t.preventDefault():t.returnValue=!1}function Nt(t){t.stopPropagation?t.stopPropagation():t.cancelBubble=!0}function Dt(t){return null!=t.defaultPrevented?t.defaultPrevented:0==t.returnValue}function It(t){Ot(t),Nt(t)}function _t(t){return t.target||t.srcElement}function Ft(t){var e=t.which;return null==e&&(1&t.button?e=1:2&t.button?e=3:4&t.button&&(e=2)),As&&t.ctrlKey&&1==e&&(e=3),e}function $t(t){if(null==Rs){var e=i("span","โ€‹");n(t,i("span",[e,document.createTextNode("x")])),0!=t.firstChild.offsetHeight&&(Rs=e.offsetWidth<=1&&e.offsetHeight>2&&!(vs&&ys<8))}var r=Rs?i("span","โ€‹"):i("span","ย ",null,"display: inline-block; width: 1px; margin-right: -1px");return r.setAttribute("cm-text",""),r}function zt(t){if(null!=Hs)return Hs;var i=n(t,document.createTextNode("AุฎA")),r=Ds(i,0,1).getBoundingClientRect(),o=Ds(i,1,2).getBoundingClientRect();return e(t),!(!r||r.left==r.right)&&(Hs=o.right-r.right<3)}function Rt(t){if(null!=oa)return oa;var e=n(t,i("span","x")),r=e.getBoundingClientRect(),o=Ds(e,0,1).getBoundingClientRect();return oa=Math.abs(r.left-o.left)>1}function Ht(t,e){arguments.length>2&&(e.dependencies=Array.prototype.slice.call(arguments,2)),sa[t]=e}function Vt(t,e){aa[t]=e}function jt(t){if("string"==typeof t&&aa.hasOwnProperty(t))t=aa[t];else if(t&&"string"==typeof t.name&&aa.hasOwnProperty(t.name)){var e=aa[t.name];"string"==typeof e&&(e={name:e}),t=b(e,t),t.name=e.name}else{if("string"==typeof t&&/^[\w\-]+\/[\w\-]+\+xml$/.test(t))return jt("application/xml");if("string"==typeof t&&/^[\w\-]+\/[\w\-]+\+json$/.test(t))return jt("application/json")}return"string"==typeof t?{name:t}:t||{name:"null"}}function Bt(t,e){e=jt(e);var n=sa[e.name];if(!n)return Bt(t,"text/plain");var i=n(t,e);if(la.hasOwnProperty(e.name)){var r=la[e.name];for(var o in r)r.hasOwnProperty(o)&&(i.hasOwnProperty(o)&&(i["_"+o]=i[o]),i[o]=r[o])}if(i.name=e.name,e.helperType&&(i.helperType=e.helperType),e.modeProps)for(var s in e.modeProps)i[s]=e.modeProps[s];return i}function Wt(t,e){u(e,la.hasOwnProperty(t)?la[t]:la[t]={})}function Ut(t,e){if(!0===e)return e;if(t.copyState)return t.copyState(e);var n={};for(var i in e){var r=e[i];r instanceof Array&&(r=r.concat([])),n[i]=r}return n}function qt(t,e){for(var n;t.innerMode&&(n=t.innerMode(e))&&n.mode!=t;)e=n.state,t=n.mode;return n||{mode:t,state:e}}function Kt(t,e,n){return!t.startState||t.startState(e,n)}function Gt(t,e,n,i){var r=[t.state.modeGen],o={};ne(t,e.text,t.doc.mode,n,function(t,e){return r.push(t,e)},o,i);for(var s=n.state,a=0;at&&r.splice(l,1,t,r[l+1],i),l+=2,c=Math.min(t,i)}if(e)if(a.opaque)r.splice(n,l-n,t,"overlay "+e),l=n+2;else for(;nt.options.maxHighlightLength&&Ut(t.doc.mode,i.state),o=Gt(t,e,i);r&&(i.state=r),e.stateAfter=i.save(!r),e.styles=o.styles,o.classes?e.styleClasses=o.classes:e.styleClasses&&(e.styleClasses=null),n===t.doc.highlightFrontier&&(t.doc.modeFrontier=Math.max(t.doc.modeFrontier,++t.doc.highlightFrontier))}return e.styles}function Xt(t,e,n){var i=t.doc,r=t.display;if(!i.mode.startState)return new ha(i,!0,e);var o=ie(t,e,n),s=o>i.first&&E(i,o-1).stateAfter,a=s?ha.fromSaved(i,s,o):new ha(i,Kt(i.mode),o);return i.iter(o,e,function(n){Jt(t,n.text,a);var i=a.line;n.stateAfter=i==e-1||i%5==0||i>=r.viewFrom&&ie.start)return o}throw new Error("Mode "+t.name+" failed to advance stream.")}function te(t,e,n,i){var r,o=t.doc,s=o.mode;e=j(o,e);var a,l=E(o,e.line),c=Xt(t,e.line,n),u=new ca(l.text,t.options.tabSize,c);for(i&&(a=[]);(i||u.post.options.maxHighlightLength?(a=!1,s&&Jt(t,e,i,h.pos),h.pos=e.length,l=null):l=ee(Qt(n,h,i.state,d),o),d){var f=d[0].name;f&&(l="m-"+(l?f+" "+l:f))}if(!a||u!=l){for(;cs;--a){if(a<=o.first)return o.first;var l=E(o,a-1),c=l.stateAfter;if(c&&(!n||a+(c instanceof ua?c.lookAhead:0)<=o.modeFrontier))return a;var u=h(l.text,null,t.options.tabSize);(null==r||i>u)&&(r=a-1,i=u)}return r}function re(t,e){if(t.modeFrontier=Math.min(t.modeFrontier,e),!(t.highlightFrontiern;i--){var r=E(t,i).stateAfter;if(r&&(!(r instanceof ua)||i+r.lookAhead1&&!/ /.test(t))return t;for(var n=e,i="",r=0;rc&&h.from<=c));d++);if(h.to>=u)return t(n,i,r,o,s,a,l);t(n,i.slice(0,h.to-c),r,o,null,a,l),o=null,i=i.slice(h.to-c),c=h.to}}}function fe(t,e,n,i){var r=!i&&n.widgetNode;r&&t.map.push(t.pos,t.pos+e,r),!i&&t.cm.display.input.needsContentAttribute&&(r||(r=t.content.appendChild(document.createElement("span"))),r.setAttribute("cm-marker",n.id)),r&&(t.cm.display.input.setUneditable(r),t.content.appendChild(r)),t.pos+=e,t.trailingSpace=!1}function pe(t,e,n){var i=t.markedSpans,r=t.text,o=0;if(i)for(var s,a,l,c,u,h,d,f=r.length,p=0,g=1,m="",v=0;;){if(v==p){l=c=u=h=a="",d=null,v=1/0;for(var y=[],b=void 0,x=0;xp||C.collapsed&&w.to==p&&w.from==p)?(null!=w.to&&w.to!=p&&v>w.to&&(v=w.to,c=""),C.className&&(l+=" "+C.className),C.css&&(a=(a?a+";":"")+C.css),C.startStyle&&w.from==p&&(u+=" "+C.startStyle),C.endStyle&&w.to==v&&(b||(b=[])).push(C.endStyle,w.to),C.title&&!h&&(h=C.title),C.collapsed&&(!d||st(d.marker,C)<0)&&(d=w)):w.from>p&&v>w.from&&(v=w.from)}if(b)for(var k=0;k=f)break;for(var T=Math.min(f,v);;){if(m){var M=p+m.length;if(!d){var E=M>T?m.slice(0,T-p):m;e.addToken(e,E,s?s+l:l,u,p+E.length==v?c:"",h,a)}if(M>=T){m=m.slice(T-p),p=T;break}p=M,u=""}m=r.slice(o,o=n[g++]),s=ae(n[g++],e.cm.options)}}else for(var P=1;P2&&o.push((l.bottom+c.top)/2-n.top)}}o.push(n.bottom-n.top)}}function Be(t,e,n){if(t.line==e)return{map:t.measure.map,cache:t.measure.cache};for(var i=0;in)return{map:t.measure.maps[r],cache:t.measure.caches[r],before:!0}}function We(t,e){e=ht(e);var i=O(e),r=t.display.externalMeasured=new ge(t.doc,e,i);r.lineN=i;var o=r.built=le(t,r);return r.text=o.pre,n(t.display.lineMeasure,o.pre),r}function Ue(t,e,n,i){return Ge(t,Ke(t,e),n,i)}function qe(t,e){if(e>=t.display.viewFrom&&e=n.lineN&&ee)&&(o=l-a,r=o-1,e>=l&&(s="right")),null!=r){if(i=t[c+2],a==l&&n==(i.insertLeft?"left":"right")&&(s=n),"left"==n&&0==r)for(;c&&t[c-2]==t[c-3]&&t[c-1].insertLeft;)i=t[2+(c-=3)],s="left";if("right"==n&&r==l-a)for(;c=0&&(n=t[r]).left==n.right;r--);return n}function Je(t,e,n,i){var r,o=Ye(e.map,n,i),s=o.node,a=o.start,l=o.end,c=o.collapse;if(3==s.nodeType){for(var u=0;u<4;u++){for(;a&&k(e.line.text.charAt(o.coverStart+a));)--a;for(;o.coverStart+l0&&(c=i="right");var h;r=t.options.lineWrapping&&(h=s.getClientRects()).length>1?h["right"==i?h.length-1:0]:s.getBoundingClientRect()}if(vs&&ys<9&&!a&&(!r||!r.left&&!r.right)){var d=s.parentNode.getClientRects()[0];r=d?{left:d.left,right:d.left+xn(t.display),top:d.top,bottom:d.bottom}:ba}for(var f=r.top-e.rect.top,p=r.bottom-e.rect.top,g=(f+p)/2,m=e.view.measure.heights,v=0;v=i.text.length?(c=i.text.length,u="before"):c<=0&&(c=0,u="after"),!l)return s("before"==u?c-1:c,"before"==u);var h=Ct(l,c,u),d=Js,f=a(c,h,"before"==u);return null!=d&&(f.other=a(c,d,"before"!=u)),f}function un(t,e){var n=0;e=j(t.doc,e),t.options.lineWrapping||(n=xn(t.display)*e.ch);var i=E(t.doc,e.line),r=yt(i)+Fe(t.display);return{left:n,right:n,top:r,bottom:r+i.height}}function hn(t,e,n,i,r){var o=_(t,e,n);return o.xRel=r,i&&(o.outside=!0),o}function dn(t,e,n){var i=t.doc;if((n+=t.display.viewOffset)<0)return hn(i.first,0,null,!0,-1);var r=N(i,n),o=i.first+i.size-1;if(r>o)return hn(i.first+i.size-1,E(i,o).text.length,null,!0,1);e<0&&(e=0);for(var s=E(i,r);;){var a=mn(t,s,r,e,n),l=ct(s),c=l&&l.find(0,!0);if(!l||!(a.ch>c.from.ch||a.ch==c.from.ch&&a.xRel>0))return a;r=O(s=c.to.line)}}function fn(t,e,n,i){i-=on(e);var r=e.text.length,o=T(function(e){return Ge(t,n,e-1).bottom<=i},r,0);return r=T(function(e){return Ge(t,n,e).top>i},o,r),{begin:o,end:r}}function pn(t,e,n,i){return n||(n=Ke(t,e)),fn(t,e,n,sn(t,e,Ge(t,n,i),"line").top)}function gn(t,e,n,i){return!(t.bottom<=n)&&(t.top>n||(i?t.left:t.right)>e)}function mn(t,e,n,i,r){r-=yt(e);var o=Ke(t,e),s=on(e),a=0,l=e.text.length,c=!0,u=kt(e,t.doc.direction);if(u){var h=(t.options.lineWrapping?yn:vn)(t,e,n,o,u,i,r);c=1!=h.level,a=c?h.from:h.to-1,l=c?h.to:h.from-1}var d,f,p=null,g=null,m=T(function(e){var n=Ge(t,o,e);return n.top+=s,n.bottom+=s,!!gn(n,i,r,!1)&&(n.top<=r&&n.left<=i&&(p=e,g=n),!0)},a,l),v=!1;if(g){var y=i-g.left=x.bottom}return m=S(e.text,m,1),hn(n,m,f,v,i-d)}function vn(t,e,n,i,r,o,s){var a=T(function(a){var l=r[a],c=1!=l.level;return gn(cn(t,_(n,c?l.to:l.from,c?"before":"after"),"line",e,i),o,s,!0)},0,r.length-1),l=r[a];if(a>0){var c=1!=l.level,u=cn(t,_(n,c?l.from:l.to,c?"after":"before"),"line",e,i);gn(u,o,s,!0)&&u.top>s&&(l=r[a-1])}return l}function yn(t,e,n,i,r,o,s){var a=fn(t,e,i,s),l=a.begin,c=a.end;/\s/.test(e.text.charAt(c-1))&&c--;for(var u=null,h=null,d=0;d=c||f.to<=l)){var p=1!=f.level,g=Ge(t,i,p?Math.min(c,f.to)-1:Math.max(l,f.from)).right,m=gm)&&(u=f,h=m)}}return u||(u=r[r.length-1]),u.fromc&&(u={from:u.from,to:c,level:u.level}),u}function bn(t){if(null!=t.cachedTextHeight)return t.cachedTextHeight;if(null==pa){pa=i("pre");for(var r=0;r<49;++r)pa.appendChild(document.createTextNode("x")),pa.appendChild(i("br"));pa.appendChild(document.createTextNode("x"))}n(t.measure,pa);var o=pa.offsetHeight/50;return o>3&&(t.cachedTextHeight=o),e(t.measure),o||1}function xn(t){if(null!=t.cachedCharWidth)return t.cachedCharWidth;var e=i("span","xxxxxxxxxx"),r=i("pre",[e]);n(t.measure,r);var o=e.getBoundingClientRect(),s=(o.right-o.left)/10;return s>2&&(t.cachedCharWidth=s),s||10}function wn(t){for(var e=t.display,n={},i={},r=e.gutters.clientLeft,o=e.gutters.firstChild,s=0;o;o=o.nextSibling,++s)n[t.options.gutters[s]]=o.offsetLeft+o.clientLeft+r,i[t.options.gutters[s]]=o.clientWidth;return{fixedPos:Cn(e),gutterTotalWidth:e.gutters.offsetWidth,gutterLeft:n,gutterWidth:i,wrapperWidth:e.wrapper.clientWidth}}function Cn(t){return t.scroller.getBoundingClientRect().left-t.sizer.getBoundingClientRect().left}function kn(t){var e=bn(t.display),n=t.options.lineWrapping,i=n&&Math.max(5,t.display.scroller.clientWidth/xn(t.display)-3);return function(r){if(mt(t.doc,r))return 0;var o=0;if(r.widgets)for(var s=0;s=t.display.viewTo)return null;if((e-=t.display.viewFrom)<0)return null;for(var n=t.display.view,i=0;i=t.display.viewTo||a.to().line0?e.blinker=setInterval(function(){return e.cursorDiv.style.visibility=(n=!n)?"":"hidden"},t.options.cursorBlinkRate):t.options.cursorBlinkRate<0&&(e.cursorDiv.style.visibility="hidden")}}function Dn(t){t.state.focused||(t.display.input.focus(),_n(t))}function In(t){t.state.delayingBlurEvent=!0,setTimeout(function(){t.state.delayingBlurEvent&&(t.state.delayingBlurEvent=!1,Fn(t))},100)}function _n(t,e){t.state.delayingBlurEvent&&(t.state.delayingBlurEvent=!1),"nocursor"!=t.options.readOnly&&(t.state.focused||(Mt(t,"focus",t,e),t.state.focused=!0,a(t.display.wrapper,"CodeMirror-focused"),t.curOp||t.display.selForContextMenu==t.doc.sel||(t.display.input.reset(),bs&&setTimeout(function(){return t.display.input.reset(!0)},20)),t.display.input.receivedFocus()),Nn(t))}function Fn(t,e){t.state.delayingBlurEvent||(t.state.focused&&(Mt(t,"blur",t,e),t.state.focused=!1,Fs(t.display.wrapper,"CodeMirror-focused")),clearInterval(t.display.blinker),setTimeout(function(){t.state.focused||(t.display.shift=!1)},150))}function $n(t){for(var e=t.display,n=e.lineDiv.offsetTop,i=0;i.005||l<-.005)&&(L(r.line,o),zn(r.line),r.rest))for(var c=0;c=s&&(o=N(e,yt(E(e,l))-t.wrapper.clientHeight),s=l)}return{from:o,to:Math.max(s,o+1)}}function Hn(t){var e=t.display,n=e.view;if(e.alignWidgets||e.gutters.firstChild&&t.options.fixedGutter){for(var i=Cn(e)-e.scroller.scrollLeft+t.doc.scrollLeft,r=e.gutters.offsetWidth,o=i+"px",s=0;s(window.innerHeight||document.documentElement.clientHeight)&&(o=!1),null!=o&&!Ts){var s=i("div","โ€‹",null,"position: absolute;\n top: "+(e.top-n.viewOffset-Fe(t.display))+"px;\n height: "+(e.bottom-e.top+Re(t)+n.barHeight)+"px;\n left: "+e.left+"px; width: "+Math.max(2,e.right-e.left)+"px;");t.display.lineSpace.appendChild(s),s.scrollIntoView(o),t.display.lineSpace.removeChild(s)}}}function Bn(t,e,n,i){null==i&&(i=0);var r;t.options.lineWrapping||e!=n||(e=e.ch?_(e.line,"before"==e.sticky?e.ch-1:e.ch,"after"):e,n="before"==e.sticky?_(e.line,e.ch+1,"before"):e);for(var o=0;o<5;o++){var s=!1,a=cn(t,e),l=n&&n!=e?cn(t,n):a;r={left:Math.min(a.left,l.left),top:Math.min(a.top,l.top)-i,right:Math.max(a.left,l.left),bottom:Math.max(a.bottom,l.bottom)+i};var c=Un(t,r),u=t.doc.scrollTop,h=t.doc.scrollLeft;if(null!=c.scrollTop&&(Zn(t,c.scrollTop),Math.abs(t.doc.scrollTop-u)>1&&(s=!0)),null!=c.scrollLeft&&(ti(t,c.scrollLeft),Math.abs(t.doc.scrollLeft-h)>1&&(s=!0)),!s)break}return r}function Wn(t,e){var n=Un(t,e);null!=n.scrollTop&&Zn(t,n.scrollTop),null!=n.scrollLeft&&ti(t,n.scrollLeft)}function Un(t,e){var n=t.display,i=bn(t.display);e.top<0&&(e.top=0);var r=t.curOp&&null!=t.curOp.scrollTop?t.curOp.scrollTop:n.scroller.scrollTop,o=Ve(t),s={};e.bottom-e.top>o&&(e.bottom=e.top+o);var a=t.doc.height+$e(n),l=e.topa-i;if(e.topr+o){var u=Math.min(e.top,(c?a:e.bottom)-o);u!=r&&(s.scrollTop=u)}var h=t.curOp&&null!=t.curOp.scrollLeft?t.curOp.scrollLeft:n.scroller.scrollLeft,d=He(t)-(t.options.fixedGutter?n.gutters.offsetWidth:0),f=e.right-e.left>d;return f&&(e.right=e.left+d),e.left<10?s.scrollLeft=0:e.leftd+h-3&&(s.scrollLeft=e.right+(f?0:10)-d),s}function qn(t,e){null!=e&&(Xn(t),t.curOp.scrollTop=(null==t.curOp.scrollTop?t.doc.scrollTop:t.curOp.scrollTop)+e)}function Kn(t){Xn(t);var e=t.getCursor();t.curOp.scrollToPos={from:e,to:e,margin:t.options.cursorScrollMargin}}function Gn(t,e,n){null==e&&null==n||Xn(t),null!=e&&(t.curOp.scrollLeft=e),null!=n&&(t.curOp.scrollTop=n)}function Yn(t,e){Xn(t),t.curOp.scrollToPos=e}function Xn(t){var e=t.curOp.scrollToPos;if(e){t.curOp.scrollToPos=null;Jn(t,un(t,e.from),un(t,e.to),e.margin)}}function Jn(t,e,n,i){var r=Un(t,{left:Math.min(e.left,n.left),top:Math.min(e.top,n.top)-i,right:Math.max(e.right,n.right),bottom:Math.max(e.bottom,n.bottom)+i});Gn(t,r.scrollLeft,r.scrollTop)}function Zn(t,e){Math.abs(t.doc.scrollTop-e)<2||(fs||Li(t,{top:e}),Qn(t,e,!0),fs&&Li(t),ki(t,100))}function Qn(t,e,n){e=Math.min(t.display.scroller.scrollHeight-t.display.scroller.clientHeight,e),(t.display.scroller.scrollTop!=e||n)&&(t.doc.scrollTop=e,t.display.scrollbars.setScrollTop(e),t.display.scroller.scrollTop!=e&&(t.display.scroller.scrollTop=e))}function ti(t,e,n,i){e=Math.min(e,t.display.scroller.scrollWidth-t.display.scroller.clientWidth),(n?e==t.doc.scrollLeft:Math.abs(t.doc.scrollLeft-e)<2)&&!i||(t.doc.scrollLeft=e,Hn(t),t.display.scroller.scrollLeft!=e&&(t.display.scroller.scrollLeft=e),t.display.scrollbars.setScrollLeft(e))}function ei(t){var e=t.display,n=e.gutters.offsetWidth,i=Math.round(t.doc.height+$e(t.display));return{clientHeight:e.scroller.clientHeight,viewHeight:e.wrapper.clientHeight,scrollWidth:e.scroller.scrollWidth,clientWidth:e.scroller.clientWidth,viewWidth:e.wrapper.clientWidth,barLeft:t.options.fixedGutter?n:0,docHeight:i,scrollHeight:i+Re(t)+e.barHeight,nativeBarWidth:e.nativeBarWidth,gutterWidth:n}}function ni(t,e){e||(e=ei(t));var n=t.display.barWidth,i=t.display.barHeight;ii(t,e);for(var r=0;r<4&&n!=t.display.barWidth||i!=t.display.barHeight;r++)n!=t.display.barWidth&&t.options.lineWrapping&&$n(t),ii(t,ei(t)),n=t.display.barWidth,i=t.display.barHeight}function ii(t,e){var n=t.display,i=n.scrollbars.update(e);n.sizer.style.paddingRight=(n.barWidth=i.right)+"px",n.sizer.style.paddingBottom=(n.barHeight=i.bottom)+"px",n.heightForcer.style.borderBottom=i.bottom+"px solid transparent",i.right&&i.bottom?(n.scrollbarFiller.style.display="block",n.scrollbarFiller.style.height=i.bottom+"px",n.scrollbarFiller.style.width=i.right+"px"):n.scrollbarFiller.style.display="",i.bottom&&t.options.coverGutterNextToScrollbar&&t.options.fixedGutter?(n.gutterFiller.style.display="block",n.gutterFiller.style.height=i.bottom+"px",n.gutterFiller.style.width=e.gutterWidth+"px"):n.gutterFiller.style.display=""}function ri(t){t.display.scrollbars&&(t.display.scrollbars.clear(),t.display.scrollbars.addClass&&Fs(t.display.wrapper,t.display.scrollbars.addClass)),t.display.scrollbars=new Ca[t.options.scrollbarStyle](function(e){t.display.wrapper.insertBefore(e,t.display.scrollbarFiller),ta(e,"mousedown",function(){t.state.focused&&setTimeout(function(){return t.display.input.focus()},0)}),e.setAttribute("cm-not-content","true")},function(e,n){"horizontal"==n?ti(t,e):Zn(t,e)},t),t.display.scrollbars.addClass&&a(t.display.wrapper,t.display.scrollbars.addClass)}function oi(t){t.curOp={cm:t,viewChanged:!1,startHeight:t.doc.height,forceUpdate:!1,updateInput:null,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++ka},ve(t.curOp)}function si(t){be(t.curOp,function(t){for(var e=0;e=n.viewTo)||n.maxLineChanged&&e.options.lineWrapping,t.update=t.mustUpdate&&new Sa(e,t.mustUpdate&&{top:t.scrollTop,ensure:t.scrollToPos},t.forceUpdate)}function ci(t){t.updatedDisplay=t.mustUpdate&&Pi(t.cm,t.update)}function ui(t){var e=t.cm,n=e.display;t.updatedDisplay&&$n(e),t.barMeasure=ei(e),n.maxLineChanged&&!e.options.lineWrapping&&(t.adjustWidthTo=Ue(e,n.maxLine,n.maxLine.text.length).left+3,e.display.sizerWidth=t.adjustWidthTo,t.barMeasure.scrollWidth=Math.max(n.scroller.clientWidth,n.sizer.offsetLeft+t.adjustWidthTo+Re(e)+e.display.barWidth),t.maxScrollLeft=Math.max(0,n.sizer.offsetLeft+t.adjustWidthTo-He(e))),(t.updatedDisplay||t.selectionChanged)&&(t.preparedSelection=n.input.prepareSelection())}function hi(t){var e=t.cm;null!=t.adjustWidthTo&&(e.display.sizer.style.minWidth=t.adjustWidthTo+"px",t.maxScrollLefte)&&(r.updateLineNumbers=e),t.curOp.viewChanged=!0,e>=r.viewTo)Xs&&pt(t.doc,e)r.viewFrom?bi(t):(r.viewFrom+=i,r.viewTo+=i);else if(e<=r.viewFrom&&n>=r.viewTo)bi(t);else if(e<=r.viewFrom){var o=xi(t,n,n+i,1);o?(r.view=r.view.slice(o.index),r.viewFrom=o.lineN,r.viewTo+=i):bi(t)}else if(n>=r.viewTo){var s=xi(t,e,e,-1);s?(r.view=r.view.slice(0,s.index),r.viewTo=s.lineN):bi(t)}else{var a=xi(t,e,e,-1),l=xi(t,n,n+i,1);a&&l?(r.view=r.view.slice(0,a.index).concat(me(t,a.lineN,l.lineN)).concat(r.view.slice(l.index)),r.viewTo+=i):bi(t)}var c=r.externalMeasured;c&&(n=r.lineN&&e=i.viewTo)){var o=i.view[Mn(t,e)];if(null!=o.node){var s=o.changes||(o.changes=[]);-1==d(s,n)&&s.push(n)}}}function bi(t){t.display.viewFrom=t.display.viewTo=t.doc.first,t.display.view=[],t.display.viewOffset=0}function xi(t,e,n,i){var r,o=Mn(t,e),s=t.display.view;if(!Xs||n==t.doc.first+t.doc.size)return{index:o,lineN:n};for(var a=t.display.viewFrom,l=0;l0){if(o==s.length-1)return null;r=a+s[o].size-e,o++}else r=a-e;e+=r,n+=r}for(;pt(t.doc,n)!=n;){if(o==(i<0?0:s.length-1))return null;n+=i*s[o-(i<0?1:0)].size,o+=i}return{index:o,lineN:n}}function wi(t,e,n){var i=t.display;0==i.view.length||e>=i.viewTo||n<=i.viewFrom?(i.view=me(t,e,n),i.viewFrom=e):(i.viewFrom>e?i.view=me(t,e,i.viewFrom).concat(i.view):i.viewFromn&&(i.view=i.view.slice(0,Mn(t,n)))),i.viewTo=n}function Ci(t){for(var e=t.display.view,n=0,i=0;i=t.display.viewTo)){var n=+new Date+t.options.workTime,i=Xt(t,e.highlightFrontier),r=[];e.iter(i.line,Math.min(e.first+e.size,t.display.viewTo+500),function(o){if(i.line>=t.display.viewFrom){var s=o.styles,a=o.text.length>t.options.maxHighlightLength?Ut(e.mode,i.state):null,l=Gt(t,o,i,!0);a&&(i.state=a),o.styles=l.styles;var c=o.styleClasses,u=l.classes;u?o.styleClasses=u:c&&(o.styleClasses=null);for(var h=!s||s.length!=o.styles.length||c!=u&&(!c||!u||c.bgClass!=u.bgClass||c.textClass!=u.textClass),d=0;!h&&dn)return ki(t,t.options.workDelay),!0}),e.highlightFrontier=i.line,e.modeFrontier=Math.max(e.modeFrontier,i.line),r.length&&fi(t,function(){for(var e=0;e=i.viewFrom&&n.visible.to<=i.viewTo&&(null==i.updateLineNumbers||i.updateLineNumbers>=i.viewTo)&&i.renderedView==i.view&&0==Ci(t))return!1;Vn(t)&&(bi(t),n.dims=wn(t));var o=r.first+r.size,s=Math.max(n.visible.from-t.options.viewportMargin,r.first),a=Math.min(o,n.visible.to+t.options.viewportMargin);i.viewFroma&&i.viewTo-a<20&&(a=Math.min(o,i.viewTo)),Xs&&(s=pt(t.doc,s),a=gt(t.doc,a));var l=s!=i.viewFrom||a!=i.viewTo||i.lastWrapHeight!=n.wrapperHeight||i.lastWrapWidth!=n.wrapperWidth;wi(t,s,a),i.viewOffset=yt(E(t.doc,i.viewFrom)),t.display.mover.style.top=i.viewOffset+"px";var c=Ci(t);if(!l&&0==c&&!n.force&&i.renderedView==i.view&&(null==i.updateLineNumbers||i.updateLineNumbers>=i.viewTo))return!1;var u=Mi(t);return c>4&&(i.lineDiv.style.display="none"),Oi(t,i.updateLineNumbers,n.dims),c>4&&(i.lineDiv.style.display=""),i.renderedView=i.view,Ei(u),e(i.cursorDiv),e(i.selectionDiv),i.gutters.style.height=i.sizer.style.minHeight=0,l&&(i.lastWrapHeight=n.wrapperHeight,i.lastWrapWidth=n.wrapperWidth,ki(t,400)),i.updateLineNumbers=null,!0}function Ai(t,e){for(var n=e.viewport,i=!0;(i&&t.options.lineWrapping&&e.oldDisplayWidth!=He(t)||(n&&null!=n.top&&(n={top:Math.min(t.doc.height+$e(t.display)-Ve(t),n.top)}),e.visible=Rn(t.display,t.doc,n),!(e.visible.from>=t.display.viewFrom&&e.visible.to<=t.display.viewTo)))&&Pi(t,e);i=!1){$n(t);var r=ei(t);En(t),ni(t,r),Di(t,r),e.force=!1}e.signal(t,"update",t),t.display.viewFrom==t.display.reportedViewFrom&&t.display.viewTo==t.display.reportedViewTo||(e.signal(t,"viewportChange",t,t.display.viewFrom,t.display.viewTo),t.display.reportedViewFrom=t.display.viewFrom,t.display.reportedViewTo=t.display.viewTo)}function Li(t,e){var n=new Sa(t,e);if(Pi(t,n)){$n(t),Ai(t,n);var i=ei(t);En(t),ni(t,i),Di(t,i),n.finish()}}function Oi(t,n,i){function r(e){var n=e.nextSibling;return bs&&As&&t.display.currentWheelTarget==e?e.style.display="none":e.parentNode.removeChild(e),n}for(var o=t.display,s=t.options.lineNumbers,a=o.lineDiv,l=a.firstChild,c=o.view,u=o.viewFrom,h=0;h-1&&(p=!1),Ce(t,f,u,i)),p&&(e(f.lineNumber),f.lineNumber.appendChild(document.createTextNode(I(t.options,u)))),l=f.node.nextSibling}else{var g=Le(t,f,u,i);a.insertBefore(g,l)}u+=f.size}for(;l;)l=r(l)}function Ni(t){var e=t.display.gutters.offsetWidth;t.display.sizer.style.marginLeft=e+"px"}function Di(t,e){t.display.sizer.style.minHeight=e.docHeight+"px",t.display.heightForcer.style.top=e.docHeight+"px",t.display.gutters.style.height=e.docHeight+t.display.barHeight+Re(t)+"px"}function Ii(t){var n=t.display.gutters,r=t.options.gutters;e(n);for(var o=0;o-1&&!t.lineNumbers&&(t.gutters=t.gutters.slice(0),t.gutters.splice(e,1))}function Fi(t){var e=t.wheelDeltaX,n=t.wheelDeltaY;return null==e&&t.detail&&t.axis==t.HORIZONTAL_AXIS&&(e=t.detail),null==n&&t.detail&&t.axis==t.VERTICAL_AXIS?n=t.detail:null==n&&(n=t.wheelDelta),{x:e,y:n}}function $i(t){var e=Fi(t);return e.x*=Ma,e.y*=Ma,e}function zi(t,e){var n=Fi(e),i=n.x,r=n.y,o=t.display,s=o.scroller,a=s.scrollWidth>s.clientWidth,l=s.scrollHeight>s.clientHeight;if(i&&a||r&&l){if(r&&As&&bs)t:for(var c=e.target,u=o.view;c!=s;c=c.parentNode)for(var h=0;h=0){var s=H(o.from(),r.from()),a=R(o.to(),r.to()),l=o.empty()?r.from()==r.head:o.from()==o.head;i<=e&&--e,t.splice(--i,2,new Pa(l?a:s,l?s:a))}}return new Ea(t,e)}function Hi(t,e){return new Ea([new Pa(t,e||t)],0)}function Vi(t){return t.text?_(t.from.line+t.text.length-1,g(t.text).length+(1==t.text.length?t.from.ch:0)):t.to}function ji(t,e){if(F(t,e.from)<0)return t;if(F(t,e.to)<=0)return Vi(e);var n=t.line+e.text.length-(e.to.line-e.from.line)-1,i=t.ch;return t.line==e.to.line&&(i+=Vi(e).ch-e.to.ch),_(n,i)}function Bi(t,e){for(var n=[],i=0;i1&&t.remove(a.line+1,p-1),t.insert(a.line+1,y)}xe(t,"change",t,e)}function Xi(t,e,n){function i(t,r,o){if(t.linked)for(var s=0;s1&&!t.done[t.done.length-2].ranges?(t.done.pop(),g(t.done)):void 0}function rr(t,e,n,i){var r=t.history;r.undone.length=0;var o,s,a=+new Date;if((r.lastOp==i||r.lastOrigin==e.origin&&e.origin&&("+"==e.origin.charAt(0)&&t.cm&&r.lastModTime>a-t.cm.options.historyEventDelay||"*"==e.origin.charAt(0)))&&(o=ir(r,r.lastOp==i)))s=g(o.changes),0==F(e.from,e.to)&&0==F(e.from,s.to)?s.to=Vi(e):o.changes.push(er(t,e));else{var l=g(r.done);for(l&&l.ranges||ar(t.sel,r.done),o={changes:[er(t,e)],generation:r.generation},r.done.push(o);r.done.length>r.undoDepth;)r.done.shift(),r.done[0].ranges||r.done.shift()}r.done.push(n),r.generation=++r.maxGeneration,r.lastModTime=r.lastSelTime=a,r.lastOp=r.lastSelOp=i,r.lastOrigin=r.lastSelOrigin=e.origin,s||Mt(t,"historyAdded")}function or(t,e,n,i){var r=e.charAt(0);return"*"==r||"+"==r&&n.ranges.length==i.ranges.length&&n.somethingSelected()==i.somethingSelected()&&new Date-t.history.lastSelTime<=(t.cm?t.cm.options.historyEventDelay:500)}function sr(t,e,n,i){var r=t.history,o=i&&i.origin;n==r.lastSelOp||o&&r.lastSelOrigin==o&&(r.lastModTime==r.lastSelTime&&r.lastOrigin==o||or(t,o,g(r.done),e))?r.done[r.done.length-1]=e:ar(e,r.done),r.lastSelTime=+new Date,r.lastSelOrigin=o,r.lastSelOp=n,i&&!1!==i.clearRedo&&nr(r.undone)}function ar(t,e){var n=g(e);n&&n.ranges&&n.equals(t)||e.push(t)}function lr(t,e,n,i){var r=e["spans_"+t.id],o=0;t.iter(Math.max(t.first,n),Math.min(t.first+t.size,i),function(n){n.markedSpans&&((r||(r=e["spans_"+t.id]={}))[o]=n.markedSpans),++o})}function cr(t){if(!t)return null;for(var e,n=0;n-1&&(g(a)[h]=c[h],delete c[h])}}}return i}function fr(t,e,n,i){if(i){var r=t.anchor;if(n){var o=F(e,r)<0;o!=F(n,r)<0?(r=e,e=n):o!=F(e,n)<0&&(e=n)}return new Pa(r,e)}return new Pa(n||e,e)}function pr(t,e,n,i,r){null==r&&(r=t.cm&&(t.cm.display.shift||t.extend)),xr(t,new Ea([fr(t.sel.primary(),e,n,r)],0),i)}function gr(t,e,n){for(var i=[],r=t.cm&&(t.cm.display.shift||t.extend),o=0;o=e.ch:a.to>e.ch))){if(r&&(Mt(l,"beforeCursorEnter"),l.explicitlyCleared)){if(o.markedSpans){--s;continue}break}if(!l.atomic)continue;if(n){var c=l.find(i<0?1:-1),u=void 0;if((i<0?l.inclusiveRight:l.inclusiveLeft)&&(c=Er(t,c,-i,c&&c.line==e.line?o:null)),c&&c.line==e.line&&(u=F(c,n))&&(i<0?u<0:u>0))return Tr(t,c,e,i,r)}var h=l.find(i<0?-1:1);return(i<0?l.inclusiveLeft:l.inclusiveRight)&&(h=Er(t,h,i,h.line==e.line?o:null)),h?Tr(t,h,e,i,r):null}}return e}function Mr(t,e,n,i,r){var o=i||1,s=Tr(t,e,n,o,r)||!r&&Tr(t,e,n,o,!0)||Tr(t,e,n,-o,r)||!r&&Tr(t,e,n,-o,!0);return s||(t.cantEdit=!0,_(t.first,0))}function Er(t,e,n,i){return n<0&&0==e.ch?e.line>t.first?j(t,_(e.line-1)):null:n>0&&e.ch==(i||E(t,e.line)).text.length?e.line=0;--r)Or(t,{from:i[r].from,to:i[r].to,text:r?[""]:e.text,origin:e.origin});else Or(t,e)}}function Or(t,e){if(1!=e.text.length||""!=e.text[0]||0!=F(e.from,e.to)){var n=Bi(t,e);rr(t,e,n,t.cm?t.cm.curOp.id:NaN),Ir(t,e,n,Q(t,e));var i=[];Xi(t,function(t,n){n||-1!=d(i,t.history)||(Rr(t.history,e),i.push(t.history)),Ir(t,e,null,Q(t,e))})}}function Nr(t,e,n){if(!t.cm||!t.cm.state.suppressEdits||n){for(var i,r=t.history,o=t.sel,s="undo"==e?r.done:r.undone,a="undo"==e?r.undone:r.done,l=0;l=0;--h){var f=function(n){var r=i.changes[n];if(r.origin=e,u&&!Ar(t,r,!1))return s.length=0,{};c.push(er(t,r));var o=n?Bi(t,r):g(s);Ir(t,r,o,hr(t,r)),!n&&t.cm&&t.cm.scrollIntoView({from:r.from,to:Vi(r)});var a=[];Xi(t,function(t,e){e||-1!=d(a,t.history)||(Rr(t.history,r),a.push(t.history)),Ir(t,r,null,hr(t,r))})}(h);if(f)return f.v}}}}function Dr(t,e){if(0!=e&&(t.first+=e,t.sel=new Ea(m(t.sel.ranges,function(t){return new Pa(_(t.anchor.line+e,t.anchor.ch),_(t.head.line+e,t.head.ch))}),t.sel.primIndex),t.cm)){vi(t.cm,t.first,t.first-e,e);for(var n=t.cm.display,i=n.viewFrom;it.lastLine())){if(e.from.lineo&&(e={from:e.from,to:_(o,E(t,o).text.length),text:[e.text[0]],origin:e.origin}),e.removed=P(t,e.from,e.to),n||(n=Bi(t,e)),t.cm?_r(t.cm,e,i):Yi(t,e,i),wr(t,n,Bs)}}function _r(t,e,n){var i=t.doc,r=t.display,o=e.from,s=e.to,a=!1,l=o.line;t.options.lineWrapping||(l=O(ht(E(i,o.line))),i.iter(l,s.line+1,function(t){if(t==r.maxLine)return a=!0,!0})),i.sel.contains(e.from,e.to)>-1&&Pt(t),Yi(i,e,n,kn(t)),t.options.lineWrapping||(i.iter(l,o.line+e.text.length,function(t){var e=bt(t);e>r.maxLineLength&&(r.maxLine=t,r.maxLineLength=e,r.maxLineChanged=!0,a=!1)}),a&&(t.curOp.updateMaxLine=!0)),re(i,o.line),ki(t,400);var c=e.text.length-(s.line-o.line)-1;e.full?vi(t):o.line!=s.line||1!=e.text.length||Gi(t.doc,e)?vi(t,o.line,s.line+1,c):yi(t,o.line,"text");var u=At(t,"changes"),h=At(t,"change");if(h||u){var d={from:o,to:s,text:e.text,removed:e.removed,origin:e.origin};h&&xe(t,"change",t,d),u&&(t.curOp.changeObjs||(t.curOp.changeObjs=[])).push(d)}t.display.selForContextMenu=null}function Fr(t,e,n,i,r){if(i||(i=n),F(i,n)<0){var o;o=[i,n],n=o[0],i=o[1]}"string"==typeof e&&(e=t.splitLines(e)),Lr(t,{from:n,to:i,text:e,origin:r})}function $r(t,e,n,i){n0||0==a&&!1!==s.clearWhenEmpty)return s;if(s.replacedWith&&(s.collapsed=!0,s.widgetNode=r("span",[s.replacedWith],"CodeMirror-widget"),i.handleMouseEvents||s.widgetNode.setAttribute("cm-ignore-events","true"),i.insertLeft&&(s.widgetNode.insertLeft=!0)),s.collapsed){if(ut(t,e.line,e,n,s)||e.line!=n.line&&ut(t,n.line,e,n,s))throw new Error("Inserting collapsed marker partially overlapping an existing one");q()}s.addToHistory&&rr(t,{from:e,to:n,origin:"markText"},t.sel,NaN);var l,c=e.line,h=t.cm;if(t.iter(c,n.line+1,function(t){h&&s.collapsed&&!h.options.lineWrapping&&ht(t)==h.display.maxLine&&(l=!0),s.collapsed&&c!=e.line&&L(t,0),X(t,new K(s,c==e.line?e.ch:null,c==n.line?n.ch:null)),++c}),s.collapsed&&t.iter(e.line,n.line+1,function(e){mt(t,e)&&L(e,0)}),s.clearOnEnter&&ta(s,"beforeCursorEnter",function(){return s.clear()}),s.readOnly&&(U(),(t.history.done.length||t.history.undone.length)&&t.clearHistory()),s.collapsed&&(s.id=++La,s.atomic=!0),h){if(l&&(h.curOp.updateMaxLine=!0),s.collapsed)vi(h,e.line,n.line+1);else if(s.className||s.title||s.startStyle||s.endStyle||s.css)for(var d=e.line;d<=n.line;d++)yi(h,d,"text");s.atomic&&kr(h.doc),xe(h,"markerAdded",h,s)}return s}function qr(t,e,n,i,r){i=u(i),i.shared=!1;var o=[Ur(t,e,n,i,r)],s=o[0],a=i.widgetNode;return Xi(t,function(t){a&&(i.widgetNode=a.cloneNode(!0)),o.push(Ur(t,j(t,e),j(t,n),i,r));for(var l=0;l-1)return e.state.draggingText(t),void setTimeout(function(){return e.display.input.focus()},20);try{var l=t.dataTransfer.getData("Text");if(l){var c;if(e.state.draggingText&&!e.state.draggingText.copy&&(c=e.listSelections()),wr(e.doc,Hi(n,n)),c)for(var u=0;u=0;e--)Fr(t.doc,"",i[e].from,i[e].to,"+delete");Kn(t)})}function fo(t,e,n){var i=S(t.text,e+n,n);return i<0||i>t.text.length?null:i}function po(t,e,n){var i=fo(t,e.ch,n);return null==i?null:new _(e.line,i,n<0?"after":"before")}function go(t,e,n,i,r){if(t){var o=kt(n,e.doc.direction);if(o){var s,a=r<0?g(o):o[0],l=r<0==(1==a.level),c=l?"after":"before";if(a.level>0||"rtl"==e.doc.direction){var u=Ke(e,n);s=r<0?n.text.length-1:0;var h=Ge(e,u,s).top;s=T(function(t){return Ge(e,u,t).top==h},r<0==(1==a.level)?a.from:a.to-1,s),"before"==c&&(s=fo(n,s,1))}else s=r<0?a.to:a.from;return new _(i,s,c)}}return new _(i,r<0?n.text.length:0,r<0?"before":"after")}function mo(t,e,n,i){var r=kt(e,t.doc.direction);if(!r)return po(e,n,i);n.ch>=e.text.length?(n.ch=e.text.length,n.sticky="before"):n.ch<=0&&(n.ch=0,n.sticky="after");var o=Ct(r,n.ch,n.sticky),s=r[o];if("ltr"==t.doc.direction&&s.level%2==0&&(i>0?s.to>n.ch:s.from=s.from&&d>=u.begin)){var f=h?"before":"after";return new _(n.line,d,f)}}var p=function(t,e,i){for(var o=function(t,e){return e?new _(n.line,l(t,1),"before"):new _(n.line,t,"after")};t>=0&&t0==(1!=s.level),c=a?i.begin:l(i.end,-1);if(s.from<=c&&c0?u.end:l(u.begin,-1);return null==m||i>0&&m==e.text.length||!(g=p(i>0?0:r.length-1,i,c(m)))?null:g}function vo(t,e){var n=E(t.doc,e),i=ht(n);return i!=n&&(e=O(i)),go(!0,t,i,e,1)}function yo(t,e){var n=E(t.doc,e),i=dt(n);return i!=n&&(e=O(i)),go(!0,t,n,e,-1)}function bo(t,e){var n=vo(t,e.line),i=E(t.doc,n.line),r=kt(i,t.doc.direction);if(!r||0==r[0].level){var o=Math.max(0,i.text.search(/\S/)),s=e.line==n.line&&e.ch<=o&&e.ch;return _(n.line,s?0:o,n.sticky)}return n}function xo(t,e,n){if("string"==typeof e&&!(e=ja[e]))return!1;t.display.input.ensurePolled();var i=t.display.shift,r=!1;try{t.isReadOnly()&&(t.state.suppressEdits=!0),n&&(t.display.shift=!1),r=e(t)!=js}finally{t.display.shift=i,t.state.suppressEdits=!1}return r}function wo(t,e,n){for(var i=0;i-1&&(F((r=a.ranges[r]).from(),e)<0||e.xRel>0)&&(F(r.to(),e)>0||e.xRel<0)?Io(t,i,e,o):Fo(t,i,e,o)}function Io(t,e,n,i){var r=t.display,o=!1,s=pi(t,function(e){bs&&(r.scroller.draggable=!1),t.state.draggingText=!1,Tt(document,"mouseup",s),Tt(document,"mousemove",a),Tt(r.scroller,"dragstart",l),Tt(r.scroller,"drop",s),o||(Ot(e),i.addNew||pr(t.doc,n,null,null,i.extend),bs||vs&&9==ys?setTimeout(function(){document.body.focus(),r.input.focus()},20):r.input.focus())}),a=function(t){o=o||Math.abs(e.clientX-t.clientX)+Math.abs(e.clientY-t.clientY)>=10},l=function(){return o=!0};bs&&(r.scroller.draggable=!0),t.state.draggingText=s,s.copy=!i.moveOnDrag,r.scroller.dragDrop&&r.scroller.dragDrop(),ta(document,"mouseup",s),ta(document,"mousemove",a),ta(r.scroller,"dragstart",l),ta(r.scroller,"drop",s),In(t),setTimeout(function(){return r.input.focus()},20)}function _o(t,e,n){if("char"==n)return new Pa(e,e);if("word"==n)return t.findWordAt(e);if("line"==n)return new Pa(_(e.line,0),j(t.doc,_(e.line+1,0)));var i=n(t,e);return new Pa(i.from,i.to)}function Fo(t,e,n,i){function r(e){if(0!=F(v,e))if(v=e,"rectangle"==i.unit){for(var r=[],o=t.options.tabSize,s=h(E(c,n.line).text,n.ch,o),a=h(E(c,e.line).text,e.ch,o),l=Math.min(s,a),g=Math.max(s,a),m=Math.min(n.line,e.line),y=Math.min(t.lastLine(),Math.max(n.line,e.line));m<=y;m++){var b=E(c,m).text,x=f(b,l,o);l==g?r.push(new Pa(_(m,x),_(m,x))):b.length>x&&r.push(new Pa(_(m,x),_(m,f(b,g,o))))}r.length||r.push(new Pa(n,n)),xr(c,Ri(p.ranges.slice(0,d).concat(r),d),{origin:"*mouse",scroll:!1}),t.scrollIntoView(e)}else{var w,C=u,k=_o(t,e,i.unit),S=C.anchor;F(k.anchor,S)>0?(w=k.head,S=H(C.from(),k.anchor)):(w=k.anchor,S=R(C.to(),k.head));var T=p.ranges.slice(0);T[d]=$o(t,new Pa(j(c,S),w)),xr(c,Ri(T,d),Ws)}}function o(e){var n=++b,a=Tn(t,e,!0,"rectangle"==i.unit);if(a)if(0!=F(a,v)){t.curOp.focus=s(),r(a);var u=Rn(l,c);(a.line>=u.to||a.liney.bottom?20:0;h&&setTimeout(pi(t,function(){b==n&&(l.scroller.scrollTop+=h,o(e))}),50)}}function a(e){t.state.selectingText=!1,b=1/0,Ot(e),l.input.focus(),Tt(document,"mousemove",x),Tt(document,"mouseup",w),c.history.lastSelOrigin=null}var l=t.display,c=t.doc;Ot(e);var u,d,p=c.sel,g=p.ranges;if(i.addNew&&!i.extend?(d=c.sel.contains(n),u=d>-1?g[d]:new Pa(n,n)):(u=c.sel.primary(),d=c.sel.primIndex),"rectangle"==i.unit)i.addNew||(u=new Pa(n,n)),n=Tn(t,e,!0,!0),d=-1;else{var m=_o(t,n,i.unit);u=i.extend?fr(u,m.anchor,m.head,i.extend):m}i.addNew?-1==d?(d=g.length,xr(c,Ri(g.concat([u]),d),{scroll:!1,origin:"*mouse"})):g.length>1&&g[d].empty()&&"char"==i.unit&&!i.extend?(xr(c,Ri(g.slice(0,d).concat(g.slice(d+1)),0),{scroll:!1,origin:"*mouse"}),p=c.sel):mr(c,d,u,Ws):(d=0,xr(c,new Ea([u],0),Ws),p=c.sel);var v=n,y=l.wrapper.getBoundingClientRect(),b=0,x=pi(t,function(t){Ft(t)?o(t):a(t)}),w=pi(t,a);t.state.selectingText=w,ta(document,"mousemove",x),ta(document,"mouseup",w)}function $o(t,e){var n=e.anchor,i=e.head,r=E(t.doc,n.line);if(0==F(n,i)&&n.sticky==i.sticky)return e;var o=kt(r);if(!o)return e;var s=Ct(o,n.ch,n.sticky),a=o[s];if(a.from!=n.ch&&a.to!=n.ch)return e;var l=s+(a.from==n.ch==(1!=a.level)?0:1);if(0==l||l==o.length)return e;var c;if(i.line!=n.line)c=(i.line-n.line)*("ltr"==t.doc.direction?1:-1)>0;else{var u=Ct(o,i.ch,i.sticky),h=u-s||(i.ch-n.ch)*(1==a.level?-1:1);c=u==l-1||u==l?h<0:h>0}var d=o[l+(c?-1:0)],f=c==(1==d.level),p=f?d.from:d.to,g=f?"after":"before";return n.ch==p&&n.sticky==g?e:new Pa(new _(n.line,p,g),i)}function zo(t,e,n,i){var r,o;if(e.touches)r=e.touches[0].clientX,o=e.touches[0].clientY;else try{r=e.clientX,o=e.clientY}catch(e){return!1}if(r>=Math.floor(t.display.gutters.getBoundingClientRect().right))return!1;i&&Ot(e);var s=t.display,a=s.lineDiv.getBoundingClientRect();if(o>a.bottom||!At(t,n))return Dt(e);o-=a.top-s.viewOffset;for(var l=0;l=r){return Mt(t,n,t,N(t.doc,o),t.options.gutters[l],e),Dt(e)}}}function Ro(t,e){return zo(t,e,"gutterClick",!0)}function Ho(t,e){_e(t.display,e)||Vo(t,e)||Et(t,e,"contextmenu")||t.display.input.onContextMenu(e)}function Vo(t,e){return!!At(t,"gutterContextMenu")&&zo(t,e,"gutterContextMenu",!1)}function jo(t){t.display.wrapper.className=t.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+t.options.theme.replace(/(^|\s)\s*/g," cm-s-"),en(t)}function Bo(t){Ii(t),vi(t),Hn(t)}function Wo(t,e,n){if(!e!=!(n&&n!=Ga)){var i=t.display.dragFunctions,r=e?ta:Tt;r(t.display.scroller,"dragstart",i.start),r(t.display.scroller,"dragenter",i.enter),r(t.display.scroller,"dragover",i.over),r(t.display.scroller,"dragleave",i.leave),r(t.display.scroller,"drop",i.drop)}}function Uo(t){t.options.lineWrapping?(a(t.display.wrapper,"CodeMirror-wrap"),t.display.sizer.style.minWidth="",t.display.sizerWidth=null):(Fs(t.display.wrapper,"CodeMirror-wrap"),xt(t)),Sn(t),vi(t),en(t),setTimeout(function(){return ni(t)},100)}function qo(t,e){var n=this;if(!(this instanceof qo))return new qo(t,e);this.options=e=e?u(e):{},u(Ya,e,!1),_i(e);var i=e.value;"string"==typeof i&&(i=new Ia(i,e.mode,null,e.lineSeparator,e.direction)),this.doc=i;var r=new qo.inputStyles[e.inputStyle](this),o=this.display=new M(t,i,r);o.wrapper.CodeMirror=this,Ii(this),jo(this),e.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),ri(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:!1,cutIncoming:!1,selectingText:!1,draggingText:!1,highlight:new zs,keySeq:null,specialChars:null},e.autofocus&&!Ps&&o.input.focus(),vs&&ys<11&&setTimeout(function(){return n.display.input.reset(!0)},20),Ko(this),eo(),oi(this),this.curOp.forceUpdate=!0,Ji(this,i),e.autofocus&&!Ps||this.hasFocus()?setTimeout(c(_n,this),20):Fn(this);for(var s in Xa)Xa.hasOwnProperty(s)&&Xa[s](n,e[s],Ga);Vn(this),e.finishInit&&e.finishInit(this);for(var a=0;a400}var r=t.display;ta(r.scroller,"mousedown",pi(t,Lo)),vs&&ys<11?ta(r.scroller,"dblclick",pi(t,function(e){if(!Et(t,e)){var n=Tn(t,e);if(n&&!Ro(t,e)&&!_e(t.display,e)){Ot(e);var i=t.findWordAt(n);pr(t.doc,i.anchor,i.head)}}})):ta(r.scroller,"dblclick",function(e){return Et(t,e)||Ot(e)}),_s||ta(r.scroller,"contextmenu",function(e){return Ho(t,e)});var o,s={end:0};ta(r.scroller,"touchstart",function(e){if(!Et(t,e)&&!n(e)&&!Ro(t,e)){r.input.ensurePolled(),clearTimeout(o);var i=+new Date;r.activeTouch={start:i,moved:!1,prev:i-s.end<=300?s:null},1==e.touches.length&&(r.activeTouch.left=e.touches[0].pageX,r.activeTouch.top=e.touches[0].pageY)}}),ta(r.scroller,"touchmove",function(){r.activeTouch&&(r.activeTouch.moved=!0)}),ta(r.scroller,"touchend",function(n){var o=r.activeTouch;if(o&&!_e(r,n)&&null!=o.left&&!o.moved&&new Date-o.start<300){var s,a=t.coordsChar(r.activeTouch,"page");s=!o.prev||i(o,o.prev)?new Pa(a,a):!o.prev.prev||i(o,o.prev.prev)?t.findWordAt(a):new Pa(_(a.line,0),j(t.doc,_(a.line+1,0))),t.setSelection(s.anchor,s.head),t.focus(),Ot(n)}e()}),ta(r.scroller,"touchcancel",e),ta(r.scroller,"scroll",function(){r.scroller.clientHeight&&(Zn(t,r.scroller.scrollTop),ti(t,r.scroller.scrollLeft,!0),Mt(t,"scroll",t))}),ta(r.scroller,"mousewheel",function(e){return zi(t,e)}),ta(r.scroller,"DOMMouseScroll",function(e){return zi(t,e)}),ta(r.wrapper,"scroll",function(){return r.wrapper.scrollTop=r.wrapper.scrollLeft=0}),r.dragFunctions={enter:function(e){Et(t,e)||It(e)},over:function(e){Et(t,e)||(Zr(t,e),It(e))},start:function(e){return Jr(t,e)},drop:pi(t,Xr),leave:function(e){Et(t,e)||Qr(t)}};var a=r.input.getField();ta(a,"keyup",function(e){return Eo.call(t,e)}),ta(a,"keydown",pi(t,To)),ta(a,"keypress",pi(t,Po)),ta(a,"focus",function(e){return _n(t,e)}),ta(a,"blur",function(e){return Fn(t,e)})}function Go(t,e,n,i){var r,o=t.doc;null==n&&(n="add"),"smart"==n&&(o.mode.indent?r=Xt(t,e).state:n="prev");var s=t.options.tabSize,a=E(o,e),l=h(a.text,null,s);a.stateAfter&&(a.stateAfter=null);var c,u=a.text.match(/^\s*/)[0];if(i||/\S/.test(a.text)){if("smart"==n&&((c=o.mode.indent(r,a.text.slice(u.length),a.text))==js||c>150)){if(!i)return;n="prev"}}else c=0,n="not";"prev"==n?c=e>o.first?h(E(o,e-1).text,null,s):0:"add"==n?c=l+t.options.indentUnit:"subtract"==n?c=l-t.options.indentUnit:"number"==typeof n&&(c=l+n),c=Math.max(0,c);var d="",f=0;if(t.options.indentWithTabs)for(var g=Math.floor(c/s);g;--g)f+=s,d+="\t";if(f1)if(Za&&Za.text.join("\n")==e){if(i.ranges.length%Za.text.length==0){l=[];for(var c=0;c=0;h--){var d=i.ranges[h],f=d.from(),p=d.to();d.empty()&&(n&&n>0?f=_(f.line,f.ch-n):t.state.overwrite&&!s?p=_(p.line,Math.min(E(o,p.line).text.length,p.ch+g(a).length)):Za&&Za.lineWise&&Za.text.join("\n")==e&&(f=p=_(f.line,0))),u=t.curOp.updateInput;var v={from:f,to:p,text:l?l[h%l.length]:a,origin:r||(s?"paste":t.state.cutIncoming?"cut":"+input")};Lr(t.doc,v),xe(t,"inputRead",t,v)}e&&!s&&Zo(t,e),Kn(t),t.curOp.updateInput=u,t.curOp.typing=!0,t.state.pasteIncoming=t.state.cutIncoming=!1}function Jo(t,e){var n=t.clipboardData&&t.clipboardData.getData("Text");if(n)return t.preventDefault(),e.isReadOnly()||e.options.disableInput||fi(e,function(){return Xo(e,n,0,null,"paste")}),!0}function Zo(t,e){if(t.options.electricChars&&t.options.smartIndent)for(var n=t.doc.sel,i=n.ranges.length-1;i>=0;i--){var r=n.ranges[i];if(!(r.head.ch>100||i&&n.ranges[i-1].head.line==r.head.line)){var o=t.getModeAt(r.head),s=!1;if(o.electricChars){for(var a=0;a-1){s=Go(t,r.head.line,"smart");break}}else o.electricInput&&o.electricInput.test(E(t.doc,r.head.line).text.slice(0,r.head.ch))&&(s=Go(t,r.head.line,"smart"));s&&xe(t,"electricInput",t,r.head.line)}}}function Qo(t){for(var e=[],n=[],i=0;i=t.first+t.size)&&(e=new _(i,e.ch,e.sticky),c=E(t,i))}function s(i){var s;if(null==(s=r?mo(t.cm,c,e,n):po(c,e,n))){if(i||!o())return!1;e=go(r,t.cm,c,e.line,n)}else e=s;return!0}var a=e,l=n,c=E(t,e.line);if("char"==i)s();else if("column"==i)s(!0);else if("word"==i||"group"==i)for(var u=null,h="group"==i,d=t.cm&&t.cm.getHelper(e,"wordChars"),f=!0;!(n<0)||s(!f);f=!1){var p=c.text.charAt(e.ch)||"\n",g=w(p,d)?"w":h&&"\n"==p?"n":!h||/\s/.test(p)?null:"p";if(!h||f||g||(g="s"),u&&u!=g){n<0&&(n=1,s(),e.sticky="after");break}if(g&&(u=g),n>0&&!s(!f))break}var m=Mr(t,e,a,l,!0);return $(a,m)&&(m.hitSide=!0),m}function is(t,e,n,i){var r,o=t.doc,s=e.left;if("page"==i){var a=Math.min(t.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),l=Math.max(a-.5*bn(t.display),3);r=(n>0?e.bottom:e.top)+n*l}else"line"==i&&(r=n>0?e.bottom+3:e.top-3);for(var c;c=dn(t,s,r),c.outside;){if(n<0?r<=0:r>=o.height){c.hitSide=!0;break}r+=5*n}return c}function rs(t,e){var n=qe(t,e.line);if(!n||n.hidden)return null;var i=E(t.doc,e.line),r=Be(n,i,e.line),o=kt(i,t.doc.direction),s="left";if(o){s=Ct(o,e.ch)%2?"right":"left"}var a=Ye(r.map,e.ch,s);return a.offset="right"==a.collapse?a.end:a.start,a}function os(t){for(var e=t;e;e=e.parentNode)if(/CodeMirror-gutter-wrapper/.test(e.className))return!0;return!1}function ss(t,e){return e&&(t.bad=!0),t}function as(t,e,n,i,r){function o(t){return function(e){return e.id==t}}function s(){u&&(c+=h,u=!1)}function a(t){t&&(s(),c+=t)}function l(e){if(1==e.nodeType){var n=e.getAttribute("cm-text");if(null!=n)return void a(n||e.textContent.replace(/\u200b/g,""));var c,d=e.getAttribute("cm-marker");if(d){var f=t.findMarks(_(i,0),_(r+1,0),o(+d));return void(f.length&&(c=f[0].find(0))&&a(P(t.doc,c.from,c.to).join(h)))}if("false"==e.getAttribute("contenteditable"))return;var p=/^(pre|div|p)$/i.test(e.nodeName);p&&s();for(var g=0;g=15&&(Cs=!1,bs=!0);var Ds,Is=As&&(xs||Cs&&(null==Ns||Ns<12.11)),_s=fs||vs&&ys>=9,Fs=function(e,n){var i=e.className,r=t(n).exec(i);if(r){var o=i.slice(r.index+r[0].length);e.className=i.slice(0,r.index)+(o?r[1]+o:"")}};Ds=document.createRange?function(t,e,n,i){var r=document.createRange();return r.setEnd(i||t,n),r.setStart(t,e),r}:function(t,e,n){var i=document.body.createTextRange();try{i.moveToElementText(t.parentNode)}catch(t){return i}return i.collapse(!0),i.moveEnd("character",n),i.moveStart("character",e),i};var $s=function(t){t.select()};Ms?$s=function(t){t.selectionStart=0,t.selectionEnd=t.value.length}:vs&&($s=function(t){try{t.select()}catch(t){}});var zs=function(){this.id=null};zs.prototype.set=function(t,e){clearTimeout(this.id),this.id=setTimeout(e,t)};var Rs,Hs,Vs=30,js={toString:function(){return"CodeMirror.Pass"}},Bs={scroll:!1},Ws={origin:"*mouse"},Us={origin:"+move"},qs=[""],Ks=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,Gs=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/,Ys=!1,Xs=!1,Js=null,Zs=function(){function t(t){return t<=247?n.charAt(t):1424<=t&&t<=1524?"R":1536<=t&&t<=1785?i.charAt(t-1536):1774<=t&&t<=2220?"r":8192<=t&&t<=8203?"w":8204==t?"b":"L"}function e(t,e,n){this.level=t,this.from=e,this.to=n}var n="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",i="nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111",r=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,o=/[stwN]/,s=/[LRr]/,a=/[Lb1n]/,l=/[1n]/;return function(n,i){var c="ltr"==i?"L":"R";if(0==n.length||"ltr"==i&&!r.test(n))return!1;for(var u=n.length,h=[],d=0;d=this.string.length},ca.prototype.sol=function(){return this.pos==this.lineStart},ca.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},ca.prototype.next=function(){if(this.pose},ca.prototype.eatSpace=function(){for(var t=this,e=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++t.pos;return this.pos>e},ca.prototype.skipToEnd=function(){this.pos=this.string.length},ca.prototype.skipTo=function(t){var e=this.string.indexOf(t,this.pos);if(e>-1)return this.pos=e,!0},ca.prototype.backUp=function(t){this.pos-=t},ca.prototype.column=function(){return this.lastColumnPos0?null:(i&&!1!==e&&(this.pos+=i[0].length),i)}var r=function(t){return n?t.toLowerCase():t};if(r(this.string.substr(this.pos,t.length))==r(t))return!1!==e&&(this.pos+=t.length),!0},ca.prototype.current=function(){return this.string.slice(this.start,this.pos)},ca.prototype.hideFirstChars=function(t,e){this.lineStart+=t;try{return e()}finally{this.lineStart-=t}},ca.prototype.lookAhead=function(t){var e=this.lineOracle;return e&&e.lookAhead(t)},ca.prototype.baseToken=function(){var t=this.lineOracle;return t&&t.baseToken(this.pos)};var ua=function(t,e){this.state=t,this.lookAhead=e},ha=function(t,e,n,i){this.state=e,this.doc=t,this.line=n,this.maxLookAhead=i||0,this.baseTokens=null,this.baseTokenPos=1};ha.prototype.lookAhead=function(t){var e=this.doc.getLine(this.line+t);return null!=e&&t>this.maxLookAhead&&(this.maxLookAhead=t),e},ha.prototype.baseToken=function(t){var e=this;if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=t;)e.baseTokenPos+=2;var n=this.baseTokens[this.baseTokenPos+1];return{type:n&&n.replace(/( |^)overlay .*/,""),size:this.baseTokens[this.baseTokenPos]-t}},ha.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},ha.fromSaved=function(t,e,n){return e instanceof ua?new ha(t,Ut(t.mode,e.state),n,e.lookAhead):new ha(t,Ut(t.mode,e),n)},ha.prototype.save=function(t){var e=!1!==t?Ut(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new ua(e,this.maxLookAhead):e};var da=function(t,e,n){this.start=t.start,this.end=t.pos,this.string=t.current(),this.type=e||null,this.state=n},fa=function(t,e,n){this.text=t,it(this,e),this.height=n?n(this):1};fa.prototype.lineNo=function(){return O(this)},Lt(fa);var pa,ga={},ma={},va=null,ya=null,ba={left:0,right:0,top:0,bottom:0},xa=function(t,e,n){this.cm=n;var r=this.vert=i("div",[i("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),o=this.horiz=i("div",[i("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");t(r),t(o),ta(r,"scroll",function(){r.clientHeight&&e(r.scrollTop,"vertical")}),ta(o,"scroll",function(){o.clientWidth&&e(o.scrollLeft,"horizontal")}),this.checkedZeroWidth=!1,vs&&ys<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};xa.prototype.update=function(t){var e=t.scrollWidth>t.clientWidth+1,n=t.scrollHeight>t.clientHeight+1,i=t.nativeBarWidth;if(n){this.vert.style.display="block",this.vert.style.bottom=e?i+"px":"0";var r=t.viewHeight-(e?i:0);this.vert.firstChild.style.height=Math.max(0,t.scrollHeight-t.clientHeight+r)+"px"}else this.vert.style.display="",this.vert.firstChild.style.height="0";if(e){this.horiz.style.display="block",this.horiz.style.right=n?i+"px":"0",this.horiz.style.left=t.barLeft+"px";var o=t.viewWidth-t.barLeft-(n?i:0);this.horiz.firstChild.style.width=Math.max(0,t.scrollWidth-t.clientWidth+o)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&t.clientHeight>0&&(0==i&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:n?i:0,bottom:e?i:0}},xa.prototype.setScrollLeft=function(t){this.horiz.scrollLeft!=t&&(this.horiz.scrollLeft=t),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},xa.prototype.setScrollTop=function(t){this.vert.scrollTop!=t&&(this.vert.scrollTop=t),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},xa.prototype.zeroWidthHack=function(){var t=As&&!Ss?"12px":"18px";this.horiz.style.height=this.vert.style.width=t,this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new zs,this.disableVert=new zs},xa.prototype.enableZeroWidthBar=function(t,e,n){function i(){var r=t.getBoundingClientRect();("vert"==n?document.elementFromPoint(r.right-1,(r.top+r.bottom)/2):document.elementFromPoint((r.right+r.left)/2,r.bottom-1))!=t?t.style.pointerEvents="none":e.set(1e3,i)}t.style.pointerEvents="auto",e.set(1e3,i)},xa.prototype.clear=function(){var t=this.horiz.parentNode;t.removeChild(this.horiz),t.removeChild(this.vert)};var wa=function(){};wa.prototype.update=function(){return{bottom:0,right:0}},wa.prototype.setScrollLeft=function(){},wa.prototype.setScrollTop=function(){},wa.prototype.clear=function(){};var Ca={native:xa,null:wa},ka=0,Sa=function(t,e,n){var i=t.display;this.viewport=e,this.visible=Rn(i,t.doc,e),this.editorIsHidden=!i.wrapper.offsetWidth,this.wrapperHeight=i.wrapper.clientHeight,this.wrapperWidth=i.wrapper.clientWidth,this.oldDisplayWidth=He(t),this.force=n,this.dims=wn(t),this.events=[]};Sa.prototype.signal=function(t,e){At(t,e)&&this.events.push(arguments)},Sa.prototype.finish=function(){for(var t=this,e=0;e=0&&F(t,r.to())<=0)return i}return-1};var Pa=function(t,e){this.anchor=t,this.head=e};Pa.prototype.from=function(){return H(this.anchor,this.head)},Pa.prototype.to=function(){return R(this.anchor,this.head)},Pa.prototype.empty=function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch},Vr.prototype={chunkSize:function(){return this.lines.length},removeInner:function(t,e){for(var n=this,i=t,r=t+e;i1||!(this.children[0]instanceof Vr))){var l=[];this.collapse(l),this.children=[new Vr(l)],this.children[0].parent=this}},collapse:function(t){for(var e=this,n=0;n50){for(var a=o.lines.length%25+25,l=a;l10);t.parent.maybeSpill()}},iterN:function(t,e,n){for(var i=this,r=0;re.display.maxLineLength&&(e.display.maxLine=u,e.display.maxLineLength=h,e.display.maxLineChanged=!0)}null!=r&&e&&this.collapsed&&vi(e,r,o+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,e&&kr(e.doc)),e&&xe(e,"markerCleared",e,this,r,o),n&&si(e),this.parent&&this.parent.clear()}},Oa.prototype.find=function(t,e){var n=this;null==t&&"bookmark"==this.type&&(t=1);for(var i,r,o=0;o=0;c--)Lr(i,r[c]);l?br(this,l):this.cm&&Kn(this.cm)}),undo:mi(function(){Nr(this,"undo")}),redo:mi(function(){Nr(this,"redo")}),undoSelection:mi(function(){Nr(this,"undo",!0)}),redoSelection:mi(function(){Nr(this,"redo",!0)}),setExtending:function(t){this.extend=t},getExtending:function(){return this.extend},historySize:function(){for(var t=this.history,e=0,n=0,i=0;i=t.ch)&&e.push(r.marker.parent||r.marker)}return e},findMarks:function(t,e,n){t=j(this,t),e=j(this,e);var i=[],r=t.line;return this.iter(t.line,e.line+1,function(o){var s=o.markedSpans;if(s)for(var a=0;a=l.to||null==l.from&&r!=t.line||null!=l.from&&r==e.line&&l.from>=e.ch||n&&!n(l.marker)||i.push(l.marker.parent||l.marker)}++r}),i},getAllMarks:function(){var t=[];return this.iter(function(e){var n=e.markedSpans;if(n)for(var i=0;it)return e=t,!0;t-=o,++n}),j(this,_(n,e))},indexFromPos:function(t){t=j(this,t);var e=t.ch;if(t.linee&&(e=t.from),null!=t.to&&t.to0)r=new _(r.line,r.ch+1),t.replaceRange(o.charAt(r.ch-1)+o.charAt(r.ch-2),_(r.line,r.ch-2),r,"+transpose");else if(r.line>t.doc.first){var s=E(t.doc,r.line-1).text;s&&(r=new _(r.line,1),t.replaceRange(o.charAt(0)+t.doc.lineSeparator()+s.charAt(s.length-1),_(r.line-1,s.length-1),r,"+transpose"))}n.push(new Pa(r,r))}t.setSelections(n)})},newlineAndIndent:function(t){return fi(t,function(){for(var e=t.listSelections(),n=e.length-1;n>=0;n--)t.replaceRange(t.doc.lineSeparator(),e[n].anchor,e[n].head,"+input");e=t.listSelections();for(var i=0;it&&0==F(e,this.pos)&&n==this.button};var qa,Ka,Ga={toString:function(){return"CodeMirror.Init"}},Ya={},Xa={};qo.defaults=Ya,qo.optionHandlers=Xa;var Ja=[];qo.defineInitHook=function(t){return Ja.push(t)};var Za=null,Qa=function(t){this.cm=t,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new zs,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};Qa.prototype.init=function(t){function e(t){if(!Et(r,t)){if(r.somethingSelected())Yo({lineWise:!1,text:r.getSelections()}),"cut"==t.type&&r.replaceSelection("",null,"cut");else{if(!r.options.lineWiseCopyCut)return;var e=Qo(r);Yo({lineWise:!0,text:e.text}),"cut"==t.type&&r.operation(function(){r.setSelections(e.ranges,0,Bs),r.replaceSelection("",null,"cut")})}if(t.clipboardData){t.clipboardData.clearData();var n=Za.text.join("\n");if(t.clipboardData.setData("Text",n),t.clipboardData.getData("Text")==n)return void t.preventDefault()}var s=es(),a=s.firstChild;r.display.lineSpace.insertBefore(s,r.display.lineSpace.firstChild),a.value=Za.text.join("\n");var l=document.activeElement;$s(a),setTimeout(function(){r.display.lineSpace.removeChild(s),l.focus(),l==o&&i.showPrimarySelection()},50)}}var n=this,i=this,r=i.cm,o=i.div=t.lineDiv;ts(o,r.options.spellcheck),ta(o,"paste",function(t){Et(r,t)||Jo(t,r)||ys<=11&&setTimeout(pi(r,function(){return n.updateFromDOM()}),20)}),ta(o,"compositionstart",function(t){n.composing={data:t.data,done:!1}}),ta(o,"compositionupdate",function(t){n.composing||(n.composing={data:t.data,done:!1})}),ta(o,"compositionend",function(t){n.composing&&(t.data!=n.composing.data&&n.readFromDOMSoon(),n.composing.done=!0)}),ta(o,"touchstart",function(){return i.forceCompositionEnd()}),ta(o,"input",function(){n.composing||n.readFromDOMSoon()}),ta(o,"copy",e),ta(o,"cut",e)},Qa.prototype.prepareSelection=function(){var t=Pn(this.cm,!1);return t.focus=this.cm.state.focused,t},Qa.prototype.showSelection=function(t,e){t&&this.cm.display.view.length&&((t.focus||e)&&this.showPrimarySelection(),this.showMultipleSelections(t))},Qa.prototype.showPrimarySelection=function(){var t=window.getSelection(),e=this.cm,n=e.doc.sel.primary(),i=n.from(),r=n.to();if(e.display.viewTo==e.display.viewFrom||i.line>=e.display.viewTo||r.line=e.display.viewFrom&&rs(e,i)||{node:a[0].measure.map[2],offset:0},c=r.linet.firstLine()&&(i=_(i.line-1,E(t.doc,i.line-1).length)),r.ch==E(t.doc,r.line).text.length&&r.linee.viewTo-1)return!1;var o,s,a;i.line==e.viewFrom||0==(o=Mn(t,i.line))?(s=O(e.view[0].line),a=e.view[0].node):(s=O(e.view[o].line),a=e.view[o-1].node.nextSibling);var l,c,u=Mn(t,r.line);if(u==e.view.length-1?(l=e.viewTo-1,c=e.lineDiv.lastChild):(l=O(e.view[u+1].line)-1,c=e.view[u+1].node.previousSibling),!a)return!1;for(var h=t.doc.splitLines(as(t,a,c,s,l)),d=P(t.doc,_(s,0),_(l,E(t.doc,l).text.length));h.length>1&&d.length>1;)if(g(h)==g(d))h.pop(),d.pop(),l--;else{if(h[0]!=d[0])break;h.shift(),d.shift(),s++}for(var f=0,p=0,m=h[0],v=d[0],y=Math.min(m.length,v.length);fi.ch&&b.charCodeAt(b.length-p-1)==x.charCodeAt(x.length-p-1);)f--,p++;h[h.length-1]=b.slice(0,b.length-p).replace(/^\u200b+/,""),h[0]=h[0].slice(f).replace(/\u200b+$/,"");var C=_(s,f),k=_(l,d.length?g(d).length-p:0);return h.length>1||h[0]||F(C,k)?(Fr(t.doc,h,C,k,"+input"),!0):void 0},Qa.prototype.ensurePolled=function(){this.forceCompositionEnd()},Qa.prototype.reset=function(){this.forceCompositionEnd()},Qa.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},Qa.prototype.readFromDOMSoon=function(){var t=this;null==this.readDOMTimeout&&(this.readDOMTimeout=setTimeout(function(){if(t.readDOMTimeout=null,t.composing){if(!t.composing.done)return;t.composing=null}t.updateFromDOM()},80))},Qa.prototype.updateFromDOM=function(){var t=this;!this.cm.isReadOnly()&&this.pollContent()||fi(this.cm,function(){return vi(t.cm)})},Qa.prototype.setUneditable=function(t){t.contentEditable="false"},Qa.prototype.onKeyPress=function(t){0!=t.charCode&&(t.preventDefault(),this.cm.isReadOnly()||pi(this.cm,Xo)(this.cm,String.fromCharCode(null==t.charCode?t.keyCode:t.charCode),0))},Qa.prototype.readOnlyChanged=function(t){this.div.contentEditable=String("nocursor"!=t)},Qa.prototype.onContextMenu=function(){},Qa.prototype.resetPosition=function(){},Qa.prototype.needsContentAttribute=!0;var tl=function(t){this.cm=t,this.prevInput="",this.pollingFast=!1,this.polling=new zs,this.hasSelection=!1,this.composing=null};tl.prototype.init=function(t){function e(t){if(!Et(r,t)){if(r.somethingSelected())Yo({lineWise:!1,text:r.getSelections()});else{if(!r.options.lineWiseCopyCut)return;var e=Qo(r);Yo({lineWise:!0,text:e.text}),"cut"==t.type?r.setSelections(e.ranges,null,Bs):(i.prevInput="",s.value=e.text.join("\n"),$s(s))}"cut"==t.type&&(r.state.cutIncoming=!0)}}var n=this,i=this,r=this.cm,o=this.wrapper=es(),s=this.textarea=o.firstChild;t.wrapper.insertBefore(o,t.wrapper.firstChild),Ms&&(s.style.width="0px"),ta(s,"input",function(){vs&&ys>=9&&n.hasSelection&&(n.hasSelection=null),i.poll()}),ta(s,"paste",function(t){Et(r,t)||Jo(t,r)||(r.state.pasteIncoming=!0,i.fastPoll())}),ta(s,"cut",e),ta(s,"copy",e),ta(t.scroller,"paste",function(e){_e(t,e)||Et(r,e)||(r.state.pasteIncoming=!0,i.focus())}),ta(t.lineSpace,"selectstart",function(e){_e(t,e)||Ot(e)}),ta(s,"compositionstart",function(){var t=r.getCursor("from");i.composing&&i.composing.range.clear(),i.composing={start:t,range:r.markText(t,r.getCursor("to"),{className:"CodeMirror-composing"})}}),ta(s,"compositionend",function(){i.composing&&(i.poll(),i.composing.range.clear(),i.composing=null)})},tl.prototype.prepareSelection=function(){var t=this.cm,e=t.display,n=t.doc,i=Pn(t);if(t.options.moveInputWithCursor){var r=cn(t,n.sel.primary().head,"div"),o=e.wrapper.getBoundingClientRect(),s=e.lineDiv.getBoundingClientRect();i.teTop=Math.max(0,Math.min(e.wrapper.clientHeight-10,r.top+s.top-o.top)),i.teLeft=Math.max(0,Math.min(e.wrapper.clientWidth-10,r.left+s.left-o.left))}return i},tl.prototype.showSelection=function(t){var e=this.cm,i=e.display;n(i.cursorDiv,t.cursors),n(i.selectionDiv,t.selection),null!=t.teTop&&(this.wrapper.style.top=t.teTop+"px",this.wrapper.style.left=t.teLeft+"px")},tl.prototype.reset=function(t){if(!this.contextMenuPending&&!this.composing){var e=this.cm;if(e.somethingSelected()){this.prevInput="";var n=e.getSelection();this.textarea.value=n,e.state.focused&&$s(this.textarea),vs&&ys>=9&&(this.hasSelection=n)}else t||(this.prevInput=this.textarea.value="",vs&&ys>=9&&(this.hasSelection=null))}},tl.prototype.getField=function(){return this.textarea},tl.prototype.supportsTouch=function(){return!1},tl.prototype.focus=function(){if("nocursor"!=this.cm.options.readOnly&&(!Ps||s()!=this.textarea))try{this.textarea.focus()}catch(t){}},tl.prototype.blur=function(){this.textarea.blur()},tl.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},tl.prototype.receivedFocus=function(){this.slowPoll()},tl.prototype.slowPoll=function(){var t=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,function(){t.poll(),t.cm.state.focused&&t.slowPoll()})},tl.prototype.fastPoll=function(){function t(){n.poll()||e?(n.pollingFast=!1,n.slowPoll()):(e=!0,n.polling.set(60,t))}var e=!1,n=this;n.pollingFast=!0,n.polling.set(20,t)},tl.prototype.poll=function(){var t=this,e=this.cm,n=this.textarea,i=this.prevInput;if(this.contextMenuPending||!e.state.focused||ia(n)&&!i&&!this.composing||e.isReadOnly()||e.options.disableInput||e.state.keySeq)return!1;var r=n.value;if(r==i&&!e.somethingSelected())return!1;if(vs&&ys>=9&&this.hasSelection===r||As&&/[\uf700-\uf7ff]/.test(r))return e.display.input.reset(),!1;if(e.doc.sel==e.display.selForContextMenu){var o=r.charCodeAt(0);if(8203!=o||i||(i="โ€‹"),8666==o)return this.reset(),this.cm.execCommand("undo")}for(var s=0,a=Math.min(i.length,r.length);s1e3||r.indexOf("\n")>-1?n.value=t.prevInput="":t.prevInput=r,t.composing&&(t.composing.range.clear(),t.composing.range=e.markText(t.composing.start,e.getCursor("to"),{className:"CodeMirror-composing"}))}),!0},tl.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},tl.prototype.onKeyPress=function(){vs&&ys>=9&&(this.hasSelection=null),this.fastPoll()},tl.prototype.onContextMenu=function(t){function e(){if(null!=s.selectionStart){var t=r.somethingSelected(),e="โ€‹"+(t?s.value:"");s.value="โ‡š",s.value=e,i.prevInput=t?"":"โ€‹",s.selectionStart=1,s.selectionEnd=e.length,o.selForContextMenu=r.doc.sel}}function n(){if(i.contextMenuPending=!1,i.wrapper.style.cssText=u,s.style.cssText=c,vs&&ys<9&&o.scrollbars.setScrollTop(o.scroller.scrollTop=l),null!=s.selectionStart){(!vs||vs&&ys<9)&&e();var t=0,n=function(){o.selForContextMenu==r.doc.sel&&0==s.selectionStart&&s.selectionEnd>0&&"โ€‹"==i.prevInput?pi(r,Pr)(r):t++<10?o.detectingSelectAll=setTimeout(n,500):(o.selForContextMenu=null,o.input.reset())};o.detectingSelectAll=setTimeout(n,200)}}var i=this,r=i.cm,o=r.display,s=i.textarea,a=Tn(r,t),l=o.scroller.scrollTop;if(a&&!Cs){r.options.resetSelectionOnContextMenu&&-1==r.doc.sel.contains(a)&&pi(r,xr)(r.doc,Hi(a),Bs);var c=s.style.cssText,u=i.wrapper.style.cssText;i.wrapper.style.cssText="position: absolute";var h=i.wrapper.getBoundingClientRect();s.style.cssText="position: absolute; width: 30px; height: 30px;\n top: "+(t.clientY-h.top-5)+"px; left: "+(t.clientX-h.left-5)+"px;\n z-index: 1000; background: "+(vs?"rgba(255, 255, 255, .05)":"transparent")+";\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);";var d;if(bs&&(d=window.scrollY),o.input.focus(),bs&&window.scrollTo(null,d),o.input.reset(),r.somethingSelected()||(s.value=i.prevInput=" "),i.contextMenuPending=!0,o.selForContextMenu=r.doc.sel,clearTimeout(o.detectingSelectAll),vs&&ys>=9&&e(),_s){It(t);var f=function(){Tt(window,"mouseup",f),setTimeout(n,20)};ta(window,"mouseup",f)}else setTimeout(n,50)}},tl.prototype.readOnlyChanged=function(t){t||this.reset(),this.textarea.disabled="nocursor"==t},tl.prototype.setUneditable=function(){},tl.prototype.needsContentAttribute=!1,function(t){function e(e,i,r,o){t.defaults[e]=i,r&&(n[e]=o?function(t,e,n){n!=Ga&&r(t,e,n)}:r)}var n=t.optionHandlers;t.defineOption=e,t.Init=Ga,e("value","",function(t,e){return t.setValue(e)},!0),e("mode",null,function(t,e){t.doc.modeOption=e,qi(t)},!0),e("indentUnit",2,qi,!0),e("indentWithTabs",!1),e("smartIndent",!0),e("tabSize",4,function(t){Ki(t),en(t),vi(t)},!0),e("lineSeparator",null,function(t,e){if(t.doc.lineSep=e,e){var n=[],i=t.doc.first;t.doc.iter(function(t){for(var r=0;;){var o=t.text.indexOf(e,r);if(-1==o)break;r=o+e.length,n.push(_(i,o))}i++});for(var r=n.length-1;r>=0;r--)Fr(t.doc,e,n[r],_(n[r].line,n[r].ch+e.length))}}),e("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b-\u200f\u2028\u2029\ufeff]/g,function(t,e,n){t.state.specialChars=new RegExp(e.source+(e.test("\t")?"":"|\t"),"g"),n!=Ga&&t.refresh()}),e("specialCharPlaceholder",ce,function(t){return t.refresh()},!0),e("electricChars",!0),e("inputStyle",Ps?"contenteditable":"textarea",function(){throw new Error("inputStyle can not (yet) be changed in a running editor")},!0),e("spellcheck",!1,function(t,e){return t.getInputField().spellcheck=e},!0),e("rtlMoveVisually",!Os),e("wholeLineUpdateBefore",!0),e("theme","default",function(t){jo(t),Bo(t)},!0),e("keyMap","default",function(t,e,n){var i=uo(e),r=n!=Ga&&uo(n);r&&r.detach&&r.detach(t,i),i.attach&&i.attach(t,r||null)}),e("extraKeys",null),e("configureMouse",null),e("lineWrapping",!1,Uo,!0),e("gutters",[],function(t){_i(t.options),Bo(t)},!0),e("fixedGutter",!0,function(t,e){t.display.gutters.style.left=e?Cn(t.display)+"px":"0",t.refresh()},!0),e("coverGutterNextToScrollbar",!1,function(t){return ni(t)},!0),e("scrollbarStyle","native",function(t){ri(t),ni(t),t.display.scrollbars.setScrollTop(t.doc.scrollTop),t.display.scrollbars.setScrollLeft(t.doc.scrollLeft)},!0),e("lineNumbers",!1,function(t){_i(t.options),Bo(t)},!0),e("firstLineNumber",1,Bo,!0),e("lineNumberFormatter",function(t){return t},Bo,!0),e("showCursorWhenSelecting",!1,En,!0),e("resetSelectionOnContextMenu",!0),e("lineWiseCopyCut",!0),e("pasteLinesPerSelection",!0),e("readOnly",!1,function(t,e){"nocursor"==e&&(Fn(t),t.display.input.blur()),t.display.input.readOnlyChanged(e)}),e("disableInput",!1,function(t,e){e||t.display.input.reset()},!0),e("dragDrop",!0,Wo),e("allowDropFileTypes",null),e("cursorBlinkRate",530),e("cursorScrollMargin",0),e("cursorHeight",1,En,!0),e("singleCursorHeightPerLine",!0,En,!0),e("workTime",100),e("workDelay",100),e("flattenSpans",!0,Ki,!0),e("addModeClass",!1,Ki,!0),e("pollInterval",100),e("undoDepth",200,function(t,e){return t.doc.history.undoDepth=e}),e("historyEventDelay",1250),e("viewportMargin",10,function(t){return t.refresh()},!0),e("maxHighlightLength",1e4,Ki,!0),e("moveInputWithCursor",!0,function(t,e){e||t.display.input.resetPosition()}),e("tabindex",null,function(t,e){return t.display.input.getField().tabIndex=e||""}),e("autofocus",null),e("direction","ltr",function(t,e){return t.doc.setDirection(e)},!0)}(qo),function(t){var e=t.optionHandlers,n=t.helpers={};t.prototype={constructor:t,focus:function(){window.focus(),this.display.input.focus()},setOption:function(t,n){var i=this.options,r=i[t];i[t]==n&&"mode"!=t||(i[t]=n,e.hasOwnProperty(t)&&pi(this,e[t])(this,n,r),Mt(this,"optionChange",this,t))},getOption:function(t){return this.options[t]},getDoc:function(){return this.doc},addKeyMap:function(t,e){this.state.keyMaps[e?"push":"unshift"](uo(t))},removeKeyMap:function(t){for(var e=this.state.keyMaps,n=0;ni&&(Go(e,o.head.line,t,!0),i=o.head.line,r==e.doc.sel.primIndex&&Kn(e));else{var s=o.from(),a=o.to(),l=Math.max(i,s.line);i=Math.min(e.lastLine(),a.line-(a.ch?0:1))+1;for(var c=l;c0&&mr(e.doc,r,new Pa(s,u[r].to()),Bs)}}}),getTokenAt:function(t,e){return te(this,t,e)},getLineTokens:function(t,e){return te(this,_(t),e,!0)},getTokenTypeAt:function(t){t=j(this.doc,t);var e,n=Yt(this,E(this.doc,t.line)),i=0,r=(n.length-1)/2,o=t.ch;if(0==o)e=n[2];else for(;;){var s=i+r>>1;if((s?n[2*s-1]:0)>=o)r=s;else{if(!(n[2*s+1]o&&(t=o,r=!0),i=E(this.doc,t)}else i=t;return sn(this,i,{top:0,left:0},e||"page",n||r).top+(r?this.doc.height-yt(i):0)},defaultTextHeight:function(){return bn(this.display)},defaultCharWidth:function(){return xn(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(t,e,n,i,r){var o=this.display;t=cn(this,j(this.doc,t));var s=t.bottom,a=t.left;if(e.style.position="absolute",e.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(e),o.sizer.appendChild(e),"over"==i)s=t.top;else if("above"==i||"near"==i){var l=Math.max(o.wrapper.clientHeight,this.doc.height),c=Math.max(o.sizer.clientWidth,o.lineSpace.clientWidth);("above"==i||t.bottom+e.offsetHeight>l)&&t.top>e.offsetHeight?s=t.top-e.offsetHeight:t.bottom+e.offsetHeight<=l&&(s=t.bottom),a+e.offsetWidth>c&&(a=c-e.offsetWidth)}e.style.top=s+"px",e.style.left=e.style.right="","right"==r?(a=o.sizer.clientWidth-e.offsetWidth,e.style.right="0px"):("left"==r?a=0:"middle"==r&&(a=(o.sizer.clientWidth-e.offsetWidth)/2),e.style.left=a+"px"),n&&Wn(this,{left:a,top:s,right:a+e.offsetWidth,bottom:s+e.offsetHeight})},triggerOnKeyDown:gi(To),triggerOnKeyPress:gi(Po),triggerOnKeyUp:Eo,triggerOnMouseDown:gi(Lo),execCommand:function(t){if(ja.hasOwnProperty(t))return ja[t].call(null,this)},triggerElectric:gi(function(t){Zo(this,t)}),findPosH:function(t,e,n,i){var r=this,o=1;e<0&&(o=-1,e=-e);for(var s=j(this.doc,t),a=0;a0&&a(n.charAt(i-1));)--i;for(;r.5)&&Sn(this),Mt(this,"refresh",this)}),swapDoc:gi(function(t){var e=this.doc;return e.cm=null,Ji(this,t),en(this),this.display.input.reset(),Gn(this,t.scrollLeft,t.scrollTop),this.curOp.forceScroll=!0,xe(this,"swapDoc",this,e),e}),getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},Lt(t),t.registerHelper=function(e,i,r){n.hasOwnProperty(e)||(n[e]=t[e]={_global:[]}),n[e][i]=r},t.registerGlobalHelper=function(e,i,r,o){t.registerHelper(e,i,o),n[e]._global.push({pred:r,val:o})}}(qo);var el="iter insert remove copy getEditor constructor".split(" ");for(var nl in Ia.prototype)Ia.prototype.hasOwnProperty(nl)&&d(el,nl)<0&&(qo.prototype[nl]=function(t){return function(){return t.apply(this.doc,arguments)}}(Ia.prototype[nl]));return Lt(Ia),qo.inputStyles={textarea:tl,contenteditable:Qa},qo.defineMode=function(t){qo.defaults.mode||"null"==t||(qo.defaults.mode=t),Ht.apply(this,arguments)},qo.defineMIME=Vt,qo.defineMode("null",function(){return{token:function(t){return t.skipToEnd()}}}),qo.defineMIME("text/plain","null"),qo.defineExtension=function(t,e){qo.prototype[t]=e},qo.defineDocExtension=function(t,e){Ia.prototype[t]=e},qo.fromTextArea=us,function(t){t.off=Tt,t.on=ta,t.wheelEventPixels=$i,t.Doc=Ia,t.splitLines=na,t.countColumn=h,t.findColumn=f,t.isWordChar=x,t.Pass=js,t.signal=Mt,t.Line=fa,t.changeEnd=Vi,t.scrollbarModel=Ca,t.Pos=_,t.cmpPos=F,t.modes=sa,t.mimeModes=aa,t.resolveMode=jt,t.getMode=Bt,t.modeExtensions=la,t.extendMode=Wt,t.copyState=Ut,t.startState=Kt,t.innerMode=qt,t.commands=ja,t.keyMap=Va,t.keyName=co,t.isModifierKey=ao,t.lookupKey=so,t.normalizeKeyMap=oo,t.StringStream=ca,t.SharedTextMarker=Na,t.TextMarker=Oa,t.LineWidget=Aa,t.e_preventDefault=Ot,t.e_stopPropagation=Nt,t.e_stop=It,t.addClass=a,t.contains=o,t.rmClass=Fs,t.keyNames=$a}(qo),qo.version="5.31.0",qo})},function(t,e,n){"use strict";(function(e,n){var i=e.$;t.exports=e.View.extend({events:{change:"onChange"},initialize:function(t){var e=this.model;this.config=t.config||{},this.pfx=this.config.stylePrefix||"",this.ppfx=this.config.pStylePrefix||"",this.target=e.target,this.className=this.pfx+"trait",this.labelClass=this.ppfx+"label",this.fieldClass=this.ppfx+"field "+this.ppfx+"field-"+e.get("type"),this.inputhClass=this.ppfx+"input-holder",e.off("change:value",this.onValueChange),this.listenTo(e,"change:value",this.onValueChange),this.tmpl='
'},onChange:function(){this.model.set("value",this.getInputEl().value)},getValueForTarget:function(){return this.model.get("value")},onValueChange:function(){var t=this.model,e=this.target,i=t.get("name"),r=this.getValueForTarget();if(t.get("changeProp"))e.set(i,r);else{var o=n.clone(e.get("attributes"));o[i]=r,e.set("attributes",o)}},renderLabel:function(){this.$el.html('
'+this.getLabel()+"
")},getLabel:function(){var t=this.model,e=t.get("label")||t.get("name");return e.charAt(0).toUpperCase()+e.slice(1).replace(/-/g," ")},getInputEl:function(){if(!this.$input){var t=this.model,e=this.target,n=t.get("name"),r=t.get("placeholder")||t.get("default")||"",o=t.get("type")||"text",s=e.get("attributes"),a=t.get("min"),l=t.get("max"),c=t.get("changeProp")?e.get(n):t.get("value")||s[n],u=i('');c&&u.prop("value",c),a&&u.prop("min",a),l&&u.prop("max",l),this.$input=u}return this.$input.get(0)},getModelValue:function(){var t,e=this.model,n=this.target,i=e.get("name");if(e.get("changeProp"))t=n.get(i);else{var r=n.get("attributes");t=e.get("value")||r[i]}return t},renderField:function(){if(!this.$input){this.$el.append(this.tmpl);var t=this.getInputEl(),e=this.el.querySelector("."+this.inputhClass);e.insertBefore(t,e.childNodes[0])}},render:function(){return this.renderLabel(),this.renderField(),this.el.className=this.className,this}})}).call(e,n(0),n(1))},function(t,e,n){"use strict";var i,r;!function(o,s){i=s,void 0!==(r="function"==typeof i?i.call(e,n,e,t):i)&&(t.exports=r)}(0,function(){function t(t,e){return e=e||E,$.test(t)?e.getElementsByClassName(t.slice(1)):R.test(t)?e.getElementsByTagName(t):e.querySelectorAll(t)}function e(t){if(!M){M=E.implementation.createHTMLDocument();var e=M.createElement("base");e.href=E.location.href,M.head.appendChild(e)}return M.body.innerHTML=t,M.body.childNodes}function n(t){"loading"!==E.readyState?t():E.addEventListener("DOMContentLoaded",t)}function i(i,r){if(!i)return this;if(i.cash&&i!==P)return i;var o,s=i,a=0;if(_(i))s=F.test(i)?E.getElementById(i.slice(1)):z.test(i)?e(i):t(i,r);else if(I(i))return n(i),this;if(!s)return this;if(s.nodeType||s===P)this[0]=s,this.length=1;else for(o=this.length=s.length;a=0&&s.splice(i,1)):(o(s,function(n){t.removeEventListener(e,n)}),s=[]))}function x(t,e){return"&"+encodeURIComponent(t)+"="+encodeURIComponent(e).replace(/%20/g,"+")}function w(t){var e=[];return o(t.options,function(t){t.selected&&e.push(t.value)}),e.length?e:null}function C(t){var e=t.selectedIndex;return e>=0?t.options[e].value:null}function k(t){var e=t.type;if(!e)return null;switch(e.toLowerCase()){case"select-one":return C(t);case"select-multiple":return w(t);case"radio":case"checkbox":return t.checked?t.value:null;default:return t.value?t.value:null}}function S(t,e,n){if(n){var i=t.childNodes[0];t.insertBefore(e,i)}else t.appendChild(e)}function T(t,e,n){var i=_(e);if(!i&&e.length)return void o(e,function(e){return T(t,e,n)});o(t,i?function(t){return t.insertAdjacentHTML(n?"afterbegin":"beforeend",e)}:function(t,i){return S(t,0===i?e:e.cloneNode(!0),n)})}var M,E=document,P=window,A=Array.prototype,L=A.slice,O=A.filter,N=A.push,D=function(){},I=function(t){return typeof t==typeof D&&t.call},_=function(t){return"string"==typeof t},F=/^#[\w-]*$/,$=/^\.[\w-]*$/,z=/<.+>/,R=/^\w+$/,H=r.fn=r.prototype=i.prototype={cash:!0,length:0,push:N,splice:A.splice,map:A.map,init:i};Object.defineProperty(H,"constructor",{value:r}),r.parseHTML=e,r.noop=D,r.isFunction=I,r.isString=_,r.extend=H.extend=function(t){t=t||{};var e=L.call(arguments),n=e.length,i=1;for(1===e.length&&(t=this,i=0);i1?this.each(function(n){return n.style[t]=e}):P.getComputedStyle(this[0])[t];for(var n in t)this.css(n,t[n]);return this}}),o(["Width","Height"],function(t){var e=t.toLowerCase();H[e]=function(){return this[0].getBoundingClientRect()[e]},H["inner"+t]=function(){return this[0]["client"+t]},H["outer"+t]=function(e){return this[0]["offset"+t]+(e?v(this,"margin"+("Width"===t?"Left":"Top"))+v(this,"margin"+("Width"===t?"Right":"Bottom")):0)}}),H.extend({off:function(t,e){return this.each(function(n){return b(n,t,e)})},on:function(t,e,i,r){var o;if(!_(t)){for(var a in t)this.on(a,e,t[a]);return this}return I(e)&&(i=e,e=null),"ready"===t?(n(i),this):(e&&(o=i,i=function(t){for(var n=t.target;!s(n,e);){if(n===this)return n=!1;n=n.parentNode}n&&o.call(n,t)}),this.each(function(e){var n=i;r&&(n=function(){i.apply(this,arguments),b(e,t,n)}),y(e,t,n)}))},one:function(t,e,n){return this.on(t,e,n,!0)},ready:n,trigger:function(t,e){var n=E.createEvent("HTMLEvents");return n.data=e,n.initEvent(t,!0,!1),this.each(function(t){return t.dispatchEvent(n)})}}),H.extend({serialize:function(){var t="";return o(this[0].elements||this,function(e){if(!e.disabled&&"FIELDSET"!==e.tagName){var n=e.name;switch(e.type.toLowerCase()){case"file":case"reset":case"submit":case"button":break;case"select-multiple":var i=k(e);null!==i&&o(i,function(e){t+=x(n,e)});break;default:var r=k(e);null!==r&&(t+=x(n,r))}}}),t.substr(1)},val:function(t){return void 0===t?k(this[0]):this.each(function(e){return e.value=t})}}),H.extend({after:function(t){return r(t).insertAfter(this),this},append:function(t){return T(this,t),this},appendTo:function(t){return T(r(t),this),this},before:function(t){return r(t).insertBefore(this),this},clone:function(){return r(this.map(function(t){return t.cloneNode(!0)}))},empty:function(){return this.html(""),this},html:function(t){if(void 0===t)return this[0].innerHTML;var e=t.nodeType?t[0].outerHTML:t;return this.each(function(t){return t.innerHTML=e})},insertAfter:function(t){var e=this;return r(t).each(function(t,n){var i=t.parentNode,r=t.nextSibling;e.each(function(t){i.insertBefore(0===n?t:t.cloneNode(!0),r)})}),this},insertBefore:function(t){var e=this;return r(t).each(function(t,n){var i=t.parentNode;e.each(function(e){i.insertBefore(0===n?e:e.cloneNode(!0),t)})}),this},prepend:function(t){return T(this,t,!0),this},prependTo:function(t){return T(r(t),this,!0),this},remove:function(){return this.each(function(t){return t.parentNode.removeChild(t)})},text:function(t){return void 0===t?this[0].textContent:this.each(function(e){return e.textContent=t})}});var U=E.documentElement;return H.extend({position:function(){var t=this[0];return{left:t.offsetLeft,top:t.offsetTop}},offset:function(){var t=this[0].getBoundingClientRect();return{top:t.top+P.pageYOffset-U.clientTop,left:t.left+P.pageXOffset-U.clientLeft}},offsetParent:function(){return r(this[0].offsetParent)}}),H.extend({children:function(t){var e=[];return this.each(function(t){N.apply(e,t.children)}),e=l(e),t?e.filter(function(e){return s(e,t)}):e},closest:function(t){return!t||this.length<1?r():this.is(t)?this.filter(t):this.parent().closest(t)},is:function(t){if(!t)return!1;var e=!1,n=a(t);return this.each(function(i){return!(e=n(i,t))}),e},find:function(e){if(!e||e.nodeType)return r(e&&this.has(e).length?e:null);var n=[];return this.each(function(i){N.apply(n,t(e,i))}),l(n)},has:function(e){var n=_(e)?function(n){return 0!==t(e,n).length}:function(t){return t.contains(e)};return this.filter(n)},next:function(){return r(this[0].nextElementSibling)},not:function(t){if(!t)return this;var e=a(t);return this.filter(function(n){return!e(n,t)})},parent:function(){var t=[];return this.each(function(e){e&&e.parentNode&&t.push(e.parentNode)}),l(t)},parents:function(t){var e,n=[];return this.each(function(i){for(e=i;e&&e.parentNode&&e!==E.body.parentNode;)e=e.parentNode,(!t||t&&s(e,t))&&n.push(e)}),l(n)},prev:function(){return r(this[0].previousElementSibling)},siblings:function(){var t=this.parent().children(),e=this[0];return t.filter(function(t){return t!==e})}}),r})},function(t,e,n){"use strict";var i=n(0),r=i.Model.extend({idAttribute:"name",defaults:{name:"",label:"",type:"class",active:!0,private:!1,protected:!1},initialize:function(){var t=this.get("name"),e=this.get("label");t?e||this.set("label",t):this.set("name",e),this.set("name",r.escapeName(this.get("name")))},getFullName:function(){var t="";switch(this.get("type")){case"class":t=".";break;case"id":t="#"}return t+this.get("name")}},{escapeName:function(t){return(""+t).trim().replace(/([^a-z0-9\w-]+)/gi,"-")}});t.exports=r},function(t,e,n){"use strict";var i=n(30),r=function(t){return t&&t.__esModule?t:{default:t}}(i),o=n(11);t.exports=n(0).Collection.extend(r.default).extend({types:[{id:"stack",model:n(116),view:n(32),isType:function(t){if(t&&"stack"==t.type)return t}},{id:"composite",model:n(31),view:n(16),isType:function(t){if(t&&"composite"==t.type)return t}},{id:"file",model:o,view:n(38),isType:function(t){if(t&&"file"==t.type)return t}},{id:"color",model:o,view:n(36),isType:function(t){if(t&&"color"==t.type)return t}},{id:"select",model:n(39),view:n(35),isType:function(t){if(t&&"select"==t.type)return t}},{id:"radio",model:n(39),view:n(34),isType:function(t){if(t&&"radio"==t.type)return t}},{id:"slider",model:n(122),view:n(123),isType:function(t){if(t&&"slider"==t.type)return t}},{id:"integer",model:n(40),view:n(13),isType:function(t){if(t&&"integer"==t.type)return t}},{id:"base",model:o,view:n(5),isType:function(t){return t.type="base",t}}],deepClone:function(){var t=this.clone();return t.reset(t.map(function(t){var e=t.clone();return e.typeView=t.typeView,e})),t},parseValue:function(t){var e=this,n=[];return t.split(" ").forEach(function(t,i){var r=e.at(i);n.push(Object.assign({},r.attributes,{value:t}))}),n},getFullValue:function(){var t="";return this.each(function(e){return t+=e.getFullValue()+" "}),t.trim()}})},function(t,e,n){"use strict";var i=Object.assign||function(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.parseValue(t);this.set(r,i({},n,{avoidStore:1})),e&&(this.set("value","",n),this.set(r,n))},setValueFromInput:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.setValue(t,e,i({},n,{fromInput:1}))},parseValue:function(t){var e={value:t};if(!this.get("functionName"))return e;var n=[],i=""+t,r=i.indexOf("(")+1,o=i.lastIndexOf(")");return n.push(r),o>=0&&n.push(o),e.value=String.prototype.substring.apply(i,n),e},getDefaultValue:function(){return this.get("defaults")},getFullValue:function(t){var e=this.get("functionName"),n=t||this.get("value");return e&&(n=e+"("+n+")"),n}})},function(t,e,n){"use strict";(function(e){n(5),n(13),n(34),n(35),n(36),n(38),n(16),n(32);t.exports=e.View.extend({initialize:function(t){this.config=t.config||{},this.pfx=this.config.stylePrefix||"",this.target=t.target||{},this.propTarget=t.propTarget||{},this.onChange=t.onChange,this.onInputRender=t.onInputRender||{},this.customValue=t.customValue||{};var e=this.collection;this.listenTo(e,"add",this.addTo),this.listenTo(e,"reset",this.render)},addTo:function(t){this.add(t)},add:function(t,e){var n=new t.typeView({model:t,name:t.get("name"),id:this.pfx+t.get("property"),target:this.target,propTarget:this.propTarget,onChange:this.onChange,onInputRender:this.onInputRender,config:this.config});"composite"!=t.get("type")&&(n.customValue=this.customValue),n.render();var i=n.el;e?e.appendChild(i):this.el.appendChild(i)},render:function(){var t=this,e=document.createDocumentFragment();return this.collection.each(function(n){return t.add(n,e)}),this.$el.append(e),this.$el.attr("class",this.pfx+"properties"),this}})}).call(e,n(0))},function(t,e,n){"use strict";(function(e){var i=(n(17),e.$);t.exports=n(5).extend({templateInput:function(){return""},init:function(){var t=this.model;this.listenTo(t,"change:unit",this.modelValueChanged),this.listenTo(t,"el:change",this.elementUpdated)},setValue:function(t){this.inputInst.setValue(t,{silent:1})},onRender:function(){var t=this.ppfx;if(!this.input){var e=this.model.input;e.ppfx=t,e.render();this.el.querySelector("."+t+"fields").appendChild(e.el),this.$input=e.inputEl,this.unit=e.unitEl,this.$unit=i(this.unit),this.input=this.$input.get(0),this.inputInst=e}}})}).call(e,n(0))},function(t,e,n){"use strict";var i=(n(0),n(4));t.exports=i.extend({tagName:"img",events:{dblclick:"openModal",click:"initResize"},initialize:function(t){i.prototype.initialize.apply(this,arguments),this.listenTo(this.model,"change:src",this.updateSrc),this.listenTo(this.model,"dblclick active",this.openModal),this.classEmpty=this.ppfx+"plh-image",this.config.modal&&(this.modal=this.config.modal),this.config.am&&(this.am=this.config.am)},updateSrc:function(){var t=this.model.get("src");this.$el.attr("src",t),t?this.$el.removeClass(this.classEmpty):this.$el.addClass(this.classEmpty)},openModal:function(t){var e=this.opts.config.em,n=e?e.get("Editor"):"";n&&this.model.get("editable")&&n.runCommand("open-assets",{target:this.model,onSelect:function(){n.Modal.close(),n.AssetManager.setTarget(null)}})},render:function(){this.updateAttributes(),this.updateClasses();var t=this.$el.attr("class")||"";return this.model.get("src")||this.$el.attr("class",(t+" "+this.classEmpty).trim()),this.$el.attr("onmousedown","return false"),this}})},function(t,e){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(n=window)}t.exports=n},function(t,e,n){"use strict";(function(e){var i=n(5),r=e.$;t.exports=i.extend({templateInput:function(){var t=this.pfx;return'\n
\n \n
\n '},inputValueChanged:function(){if(!this.model.get("detached")){for(var t=arguments.length,e=Array(t),n=0;n'),this.input=this.$input.get(0)),this.props||(this.props=t.get("properties")),!this.$props)){this.props.each(function(e,n){e&&"composite"==e.get("type")&&(this.props.remove(e),console.warn("Nested composite types not yet allowed.")),e.parent=t},this);var i=n(12),o=new i(this.getPropsConfig());this.$props=o.render().$el,this.$el.find("#"+this.pfx+"input-holder").append(this.$props)}},getPropsConfig:function(t){var e=this,n=this.model,i={config:this.config,collection:this.props,target:this.target,propTarget:this.propTarget,onChange:function(t,e,i){n.set("value",n.getFullValue(),i)},customValue:function(t,n){return e.valueOnIndex(n,t)}};return n.get("detached")&&delete i.onChange,i},valueOnIndex:function(t,e){var n=void 0,i=this.getTargetValue({ignoreDefault:1});if(i){n=i.split(" ")[t]}else n=e&&e.getTargetValue({ignoreCustomValue:1,ignoreDefault:1});return e&&(n=e.model.parseValue(n).value),n}})}).call(e,n(0))},function(t,e,n){"use strict";(function(e){var i=n(1),r=n(2),o=n(33),s=n(0);s.$;t.exports=o.extend({events:{"change input":"handleChange","change select":"handleUnitChange","click [data-arrow-up]":"upArrowClick","click [data-arrow-down]":"downArrowClick","mousedown [data-arrows]":"downIncrement"},template:function(){var t=this.ppfx;return'\n \n \n
\n
\n
\n
\n '},inputClass:function(){var t=this.ppfx;return this.opts.contClass||t+"field "+t+"field-integer"},initialize:function(){arguments.length>0&&void 0!==arguments[0]&&arguments[0];o.prototype.initialize.apply(this,arguments),(0,i.bindAll)(this,"moveIncrement","upIncrement"),this.doc=document,this.listenTo(this.model,"change:unit",this.handleModelChange)},setValue:function(t,e){var n=e||{},i=this.validateInputValue(t,{deepCheck:1}),r={value:i.value};(i.unit||i.force)&&(r.unit=i.unit),this.model.set(r,n),n.silent&&this.handleModelChange()},handleChange:function(t){t.stopPropagation(),this.setValue(this.getInputEl().value),this.elementUpdated()},handleUnitChange:function(t){t.stopPropagation();var e=this.getUnitEl().value;this.model.set("unit",e),this.elementUpdated()},elementUpdated:function(){this.model.trigger("el:change")},handleModelChange:function(){var t=this.model;this.getInputEl().value=t.get("value");var e=this.getUnitEl();e&&(e.value=t.get("unit"))},getUnitEl:function(){if(!this.unitEl){var t=this.model,e=t.get("units")||[];if(e.length){var n=[];e.forEach(function(e){var i=e==t.get("unit")?"selected":"";n.push("")});var i=document.createElement("div");i.innerHTML='",this.unitEl=i.firstChild}}return this.unitEl},upArrowClick:function(){var t=this.model,e=t.get("step"),n=t.get("value");n=this.normalizeValue(n+e);var i=this.validateInputValue(n);t.set("value",i.value),this.elementUpdated()},downArrowClick:function(){var t=this.model,e=t.get("step"),n=t.get("value"),i=this.normalizeValue(n-e),r=this.validateInputValue(i);t.set("value",r.value),this.elementUpdated()},downIncrement:function(t){t.preventDefault(),this.moved=0;var e=this.model.get("value");e=this.normalizeValue(e),this.current={y:t.pageY,val:e},(0,r.on)(this.doc,"mousemove",this.moveIncrement),(0,r.on)(this.doc,"mouseup",this.upIncrement)},moveIncrement:function(t){this.moved=1;var e=this.model,n=e.get("step"),i=this.current,r=this.normalizeValue(i.val+(i.y-t.pageY)*n);return this.prValue=this.validateInputValue(r).value,e.set("value",this.prValue,{avoidStore:1}),!1},upIncrement:function(){var t=this.model,e=t.get("step");if((0,r.off)(this.doc,"mouseup",this.upIncrement),(0,r.off)(this.doc,"mousemove",this.moveIncrement),this.prValue&&this.moved){var n=this.prValue-e;t.set("value",n,{avoidStore:1}).set("value",n+e),this.elementUpdated()}},normalizeValue:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.model,i=n.get("step"),r=0;if(isNaN(t))return e;if(t=parseFloat(t),Math.floor(t)!==t){var o=i.toString().split(".")[1];r=o?o.length:0}return r?parseFloat(t.toFixed(r)):t},validateInputValue:function(t,n){var i=0,r=n||{},o=this.model,s=""!==t?t:o.get("defaults"),a=o.get("units")||[],l=o.get("unit")||a.length&&a[0]||"",c=o.get("max"),u=o.get("min");if(r.deepCheck){var h=o.get("fixedValues")||[];if(s){var d=new RegExp("^"+h.join("|"),"g");if(h.length&&d.test(s))s=s.match(d)[0],l="",i=1;else{var f=s+"";s+="",s=parseFloat(s.replace(",",".")),s=isNaN(s)?o.get("defaults"):s;var p=f.replace(s,"");e.indexOf(a,p)>=0&&(l=p)}}}return void 0!==c&&""!==c&&(s=s>c?c:s),void 0!==u&&""!==u&&(s=s1&&void 0!==arguments[1]?arguments[1]:{},r=i.el,s=i.config,a=i.resizer,l=s.keyHeight,h=s.keyWidth,d=s.currentUnit;f("add",0,i),e=n.get("StyleManager").getModelToStyle(c);var p=getComputedStyle(r),g=e.getStyle(),m=g[h]||p[h],v=g[l]||p[l];a.startDim.w=parseFloat(m),a.startDim.h=parseFloat(v),u=0,d&&(s.unitHeight=(0,o.getUnitFromValue)(v),s.unitWidth=(0,o.getUnitFromValue)(m))},onMove:function(){r.trigger("change:canvasOffset")},onEnd:function(t,e){f("remove",0,e),r.trigger("change:canvasOffset"),u=1},updateTarget:function(t,i){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var o=r.store,s=r.selectedHandler,a=r.config,l=a.keyHeight,c=a.keyWidth,u=["tc","bc"].indexOf(s)>=0,h=["cl","cr"].indexOf(s)>=0,d=e.getStyle();u||(d[c]=i.w+a.unitWidth),h||(d[l]=i.h+a.unitHeight),e.setStyle(d,{avoidStore:1});n&&n.trigger("update:component:style:"+l+" update:component:style:"+c),o&&e.trigger("change:style",e,d,{})}}},"object"==(void 0===h?"undefined":i(h))&&(d=Object.assign(d,h)),r.runCommand("resize",{el:t,options:d}))},updateToolbar:function(t){var e=this.config.em,n=t==e?e.get("selectedComponent"):t,i=this.canvas.getToolbarEl(),r=i.style;if(!n)return void(r.opacity=0);var o=n.get("toolbar");this.ppfx;if(e.get("Config").showToolbar&&o&&o.length){if(r.opacity="",r.display="",!this.toolbar){i.innerHTML="",this.toolbar=new a(o);var l=new s({collection:this.toolbar,editor:this.editor});i.appendChild(l.render().el)}this.toolbar.reset(o);var c=n.view;c&&this.updateToolbarPos(c.el)}else r.display="none"},updateToolbarPos:function(t,e){var n=this.canvas.getToolbarEl(),i=n.style,r=this.canvas.getTargetToElementDim(n,t,{elPos:e,event:"toolbarPosUpdate"}),o=r.left+r.elementWidth-r.targetWidth;i.top=r.top+"px",i.left=o+"px"},getCanvasPosition:function(){return this.canvas.getCanvasView().getPosition()},clean:function(){this.selEl&&this.selEl.removeClass(this.hoverClass)},getBadge:function(){return this.canvas.getBadgeEl()},onFrameScroll:function(t){var e=this.cacheEl;if(e){var n=this.getElementPos(e);this.updateBadge(e,n);var i=this.em.get("selectedComponent");i&&this.updateToolbarPos(i.view.el)}},updateAttached:function(){var t=this.em.get("selectedComponent");if(t){var e=t.view;this.updateToolbarPos(e.el),this.showFixedElementOffset(e.el)}},getElementPos:function(t,e){return this.canvas.getCanvasView().getElementPos(t)},hideBadge:function(){this.getBadge().style.display="none"},cleanPrevious:function(t){t&&t.set({status:"",state:""})},getContentWindow:function(){return this.frameEl.contentWindow},run:function(t){this.editor=t&&t.get("Editor"),this.enable(),this.onSelect()},stop:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=this.em;this.stopSelectComponent(),!n.preserveSelected&&i.setSelected(null),this.clean(),this.toggleClipboard(),this.hideBadge(),this.hideFixedElementOffset(),this.canvas.getToolbarEl().style.display="none",i.off("component:update",this.updateAttached,this),i.off("change:canvasOffset",this.updateAttached,this),i.off("change:selectedComponent",this.updateToolbar,this)}}},function(t,e,n){"use strict";(function(e,i){var r=n(53),o=e.$;t.exports=i.extend({},r,{init:function(t){i.bindAll(this,"startDraw","draw","endDraw","rollback"),this.config=t||{},this.hType=this.config.newFixedH?"height":"min-height",this.allowDraw=1},enable:function(){for(var t=arguments.length,e=Array(t),n=0;n*\/]/.test(n)?i(null,"select-op"):"."==n&&t.match(/^-?[_a-z][_a-z0-9-]*/i)?i("qualifier","qualifier"):/[:;{}\[\]\(\)]/.test(n)?i(null,n):"u"==n&&t.match(/rl(-prefix)?\(/)||"d"==n&&t.match("omain(")||"r"==n&&t.match("egexp(")?(t.backUp(1),e.tokenize=s,i("property","word")):/[\w\\\-]/.test(n)?(t.eatWhile(/[\w\\\-]/),i("property","word")):i(null,null):/[\d.]/.test(t.peek())?(t.eatWhile(/[\w.%]/),i("number","unit")):t.match(/^-[\w\\\-]+/)?(t.eatWhile(/[\w\\\-]/),t.match(/^\s*:/,!1)?i("variable-2","variable-definition"):i("variable-2","variable")):t.match(/^\w+-/)?i("meta","meta"):void 0}function o(t){return function(e,n){for(var r,o=!1;null!=(r=e.next());){if(r==t&&!o){")"==t&&e.backUp(1);break}o=!o&&"\\"==r}return(r==t||!o&&")"!=t)&&(n.tokenize=null),i("string","string")}}function s(t,e){return t.next(),t.match(/\s*[\"\')]/,!1)?e.tokenize=null:e.tokenize=o(")"),i(null,"(")}function a(t,e,n){this.type=t,this.indent=e,this.prev=n}function l(t,e,n,i){return t.context=new a(n,e.indentation()+(!1===i?0:m),t.context),n}function c(t){return t.context.prev&&(t.context=t.context.prev),t.context.type}function u(t,e,n){return O[n.context.type](t,e,n)}function h(t,e,n,i){for(var r=i||1;r>0;r--)n.context=n.context.prev;return u(t,e,n)}function d(t){var e=t.current().toLowerCase();g=E.hasOwnProperty(e)?"atom":M.hasOwnProperty(e)?"keyword":"variable"}var f=n.inline;n.propertyKeywords||(n=t.resolveMode("text/css"));var p,g,m=e.indentUnit,v=n.tokenHooks,y=n.documentTypes||{},b=n.mediaTypes||{},x=n.mediaFeatures||{},w=n.mediaValueKeywords||{},C=n.propertyKeywords||{},k=n.nonStandardPropertyKeywords||{},S=n.fontProperties||{},T=n.counterDescriptors||{},M=n.colorKeywords||{},E=n.valueKeywords||{},P=n.allowNested,A=n.lineComment,L=!0===n.supportsAtComponent,O={};return O.top=function(t,e,n){if("{"==t)return l(n,e,"block");if("}"==t&&n.context.prev)return c(n);if(L&&/@component/.test(t))return l(n,e,"atComponentBlock");if(/^@(-moz-)?document$/.test(t))return l(n,e,"documentTypes");if(/^@(media|supports|(-moz-)?document|import)$/.test(t))return l(n,e,"atBlock");if(/^@(font-face|counter-style)/.test(t))return n.stateArg=t,"restricted_atBlock_before";if(/^@(-(moz|ms|o|webkit)-)?keyframes$/.test(t))return"keyframes";if(t&&"@"==t.charAt(0))return l(n,e,"at");if("hash"==t)g="builtin";else if("word"==t)g="tag";else{if("variable-definition"==t)return"maybeprop";if("interpolation"==t)return l(n,e,"interpolation");if(":"==t)return"pseudo";if(P&&"("==t)return l(n,e,"parens")}return n.context.type},O.block=function(t,e,n){if("word"==t){var i=e.current().toLowerCase();return C.hasOwnProperty(i)?(g="property","maybeprop"):k.hasOwnProperty(i)?(g="string-2","maybeprop"):P?(g=e.match(/^\s*:(?:\s|$)/,!1)?"property":"tag","block"):(g+=" error","maybeprop")}return"meta"==t?"block":P||"hash"!=t&&"qualifier"!=t?O.top(t,e,n):(g="error","block")},O.maybeprop=function(t,e,n){return":"==t?l(n,e,"prop"):u(t,e,n)},O.prop=function(t,e,n){if(";"==t)return c(n);if("{"==t&&P)return l(n,e,"propBlock");if("}"==t||"{"==t)return h(t,e,n);if("("==t)return l(n,e,"parens");if("hash"!=t||/^#([0-9a-fA-f]{3,4}|[0-9a-fA-f]{6}|[0-9a-fA-f]{8})$/.test(e.current())){if("word"==t)d(e);else if("interpolation"==t)return l(n,e,"interpolation")}else g+=" error";return"prop"},O.propBlock=function(t,e,n){return"}"==t?c(n):"word"==t?(g="property","maybeprop"):n.context.type},O.parens=function(t,e,n){return"{"==t||"}"==t?h(t,e,n):")"==t?c(n):"("==t?l(n,e,"parens"):"interpolation"==t?l(n,e,"interpolation"):("word"==t&&d(e),"parens")},O.pseudo=function(t,e,n){return"meta"==t?"pseudo":"word"==t?(g="variable-3",n.context.type):u(t,e,n)},O.documentTypes=function(t,e,n){return"word"==t&&y.hasOwnProperty(e.current())?(g="tag",n.context.type):O.atBlock(t,e,n)},O.atBlock=function(t,e,n){if("("==t)return l(n,e,"atBlock_parens");if("}"==t||";"==t)return h(t,e,n);if("{"==t)return c(n)&&l(n,e,P?"block":"top");if("interpolation"==t)return l(n,e,"interpolation");if("word"==t){var i=e.current().toLowerCase();g="only"==i||"not"==i||"and"==i||"or"==i?"keyword":b.hasOwnProperty(i)?"attribute":x.hasOwnProperty(i)?"property":w.hasOwnProperty(i)?"keyword":C.hasOwnProperty(i)?"property":k.hasOwnProperty(i)?"string-2":E.hasOwnProperty(i)?"atom":M.hasOwnProperty(i)?"keyword":"error"}return n.context.type},O.atComponentBlock=function(t,e,n){return"}"==t?h(t,e,n):"{"==t?c(n)&&l(n,e,P?"block":"top",!1):("word"==t&&(g="error"),n.context.type)},O.atBlock_parens=function(t,e,n){return")"==t?c(n):"{"==t||"}"==t?h(t,e,n,2):O.atBlock(t,e,n)},O.restricted_atBlock_before=function(t,e,n){return"{"==t?l(n,e,"restricted_atBlock"):"word"==t&&"@counter-style"==n.stateArg?(g="variable","restricted_atBlock_before"):u(t,e,n)},O.restricted_atBlock=function(t,e,n){return"}"==t?(n.stateArg=null,c(n)):"word"==t?(g="@font-face"==n.stateArg&&!S.hasOwnProperty(e.current().toLowerCase())||"@counter-style"==n.stateArg&&!T.hasOwnProperty(e.current().toLowerCase())?"error":"property","maybeprop"):"restricted_atBlock"},O.keyframes=function(t,e,n){return"word"==t?(g="variable","keyframes"):"{"==t?l(n,e,"top"):u(t,e,n)},O.at=function(t,e,n){return";"==t?c(n):"{"==t||"}"==t?h(t,e,n):("word"==t?g="tag":"hash"==t&&(g="builtin"),"at")},O.interpolation=function(t,e,n){return"}"==t?c(n):"{"==t||";"==t?h(t,e,n):("word"==t?g="variable":"variable"!=t&&"("!=t&&")"!=t&&(g="error"),"interpolation")},{startState:function(t){return{tokenize:null,state:f?"block":"top",stateArg:null,context:new a(f?"block":"top",t||0,null)}},token:function(t,e){if(!e.tokenize&&t.eatSpace())return null;var n=(e.tokenize||r)(t,e);return n&&"object"==typeof n&&(p=n[1],n=n[0]),g=n,"comment"!=p&&(e.state=O[e.state](p,t,e)),g},indent:function(t,e){var n=t.context,i=e&&e.charAt(0),r=n.indent;return"prop"!=n.type||"}"!=i&&")"!=i||(n=n.prev),n.prev&&("}"!=i||"block"!=n.type&&"top"!=n.type&&"interpolation"!=n.type&&"restricted_atBlock"!=n.type?(")"!=i||"parens"!=n.type&&"atBlock_parens"!=n.type)&&("{"!=i||"at"!=n.type&&"atBlock"!=n.type)||(r=Math.max(0,n.indent-m)):(n=n.prev,r=n.indent)),r},electricChars:"}",blockCommentStart:"/*",blockCommentEnd:"*/",blockCommentContinue:" * ",lineComment:A,fold:"brace"}});var i=["domain","regexp","url","url-prefix"],r=e(i),o=["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"],s=e(o),a=["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid","orientation","device-pixel-ratio","min-device-pixel-ratio","max-device-pixel-ratio","pointer","any-pointer","hover","any-hover"],l=e(a),c=["landscape","portrait","none","coarse","fine","on-demand","hover","interlace","progressive"],u=e(c),h=["align-content","align-items","align-self","alignment-adjust","alignment-baseline","anchor-point","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","azimuth","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","baseline-shift","binding","bleed","bookmark-label","bookmark-level","bookmark-state","bookmark-target","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","color","color-profile","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","crop","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","drop-initial-after-adjust","drop-initial-after-align","drop-initial-before-adjust","drop-initial-before-align","drop-initial-size","drop-initial-value","elevation","empty-cells","fit","fit-position","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-offset","flow-from","flow-into","font","font-feature-settings","font-family","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-weight","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-gap","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-gap","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","inline-box-align","justify-content","justify-items","justify-self","left","letter-spacing","line-break","line-height","line-stacking","line-stacking-ruby","line-stacking-shift","line-stacking-strategy","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","marquee-direction","marquee-loop","marquee-play-count","marquee-speed","marquee-style","max-height","max-width","min-height","min-width","move-to","nav-down","nav-index","nav-left","nav-right","nav-up","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-style","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","page-policy","pause","pause-after","pause-before","perspective","perspective-origin","pitch","pitch-range","place-content","place-items","place-self","play-during","position","presentation-level","punctuation-trim","quotes","region-break-after","region-break-before","region-break-inside","region-fragment","rendering-intent","resize","rest","rest-after","rest-before","richness","right","rotation","rotation-point","ruby-align","ruby-overhang","ruby-position","ruby-span","shape-image-threshold","shape-inside","shape-margin","shape-outside","size","speak","speak-as","speak-header","speak-numeral","speak-punctuation","speech-rate","stress","string-set","tab-size","table-layout","target","target-name","target-new","target-position","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-height","text-indent","text-justify","text-outline","text-overflow","text-shadow","text-size-adjust","text-space-collapse","text-transform","text-underline-position","text-wrap","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","user-select","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","z-index","clip-path","clip-rule","mask","enable-background","filter","flood-color","flood-opacity","lighting-color","stop-color","stop-opacity","pointer-events","color-interpolation","color-interpolation-filters","color-rendering","fill","fill-opacity","fill-rule","image-rendering","marker","marker-end","marker-mid","marker-start","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-rendering","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","text-anchor","writing-mode"],d=e(h),f=["scrollbar-arrow-color","scrollbar-base-color","scrollbar-dark-shadow-color","scrollbar-face-color","scrollbar-highlight-color","scrollbar-shadow-color","scrollbar-3d-light-color","scrollbar-track-color","shape-inside","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","zoom"],p=e(f),g=["font-family","src","unicode-range","font-variant","font-feature-settings","font-stretch","font-weight","font-style"],m=e(g),v=["additive-symbols","fallback","negative","pad","prefix","range","speak-as","suffix","symbols","system"],y=e(v),b=["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"],x=e(b),w=["above","absolute","activeborder","additive","activecaption","afar","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","amharic","amharic-abegede","antialiased","appworkspace","arabic-indic","armenian","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","background","backwards","baseline","below","bidi-override","binary","bengali","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","cambodian","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","cjk-earthly-branch","cjk-heavenly-stem","cjk-ideographic","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","devanagari","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic","ethiopic-abegede","ethiopic-abegede-am-et","ethiopic-abegede-gez","ethiopic-abegede-ti-er","ethiopic-abegede-ti-et","ethiopic-halehame-aa-er","ethiopic-halehame-aa-et","ethiopic-halehame-am-et","ethiopic-halehame-gez","ethiopic-halehame-om-et","ethiopic-halehame-sid-et","ethiopic-halehame-so-et","ethiopic-halehame-ti-er","ethiopic-halehame-ti-et","ethiopic-halehame-tig","ethiopic-numeric","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","georgian","graytext","grid","groove","gujarati","gurmukhi","hand","hangul","hangul-consonant","hard-light","hebrew","help","hidden","hide","higher","highlight","highlighttext","hiragana","hiragana-iroha","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","japanese-formal","japanese-informal","justify","kannada","katakana","katakana-iroha","keep-all","khmer","korean-hangul-formal","korean-hanja-formal","korean-hanja-informal","landscape","lao","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-alpha","lower-armenian","lower-greek","lower-hexadecimal","lower-latin","lower-norwegian","lower-roman","lowercase","ltr","luminosity","malayalam","match","matrix","matrix3d","media-controls-background","media-current-time-display","media-fullscreen-button","media-mute-button","media-play-button","media-return-to-realtime-button","media-rewind-button","media-seek-back-button","media-seek-forward-button","media-slider","media-sliderthumb","media-time-remaining-display","media-volume-slider","media-volume-slider-container","media-volume-sliderthumb","medium","menu","menulist","menulist-button","menulist-text","menulist-textfield","menutext","message-box","middle","min-intrinsic","mix","mongolian","monospace","move","multiple","multiply","myanmar","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","octal","opacity","open-quote","optimizeLegibility","optimizeSpeed","oriya","oromo","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","persian","perspective","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","searchfield","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","self-start","self-end","semi-condensed","semi-expanded","separate","serif","show","sidama","simp-chinese-formal","simp-chinese-informal","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","somali","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","square-button","start","static","status-bar","stretch","stroke","sub","subpixel-antialiased","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","tamil","telugu","text","text-bottom","text-top","textarea","textfield","thai","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","tibetan","tigre","tigrinya-er","tigrinya-er-abegede","tigrinya-et","tigrinya-et-abegede","to","top","trad-chinese-formal","trad-chinese-informal","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unset","up","upper-alpha","upper-armenian","upper-greek","upper-hexadecimal","upper-latin","upper-norwegian","upper-roman","uppercase","urdu","url","var","vertical","vertical-text","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"],C=e(w),k=i.concat(o).concat(a).concat(c).concat(h).concat(f).concat(b).concat(w);t.registerHelper("hintWords","css",k),t.defineMIME("text/css",{documentTypes:r,mediaTypes:s,mediaFeatures:l,mediaValueKeywords:u,propertyKeywords:d,nonStandardPropertyKeywords:p,fontProperties:m,counterDescriptors:y,colorKeywords:x,valueKeywords:C,tokenHooks:{"/":function(t,e){return!!t.eat("*")&&(e.tokenize=n,n(t,e))}},name:"css"}),t.defineMIME("text/x-scss",{mediaTypes:s,mediaFeatures:l,mediaValueKeywords:u,propertyKeywords:d,nonStandardPropertyKeywords:p,colorKeywords:x,valueKeywords:C,fontProperties:m,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(t,e){return t.eat("/")?(t.skipToEnd(),["comment","comment"]):t.eat("*")?(e.tokenize=n,n(t,e)):["operator","operator"]},":":function(t){return!!t.match(/\s*\{/,!1)&&[null,null]},$:function(t){return t.match(/^[\w-]+/),t.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"]},"#":function(t){return!!t.eat("{")&&[null,"interpolation"]}},name:"css",helperType:"scss"}),t.defineMIME("text/x-less",{mediaTypes:s,mediaFeatures:l,mediaValueKeywords:u,propertyKeywords:d,nonStandardPropertyKeywords:p,colorKeywords:x,valueKeywords:C,fontProperties:m,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(t,e){return t.eat("/")?(t.skipToEnd(),["comment","comment"]):t.eat("*")?(e.tokenize=n,n(t,e)):["operator","operator"]},"@":function(t){return t.eat("{")?[null,"interpolation"]:!t.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\b/,!1)&&(t.eatWhile(/[\w\\\-]/),t.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"])},"&":function(){return["atom","atom"]}},name:"css",helperType:"less"}),t.defineMIME("text/x-gss",{documentTypes:r,mediaTypes:s,mediaFeatures:l,propertyKeywords:d,nonStandardPropertyKeywords:p,fontProperties:m,counterDescriptors:y,colorKeywords:x,valueKeywords:C,supportsAtComponent:!0,tokenHooks:{"/":function(t,e){return!!t.eat("*")&&(e.tokenize=n,n(t,e))}},name:"css",helperType:"gss"})})},function(t,e,n){"use strict";var i=n(0),r=n(26);t.exports=i.Model.extend({defaults:{id:"",content:"",visible:!0,buttons:[]},initialize:function(t){this.btn=this.get("buttons")||[],this.buttons=new r(this.btn),this.set("buttons",this.buttons)}})},function(t,e,n){"use strict";var i=n(0),r=n(106);t.exports=i.Collection.extend({model:r,deactivateAllExceptOne:function(t,e){this.forEach(function(n,i){n!==t&&(n.set("active",!1),e&&n.get("buttons").length&&n.get("buttons").deactivateAllExceptOne(t,e))})},deactivateAll:function(t){var e=t||"";this.forEach(function(t,n){t.get("context")==e&&(t.set("active",!1),t.get("buttons").length&&t.get("buttons").deactivateAll(e))})},disableAllButtons:function(t){var e=t||"";this.forEach(function(t,n){t.get("context")==e&&(t.set("disable",!0),t.get("buttons").length&&t.get("buttons").disableAllButtons(e))})},disableAllButtonsExceptOne:function(t,e){this.forEach(function(n,i){n!==t&&(n.set("disable",!0),e&&n.get("buttons").length&&n.get("buttons").disableAllButtonsExceptOne(t,e))})}})},function(t,e,n){"use strict";var i=n(0),r=n(28);t.exports=i.View.extend({initialize:function(t){this.config=t.config||{},this.pfx=this.config.stylePrefix||"",this.buttons=this.model.get("buttons"),this.className=this.pfx+"panel",this.id=this.pfx+this.model.get("id"),this.listenTo(this.model,"change:appendContent",this.appendContent),this.listenTo(this.model,"change:content",this.updateContent)},appendContent:function(){this.$el.append(this.model.get("appendContent"))},updateContent:function(){this.$el.html(this.model.get("content"))},initResize:function(){var t=this.config.em,e=t?t.get("Editor"):"",n=this.model.get("resizable");if(e&&n){var i,r,o,s=!0===n?[1,1,1,1]:n,a=s.length,l=0;2==a?(i=s[0],o=s[0],r=s[1],l=s[1]):4==a&&(i=s[0],r=s[1],o=s[2],l=s[3]);var c=e.Utils.Resizer.init({tc:i,cr:r,bc:o,cl:l,tl:0,tr:0,bl:0,br:0,appendTo:this.el,prefix:e.getConfig().stylePrefix,posFetcher:function(t){var e=t.getBoundingClientRect();return{left:0,top:0,width:e.width,height:e.height}}});c.blur=function(){},c.focus(this.el)}},render:function(){if(this.$el.attr("class",this.className),this.id&&this.$el.attr("id",this.id),this.buttons.length){var t=new r({collection:this.buttons,config:this.config});this.$el.append(t.render().el)}return this.$el.append(this.model.get("content")),this}})},function(t,e,n){"use strict";(function(e){var i=n(0),r=n(108);t.exports=i.View.extend({initialize:function(t){this.opt=t||{},this.config=this.opt.config||{},this.pfx=this.config.stylePrefix||"",this.parentM=this.opt.parentM||null,this.listenTo(this.collection,"add",this.addTo),this.listenTo(this.collection,"reset",this.render),this.className=this.pfx+"buttons"},addTo:function(t){this.addToCollection(t)},addToCollection:function(t,e){var n=e||null,i=r,o=new i({model:t,config:this.config,parentM:this.parentM}),s=o.render().el;return n?n.appendChild(s):this.$el.append(s),s},render:function(){var t=document.createDocumentFragment();return this.$el.empty(),this.collection.each(function(e){this.addToCollection(e,t)},this),this.$el.append(t),this.$el.attr("class",e.result(this,"className")),this}})}).call(e,n(1))},function(t,e,n){"use strict";var i=Object.assign||function(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},n=e.model,o=void 0===n?{}:n,s=e.view,a=void 0===s?{}:s,l=this.getType(t);if(l)return new l.view(i({model:new l.model(o),config:r},a))},render:function(){return e.render().el}}}},function(t,e,n){"use strict";(function(t){Object.defineProperty(e,"__esModule",{value:!0});var n=t.Model,i=t.View;e.default={types:[],initialize:function(t,e){var n=this;this.model=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=void 0,r=void 0,o=void 0;if(t&&t.type){var s=n.getBaseType();o=n.getType(t.type),i=o?o.model:s.model,r=o?o.view:s.view}else{var a=n.recognizeType(t);o=a.type,i=o.model,r=o.view,t=a.attributes}var l=new i(t,e);return l.typeView=r,l};var i=this.init&&this.init.bind(this);i&&i()},recognizeType:function(t){for(var e=this.getTypes(),n=0;n\n \n
\n
\n '},init:function(){var t=this.model;this.pfx;t.set("stackIndex",null),this.events["click [data-add-layer]"]="addLayer",this.listenTo(t,"change:stackIndex",this.indexChanged),this.listenTo(t,"updateValue",this.inputValueChanged),this.delegateEvents()},targetUpdated:function(){if(this.model.get("detached"))this.checkVisibility();else{for(var t=arguments.length,e=Array(t),n=0;n'},inputClass:function(){return this.ppfx+"field"},holderClass:function(){return this.ppfx+"input-holder"},initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.ppfx||"";this.opts=t,this.ppfx=e,this.target=t.target||{},this.listenTo(this.model,"change:value",this.handleModelChange)},elementUpdated:function(){this.model.trigger("el:change")},setValue:function(t){var e=this.model,n=t||e.get("defaults"),i=this.getInputEl();i&&(i.value=n)},handleModelChange:function(t,e,n){this.setValue(e,n)},handleChange:function(t){t.stopPropagation(),this.model.set("value",this.getInputEl().value),this.elementUpdated()},getInputEl:function(){if(!this.inputEl){var t=this.model.get("defaults");this.inputEl=n('')}return this.inputEl.get(0)},render:function(){var t=this.$el;return t.addClass(this.inputClass()),t.html(this.template()),t.find("."+this.holderClass()).append(this.getInputEl()),this}})}).call(e,n(0))},function(t,e,n){"use strict";t.exports=n(5).extend({templateInput:function(){var t=(this.pfx,this.ppfx);return'\n
\n
\n '},onRender:function(){var t=this.pfx,e=this.ppfx,n=e+"radio-item-label",i=this.model,r=i.get("property"),o=i.get("list")||i.get("options")||[];if(!this.input&&o&&o.length){var s="";o.forEach(function(i){var o=i.className?i.className+" "+t+"icon "+n:"",a=r+"-"+i.value,l=i.name||i.value,c=i.title?'title="'+i.title+'"':"";s+='\n
\n \n \n
\n "});var a=this.el.querySelector("."+e+"field");a.innerHTML='
'+s+"
",this.input=a.firstChild}},getInputValue:function(){var t=this.getCheckedEl();return t?t.value:""},getCheckedEl:function(){var t=this.getInputEl();return t?t.querySelector("input:checked"):""},setValue:function(t){var e=this.model,n=t||e.get("value")||e.getDefaultValue(),i=this.getInputEl(),r=i?i.querySelector('[value="'+n+'"]'):"";if(r)r.checked=!0;else{var o=this.getCheckedEl();o&&(o.checked=!1)}}})},function(t,e,n){"use strict";(function(e){e.$;t.exports=n(5).extend({templateInput:function(){var t=this.pfx,e=this.ppfx;return'\n
\n \n
\n
\n
\n
\n '},onRender:function(){var t=this.pfx,e=this.model,n=e.get("list")||e.get("options")||[];if(!this.input){var i="";n.forEach(function(t){var e=t.name||t.value,n=t.style?t.style.replace(/"/g,"""):"",r=n?'style="'+n+'"':"",o=t.value.replace(/"/g,""");i+='"});var r=this.el.querySelector("#"+t+"input-holder");r.innerHTML="",this.input=r.firstChild}}})}).call(e,n(0))},function(t,e,n){"use strict";var i=n(37);t.exports=n(13).extend({setValue:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e=Object.assign({},e,{silent:1}),this.inputInst.setValue(t,e)},onRender:function(){if(!this.input){var t=this.ppfx,e=new i({target:this.target,model:this.model,ppfx:t}),n=e.render();this.el.querySelector("."+t+"fields").appendChild(n.el),this.$input=n.inputEl,this.$color=n.colorEl,this.input=this.$input.get(0),this.inputInst=n}}})},function(t,e,n){"use strict";(function(e){n(119);var i=n(33),r=e.$;t.exports=i.extend({template:function(){var t=this.ppfx;return'\n
\n
\n
\n
\n
\n
\n '},inputClass:function(){var t=this.ppfx;return t+"field "+t+"field-color"},holderClass:function(){return this.ppfx+"input-holder"},setValue:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.model,i=t||n.get("defaults"),r=this.getInputEl(),o=this.getColorEl(),s="none"!=i?i:"";r.value=i,o.get(0).style.backgroundColor=s,e.fromTarget&&(o.spectrum("set",s),this.noneColor="none"==i)},getColorEl:function(){if(!this.colorEl){var t=this,e=this.model,n=r('
'),i=n.get(0).style,o=this.target&&this.target.config?this.target.config.el:"",s=function(t){return(1==t.getAlpha()?t.toHexString():t.toRgbString()).replace(/ /g,"")},a=0,l=void 0;this.$el.find("[data-colorp-c]").append(n),n.spectrum({appendTo:o||"body",maxSelectionSize:8,showPalette:!0,showAlpha:!0,chooseText:"Ok",cancelText:"โจฏ",palette:[],move:function(t){var n=s(t);i.backgroundColor=n,e.setValueFromInput(n,0)},change:function(n){a=1;var r=s(n);i.backgroundColor=r,e.setValueFromInput(r),t.noneColor=0},show:function(t){a=0,l=s(t)},hide:function(r){!a&&l&&(t.noneColor&&(l=""),i.backgroundColor=l,n.spectrum("set",l),e.setValueFromInput(l,0))}}),this.colorEl=n}return this.colorEl},render:function(){return i.prototype.render.call(this),this.getColorEl(),this}})}).call(e,n(0))},function(t,e,n){"use strict";(function(e){var i=n(5),r=e.$;t.exports=i.extend({templateInput:function(){var t=this.pfx;this.ppfx;return'\n
\n
\n
\n \n
\n
\n
\n
\n
\n
⨯
\n
\n
\n '},init:function(){var t=this.em;this.modal=t.get("Modal"),this.am=t.get("AssetManager"),this.events["click #"+this.pfx+"close"]="removeFile",this.events["click #"+this.pfx+"images"]="openAssetManager",this.delegateEvents()},onRender:function(){if(!this.$input){var t=this.model.getDefaultValue();this.$input=r('')}this.$preview||(this.$preview=this.$el.find("#"+this.pfx+"preview-file")),this.$previewBox||(this.$previewBox=this.$el.find("#"+this.pfx+"preview-box")),this.setValue(this.componentValue,0)},setValue:function(t,e){i.prototype.setValue.apply(this,arguments),this.setPreviewView(t&&t!=this.model.getDefaultValue()),this.setPreview(t)},setPreviewView:function(t){var e=this.$previewBox;e&&e[t?"addClass":"removeClass"](this.pfx+"show")},spreadUrl:function(t){this.model.set("value",t),this.setPreviewView(1)},setPreview:function(t){var e=this.$preview;t=t&&t.indexOf("url(")<0?"url("+t+")":t,e&&e.css("background-image",t)},cleanValue:function(){this.setPreviewView(0),this.model.set({value:""},{silent:!0})},removeFile:function(){this.model.set("value",this.model.getDefaultValue());for(var t=arguments.length,e=Array(t),n=0;n
\n
\n '},getInfo:function(){var t=this.pfx,e=this.model,n=e.get("name"),i=e.get("width"),r=e.get("height"),o=e.get("unitDim"),s=i&&r?i+"x"+r+o:"";return n=n||e.getFilename(),'\n
'+n+'
\n
'+s+"
\n "},init:function(t){var e=this.pfx;this.className+=" "+e+"asset-image"},onClick:function(){var t=this.config.onClick,e=this.model;this.collection.trigger("deselectAll"),this.$el.addClass(this.pfx+"highlight"),"function"==typeof t?t(e):this.updateTarget(this.collection.target)},onDblClick:function(){var t=this.em,e=this.config.onDblClick,n=this.model;"function"==typeof e?e(n):(this.updateTarget(this.collection.target),t&&t.get("Modal").close());var i=this.collection.onSelect;"function"==typeof i&&i(this.model)},onRemove:function(t){t.stopPropagation(),this.model.collection.remove(this.model)}})},function(t,e,n){"use strict";(function(e,n){t.exports=e.View.extend({initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.options=t,this.collection=t.collection;var e=t.config||{};this.config=e,this.pfx=e.stylePrefix||"",this.ppfx=e.pStylePrefix||"",this.em=e.em,this.className=this.pfx+"asset",this.listenTo(this.model,"destroy remove",this.remove),this.model.view=this;var n=this.init&&this.init.bind(this);n&&n(t)},template:function(){var t=this.pfx;return'\n
\n '+this.getPreview()+'\n
\n
\n '+this.getInfo()+'\n
\n
\n ⨯\n
\n '},updateTarget:function(t){t&&t.set&&(t.set("attributes",n.clone(t.get("attributes"))),t.set("src",this.model.get("src")))},getPreview:function(){return""},getInfo:function(){return""},render:function(){var t=this.el;return t.innerHTML=this.template(this,this.model),t.className=this.className,this}})}).call(e,n(0),n(1))},function(t,e,n){"use strict";(function(e,i){var r=n(21),o=function(t){return t&&t.__esModule?t:{default:t}}(r);t.exports=e.View.extend({template:i.template('\n
\n
<%= title %>
\n multiple/>\n
\n
\n '),events:{},initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.options=t;var e=t.config||{};this.config=e,this.pfx=e.stylePrefix||"",this.ppfx=e.pStylePrefix||"",this.target=this.options.globalCollection||{},this.uploadId=this.pfx+"uploadFile",this.disabled=void 0!==e.disableUpload?e.disableUpload:!e.upload&&!e.embedAsBase64,this.events["change #"+this.uploadId]="uploadFile";var n=e.uploadFile;n?this.uploadFile=n.bind(this):e.embedAsBase64&&(this.uploadFile=this.constructor.embedAsBase64),this.delegateEvents()},onUploadStart:function(){var t=this.config.em;t&&t.trigger("asset:upload:start")},onUploadEnd:function(t){var e=this.config.em;e&&e.trigger("asset:upload:end",t)},onUploadError:function(t){var e=this.config.em;console.error(t),this.onUploadEnd(t),e&&e.trigger("asset:upload:error",t)},onUploadResponse:function(t){var e=this.config.em,n=this.config,i=this.target,r="string"==typeof t?JSON.parse(t):t;e&&e.trigger("asset:upload:response",r),n.autoAdd&&i&&i.add(r.data,{at:0}),this.onUploadEnd(t)},uploadFile:function(t){for(var e=this,n=t.dataTransfer?t.dataTransfer.files:t.target.files,i=new FormData,r=this.config,s=r.params,a=0;a'+i.dropzoneContent+"
"),h(),"draggable"in o&&[o,a].forEach(function(t){t.ondragover=d,t.ondragleave=f,t.ondrop=p})},render:function(){return this.$el.html(this.template({title:this.config.uploadText,uploadId:this.uploadId,disabled:this.disabled,pfx:this.pfx})),this.initDrop(),this.$el.attr("class",this.pfx+"file-uploader"),this}},{embedAsBase64:function(t){var e=this,n=t.dataTransfer?t.dataTransfer.files:t.target.files,i={data:[]};if(!FileReader)return void this.onUploadError(new Error("Unsupported platform, FileReader is not defined"));var r=[],o=/^(.+)\/(.+)$/,s=!0,a=!1,l=void 0;try{for(var c,u=n[Symbol.iterator]();!(s=(c=u.next()).done);s=!0){var h=c.value;!function(t){var e=new Promise(function(e,n){var i=new FileReader;i.addEventListener("load",function(r){var s=void 0,a=t.name,l=o.exec(t.type);if("image"===(s=l?l[1]:t.type)){var c={src:i.result,name:a,type:s,height:0,width:0},u=new Image;u.addEventListener("error",function(t){n(t)}),u.addEventListener("load",function(){c.height=u.height,c.width=u.width,e(c)}),u.src=c.src}else e(s?{src:i.result,name:a,type:s}:i.result)}),i.addEventListener("error",function(t){n(t)}),i.addEventListener("abort",function(t){n("Aborted")}),i.readAsDataURL(t)});r.push(e)}(h)}}catch(t){a=!0,l=t}finally{try{!s&&u.return&&u.return()}finally{if(a)throw l}}Promise.all(r).then(function(t){i.data=t,e.onUploadResponse(i)},function(t){e.onUploadError(t)})}})}).call(e,n(0),n(1))},function(t,e,n){"use strict";(function(e){var i=n(45),r=function(t){return t&&t.__esModule?t:{default:t}}(i),o=n(0),s=n(46);t.exports=o.Model.extend(r.default).extend({defaults:{selectors:{},selectorsAdd:"",style:{},mediaText:"",state:"",stylable:!0},initialize:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.config=t||{};var n=e.em,i=this.config.selectors||[];if(this.em=n,n){var r=n.get("SelectorManager"),o=[];i.forEach(function(t){o.push(r.add(t))}),i=o}this.set("selectors",new s(i))},compare:function(t,n,i,r){var o=r||{},s=n||"",a=i||"",l=o.selectorsAdd||"";t instanceof Array||t.models||(t=[t]);var c=e.map(t.models||t,function(t){return t.get("name")}),u=e.map(this.get("selectors").models,function(t){return t.get("name")});if(c.length!==u.length)return!1;for(var h=0;h0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,i.isString)(t)&&(t=s(t)),this.set("style",Object.assign({},t),e);for(var n in t)this.trigger("change:style:"+n)},addStyle:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};"string"==typeof t?t={prop:e}:n=e||{},t=this.extendStyle(t),this.setStyle(t,n)},removeStyle:function(t){var e=this.getStyle();delete e[t],this.setStyle(e)}}},function(t,e,n){"use strict";var i=n(0);t.exports=i.Collection.extend({initialize:function(t,e){this.model=function(t,e){return this.ClassTag||(this.ClassTag=n(9)),new this.ClassTag(t,e)}}})},function(t,e,n){"use strict";var i=n(0);t.exports=i.View.extend({itemView:"",itemsView:"",itemType:"type",initialize:function(t,e){this.config=e||{}},addTo:function(t){this.add(t)},add:function(t,e){var n=e||null,i=this.itemView,r=t.get(this.itemType);this.itemsView&&this.itemsView[r]&&(i=this.itemsView[r]);var o=new i({model:t,config:this.config},this.config),s=o.render().el;n?n.appendChild(s):this.$el.append(s)},render:function(){var t=document.createDocumentFragment();return this.$el.empty(),this.collection.length&&this.collection.each(function(e){this.add(e,t)},this),this.$el.append(t),this}})},function(t,e,n){"use strict";(function(e){var i=n(0);t.exports=i.Collection.extend({initialize:function(t,e){this.on("add",this.onAdd),this.config=e&&e.config?e.config:null,e&&(e.sm||e.em)&&(this.editor=e.sm||e.em),this.model=function(t,n){var i;!n.sm&&e&&e.sm&&(n.sm=e.sm),!n.em&&e&&e.em&&(n.em=e.em),e&&e.config&&(n.config=e.config),e&&e.componentTypes&&(n.componentTypes=e.componentTypes);for(var r=e.componentTypes,o=0;o1&&void 0!==arguments[1]?arguments[1]:{};if("string"==typeof t){var n=this.editor.get("Parser").parseHtml(t);t=n.html;var r=this.editor.get("CssComposer");if(n.css&&r){var o=e.avoidUpdateStyle;r.addCollection(n.css,{extend:1,avoidUpdateStyle:o})}}return i.Collection.prototype.add.apply(this,[t,e])},onAdd:function(t,n,i){var r=t.get("style"),o=this.editor;if(!e.isEmpty(r)&&o&&o.get&&o.get("Config").forceClass){var s=this.editor.get("CssComposer"),a=this.editor.get("SelectorManager").add(t.cid);t.set({style:{}}),t.get("classes").add(a);s.add(a).set("style",r)}}})}).call(e,n(1))},function(t,e,n){"use strict";(function(e){var i=n(1);t.exports=e.View.extend({initialize:function(t){this.opts=t||{},this.config=t.config||{};var e=this.collection;this.listenTo(e,"add",this.addTo),this.listenTo(e,"reset",this.resetChildren)},addTo:function(t){var e=this.collection.indexOf(t);this.addToCollection(t,null,e);var n=this.config.em;n&&(n.trigger("add:component",t),n.trigger("component:add",t))},addToCollection:function(t,e,r){this.compView||(this.compView=n(4));for(var o=e||null,s=this.compView,a=this.opts.componentTypes,l=t.get("type"),c=0;c0;for(o in C)(!C[o]&&n(i.mods,+o)>-1||C[o]&&-1==n(i.mods,+o))&&(a=!1);(0!=i.mods.length||C[16]||C[18]||C[17]||C[91])&&!a||!1===i.method(t,i)&&(t.preventDefault?t.preventDefault():t.returnValue=!1,t.stopPropagation&&t.stopPropagation(),t.cancelBubble&&(t.cancelBubble=!0))}}function s(t){var e,i=t.keyCode,r=n(E,i);if(r>=0&&E.splice(r,1),93!=i&&224!=i||(i=91),i in C){C[i]=!1;for(e in S)S[e]==i&&(l[e]=!1)}}function a(){for(x in C)C[x]=!1;for(x in S)l[x]=!1}function l(t,e,n){var i,r;i=m(t),void 0===n&&(n=e,e="all");for(var o=0;o1&&(r=v(t),t=[t[t.length-1]]),t=t[0],t=M(t),t in w||(w[t]=[]),w[t].push({shortcut:i[o],scope:e,method:n,key:i[o],mods:r})}function c(t,e){var n,r,o,s,a,l=[];for(n=m(t),s=0;s1&&(l=v(r),t=r[r.length-1]),t=M(t),void 0===e&&(e=p()),!w[t])return;for(o=0;o\n \n <% } %>\n\n
\n
\n
\n \n \n <%= icon %>\n \n
\n
\n
\n\n
<%= (count ? count : \'\') %>
\n\n
\n \n
\n\n
'),initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.opt=t,this.level=t.level,this.config=t.config,this.em=t.config.em,this.ppfx=this.em.get("Config").stylePrefix,this.sorter=t.sorter||"",this.pfx=this.config.stylePrefix;var e=this.pfx,n=this.ppfx,i=this.model,r=i.get("components");i.set("open",!1),this.listenTo(r,"remove add change reset",this.checkChildren),this.listenTo(i,"destroy remove",this.remove),this.listenTo(i,"change:status",this.updateStatus),this.listenTo(i,"change:open",this.updateOpening),this.className=e+"item no-select",this.editBtnCls=e+"nav-item-edit",this.inputNameCls=n+"nav-comp-name",this.caretCls=n+"nav-item-caret",this.titleCls=e+"title",this.$el.data("model",i),this.$el.data("collection",r)},handleEdit:function(t){t.stopPropagation();var e=this.getInputName();e.readOnly=!1,e.focus()},handleEditEnd:function(t){t.stopPropagation();var e=this.getInputName();e.readOnly=!0,this.model.set("custom-name",e.value)},getInputName:function(){return this.inputName||(this.inputName=this.el.querySelector("."+this.inputNameCls)),this.inputName},updateOpening:function(){var t=this.opt.opened||{},e=this.model;e.get("open")?(this.$el.addClass("open"),this.getCaret().addClass("fa-chevron-down"),t[e.cid]=e):(this.$el.removeClass("open"),this.getCaret().removeClass("fa-chevron-down"),delete t[e.cid])},toggleOpening:function(t){t.stopPropagation(),this.model.get("components").length&&this.model.set("open",!this.model.get("open"))},handleSelect:function(t){t.stopPropagation(),this.em&&this.em.setSelected(this.model,{fromLayers:1})},startSort:function(t){t.stopPropagation(),0===t.button&&this.sorter&&this.sorter.startSort(t.target)},freeze:function(){this.$el.addClass(this.pfx+"opac50"),this.model.set("open",0)},unfreeze:function(){this.$el.removeClass(this.pfx+"opac50")},updateStatus:function(t){o.prototype.updateStatus.apply(this,arguments)},toggleVisibility:function(t){t.stopPropagation();var n=this.pfx;this.$eye||(this.$eye=this.$el.children("#"+n+"btn-eye"));var i=e.clone(this.model.get("style")),r=this.pfx+"hide";this.isVisible()?(this.$el.addClass(r),this.$eye.addClass("fa-eye-slash"),i.display="none"):(this.$el.removeClass(r),this.$eye.removeClass("fa-eye-slash"),delete i.display),this.model.set("style",i)},isVisible:function(){var t=this.model.get("style"),e=t.display;if(!e||"none"!=e)return 1},checkChildren:function(){var t=this.model,e=this.countChildren(t),n=this.pfx,i=n+"no-chld",r=this.$el.children("."+n+"title-c").children("."+n+"title");this.$counter||(this.$counter=this.$el.children("#"+n+"counter")),e?(r.removeClass(i),this.$counter.html(e)):(r.addClass(i),this.$counter.empty(),t.set("open",0))},countChildren:function(t){var e=0;return t.get("components").each(function(t){var n=this.opt.isCountable,i=this.config.hideTextnode;n&&!n(t,i)||e++},this),e},getCaret:function(){if(!this.caret){var t=this.pfx;this.caret=this.$el.children("."+t+"title-c").find("#"+t+"caret")}return this.caret},render:function(){var t=this.model,r=this.pfx,o=this.isVisible(),s=this.countChildren(t),a=this.$el,l=this.level+1;a.html(this.template({title:t.getName(),icon:t.getIcon(),addClass:s?"":r+"no-chld",editBtnCls:this.editBtnCls,inputNameCls:this.inputNameCls,caretCls:this.caretCls,count:s,visible:o,hidable:this.config.hidable,prefix:r,ppfx:this.ppfx,level:l})),void 0===i&&(i=n(56));var c=new i({collection:t.get("components"),config:this.config,sorter:this.sorter,opened:this.opt.opened,parent:t,level:l}).render().$el;return a.find("."+r+"children").append(c),t.get("draggable")&&this.config.sortable||a.children("#"+r+"move").remove(),o||(this.className+=" "+r+"hide"),a.attr("class",e.result(this,"className")),this.updateOpening(),this.updateStatus(),this}})}).call(e,n(1))},function(t,e,n){"use strict";var i=n(0),r=n(55);t.exports=i.View.extend({initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.opt=t;var e=t.config||{};if(this.level=t.level,this.config=e,this.preview=t.preview,this.ppfx=e.pStylePrefix||"",this.pfx=e.stylePrefix||"",this.parent=t.parent,this.listenTo(this.collection,"add",this.addTo),this.listenTo(this.collection,"reset resetNavigator",this.render),this.className=this.pfx+"items",e.sortable&&!this.opt.sorter){var n=this.pfx,i=e.em.get("Utils");this.opt.sorter=new i.Sorter({container:e.sortContainer||this.el,containerSel:"."+n+"items",itemSel:"."+n+"item",ppfx:this.ppfx,ignoreViewChildren:1,avoidSelectOnEnd:1,pfx:n,nested:1})}this.sorter=this.opt.sorter||"",this.$el.data("collection",this.collection),this.parent&&this.$el.data("model",this.parent)},addTo:function(t){var e=this.collection.indexOf(t);this.addToCollection(t,null,e)},addToCollection:function(t,e,n){var i=this.level,o=e||null,s=r;if(this.isCountable(t,this.config.hideTextnode)){var a=new s({level:i,model:t,config:this.config,sorter:this.sorter,isCountable:this.isCountable,opened:this.opt.opened}),l=a.render().el;if(o)o.appendChild(l);else if(void 0!==n){var c="before";this.$el.children().length==n&&(n--,c="after"),n<0?this.$el.append(l):this.$el.children().eq(n)[c](l)}else this.$el.append(l);return l}},isCountable:function(t,e){var n=t.get("type"),i=t.get("tagName");return!(("textnode"==n||"br"==i)&&e||!t.get("layerable"))},render:function(){var t=this,e=document.createDocumentFragment();return this.el.innerHTML="",this.collection.each(function(n){return t.addToCollection(n,e)}),this.el.appendChild(e),this.$el.attr("class",this.className),this}})},function(t,e,n){"use strict";var i=n(0);t.exports=i.Model.extend({defaults:{id:"",label:"",open:!0,attributes:{}}})},function(t,e,n){"use strict";t.exports=n(59)},function(t,e,n){"use strict";var i=n(8),r=function(t){return t&&t.__esModule?t:{default:t}}(i),o=n(1);t.exports=function(){var t=n(60),e=n(61),i=n(212),s=new i,a=[];return{$:r.default,editors:a,plugins:s,version:"0.12.30",init:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=n.container;if(!i)throw new Error("'container' is required");(0,o.defaults)(n,t),n.el=i instanceof window.HTMLElement?i:document.querySelector(i);var r=new e(n).init();return n.plugins.forEach(function(t){var e=s.get(t);e?e(r,n.pluginsOpts[t]||{}):console.warn("Plugin "+t+" not found")}),r.getModel().loadOnStart(),n.autorender&&r.render(),a.push(r),r}}}()},function(t,e,n){"use strict";t.exports={autorender:1,container:"",components:"",style:"",fromElement:0,copyPaste:!0,undoManager:!0,storageManager:{},plugins:[],pluginsOpts:{}}},function(t,e,n){"use strict";var i=n(8),r=function(t){return t&&t.__esModule?t:{default:t}}(i);t.exports=function(t){var e=t||{},i=n(62),o=n(63),s=n(211);for(var a in i)a in e||(e[a]=i[a]);e.pStylePrefix=e.stylePrefix;var l=new o(e),c=new s({model:l,config:e});return{$:r.default,editor:l,DomComponents:l.get("DomComponents"),CssComposer:l.get("CssComposer"),StorageManager:l.get("StorageManager"),AssetManager:l.get("AssetManager"),BlockManager:l.get("BlockManager"),TraitManager:l.get("TraitManager"),SelectorManager:l.get("SelectorManager"),CodeManager:l.get("CodeManager"),Commands:l.get("Commands"),Modal:l.get("Modal"),Panels:l.get("Panels"),StyleManager:l.get("StyleManager"),Canvas:l.get("Canvas"),UndoManager:l.get("UndoManager"),DeviceManager:l.get("DeviceManager"),RichTextEditor:l.get("RichTextEditor"),Utils:l.get("Utils"),Config:l.get("Config"),init:function(){return l.init(this),this},getConfig:function(){return e},getHtml:function(){return l.getHtml()},getCss:function(){return l.getCss()},getJs:function(){return l.getJs()},getComponents:function(){return l.get("DomComponents").getComponents()},setComponents:function(t){return l.setComponents(t),this},addComponents:function(t,e){return this.getComponents().add(t,e)},getStyle:function(){return l.get("CssComposer").getAll()},setStyle:function(t){return l.setStyle(t),this},getSelected:function(){return l.getSelected()},getSelectedToStyle:function(){var t=l.getSelected();if(t)return this.StyleManager.getModelToStyle(t)},select:function(t){return l.setSelected(t),this},setDevice:function(t){return l.set("device",t),this},getDevice:function(){return l.get("device")},runCommand:function(t,e){var n,i=l.get("Commands").get(t);return i&&(n=i.run(this,this,e),this.trigger("run:"+t)),n},stopCommand:function(t,e){var n,i=l.get("Commands").get(t);return i&&(n=i.stop(this,this,e),this.trigger("stop:"+t)),n},store:function(t){return l.store(t)},load:function(t){return l.load(t)},getContainer:function(){return e.el},refresh:function(){l.refreshCanvas()},setCustomRte:function(t){this.RichTextEditor.customRte=t},on:function(t,e){return l.on(t,e)},off:function(t,e){return l.off(t,e)},trigger:function(t){return l.trigger.apply(l,arguments)},getEl:function(){return c.el},getModel:function(){return l},render:function(){return l.on("loaded",function(){l.get("modules").forEach(function(t){t.postRender&&t.postRender(c)})}),c.render(),c.el}}}},function(t,e,n){"use strict";t.exports={stylePrefix:"gjs-",components:"",copyPaste:!0,noticeOnUnload:!0,undoManager:!0,showOffsets:!1,showOffsetsSelected:!1,forceClass:!0,height:"900px",width:"100%",protectedCss:"*{box-sizing: border-box;}",canvasCss:"",defaultCommand:"select-comp",showToolbar:1,allowScripts:0,showDevices:1,devicePreviewMode:0,mediaCondition:"max-width",tagVarStart:"{[ ",tagVarEnd:" ]}",jsInHtml:!0,exportWrapper:0,wrappesIsBody:1,el:"",assetManager:{},canvas:{},layers:{},storageManager:{},rte:{},domComponents:{},modal:{},codeManager:{},panels:{},commands:{},cssComposer:{},selectorManager:{},deviceManager:{devices:[{name:"Desktop",width:""},{name:"Tablet",width:"768px",widthMedia:"992px"},{name:"Mobile landscape",width:"568px",widthMedia:"768px"},{name:"Mobile portrait",width:"320px",widthMedia:"480px"}]},styleManager:{sectors:[{name:"General",open:!1,buildProps:["float","display","position","top","right","left","bottom"]},{name:"Dimension",open:!1,buildProps:["width","height","max-width","min-height","margin","padding"]},{name:"Typography",open:!1,buildProps:["font-family","font-size","font-weight","letter-spacing","color","line-height","text-align","text-shadow"],properties:[{property:"text-align",list:[{value:"left",className:"fa fa-align-left"},{value:"center",className:"fa fa-align-center"},{value:"right",className:"fa fa-align-right"},{value:"justify",className:"fa fa-align-justify"}]}]},{name:"Decorations",open:!1,buildProps:["border-radius-c","background-color","border-radius","border","box-shadow","background"]},{name:"Extra",open:!1,buildProps:["transition","perspective","transform"]}]},blockManager:{}}},function(t,e,n){"use strict";var i=n(1),r=[n(64),n(68),n(76),n(81),n(84),n(88),n(92),n(104),n(110),n(29),n(127),n(133),n(138),n(145),n(168),n(174),n(200)],o=n(0),s=n(208),a=n(52),l=void 0;n(210)({Backbone:o,$:o.$});var c=o.$;t.exports=o.Model.extend({defaults:{clipboard:null,designerMode:!1,selectedComponent:null,previousModel:null,changesCount:0,storables:[],modules:[],toLoad:[],opened:{},device:""},initialize:function(t){this.config=t,this.set("Config",t),this.set("modules",[]),t.el&&t.fromElement&&(this.config.components=t.el.innerHTML),r.forEach(function(t){this.loadModule(t)},this),this.initUndoManager(),this.on("change:selectedComponent",this.componentSelected,this),this.on("change:changesCount",this.updateChanges,this)},loadOnStart:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,n=this.get("StorageManager");this.get("toLoad").forEach(function(t){t.onLoad()});var i=function(){t.um.clear(),t.initUndoManager(),t.get("modules").forEach(function(e){return e.postLoad&&e.postLoad(t)}),e&&e()};n&&n.getConfig().autoload?this.load(i):i()},updateChanges:function(){var t=this.get("StorageManager"),e=this.get("changesCount");this.config.noticeOnUnload&&e?window.onbeforeunload=function(t){return 1}:window.onbeforeunload=null,t.isAutosave()&&e>=t.getStepsBeforeSave()&&this.store()},loadModule:function(t){var e=this.config,n=new t,i=n.name.charAt(0).toLowerCase()+n.name.slice(1),r=e[i]||e[n.name]||{};r.pStylePrefix=e.pStylePrefix||"";var o=this.get("StorageManager");if(n.storageKey&&n.store&&n.load&&o){r.stm=o;var s=this.get("storables");s.push(n),this.set("storables",s)}return r.em=this,n.init(Object.create(r)),n.private||this.set(n.name,n),n.onLoad&&this.get("toLoad").push(n),this.get("modules").push(n),this},init:function(t){this.set("Editor",t)},listenRules:function(t){this.stopListening(t,"add remove",this.listenRule),this.listenTo(t,"add remove",this.listenRule),t.each(function(t){this.listenRule(t)},this)},listenRule:function(t){this.stopListening(t,"change:style",this.handleUpdates),this.listenTo(t,"change:style",this.handleUpdates)},handleUpdates:function(t,e){var n=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};i.temporary||(l&&clearInterval(l),l=setTimeout(function(){i.avoidStore||n.set("changesCount",n.get("changesCount")+1,i)},0))},initUndoManager:function(){var t=this.get("Canvas");if(!this.um){var e=this.get("DomComponents");if(e&&this.config.undoManager){var n=this;this.um=new s({register:[e.getComponents(),this.get("CssComposer").getAll()],track:!0}),this.UndoManager=this.um,this.set("UndoManager",this.um),a("โŒ˜+z, ctrl+z",function(){t.isInputFocused()||(n.um.undo(!0),n.trigger("component:update"))}),a("โŒ˜+shift+z, ctrl+shift+z",function(){t.isInputFocused()||(n.um.redo(!0),n.trigger("component:update"))});var i,r={on:function(t,e,n){var r=n||{};if(i||(i=t.previousAttributes()),!r||!r.avoidStore){var o={object:t,before:i,after:t.toJSON()};return i=null,o}},undo:function(t,e,i,r){t.set(e),n.trigger("change:selectedComponent")},redo:function(t,e,i,r){t.set(i),n.trigger("change:selectedComponent")}};s.removeUndoType("change"),s.addUndoType("change:style",r),s.addUndoType("change:attributes",r),s.addUndoType("change:content",r)}}},componentSelected:function(t,e,n){this.get("selectedComponent")?(this.trigger("select-comp",[t,e,n]),this.trigger("component:selected",arguments)):this.trigger("deselect-comp")},updateComponents:function(t,e,n){var i=t.get("components"),r=t.get("classes"),o=n?n.avoidStore:0;this.um&&this.um.register(i),this.stopListening(i,"add",this.updateComponents),this.stopListening(i,"remove",this.rmComponents),this.listenTo(i,"add",this.updateComponents),this.listenTo(i,"remove",this.rmComponents),this.stopListening(r,"add remove",this.handleUpdates),this.listenTo(r,"add remove",this.handleUpdates);var s="change:style change:content change:attributes";this.stopListening(t,s,this.handleUpdates),this.listenTo(t,s,this.handleUpdates),o||this.handleUpdates(t,e,n)},initChildrenComp:function(t){var e=t.get("components");this.updateComponents(t,null,{avoidStore:1}),e.each(function(t){this.initChildrenComp(t),this.um&&this.um.register(t)},this)},rmComponents:function(t,e,n){(n?n.avoidStore:0)||this.handleUpdates(t,e,n)},getSelected:function(){return this.get("selectedComponent")},setSelected:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t;t instanceof window.HTMLElement&&(n=c(t).data("model")),this.set("selectedComponent",n,e)},setComponents:function(t){return this.get("DomComponents").setComponents(t)},getComponents:function(){var t=this.get("DomComponents"),e=this.get("CodeManager");if(t&&e){var n=t.getComponents();return e.getCode(n,"json")}},setStyle:function(t){for(var e=this.get("CssComposer").getAll(),n=0,i=e.length;n"+i+"<\/script>":""},getCss:function(){var t=this.config,e=t.wrappesIsBody,n=this.get("CssComposer"),i=this.get("DomComponents").getComponent();return t.protectedCss+this.get("CodeManager").getCode(i,"css",{cssc:n,wrappesIsBody:e})},getJs:function(){var t=this.get("DomComponents").getWrapper();return this.get("CodeManager").getCode(t,"js").trim()},store:function(t){var e=this,n=this.get("StorageManager"),i={};if(n)return this.get("storables").forEach(function(t){var e=t.store(1);for(var n in e)i[n]=e[n]}),n.store(i,function(){t&&t(),e.set("changesCount",0),e.trigger("storage:store",i)}),i},load:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;this.getCacheLoad(1,function(n){t.get("storables").forEach(function(t){return t.load(n)}),e&&e(n)})},getCacheLoad:function(t,e){var n=this,i=t?1:0;if(this.cacheLoad&&!i)return this.cacheLoad;var r=this.get("StorageManager"),o=[];if(!r)return{};this.get("storables").forEach(function(t){var e=t.storageKey;e="function"==typeof e?e():e,(e instanceof Array?e:[e]).forEach(function(t){o.push(t)})}),r.load(o,function(t){n.cacheLoad=t,e&&e(t),n.trigger("storage:load",t)})},getDeviceModel:function(){var t=this.get("device");return this.get("DeviceManager").get(t)},runDefault:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.get("Commands").get(this.config.defaultCommand);e&&!this.defaultRunning&&(e.stop(this,this,t),e.run(this,this,t),this.defaultRunning=1)},stopDefault:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.get("Commands").get(this.config.defaultCommand);e&&(e.stop(this,this,t),this.defaultRunning=0)},refreshCanvas:function(){this.set("canvasOffset",this.get("Canvas").getOffset())},clearSelection:function(t){(t||window).getSelection().removeAllRanges()},data:function(t,e,n){if(t["_gjs-data"]||(t["_gjs-data"]={}),(0,i.isUndefined)(n))return t["_gjs-data"][e];t["_gjs-data"][e]=n}})},function(t,e,n){"use strict";t.exports=function(){var t=n(65),e=n(66),i=n(67);return{name:"Utils",init:function(){return this},Sorter:t,Resizer:e,Dragger:i}}},function(t,e,n){"use strict";(function(e,i){var r=n(1),o=n(2),s=e.$;t.exports=e.View.extend({initialize:function(t){this.opt=t||{},i.bindAll(this,"startSort","onMove","endMove","rollback","udpateOffset","moveDragHelper");var e=t||{};this.elT=0,this.elL=0,this.borderOffset=e.borderOffset||10;var n=e.container;this.el="string"==typeof n?document.querySelector(n):n,this.$el=s(this.el),this.containerSel=e.containerSel||"div",this.itemSel=e.itemSel||"div",this.draggable=e.draggable||!0,this.nested=e.nested||0,this.pfx=e.pfx||"",this.ppfx=e.ppfx||"",this.freezeClass=e.freezeClass||this.pfx+"freezed",this.onStart=e.onStart||"",this.onEndMove=e.onEndMove||"",this.direction=e.direction||"v",this.onMoveClb=e.onMove||"",this.relative=e.relative||0,this.ignoreViewChildren=e.ignoreViewChildren||0,this.ignoreModels=e.ignoreModels||0,this.plh=e.placer||"",this.wmargin=e.wmargin||0,this.offTop=e.offsetTop||0,this.offLeft=e.offsetLeft||0,this.document=e.document||document,this.$document=s(this.document),this.dropContent=null,this.em=e.em||"",this.dragHelper=null,this.canvasRelative=e.canvasRelative||0,this.selectOnEnd=!e.avoidSelectOnEnd,this.em&&this.em.on&&(this.em.on("change:canvasOffset",this.udpateOffset),this.udpateOffset())},getContainerEl:function(){if(!this.el){var t=this.opt.container;this.el="string"==typeof t?document.querySelector(t):t,this.$el=s(this.el)}return this.el},getDocuments:function(){var t=this.em,e=t&&t.get("Canvas").getBody().ownerDocument,n=[document];return e&&n.push(e),n},udpateOffset:function(){var t=this.em.get("canvasOffset");this.offTop=t.top,this.offLeft=t.left},setDropContent:function(t){this.dropContent=t},toggleSortCursor:function(t){var e=this.em,n=document.body,i=this.ppfx||this.pfx,r=i+"grabbing",o=e?e.get("Canvas").getBody():"";t?(e&&e.get("Canvas").startAutoscroll(),n.className+=" "+r,e&&(o.className+=" "+r)):(e&&e.get("Canvas").stopAutoscroll(),n.className=n.className.replace(r,"").trim(),e&&(o.className=o.className.replace(r,"").trim()))},setDragHelper:function(t,e){for(var n=e||"",i=t.cloneNode(1),r="",o=getComputedStyle(t),a=0;as+c-10||ra+l-10)return 1},getCurrentPos:function(){var t=this.eventMove;return{x:t.pageX||0,y:t.pageY||0}},getDim:function(t){var e,n,i,r;if(this.canvasRelative&&this.em){var o=this.em.get("Canvas").getElementPos(t),s=window.getComputedStyle(t),a=parseFloat(s.marginTop),l=parseFloat(s.marginBottom),c=parseFloat(s.marginRight),u=parseFloat(s.marginLeft);e=o.top-a,n=o.left-u,i=o.height+a+l,r=o.width+u+c}else{var h=this.offset(t);e=this.relative?t.offsetTop:h.top-(this.wmargin?-1:1)*this.elT,n=this.relative?t.offsetLeft:h.left-(this.wmargin?-1:1)*this.elL,i=t.offsetHeight,r=t.offsetWidth}return[e,n,i,r]},getChildrenDim:function(t){var e=[];if(!t)return e;var n=this.getTargetModel(t);n&&n.view&&!this.ignoreViewChildren&&(t=n.view.getChildrenContainer());for(var i=t.children,r=0,o=i.length;rs||s>a+c-r||l+r>o||o>l+u-r)&&(i=1),!!i},findPosition:function(t,e,n){for(var i={index:0,method:"before"},r=0,o=0,s=0,a=0,l=0,c=0,u=0,h=0,d=0,f=t.length;do||a&&c>=a||r&&s0&&void 0!==arguments[0]?arguments[0]:{};return i(this,t),this.setOptions(e),(0,o.bindAll)(this,"handleKeyDown","handleMouseDown","move","stop"),this}return r(t,[{key:"getConfig",value:function(){return this.opts}},{key:"setOptions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.opts=(0,o.defaults)(t,a),this.setup()}},{key:"setup",value:function(){var t=this.opts,e=t.prefix||"",n=t.appendTo||document.body,i=this.container;for(i||(i=document.createElement("div"),i.className=e+"resizer-c",n.appendChild(i),this.container=i);i.firstChild;)i.removeChild(i.firstChild);var r={};["tl","tc","tr","cl","cr","bl","bc","br"].forEach(function(e){return r[e]=t[e]?l(e,t):""});for(var o in r){var s=r[o];s&&i.appendChild(s)}this.handlers=r,this.mousePosFetcher=t.mousePosFetcher,this.updateTarget=t.updateTarget,this.posFetcher=t.posFetcher,this.onStart=t.onStart,this.onMove=t.onMove,this.onEnd=t.onEnd}},{key:"isHandler",value:function(t){var e=this.handlers;for(var n in e)if(e[n]===t)return!0;return!1}},{key:"getFocusedEl",value:function(){return this.el}},{key:"getDocumentEl",value:function(){return[this.el.ownerDocument,document]}},{key:"getElementPos",value:function(t){var e=this.posFetcher||"";return e?e(t):c(t)}},{key:"focus",value:function(t){if(!t||t!==this.el){this.el=t;var e=this.getElementPos(t),n=this.container,i=n.style;i.left=e.left+"px",i.top=e.top+"px",i.width=e.width+"px",i.height=e.height+"px",n.style.display="block",(0,s.on)(this.getDocumentEl(),"mousedown",this.handleMouseDown)}}},{key:"blur",value:function(){this.container.style.display="none",this.el&&((0,s.off)(this.getDocumentEl(),"mousedown",this.handleMouseDown),this.el=null)}},{key:"start",value:function(t){if(0===t.button){t.preventDefault(),t.stopPropagation();var e=this.el,n=this,i=this.opts||{},r="data-"+i.prefix+"handler",a=this.getElementPos(e);this.handlerAttr=t.target.getAttribute(r),this.clickedHandler=t.target,this.startDim={t:a.top,l:a.left,w:a.width,h:a.height},this.rectDim={t:a.top,l:a.left,w:a.width,h:a.height},this.startPos={x:t.clientX,y:t.clientY};var l=this.getDocumentEl();(0,s.on)(l,"mousemove",this.move),(0,s.on)(l,"keydown",this.handleKeyDown),(0,s.on)(l,"mouseup",this.stop),(0,o.isFunction)(this.onStart)&&this.onStart(t,{docs:l,config:i,el:e,resizer:n}),this.move(t)}}},{key:"move",value:function(t){var e=this.onMove,n=this.mousePosFetcher,i=n?n(t):{x:t.clientX,y:t.clientY};this.currentPos=i,this.delta={x:i.x-this.startPos.x,y:i.y-this.startPos.y},this.keys={shift:t.shiftKey,ctrl:t.ctrlKey,alt:t.altKey},this.rectDim=this.calc(this),this.updateRect(0),e&&e(t),0===t.which&&this.stop(t)}},{key:"stop",value:function(t){var e=this.opts,n=this.getDocumentEl();(0,s.off)(n,"mousemove",this.move),(0,s.off)(n,"keydown",this.handleKeyDown),(0,s.off)(n,"mouseup",this.stop),this.updateRect(1),(0,o.isFunction)(this.onEnd)&&this.onEnd(t,{docs:n,config:e})}},{key:"updateRect",value:function(t){var e=this.el,n=this,i=this.opts,r=this.rectDim,s=this.container.style,a=this.updateTarget,l=this.getSelectedHandler(),c=i.unitHeight,u=i.unitWidth;if((0,o.isFunction)(a))a(e,r,{store:t,selectedHandler:l,resizer:n,config:i});else{var h=e.style;h.width=r.w+u,h.height=r.h+c}var d=this.getElementPos(e);s.left=d.left+"px",s.top=d.top+"px",s.width=d.width+"px",s.height=d.height+"px"}},{key:"getSelectedHandler",value:function(){var t=this.handlers;if(this.selectedHandler)for(var e in t)if(t[e]===this.selectedHandler)return e}},{key:"handleKeyDown",value:function(t){27===t.keyCode&&(this.rectDim=this.startDim,this.stop(t))}},{key:"handleMouseDown",value:function(t){var e=t.target;this.isHandler(e)?(this.selectedHandler=e,this.start(t)):e!==this.el&&(this.selectedHandler="",this.blur())}},{key:"calc",value:function(t){var e=this.opts||{},n=this.startDim,i=e.minDim,r={t:0,l:0,w:n.w,h:n.h};if(t){var o=t.handlerAttr;~o.indexOf("r")&&(r.w=Math.max(i,n.w+t.delta.x)),~o.indexOf("b")&&(r.h=Math.max(i,n.h+t.delta.y)),~o.indexOf("l")&&(r.w=Math.max(i,n.w-t.delta.x)),~o.indexOf("t")&&(r.h=Math.max(i,n.h-t.delta.y));var s=e.ratioDefault?!t.keys.shift:t.keys.shift;if(o.indexOf("c")<0&&s){var a=n.w/n.h;r.w/r.h>a?r.h=Math.round(r.w/a):r.w=Math.round(r.h*a)}return~o.indexOf("l")&&(r.l=n.w-r.w),~o.indexOf("t")&&(r.t=n.h-r.h),r}}}]),t}();t.exports={init:function(t){return new u(t)}}},function(t,e,n){"use strict";(function(e){var n=e.$,i=function(t,e){var n=e||window,i=t.getBoundingClientRect();return{left:i.left+n.pageXOffset,top:i.top+n.pageYOffset,width:i.width,height:i.height}};t.exports={setKey:function(t,e){},getElementRect:function(t){var e=this.opts.posFetcher||"";return e?e(t,{avoidFrameOffset:1}):i(t)},init:function(t){return this.setOptions(t),this.handleMouseDown=this.handleMouseDown.bind(this),this.drag=this.drag.bind(this),this.move=this.move.bind(this),this.stop=this.stop.bind(this),this.setKey("up, right, down, left",this.handleKey),this},setOptions:function(t){this.opts=t||{}},focus:function(t){if(!t||t!==this.el){this.getDocumentEl(t),this.blur(),this.el=t,this.handlers=this.opts.dragHandlers||[t];var e=this.getElementRect(t);this.elRect=e,this.startTop=e.top,this.startLeft=e.left,this.getDocumentEl().on("mousedown",this.handleMouseDown)}},blur:function(){this.getDocumentEl().off("mousedown",this.handleMouseDown),this.el=null},start:function(t){this.startPos=this.getMousePos(t);var e=this.getDocumentEl();e.on("mousemove",this.drag),e.on("mouseup",this.stop);var n=this.opts.onStart;"function"==typeof n&&n(t,{docs:e,el:this.el,start:this.startPos,elRect:this.elRect}),this.drag(t)},stop:function(t){var e=this.getDocumentEl();e.off("mousemove",this.drag),e.off("mouseup",this.stop),this.lockedAxis=null;var n=this.opts.onEnd;"function"==typeof n&&n(t,{docs:e,delta:this.delta,end:{x:this.startLeft+this.delta.x,y:this.startTop+this.delta.y}})},handleMouseDown:function(t){var e=t.target;this.isHandler(e)&&this.start(t)},isHandler:function(t){var e=this.handlers;for(var n in e)if(e[n]===t)return!0;return!1},handleKey:function(t,e){switch(e.shortcut){case"up":this.move(0,-1);break;case"right":this.move(1,0);break;case"down":this.move(0,1);break;case"left":this.move(-1,0)}},getDocumentEl:function(t){var t=t||this.el;if(!this.$doc){var e=[document];t&&e.push(t.ownerDocument),this.$doc=n(e)}return this.$doc},getMousePos:function(t){var e=this.opts.mousePosFetcher;return e?e(t):{x:t.clientX,y:t.clientY}},drag:function(t){var e=this.lockedAxis,n=this.getMousePos(t),i={x:n.x-this.startPos.x,y:n.y-this.startPos.y};if(t.shiftKey){if(!e){var r=i.x,o=i.y,s=Math.abs(r),a=Math.abs(o);o>=s||o<=-s?e="x":(r>a||r<-a)&&(e="y")}}else e=null;"x"===e&&(i.x=this.startPos.x),"y"===e&&(i.y=this.startPos.y),this.lockedAxis=e,this.delta=i,this.move(i.x,i.y);var l=this.opts.onDrag;"function"==typeof l&&l(t,{delta:i,current:{x:this.startLeft+i.x,y:this.startTop+i.y},lockedAxis:e}),0===t.which&&this.stop(t)},move:function(t,e){this.moveX(t),this.moveY(e)},moveX:function(t){var e=this.el,n=(this.opts,this.startLeft+t),i=this.opts.setX;"function"==typeof i?i(n,{el:e,start:this.startLeft,delta:t}):e.style.left=n+"px"},moveY:function(t){var e=this.el,n=(this.opts,this.startTop+t),i=this.opts.setY;"function"==typeof i?i(n,{el:e,start:this.startTop,delta:t}):e.style.top=n+"px"}}}).call(e,n(0))},function(t,e,n){"use strict";t.exports=function(){var t={},e=n(69),i=n(70),r=n(71),o={},s={};return{name:"StorageManager",init:function(n){t=n||{};for(var o in e)o in t||(t[o]=e[o]);return s.remote=new r(t),s.local=new i(t),t.currentStorage=t.type,this.loadDefaultProviders().setCurrent(t.type),this},isAutosave:function(){return!!t.autosave},setAutosave:function(e){return t.autosave=!!e,this},getStepsBeforeSave:function(){return t.stepsBeforeSave},setStepsBeforeSave:function(e){return t.stepsBeforeSave=e,this},add:function(t,e){return o[t]=e,this},get:function(t){return o[t]||null},getStorages:function(){return o},getCurrent:function(){return t.currentStorage},setCurrent:function(e){return t.currentStorage=e,this},store:function(e,n){var i=this.get(this.getCurrent()),r={};for(var o in e)r[t.id+o]=e[o];return i?i.store(r,n):null},load:function(e,n){var i=this.get(this.getCurrent()),r=[],o={};"string"==typeof e&&(e=[e]);for(var s=0,a=e.length;s1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=this.get("contentTypeJson"),s=this.get("headers")||{},a=this.get("params"),l=n.body||{},c=void 0,u=void 0;for(var h in a)l[h]=a[h];if((0,o.isUndefined)(s["X-Requested-With"])&&(s["X-Requested-With"]="XMLHttpRequest"),(0,o.isUndefined)(s["Content-Type"])&&r&&(s["Content-Type"]="application/json; charset=utf-8"),r)u=JSON.stringify(l);else{u=new FormData;for(var d in l)u.append(d,l[d])}c={method:n.method||"post",credentials:"include",headers:s},"post"===c.method&&(c.body=u),this.onStart(),this.fetch(t,c).then(function(t){return 1==(t.status/200|0)?t.text():t.text().then(function(t){return Promise.reject(t)})}).then(function(t){return e.onResponse(t,i)}).catch(function(t){return e.onError(t)})}})},function(t,e,n){(function(e){!function(n){function i(){}function r(t,e){return function(){t.apply(e,arguments)}}function o(t){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof t)throw new TypeError("not a function");this._state=0,this._handled=!1,this._value=void 0,this._deferreds=[],h(t,this)}function s(t,e){for(;3===t._state;)t=t._value;if(0===t._state)return void t._deferreds.push(e);t._handled=!0,o._immediateFn(function(){var n=1===t._state?e.onFulfilled:e.onRejected;if(null===n)return void(1===t._state?a:l)(e.promise,t._value);var i;try{i=n(t._value)}catch(t){return void l(e.promise,t)}a(e.promise,i)})}function a(t,e){try{if(e===t)throw new TypeError("A promise cannot be resolved with itself.");if(e&&("object"==typeof e||"function"==typeof e)){var n=e.then;if(e instanceof o)return t._state=3,t._value=e,void c(t);if("function"==typeof n)return void h(r(n,e),t)}t._state=1,t._value=e,c(t)}catch(e){l(t,e)}}function l(t,e){t._state=2,t._value=e,c(t)}function c(t){2===t._state&&0===t._deferreds.length&&o._immediateFn(function(){t._handled||o._unhandledRejectionFn(t._value)});for(var e=0,n=t._deferreds.length;e=0&&(t._idleTimeoutId=setTimeout(function(){t._onTimeout&&t._onTimeout()},e))},n(74),e.setImmediate=setImmediate,e.clearImmediate=clearImmediate},function(t,e,n){(function(t,e){!function(t,n){"use strict";function i(t){"function"!=typeof t&&(t=new Function(""+t));for(var e=new Array(arguments.length-1),n=0;n1)for(var n=1;n<%= deviceLabel %>
\n
\n \n \n \n
\n
\n
\n
\n '),events:{change:"updateDevice"},initialize:function(t){this.config=t.config||{},this.em=this.config.em,this.ppfx=this.config.pStylePrefix||"",this.events["click ."+this.ppfx+"add-trasp"]=this.startAdd,this.listenTo(this.em,"change:device",this.updateSelect),this.delegateEvents()},startAdd:function(){},updateDevice:function(){var t=this.em;if(t){var e=this.devicesEl,n=e?e.val():"";t.set("device",n)}},updateSelect:function(){var t=this.em,e=this.devicesEl;if(t&&t.getDeviceModel&&e){var n=t.getDeviceModel(),i=n?n.get("name"):"";e.val(i)}},getOptions:function(){var t="";return this.collection.each(function(e){var n=e.get("name");t+='"}),t},render:function(){var t=this.ppfx;return this.$el.html(this.template({ppfx:t,deviceLabel:this.config.deviceLabel})),this.devicesEl=this.$el.find("."+t+"devices"),this.devicesEl.append(this.getOptions()),this.el.className=t+"devices-c",this}})}).call(e,n(1))},function(t,e,n){"use strict";t.exports=function(){var t,e,i={},r=n(82),o=n(83),s=n(22);return{compTypes:"",name:"Parser",init:function(n){i=n||{};for(var a in r)a in i||(i[a]=r[a]);return t=new s(i),e=new o(i),this},parseHtml:function(n){return t.compTypes=this.compTypes,t.parse(n,e)},parseCss:function(t){return e.parse(t)}}}},function(t,e,n){"use strict";t.exports={textTags:["br","b","i","u"]}},function(t,e,n){"use strict";t.exports=function(t){return{parseSelector:function(t){for(var e=[],n=[],i=t.split(","),r=0,o=i.length;r1&&void 0!==arguments[1]?arguments[1]:{};"object"==(void 0===t?"undefined":i(t))?n=t:n.name=t,n.label&&!n.name&&(n.name=l.escapeName(n.label));var r=n.name,o=r?this.get(r):e.where(n)[0];return o||e.add(n)},addClass:function(t){var n=[];return(0,r.isString)(t)&&(t=t.trim().split(" ")),t.forEach(function(t){return n.push(e.add({name:t}))}),n},get:function(t){return e.where({name:t})[0]},getAll:function(){return e},render:function(t){if(t){return new u({collection:new c(t),config:s}).render().el}return o.render().el}}}},function(t,e,n){"use strict";t.exports={stylePrefix:"clm-",selectors:[],label:"Classes",statesLabel:"- State -",selectedLabel:"Selected",states:[{name:"hover",label:"Hover"},{name:"active",label:"Click"},{name:"nth-of-type(2n)",label:"Even/Odd"}]}},function(t,e,n){"use strict";(function(e){var i=n(0),r=n(87);t.exports=i.View.extend({template:e.template('\n
\n
<%= label %>
\n
\n \n
\n \n \n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
<%= selectedLabel %>
\n
\n
\n
'),events:{},initialize:function(t){this.config=t.config||{},this.pfx=this.config.stylePrefix||"",this.ppfx=this.config.pStylePrefix||"",this.className=this.pfx+"tags",this.addBtnId=this.pfx+"add-tag",this.newInputId=this.pfx+"new",this.stateInputId=this.pfx+"states",this.stateInputC=this.pfx+"input-c",this.states=this.config.states||[],this.events["click #"+this.addBtnId]="startNewTag",this.events["blur #"+this.newInputId]="endNewTag",this.events["keyup #"+this.newInputId]="onInputKeyUp",this.events["change #"+this.stateInputId]="stateChanged",this.target=this.config.em,this.listenTo(this.target,"change:selectedComponent",this.componentChanged),this.listenTo(this.target,"targetClassUpdated",this.updateSelector),this.listenTo(this.collection,"add",this.addNew),this.listenTo(this.collection,"reset",this.renderClasses),this.listenTo(this.collection,"remove",this.tagRemoved),this.delegateEvents()},tagRemoved:function(t){this.updateStateVis()},getStateOptions:function(){for(var t="",e=0;e'+this.states[e].label+"";return t},addNew:function(t){this.addToClasses(t)},startNewTag:function(t){this.$addBtn.get(0).style.display="none",this.$input.show().focus()},endNewTag:function(t){this.$addBtn.get(0).style.display="",this.$input.hide().val("")},onInputKeyUp:function(t){13===t.keyCode?this.addNewTag(this.$input.val()):27===t.keyCode&&this.endNewTag()},componentChanged:function(t){this.compTarget=this.target.get("selectedComponent");var e=this.compTarget,n=[];e&&(this.getStates().val(e.get("state")),n=e.get("classes").getValid()),this.collection.reset(n),this.updateStateVis()},updateStateVis:function(){this.collection.length?this.getStatesC().css("display","block"):this.getStatesC().css("display","none"),this.updateSelector()},updateSelector:function(){var t=this.target.get("selectedComponent");if(this.compTarget=t,t&&t.get){var e="";this.collection.each(function(t){t.get("active")&&(e+="."+t.get("name"))});var n=t.get("state");e=n?e+":"+n:e,e=e||t.getName();var i=this.el.querySelector("#"+this.pfx+"sel");i&&(i.innerHTML=e)}},stateChanged:function(t){this.compTarget&&(this.compTarget.set("state",this.$states.val()),this.target&&this.target.trigger("targetStateUpdated"),this.updateSelector())},addNewTag:function(t){var e=this.target,n=this.compTarget;if(t.trim()){if(e){var i=e.get("SelectorManager"),r=i.add({label:t});if(n){var o=n.get("classes"),s=o.length;o.add(r);var a=o.length;this.collection.add(r),a>s&&e.trigger("targetClassAdded"),this.updateStateVis()}}this.endNewTag()}},addToClasses:function(t,e){var n=e||null,i=new r({model:t,config:this.config,coll:this.collection}),o=i.render().el;return n?n.appendChild(o):this.getClasses().append(o),o},renderClasses:function(){var t=document.createDocumentFragment();return this.collection.each(function(e){this.addToClasses(e,t)},this),this.getClasses()&&this.getClasses().empty().append(t),this},getClasses:function(){return this.$classes||(this.$classes=this.$el.find("#"+this.pfx+"tags-c")),this.$classes},getStates:function(){return this.$states||(this.$states=this.$el.find("#"+this.stateInputId)),this.$states},getStatesC:function(){return this.$statesC||(this.$statesC=this.$el.find("#"+this.stateInputC)),this.$statesC},render:function(){var t=this.config;return this.$el.html(this.template({selectedLabel:t.selectedLabel,statesLabel:t.statesLabel,label:t.label,pfx:this.pfx,ppfx:this.ppfx})),this.$input=this.$el.find("input#"+this.newInputId),this.$addBtn=this.$el.find("#"+this.addBtnId),this.$classes=this.$el.find("#"+this.pfx+"tags-c"),this.$states=this.$el.find("#"+this.stateInputId),this.$statesC=this.$el.find("#"+this.stateInputC),this.$states.append(this.getStateOptions()),this.renderClasses(),this.$el.attr("class",this.className),this}})}).call(e,n(1))},function(t,e,n){"use strict";(function(e){var i=n(0),r=n(9);t.exports=i.View.extend({template:e.template('\n \n \n />\n \n ⨯'),initialize:function(t){this.config=t.config||{},this.coll=t.coll||null,this.pfx=this.config.stylePrefix||"",this.ppfx=this.config.pStylePrefix||"",this.inputProp="readonly",this.target=this.config.em,this.className=this.pfx+"tag",this.closeId=this.pfx+"close",this.chkId=this.pfx+"checkbox",this.labelId=this.pfx+"tag-label",this.events={},this.events["click #"+this.closeId]="removeTag",this.events["click #"+this.chkId]="changeStatus",this.events["dblclick #"+this.labelId]="startEditTag",this.events["keypress #"+this.labelId+" input"]="updateInputLabel",this.events["blur #"+this.labelId+" input"]="endEditTag",this.listenTo(this.model,"change:active",this.updateStatus),this.delegateEvents()},startEditTag:function(){this.$labelInput.prop(this.inputProp,!1)},endEditTag:function(){var t=this.$labelInput.val(),e=r.escapeName(t);if(this.target){var n=this.target.get("SelectorManager");n&&(n.get(e)?this.$labelInput.val(this.model.get("label")):this.model.set({name:e,label:t}))}this.$labelInput.prop(this.inputProp,!0)},changeStatus:function(){this.model.set("active",!this.model.get("active")),this.target.trigger("targetClassUpdated")},removeTag:function(t){var e=this,n=this.target,i=this.model,r=this.coll,o=(this.el,n&&n.get("selectedComponent"));o&&(o.get,o.get("classes").remove(i)),r&&r.remove(i),setTimeout(function(){return e.remove()},0),n&&n.trigger("targetClassRemoved")},updateStatus:function(){var t="fa-check-square-o";this.$chk||(this.$chk=this.$el.find("#"+this.pfx+"checkbox")),this.model.get("active")?(this.$chk.removeClass("fa-square-o").addClass(t),this.$el.removeClass("opac50")):(this.$chk.removeClass(t).addClass("fa-square-o"),this.$el.addClass("opac50"))},updateInputLabel:function(){this.$labelInput||(this.$labelInput=this.$el.find("input")),this.$labelInput.prop(this.inputProp,!0);var t=this.$labelInput.val().length-1;t=t<1?1:t,this.$labelInput.attr("size",t)},render:function(){return this.$el.html(this.template({label:this.model.get("label"),pfx:this.pfx,ppfx:this.ppfx,inputProp:this.inputProp})),this.$el.attr("class",this.className),this.updateStatus(),this.updateInputLabel(),this}})}).call(e,n(1))},function(t,e,n){"use strict";t.exports=function(){var t,e,i={},r=n(89),o=n(90),s=n(91);return{name:"Modal",init:function(n){i=n||{};for(var a in r)a in i||(i[a]=r[a]);var l=i.pStylePrefix;return l&&(i.stylePrefix=l+i.stylePrefix),t=new o(i),e=new s({model:t,config:i}),this},postRender:function(t){this.render().appendTo(t.el)},open:function(){return e.show(),this},close:function(){return e.hide(),this},isOpen:function(){return!!t.get("open")},setTitle:function(e){return t.set("title",e),this},getTitle:function(){return t.get("title")},setContent:function(e){return t.set("content"," "),t.set("content",e),this},getContent:function(){return t.get("content")},getContentEl:function(){return e.getContent().get(0)},getModel:function(){return t},render:function(){return e.render().$el}}}},function(t,e,n){"use strict";t.exports={stylePrefix:"mdl-",title:"",content:"",backdrop:!0}},function(t,e,n){"use strict";var i=n(0);t.exports=i.Model.extend({defaults:{title:"",content:"",open:!1}})},function(t,e,n){"use strict";(function(e){var i=n(0);t.exports=i.View.extend({template:e.template('\n
\n
\n
<%= title %>
\n
⨯
\n
\n
\n
<%= content %>
\n
\n
\n
\n
\n '),events:{},initialize:function(t){this.config=t.config||{},this.pfx=this.config.stylePrefix||"",this.listenTo(this.model,"change:open",this.updateOpen),this.listenTo(this.model,"change:title",this.updateTitle),this.listenTo(this.model,"change:content",this.updateContent),this.events["click ."+this.pfx+"btn-close"]="hide",this.config.backdrop&&(this.events["click ."+this.pfx+"backlayer"]="hide"),this.delegateEvents()},getCollector:function(){return this.$collector||(this.$collector=this.$el.find("."+this.pfx+"collector")),this.$collector},getContent:function(){var t=this.pfx;return this.$content||(this.$content=this.$el.find("."+t+"content #"+t+"c")),this.$content},getTitle:function(){return this.$title||(this.$title=this.$el.find("."+this.pfx+"title")),this.$title.get(0)},updateContent:function(){var t=this.getContent(),e=t.children(),n=this.getCollector(),i=this.model.get("content");e.length&&n.append(e),t.empty().append(i)},updateTitle:function(){var t=this.getTitle();t&&(t.innerHTML=this.model.get("title"))},updateOpen:function(){this.el.style.display=this.model.get("open")?"":"none"},hide:function(){this.model.set("open",0)},show:function(){this.model.set("open",1)},render:function(){var t=this.model.toJSON();return t.pfx=this.pfx,this.$el.html(this.template(t)),this.$el.attr("class",this.pfx+"container"),this.updateOpen(),this}})}).call(e,n(1))},function(t,e,n){"use strict";t.exports=function(){var t={},e=n(93),i=n(94),r=n(95),o=n(96),s=n(97),a=n(98),l=n(103),c={},u={},h={},d={};return{getConfig:function(){return t},config:t,EditorView:l,name:"CodeManager",init:function(n){t=n||{};for(var l in e)l in t||(t[l]=e[l]);var c=t.pStylePrefix;return c&&(t.stylePrefix=c+t.stylePrefix),u.html=new i,u.css=new r,u.json=new o,u.js=new s,d.CodeMirror=new a,this.loadDefaultGenerators().loadDefaultViewers(),this},addGenerator:function(t,e){return c[t]=e,this},getGenerator:function(t){return c[t]||null},getGenerators:function(){return c},addViewer:function(t,e){return h[t]=e,this},getViewer:function(t){return h[t]||null},getViewers:function(){return h},updateViewer:function(t,e){t.setContent(e)},getCode:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=this.getGenerator(e);return i?i.build(t,n):""},loadDefaultGenerators:function(){for(var t in u)this.addGenerator(t,u[t]);return this},loadDefaultViewers:function(){for(var t in d)this.addViewer(t,d[t]);return this}}}},function(t,e,n){"use strict";t.exports={stylePrefix:"cm-",inlineCss:!1}},function(t,e,n){"use strict";var i=n(0);t.exports=i.Model.extend({build:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.get("components");return e.exportWrapper?e.wrappesIsBody?""+this.buildModels(n)+"":t.toHTML():this.buildModels(n)},buildModels:function(t){var e="";return t.each(function(t){e+=t.toHTML()}),e}})},function(t,e,n){"use strict";var i=n(0);t.exports=i.Model.extend({initialize:function(){this.compCls=[]},buildFromModel:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n="",i=t.get("style"),r=t.get("classes"),o=e.wrappesIsBody;if(r&&r.each(function(t){this.compCls.push(t.get("name"))},this),i&&0!==Object.keys(i).length){var s="#"+t.getId();s=o&&t.get("wrapper")?"body":s,n+=s+"{";for(var a in i)i.hasOwnProperty(a)&&(n+=a+":"+i[a]+";");n+="}"}return n},buildFromComp:function(t){var e=t.get("components")||t,n="";return e.each(function(t){var e=t.get("components");n+=this.buildFromModel(t),e.length&&(n+=this.buildFromComp(e))},this),n},build:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.cssc;this.compCls=[];var i=this.buildFromModel(t,e);i+=this.buildFromComp(t);this.compCls;if(n){var r=n.getAll(),o={};r.each(function(t){var e=t.get("mediaText");if(e){var n=o[e];return void(n?n.push(t):o[e]=[t])}i+=this.buildFromRule(t)},this);for(var s in o){for(var a=o[s],l="",c=0,u=a.length;c-1&&(a=1)}),s&&a||n){s+=o?":"+o:"",s+=n?(s?", ":"")+n:"";var c="";if(r&&0!==Object.keys(r).length)for(var u in r)r.hasOwnProperty(u)&&(c+=u+":"+r[u]+";");c&&(e+=s+"{"+c+"}")}return e}})},function(t,e,n){"use strict";(function(e){var i=n(0);t.exports=i.Model.extend({build:function(t){var n=t.toJSON();return this.beforeEach(n),e.each(n,function(t,e){var r=n[e];if(r instanceof i.Model)n[e]=this.build(r);else if(r instanceof i.Collection){var o=r;n[e]=[],o.length&&o.each(function(t,i){n[e][i]=this.build(t)},this)}},this),n},beforeEach:function(t){delete t.status}})}).call(e,n(1))},function(t,e,n){"use strict";(function(e){var i=n(0);t.exports=i.Model.extend({mapModel:function(t){var n="",i=t.get("script"),r=t.get("type"),o=t.get("components"),s=t.getId();if(i){var a=t.get("attributes");a=e.extend({},a,{id:s}),t.set("attributes",a);var l=t.getScriptString();if(t.get("scriptUpdated"))this.mapJs[r+"-"+s]={ids:[s],code:l};else{var c=this.mapJs[r];c?c.ids.push(s):this.mapJs[r]={ids:[s],code:l}}}return o.each(function(t){n+=this.mapModel(t)},this),n},build:function(t){this.mapJs={},this.mapModel(t);var e="";for(var n in this.mapJs){var i=this.mapJs[n];e+="\n var items = document.querySelectorAll('"+("#"+i.ids.join(", #"))+"');\n for (var i = 0, len = items.length; i < len; i++) {\n (function(){"+i.code+"}.bind(items[i]))();\n }"}return e}})}).call(e,n(1))},function(t,e,n){"use strict";var i=n(0),r=n(6);n(99),n(24),n(102);t.exports=i.Model.extend({defaults:{input:"",label:"",codeName:"",theme:"",readOnly:!0,lineNumbers:!0},init:function(t){return this.editor=r.fromTextArea(t,{dragDrop:!1,lineWrapping:!0,lineNumbers:this.get("lineNumbers"),readOnly:this.get("readOnly"),mode:this.get("codeName"),theme:this.get("theme")}),this},setContent:function(t){this.editor&&(this.editor.setValue(t),this.editor.autoFormatRange&&(r.commands.selectAll(this.editor),this.editor.autoFormatRange(this.editor.getCursor(!0),this.editor.getCursor(!1)),r.commands.goDocStart(this.editor)))}})},function(t,e,n){!function(t){t(n(6),n(100),n(101),n(24))}(function(t){"use strict";function e(t,e,n){var i=t.current(),r=i.search(e);return r>-1?t.backUp(i.length-r):i.match(/<\/?$/)&&(t.backUp(i.length),t.match(e,!1)||t.match(i)),n}function n(t){var e=l[t];return e||(l[t]=new RegExp("\\s+"+t+"\\s*=\\s*('|\")?([^'\"]+)('|\")?\\s*"))}function i(t,e){var i=t.match(n(e));return i?/^\s*(.*?)\s*$/.exec(i[2])[1]:""}function r(t,e){return new RegExp((e?"^":"")+"","i")}function o(t,e){for(var n in t)for(var i=e[n]||(e[n]=[]),r=t[n],o=r.length-1;o>=0;o--)i.unshift(r[o])}function s(t,e){for(var n=0;n\s\/]/.test(i.current())&&(a=o.htmlState.tagName&&o.htmlState.tagName.toLowerCase())&&u.hasOwnProperty(a))o.inTag=a+" ";else if(o.inTag&&d&&/>$/.test(i.current())){var f=/^([\S]+) (.*)/.exec(o.inTag);o.inTag=null;var p=">"==i.current()&&s(u[f[1]],f[2]),g=t.getMode(n,p),m=r(f[1],!0),v=r(f[1],!1);o.token=function(t,n){return t.match(m,!1)?(n.token=l,n.localState=n.localMode=null,null):e(t,v,n.localMode.token(t,n.localState))},o.localMode=g,o.localState=t.startState(g,c.indent(o.htmlState,""))}else o.inTag&&(o.inTag+=i.current(),i.eol()&&(o.inTag+=" "));return h}var c=t.getMode(n,{name:"xml",htmlMode:!0,multilineTagIndentFactor:i.multilineTagIndentFactor,multilineTagIndentPastTag:i.multilineTagIndentPastTag}),u={},h=i&&i.tags,d=i&&i.scriptTypes;if(o(a,u),h&&o(h,u),d)for(var f=d.length-1;f>=0;f--)u.script.unshift(["type",d[f].matches,d[f].mode]);return{startState:function(){return{token:l,inTag:null,localMode:null,localState:null,htmlState:t.startState(c)}},copyState:function(e){var n;return e.localState&&(n=t.copyState(e.localMode,e.localState)),{token:e.token,inTag:e.inTag,localMode:e.localMode,localState:n,htmlState:t.copyState(c,e.htmlState)}},token:function(t,e){return e.token(t,e)},indent:function(e,n,i){return!e.localMode||/^\s*<\//.test(n)?c.indent(e.htmlState,n):e.localMode.indent?e.localMode.indent(e.localState,n,i):t.Pass},innerMode:function(t){return{state:t.localState||t.htmlState,mode:t.localMode||c}}}},"xml","javascript","css"),t.defineMIME("text/html","htmlmixed")})},function(t,e,n){!function(t){t(n(6))}(function(t){"use strict";var e={autoSelfClosers:{area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},implicitlyClosed:{dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},contextGrabbers:{dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}},doNotIndent:{pre:!0},allowUnquoted:!0,allowMissing:!0,caseFold:!0},n={autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1,caseFold:!1};t.defineMode("xml",function(i,r){function o(t,e){function n(n){return e.tokenize=n,n(t,e)}var i=t.next();if("<"==i)return t.eat("!")?t.eat("[")?t.match("CDATA[")?n(l("atom","]]>")):null:t.match("--")?n(l("comment","--\x3e")):t.match("DOCTYPE",!0,!0)?(t.eatWhile(/[\w\._\-]/),n(c(1))):null:t.eat("?")?(t.eatWhile(/[\w\._\-]/),e.tokenize=l("meta","?>"),"meta"):(M=t.eat("/")?"closeTag":"openTag",e.tokenize=s,"tag bracket");if("&"==i){var r;return r=t.eat("#")?t.eat("x")?t.eatWhile(/[a-fA-F\d]/)&&t.eat(";"):t.eatWhile(/[\d]/)&&t.eat(";"):t.eatWhile(/[\w\.\-:]/)&&t.eat(";"),r?"atom":"error"}return t.eatWhile(/[^&<]/),null}function s(t,e){var n=t.next();if(">"==n||"/"==n&&t.eat(">"))return e.tokenize=o,M=">"==n?"endTag":"selfcloseTag","tag bracket";if("="==n)return M="equals",null;if("<"==n){e.tokenize=o,e.state=f,e.tagName=e.tagStart=null;var i=e.tokenize(t,e);return i?i+" tag error":"tag error"}return/[\'\"]/.test(n)?(e.tokenize=a(n),e.stringStartCol=t.column(),e.tokenize(t,e)):(t.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),"word")}function a(t){var e=function(e,n){for(;!e.eol();)if(e.next()==t){n.tokenize=s;break}return"string"};return e.isInAttribute=!0,e}function l(t,e){return function(n,i){for(;!n.eol();){if(n.match(e)){i.tokenize=o;break}n.next()}return t}}function c(t){return function(e,n){for(var i;null!=(i=e.next());){if("<"==i)return n.tokenize=c(t+1),n.tokenize(e,n);if(">"==i){if(1==t){n.tokenize=o;break}return n.tokenize=c(t-1),n.tokenize(e,n)}}return"meta"}}function u(t,e,n){this.prev=t.context,this.tagName=e,this.indent=t.indented,this.startOfLine=n,(k.doNotIndent.hasOwnProperty(e)||t.context&&t.context.noIndent)&&(this.noIndent=!0)}function h(t){t.context&&(t.context=t.context.prev)}function d(t,e){for(var n;;){if(!t.context)return;if(n=t.context.tagName,!k.contextGrabbers.hasOwnProperty(n)||!k.contextGrabbers[n].hasOwnProperty(e))return;h(t)}}function f(t,e,n){return"openTag"==t?(n.tagStart=e.column(),p):"closeTag"==t?g:f}function p(t,e,n){return"word"==t?(n.tagName=e.current(),E="tag",y):(E="error",p)}function g(t,e,n){if("word"==t){var i=e.current();return n.context&&n.context.tagName!=i&&k.implicitlyClosed.hasOwnProperty(n.context.tagName)&&h(n),n.context&&n.context.tagName==i||!1===k.matchClosing?(E="tag",m):(E="tag error",v)}return E="error",v}function m(t,e,n){return"endTag"!=t?(E="error",m):(h(n),f)}function v(t,e,n){return E="error",m(t,e,n)}function y(t,e,n){if("word"==t)return E="attribute",b;if("endTag"==t||"selfcloseTag"==t){var i=n.tagName,r=n.tagStart;return n.tagName=n.tagStart=null,"selfcloseTag"==t||k.autoSelfClosers.hasOwnProperty(i)?d(n,i):(d(n,i),n.context=new u(n,i,r==n.indented)),f}return E="error",y}function b(t,e,n){return"equals"==t?x:(k.allowMissing||(E="error"),y(t,e,n))}function x(t,e,n){return"string"==t?w:"word"==t&&k.allowUnquoted?(E="string",y):(E="error",y(t,e,n))}function w(t,e,n){return"string"==t?w:y(t,e,n)}var C=i.indentUnit,k={},S=r.htmlMode?e:n;for(var T in S)k[T]=S[T];for(var T in r)k[T]=r[T];var M,E;return o.isInText=!0,{startState:function(t){var e={tokenize:o,state:f,indented:t||0,tagName:null,tagStart:null,context:null};return null!=t&&(e.baseIndent=t),e},token:function(t,e){if(!e.tagName&&t.sol()&&(e.indented=t.indentation()),t.eatSpace())return null;M=null;var n=e.tokenize(t,e);return(n||M)&&"comment"!=n&&(E=null,e.state=e.state(M||n,t,e),E&&(n="error"==E?n+" error":E)),n},indent:function(e,n,i){var r=e.context;if(e.tokenize.isInAttribute)return e.tagStart==e.indented?e.stringStartCol+1:e.indented+C;if(r&&r.noIndent)return t.Pass;if(e.tokenize!=s&&e.tokenize!=o)return i?i.match(/^(\s*)/)[0].length:0;if(e.tagName)return!1!==k.multilineTagIndentPastTag?e.tagStart+e.tagName.length+2:e.tagStart+C*(k.multilineTagIndentFactor||1);if(k.alignCDATA&&/$/,blockCommentStart:"\x3c!--",blockCommentEnd:"--\x3e",configuration:k.htmlMode?"html":"xml",helperType:k.htmlMode?"html":"xml",skipAttribute:function(t){t.state==x&&(t.state=y)}}}),t.defineMIME("text/xml","xml"),t.defineMIME("application/xml","xml"),t.mimeModes.hasOwnProperty("text/html")||t.defineMIME("text/html",{name:"xml",htmlMode:!0})})},function(t,e,n){!function(t){t(n(6))}(function(t){"use strict";t.defineMode("javascript",function(e,n){function i(t){for(var e,n=!1,i=!1;null!=(e=t.next());){if(!n){if("/"==e&&!i)return;"["==e?i=!0:i&&"]"==e&&(i=!1)}n=!n&&"\\"==e}}function r(t,e,n){return Tt=t,Mt=n,e}function o(t,e){var n=t.next();if('"'==n||"'"==n)return e.tokenize=s(n),e.tokenize(t,e);if("."==n&&t.match(/^\d+(?:[eE][+\-]?\d+)?/))return r("number","number");if("."==n&&t.match(".."))return r("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(n))return r(n);if("="==n&&t.eat(">"))return r("=>","operator");if("0"==n&&t.eat(/x/i))return t.eatWhile(/[\da-f]/i),r("number","number");if("0"==n&&t.eat(/o/i))return t.eatWhile(/[0-7]/i),r("number","number");if("0"==n&&t.eat(/b/i))return t.eatWhile(/[01]/i),r("number","number");if(/\d/.test(n))return t.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/),r("number","number");if("/"==n)return t.eat("*")?(e.tokenize=a,a(t,e)):t.eat("/")?(t.skipToEnd(),r("comment","comment")):St(t,e,1)?(i(t),t.match(/^\b(([gimyu])(?![gimyu]*\2))+\b/),r("regexp","string-2")):(t.eat("="),r("operator","operator",t.current()));if("`"==n)return e.tokenize=l,l(t,e);if("#"==n)return t.skipToEnd(),r("error","error");if(It.test(n))return">"==n&&e.lexical&&">"==e.lexical.type||(t.eat("=")?"!"!=n&&"="!=n||t.eat("="):/[<>*+\-]/.test(n)&&(t.eat(n),">"==n&&t.eat(n))),r("operator","operator",t.current());if(Nt.test(n)){t.eatWhile(Nt);var o=t.current();if("."!=e.lastType){if(Dt.propertyIsEnumerable(o)){var c=Dt[o];return r(c.type,c.style,o)}if("async"==o&&t.match(/^\s*[\(\w]/,!1))return r("async","keyword",o)}return r("variable","variable",o)}}function s(t){return function(e,n){var i,s=!1;if(At&&"@"==e.peek()&&e.match(_t))return n.tokenize=o,r("jsonld-keyword","meta");for(;null!=(i=e.next())&&(i!=t||s);)s=!s&&"\\"==i;return s||(n.tokenize=o),r("string","string")}}function a(t,e){for(var n,i=!1;n=t.next();){if("/"==n&&i){e.tokenize=o;break}i="*"==n}return r("comment","comment")}function l(t,e){for(var n,i=!1;null!=(n=t.next());){if(!i&&("`"==n||"$"==n&&t.eat("{"))){e.tokenize=o;break}i=!i&&"\\"==n}return r("quasi","string-2",t.current())}function c(t,e){e.fatArrowAt&&(e.fatArrowAt=null);var n=t.string.indexOf("=>",t.start);if(!(n<0)){if(Ot){var i=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(t.string.slice(t.start,n));i&&(n=i.index)}for(var r=0,o=!1,s=n-1;s>=0;--s){var a=t.string.charAt(s),l=Ft.indexOf(a);if(l>=0&&l<3){if(!r){++s;break}if(0==--r){"("==a&&(o=!0);break}}else if(l>=3&&l<6)++r;else if(Nt.test(a))o=!0;else{if(/["'\/]/.test(a))return;if(o&&!r){++s;break}}}o&&!r&&(e.fatArrowAt=s)}}function u(t,e,n,i,r,o){this.indented=t,this.column=e,this.type=n,this.prev=r,this.info=o,null!=i&&(this.align=i)}function h(t,e){for(var n=t.localVars;n;n=n.next)if(n.name==e)return!0;for(var i=t.context;i;i=i.prev)for(var n=i.vars;n;n=n.next)if(n.name==e)return!0}function d(t,e,n,i,r){var o=t.cc;for(zt.state=t,zt.stream=r,zt.marked=null,zt.cc=o,zt.style=e,t.lexical.hasOwnProperty("align")||(t.lexical.align=!0);;){if((o.length?o.pop():Lt?C:w)(n,i)){for(;o.length&&o[o.length-1].lex;)o.pop()();return zt.marked?zt.marked:"variable"==n&&h(t,i)?"variable-2":e}}}function f(){for(var t=arguments.length-1;t>=0;t--)zt.cc.push(arguments[t])}function p(){return f.apply(null,arguments),!0}function g(t){function e(e){for(var n=e;n;n=n.next)if(n.name==t)return!0;return!1}var i=zt.state;if(zt.marked="def",i.context){if(e(i.localVars))return;i.localVars={name:t,next:i.localVars}}else{if(e(i.globalVars))return;n.globalVars&&(i.globalVars={name:t,next:i.globalVars})}}function m(){zt.state.context={prev:zt.state.context,vars:zt.state.localVars},zt.state.localVars=Rt}function v(){zt.state.localVars=zt.state.context.vars,zt.state.context=zt.state.context.prev}function y(t,e){var n=function(){var n=zt.state,i=n.indented;if("stat"==n.lexical.type)i=n.lexical.indented;else for(var r=n.lexical;r&&")"==r.type&&r.align;r=r.prev)i=r.indented;n.lexical=new u(i,zt.stream.column(),t,null,n.lexical,e)};return n.lex=!0,n}function b(){var t=zt.state;t.lexical.prev&&(")"==t.lexical.type&&(t.indented=t.lexical.indented),t.lexical=t.lexical.prev)}function x(t){function e(n){return n==t?p():";"==t?f():p(e)}return e}function w(t,e){return"var"==t?p(y("vardef",e.length),J,x(";"),b):"keyword a"==t?p(y("form"),S,w,b):"keyword b"==t?p(y("form"),w,b):"keyword d"==t?zt.stream.match(/^\s*$/,!1)?p():p(y("stat"),M,x(";"),b):"debugger"==t?p(x(";")):"{"==t?p(y("}"),B,b):";"==t?p():"if"==t?("else"==zt.state.lexical.info&&zt.state.cc[zt.state.cc.length-1]==b&&zt.state.cc.pop()(),p(y("form"),S,w,b,nt)):"function"==t?p(lt):"for"==t?p(y("form"),it,w,b):"variable"==t?Ot&&"type"==e?(zt.marked="keyword",p(U,x("operator"),U,x(";"))):Ot&&"declare"==e?(zt.marked="keyword",p(w)):p(y("stat"),F):"switch"==t?p(y("form"),S,x("{"),y("}","switch"),B,b,b):"case"==t?p(C,x(":")):"default"==t?p(x(":")):"catch"==t?p(y("form"),m,x("("),ct,x(")"),w,b,v):"class"==t?p(y("form"),ht,b):"export"==t?p(y("stat"),gt,b):"import"==t?p(y("stat"),vt,b):"module"==t?p(y("form"),Z,x("{"),y("}"),B,b,b):"async"==t?p(w):"@"==e?p(C,w):f(y("stat"),C,x(";"),b)}function C(t){return T(t,!1)}function k(t){return T(t,!0)}function S(t){return"("!=t?f():p(y(")"),C,x(")"),b)}function T(t,e){if(zt.state.fatArrowAt==zt.stream.start){var n=e?N:O;if("("==t)return p(m,y(")"),V(ct,")"),b,x("=>"),n,v);if("variable"==t)return f(m,Z,x("=>"),n,v)}var i=e?P:E;return $t.hasOwnProperty(t)?p(i):"function"==t?p(lt,i):"class"==t?p(y("form"),ut,b):"keyword c"==t||"async"==t?p(e?k:C):"("==t?p(y(")"),M,x(")"),b,i):"operator"==t||"spread"==t?p(e?k:C):"["==t?p(y("]"),Ct,b,i):"{"==t?j(z,"}",null,i):"quasi"==t?f(A,i):"new"==t?p(D(e)):p()}function M(t){return t.match(/[;\}\)\],]/)?f():f(C)}function E(t,e){return","==t?p(C):P(t,e,!1)}function P(t,e,n){var i=0==n?E:P,r=0==n?C:k;return"=>"==t?p(m,n?N:O,v):"operator"==t?/\+\+|--/.test(e)||Ot&&"!"==e?p(i):"?"==e?p(C,x(":"),r):p(r):"quasi"==t?f(A,i):";"!=t?"("==t?j(k,")","call",i):"."==t?p($,i):"["==t?p(y("]"),M,x("]"),b,i):Ot&&"as"==e?(zt.marked="keyword",p(U,i)):"regexp"==t?(zt.state.lastType=zt.marked="operator",zt.stream.backUp(zt.stream.pos-zt.stream.start-1),p(r)):void 0:void 0}function A(t,e){return"quasi"!=t?f():"${"!=e.slice(e.length-2)?p(A):p(C,L)}function L(t){if("}"==t)return zt.marked="string-2",zt.state.tokenize=l,p(A)}function O(t){return c(zt.stream,zt.state),f("{"==t?w:C)}function N(t){return c(zt.stream,zt.state),f("{"==t?w:k)}function D(t){return function(e){return"."==e?p(t?_:I):"variable"==e&&Ot?p(X,t?P:E):f(t?k:C)}}function I(t,e){if("target"==e)return zt.marked="keyword",p(E)}function _(t,e){if("target"==e)return zt.marked="keyword",p(P)}function F(t){return":"==t?p(b,w):f(E,x(";"),b)}function $(t){if("variable"==t)return zt.marked="property",p()}function z(t,e){if("async"==t)return zt.marked="property",p(z);if("variable"==t||"keyword"==zt.style){if(zt.marked="property","get"==e||"set"==e)return p(R);var n;return Ot&&zt.state.fatArrowAt==zt.stream.start&&(n=zt.stream.match(/^\s*:\s*/,!1))&&(zt.state.fatArrowAt=zt.stream.pos+n[0].length),p(H)}return"number"==t||"string"==t?(zt.marked=At?"property":zt.style+" property",p(H)):"jsonld-keyword"==t?p(H):"modifier"==t?p(z):"["==t?p(C,x("]"),H):"spread"==t?p(k,H):"*"==e?(zt.marked="keyword",p(z)):":"==t?f(H):void 0}function R(t){return"variable"!=t?f(H):(zt.marked="property",p(lt))}function H(t){return":"==t?p(k):"("==t?f(lt):void 0}function V(t,e,n){function i(r,o){if(n?n.indexOf(r)>-1:","==r){var s=zt.state.lexical;return"call"==s.info&&(s.pos=(s.pos||0)+1),p(function(n,i){return n==e||i==e?f():f(t)},i)}return r==e||o==e?p():p(x(e))}return function(n,r){return n==e||r==e?p():f(t,i)}}function j(t,e,n){for(var i=3;i"==t)return p(U)}function K(t,e){return"variable"==t||"keyword"==zt.style?(zt.marked="property",p(K)):"?"==e?p(K):":"==t?p(U):"["==t?p(C,W,x("]"),K):void 0}function G(t){return"variable"==t?p(G):":"==t?p(U):void 0}function Y(t,e){return"<"==e?p(y(">"),V(U,">"),b,Y):"|"==e||"."==t?p(U):"["==t?p(x("]"),Y):"extends"==e?p(U):void 0}function X(t,e){if("<"==e)return p(y(">"),V(U,">"),b,Y)}function J(){return f(Z,W,tt,et)}function Z(t,e){return"modifier"==t?p(Z):"variable"==t?(g(e),p()):"spread"==t?p(Z):"["==t?j(Z,"]"):"{"==t?j(Q,"}"):void 0}function Q(t,e){return"variable"!=t||zt.stream.match(/^\s*:/,!1)?("variable"==t&&(zt.marked="property"),"spread"==t?p(Z):"}"==t?f():p(x(":"),Z,tt)):(g(e),p(tt))}function tt(t,e){if("="==e)return p(k)}function et(t){if(","==t)return p(J)}function nt(t,e){if("keyword b"==t&&"else"==e)return p(y("form","else"),w,b)}function it(t){if("("==t)return p(y(")"),rt,x(")"),b)}function rt(t){return"var"==t?p(J,x(";"),st):";"==t?p(st):"variable"==t?p(ot):f(C,x(";"),st)}function ot(t,e){return"in"==e||"of"==e?(zt.marked="keyword",p(C)):p(E,st)}function st(t,e){return";"==t?p(at):"in"==e||"of"==e?(zt.marked="keyword",p(C)):f(C,x(";"),at)}function at(t){")"!=t&&p(C)}function lt(t,e){return"*"==e?(zt.marked="keyword",p(lt)):"variable"==t?(g(e),p(lt)):"("==t?p(m,y(")"),V(ct,")"),b,W,w,v):Ot&&"<"==e?p(y(">"),V(U,">"),b,lt):void 0}function ct(t,e){return"@"==e&&p(C,ct),"spread"==t||"modifier"==t?p(ct):f(Z,W,tt)}function ut(t,e){return"variable"==t?ht(t,e):dt(t,e)}function ht(t,e){if("variable"==t)return g(e),p(dt)}function dt(t,e){return"<"==e?p(y(">"),V(U,">"),b,dt):"extends"==e||"implements"==e||Ot&&","==t?p(Ot?U:C,dt):"{"==t?p(y("}"),ft,b):void 0}function ft(t,e){return"modifier"==t||"async"==t||"variable"==t&&("static"==e||"get"==e||"set"==e)&&zt.stream.match(/^\s+[\w$\xa1-\uffff]/,!1)?(zt.marked="keyword",p(ft)):"variable"==t||"keyword"==zt.style?(zt.marked="property",p(Ot?pt:lt,ft)):"["==t?p(C,x("]"),Ot?pt:lt,ft):"*"==e?(zt.marked="keyword",p(ft)):";"==t?p(ft):"}"==t?p():"@"==e?p(C,ft):void 0}function pt(t,e){return"?"==e?p(pt):":"==t?p(U,tt):"="==e?p(k):f(lt)}function gt(t,e){return"*"==e?(zt.marked="keyword",p(wt,x(";"))):"default"==e?(zt.marked="keyword",p(C,x(";"))):"{"==t?p(V(mt,"}"),wt,x(";")):f(w)}function mt(t,e){return"as"==e?(zt.marked="keyword",p(x("variable"))):"variable"==t?f(k,mt):void 0}function vt(t){return"string"==t?p():f(yt,bt,wt)}function yt(t,e){return"{"==t?j(yt,"}"):("variable"==t&&g(e),"*"==e&&(zt.marked="keyword"),p(xt))}function bt(t){if(","==t)return p(yt,bt)}function xt(t,e){if("as"==e)return zt.marked="keyword",p(yt)}function wt(t,e){if("from"==e)return zt.marked="keyword",p(C)}function Ct(t){return"]"==t?p():f(V(k,"]"))}function kt(t,e){return"operator"==t.lastType||","==t.lastType||It.test(e.charAt(0))||/[,.]/.test(e.charAt(0))}function St(t,e,n){return e.tokenize==o&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(e.lastType)||"quasi"==e.lastType&&/\{\s*$/.test(t.string.slice(0,t.pos-(n||0)))}var Tt,Mt,Et=e.indentUnit,Pt=n.statementIndent,At=n.jsonld,Lt=n.json||At,Ot=n.typescript,Nt=n.wordCharacters||/[\w$\xa1-\uffff]/,Dt=function(){function t(t){return{type:t,style:"keyword"}}var e=t("keyword a"),n=t("keyword b"),i=t("keyword c"),r=t("keyword d"),o=t("operator"),s={type:"atom",style:"atom"},a={if:t("if"),while:e,with:e,else:n,do:n,try:n,finally:n,return:r,break:r,continue:r,new:t("new"),delete:i,void:i,throw:i,debugger:t("debugger"),var:t("var"),const:t("var"),let:t("var"),function:t("function"),catch:t("catch"),for:t("for"),switch:t("switch"),case:t("case"),default:t("default"),in:o,typeof:o,instanceof:o,true:s,false:s,null:s,undefined:s,NaN:s,Infinity:s,this:t("this"),class:t("class"),super:t("atom"),yield:i,export:t("export"),import:t("import"),extends:i,await:i};if(Ot){var l={type:"variable",style:"type"},c={interface:t("class"),implements:i,namespace:i,module:t("module"),enum:t("module"),public:t("modifier"),private:t("modifier"),protected:t("modifier"),abstract:t("modifier"),readonly:t("modifier"),string:l,number:l,boolean:l,any:l};for(var u in c)a[u]=c[u]}return a}(),It=/[+\-*&%=<>!?|~^@]/,_t=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/,Ft="([{}])",$t={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,"jsonld-keyword":!0},zt={state:null,column:null,marked:null,cc:null},Rt={name:"this",next:{name:"arguments"}};return b.lex=!0,{startState:function(t){var e={tokenize:o,lastType:"sof",cc:[],lexical:new u((t||0)-Et,0,"block",!1),localVars:n.localVars,context:n.localVars&&{vars:n.localVars},indented:t||0};return n.globalVars&&"object"==typeof n.globalVars&&(e.globalVars=n.globalVars),e},token:function(t,e){if(t.sol()&&(e.lexical.hasOwnProperty("align")||(e.lexical.align=!1),e.indented=t.indentation(),c(t,e)),e.tokenize!=a&&t.eatSpace())return null;var n=e.tokenize(t,e);return"comment"==Tt?n:(e.lastType="operator"!=Tt||"++"!=Mt&&"--"!=Mt?Tt:"incdec",d(e,n,Tt,Mt,t))},indent:function(e,i){if(e.tokenize==a)return t.Pass;if(e.tokenize!=o)return 0;var r,s=i&&i.charAt(0),l=e.lexical;if(!/^\s*else\b/.test(i))for(var c=e.cc.length-1;c>=0;--c){var u=e.cc[c];if(u==b)l=l.prev;else if(u!=nt)break}for(;("stat"==l.type||"form"==l.type)&&("}"==s||(r=e.cc[e.cc.length-1])&&(r==E||r==P)&&!/^[,\.=+\-*:?[\(]/.test(i));)l=l.prev;Pt&&")"==l.type&&"stat"==l.prev.type&&(l=l.prev);var h=l.type,d=s==h;return"vardef"==h?l.indented+("operator"==e.lastType||","==e.lastType?l.info+1:0):"form"==h&&"{"==s?l.indented:"form"==h?l.indented+Et:"stat"==h?l.indented+(kt(e,i)?Pt||Et:0):"switch"!=l.info||d||0==n.doubleIndentSwitch?l.align?l.column+(d?0:1):l.indented+(d?0:Et):l.indented+(/^(?:case|default)\b/.test(i)?Et:2*Et)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:Lt?null:"/*",blockCommentEnd:Lt?null:"*/",blockCommentContinue:Lt?null:" * ",lineComment:Lt?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:Lt?"json":"javascript",jsonldMode:At,jsonMode:Lt,expressionAllowed:St,skipExpression:function(t){var e=t.cc[t.cc.length-1];e!=C&&e!=k||t.cc.pop()}}}),t.registerHelper("wordChars","javascript",/[\w$]/),t.defineMIME("text/javascript","javascript"),t.defineMIME("text/ecmascript","javascript"),t.defineMIME("application/javascript","javascript"),t.defineMIME("application/x-javascript","javascript"),t.defineMIME("application/ecmascript","javascript"),t.defineMIME("application/json",{name:"javascript",json:!0}),t.defineMIME("application/x-json",{name:"javascript",json:!0}),t.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),t.defineMIME("text/typescript",{name:"javascript",typescript:!0}),t.defineMIME("application/typescript",{name:"javascript",typescript:!0})})},function(t,e,n){!function(t){t(n(6))}(function(t){t.extendMode("css",{commentStart:"/*",commentEnd:"*/",newlineAfterToken:function(t,e){return/^[;{}]$/.test(e)}}),t.extendMode("javascript",{commentStart:"/*",commentEnd:"*/",newlineAfterToken:function(t,e,n,i){return this.jsonMode?/^[\[,{]$/.test(e)||/^}/.test(n):(";"!=e||!i.lexical||")"!=i.lexical.type)&&(/^[;{}]$/.test(e)&&!/^;/.test(n))}});var e=/^(a|abbr|acronym|area|base|bdo|big|br|button|caption|cite|code|col|colgroup|dd|del|dfn|em|frame|hr|iframe|img|input|ins|kbd|label|legend|link|map|object|optgroup|option|param|q|samp|script|select|small|span|strong|sub|sup|textarea|tt|var)$/;t.extendMode("xml",{commentStart:"\x3c!--",commentEnd:"--\x3e",newlineAfterToken:function(t,n,i,r){var o=!1;return"html"==this.configuration&&(o=!!r.context&&e.test(r.context.tagName)),!o&&("tag"==t&&/>$/.test(n)&&r.context||/^-1&&a>-1&&a>s&&(t=t.substr(0,s)+t.substring(s+o.commentStart.length,a)+t.substr(a+o.commentEnd.length)),r.replaceRange(t,n,i)}})}),t.defineExtension("autoIndentRange",function(t,e){var n=this;this.operation(function(){for(var i=t.line;i<=e.line;i++)n.indentLine(i,"smart")})}),t.defineExtension("autoFormatRange",function(e,n){function i(){c+="\n",h=!0,++u}for(var r=this,o=r.getMode(),s=r.getRange(e,n).split("\n"),a=t.copyState(o,r.getTokenAt(e).state),l=r.getOption("tabSize"),c="",u=0,h=0===e.ch,d=0;d\n \t
<%= label %>
\n \t
\n
'),initialize:function(t){this.config=t.config||{},this.pfx=this.config.stylePrefix},render:function(){var t=this.model.toJSON();return t.pfx=this.pfx,this.$el.html(this.template(t)),this.$el.attr("class",this.pfx+"editor-c"),this.$el.find("#"+this.pfx+"code").append(this.model.get("input")),this}})}).call(e,n(1))},function(t,e,n){"use strict";t.exports=function(){var t,e,i={},r=n(105),o=n(25),s=n(107),a=(n(27),n(109));return{name:"Panels",init:function(n){i=n||{};for(var o in r)o in i||(i[o]=r[o]);var l=i.pStylePrefix;return l&&(i.stylePrefix=l+i.stylePrefix),t=new s(i.defaults),e=new a({collection:t,config:i}),this},getPanels:function(){return t},getPanelsEl:function(){return e.el},addPanel:function(e){return t.add(e)},getPanel:function(e){var n=t.where({id:e});return n.length?n[0]:null},addButton:function(t,e){var n=this.getPanel(t);return n?n.get("buttons").add(e):null},getButton:function(t,e){var n=this.getPanel(t);if(n){var i=n.get("buttons").where({id:e});return i.length?i[0]:null}return null},render:function(){return e.render().el},active:function(){this.getPanels().each(function(t){t.get("buttons").each(function(t){t.get("active")&&t.trigger("updateActive")})})},disableButtons:function(){this.getPanels().each(function(t){t.get("buttons").each(function(t){t.get("disable")&&t.trigger("change:disable")})})},Panel:o}}},function(t,e,n){"use strict";var i="sw-visibility",r="export-template",o="open-layers",s="open-blocks",a="fullscreen",l="preview";t.exports={stylePrefix:"pn-",defaults:[{id:"commands",buttons:[{}]},{id:"options",buttons:[{active:!0,id:i,className:"fa fa-square-o",command:i,context:i,attributes:{title:"View components"}},{id:l,className:"fa fa-eye",command:l,context:l,attributes:{title:"Preview"}},{id:a,className:"fa fa-arrows-alt",command:a,context:a,attributes:{title:"Fullscreen"}},{id:r,className:"fa fa-code",command:r,attributes:{title:"View code"}}]},{id:"views",buttons:[{id:"open-sm",className:"fa fa-paint-brush",command:"open-sm",active:!0,attributes:{title:"Open Style Manager"}},{id:"open-tm",className:"fa fa-cog",command:"open-tm",attributes:{title:"Settings"}},{id:o,className:"fa fa-bars",command:o,attributes:{title:"Open Layer Manager"}},{id:s,className:"fa fa-th-large",command:s,attributes:{title:"Open Blocks"}}]}],em:null,delayBtnsShow:300}},function(t,e,n){"use strict";var i=n(0);t.exports=i.Model.extend({defaults:{id:"",className:"",command:"",context:"",buttons:[],attributes:{},options:{},active:!1,dragDrop:!1,runDefaultCommand:!0,stopDefaultCommand:!1,disable:!1},initialize:function(t){if(this.get("buttons").length){var e=n(26);this.set("buttons",new e(this.get("buttons")))}}})},function(t,e,n){"use strict";var i=n(0),r=n(25);t.exports=i.Collection.extend({model:r})},function(t,e,n){"use strict";(function(e,i){var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o=e.$;t.exports=e.View.extend({tagName:"span",initialize:function(t){i.bindAll(this,"startTimer","stopTimer","showButtons","hideButtons","closeOnKeyPress","onDrop","initSorter","stopDrag");var e=this.model.get("className");this.config=t.config||{},this.em=this.config.em||{},this.pfx=this.config.stylePrefix||"",this.ppfx=this.config.pStylePrefix||"",this.id=this.pfx+this.model.get("id"),this.activeCls=this.pfx+"active",this.disableCls=this.pfx+"active",this.btnsVisCls=this.pfx+"visible",this.parentM=t.parentM||null,this.className=this.pfx+"btn"+(e?" "+e:""),this.listenTo(this.model,"change:active updateActive",this.updateActive),this.listenTo(this.model,"checkActive",this.checkActive),this.listenTo(this.model,"change:bntsVis",this.updateBtnsVis),this.listenTo(this.model,"change:attributes",this.updateAttributes),this.listenTo(this.model,"change:className",this.updateClassName),this.listenTo(this.model,"change:disable",this.updateDisable),this.model.get("buttons").length&&(this.$el.on("mousedown",this.startTimer),this.$el.append(o("
",{class:this.pfx+"arrow-rd"}))),this.em&&this.em.get&&(this.commands=this.em.get("Commands")),this.events={},this.model.get("dragDrop")?(this.events.mousedown="initDrag",this.em.on("loaded",this.initSorter)):this.events.click="clicked",this.delegateEvents()},initSorter:function(){if(this.em.Canvas){var t=this.em.Canvas;this.canvasEl=t.getBody(),this.sorter=new this.em.Utils.Sorter({container:this.canvasEl,placer:t.getPlacerEl(),containerSel:"*",itemSel:"*",pfx:this.ppfx,onMove:this.onDrag,onEndMove:this.onDrop,document:t.getFrameEl().contentDocument,direction:"a",wmargin:1,nested:1});var e=t.getOffset();this.sorter.offTop=e.top,this.sorter.offLeft=e.left}},initDrag:function(){this.model.collection.deactivateAll(this.model.get("context")),this.sorter.startSort(this.el),this.sorter.setDropContent(this.model.get("options").content),this.canvasEl.style.cursor="grabbing",o(document).on("mouseup",this.stopDrag)},stopDrag:function(){o(document).off("mouseup",this.stopDrag),this.sorter.endMove()},onDrag:function(t){},onDrop:function(t){this.canvasEl.style.cursor="default"},updateClassName:function(){var t=this.model.get("className");this.$el.attr("class",this.pfx+"btn"+(t?" "+t:""))},updateAttributes:function(){this.$el.attr(this.model.get("attributes"))},updateBtnsVis:function(){this.$buttons&&(this.model.get("bntsVis")?this.$buttons.addClass(this.btnsVisCls):this.$buttons.removeClass(this.btnsVisCls))},startTimer:function(){this.timeout=setTimeout(this.showButtons,this.config.delayBtnsShow),o(document).on("mouseup",this.stopTimer)},stopTimer:function(){o(document).off("mouseup",this.stopTimer),this.timeout&&clearTimeout(this.timeout)},showButtons:function(){clearTimeout(this.timeout),this.model.set("bntsVis",!0),o(document).on("mousedown",this.hideButtons),o(document).on("keypress",this.closeOnKeyPress)},hideButtons:function(t){t&&o(t.target).trigger("click"),this.model.set("bntsVis",!1),o(document).off("mousedown",this.hideButtons),o(document).off("keypress",this.closeOnKeyPress)},closeOnKeyPress:function(t){27==(t.which||t.keyCode)&&this.hideButtons()},updateActive:function(){var t=null,e=this.em&&this.em.get?this.em.get("Editor"):null,n=this.model.get("command");this.commands&&"string"==typeof n?t=this.commands.get(n):null!==n&&"object"===(void 0===n?"undefined":r(n))?t=n:"function"==typeof n&&(t={run:n}),this.model.get("active")?(this.model.collection.deactivateAll(this.model.get("context")),this.model.set("active",!0,{silent:!0}).trigger("checkActive"),this.parentM&&this.parentM.set("active",!0,{silent:!0}).trigger("checkActive"),t&&t.run&&(t.run(e,this.model,this.model.get("options")),e.trigger("run:"+n))):(this.$el.removeClass(this.activeCls),this.model.collection.deactivateAll(this.model.get("context")),this.parentM&&this.parentM.set("active",!1,{silent:!0}).trigger("checkActive"),t&&t.stop&&(t.stop(e,this.model,this.model.get("options")),e.trigger("stop:"+n)))},updateDisable:function(){this.model.get("disable")?this.$el.addClass(this.disableCls):this.$el.removeClass(this.disableCls)},checkActive:function(){this.model.get("active")?this.$el.addClass(this.activeCls):this.$el.removeClass(this.activeCls)},clicked:function(t){this.model.get("bntsVis")||this.model.get("disable")||this.toogleActive()},toogleActive:function(){this.parentM&&this.swapParent();var t=this.model.get("active");this.model.set("active",!t);this.em.get("Commands").get("select-comp");t?this.model.get("runDefaultCommand")&&this.em.runDefault():this.model.get("stopDefaultCommand")&&this.em.stopDefault()},swapParent:function(){this.parentM.collection.deactivateAll(this.model.get("context")),this.parentM.set("attributes",this.model.get("attributes")),this.parentM.set("options",this.model.get("options")),this.parentM.set("command",this.model.get("command")),this.parentM.set("className",this.model.get("className")),this.parentM.set("active",!0,{silent:!0}).trigger("checkActive")},render:function(){if(this.updateAttributes(),this.$el.attr("class",this.className),this.model.get("buttons").length){var t=n(28),e=new t({collection:this.model.get("buttons"),config:this.config,parentM:this.model});this.$buttons=e.render().$el,this.$buttons.append(o("
",{class:this.pfx+"arrow-l"})),this.$el.append(this.$buttons)}return this}})}).call(e,n(0),n(1))},function(t,e,n){"use strict";var i=n(0),r=n(27);t.exports=i.View.extend({initialize:function(t){this.opt=t||{},this.config=this.opt.config||{},this.pfx=this.config.stylePrefix||"",this.listenTo(this.collection,"add",this.addTo),this.listenTo(this.collection,"reset",this.render),this.className=this.pfx+"panels"},addTo:function(t){this.addToCollection(t)},addToCollection:function(t,e){var n=e||null,i=new r({model:t,config:this.config}),o=i.render().el,s=t.get("appendTo");if(s){document.querySelector(s).appendChild(o)}else n?n.appendChild(o):this.$el.append(o);return i.initResize(),o},render:function(){var t=document.createDocumentFragment();return this.$el.empty(),this.collection.each(function(e){this.addToCollection(e,t)},this),this.$el.append(t),this.$el.attr("class",this.className),this}})},function(t,e,n){"use strict";var i=n(111),r=function(t){return t&&t.__esModule?t:{default:t}}(i),o=n(2);t.exports=function(){var t={},e=n(112),i=void 0,s=void 0,a=void 0,l=void 0,c=function(){var t=i.style;t.top="-100px",t.left="-100px",t.display="none"};return{customRte:null,name:"RichTextEditor",init:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t=n;for(var r in e)r in t||(t[r]=e[r]);var a=t.pStylePrefix;return a&&(t.stylePrefix=a+t.stylePrefix),this.pfx=t.stylePrefix,s=t.actions||[],i=document.createElement("div"),i.className=a+"rte-toolbar",l=this.initRte(document.createElement("div")),(0,o.on)(i,"mousedown",function(t){return t.stopPropagation()}),this},postRender:function(t){var e=t.model.get("Canvas");i.style.pointerEvents="all",c(),e.getToolsEl().appendChild(i)},initRte:function(e){var n=this.pfx,o=i,s=this.actionbar,a=this.actions||t.actions,c={actionbar:n+"actionbar",button:n+"action",active:n+"active"},u=new r.default({el:e,classes:c,actions:a,actionbar:s,actionbarContainer:o});return l&&l.setEl(e),u.actionbar&&(this.actionbar=u.actionbar),u.actions&&(this.actions=u.actions),u},add:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e.name=t,l.addAction(e,{sync:1})},get:function(t){var e=void 0;return l.getActions().forEach(function(n){n.name==t&&(e=n)}),e},getAll:function(){return l.getActions()},remove:function(t){var e=this.getAll(),n=this.get(t);if(n){var i=n.btn,r=e.indexOf(n);i.parentNode.removeChild(i),e.splice(r,1)}return n},getToolbarEl:function(){return i},udpatePosition:function(){var e=t.em.get("Canvas"),n=e.getTargetToElementDim(i,a,{event:"rteToolbarPosUpdate"});t.adjustToolbar&&n.top<=n.canvasTop&&(n.top=n.elementTop+n.elementHeight);var r=i.style;r.top=n.top+"px",r.left=n.left+"px"},enable:function(e,n){a=e.el;var r=t.em,o=e.getChildrenContainer(),s=this.customRte;if(i.style.display="",n=s?s.enable(o,n):this.initRte(o).enable(),r){setTimeout(this.udpatePosition.bind(this),0);var l="change:canvasOffset canvasScroll";r.off(l,this.udpatePosition,this),r.on(l,this.udpatePosition,this),r.trigger("rte:enable",e,n)}return n},disable:function(e,n){var i=t.em,r=this.customRte,o=e.getChildrenContainer();r?r.disable(o,n):n.disable(),c(),i&&i.trigger("rte:disable",e,n)}}}},function(t,e,n){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var r=Object.assign||function(t){for(var e=1;eB",attributes:{title:"Bold"},result:function(t){return t.exec("bold")}},italic:{name:"italic",icon:"I",attributes:{title:"Italic"},result:function(t){return t.exec("italic")}},underline:{name:"underline",icon:"U",attributes:{title:"Underline"},result:function(t){return t.exec("underline")}},strikethrough:{name:"strikethrough",icon:"S",attributes:{title:"Strike-through"},result:function(t){return t.exec("strikeThrough")}},link:{icon:'⫘',name:"link",attributes:{style:"font-size:1.4rem;padding:0 4px 2px;",title:"Link"},result:function(t){return t.insertHTML(''+t.selection()+"")}}},c=function(){function t(){var e=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};i(this,t);var o=n.el;if(o[a])return o[a];o[a]=this,this.setEl(o),this.updateActiveActions=this.updateActiveActions.bind(this);var s=n.actions||[];s.forEach(function(t,e){"string"==typeof t?t=l[t]:l[t.name]&&(t=r({},l[t.name],t)),s[e]=t});var c=s.length?s:Object.keys(l).map(function(t){return l[t]});n.classes=r({actionbar:"actionbar",button:"action",active:"active"},n.classes);var u=n.classes,h=n.actionbar;if(this.actionbar=h,this.settings=n,this.classes=u,this.actions=c,!h){var d=n.actionbarContainer;h=document.createElement("div"),h.className=u.actionbar,d.appendChild(h),this.actionbar=h,c.forEach(function(t){return e.addAction(t)})}return n.styleWithCSS&&this.exec("styleWithCSS"),this.syncActions(),this}return o(t,[{key:"setEl",value:function(t){this.el=t,this.doc=t.ownerDocument}},{key:"updateActiveActions",value:function(){var t=this;this.getActions().forEach(function(e){var n=e.btn,i=e.update,r=t.classes.active,o=e.name,s=t.doc;n.className=n.className.replace(r,"").trim(),s.queryCommandState(o)&&(n.className+=" "+r),i&&i(t,e)})}},{key:"enable",value:function(){return this.enabled?this:(this.actionbarEl().style.display="",this.el.contentEditable=!0,(0,s.on)(this.el,"mouseup keyup",this.updateActiveActions),this.syncActions(),this.updateActiveActions(),this.el.focus(),this.enabled=1,this)}},{key:"disable",value:function(){return this.actionbarEl().style.display="none",this.el.contentEditable=!1,(0,s.off)(this.el,"mouseup keyup",this.updateActiveActions),this.enabled=0,this}},{key:"syncActions",value:function(){var t=this;this.getActions().forEach(function(e){var n=e.event||"click";e.btn["on"+n]=function(n){e.result(t,e),t.updateActiveActions()}})}},{key:"addAction",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.sync,i=document.createElement("span"),r=t.icon,o=t.attributes||{};i.className=this.classes.button,t.btn=i;for(var s in o)i.setAttribute(s,o[s]);"string"==typeof r?i.innerHTML=r:i.appendChild(r),this.actionbarEl().appendChild(i),n&&(this.actions.push(t),this.syncActions())}},{key:"getActions",value:function(){return this.actions}},{key:"selection",value:function(){return this.doc.getSelection()}},{key:"exec",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;this.doc.execCommand(t,!1,e)}},{key:"actionbarEl",value:function(){return this.actionbar}},{key:"insertHTML",value:function(t){var e=void 0,n=this.doc,i=n.getSelection();if(i&&i.rangeCount){var r=n.createElement("div"),o=i.getRangeAt(0);o.deleteContents(),r.innerHTML=t,Array.prototype.slice.call(r.childNodes).forEach(function(t){o.insertNode(t),e=t}),i.removeAllRanges(),i.addRange(o),this.el.focus()}}}]),t}();e.default=c},function(t,e,n){"use strict";t.exports={stylePrefix:"rte-",adjustToolbar:1,actions:["bold","italic","underline","strikethrough","link"]}},function(t,e,n){"use strict";t.exports={stylePrefix:"sm-",sectors:[],textNoElement:"Select an element before using Style Manager",hideNotStylable:!0,highlightChanged:!0,highlightComputed:!0,showComputed:!0,clearProperties:!1,avoidComputed:["width","height"]}},function(t,e,n){"use strict";var i=n(115);t.exports=n(0).Collection.extend({model:i})},function(t,e,n){"use strict";var i=n(1),r=n(0),o=n(10),s=n(124);t.exports=r.Model.extend({defaults:{id:"",name:"",open:!0,buildProps:"",extendBuilded:1,properties:[]},initialize:function(t){var e=t||{},n=[],i=this.buildProperties(e.buildProps);!this.get("id")&&this.set("id",this.get("name")),n=i?this.extendProperties(i):this.get("properties");var r=new o(n);r.sector=this,this.set("properties",r)},extendProperties:function(t,e,n){for(var r=t.length,o=e||this.get("properties"),s=this.get("extendBuilded"),a=[],l=0,c=o.length;l')}else{o.push(t("
").append(t('').attr("title",r.noColorSelectedText)).html())}}return"
"+o.join("")+"
"}function r(){for(var t=0;t1&&(delete window.localStorage[B],t.each(e,function(t,e){p(e)}))}catch(t){}try{mt=window.localStorage[B].split(";")}catch(t){}}}function p(e){if(j){var n=st(e).toRgbString();if(!gt[n]&&-1===t.inArray(n,mt))for(mt.push(n);mt.length>vt;)mt.shift();if(B&&window.localStorage)try{window.localStorage[B]=mt.join(";")}catch(t){}}}function g(){var t=[];if(H.showPalette)for(var e=0;eMath.abs(e-r);bt=o?"x":"y"}}else bt=null;var s=!bt||"x"===bt,a=!bt||"y"===bt;s&&(ut=parseFloat(t/tt)),a&&(ht=parseFloat((et-e)/et)),Yt=!1,H.showAlpha||(dt=1),L()},y,b),Ut?(E(Ut),O(),Kt=H.preferredFormat||st(Ut).format,p(Ut)):O(),V&&C();var i=G?"mousedown.spectrum":"click.spectrum touchstart.spectrum";Dt.delegate(".sp-thumb-el",i,e),It.delegate(".sp-thumb-el:nth-child(1)",i,{ignore:!0},e)}();var Jt={show:C,hide:T,toggle:w,reflow:I,option:F,enable:$,disable:z,offset:R,set:function(t){E(t),D()},get:P,destroy:_,container:kt};return Jt.id=K.push(Jt)-1,Jt}function a(e,n){var i=e.outerWidth(),r=e.outerHeight(),o=n.outerHeight(),s=e[0].ownerDocument,a=s.documentElement,l=a.clientWidth,c=a.clientHeight,u=t(s).scrollLeft(),h=t(s).scrollTop(),d=l+u,f=c+h,p=n.offset();return p.top+=o,p.left-=Math.min(p.left,p.left+i>d&&d>i?Math.abs(p.left+i-d):0),p.top-=Math.min(p.top,p.top+r>f&&f>r?Math.abs(r+o-0):0),p}function l(){}function c(t){t.stopPropagation()}function u(t,e){var n=Array.prototype.slice,i=n.call(arguments,2);return function(){return t.apply(e,i.concat(n.call(arguments)))}}function h(e,n,i,r){function o(t){t.stopPropagation&&t.stopPropagation(),t.preventDefault&&t.preventDefault(),t.returnValue=!1}function s(t){if(u){if(G&&c.documentMode<9&&!t.button)return l();var i=t.originalEvent&&t.originalEvent.touches&&t.originalEvent.touches[0],r=i&&i.pageX||t.pageX,s=i&&i.pageY||t.pageY,a=Math.max(0,Math.min(r-h.left,f)),g=Math.max(0,Math.min(s-h.top,d));p&&o(t),n.apply(e,[a,g,t])}}function a(n){(n.which?3==n.which:2==n.button)||u||!1!==i.apply(e,arguments)&&(u=!0,d=t(e).height(),f=t(e).width(),h=t(e).offset(),t(c).bind(g),t(c.body).addClass("sp-dragging"),s(n),o(n))}function l(){u&&(t(c).unbind(g),t(c.body).removeClass("sp-dragging"),setTimeout(function(){r.apply(e,arguments)},0)),u=!1}n=n||function(){},i=i||function(){},r=r||function(){};var c=document,u=!1,h={},d=0,f=0,p="ontouchstart"in window,g={};g.selectstart=o,g.dragstart=o,g["touchmove mousemove"]=s,g["touchend mouseup"]=l,t(e).bind("touchstart mousedown",a)}function d(t,e,n){var i;return function(){var r=this,o=arguments,s=function(){i=null,t.apply(r,o)};n&&clearTimeout(i),!n&&i||(i=setTimeout(s,e))}}function f(){return t.fn.spectrum.inputTypeColorSupport()}function p(t){var n={r:0,g:0,b:0},i=1,r=!1,o=!1;return"string"==typeof t&&(t=U(t)),"object"==(void 0===t?"undefined":e(t))&&(t.hasOwnProperty("r")&&t.hasOwnProperty("g")&&t.hasOwnProperty("b")?(n=g(t.r,t.g,t.b),r=!0,o="%"===String(t.r).substr(-1)?"prgb":"rgb"):t.hasOwnProperty("h")&&t.hasOwnProperty("s")&&t.hasOwnProperty("v")?(t.s=j(t.s),t.v=j(t.v),n=b(t.h,t.s,t.v),r=!0,o="hsv"):t.hasOwnProperty("h")&&t.hasOwnProperty("s")&&t.hasOwnProperty("l")&&(t.s=j(t.s),t.l=j(t.l),n=v(t.h,t.s,t.l),r=!0,o="hsl"),t.hasOwnProperty("a")&&(i=t.a)),i=_(i),{ok:r,format:t.format||o,r:it(255,rt(n.r,0)),g:it(255,rt(n.g,0)),b:it(255,rt(n.b,0)),a:i}}function g(t,e,n){return{r:255*F(t,255),g:255*F(e,255),b:255*F(n,255)}}function m(t,e,n){t=F(t,255),e=F(e,255),n=F(n,255);var i,r,o=rt(t,e,n),s=it(t,e,n),a=(o+s)/2;if(o==s)i=r=0;else{var l=o-s;switch(r=a>.5?l/(2-o-s):l/(o+s),o){case t:i=(e-n)/l+(e1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+(e-t)*(2/3-n)*6:t}var r,o,s;if(t=F(t,360),e=F(e,100),n=F(n,100),0===e)r=o=s=n;else{var a=n<.5?n*(1+e):n+e-n*e,l=2*n-a;r=i(l,a,t+1/3),o=i(l,a,t),s=i(l,a,t-1/3)}return{r:255*r,g:255*o,b:255*s}}function y(t,e,n){t=F(t,255),e=F(e,255),n=F(n,255);var i,r,o=rt(t,e,n),s=it(t,e,n),a=o,l=o-s;if(r=0===o?0:l/o,o==s)i=0;else{switch(o){case t:i=(e-n)/l+(e>1)+720)%360;--e;)i.h=(i.h+r)%360,o.push(st(i));return o}function I(t,e){e=e||6;for(var n=st(t).toHsv(),i=n.h,r=n.s,o=n.v,s=[],a=1/e;e--;)s.push(st({h:i,s:r,v:o})),o=(o+a)%1;return s}function _(t){return t=parseFloat(t),(isNaN(t)||t<0||t>1)&&(t=1),t}function F(t,e){R(t)&&(t="100%");var n=H(t);return t=it(e,rt(0,parseFloat(t))),n&&(t=parseInt(t*e,10)/100),et.abs(t-e)<1e-6?1:t%e/parseFloat(e)}function $(t){return it(1,rt(0,t))}function z(t){return parseInt(t,16)}function R(t){return"string"==typeof t&&-1!=t.indexOf(".")&&1===parseFloat(t)}function H(t){return"string"==typeof t&&-1!=t.indexOf("%")}function V(t){return 1==t.length?"0"+t:""+t}function j(t){return t<=1&&(t=100*t+"%"),t}function B(t){return Math.round(255*parseFloat(t)).toString(16)}function W(t){return z(t)/255}function U(t){t=t.replace(Z,"").replace(Q,"").toLowerCase();var e=!1;if(at[t])t=at[t],e=!0;else if("transparent"==t)return{r:0,g:0,b:0,a:0,format:"name"};var n;return(n=ct.rgb.exec(t))?{r:n[1],g:n[2],b:n[3]}:(n=ct.rgba.exec(t))?{r:n[1],g:n[2],b:n[3],a:n[4]}:(n=ct.hsl.exec(t))?{h:n[1],s:n[2],l:n[3]}:(n=ct.hsla.exec(t))?{h:n[1],s:n[2],l:n[3],a:n[4]}:(n=ct.hsv.exec(t))?{h:n[1],s:n[2],v:n[3]}:(n=ct.hsva.exec(t))?{h:n[1],s:n[2],v:n[3],a:n[4]}:(n=ct.hex8.exec(t))?{a:W(n[1]),r:z(n[2]),g:z(n[3]),b:z(n[4]),format:e?"name":"hex8"}:(n=ct.hex6.exec(t))?{r:z(n[1]),g:z(n[2]),b:z(n[3]),format:e?"name":"hex"}:!!(n=ct.hex3.exec(t))&&{r:z(n[1]+""+n[1]),g:z(n[2]+""+n[2]),b:z(n[3]+""+n[3]),format:e?"name":"hex"}}var q={beforeShow:l,move:l,change:l,show:l,hide:l,color:!1,flat:!1,showInput:!1,allowEmpty:!1,showButtons:!0,clickoutFiresChange:!0,showInitial:!1,showPalette:!1,showPaletteOnly:!1,hideAfterPaletteSelect:!1,togglePaletteOnly:!1,showSelectionPalette:!0,localStorageKey:!1,appendTo:"body",maxSelectionSize:7,cancelText:"cancel",chooseText:"choose",togglePaletteMoreText:"more",togglePaletteLessText:"less",clearText:"Clear Color Selection",noColorSelectedText:"No Color Selected",preferredFormat:!1,className:"",containerClassName:"",replacerClassName:"",showAlpha:!1,theme:"sp-light",palette:[["#ffffff","#000000","#ff0000","#ff8000","#ffff00","#008000","#0000ff","#4b0082","#9400d3"]],selectionPalette:[],disabled:!1,offset:null},K=[],G=!!/msie/i.exec(window.navigator.userAgent),Y=function(){function t(t,e){return!!~(""+t).indexOf(e)}var e=document.createElement("div"),n=e.style;return n.cssText="background-color:rgba(0,0,0,.5)",t(n.backgroundColor,"rgba")||t(n.backgroundColor,"hsla")}(),X=["
","
","
▼
","
"].join(""),J=function(){var t="";if(G)for(var e=1;e<=6;e++)t+="
";return["
","
","
","
","","
","
","
","
","
","
","
","
","
","
","
","
","
","
","
","
","
",t,"
","
","
","
","
","","
","
","
","","","
","
","
"].join("")}();t.fn.spectrum=function(e,n){if("string"==typeof e){var i=this,r=Array.prototype.slice.call(arguments,1);return this.each(function(){var n=K[t(this).data("spectrum.id")];if(n){var o=n[e];if(!o)throw new Error("Spectrum: no such method: '"+e+"'");"get"==e?i=n.get():"container"==e?i=n.container:"option"==e?i=n.option.apply(n,r):"destroy"==e?(n.destroy(),t(this).removeData("spectrum.id")):o.apply(n,r)}}),i}return this.spectrum("destroy").each(function(){var n=t.extend({},e,t(this).data()),i=s(this,n);t(this).data("spectrum.id",i.id)})},t.fn.spectrum.load=!0,t.fn.spectrum.loadOpts={},t.fn.spectrum.draggable=h,t.fn.spectrum.defaults=q,t.fn.spectrum.inputTypeColorSupport=function e(){if(void 0===e._cachedResult){var n=t("")[0];e._cachedResult="color"===n.type&&""!==n.value}return e._cachedResult},t.spectrum={},t.spectrum.localization={},t.spectrum.palettes={},t.fn.spectrum.processNativeColorInputs=function(){var e=t("input[type=color]");e.length&&!f()&&e.spectrum({preferredFormat:"hex6"})};var Z=/^[\s,#]+/,Q=/\s+$/,tt=0,et=Math,nt=et.round,it=et.min,rt=et.max,ot=et.random,st=function t(e,n){if(e=e||"",n=n||{},e instanceof t)return e;if(!(this instanceof t))return new t(e,n);var i=p(e);this._originalInput=e,this._r=i.r,this._g=i.g,this._b=i.b,this._a=i.a,this._roundA=nt(100*this._a)/100,this._format=n.format||i.format,this._gradientType=n.gradientType,this._r<1&&(this._r=nt(this._r)),this._g<1&&(this._g=nt(this._g)),this._b<1&&(this._b=nt(this._b)),this._ok=i.ok,this._tc_id=tt++};st.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var t=this.toRgb();return(299*t.r+587*t.g+114*t.b)/1e3},setAlpha:function(t){return this._a=_(t),this._roundA=nt(100*this._a)/100,this},toHsv:function(){var t=y(this._r,this._g,this._b);return{h:360*t.h,s:t.s,v:t.v,a:this._a}},toHsvString:function(){var t=y(this._r,this._g,this._b),e=nt(360*t.h),n=nt(100*t.s),i=nt(100*t.v);return 1==this._a?"hsv("+e+", "+n+"%, "+i+"%)":"hsva("+e+", "+n+"%, "+i+"%, "+this._roundA+")"},toHsl:function(){var t=m(this._r,this._g,this._b);return{h:360*t.h,s:t.s,l:t.l,a:this._a}},toHslString:function(){var t=m(this._r,this._g,this._b),e=nt(360*t.h),n=nt(100*t.s),i=nt(100*t.l);return 1==this._a?"hsl("+e+", "+n+"%, "+i+"%)":"hsla("+e+", "+n+"%, "+i+"%, "+this._roundA+")"},toHex:function(t){return x(this._r,this._g,this._b,t)},toHexString:function(t){return"#"+this.toHex(t)},toHex8:function(){return w(this._r,this._g,this._b,this._a)},toHex8String:function(){return"#"+this.toHex8()},toRgb:function(){return{r:nt(this._r),g:nt(this._g),b:nt(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+nt(this._r)+", "+nt(this._g)+", "+nt(this._b)+")":"rgba("+nt(this._r)+", "+nt(this._g)+", "+nt(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:nt(100*F(this._r,255))+"%",g:nt(100*F(this._g,255))+"%",b:nt(100*F(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+nt(100*F(this._r,255))+"%, "+nt(100*F(this._g,255))+"%, "+nt(100*F(this._b,255))+"%)":"rgba("+nt(100*F(this._r,255))+"%, "+nt(100*F(this._g,255))+"%, "+nt(100*F(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(lt[x(this._r,this._g,this._b,!0)]||!1)},toFilter:function(t){var e="#"+w(this._r,this._g,this._b,this._a),n=e,i=this._gradientType?"GradientType = 1, ":"";if(t){n=st(t).toHex8String()}return"progid:DXImageTransform.Microsoft.gradient("+i+"startColorstr="+e+",endColorstr="+n+")"},toString:function(t){var e=!!t;t=t||this._format;var n=!1,i=this._a<1&&this._a>=0;return e||!i||"hex"!==t&&"hex6"!==t&&"hex3"!==t&&"name"!==t?("rgb"===t&&(n=this.toRgbString()),"prgb"===t&&(n=this.toPercentageRgbString()),"hex"!==t&&"hex6"!==t||(n=this.toHexString()),"hex3"===t&&(n=this.toHexString(!0)),"hex8"===t&&(n=this.toHex8String()),"name"===t&&(n=this.toName()),"hsl"===t&&(n=this.toHslString()),"hsv"===t&&(n=this.toHsvString()),n||this.toHexString()):"name"===t&&0===this._a?this.toName():this.toRgbString()},_applyModification:function(t,e){var n=t.apply(null,[this].concat([].slice.call(e)));return this._r=n._r,this._g=n._g,this._b=n._b,this.setAlpha(n._a),this},lighten:function(){return this._applyModification(T,arguments)},brighten:function(){return this._applyModification(M,arguments)},darken:function(){return this._applyModification(E,arguments)},desaturate:function(){return this._applyModification(C,arguments)},saturate:function(){return this._applyModification(k,arguments)},greyscale:function(){return this._applyModification(S,arguments)},spin:function(){return this._applyModification(P,arguments)},_applyCombination:function(t,e){return t.apply(null,[this].concat([].slice.call(e)))},analogous:function(){return this._applyCombination(D,arguments)},complement:function(){return this._applyCombination(A,arguments)},monochromatic:function(){return this._applyCombination(I,arguments)},splitcomplement:function(){return this._applyCombination(N,arguments)},triad:function(){return this._applyCombination(L,arguments)},tetrad:function(){return this._applyCombination(O,arguments)}},st.fromRatio=function(t,n){if("object"==(void 0===t?"undefined":e(t))){var i={};for(var r in t)t.hasOwnProperty(r)&&(i[r]="a"===r?t[r]:j(t[r]));t=i}return st(t,n)},st.equals=function(t,e){return!(!t||!e)&&st(t).toRgbString()==st(e).toRgbString()},st.random=function(){return st.fromRatio({r:ot(),g:ot(),b:ot()})},st.mix=function(t,e,n){n=0===n?0:n||50;var i,r=st(t).toRgb(),o=st(e).toRgb(),s=n/100,a=2*s-1,l=o.a-r.a;i=a*l==-1?a:(a+l)/(1+a*l),i=(i+1)/2;var c=1-i,u={r:o.r*i+r.r*c,g:o.g*i+r.g*c,b:o.b*i+r.b*c,a:o.a*s+r.a*(1-s)};return st(u)},st.readability=function(t,e){var n=st(t),i=st(e),r=n.toRgb(),o=i.toRgb(),s=n.getBrightness(),a=i.getBrightness(),l=Math.max(r.r,o.r)-Math.min(r.r,o.r)+Math.max(r.g,o.g)-Math.min(r.g,o.g)+Math.max(r.b,o.b)-Math.min(r.b,o.b);return{brightness:Math.abs(s-a),color:l}},st.isReadable=function(t,e){var n=st.readability(t,e);return n.brightness>125&&n.color>500},st.mostReadable=function(t,e){for(var n=null,i=0,r=!1,o=0;o125&&s.color>500,l=s.brightness/125*3+s.color/500;(a&&!r||a&&r&&l>i||!a&&!r&&l>i)&&(r=a,i=l,n=st(e[o]))}return n};var at=st.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},lt=st.hexNames=function(t){var e={};for(var n in t)t.hasOwnProperty(n)&&(e[t[n]]=n);return e}(at),ct=function(){var t="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)",e="[\\s|\\(]+("+t+")[,|\\s]+("+t+")[,|\\s]+("+t+")\\s*\\)?",n="[\\s|\\(]+("+t+")[,|\\s]+("+t+")[,|\\s]+("+t+")[,|\\s]+("+t+")\\s*\\)?";return{rgb:new RegExp("rgb"+e),rgba:new RegExp("rgba"+n),hsl:new RegExp("hsl"+e),hsla:new RegExp("hsla"+n),hsv:new RegExp("hsv"+e),hsva:new RegExp("hsva"+n),hex3:/^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex8:/^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();window.tinycolor=st,t(function(){t.fn.spectrum.load&&t.fn.spectrum.processNativeColorInputs()})}(t.$)}()}).call(e,n(0))},function(t,e,n){"use strict";var i=n(0),r=n(121);t.exports=i.View.extend({initialize:function(t){this.config=t.config||{},this.stackModel=t.stackModel,this.preview=t.preview,this.pfx=this.config.stylePrefix||"",this.ppfx=this.config.pStylePrefix||"",this.propsConfig=t.propsConfig;var e=this.pfx,n=this.ppfx,i=this.collection;this.className=e+"layers "+n+"field",this.listenTo(i,"add",this.addTo),this.listenTo(i,"deselectAll",this.deselectAll),this.listenTo(i,"reset",this.render);var r=this.config.em||"",o=r?r.get("Utils"):"";this.sorter=o?new o.Sorter({container:this.el,ignoreViewChildren:1,containerSel:"."+e+"layers",itemSel:"."+e+"layer",pfx:this.config.pStylePrefix}):"",i.view=this,this.$el.data("model",i),this.$el.data("collection",i)},addTo:function(t){var e=this.collection.indexOf(t);this.addToCollection(t,null,e)},addToCollection:function(t,e,n){var i=e||null,o=this.stackModel,s=this.config,a=this.sorter,l=this.propsConfig;void 0!==this.preview&&t.set("preview",this.preview);var c=new r({model:t,config:s,sorter:a,stackModel:o,propsConfig:l}),u=c.render().el;if(i)i.appendChild(u);else if(void 0!==n){var h="before";this.$el.children().length==n&&(n--,h="after"),n<0?this.$el.append(u):this.$el.children().eq(n)[h](u)}else this.$el.append(u);return u},deselectAll:function(){this.$el.find("."+this.pfx+"layer").removeClass(this.pfx+"active")},render:function(){var t=document.createDocumentFragment();return this.$el.empty(),this.collection.each(function(e){this.addToCollection(e,t)},this),this.$el.append(t),this.$el.attr("class",this.className),this.sorter&&(this.sorter.plh=null),this}})},function(t,e,n){"use strict";(function(e){t.exports=e.View.extend({events:{click:"active","click [data-close-layer]":"remove","mousedown [data-move-layer]":"initSorter"},template:function(t){var e=this.pfx;return'\n
\n \n
\n
Layer '+t.get("index")+'
\n
\n \t
\n
\n
\n ⨯\n
\n
\n
\n '},initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.model;this.stackModel=t.stackModel||{},this.config=t.config||{},this.pfx=this.config.stylePrefix||"",this.sorter=t.sorter||null,this.propsConfig=t.propsConfig||{},this.customPreview=t.onPreview,this.listenTo(e,"destroy remove",this.remove),this.listenTo(e,"change:active",this.updateVisibility),this.listenTo(e.get("properties"),"change",this.updatePreview),e.get("preview")||this.$el.addClass(this.pfx+"no-preview"),e.view=this,e.set({droppable:0,draggable:1}),this.$el.data("model",e)},initSorter:function(t){this.sorter&&this.sorter.startSort(this.el)},remove:function(t){t&&t.stopPropagation&&t.stopPropagation();var n=this.model,i=n.collection,r=this.stackModel;e.View.prototype.remove.apply(this,arguments),i.contains(n)&&i.remove(n),r&&r.set&&(r.set({stackIndex:null},{silent:!0}),r.trigger("updateValue"))},onPreview:function(t){var e=t.split(" "),n=[];return this.model.get("properties").each(function(t,i){var r=e[i]||"";if(r&&"integer"==t.get("type")){var o=parseInt(r,10),s=r.replace(o,"");o=isNaN(o)?0:o,o=o>3?3:o,o=o<-3?-3:o,r=o+s}n.push(r)}),n.join(" ")},updatePreview:function(){var t=this.stackModel,e=this.customPreview,n=this.getPreviewEl(),i=this.model.getFullValue(),r=e?e(i):this.onPreview(i);r&&t&&n&&(n.style[t.get("property")]=r)},getPropertiesWrapper:function(){return this.propsWrapEl||(this.propsWrapEl=this.el.querySelector("[data-properties]")),this.propsWrapEl},getPreviewEl:function(){return this.previewEl||(this.previewEl=this.el.querySelector("[data-preview]")),this.previewEl},active:function(){var t=this.model,e=t.collection;e.active(e.indexOf(t))},updateVisibility:function(){var t=this.pfx,e=this.getPropertiesWrapper(),n=this.model.get("active");e.style.display=n?"":"none",this.$el[n?"addClass":"removeClass"](t+"active")},render:function(){var t=n(12),e=this.propsConfig,i=this.pfx+"layer",r=this.model,o=this.el,s=new t({collection:r.get("properties"),config:this.config,customValue:e.customValue,propTarget:e.propTarget,onChange:e.onChange}).render().el;return o.innerHTML=this.template(r),o.className=i,this.getPropertiesWrapper().appendChild(s),this.updateVisibility(),this.updatePreview(),this}})}).call(e,n(0))},function(t,e,n){"use strict";var i=Object.assign||function(t){for(var e=1;e\n \n
\n '},getSliderEl:function(){return this.slider||(this.slider=this.el.querySelector("input[type=range]")),this.slider},inputValueChanged:function(){var t=this.model,e=t.get("step");this.getInputEl().value=this.getSliderEl().value;var n=this.getInputValue()-e;t.set("value",n,{avoidStore:1}).set("value",n+e),this.elementUpdated()},inputValueChangedSoft:function(){this.getInputEl().value=this.getSliderEl().value,this.model.set("value",this.getInputValue(),{avoidStore:1}),this.elementUpdated()},setValue:function(t){this.getSliderEl().value=t,this.inputInst.setValue(t,{silent:1})},onRender:function(){i.prototype.onRender.apply(this,arguments),this.model.get("showInput")||(this.inputInst.el.style.display="none")}})},function(t,e,n){"use strict";n(0);t.exports=function(){return{build:function(t){var e=[];"string"==typeof t&&(t=[t]);for(var n=0,i=t.length;n\n \n <%= label %>\n
'),events:{"click [data-sector-title]":"toggle"},initialize:function(t){this.config=t.config||{},this.pfx=this.config.stylePrefix||"",this.target=t.target||{},this.propTarget=t.propTarget||{},this.caretR="fa-caret-right",this.caretD="fa-caret-down";var e=this.model;this.listenTo(e,"change:open",this.updateOpen),this.listenTo(e,"updateVisibility",this.updateVisibility)},updateVisibility:function(){var t;this.model.get("properties").each(function(e){e.get("visible")&&(t=1)}),this.el.style.display=t?"block":"none"},updateOpen:function(){this.model.get("open")?this.show():this.hide()},show:function(){this.$el.addClass(this.pfx+"open"),this.getPropertiesEl().style.display="",this.$caret.removeClass(this.caretR).addClass(this.caretD)},hide:function(){this.$el.removeClass(this.pfx+"open"),this.getPropertiesEl().style.display="none",this.$caret.removeClass(this.caretD).addClass(this.caretR)},getPropertiesEl:function(){return this.$el.find("."+this.pfx+"properties").get(0)},toggle:function(t){var e=this.model.get("open")?0:1;this.model.set("open",e)},render:function(){return this.$el.html(this.template({pfx:this.pfx,label:this.model.get("name")})),this.$caret=this.$el.find("#"+this.pfx+"caret"),this.renderProperties(),this.$el.attr("class",this.pfx+"sector no-select"),this.updateOpen(),this},renderProperties:function(){var t=this.model.get("properties");if(t){var e=new r({collection:t,target:this.target,propTarget:this.propTarget,config:this.config});this.$el.append(e.render().el)}}})}).call(e,n(1))},function(t,e,n){"use strict";t.exports=function(){var t={},e=n(128),i=n(129),r=n(132),o=n(43),s=void 0,a=void 0,l=void 0;return{name:"AssetManager",storageKey:"assets",getConfig:function(){return t},init:function(n){var c=this;t=n||{};for(var u in e)u in t||(t[u]=e[u]);var h=t.pStylePrefix,d=t.em;h&&(t.stylePrefix=h+t.stylePrefix),s=new i([]);var f={collection:new i([]),globalCollection:s,config:t};return l=new o(f),f.fu=l,a=new r(f),s.listenTo(s,"add",function(t){c.getAllVisible().add(t),d&&d.trigger("asset:add",t)}),s.listenTo(s,"remove",function(t){c.getAllVisible().remove(t),d&&d.trigger("asset:remove",t)}),this},add:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return void 0===e.at&&(e.at=0),s.add(t,e)},get:function(t){return s.where({src:t})[0]},getAll:function(){return s},getAllVisible:function(){return a.collection},remove:function(t){var e=this.get(t);return this.getAll().remove(e),this},store:function(e){var n={},i=JSON.stringify(this.getAll().toJSON());return n[this.storageKey]=i,!e&&t.stm&&t.stm.store(n),n},load:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.storageKey,n=t[e]||[];if("string"==typeof n)try{n=JSON.parse(t[e])}catch(t){}return n&&n.length&&this.getAll().reset(n),n},getContainer:function(){return a.el},getAssetsEl:function(){return a.el.querySelector("[data-el=assets]")},render:function(t){var e=t||this.getAll().models;return a.rendered||a.render(),a.collection.reset(e),this.getContainer()},addType:function(t,e){this.getAll().addType(t,e)},getType:function(t){return this.getAll().getType(t)},getTypes:function(){return this.getAll().getTypes()},AssetsView:function(){return a},FileUploader:function(){return l},onLoad:function(){this.getAll().reset(t.assets)},postRender:function(e){t.dropzone&&l.initDropzone(e)},setTarget:function(t){a.collection.target=t},onSelect:function(t){a.collection.onSelect=t},onClick:function(e){t.onClick=e},onDblClick:function(e){t.onDblClick=e}}}},function(t,e,n){"use strict";t.exports={assets:[],noAssets:"",stylePrefix:"am-",upload:0,uploadName:"files",headers:{},params:{},autoAdd:1,uploadText:"Drop files here or click to upload",addBtnText:"Add image",uploadFile:"",handleAdd:"",dropzone:1,openAssetsOnDrop:1,dropzoneContent:"",modalTitle:"Select Image",inputPlaceholder:"http://path/to/the/image.jpg"}},function(t,e,n){"use strict";var i=n(30),r=function(t){return t&&t.__esModule?t:{default:t}}(i);t.exports=n(0).Collection.extend(r.default).extend({types:[{id:"image",model:n(130),view:n(41),isType:function(t){return"string"==typeof t?{type:"image",src:t}:t}}]})},function(t,e,n){"use strict";var i=n(131);t.exports=i.extend({defaults:Object.assign({},i.prototype.defaults,{type:"image",unitDim:"px",height:0,width:0})})},function(t,e,n){"use strict";t.exports=n(0).Model.extend({idAttribute:"src",defaults:{type:"",src:""},getFilename:function(){return this.get("src").split("/").pop()},getExtension:function(){return this.getFilename().split(".").pop()}})},function(t,e,n){"use strict";(function(e){n(42),n(41),n(43);t.exports=e.View.extend({events:{submit:"handleSubmit"},template:function(t){var e=t.pfx,n=t.ppfx;return'\n
\n
\n
\n
\n \n
\n \n
\n
\n \n
\n
\n
\n
\n '},initialize:function(t){this.options=t,this.config=t.config,this.pfx=this.config.stylePrefix||"",this.ppfx=this.config.pStylePrefix||"";var e=this.collection;this.listenTo(e,"reset",this.renderAssets),this.listenTo(e,"add",this.addToAsset),this.listenTo(e,"remove",this.removedAsset),this.listenTo(e,"deselectAll",this.deselectAll)},handleSubmit:function(t){t.preventDefault();var e=this.getAddInput(),n=e.value.trim(),i=this.config.handleAdd;n&&(e.value="",this.getAssetsEl().scrollTop=0,i?i(n):this.options.globalCollection.add(n,{at:0}))},getAssetsEl:function(){return this.el.querySelector("."+this.pfx+"assets")},getAddInput:function(){return this.inputUrl&&this.inputUrl.value||(this.inputUrl=this.el.querySelector("."+this.pfx+"add-asset input")),this.inputUrl},removedAsset:function(t){this.collection.length||this.toggleNoAssets()},addToAsset:function(t){1==this.collection.length&&this.toggleNoAssets(1),this.addAsset(t)},addAsset:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=e,i=this.collection,r=this.config,o=new t.typeView({model:t,collection:i,config:r}).render().el;if(n)n.appendChild(o);else{var s=this.getAssetsEl();s&&s.insertBefore(o,s.firstChild)}return o},toggleNoAssets:function(t){var e=this.$el.find("."+this.pfx+"assets");if(t)e.empty();else{var n=this.config.noAssets;n&&e.append(n)}},deselectAll:function(){var t=this.pfx;this.$el.find("."+t+"highlight").removeClass(t+"highlight")},renderAssets:function(){var t=this,e=document.createDocumentFragment(),n=this.$el.find("."+this.pfx+"assets");n.empty(),this.toggleNoAssets(this.collection.length),this.collection.each(function(n){return t.addAsset(n,e)}),n.append(e)},render:function(){var t=this.options.fu.render().el;return this.$el.empty(),this.$el.append(t).append(this.template(this)),this.el.className=this.ppfx+"asset-manager",this.renderAssets(),this.rendered=1,this}})}).call(e,n(0))},function(t,e,n){"use strict";t.exports=function(){var t,e,i={},r=n(134),o=n(44),s=n(135),a=n(46),l=n(136);return{Selectors:a,name:"CssComposer",storageKey:function(){var t=[],e=i.stm&&i.stm.getConfig()||{};return e.storeCss&&t.push("css"),e.storeStyles&&t.push("styles"),t},init:function(n){i=n||{};for(var o in r)o in i||(i[o]=r[o]);var a=i.pStylePrefix;a&&(i.stylePrefix=a+i.stylePrefix);var c=i.em&&i.em.config.style||"";return i.rules=c||i.rules,i.sm=i.em,t=new s([],i),e=new l({collection:t,config:i}),this},onLoad:function(){t.add(i.rules)},postLoad:function(t){t.listenRules(this.getAll())},load:function(e){var n=e||"";!n&&i.stm&&(n=i.em.getCacheLoad());var r=n.styles||"";if(n.styles)try{r=JSON.parse(n.styles)}catch(t){}else n.css&&(r=i.em.get("Parser").parseCss(n.css));return r&&t.reset(r),r},store:function(e){if(i.stm){var n={},r=this.storageKey();return r.indexOf("css")>=0&&(n.css=i.em.getCss()),r.indexOf("styles")>=0&&(n.styles=JSON.stringify(t)),e||i.stm.store(n),n}},add:function(e,n,r,s){var a=n||"",l=r||"",c=s||{},u=this.get(e,a,l,c);return u||(c.state=a,c.mediaText=l,c.selectors="",u=new o(c,i),u.get("selectors").add(e),t.add(u),u)},get:function(e,n,i,r){var o=null;return t.each(function(t){o||t.compare(e,n,i,r)&&(o=t)}),o},getAll:function(){return t},addCollection:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=[],r=t instanceof Array?t:[t],o=0,s=r.length;o1&&void 0!==arguments[1]?arguments[1]:{};return"string"==typeof t&&(t=this.editor.get("Parser").parseCss(t)),e.em=this.editor,i.Collection.prototype.add.apply(this,[t,e])}})},function(t,e,n){"use strict";var i=n(0),r=n(137);t.exports=i.View.extend({initialize:function(t){this.config=t.config||{},this.pfx=this.config.stylePrefix||"",this.className=this.pfx+"rules",this.listenTo(this.collection,"add",this.addTo),this.listenTo(this.collection,"reset",this.render)},addTo:function(t){this.addToCollection(t)},addToCollection:function(t,e){var n=e||null,i=r,o=new i({model:t,config:this.config}),s=o.render().el;return n?n.appendChild(s):this.$el.append(s),s},render:function(){var t=document.createDocumentFragment();return this.$el.empty(),this.collection.each(function(e){this.addToCollection(e,t)},this),this.$el.append(t),this.$el.attr("class",this.className),this}})},function(t,e,n){"use strict";var i=n(0);t.exports=i.View.extend({tagName:"style",initialize:function(t){this.config=t.config||{},this.listenTo(this.model,"change:style",this.render),this.listenTo(this.model,"change:state",this.render),this.listenTo(this.model,"destroy remove",this.remove),this.listenTo(this.model,"change:mediaText",this.render),this.listenTo(this.model.get("selectors"),"change",this.selChanged)},selChanged:function(){this.selStr=this.renderSelectors(),this.render()},renderSelectors:function(){var t=[],e=this.model,n=e.get("selectorsAdd");e.get("selectors").each(function(e){t.push("."+e.get("name"))});var i=t.join("");return i+(i&&n?", ":"")+n},renderProperties:function(){var t=[],e=this.model.get("style");for(var n in e)t.push(n+":"+e[n]+";");return t.join("")},render:function(){var t="",e="";this.selStr||(this.selStr=this.renderSelectors());var n=this.renderProperties(),i=this.model.get("state"),r=this.model.get("mediaText");return this.selStr&&(i=i?":"+i:"",t=""!==n?"{"+n+"}":""),e=this.selStr&&t?this.selStr+i+t:"",r&&e&&(e="@media "+r+"{"+e+"}"),this.$el.html(e),this}})},function(t,e,n){"use strict";var i=n(1);t.exports=function(){var t={},e=n(139),r=n(140),o=void 0;return{TraitsView:r,name:"TraitManager",getConfig:function(){return t},init:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t=n,(0,i.defaults)(t,e);var s=t.pStylePrefix;return s&&(t.stylePrefix=""+s+t.stylePrefix),o=new r({collection:[],editor:t.em,config:t}),this},getTraitsViewer:function(){return o},addType:function(t,e){var n=o.itemView;o.itemsView[t]=n.extend(e)},getType:function(t){return o.itemsView[t]}}}},function(t,e,n){"use strict";t.exports={stylePrefix:"trt-",labelContainer:"Component settings",labelPlhText:"eg. Text here",labelPlhHref:"eg. https://google.com",optionsTarget:[{value:"",name:"This window"},{value:"_blank",name:"New window"}]}},function(t,e,n){"use strict";var i=n(47),r=n(7),o=n(141),s=n(142),a=n(143),l=n(144);t.exports=i.extend({itemView:r,itemsView:{text:r,number:a,select:o,checkbox:s,color:l},initialize:function(t){this.config=t.config||{},this.em=t.editor,this.pfx=this.config.stylePrefix||"",this.className=this.pfx+"traits",this.listenTo(this.em,"change:selectedComponent",this.updatedCollection),this.updatedCollection()},updatedCollection:function(){this.el.className=this.className;var t=this.em.get("selectedComponent");t&&(this.collection=t.get("traits"),this.render())}})},function(t,e,n){"use strict";(function(e,i){var r=n(7),o=e.$;t.exports=r.extend({initialize:function(t){r.prototype.initialize.apply(this,arguments);var e=this.ppfx;this.tmpl='
'},getInputEl:function(){if(!this.$input){var t=this.model,e=t.get("options")||[],n="",this.input=n,this.$input=o(this.input);var r=this.target,s=t.get("name"),a=t.get("value");if(t.get("changeProp"))a=a||r.get(s);else{a=r.get("attributes")[s]}a&&this.$input.val(a)}return this.$input.get(0)}})}).call(e,n(0),n(1))},function(t,e,n){"use strict";var i=n(7);t.exports=i.extend({initialize:function(t){i.prototype.initialize.apply(this,arguments);var e=this.ppfx+"chk-icon";this.tmpl='
'},onChange:function(){this.model.set("value",this.getInputEl().checked)},getInputEl:function(){var t;this.$input||(t=1);for(var e=arguments.length,n=Array(e),r=0;r0&&void 0!==arguments[0]?arguments[0]:"",e="";if(!t&&i.stm&&(t=i.em.getCacheLoad()),t.components)try{e=JSON.parse(t.components)}catch(t){}else t.html&&(e=t.html);var n=e&&e.constructor===Object;return(e&&e.length||n)&&(this.clear(),this.getComponents().reset(),n?this.getWrapper().set(e).initComponents().initClasses().loadTraits():this.getComponents().add(e)),e},store:function(t){if(i.stm){var e={},n=this.storageKey();if(n.indexOf("html")>=0&&(e.html=i.em.getHtml()),n.indexOf("components")>=0){var r=i.storeWrapper?this.getWrapper():this.getComponents();e.components=JSON.stringify(r)}return t||i.stm.store(e),e}},getComponent:function(){return t},getWrapper:function(){return this.getComponent()},getComponents:function(){return this.getWrapper().get("components")},addComponent:function(t){return this.getComponents().add(t)},render:function(){return e.render().el},clear:function(){for(var t=this.getComponents(),e=0,n=t.length;e1&&void 0!==arguments[1]?arguments[1]:{};this.em=e.em||""},setTarget:function(t){this.target=t},add:function(t,e){var n=this.em;if((0,i.isString)(t)||(0,i.isArray)(t)){var o=n&&n.get&&n.get("TraitManager"),a=o&&o.getConfig(),l=s(a);(0,i.isString)(t)&&(t=[t]);for(var c=0,u=t.length;c0&&void 0!==arguments[0]?arguments[0]:{};return{build:function(e){var n=[];"string"==typeof e&&(e=[e]);for(var i=0;is.top+s.height?s.top+s.height:g;var m={top:g,left:p,elementTop:s.top,elementLeft:s.left,elementWidth:s.width,elementHeight:s.height,targetWidth:t.offsetWidth,targetHeight:t.offsetHeight,canvasTop:o.top,canvasLeft:o.left};return h&&r.em&&r.em.trigger(h,m),m},getMouseRelativePos:function(t,e){var n=e||{},i=0,r=0,o=n.subWinOffset,s=t.target.ownerDocument,a=s.defaultView||s.parentWindow,l=a.frameElement,c=o?a.pageYOffset:0,u=o?a.pageXOffset:0;if(l){var h=l.getBoundingClientRect();i=h.top||0,r=h.left||0}return{y:t.clientY+i-c,x:t.clientX+r-u}},getMouseRelativeCanvas:function(t,e){var n=this.getFrameEl(),i=this.getBody(),r=n.offsetTop||0,o=n.offsetLeft||0,s=i.scrollTop||0,a=i.scrollLeft||0;return{y:t.clientY+r+s,x:t.clientX+o+a}},isInputFocused:function(){return"BODY"!==this.getFrameEl().contentDocument.activeElement.tagName},startAutoscroll:function(){this.dragging=1;var t=this.getScrollListeners();e=a.getFrameOffset(1),(0,i.on)(t,"mousemove",this.autoscroll),(0,i.on)(t,"mouseup",this.stopAutoscroll)},autoscroll:function(t){if(t.preventDefault(),this.dragging){var n=this.getFrameEl().contentWindow,i=n.document.body.scrollTop,r=i,o=t.clientY,s=e.height-50;o<50&&(r-=50-o),o>s&&(r+=o-s),n.scrollTo(0,r)}},stopAutoscroll:function(){this.dragging=0;var t=this.getScrollListeners();(0,i.off)(t,"mousemove",this.autoscroll),(0,i.off)(t,"mouseup",this.stopAutoscroll)},getScrollListeners:function(){return[this.getFrameEl().contentWindow,this.getElement()]},getFrameWrapperEl:function(){return a.frame.getWrapper()}}}},function(t,e,n){"use strict";t.exports={stylePrefix:"cv-",rulers:!1,scripts:[],styles:[],customBadgeLabel:""}},function(t,e,n){"use strict";var i=n(0),r=n(171);t.exports=i.Model.extend({defaults:{frame:"",wrapper:"",rulers:!1},initialize:function(t){var e=this.conf||{};this.set("frame",new r(e.frame))}})},function(t,e,n){"use strict";var i=n(0);t.exports=i.Model.extend({defaults:{wrapper:"",width:"",height:"",attributes:{}}})},function(t,e,n){"use strict";(function(e,i){var r=n(173),o=e.$;t.exports=e.View.extend({initialize:function(t){i.bindAll(this,"renderBody","onFrameScroll","clearOff"),this.config=t.config||{},this.em=this.config.em||{},this.ppfx=this.config.pStylePrefix||"",this.className=this.config.stylePrefix+"canvas",this.listenTo(this.em,"change:canvasOffset",this.clearOff),this.frame=new r({model:this.model.get("frame"),config:this.config})},isElInViewport:function(t){var e=t.getBoundingClientRect(),n=this.getFrameOffset(1),i=e.top,r=e.left;return i>=0&&r>=0&&i<=n.height&&r<=n.width},onFrameScroll:function(){var t=this.frame.el.contentDocument.body;this.toolsEl.style.top="-"+t.scrollTop+"px",this.toolsEl.style.left="-"+t.scrollLeft+"px",this.em.trigger("canvasScroll")},renderScripts:function(){var t=this.frame,e=this;t.el.onload=function(){function n(i){if(i.length>0){var r=document.createElement("script");r.type="text/javascript",r.src=i.shift(),r.onerror=r.onload=n.bind(null,i),t.el.contentDocument.head.appendChild(r)}else e.renderBody()}var i=e.config.scripts.slice(0);n(i)}},renderBody:function(){var t=this.model.get("frame").get("wrapper"),e=this.config.em;if(t){var n=this.ppfx,i=o(this.frame.el.contentWindow.document.body),r=e.get("CssComposer"),s=e.get("Config"),a=this.config,l=s.protectedCss,c="";a.styles.forEach(function(t){c+=''});var u="\n \n * {\n box-sizing: border-box;\n }\n html, body, #wrapper {\n min-height: 100%;\n }\n body {\n margin: 0;\n height: 100%;\n background-color: #fff\n }\n #wrapper {\n overflow: auto\n }\n \n\n ."+n+"dashed *[data-highlightable] {\n outline: 1px dashed rgba(170,170,170,0.7);\n outline-offset: -3px\n }\n\n ."+n+"comp-selected {\n outline: 3px solid #3b97e3 !important;\n }\n\n ."+n+"comp-selected-parent {\n outline: 2px solid #ffca6f !important\n }\n\n ."+n+"no-select {\n user-select: none;\n -webkit-user-select:none;\n -moz-user-select: none;\n }\n\n ."+n+"freezed {\n opacity: 0.5;\n pointer-events: none;\n }\n\n ."+n+"no-pointer {\n pointer-events: none;\n }\n\n ."+n+"plh-image {\n background: #f5f5f5;\n border: none;\n height: 50px;\n width: 50px;\n display: block;\n outline: 3px solid #ffca6f;\n cursor: pointer;\n outline-offset: -2px\n }\n\n ."+n+"grabbing {\n cursor: grabbing;\n cursor: -webkit-grabbing;\n }\n\n * ::-webkit-scrollbar-track {\n background: rgba(0, 0, 0, 0.1)\n }\n\n * ::-webkit-scrollbar-thumb {\n background: rgba(255, 255, 255, 0.2)\n }\n\n * ::-webkit-scrollbar {\n width: 10px\n }\n\n "+(s.canvasCss||"")+"\n "+(l||"")+"\n ";c&&i.append(c),i.append(""),i.append(t.render()).append(r.render()),i.append(this.getJsContainer()),e.trigger("loaded"),this.frame.el.contentWindow.onscroll=this.onFrameScroll,this.frame.udpateOffset();var h=document,d=this.frame.el.contentDocument,f=function(t){var e=new KeyboardEvent(t.type,t);return e.keyCodeVal=t.keyCode,["keyCode","which"].forEach(function(t){Object.defineProperty(e,t,{get:function(){return this.keyCodeVal}})}),e};d.addEventListener("keydown",function(t){h.dispatchEvent(f(t))}),d.addEventListener("keyup",function(t){h.dispatchEvent(f(t))})}},offset:function(t){var e=t.getBoundingClientRect(),n=t.ownerDocument.body;return{top:e.top+n.scrollTop,left:e.left+n.scrollLeft,width:e.width,height:e.height}},clearOff:function(){this.frmOff=null,this.cvsOff=null},getFrameOffset:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return this.frmOff&&!t||(this.frmOff=this.offset(this.frame.el)),this.frmOff},getCanvasOffset:function(){return this.cvsOff||(this.cvsOff=this.offset(this.el)),this.cvsOff},getElementPos:function(t,e){var n=e||{},i=this.getFrameOffset(),r=this.getCanvasOffset(),o=this.offset(t),s=n.avoidFrameOffset?0:i.top,a=n.avoidFrameOffset?0:i.left;return{top:o.top+s-r.top,left:o.left+a-r.left,height:t.offsetHeight||t.clientHeight,width:t.offsetWidth||t.clientWidth}},getPosition:function(){var t=this.frame.el.contentDocument.body,e=this.getFrameOffset(),n=this.getCanvasOffset();return{top:e.top+t.scrollTop-n.top,left:e.left+t.scrollLeft-n.left}},updateScript:function(t){t.scriptContainer||(t.scriptContainer=o("
"),this.getJsContainer().append(t.scriptContainer.get(0)));var e=t.model,n=e.getId();t.el.id=n,t.scriptContainer.html("");var i=document.createElement("script");i.innerText="\n setTimeout(function() {\n var item = document.getElementById('"+n+"');\n if (!item) return;\n (function(){"+e.getScriptString()+"}.bind(item))()\n }, 1);",t.scriptContainer.get(0).appendChild(i)},getJsContainer:function(){return this.jsContainer||(this.jsContainer=o('
').get(0)),this.jsContainer},render:function(){if(this.wrapper=this.model.get("wrapper"),this.wrapper&&"function"==typeof this.wrapper.render){this.model.get("frame").set("wrapper",this.wrapper),this.$el.append(this.frame.render().el);var t=this.frame;0===this.config.scripts.length?t.el.onload=this.renderBody:this.renderScripts()}var e=this.ppfx;this.$el.append('\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n ');var n=this.el,i=n.querySelector("#"+e+"tools");return this.hlEl=n.querySelector("."+e+"highlighter"),this.badgeEl=n.querySelector("."+e+"badge"),this.placerEl=n.querySelector("."+e+"placeholder"),this.ghostEl=n.querySelector("."+e+"ghost"),this.toolbarEl=n.querySelector("."+e+"toolbar"),this.resizerEl=n.querySelector("."+e+"resizer"),this.offsetEl=n.querySelector("."+e+"offset-v"),this.fixedOffsetEl=n.querySelector("."+e+"offset-fixed-v"),this.toolsEl=i,this.el.className=this.className,this}})}).call(e,n(0),n(1))},function(t,e,n){"use strict";var i=n(1),r="transitionend oTransitionEnd transitionend webkitTransitionEnd";t.exports=n(0).View.extend({tagName:"iframe",attributes:{src:"about:blank",allowfullscreen:"allowfullscreen"},initialize:function(t){(0,i.bindAll)(this,"udpateOffset"),this.config=t.config||{},this.ppfx=this.config.pStylePrefix||"",this.em=this.config.em,this.listenTo(this.em,"change:device",this.updateWidth)},updateWidth:function(t){var e=this.em,n=e.getDeviceModel();this.el.style.width=n?n.get("width"):"",this.udpateOffset(),e.stopDefault({preserveSelected:1}),this.$el.on(r,this.udpateOffset)},udpateOffset:function(){var t=this.em,e=t.get("Canvas").getOffset();t.set("canvasOffset",e),t.runDefault({preserveSelected:1}),this.$el.off(r,this.udpateOffset)},getBody:function(){this.$el.contents().find("body")},getWrapper:function(){return this.$el.contents().find("body > div")},render:function(){return this.$el.attr({class:this.ppfx+"frame"}),this}})},function(t,e,n){"use strict";t.exports=function(){var t={},e={},i={},r=n(175),o=n(176),s=function(t,n){return delete n.initialize,e[t]=o.extend(n),this};return{name:"Commands",init:function(e){t=e||{};for(var o in r)o in t||(t[o]=r[o]);var s=t.pStylePrefix;s&&(t.stylePrefix=s+t.stylePrefix);for(var a in t.defaults){var l=t.defaults[a];l.id&&this.add(l.id,l)}return i["select-comp"]=n(19),i["create-comp"]=n(20),i["delete-comp"]=n(181),i["image-comp"]=n(182),i["move-comp"]=n(183),i["text-comp"]=n(184),i["insert-custom"]=n(54),i["export-template"]=n(185),i["sw-visibility"]=n(186),i["open-layers"]=n(187),i["open-sm"]=n(190),i["open-tm"]=n(191),i["open-blocks"]=n(192),i["open-assets"]=n(193),i["show-offset"]=n(194),i["select-parent"]=n(195),i.fullscreen=n(196),i.preview=n(197),i.resize=n(198),i.drag=n(199),i["tlb-delete"]={run:function(t){var e=t.getSelected();if(!e||!e.get("removable"))return void console.warn("The element is not removable");t.select(null),e.destroy()}},i["tlb-clone"]={run:function(t){var e=t.getSelected();if(!e||!e.get("copyable"))return void console.warn("The element is not clonable");var n=e.collection,i=n.indexOf(e);n.add(e.clone(),{at:i+1}),t.trigger("component:update",e)}},i["tlb-move"]={run:function(t,e,n){var i,r=t.getSelected();if(!r||!r.get("draggable"))return void console.warn("The element is not draggable");var o=function(t,e){console.log("start mouse pos ",e.start),console.log("el rect ",e.elRect);var n=e.el;n.style.position="absolute",n.style.margin=0},s=function(e,n){l.runDefault(),l.set("selectedComponent",r),t.trigger("component:update",r),i&&i.blur()},a=function(t,e){console.log("Delta ",e.delta),console.log("Current ",e.current)};t.Canvas.getToolbarEl().style.display="none";var l=t.getModel();if(l.stopDefault(),l.get("designerMode"))i=editor.runCommand("drag",{el:r.view.el,options:{event:n&&n.event,onStart:o,onDrag:a,onEnd:s}});else{var c=t.Commands.get("move-comp");c.onEndMoveFromModel=s,c.initSorterFromModel(r)}r.set("status","selected")}},t.em&&(t.model=t.em.get("Canvas")),this.loadDefaultCommands(),this},add:s,get:function(n){var i=e[n];return"function"==typeof i&&(i=new i(t),e[n]=i),i},has:function(t){return!!e[t]},loadDefaultCommands:function(){for(var t in i)this.add(t,i[t]);return this}}}},function(t,e,n){"use strict";t.exports={ESCAPE_KEY:27,stylePrefix:"com-",defaults:[],em:null,firstCentered:!0,newFixedH:!1,minComponentH:50,minComponentW:50}},function(t,e,n){"use strict";(function(e){var n=e.$;t.exports=e.View.extend({initialize:function(t){this.config=t||{},this.editorModel=this.em=this.config.em||{},this.pfx=this.config.stylePrefix,this.ppfx=this.config.pStylePrefix,this.hoverClass=this.pfx+"hover",this.badgeClass=this.pfx+"badge",this.plhClass=this.pfx+"placeholder",this.freezClass=this.ppfx+"freezed",this.canvas=this.em.get&&this.em.get("Canvas"),this.em.get&&this.setElement(this.getCanvas()),this.canvas&&(this.$canvas=this.$el,this.$wrapper=n(this.getCanvasWrapper()),this.frameEl=this.canvas.getFrameEl(),this.canvasTool=this.getCanvasTools(),this.bodyEl=this.getCanvasBody()),this.init(this.config)},onFrameScroll:function(t){},getCanvas:function(){return this.canvas.getElement()},getCanvasBody:function(){return this.canvas.getBody()},getCanvasWrapper:function(){return this.canvas.getWrapperEl()},getCanvasTools:function(){return this.canvas.getToolsEl()},offset:function(t){var e=t.getBoundingClientRect();return{top:e.top+t.ownerDocument.body.scrollTop,left:e.left+t.ownerDocument.body.scrollLeft}},init:function(t){},run:function(t,e){},stop:function(t,e){}})}).call(e,n(0))},function(t,e,n){"use strict";var i=(n(0),n(47)),r=n(178);t.exports=i.extend({itemView:r,initialize:function(t){this.config={editor:t.editor||""},this.listenTo(this.collection,"reset",this.render)}})},function(t,e,n){"use strict";var i=n(0);t.exports=i.View.extend({events:{mousedown:"handleClick"},attributes:function(){return this.model.get("attributes")},initialize:function(t){this.editor=t.config.editor},handleClick:function(t){t.preventDefault(),t.stopPropagation();var e={event:t},n=this.model.get("command"),i=this.editor;"function"==typeof n&&n(i,null,e),"string"==typeof n&&i.runCommand(n,e)},render:function(){var t=this.editor.getConfig();return this.el.className+=" "+t.stylePrefix+"toolbar-item",this}})},function(t,e,n){"use strict";var i=n(0),r=n(180);t.exports=i.Collection.extend({model:r})},function(t,e,n){"use strict";var i=n(0);t.exports=i.Model.extend({defaults:{command:"",attributes:{}}})},function(t,e,n){"use strict";(function(e,i){var r=n(19),o=e.$;t.exports=i.extend({},r,{init:function(t){i.bindAll(this,"startDelete","stopDelete","onDelete"),this.hoverClass=this.pfx+"hover-delete",this.badgeClass=this.pfx+"badge-red"},enable:function(){this.$el.find("*").mouseover(this.startDelete).mouseout(this.stopDelete).click(this.onDelete)},startDelete:function(t){t.stopPropagation();var e=o(t.target);e.data("model").get("removable")&&(e.addClass(this.hoverClass),this.attachBadge(e.get(0)))},stopDelete:function(t){t.stopPropagation(),o(t.target).removeClass(this.hoverClass),this.badge&&this.badge.css({left:-1e3,top:-1e3})},onDelete:function(t){t.stopPropagation();var e=o(t.target);e.data("model").get("removable")&&(e.data("model").destroy(),this.removeBadge(),this.clean())},updateBadgeLabel:function(t){this.badge.html("Remove "+t.getName())}})}).call(e,n(0),n(1))},function(t,e,n){"use strict";(function(e){var i=(n(0),n(54));t.exports=e.extend({},i,{beforeInsert:function(t){t.type="image",t.style={},t.attributes={},t.attributes.onmousedown="return false",this.config.firstCentered&&this.getCanvasWrapper()==this.sorter.target&&(t.style.margin="0 auto")},afterInsert:function(t){t.trigger("dblclick"),this.sender&&this.sender.set("active",!1)}})}).call(e,n(1))},function(t,e,n){"use strict";(function(e,i){var r=n(2),o=n(19),s=n(53),a=e.$;t.exports=i.extend({},s,o,{init:function(t){o.init.apply(this,arguments),i.bindAll(this,"initSorter","rollback","onEndMove"),this.opt=t,this.hoverClass=this.ppfx+"highlighter-warning",this.badgeClass=this.ppfx+"badge-warning",this.noSelClass=this.ppfx+"no-select"},enable:function(){for(var t=arguments.length,e=Array(t),n=0;n"),o=this.codeMirror.clone().set({label:i,codeName:t,theme:e,input:r[0]}),s=new this.cm.EditorView({model:o,config:this.cm.getConfig()}).render().$el;return o.init(r[0]),{el:o,$el:s}},enable:function(){if(!this.$editors){var t=this.buildEditor("htmlmixed","hopscotch","HTML"),e=this.buildEditor("css","hopscotch","CSS");this.htmlEditor=t.el,this.cssEditor=e.el,this.$editors=n('
'),this.$editors.append(t.$el).append(e.$el)}this.modal&&(this.modal.setTitle("Export template"),this.modal.setContent(this.$editors),this.modal.open());var i=this.em;this.protCss;this.htmlEditor.setContent(i.getHtml()),this.cssEditor.setContent(i.getCss()),this.sender&&this.sender.set("active",!1)},stop:function(){}}}).call(e,n(0))},function(t,e,n){"use strict";t.exports={run:function(t){t.Canvas.getBody().className=this.ppfx+"dashed"},stop:function(t){t.Canvas.getBody().className=""}}},function(t,e,n){"use strict";(function(e){var i=n(188),r=e.$;t.exports={run:function(t,e){if(!this.toAppend){var n=t.DomComponents.getComponent().get("components"),o=t.getConfig(),s=o.stylePrefix,a=t.Panels,l=o.layers.stylePrefix||"nv-";o.layers.stylePrefix=o.stylePrefix+l,o.layers.pStylePrefix=o.stylePrefix,o.layers.em=t.editor,o.layers.opened=t.editor.get("opened"),a.getPanel("views-container")?this.panel=a.getPanel("views-container"):this.panel=a.addPanel({id:"views-container"});var c=r('
');this.panel.set("appendContent",c).trigger("change:appendContent"),o.layers.sortContainer=c.get(0);var u=(new i).init(n,o.layers);this.$layers=u.render(),c.append(this.$layers),this.toAppend=c}this.toAppend.show()},stop:function(){this.toAppend&&this.toAppend.hide()}}}).call(e,n(0))},function(t,e,n){"use strict";t.exports=function(){var t=void 0,e={},i=n(189),r=n(55),o=n(56);return{init:function(n,s){e=s||e;var a=e.em;for(var l in i)l in e||(e[l]=i[l]);var c=o,u=s.opened||{},h={level:0,config:e,opened:u};return e.showWrapper&&n.parent?(c=r,h.model=n.parent):h.collection=n,t=new c(h),a&&a.on("change:selectedComponent",this.componentChanged),this.componentChanged(),this},componentChanged:function(t,n){if(!(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).fromLayers){var i=e.em,r=i.get("opened"),o=i.get("selectedComponent"),s=o&&o.collection?o.collection.parent:null;for(var a in r)r[a].set("open",0);for(;s;)s.set("open",1),r[s.cid]=s,s=s.collection?s.collection.parent:null}},render:function(){return t.render().$el}}}},function(t,e,n){"use strict";t.exports={stylePrefix:"nv-",sortable:1,hidable:1,hideTextnode:1,showWrapper:1}},function(t,e,n){"use strict";var i=(n(29),n(0)),r=i.$;t.exports={run:function(t,e){if(this.sender=e,!this.$cn){var n=t.getConfig(),i=t.Panels;this.$cn=r("
"),this.$cn2=r("
"),this.$cn.append(this.$cn2);var o=t.DeviceManager;if(o&&n.showDevices){i.addPanel({id:"devices-c"}).set("appendContent",o.render()).trigger("change:appendContent")}var s=t.SelectorManager;s&&this.$cn2.append(s.render([])),this.$cn2.append(t.StyleManager.render());var a=t.StyleManager.getConfig(),l=a.stylePrefix;this.$header=r('
'+a.textNoElement+"
"),this.$cn.append(this.$header),i.getPanel("views-container")?this.panel=i.getPanel("views-container"):this.panel=i.addPanel({id:"views-container"}),this.panel.set("appendContent",this.$cn).trigger("change:appendContent"),this.target=t.editor,this.listenTo(this.target,"change:selectedComponent",this.toggleSm)}this.toggleSm()},toggleSm:function(){this.sender.get("active")&&(this.target.get("selectedComponent")?(this.$cn2.show(),this.$header.hide()):(this.$cn2.hide(),this.$header.show()))},stop:function(){this.$cn2&&this.$cn2.hide(),this.$header&&this.$header.hide()}}},function(t,e,n){"use strict";(function(e){var n=e.$;t.exports={run:function(t,e){var i,r=t.Config,o=r.stylePrefix,s=t.TraitManager;if(!this.obj){var a=s.getTraitsViewer(),l=s.getConfig();this.obj=n("
").append('
'+l.labelContainer+"
").get(0),this.obj.appendChild(a.render().el);var c=t.Panels;i=c.getPanel("views-container")?c.getPanel("views-container"):c.addPanel({id:"views-container"}),i.set("appendContent",this.obj).trigger("change:appendContent")}this.obj.style.display="block"},stop:function(){this.obj&&(this.obj.style.display="none")}}}).call(e,n(0))},function(t,e,n){"use strict";t.exports={run:function(t,e){var n=t.BlockManager,i=t.Panels;if(!this.blocks){n.render();var r="views-container",o=document.createElement("div"),s=i.getPanel(r)||i.addPanel({id:r});o.appendChild(n.getContainer()),s.set("appendContent",o).trigger("change:appendContent"),this.blocks=o}this.blocks.style.display="block"},stop:function(){var t=this.blocks;t&&(t.style.display="none")}}},function(t,e,n){"use strict";t.exports={run:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=t.Modal,r=t.AssetManager,o=r.getConfig(),s=n.modalTitle||o.modalTitle||"";r.setTarget(n.target),r.onClick(n.onClick),r.onDblClick(n.onDblClick),r.onSelect(n.onSelect),this.rendered||(r.render(r.getAll().filter(function(t){return"image"==t.get("type")})),this.rendered=1),i.setTitle(s),i.setContent(r.getContainer()),i.open()}}},function(t,e,n){"use strict";(function(e){var n=e.$;t.exports={getOffsetMethod:function(t){return"get"+(t||"")+"OffsetViewerEl"},run:function(t,e,i){var r=i||{},o=r.state||"",s=t.getConfig();if(s.showOffsets&&(s.showOffsetsSelected||"Fixed"!=o)){var a=t.Canvas,l=r.el||"",c=r.elPos||a.getElementPos(l),u=window.getComputedStyle(l),h=this.ppfx,d=o+"State",f=this.getOffsetMethod(o),p=a[f]();p.style.display="block";var g=this["marginT"+o],m=this["marginB"+o],v=this["marginL"+o],y=this["marginR"+o],b=this["padT"+o],x=this["padB"+o],w=this["padL"+o],C=this["padR"+o];if(!this[d]){var k=o.toLowerCase(),S=k+"margin-v",T=k+"padding-v",M=n('
').get(0),E=n('
').get(0),P=h+S+"-el",A=h+T+"-el",L=P+" "+(h+S),O=A+" "+(h+T);g=n('
').get(0),m=n('
').get(0),v=n('
').get(0),y=n('
').get(0),b=n('
').get(0),x=n('
').get(0),w=n('
').get(0),C=n('
').get(0),this["marginT"+o]=g,this["marginB"+o]=m,this["marginL"+o]=v,this["marginR"+o]=y,this["padT"+o]=b,this["padB"+o]=x,this["padL"+o]=w,this["padR"+o]=C,M.appendChild(g),M.appendChild(m),M.appendChild(v),M.appendChild(y),E.appendChild(b),E.appendChild(x),E.appendChild(w),E.appendChild(C),p.appendChild(M),p.appendChild(E),this[d]="1"}var N=u.marginLeft.replace("px",""),D=parseInt(u.marginTop.replace("px","")),I=parseInt(u.marginBottom.replace("px","")),_=g.style,F=m.style,$=v.style,z=y.style,R=b.style,H=x.style,V=w.style,j=C.style,B=parseInt(c.left);_.height=u.marginTop,_.width=u.width,_.top=c.top-u.marginTop.replace("px","")+"px",_.left=B+"px",F.height=u.marginBottom,F.width=u.width,F.top=c.top+c.height+"px",F.left=B+"px";var W=c.height+D+I+"px",U=c.top-D+"px";$.height=W,$.width=u.marginLeft,$.top=U,$.left=B-N+"px",z.height=W,z.width=u.marginRight,z.top=U,z.left=B+c.width+"px";var q=parseInt(u.paddingTop.replace("px",""));R.height=u.paddingTop,R.width=u.width,R.top=c.top+"px",R.left=B+"px";var K=parseInt(u.paddingBottom.replace("px",""));H.height=u.paddingBottom,H.width=u.width,H.top=c.top+c.height-K+"px",H.left=B+"px";var G=c.height-K-q+"px",Y=c.top+q+"px";V.height=G,V.width=u.paddingLeft,V.top=Y,V.left=c.left+"px";var X=parseInt(u.paddingRight.replace("px",""));j.height=G,j.width=u.paddingRight,j.top=Y,j.left=c.left+c.width-X+"px"}},stop:function(t,e,n){var i=n||{},r=i.state||"",o=this.getOffsetMethod(r);t.Canvas[o]().style.display="none"}}}).call(e,n(0))},function(t,e,n){"use strict";t.exports={run:function(t){var e=t.getSelected(),n=e&&e.collection;n&&n.parent&&t.select(n.parent)}}},function(t,e,n){"use strict";t.exports={isEnabled:function(){var t=document;return t.fullscreenElement||t.webkitFullscreenElement||t.mozFullScreenElement?1:0},enable:function(t){var e="";return t.requestFullscreen?t.requestFullscreen():t.webkitRequestFullscreen?(e="webkit",t.webkitRequestFullscreen()):t.mozRequestFullScreen?(e="moz",t.mozRequestFullScreen()):t.msRequestFullscreen?t.msRequestFullscreen():console.warn("Fullscreen not supported"),e},disable:function(){var t=document;t.exitFullscreen?t.exitFullscreen():t.webkitExitFullscreen?t.webkitExitFullscreen():t.mozCancelFullScreen?t.mozCancelFullScreen():t.msExitFullscreen&&t.msExitFullscreen()},fsChanged:function(t,e){var n=(document,(t||"")+"fullscreenchange");this.isEnabled()||(this.stop(null,this.sender),document.removeEventListener(n,this.fsChanged))},run:function(t,e){this.sender=e;var n=this.enable(t.getContainer());this.fsChanged=this.fsChanged.bind(this,n),document.addEventListener(n+"fullscreenchange",this.fsChanged),t&&t.trigger("change:canvasOffset")},stop:function(t,e){e&&e.set&&e.set("active",!1),this.disable(),t&&t.trigger("change:canvasOffset")}}},function(t,e,n){"use strict";(function(e){t.exports={getPanels:function(t){return this.panels||(this.panels=t.Panels.getPanelsEl()),this.panels},tglPointers:function(t,n){var i=t.Canvas.getBody().querySelectorAll("."+this.ppfx+"no-pointer");e.each(i,function(t){t.style.pointerEvents=n?"":"all"})},run:function(t,e){e&&e.set&&e.set("active",!1),t.stopCommand("sw-visibility"),t.getModel().stopDefault();var n=this,i=this.getPanels(t),r=t.Canvas.getElement(),o=t.getEl(),s=t.Config.stylePrefix;this.helper||(this.helper=document.createElement("span"),this.helper.className=s+"off-prv fa fa-eye-slash",o.appendChild(this.helper),this.helper.onclick=function(){n.stop(t)}),this.helper.style.display="inline-block",this.tglPointers(t),i.style.display="none";var a=r.style;a.width="100%",a.height="100%",a.top="0",a.left="0",a.padding="0",a.margin="0",t.trigger("change:canvasOffset")},stop:function(t,e){var n=this.getPanels(t);t.runCommand("sw-visibility"),t.getModel().runDefault(),n.style.display="block",t.Canvas.getElement().setAttribute("style",""),this.helper&&(this.helper.style.display="none"),t.trigger("change:canvasOffset"),this.tglPointers(t,1)}}}).call(e,n(1))},function(t,e,n){"use strict";t.exports={run:function(t,e,n){var i=n||{},r=i.el||"",o=t.Canvas,s=this.canvasResizer,a=i.options||{},l=o.getCanvasView();return a.ratioDefault=1,a.appendTo=o.getResizerEl(),a.prefix=t.getConfig().stylePrefix,a.posFetcher=l.getElementPos.bind(l),a.mousePosFetcher=o.getMouseRelativePos,s&&!i.forceNew||(this.canvasResizer=t.Utils.Resizer.init(a),s=this.canvasResizer),s.setOptions(a),s.focus(r),s},stop:function(){var t=this.canvasResizer;t&&t.blur()}}},function(t,e,n){"use strict";t.exports={run:function(t,e,n){var i=n&&n.el||"",r=t.Canvas,o=this.dragger,s=n.options||{},a=r.getCanvasView();return s.prefix=t.getConfig().stylePrefix,s.mousePosFetcher=r.getMouseRelativePos,s.posFetcher=a.getElementPos.bind(a),o||(o=t.Utils.Dragger.init(s),this.dragger=o),o.setOptions(s),o.focus(i),s.event&&o.start(s.event),o},stop:function(){this.canvasResizer&&this.canvasResizer.blur()}}},function(t,e,n){"use strict";t.exports=function(){var t,e,i,r={},o=n(201),s=n(202),a=n(204),l=n(205),c=[];return{name:"BlockManager",init:function(n){r=n||{};var u=r.em;for(var h in o)h in r||(r[h]=o[h]);return t=new s([]),e=new s([]),c=new a,i=new l({collection:e,categories:c},r),t.listenTo(t,"add",function(t){e.add(t),u&&u.trigger("block:add",t)}),t.listenTo(t,"remove",function(t){e.remove(t),u&&u.trigger("block:remove",t)}),t.listenTo(t,"reset",function(t){e.reset(t.models)}),this},getConfig:function(){return r},onLoad:function(){var t=this.getAll();!t.length&&t.reset(r.blocks)},add:function(e,n){var i=n||{};return i.id=e,t.add(i)},get:function(e){return t.get(e)},getAll:function(){return t},getAllVisible:function(){return e},remove:function(e){return t.remove(e)},getCategories:function(){return c},getContainer:function(){return i.el},render:function(t){var e=t||this.getAll().models;i.rendered||(i.render(),i.rendered=1),i.collection.reset(e)}}}},function(t,e,n){"use strict";t.exports={blocks:[],appendTo:""}},function(t,e,n){"use strict";var i=n(0),r=n(203);t.exports=i.Collection.extend({model:r})},function(t,e,n){"use strict";var i=n(0),r=n(57);t.exports=i.Model.extend({defaults:{label:"",content:"",category:"",attributes:{}},initialize:function(){var t=(arguments.length>0&&void 0!==arguments[0]&&arguments[0],this.get("category"));if(t&&"string"==typeof t){new r({id:t,label:t})}}})},function(t,e,n){"use strict";var i=n(0);t.exports=i.Collection.extend({model:n(57)})},function(t,e,n){"use strict";(function(e){var i=n(0),r=n(206),o=n(207);t.exports=i.View.extend({initialize:function(t,n){e.bindAll(this,"getSorter","onDrag","onDrop"),this.config=n||{},this.categories=t.categories||"",this.renderedCategories=[];var i=this.config.pStylePrefix||"";this.ppfx=i,this.noCatClass=i+"blocks-no-cat",this.blockContClass=i+"blocks-c",this.catsClass=i+"block-categories";var r=this.collection;this.listenTo(r,"add",this.addTo),this.listenTo(r,"reset",this.render),this.em=this.config.em,this.tac="test-tac",this.grabbingCls=this.ppfx+"grabbing",this.em&&(this.config.getSorter=this.getSorter,this.canvas=this.em.get("Canvas"))},getSorter:function(){if(this.em){if(!this.sorter){var t=this.em.get("Utils"),e=this.canvas;this.sorter=new t.Sorter({container:e.getBody(),placer:e.getPlacerEl(),containerSel:"*",itemSel:"*",pfx:this.ppfx,onStart:this.onDrag,onEndMove:this.onDrop,onMove:this.onMove,document:e.getFrameEl().contentDocument,direction:"a",wmargin:1,nested:1,em:this.em,canvasRelative:1})}return this.sorter}},onDrag:function(t){this.em.stopDefault(),this.em.trigger("block:drag:start",t)},onMove:function(t){this.em.trigger("block:drag:move",t)},onDrop:function(t){var e=this.em;e.runDefault(),t&&t.get&&(t.get("activeOnRender")&&(t.trigger("active"),t.set("activeOnRender",0)),e.initChildrenComp(t),e.trigger("block:drag:stop",t))},addTo:function(t){this.add(t)},add:function(t,e){var n=e||null,i=new r({model:t,attributes:t.get("attributes")},this.config),s=i.render().el,a=t.get("category");if(a&&this.categories){"string"==typeof a&&(a={id:a,label:a});var l=this.categories.add(a),c=l.get("id"),u=this.renderedCategories[c],h=this.getCategoriesEl();return t.set("category",l),!u&&h&&(u=new o({model:l},this.config).render(),this.renderedCategories[c]=u,h.appendChild(u.el)),void(u&&u.append(s))}n?n.appendChild(s):this.append(s)},getCategoriesEl:function(){return this.catsEl||(this.catsEl=this.el.querySelector("."+this.catsClass)),this.catsEl},getBlocksEl:function(){return this.blocksEl||(this.blocksEl=this.el.querySelector("."+this.noCatClass+" ."+this.blockContClass)),this.blocksEl},append:function(t){var e=this.getBlocksEl();e&&e.appendChild(t)},render:function(){var t=this,e=document.createDocumentFragment();return this.catsEl=null,this.blocksEl=null,this.renderedCategories=[],this.el.innerHTML='\n
\n
\n
\n
\n ',this.collection.each(function(n){return t.add(n,e)}),this.append(e),this.$el.addClass(this.blockContClass+"s"),this}})}).call(e,n(1))},function(t,e,n){"use strict";(function(e){var i=n(2);t.exports=e.View.extend({events:{mousedown:"startDrag"},initialize:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.config=e,this.endDrag=this.endDrag.bind(this),this.ppfx=e.pStylePrefix||"",this.listenTo(this.model,"destroy remove",this.remove)},startDrag:function(t){if(0===t.button&&this.config.getSorter){this.config.em.refreshCanvas();var e=this.config.getSorter();e.setDragHelper(this.el,t),e.setDropContent(this.model.get("content")),e.startSort(this.el),(0,i.on)(document,"mouseup",this.endDrag)}},endDrag:function(t){(0,i.off)(document,"mouseup",this.endDrag);var e=this.config.getSorter();e.moved=0,e.endMove()},render:function(){var t=this.el,e=this.ppfx+"block";return t.className+=" "+e,t.innerHTML='
'+this.model.get("label")+"
",this}})}).call(e,n(0))},function(t,e,n){"use strict";(function(e){var i=n(0);t.exports=i.View.extend({template:e.template('\n
\n \n <%= label %>\n
\n
\n '),events:{},initialize:function(){var t=(arguments.length>0&&void 0!==arguments[0]&&arguments[0],arguments.length>1&&void 0!==arguments[1]?arguments[1]:{});this.config=t;var e=this.config.pStylePrefix||"";this.pfx=e,this.caretR="fa fa-caret-right",this.caretD="fa fa-caret-down",this.iconClass=e+"caret-icon",this.activeClass=e+"open",this.className=e+"block-category",this.events["click ."+e+"title"]="toggle",this.listenTo(this.model,"change:open",this.updateVisibility),this.delegateEvents()},updateVisibility:function(){this.model.get("open")?this.open():this.close()},open:function(){this.el.className=this.className+" "+this.activeClass,this.getIconEl().className=this.iconClass+" "+this.caretD,this.getBlocksEl().style.display=""},close:function(){this.el.className=this.className,this.getIconEl().className=this.iconClass+" "+this.caretR,this.getBlocksEl().style.display="none"},toggle:function(){var t=this.model;t.set("open",!t.get("open"))},getIconEl:function(){return this.iconEl||(this.iconEl=this.el.querySelector("."+this.iconClass)),this.iconEl},getBlocksEl:function(){return this.blocksEl||(this.blocksEl=this.el.querySelector("."+this.pfx+"blocks-c")),this.blocksEl},append:function(t){this.getBlocksEl().appendChild(t)},render:function(){return this.el.innerHTML=this.template({pfx:this.pfx,label:this.model.get("label")}),this.el.className=this.className,this.updateVisibility(),this}})}).call(e,n(1))},function(t,e,n){var i,r,o;/*! * Backbone.Undo.js v0.2 * * Copyright (c)2013 Oliver Sartun diff --git a/js/grapesjs-mjml.min.js b/js/grapesjs-mjml.min.js index f0893fddf..ca7776e01 100644 --- a/js/grapesjs-mjml.min.js +++ b/js/grapesjs-mjml.min.js @@ -1,14 +1,14 @@ -/*! grapesjs-mjml - 0.0.24 */ +/*! grapesjs-mjml - 0.0.26 */ (function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') - module.exports = factory(); + module.exports = factory(require("grapesjs")); else if(typeof define === 'function' && define.amd) - define([], factory); + define(["grapesjs"], factory); else if(typeof exports === 'object') - exports["grapesjs-mjml"] = factory(); + exports["grapesjs-mjml"] = factory(require("grapesjs")); else - root["grapesjs-mjml"] = factory(); -})(this, function() { + root["grapesjs-mjml"] = factory(root["grapesjs"]); +})(this, function(__WEBPACK_EXTERNAL_MODULE_336__) { return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; @@ -71,7 +71,7 @@ return /******/ (function(modules) { // webpackBootstrap /******/ __webpack_require__.p = ""; /******/ /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 341); +/******/ return __webpack_require__(__webpack_require__.s = 335); /******/ }) /************************************************************************/ /******/ ([ @@ -266,6 +266,289 @@ process.umask = function() { return 0; }; /***/ }), /* 1 */ +/***/ (function(module, exports) { + +if (typeof Object.create === 'function') { + // implementation from standard node.js 'util' module + module.exports = function inherits(ctor, superCtor) { + ctor.super_ = superCtor + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }); + }; +} else { + // old school shim for old browsers + module.exports = function inherits(ctor, superCtor) { + ctor.super_ = superCtor + var TempCtor = function () {} + TempCtor.prototype = superCtor.prototype + ctor.prototype = new TempCtor() + ctor.prototype.constructor = ctor + } +} + + +/***/ }), +/* 2 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ + + + +/** + * Use invariant() to assert state which your program assumes to be true. + * + * Provide sprintf-style format (only %s is supported) and arguments + * to provide information about what broke and what you were + * expecting. + * + * The invariant message will be stripped in production, but the invariant + * will remain to ensure logic does not differ in production. + */ + +var validateFormat = function validateFormat(format) {}; + +if (process.env.NODE_ENV !== 'production') { + validateFormat = function validateFormat(format) { + if (format === undefined) { + throw new Error('invariant requires an error message argument'); + } + }; +} + +function invariant(condition, format, a, b, c, d, e, f) { + validateFormat(format); + + if (!condition) { + var error; + if (format === undefined) { + error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.'); + } else { + var args = [a, b, c, d, e, f]; + var argIndex = 0; + error = new Error(format.replace(/%s/g, function () { + return args[argIndex++]; + })); + error.name = 'Invariant Violation'; + } + + error.framesToPop = 1; // we don't care about invariant's own frame + throw error; + } +} + +module.exports = invariant; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) + +/***/ }), +/* 3 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.mjml2html = exports.MJMLValidator = exports.version = exports.mjIncludeRegexp = exports.documentParser = exports.rulesCollection = exports.registerMJRule = exports.formatValidationError = exports.MJMLHeadElements = exports.registerMJHeadElement = exports.helpers = exports.elements = exports.registerMJElement = exports.MJMLRenderer = exports.MJMLElement = undefined; + +var _includeExternal = __webpack_require__(187); + +Object.defineProperty(exports, 'mjIncludeRegexp', { + enumerable: true, + get: function get() { + return _includeExternal.includes; + } +}); + +var _MJMLRenderer = __webpack_require__(340); + +var _MJMLRenderer2 = _interopRequireDefault(_MJMLRenderer); + +var _mjmlValidator = __webpack_require__(133); + +var _mjmlValidator2 = _interopRequireDefault(_mjmlValidator); + +var _MJMLElementsCollection = __webpack_require__(41); + +var _MJMLElementsCollection2 = _interopRequireDefault(_MJMLElementsCollection); + +var _MJMLHead = __webpack_require__(143); + +var _MJMLHead2 = _interopRequireDefault(_MJMLHead); + +var _helpers = __webpack_require__(296); + +var helpers = _interopRequireWildcard(_helpers); + +var _MJMLElement2 = __webpack_require__(639); + +var _MJMLElement3 = _interopRequireDefault(_MJMLElement2); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.MJMLElement = _MJMLElement3.default; +exports.MJMLRenderer = _MJMLRenderer2.default; +exports.registerMJElement = _MJMLElementsCollection.registerMJElement; +exports.elements = _MJMLElementsCollection2.default; +exports.helpers = helpers; +exports.registerMJHeadElement = _MJMLHead.registerMJHeadElement; +exports.MJMLHeadElements = _MJMLHead2.default; +exports.formatValidationError = _mjmlValidator.formatValidationError; +exports.registerMJRule = _mjmlValidator.registerMJRule; +exports.rulesCollection = _mjmlValidator.rulesCollection; +var documentParser = exports.documentParser = function documentParser(content, attributes) { + var documentParser = __webpack_require__(243).default; + + return documentParser(content, attributes); +}; +var version = exports.version = function version() { + return '3.3.5'; +}; +var MJMLValidator = exports.MJMLValidator = _mjmlValidator2.default; +var mjml2html = exports.mjml2html = function mjml2html(mjml) { + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + return new _MJMLRenderer2.default(mjml, options).render(); +}; + +/***/ }), +/* 4 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright (c) 2014-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ + + + +var emptyFunction = __webpack_require__(21); + +/** + * Similar to invariant but only logs a warning if the condition is not met. + * This can be used to log issues in development environments in critical + * paths. Removing the logging code for production environments will keep the + * same logic and follow the same code paths. + */ + +var warning = emptyFunction; + +if (process.env.NODE_ENV !== 'production') { + var printWarning = function printWarning(format) { + for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + var argIndex = 0; + var message = 'Warning: ' + format.replace(/%s/g, function () { + return args[argIndex++]; + }); + if (typeof console !== 'undefined') { + console.error(message); + } + try { + // --- Welcome to debugging React --- + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch (x) {} + }; + + warning = function warning(condition, format) { + if (format === undefined) { + throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument'); + } + + if (format.indexOf('Failed Composite propType: ') === 0) { + return; // Ignore CompositeComponent proptype check. + } + + if (!condition) { + for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { + args[_key2 - 2] = arguments[_key2]; + } + + printWarning.apply(undefined, [format].concat(args)); + } + }; +} + +module.exports = warning; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +module.exports = __webpack_require__(43); + + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * + */ + + +/** + * WARNING: DO NOT manually require this module. + * This is a replacement for `invariant(...)` used by the error code system + * and will _only_ be required by the corresponding babel pass. + * It always throws. + */ + +function reactProdInvariant(code) { + var argCount = arguments.length - 1; + + var message = 'Minified React error #' + code + '; visit ' + 'http://facebook.github.io/react/docs/error-decoder.html?invariant=' + code; + + for (var argIdx = 0; argIdx < argCount; argIdx++) { + message += '&args[]=' + encodeURIComponent(arguments[argIdx + 1]); + } + + message += ' for the full message or use the non-minified dev environment' + ' for full errors and additional helpful warnings.'; + + var error = new Error(message); + error.name = 'Invariant Violation'; + error.framesToPop = 1; // we don't care about reactProdInvariant's own frame + + throw error; +} + +module.exports = reactProdInvariant; + +/***/ }), +/* 7 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -279,9 +562,9 @@ process.umask = function() { return 0; }; -var base64 = __webpack_require__(583) -var ieee754 = __webpack_require__(584) -var isArray = __webpack_require__(281) +var base64 = __webpack_require__(580) +var ieee754 = __webpack_require__(581) +var isArray = __webpack_require__(279) exports.Buffer = Buffer exports.SlowBuffer = SlowBuffer @@ -2059,425 +2342,202 @@ function isnan (val) { return val !== val // eslint-disable-line no-self-compare } -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(9))) - -/***/ }), -/* 2 */ -/***/ (function(module, exports) { - -if (typeof Object.create === 'function') { - // implementation from standard node.js 'util' module - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - ctor.prototype = Object.create(superCtor.prototype, { - constructor: { - value: ctor, - enumerable: false, - writable: true, - configurable: true - } - }); - }; -} else { - // old school shim for old browsers - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - var TempCtor = function () {} - TempCtor.prototype = superCtor.prototype - ctor.prototype = new TempCtor() - ctor.prototype.constructor = ctor - } -} - +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(10))) /***/ }), -/* 3 */ +/* 8 */ /***/ (function(module, exports, __webpack_require__) { -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright (c) 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - +/* eslint-disable node/no-deprecated-api */ +var buffer = __webpack_require__(7) +var Buffer = buffer.Buffer +// alternative to using Object.keys for old browsers +function copyProps (src, dst) { + for (var key in src) { + dst[key] = src[key] + } +} +if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) { + module.exports = buffer +} else { + // Copy properties from require('buffer') + copyProps(buffer, exports) + exports.Buffer = SafeBuffer +} -/** - * Use invariant() to assert state which your program assumes to be true. - * - * Provide sprintf-style format (only %s is supported) and arguments - * to provide information about what broke and what you were - * expecting. - * - * The invariant message will be stripped in production, but the invariant - * will remain to ensure logic does not differ in production. - */ +function SafeBuffer (arg, encodingOrOffset, length) { + return Buffer(arg, encodingOrOffset, length) +} -var validateFormat = function validateFormat(format) {}; +// Copy static methods from Buffer +copyProps(Buffer, SafeBuffer) -if (process.env.NODE_ENV !== 'production') { - validateFormat = function validateFormat(format) { - if (format === undefined) { - throw new Error('invariant requires an error message argument'); - } - }; +SafeBuffer.from = function (arg, encodingOrOffset, length) { + if (typeof arg === 'number') { + throw new TypeError('Argument must not be a number') + } + return Buffer(arg, encodingOrOffset, length) } -function invariant(condition, format, a, b, c, d, e, f) { - validateFormat(format); - - if (!condition) { - var error; - if (format === undefined) { - error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.'); +SafeBuffer.alloc = function (size, fill, encoding) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + var buf = Buffer(size) + if (fill !== undefined) { + if (typeof encoding === 'string') { + buf.fill(fill, encoding) } else { - var args = [a, b, c, d, e, f]; - var argIndex = 0; - error = new Error(format.replace(/%s/g, function () { - return args[argIndex++]; - })); - error.name = 'Invariant Violation'; + buf.fill(fill) } + } else { + buf.fill(0) + } + return buf +} - error.framesToPop = 1; // we don't care about invariant's own frame - throw error; +SafeBuffer.allocUnsafe = function (size) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') } + return Buffer(size) +} + +SafeBuffer.allocUnsafeSlow = function (size) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + return buffer.SlowBuffer(size) } -module.exports = invariant; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 4 */ +/* 9 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -/* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright 2014-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/ -var emptyFunction = __webpack_require__(20); +/* eslint-disable no-unused-vars */ +var getOwnPropertySymbols = Object.getOwnPropertySymbols; +var hasOwnProperty = Object.prototype.hasOwnProperty; +var propIsEnumerable = Object.prototype.propertyIsEnumerable; -/** - * Similar to invariant but only logs a warning if the condition is not met. - * This can be used to log issues in development environments in critical - * paths. Removing the logging code for production environments will keep the - * same logic and follow the same code paths. - */ +function toObject(val) { + if (val === null || val === undefined) { + throw new TypeError('Object.assign cannot be called with null or undefined'); + } -var warning = emptyFunction; + return Object(val); +} -if (process.env.NODE_ENV !== 'production') { - (function () { - var printWarning = function printWarning(format) { - for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } +function shouldUseNative() { + try { + if (!Object.assign) { + return false; + } - var argIndex = 0; - var message = 'Warning: ' + format.replace(/%s/g, function () { - return args[argIndex++]; - }); - if (typeof console !== 'undefined') { - console.error(message); - } - try { - // --- Welcome to debugging React --- - // This error was thrown as a convenience so that you can use this stack - // to find the callsite that caused this warning to fire. - throw new Error(message); - } catch (x) {} - }; + // Detect buggy property enumeration order in older V8 versions. - warning = function warning(condition, format) { - if (format === undefined) { - throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument'); - } + // https://bugs.chromium.org/p/v8/issues/detail?id=4118 + var test1 = new String('abc'); // eslint-disable-line no-new-wrappers + test1[5] = 'de'; + if (Object.getOwnPropertyNames(test1)[0] === '5') { + return false; + } - if (format.indexOf('Failed Composite propType: ') === 0) { - return; // Ignore CompositeComponent proptype check. - } + // https://bugs.chromium.org/p/v8/issues/detail?id=3056 + var test2 = {}; + for (var i = 0; i < 10; i++) { + test2['_' + String.fromCharCode(i)] = i; + } + var order2 = Object.getOwnPropertyNames(test2).map(function (n) { + return test2[n]; + }); + if (order2.join('') !== '0123456789') { + return false; + } - if (!condition) { - for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { - args[_key2 - 2] = arguments[_key2]; - } + // https://bugs.chromium.org/p/v8/issues/detail?id=3056 + var test3 = {}; + 'abcdefghijklmnopqrst'.split('').forEach(function (letter) { + test3[letter] = letter; + }); + if (Object.keys(Object.assign({}, test3)).join('') !== + 'abcdefghijklmnopqrst') { + return false; + } - printWarning.apply(undefined, [format].concat(args)); - } - }; - })(); + return true; + } catch (err) { + // We don't expect any of the above to throw, but better to be safe. + return false; + } } -module.exports = warning; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) +module.exports = shouldUseNative() ? Object.assign : function (target, source) { + var from; + var to = toObject(target); + var symbols; -/***/ }), -/* 5 */ -/***/ (function(module, exports, __webpack_require__) { + for (var s = 1; s < arguments.length; s++) { + from = Object(arguments[s]); -"use strict"; + for (var key in from) { + if (hasOwnProperty.call(from, key)) { + to[key] = from[key]; + } + } + if (getOwnPropertySymbols) { + symbols = getOwnPropertySymbols(from); + for (var i = 0; i < symbols.length; i++) { + if (propIsEnumerable.call(from, symbols[i])) { + to[symbols[i]] = from[symbols[i]]; + } + } + } + } -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.mjml2html = exports.MJMLValidator = exports.version = exports.mjIncludeRegexp = exports.documentParser = exports.rulesCollection = exports.registerMJRule = exports.formatValidationError = exports.MJMLHeadElements = exports.registerMJHeadElement = exports.helpers = exports.elements = exports.registerMJElement = exports.MJMLRenderer = exports.MJMLElement = undefined; + return to; +}; -var _includeExternal = __webpack_require__(190); -Object.defineProperty(exports, 'mjIncludeRegexp', { - enumerable: true, - get: function get() { - return _includeExternal.includes; - } -}); +/***/ }), +/* 10 */ +/***/ (function(module, exports) { -var _MJMLRenderer = __webpack_require__(345); +var g; -var _MJMLRenderer2 = _interopRequireDefault(_MJMLRenderer); +// This works in non-strict mode +g = (function() { + return this; +})(); -var _mjmlValidator = __webpack_require__(134); +try { + // This works if eval is allowed (see CSP) + g = g || Function("return this")() || (1,eval)("this"); +} catch(e) { + // This works if the window reference is available + if(typeof window === "object") + g = window; +} -var _mjmlValidator2 = _interopRequireDefault(_mjmlValidator); +// g can still be undefined, but nothing to do about it... +// We return undefined, instead of nothing here, so it's +// easier to handle this case. if(!global) { ...} -var _MJMLElementsCollection = __webpack_require__(41); - -var _MJMLElementsCollection2 = _interopRequireDefault(_MJMLElementsCollection); - -var _MJMLHead = __webpack_require__(144); - -var _MJMLHead2 = _interopRequireDefault(_MJMLHead); - -var _helpers = __webpack_require__(297); - -var helpers = _interopRequireWildcard(_helpers); - -var _MJMLElement2 = __webpack_require__(643); - -var _MJMLElement3 = _interopRequireDefault(_MJMLElement2); - -function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.MJMLElement = _MJMLElement3.default; -exports.MJMLRenderer = _MJMLRenderer2.default; -exports.registerMJElement = _MJMLElementsCollection.registerMJElement; -exports.elements = _MJMLElementsCollection2.default; -exports.helpers = helpers; -exports.registerMJHeadElement = _MJMLHead.registerMJHeadElement; -exports.MJMLHeadElements = _MJMLHead2.default; -exports.formatValidationError = _mjmlValidator.formatValidationError; -exports.registerMJRule = _mjmlValidator.registerMJRule; -exports.rulesCollection = _mjmlValidator.rulesCollection; -var documentParser = exports.documentParser = function documentParser(content, attributes) { - var documentParser = __webpack_require__(246).default; - - return documentParser(content, attributes); -}; -var version = exports.version = function version() { - return '3.3.5'; -}; -var MJMLValidator = exports.MJMLValidator = _mjmlValidator2.default; -var mjml2html = exports.mjml2html = function mjml2html(mjml) { - var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - return new _MJMLRenderer2.default(mjml, options).render(); -}; - -/***/ }), -/* 6 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -module.exports = __webpack_require__(43); +module.exports = g; /***/ }), -/* 7 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/** - * Copyright (c) 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ - - -/** - * WARNING: DO NOT manually require this module. - * This is a replacement for `invariant(...)` used by the error code system - * and will _only_ be required by the corresponding babel pass. - * It always throws. - */ - -function reactProdInvariant(code) { - var argCount = arguments.length - 1; - - var message = 'Minified React error #' + code + '; visit ' + 'http://facebook.github.io/react/docs/error-decoder.html?invariant=' + code; - - for (var argIdx = 0; argIdx < argCount; argIdx++) { - message += '&args[]=' + encodeURIComponent(arguments[argIdx + 1]); - } - - message += ' for the full message or use the non-minified dev environment' + ' for full errors and additional helpful warnings.'; - - var error = new Error(message); - error.name = 'Invariant Violation'; - error.framesToPop = 1; // we don't care about reactProdInvariant's own frame - - throw error; -} - -module.exports = reactProdInvariant; - -/***/ }), -/* 8 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* -object-assign -(c) Sindre Sorhus -@license MIT -*/ - - -/* eslint-disable no-unused-vars */ -var getOwnPropertySymbols = Object.getOwnPropertySymbols; -var hasOwnProperty = Object.prototype.hasOwnProperty; -var propIsEnumerable = Object.prototype.propertyIsEnumerable; - -function toObject(val) { - if (val === null || val === undefined) { - throw new TypeError('Object.assign cannot be called with null or undefined'); - } - - return Object(val); -} - -function shouldUseNative() { - try { - if (!Object.assign) { - return false; - } - - // Detect buggy property enumeration order in older V8 versions. - - // https://bugs.chromium.org/p/v8/issues/detail?id=4118 - var test1 = new String('abc'); // eslint-disable-line no-new-wrappers - test1[5] = 'de'; - if (Object.getOwnPropertyNames(test1)[0] === '5') { - return false; - } - - // https://bugs.chromium.org/p/v8/issues/detail?id=3056 - var test2 = {}; - for (var i = 0; i < 10; i++) { - test2['_' + String.fromCharCode(i)] = i; - } - var order2 = Object.getOwnPropertyNames(test2).map(function (n) { - return test2[n]; - }); - if (order2.join('') !== '0123456789') { - return false; - } - - // https://bugs.chromium.org/p/v8/issues/detail?id=3056 - var test3 = {}; - 'abcdefghijklmnopqrst'.split('').forEach(function (letter) { - test3[letter] = letter; - }); - if (Object.keys(Object.assign({}, test3)).join('') !== - 'abcdefghijklmnopqrst') { - return false; - } - - return true; - } catch (err) { - // We don't expect any of the above to throw, but better to be safe. - return false; - } -} - -module.exports = shouldUseNative() ? Object.assign : function (target, source) { - var from; - var to = toObject(target); - var symbols; - - for (var s = 1; s < arguments.length; s++) { - from = Object(arguments[s]); - - for (var key in from) { - if (hasOwnProperty.call(from, key)) { - to[key] = from[key]; - } - } - - if (getOwnPropertySymbols) { - symbols = getOwnPropertySymbols(from); - for (var i = 0; i < symbols.length; i++) { - if (propIsEnumerable.call(from, symbols[i])) { - to[symbols[i]] = from[symbols[i]]; - } - } - } - } - - return to; -}; - - -/***/ }), -/* 9 */ -/***/ (function(module, exports) { - -var g; - -// This works in non-strict mode -g = (function() { - return this; -})(); - -try { - // This works if eval is allowed (see CSP) - g = g || Function("return this")() || (1,eval)("this"); -} catch(e) { - // This works if the window reference is available - if(typeof window === "object") - g = window; -} - -// g can still be undefined, but nothing to do about it... -// We return undefined, instead of nothing here, so it's -// easier to handle this case. if(!global) { ...} - -module.exports = g; - - -/***/ }), -/* 10 */ +/* 11 */ /***/ (function(module, exports) { /** @@ -2509,7 +2569,7 @@ module.exports = isArray; /***/ }), -/* 11 */ +/* 12 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(module) {(function (module, exports) { @@ -5940,31 +6000,29 @@ module.exports = isArray; }; })(typeof module === 'undefined' || module, this); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(16)(module))) +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(17)(module))) /***/ }), -/* 12 */ +/* 13 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. + * Copyright (c) 2013-present, Facebook, Inc. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. * */ -var _prodInvariant = __webpack_require__(7); +var _prodInvariant = __webpack_require__(6); var DOMProperty = __webpack_require__(61); -var ReactDOMComponentFlags = __webpack_require__(260); +var ReactDOMComponentFlags = __webpack_require__(257); -var invariant = __webpack_require__(3); +var invariant = __webpack_require__(2); var ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME; var Flags = ReactDOMComponentFlags; @@ -6144,17 +6202,15 @@ module.exports = ReactDOMComponentTree; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 13 */ +/* 14 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright (c) 2013-present, Facebook, Inc. - * All rights reserved. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. * */ @@ -6185,10 +6241,10 @@ var ExecutionEnvironment = { module.exports = ExecutionEnvironment; /***/ }), -/* 14 */ +/* 15 */ /***/ (function(module, exports, __webpack_require__) { -var freeGlobal = __webpack_require__(196); +var freeGlobal = __webpack_require__(193); /** Detect free variable `self`. */ var freeSelf = typeof self == 'object' && self && self.Object === Object && self; @@ -6200,7 +6256,7 @@ module.exports = root; /***/ }), -/* 15 */ +/* 16 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -6210,8 +6266,8 @@ var elliptic = exports; elliptic.version = __webpack_require__(729).version; elliptic.utils = __webpack_require__(730); -elliptic.rand = __webpack_require__(326); -elliptic.curve = __webpack_require__(113); +elliptic.rand = __webpack_require__(322); +elliptic.curve = __webpack_require__(112); elliptic.curves = __webpack_require__(735); // Protocols @@ -6220,35 +6276,35 @@ elliptic.eddsa = __webpack_require__(747); /***/ }), -/* 16 */ +/* 17 */ /***/ (function(module, exports) { -module.exports = function(module) { - if(!module.webpackPolyfill) { - module.deprecate = function() {}; - module.paths = []; - // module.parent = undefined by default - if(!module.children) module.children = []; - Object.defineProperty(module, "loaded", { - enumerable: true, - get: function() { - return module.l; - } - }); - Object.defineProperty(module, "id", { - enumerable: true, - get: function() { - return module.i; - } - }); - module.webpackPolyfill = 1; - } - return module; -}; +module.exports = function(module) { + if(!module.webpackPolyfill) { + module.deprecate = function() {}; + module.paths = []; + // module.parent = undefined by default + if(!module.children) module.children = []; + Object.defineProperty(module, "loaded", { + enumerable: true, + get: function() { + return module.l; + } + }); + Object.defineProperty(module, "id", { + enumerable: true, + get: function() { + return module.i; + } + }); + module.webpackPolyfill = 1; + } + return module; +}; /***/ }), -/* 17 */ +/* 18 */ /***/ (function(module, exports) { /** @@ -6285,7 +6341,7 @@ module.exports = isObject; /***/ }), -/* 18 */ +/* 19 */ /***/ (function(module, exports) { module.exports = assert; @@ -6302,11 +6358,11 @@ assert.equal = function assertEqual(l, r, msg) { /***/ }), -/* 19 */ +/* 20 */ /***/ (function(module, exports, __webpack_require__) { -var isFunction = __webpack_require__(117), - isLength = __webpack_require__(123); +var isFunction = __webpack_require__(116), + isLength = __webpack_require__(122); /** * Checks if `value` is array-like. A value is considered array-like if it's @@ -6341,7 +6397,7 @@ module.exports = isArrayLike; /***/ }), -/* 20 */ +/* 21 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -6349,11 +6405,9 @@ module.exports = isArrayLike; /** * Copyright (c) 2013-present, Facebook, Inc. - * All rights reserved. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. * * */ @@ -6385,17 +6439,15 @@ emptyFunction.thatReturnsArgument = function (arg) { module.exports = emptyFunction; /***/ }), -/* 21 */ +/* 22 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright 2016-present, Facebook, Inc. - * All rights reserved. + * Copyright (c) 2016-present, Facebook, Inc. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. * * */ @@ -6407,7 +6459,7 @@ module.exports = emptyFunction; var debugTool = null; if (process.env.NODE_ENV !== 'production') { - var ReactDebugTool = __webpack_require__(509); + var ReactDebugTool = __webpack_require__(506); debugTool = ReactDebugTool; } @@ -6415,28 +6467,26 @@ module.exports = { debugTool: debugTool }; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 22 */ +/* 23 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright 2016-present, Facebook, Inc. - * All rights reserved. + * Copyright (c) 2016-present, Facebook, Inc. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. * * */ -var _prodInvariant = __webpack_require__(34); +var _prodInvariant = __webpack_require__(44); -var ReactCurrentOwner = __webpack_require__(29); +var ReactCurrentOwner = __webpack_require__(30); -var invariant = __webpack_require__(3); +var invariant = __webpack_require__(2); var warning = __webpack_require__(4); function isNative(fn) { @@ -6445,11 +6495,11 @@ function isNative(fn) { var hasOwnProperty = Object.prototype.hasOwnProperty; var reIsNative = RegExp('^' + funcToString // Take an example native function source for comparison - .call(hasOwnProperty) + .call(hasOwnProperty // Strip regex characters so we can use it for regex - .replace(/[\\^$.*+?()[\]{}|]/g, '\\$&') + ).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&' // Remove hasOwnProperty from the template to make it generic - .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'); + ).replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'); try { var source = funcToString.call(fn); return reIsNative.test(source); @@ -6748,21 +6798,66 @@ var ReactComponentTreeHook = { getRootIDs: getRootIDs, - getRegisteredIDs: getItemIDs + getRegisteredIDs: getItemIDs, + + pushNonStandardWarningStack: function (isCreatingElement, currentSource) { + if (typeof console.reactStack !== 'function') { + return; + } + + var stack = []; + var currentOwner = ReactCurrentOwner.current; + var id = currentOwner && currentOwner._debugID; + + try { + if (isCreatingElement) { + stack.push({ + name: id ? ReactComponentTreeHook.getDisplayName(id) : null, + fileName: currentSource ? currentSource.fileName : null, + lineNumber: currentSource ? currentSource.lineNumber : null + }); + } + + while (id) { + var element = ReactComponentTreeHook.getElement(id); + var parentID = ReactComponentTreeHook.getParentID(id); + var ownerID = ReactComponentTreeHook.getOwnerID(id); + var ownerName = ownerID ? ReactComponentTreeHook.getDisplayName(ownerID) : null; + var source = element && element._source; + stack.push({ + name: ownerName, + fileName: source ? source.fileName : null, + lineNumber: source ? source.lineNumber : null + }); + id = parentID; + } + } catch (err) { + // Internal state is messed up. + // Stop building the stack (it's just a nice to have). + } + + console.reactStack(stack); + }, + popNonStandardWarningStack: function () { + if (typeof console.reactStackEnd !== 'function') { + return; + } + console.reactStackEnd(); + } }; module.exports = ReactComponentTreeHook; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 23 */ +/* 24 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var assert = __webpack_require__(18); -var inherits = __webpack_require__(2); +var assert = __webpack_require__(19); +var inherits = __webpack_require__(1); exports.inherits = inherits; @@ -7015,7 +7110,7 @@ exports.shr64_lo = shr64_lo; /***/ }), -/* 24 */ +/* 25 */ /***/ (function(module, exports) { /** @@ -7050,12 +7145,12 @@ module.exports = isObjectLike; /***/ }), -/* 25 */ +/* 26 */ /***/ (function(module, exports, __webpack_require__) { -var arrayLikeKeys = __webpack_require__(207), - baseKeys = __webpack_require__(209), - isArrayLike = __webpack_require__(19); +var arrayLikeKeys = __webpack_require__(204), + baseKeys = __webpack_require__(206), + isArrayLike = __webpack_require__(20); /** * Creates an array of the own enumerable property names of `object`. @@ -7093,27 +7188,25 @@ module.exports = keys; /***/ }), -/* 26 */ +/* 27 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. + * Copyright (c) 2013-present, Facebook, Inc. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. * */ -var _assign = __webpack_require__(8); +var _assign = __webpack_require__(9); var PooledClass = __webpack_require__(36); -var emptyFunction = __webpack_require__(20); +var emptyFunction = __webpack_require__(21); var warning = __webpack_require__(4); var didWarnForAddedNewProperty = false; @@ -7201,7 +7294,6 @@ function SyntheticEvent(dispatchConfig, targetInst, nativeEvent, nativeEventTarg } _assign(SyntheticEvent.prototype, { - preventDefault: function () { this.defaultPrevented = true; var event = this.nativeEvent; @@ -7211,8 +7303,8 @@ _assign(SyntheticEvent.prototype, { if (event.preventDefault) { event.preventDefault(); + // eslint-disable-next-line valid-typeof } else if (typeof event.returnValue !== 'unknown') { - // eslint-disable-line valid-typeof event.returnValue = false; } this.isDefaultPrevented = emptyFunction.thatReturnsTrue; @@ -7226,8 +7318,8 @@ _assign(SyntheticEvent.prototype, { if (event.stopPropagation) { event.stopPropagation(); + // eslint-disable-next-line valid-typeof } else if (typeof event.cancelBubble !== 'unknown') { - // eslint-disable-line valid-typeof // The ChangeEventPlugin registers a "propertychange" event for // IE. This event does not support bubbling or cancelling, and // any references to cancelBubble throw "Member not found". A @@ -7276,34 +7368,10 @@ _assign(SyntheticEvent.prototype, { Object.defineProperty(this, 'stopPropagation', getPooledWarningPropertyDefinition('stopPropagation', emptyFunction)); } } - }); SyntheticEvent.Interface = EventInterface; -if (process.env.NODE_ENV !== 'production') { - if (isProxySupported) { - /*eslint-disable no-func-assign */ - SyntheticEvent = new Proxy(SyntheticEvent, { - construct: function (target, args) { - return this.apply(target, Object.create(target.prototype), args); - }, - apply: function (constructor, that, args) { - return new Proxy(constructor.apply(that, args), { - set: function (target, prop, value) { - if (prop !== 'isPersistent' && !target.constructor.Interface.hasOwnProperty(prop) && shouldBeReleasedProperties.indexOf(prop) === -1) { - process.env.NODE_ENV !== 'production' ? warning(didWarnForAddedNewProperty || target.isPersistent(), 'This synthetic event is reused for performance reasons. If you\'re ' + 'seeing this, you\'re adding a new property in the synthetic event object. ' + 'The property is never released. See ' + 'https://fb.me/react-event-pooling for more information.') : void 0; - didWarnForAddedNewProperty = true; - } - target[prop] = value; - return true; - } - }); - } - }); - /*eslint-enable no-func-assign */ - } -} /** * Helper to reduce boilerplate when creating subclasses. * @@ -7327,6 +7395,34 @@ SyntheticEvent.augmentClass = function (Class, Interface) { PooledClass.addPoolingTo(Class, PooledClass.fourArgumentPooler); }; +/** Proxying after everything set on SyntheticEvent + * to resolve Proxy issue on some WebKit browsers + * in which some Event properties are set to undefined (GH#10010) + */ +if (process.env.NODE_ENV !== 'production') { + if (isProxySupported) { + /*eslint-disable no-func-assign */ + SyntheticEvent = new Proxy(SyntheticEvent, { + construct: function (target, args) { + return this.apply(target, Object.create(target.prototype), args); + }, + apply: function (constructor, that, args) { + return new Proxy(constructor.apply(that, args), { + set: function (target, prop, value) { + if (prop !== 'isPersistent' && !target.constructor.Interface.hasOwnProperty(prop) && shouldBeReleasedProperties.indexOf(prop) === -1) { + process.env.NODE_ENV !== 'production' ? warning(didWarnForAddedNewProperty || target.isPersistent(), "This synthetic event is reused for performance reasons. If you're " + "seeing this, you're adding a new property in the synthetic event object. " + 'The property is never released. See ' + 'https://fb.me/react-event-pooling for more information.') : void 0; + didWarnForAddedNewProperty = true; + } + target[prop] = value; + return true; + } + }); + } + }); + /*eslint-enable no-func-assign */ + } +} + PooledClass.addPoolingTo(SyntheticEvent, PooledClass.fourArgumentPooler); module.exports = SyntheticEvent; @@ -7361,38 +7457,36 @@ function getPooledWarningPropertyDefinition(propName, getVal) { function warn(action, result) { var warningCondition = false; - process.env.NODE_ENV !== 'production' ? warning(warningCondition, 'This synthetic event is reused for performance reasons. If you\'re seeing this, ' + 'you\'re %s `%s` on a released/nullified synthetic event. %s. ' + 'If you must keep the original synthetic event around, use event.persist(). ' + 'See https://fb.me/react-event-pooling for more information.', action, propName, result) : void 0; + process.env.NODE_ENV !== 'production' ? warning(warningCondition, "This synthetic event is reused for performance reasons. If you're seeing this, " + "you're %s `%s` on a released/nullified synthetic event. %s. " + 'If you must keep the original synthetic event around, use event.persist(). ' + 'See https://fb.me/react-event-pooling for more information.', action, propName, result) : void 0; } } /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 27 */ +/* 28 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. + * Copyright (c) 2013-present, Facebook, Inc. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. * */ -var _prodInvariant = __webpack_require__(7), - _assign = __webpack_require__(8); +var _prodInvariant = __webpack_require__(6), + _assign = __webpack_require__(9); -var CallbackQueue = __webpack_require__(261); +var CallbackQueue = __webpack_require__(258); var PooledClass = __webpack_require__(36); -var ReactFeatureFlags = __webpack_require__(506); +var ReactFeatureFlags = __webpack_require__(503); var ReactReconciler = __webpack_require__(62); var Transaction = __webpack_require__(102); -var invariant = __webpack_require__(3); +var invariant = __webpack_require__(2); var dirtyComponents = []; var updateBatchNumber = 0; @@ -7585,7 +7679,7 @@ function enqueueUpdate(component) { * if no updates are currently being performed. */ function asap(callback, context) { - !batchingStrategy.isBatchingUpdates ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates.asap: Can\'t enqueue an asap callback in a context whereupdates are not being batched.') : _prodInvariant('125') : void 0; + invariant(batchingStrategy.isBatchingUpdates, "ReactUpdates.asap: Can't enqueue an asap callback in a context where" + 'updates are not being batched.'); asapCallbackQueue.enqueue(callback, context); asapEnqueued = true; } @@ -7624,11 +7718,11 @@ module.exports = ReactUpdates; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 28 */ +/* 29 */ /***/ (function(module, exports, __webpack_require__) { -var assignValue = __webpack_require__(124), - baseAssignValue = __webpack_require__(81); +var assignValue = __webpack_require__(123), + baseAssignValue = __webpack_require__(80); /** * Copies properties of `source` to `object`. @@ -7670,17 +7764,15 @@ module.exports = copyObject; /***/ }), -/* 29 */ +/* 30 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. + * Copyright (c) 2013-present, Facebook, Inc. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. * * */ @@ -7694,25 +7786,23 @@ module.exports = copyObject; * currently being constructed. */ var ReactCurrentOwner = { - /** * @internal * @type {ReactComponent} */ current: null - }; module.exports = ReactCurrentOwner; /***/ }), -/* 30 */ +/* 31 */ /***/ (function(module, exports, __webpack_require__) { -var Buffer = __webpack_require__(48).Buffer +var Buffer = __webpack_require__(8).Buffer var Transform = __webpack_require__(66).Transform -var StringDecoder = __webpack_require__(107).StringDecoder -var inherits = __webpack_require__(2) +var StringDecoder = __webpack_require__(108).StringDecoder +var inherits = __webpack_require__(1) function CipherBase (hashMode) { Transform.call(this) @@ -7811,11 +7901,11 @@ module.exports = CipherBase /***/ }), -/* 31 */ +/* 32 */ /***/ (function(module, exports, __webpack_require__) { -var baseIsNative = __webpack_require__(351), - getValue = __webpack_require__(356); +var baseIsNative = __webpack_require__(346), + getValue = __webpack_require__(351); /** * Gets the native function at `key` of `object`. @@ -7834,12 +7924,12 @@ module.exports = getNative; /***/ }), -/* 32 */ +/* 33 */ /***/ (function(module, exports, __webpack_require__) { -var Symbol = __webpack_require__(33), - getRawTag = __webpack_require__(352), - objectToString = __webpack_require__(353); +var Symbol = __webpack_require__(34), + getRawTag = __webpack_require__(347), + objectToString = __webpack_require__(348); /** `Object#toString` result references. */ var nullTag = '[object Null]', @@ -7868,10 +7958,10 @@ module.exports = baseGetTag; /***/ }), -/* 33 */ +/* 34 */ /***/ (function(module, exports, __webpack_require__) { -var root = __webpack_require__(14); +var root = __webpack_require__(15); /** Built-in value references. */ var Symbol = root.Symbol; @@ -7879,76 +7969,30 @@ var Symbol = root.Symbol; module.exports = Symbol; -/***/ }), -/* 34 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/** - * Copyright (c) 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ - - -/** - * WARNING: DO NOT manually require this module. - * This is a replacement for `invariant(...)` used by the error code system - * and will _only_ be required by the corresponding babel pass. - * It always throws. - */ - -function reactProdInvariant(code) { - var argCount = arguments.length - 1; - - var message = 'Minified React error #' + code + '; visit ' + 'http://facebook.github.io/react/docs/error-decoder.html?invariant=' + code; - - for (var argIdx = 0; argIdx < argCount; argIdx++) { - message += '&args[]=' + encodeURIComponent(arguments[argIdx + 1]); - } - - message += ' for the full message or use the non-minified dev environment' + ' for full errors and additional helpful warnings.'; - - var error = new Error(message); - error.name = 'Invariant Violation'; - error.framesToPop = 1; // we don't care about reactProdInvariant's own frame - - throw error; -} - -module.exports = reactProdInvariant; - /***/ }), /* 35 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright 2014-present, Facebook, Inc. - * All rights reserved. + * Copyright (c) 2014-present, Facebook, Inc. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. * */ -var _assign = __webpack_require__(8); +var _assign = __webpack_require__(9); -var ReactCurrentOwner = __webpack_require__(29); +var ReactCurrentOwner = __webpack_require__(30); var warning = __webpack_require__(4); -var canDefineProperty = __webpack_require__(101); +var canDefineProperty = __webpack_require__(100); var hasOwnProperty = Object.prototype.hasOwnProperty; -var REACT_ELEMENT_TYPE = __webpack_require__(250); +var REACT_ELEMENT_TYPE = __webpack_require__(248); var RESERVED_PROPS = { key: true, @@ -8276,21 +8320,19 @@ module.exports = ReactElement; "use strict"; /* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. + * Copyright (c) 2013-present, Facebook, Inc. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. * * */ -var _prodInvariant = __webpack_require__(7); +var _prodInvariant = __webpack_require__(6); -var invariant = __webpack_require__(3); +var invariant = __webpack_require__(2); /** * Static poolers. Several custom versions for each potential number of @@ -8393,6 +8435,27 @@ module.exports = PooledClass; /***/ (function(module, exports, __webpack_require__) { "use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + // a duplex stream is just a stream that is both readable and writable. // Since JS doesn't have multiple prototypal inheritance, this class // prototypally inherits from Readable, and then parasitically from @@ -8402,6 +8465,10 @@ module.exports = PooledClass; /**/ +var processNextTick = __webpack_require__(107); +/**/ + +/**/ var objectKeys = Object.keys || function (obj) { var keys = []; for (var key in obj) { @@ -8412,17 +8479,13 @@ var objectKeys = Object.keys || function (obj) { module.exports = Duplex; -/**/ -var processNextTick = __webpack_require__(172); -/**/ - /**/ var util = __webpack_require__(67); -util.inherits = __webpack_require__(2); +util.inherits = __webpack_require__(1); /**/ -var Readable = __webpack_require__(288); -var Writable = __webpack_require__(174); +var Readable = __webpack_require__(286); +var Writable = __webpack_require__(170); util.inherits(Duplex, Readable); @@ -8463,6 +8526,34 @@ function onEndNT(self) { self.end(); } +Object.defineProperty(Duplex.prototype, 'destroyed', { + get: function () { + if (this._readableState === undefined || this._writableState === undefined) { + return false; + } + return this._readableState.destroyed && this._writableState.destroyed; + }, + set: function (value) { + // we ignore the value if the stream + // has not been initialized yet + if (this._readableState === undefined || this._writableState === undefined) { + return; + } + + // backward compatibility, the user is explicitly + // managing destroyed + this._readableState.destroyed = value; + this._writableState.destroyed = value; + } +}); + +Duplex.prototype._destroy = function (err, cb) { + this.push(null); + this.end(); + + processNextTick(cb, err); +}; + function forEach(xs, f) { for (var i = 0, l = xs.length; i < l; i++) { f(xs[i], i); @@ -8577,11 +8668,11 @@ Object.defineProperty(exports, "__esModule", { }); exports.registerMJElement = exports.postRenders = exports.endingTags = undefined; -var _warning = __webpack_require__(88); +var _warning = __webpack_require__(87); var _warning2 = _interopRequireDefault(_warning); -var _lodash = __webpack_require__(125); +var _lodash = __webpack_require__(124); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -8612,11 +8703,11 @@ exports.default = MJMLElementsCollection; /* 42 */ /***/ (function(module, exports, __webpack_require__) { -var baseMatches = __webpack_require__(411), - baseMatchesProperty = __webpack_require__(419), +var baseMatches = __webpack_require__(406), + baseMatchesProperty = __webpack_require__(414), identity = __webpack_require__(38), - isArray = __webpack_require__(10), - property = __webpack_require__(427); + isArray = __webpack_require__(11), + property = __webpack_require__(422); /** * The base implementation of `_.iteratee`. @@ -8651,38 +8742,35 @@ module.exports = baseIteratee; "use strict"; /* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. + * Copyright (c) 2013-present, Facebook, Inc. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. * */ -var _assign = __webpack_require__(8); +var _assign = __webpack_require__(9); -var ReactChildren = __webpack_require__(484); -var ReactComponent = __webpack_require__(148); -var ReactPureComponent = __webpack_require__(488); -var ReactClass = __webpack_require__(489); -var ReactDOMFactories = __webpack_require__(490); +var ReactBaseClasses = __webpack_require__(246); +var ReactChildren = __webpack_require__(480); +var ReactDOMFactories = __webpack_require__(484); var ReactElement = __webpack_require__(35); -var ReactPropTypes = __webpack_require__(493); -var ReactVersion = __webpack_require__(496); +var ReactPropTypes = __webpack_require__(488); +var ReactVersion = __webpack_require__(491); -var onlyChild = __webpack_require__(497); -var warning = __webpack_require__(4); +var createReactClass = __webpack_require__(492); +var onlyChild = __webpack_require__(494); var createElement = ReactElement.createElement; var createFactory = ReactElement.createFactory; var cloneElement = ReactElement.cloneElement; if (process.env.NODE_ENV !== 'production') { - var canDefineProperty = __webpack_require__(101); - var ReactElementValidator = __webpack_require__(253); + var lowPriorityWarning = __webpack_require__(147); + var canDefineProperty = __webpack_require__(100); + var ReactElementValidator = __webpack_require__(250); var didWarnPropTypesDeprecated = false; createElement = ReactElementValidator.createElement; createFactory = ReactElementValidator.createFactory; @@ -8690,18 +8778,27 @@ if (process.env.NODE_ENV !== 'production') { } var __spread = _assign; +var createMixin = function (mixin) { + return mixin; +}; if (process.env.NODE_ENV !== 'production') { - var warned = false; + var warnedForSpread = false; + var warnedForCreateMixin = false; __spread = function () { - process.env.NODE_ENV !== 'production' ? warning(warned, 'React.__spread is deprecated and should not be used. Use ' + 'Object.assign directly or another helper function with similar ' + 'semantics. You may be seeing this warning due to your compiler. ' + 'See https://fb.me/react-spread-deprecation for more details.') : void 0; - warned = true; + lowPriorityWarning(warnedForSpread, 'React.__spread is deprecated and should not be used. Use ' + 'Object.assign directly or another helper function with similar ' + 'semantics. You may be seeing this warning due to your compiler. ' + 'See https://fb.me/react-spread-deprecation for more details.'); + warnedForSpread = true; return _assign.apply(null, arguments); }; + + createMixin = function (mixin) { + lowPriorityWarning(warnedForCreateMixin, 'React.createMixin is deprecated and should not be used. ' + 'In React v16.0, it will be removed. ' + 'You can use this mixin directly instead. ' + 'See https://fb.me/createmixin-was-never-implemented for more info.'); + warnedForCreateMixin = true; + return mixin; + }; } var React = { - // Modern Children: { @@ -8712,8 +8809,8 @@ var React = { only: onlyChild }, - Component: ReactComponent, - PureComponent: ReactPureComponent, + Component: ReactBaseClasses.Component, + PureComponent: ReactBaseClasses.PureComponent, createElement: createElement, cloneElement: cloneElement, @@ -8722,12 +8819,9 @@ var React = { // Classic PropTypes: ReactPropTypes, - createClass: ReactClass.createClass, + createClass: createReactClass, createFactory: createFactory, - createMixin: function (mixin) { - // Currently a noop. Will be used to validate and trace mixins. - return mixin; - }, + createMixin: createMixin, // This looks DOM specific but these are actually isomorphic helpers // since they are just generating DOM strings. @@ -8739,17 +8833,40 @@ var React = { __spread: __spread }; -// TODO: Fix tests so that this deprecation warning doesn't cause failures. if (process.env.NODE_ENV !== 'production') { + var warnedForCreateClass = false; if (canDefineProperty) { Object.defineProperty(React, 'PropTypes', { get: function () { - process.env.NODE_ENV !== 'production' ? warning(didWarnPropTypesDeprecated, 'Accessing PropTypes via the main React package is deprecated. Use ' + 'the prop-types package from npm instead.') : void 0; + lowPriorityWarning(didWarnPropTypesDeprecated, 'Accessing PropTypes via the main React package is deprecated,' + ' and will be removed in React v16.0.' + ' Use the latest available v15.* prop-types package from npm instead.' + ' For info on usage, compatibility, migration and more, see ' + 'https://fb.me/prop-types-docs'); didWarnPropTypesDeprecated = true; return ReactPropTypes; } }); + + Object.defineProperty(React, 'createClass', { + get: function () { + lowPriorityWarning(warnedForCreateClass, 'Accessing createClass via the main React package is deprecated,' + ' and will be removed in React v16.0.' + " Use a plain JavaScript class instead. If you're not yet " + 'ready to migrate, create-react-class v15.* is available ' + 'on npm as a temporary, drop-in replacement. ' + 'For more info see https://fb.me/react-create-class'); + warnedForCreateClass = true; + return createReactClass; + } + }); } + + // React.DOM factories are deprecated. Wrap these methods so that + // invocations of the React.DOM namespace and alert users to switch + // to the `react-dom-factories` package. + React.DOM = {}; + var warnedForFactories = false; + Object.keys(ReactDOMFactories).forEach(function (factory) { + React.DOM[factory] = function () { + if (!warnedForFactories) { + lowPriorityWarning(false, 'Accessing factories like React.DOM.%s has been deprecated ' + 'and will be removed in v16.0+. Use the ' + 'react-dom-factories package instead. ' + ' Version 1.0 provides a drop-in replacement.' + ' For more info, see https://fb.me/react-dom-factories', factory); + warnedForFactories = true; + } + return ReactDOMFactories[factory].apply(ReactDOMFactories, arguments); + }; + }); } module.exports = React; @@ -8759,8 +8876,50 @@ module.exports = React; /* 44 */ /***/ (function(module, exports, __webpack_require__) { -var Parser = __webpack_require__(282), - DomHandler = __webpack_require__(586); +"use strict"; +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * + */ + + +/** + * WARNING: DO NOT manually require this module. + * This is a replacement for `invariant(...)` used by the error code system + * and will _only_ be required by the corresponding babel pass. + * It always throws. + */ + +function reactProdInvariant(code) { + var argCount = arguments.length - 1; + + var message = 'Minified React error #' + code + '; visit ' + 'http://facebook.github.io/react/docs/error-decoder.html?invariant=' + code; + + for (var argIdx = 0; argIdx < argCount; argIdx++) { + message += '&args[]=' + encodeURIComponent(arguments[argIdx + 1]); + } + + message += ' for the full message or use the non-minified dev environment' + ' for full errors and additional helpful warnings.'; + + var error = new Error(message); + error.name = 'Invariant Violation'; + error.framesToPop = 1; // we don't care about reactProdInvariant's own frame + + throw error; +} + +module.exports = reactProdInvariant; + +/***/ }), +/* 45 */ +/***/ (function(module, exports, __webpack_require__) { + +var Parser = __webpack_require__(280), + DomHandler = __webpack_require__(583); function defineProp(name, value){ delete module.exports[name]; @@ -8770,26 +8929,26 @@ function defineProp(name, value){ module.exports = { Parser: Parser, - Tokenizer: __webpack_require__(283), + Tokenizer: __webpack_require__(281), ElementType: __webpack_require__(65), DomHandler: DomHandler, get FeedHandler(){ - return defineProp("FeedHandler", __webpack_require__(588)); + return defineProp("FeedHandler", __webpack_require__(585)); }, get Stream(){ - return defineProp("Stream", __webpack_require__(589)); + return defineProp("Stream", __webpack_require__(586)); }, get WritableStream(){ - return defineProp("WritableStream", __webpack_require__(287)); + return defineProp("WritableStream", __webpack_require__(285)); }, get ProxyHandler(){ - return defineProp("ProxyHandler", __webpack_require__(601)); + return defineProp("ProxyHandler", __webpack_require__(598)); }, get DomUtils(){ - return defineProp("DomUtils", __webpack_require__(45)); + return defineProp("DomUtils", __webpack_require__(46)); }, get CollectingHandler(){ - return defineProp("CollectingHandler", __webpack_require__(612)); + return defineProp("CollectingHandler", __webpack_require__(609)); }, // For legacy support DefaultHandler: DomHandler, @@ -8830,18 +8989,18 @@ module.exports = { /***/ }), -/* 45 */ +/* 46 */ /***/ (function(module, exports, __webpack_require__) { var DomUtils = module.exports; [ - __webpack_require__(602), + __webpack_require__(599), + __webpack_require__(604), + __webpack_require__(605), + __webpack_require__(606), __webpack_require__(607), - __webpack_require__(608), - __webpack_require__(609), - __webpack_require__(610), - __webpack_require__(611) + __webpack_require__(608) ].forEach(function(ext){ Object.keys(ext).forEach(function(key){ DomUtils[key] = ext[key].bind(DomUtils); @@ -8850,7 +9009,7 @@ var DomUtils = module.exports; /***/ }), -/* 46 */ +/* 47 */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! @@ -8905,69 +9064,127 @@ var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! /***/ }), -/* 47 */ +/* 48 */ /***/ (function(module, exports, __webpack_require__) { -/* WEBPACK VAR INJECTION */(function(Buffer) {// prototype class for hash functions +"use strict"; +/* WEBPACK VAR INJECTION */(function(global, process) { + +function oldBrowser () { + throw new Error('secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11') +} + +var Buffer = __webpack_require__(8).Buffer +var crypto = global.crypto || global.msCrypto + +if (crypto && crypto.getRandomValues) { + module.exports = randomBytes +} else { + module.exports = oldBrowser +} + +function randomBytes (size, cb) { + // phantomjs needs to throw + if (size > 65536) throw new Error('requested too many random bytes') + // in case browserify isn't using the Uint8Array version + var rawBytes = new global.Uint8Array(size) + + // This will not work in older browsers. + // See https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues + if (size > 0) { // getRandomValues fails on IE if size == 0 + crypto.getRandomValues(rawBytes) + } + + // XXX: phantomjs doesn't like a buffer being passed here + var bytes = Buffer.from(rawBytes.buffer) + + if (typeof cb === 'function') { + return process.nextTick(function () { + cb(null, bytes) + }) + } + + return bytes +} + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(10), __webpack_require__(0))) + +/***/ }), +/* 49 */ +/***/ (function(module, exports, __webpack_require__) { + +var Buffer = __webpack_require__(8).Buffer + +// prototype class for hash functions function Hash (blockSize, finalSize) { - this._block = new Buffer(blockSize) + this._block = Buffer.alloc(blockSize) this._finalSize = finalSize this._blockSize = blockSize this._len = 0 - this._s = 0 } Hash.prototype.update = function (data, enc) { if (typeof data === 'string') { enc = enc || 'utf8' - data = new Buffer(data, enc) + data = Buffer.from(data, enc) } - var l = this._len += data.length - var s = this._s || 0 - var f = 0 - var buffer = this._block + var block = this._block + var blockSize = this._blockSize + var length = data.length + var accum = this._len - while (s < l) { - var t = Math.min(data.length, f + this._blockSize - (s % this._blockSize)) - var ch = (t - f) + for (var offset = 0; offset < length;) { + var assigned = accum % blockSize + var remainder = Math.min(length - offset, blockSize - assigned) - for (var i = 0; i < ch; i++) { - buffer[(s % this._blockSize) + i] = data[i + f] + for (var i = 0; i < remainder; i++) { + block[assigned + i] = data[offset + i] } - s += ch - f += ch + accum += remainder + offset += remainder - if ((s % this._blockSize) === 0) { - this._update(buffer) + if ((accum % blockSize) === 0) { + this._update(block) } } - this._s = s + this._len += length return this } Hash.prototype.digest = function (enc) { - // Suppose the length of the message M, in bits, is l - var l = this._len * 8 + var rem = this._len % this._blockSize - // Append the bit 1 to the end of the message - this._block[this._len % this._blockSize] = 0x80 + this._block[rem] = 0x80 - // and then k zero bits, where k is the smallest non-negative solution to the equation (l + 1 + k) === finalSize mod blockSize - this._block.fill(0, this._len % this._blockSize + 1) + // zero (rem + 1) trailing bits, where (rem + 1) is the smallest + // non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize + this._block.fill(0, rem + 1) - if (l % (this._blockSize * 8) >= this._finalSize * 8) { + if (rem >= this._finalSize) { this._update(this._block) this._block.fill(0) } - // to this append the block which is equal to the number l written in binary - // TODO: handle case where l is > Math.pow(2, 29) - this._block.writeInt32BE(l, this._blockSize - 4) + var bits = this._len * 8 - var hash = this._update(this._block) || this._hash() + // uint32 + if (bits <= 0xffffffff) { + this._block.writeUInt32BE(bits, this._blockSize - 4) + + // uint64 + } else { + var lowBits = bits & 0xffffffff + var highBits = (bits - lowBits) / 0x100000000 + + this._block.writeUInt32BE(highBits, this._blockSize - 8) + this._block.writeUInt32BE(lowBits, this._blockSize - 4) + } + + this._update(this._block) + var hash = this._hash() return enc ? hash.toString(enc) : hash } @@ -8978,17 +9195,9 @@ Hash.prototype._update = function () { module.exports = Hash -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1).Buffer)) /***/ }), -/* 48 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(1) - - -/***/ }), -/* 49 */ +/* 50 */ /***/ (function(module, exports) { /** @@ -9015,7 +9224,7 @@ module.exports = apply; /***/ }), -/* 50 */ +/* 51 */ /***/ (function(module, exports) { /** Used for built-in method references. */ @@ -9039,11 +9248,11 @@ module.exports = isPrototype; /***/ }), -/* 51 */ +/* 52 */ /***/ (function(module, exports, __webpack_require__) { -var baseIsArguments = __webpack_require__(382), - isObjectLike = __webpack_require__(24); +var baseIsArguments = __webpack_require__(377), + isObjectLike = __webpack_require__(25); /** Used for built-in method references. */ var objectProto = Object.prototype; @@ -9081,11 +9290,11 @@ module.exports = isArguments; /***/ }), -/* 52 */ +/* 53 */ /***/ (function(module, exports, __webpack_require__) { -/* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(14), - stubFalse = __webpack_require__(384); +/* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(15), + stubFalse = __webpack_require__(379); /** Detect free variable `exports`. */ var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports; @@ -9123,15 +9332,15 @@ var isBuffer = nativeIsBuffer || stubFalse; module.exports = isBuffer; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(16)(module))) +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(17)(module))) /***/ }), -/* 53 */ +/* 54 */ /***/ (function(module, exports, __webpack_require__) { -var arrayLikeKeys = __webpack_require__(207), - baseKeysIn = __webpack_require__(390), - isArrayLike = __webpack_require__(19); +var arrayLikeKeys = __webpack_require__(204), + baseKeysIn = __webpack_require__(385), + isArrayLike = __webpack_require__(20); /** * Creates an array of the own and inherited enumerable property names of `object`. @@ -9164,7 +9373,7 @@ module.exports = keysIn; /***/ }), -/* 54 */ +/* 55 */ /***/ (function(module, exports) { /** @@ -9188,11 +9397,11 @@ module.exports = setToArray; /***/ }), -/* 55 */ +/* 56 */ /***/ (function(module, exports, __webpack_require__) { -var baseGetTag = __webpack_require__(32), - isObjectLike = __webpack_require__(24); +var baseGetTag = __webpack_require__(33), + isObjectLike = __webpack_require__(25); /** `Object#toString` result references. */ var symbolTag = '[object Symbol]'; @@ -9223,10 +9432,10 @@ module.exports = isSymbol; /***/ }), -/* 56 */ +/* 57 */ /***/ (function(module, exports, __webpack_require__) { -var isSymbol = __webpack_require__(55); +var isSymbol = __webpack_require__(56); /** Used as references for various `Number` constants. */ var INFINITY = 1 / 0; @@ -9250,10 +9459,10 @@ module.exports = toKey; /***/ }), -/* 57 */ +/* 58 */ /***/ (function(module, exports, __webpack_require__) { -var toFinite = __webpack_require__(227); +var toFinite = __webpack_require__(224); /** * Converts `value` to an integer. @@ -9291,54 +9500,26 @@ function toInteger(value) { module.exports = toInteger; -/***/ }), -/* 58 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright (c) 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - - - -var emptyObject = {}; - -if (process.env.NODE_ENV !== 'production') { - Object.freeze(emptyObject); -} - -module.exports = emptyObject; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) - /***/ }), /* 59 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. + * Copyright (c) 2013-present, Facebook, Inc. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. * */ var EventPluginHub = __webpack_require__(60); -var EventPluginUtils = __webpack_require__(151); +var EventPluginUtils = __webpack_require__(149); -var accumulateInto = __webpack_require__(257); -var forEachAccumulated = __webpack_require__(258); +var accumulateInto = __webpack_require__(254); +var forEachAccumulated = __webpack_require__(255); var warning = __webpack_require__(4); var getListener = EventPluginHub.getListener; @@ -9463,26 +9644,24 @@ module.exports = EventPropagators; "use strict"; /* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. + * Copyright (c) 2013-present, Facebook, Inc. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. * */ -var _prodInvariant = __webpack_require__(7); +var _prodInvariant = __webpack_require__(6); -var EventPluginRegistry = __webpack_require__(150); -var EventPluginUtils = __webpack_require__(151); -var ReactErrorUtils = __webpack_require__(152); +var EventPluginRegistry = __webpack_require__(148); +var EventPluginUtils = __webpack_require__(149); +var ReactErrorUtils = __webpack_require__(150); -var accumulateInto = __webpack_require__(257); -var forEachAccumulated = __webpack_require__(258); -var invariant = __webpack_require__(3); +var accumulateInto = __webpack_require__(254); +var forEachAccumulated = __webpack_require__(255); +var invariant = __webpack_require__(2); /** * Internal store for event listeners @@ -9569,12 +9748,10 @@ function shouldPreventMouseEvent(name, type, props) { * @public */ var EventPluginHub = { - /** * Methods for injecting dependencies. */ injection: { - /** * @param {array} InjectedEventPluginOrder * @public @@ -9585,7 +9762,6 @@ var EventPluginHub = { * @param {object} injectedNamesToPlugins Map from names to plugin modules. */ injectEventPluginsByName: EventPluginRegistry.injectEventPluginsByName - }, /** @@ -9735,7 +9911,6 @@ var EventPluginHub = { __getListenerBank: function () { return listenerBank; } - }; module.exports = EventPluginHub; @@ -9747,20 +9922,18 @@ module.exports = EventPluginHub; "use strict"; /* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. + * Copyright (c) 2013-present, Facebook, Inc. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. * */ -var _prodInvariant = __webpack_require__(7); +var _prodInvariant = __webpack_require__(6); -var invariant = __webpack_require__(3); +var invariant = __webpack_require__(2); function checkMask(value, bitmask) { return (value & bitmask) === bitmask; @@ -9884,7 +10057,6 @@ var ATTRIBUTE_NAME_START_CHAR = ':A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\ * @see http://jsperf.com/key-missing */ var DOMProperty = { - ID_ATTRIBUTE_NAME: 'data-reactid', ROOT_ATTRIBUTE_NAME: 'data-reactroot', @@ -9963,19 +10135,17 @@ module.exports = DOMProperty; "use strict"; /* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. + * Copyright (c) 2013-present, Facebook, Inc. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. * */ -var ReactRef = __webpack_require__(507); -var ReactInstrumentation = __webpack_require__(21); +var ReactRef = __webpack_require__(504); +var ReactInstrumentation = __webpack_require__(22); var warning = __webpack_require__(4); @@ -9988,7 +10158,6 @@ function attachRefs() { } var ReactReconciler = { - /** * Initializes the component, renders markup, and registers event listeners. * @@ -10000,8 +10169,8 @@ var ReactReconciler = { * @final * @internal */ - mountComponent: function (internalInstance, transaction, hostParent, hostContainerInfo, context, parentDebugID // 0 in production and for roots - ) { + mountComponent: function (internalInstance, transaction, hostParent, hostContainerInfo, context, parentDebugID) // 0 in production and for roots + { if (process.env.NODE_ENV !== 'production') { if (internalInstance._debugID !== 0) { ReactInstrumentation.debugTool.onBeforeMountComponent(internalInstance._debugID, internalInstance._currentElement, parentDebugID); @@ -10125,7 +10294,6 @@ var ReactReconciler = { } } } - }; module.exports = ReactReconciler; @@ -10137,20 +10305,18 @@ module.exports = ReactReconciler; "use strict"; /** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. + * Copyright (c) 2013-present, Facebook, Inc. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. * */ -var SyntheticEvent = __webpack_require__(26); +var SyntheticEvent = __webpack_require__(27); -var getEventTarget = __webpack_require__(153); +var getEventTarget = __webpack_require__(151); /** * @interface UIEvent @@ -10201,22 +10367,20 @@ module.exports = SyntheticUIEvent; "use strict"; /** - * Copyright 2015-present, Facebook, Inc. - * All rights reserved. + * Copyright (c) 2015-present, Facebook, Inc. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. * */ -var DOMNamespaces = __webpack_require__(157); -var setInnerHTML = __webpack_require__(158); +var DOMNamespaces = __webpack_require__(155); +var setInnerHTML = __webpack_require__(156); -var createMicrosoftUnsafeLocalFunction = __webpack_require__(159); -var setTextContent = __webpack_require__(264); +var createMicrosoftUnsafeLocalFunction = __webpack_require__(157); +var setTextContent = __webpack_require__(262); var ELEMENT_NODE_TYPE = 1; var DOCUMENT_FRAGMENT_NODE_TYPE = 11; @@ -10367,14 +10531,14 @@ module.exports = { module.exports = Stream; var EE = __webpack_require__(106).EventEmitter; -var inherits = __webpack_require__(2); +var inherits = __webpack_require__(1); inherits(Stream, EE); -Stream.Readable = __webpack_require__(171); -Stream.Writable = __webpack_require__(596); -Stream.Duplex = __webpack_require__(597); -Stream.Transform = __webpack_require__(598); -Stream.PassThrough = __webpack_require__(599); +Stream.Readable = __webpack_require__(169); +Stream.Writable = __webpack_require__(593); +Stream.Duplex = __webpack_require__(594); +Stream.Transform = __webpack_require__(595); +Stream.PassThrough = __webpack_require__(596); // Backwards-compat with node 0.4.x Stream.Stream = Stream; @@ -10584,14 +10748,14 @@ function objectToString(o) { return Object.prototype.toString.call(o); } -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1).Buffer)) +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(7).Buffer)) /***/ }), /* 68 */ /***/ (function(module, exports, __webpack_require__) { var parse = __webpack_require__(105), - render = __webpack_require__(175); + render = __webpack_require__(171); /** * HTML Tags @@ -10692,60 +10856,14 @@ module.exports = { /* 70 */ /***/ (function(module, exports, __webpack_require__) { -"use strict"; -/* WEBPACK VAR INJECTION */(function(global, process) { - -function oldBrowser () { - throw new Error('secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11') -} - -var Buffer = __webpack_require__(698).Buffer -var crypto = global.crypto || global.msCrypto - -if (crypto && crypto.getRandomValues) { - module.exports = randomBytes -} else { - module.exports = oldBrowser -} - -function randomBytes (size, cb) { - // phantomjs needs to throw - if (size > 65536) throw new Error('requested too many random bytes') - // in case browserify isn't using the Uint8Array version - var rawBytes = new global.Uint8Array(size) - - // This will not work in older browsers. - // See https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues - if (size > 0) { // getRandomValues fails on IE if size == 0 - crypto.getRandomValues(rawBytes) - } - - // XXX: phantomjs doesn't like a buffer being passed here - var bytes = Buffer.from(rawBytes.buffer) - - if (typeof cb === 'function') { - return process.nextTick(function () { - cb(null, bytes) - }) - } - - return bytes -} - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(9), __webpack_require__(0))) - -/***/ }), -/* 71 */ -/***/ (function(module, exports, __webpack_require__) { - "use strict"; /* WEBPACK VAR INJECTION */(function(Buffer) { -var inherits = __webpack_require__(2) -var md5 = __webpack_require__(182) -var RIPEMD160 = __webpack_require__(183) -var sha = __webpack_require__(184) +var inherits = __webpack_require__(1) +var md5 = __webpack_require__(178) +var RIPEMD160 = __webpack_require__(179) +var sha = __webpack_require__(180) -var Base = __webpack_require__(30) +var Base = __webpack_require__(31) function HashNoConstructor (hash) { Base.call(this, 'digest') @@ -10792,10 +10910,10 @@ module.exports = function createHash (alg) { return new Hash(sha(alg)) } -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1).Buffer)) +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(7).Buffer)) /***/ }), -/* 72 */ +/* 71 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(Buffer) {module.exports = function xor (a, b) { @@ -10809,17 +10927,17 @@ module.exports = function createHash (alg) { return buffer } -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1).Buffer)) +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(7).Buffer)) /***/ }), -/* 73 */ +/* 72 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var utils = __webpack_require__(23); -var assert = __webpack_require__(18); +var utils = __webpack_require__(24); +var assert = __webpack_require__(19); function BlockHash() { this.pending = null; @@ -10911,42 +11029,42 @@ BlockHash.prototype._pad = function pad() { /***/ }), -/* 74 */ +/* 73 */ /***/ (function(module, exports, __webpack_require__) { var asn1 = exports; -asn1.bignum = __webpack_require__(11); +asn1.bignum = __webpack_require__(12); asn1.define = __webpack_require__(751).define; -asn1.base = __webpack_require__(75); -asn1.constants = __webpack_require__(332); +asn1.base = __webpack_require__(74); +asn1.constants = __webpack_require__(328); asn1.decoders = __webpack_require__(757); asn1.encoders = __webpack_require__(759); /***/ }), -/* 75 */ +/* 74 */ /***/ (function(module, exports, __webpack_require__) { var base = exports; base.Reporter = __webpack_require__(754).Reporter; -base.DecoderBuffer = __webpack_require__(331).DecoderBuffer; -base.EncoderBuffer = __webpack_require__(331).EncoderBuffer; +base.DecoderBuffer = __webpack_require__(327).DecoderBuffer; +base.EncoderBuffer = __webpack_require__(327).EncoderBuffer; base.Node = __webpack_require__(755); /***/ }), -/* 76 */ +/* 75 */ /***/ (function(module, exports, __webpack_require__) { -var ListCache = __webpack_require__(77), - stackClear = __webpack_require__(363), - stackDelete = __webpack_require__(364), - stackGet = __webpack_require__(365), - stackHas = __webpack_require__(366), - stackSet = __webpack_require__(367); +var ListCache = __webpack_require__(76), + stackClear = __webpack_require__(358), + stackDelete = __webpack_require__(359), + stackGet = __webpack_require__(360), + stackHas = __webpack_require__(361), + stackSet = __webpack_require__(362); /** * Creates a stack cache object to store key-value pairs. @@ -10971,14 +11089,14 @@ module.exports = Stack; /***/ }), -/* 77 */ +/* 76 */ /***/ (function(module, exports, __webpack_require__) { -var listCacheClear = __webpack_require__(358), - listCacheDelete = __webpack_require__(359), - listCacheGet = __webpack_require__(360), - listCacheHas = __webpack_require__(361), - listCacheSet = __webpack_require__(362); +var listCacheClear = __webpack_require__(353), + listCacheDelete = __webpack_require__(354), + listCacheGet = __webpack_require__(355), + listCacheHas = __webpack_require__(356), + listCacheSet = __webpack_require__(357); /** * Creates an list cache object. @@ -11009,7 +11127,7 @@ module.exports = ListCache; /***/ }), -/* 78 */ +/* 77 */ /***/ (function(module, exports, __webpack_require__) { var eq = __webpack_require__(39); @@ -11036,10 +11154,10 @@ module.exports = assocIndexOf; /***/ }), -/* 79 */ +/* 78 */ /***/ (function(module, exports, __webpack_require__) { -var getNative = __webpack_require__(31); +var getNative = __webpack_require__(32); /* Built-in method references that are verified to be native. */ var nativeCreate = getNative(Object, 'create'); @@ -11048,10 +11166,10 @@ module.exports = nativeCreate; /***/ }), -/* 80 */ +/* 79 */ /***/ (function(module, exports, __webpack_require__) { -var isKeyable = __webpack_require__(376); +var isKeyable = __webpack_require__(371); /** * Gets the data for `map`. @@ -11072,10 +11190,10 @@ module.exports = getMapData; /***/ }), -/* 81 */ +/* 80 */ /***/ (function(module, exports, __webpack_require__) { -var defineProperty = __webpack_require__(195); +var defineProperty = __webpack_require__(192); /** * The base implementation of `assignValue` and `assignMergeValue` without @@ -11103,10 +11221,10 @@ module.exports = baseAssignValue; /***/ }), -/* 82 */ +/* 81 */ /***/ (function(module, exports, __webpack_require__) { -var isObject = __webpack_require__(17); +var isObject = __webpack_require__(18); /** Built-in value references. */ var objectCreate = Object.create; @@ -11139,12 +11257,12 @@ module.exports = baseCreate; /***/ }), -/* 83 */ +/* 82 */ /***/ (function(module, exports, __webpack_require__) { -var baseIsTypedArray = __webpack_require__(385), - baseUnary = __webpack_require__(386), - nodeUtil = __webpack_require__(387); +var baseIsTypedArray = __webpack_require__(380), + baseUnary = __webpack_require__(381), + nodeUtil = __webpack_require__(382); /* Node.js helper references. */ var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; @@ -11172,7 +11290,7 @@ module.exports = isTypedArray; /***/ }), -/* 84 */ +/* 83 */ /***/ (function(module, exports) { /** Used as references for various `Number` constants. */ @@ -11200,11 +11318,11 @@ module.exports = isIndex; /***/ }), -/* 85 */ +/* 84 */ /***/ (function(module, exports, __webpack_require__) { -var baseRest = __webpack_require__(115), - isIterateeCall = __webpack_require__(86); +var baseRest = __webpack_require__(114), + isIterateeCall = __webpack_require__(85); /** * Creates a function like `_.assign`. @@ -11243,13 +11361,13 @@ module.exports = createAssigner; /***/ }), -/* 86 */ +/* 85 */ /***/ (function(module, exports, __webpack_require__) { var eq = __webpack_require__(39), - isArrayLike = __webpack_require__(19), - isIndex = __webpack_require__(84), - isObject = __webpack_require__(17); + isArrayLike = __webpack_require__(20), + isIndex = __webpack_require__(83), + isObject = __webpack_require__(18); /** * Checks if the given arguments are from an iteratee call. @@ -11279,11 +11397,11 @@ module.exports = isIterateeCall; /***/ }), -/* 87 */ +/* 86 */ /***/ (function(module, exports, __webpack_require__) { -var baseMerge = __webpack_require__(118), - createAssigner = __webpack_require__(85); +var baseMerge = __webpack_require__(117), + createAssigner = __webpack_require__(84); /** * This method is like `_.assign` except that it recursively merges own and @@ -11324,7 +11442,7 @@ module.exports = merge; /***/ }), -/* 88 */ +/* 87 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -11392,7 +11510,7 @@ module.exports = warning; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 89 */ +/* 88 */ /***/ (function(module, exports) { /** @@ -11418,16 +11536,16 @@ module.exports = arrayPush; /***/ }), -/* 90 */ +/* 89 */ /***/ (function(module, exports, __webpack_require__) { -var DataView = __webpack_require__(397), - Map = __webpack_require__(119), - Promise = __webpack_require__(398), - Set = __webpack_require__(216), - WeakMap = __webpack_require__(217), - baseGetTag = __webpack_require__(32), - toSource = __webpack_require__(197); +var DataView = __webpack_require__(392), + Map = __webpack_require__(118), + Promise = __webpack_require__(393), + Set = __webpack_require__(213), + WeakMap = __webpack_require__(214), + baseGetTag = __webpack_require__(33), + toSource = __webpack_require__(194); /** `Object#toString` result references. */ var mapTag = '[object Map]', @@ -11482,13 +11600,13 @@ module.exports = getTag; /***/ }), -/* 91 */ +/* 90 */ /***/ (function(module, exports, __webpack_require__) { -var isArray = __webpack_require__(10), - isKey = __webpack_require__(132), - stringToPath = __webpack_require__(421), - toString = __webpack_require__(92); +var isArray = __webpack_require__(11), + isKey = __webpack_require__(131), + stringToPath = __webpack_require__(416), + toString = __webpack_require__(91); /** * Casts `value` to a path array if it's not one. @@ -11509,10 +11627,10 @@ module.exports = castPath; /***/ }), -/* 92 */ +/* 91 */ /***/ (function(module, exports, __webpack_require__) { -var baseToString = __webpack_require__(133); +var baseToString = __webpack_require__(132); /** * Converts `value` to a string. An empty string is returned for `null` @@ -11543,7 +11661,7 @@ module.exports = toString; /***/ }), -/* 93 */ +/* 92 */ /***/ (function(module, exports) { /** @@ -11570,11 +11688,11 @@ module.exports = arrayMap; /***/ }), -/* 94 */ +/* 93 */ /***/ (function(module, exports, __webpack_require__) { -var baseForOwn = __webpack_require__(226), - createBaseEach = __webpack_require__(431); +var baseForOwn = __webpack_require__(223), + createBaseEach = __webpack_require__(426); /** * The base implementation of `_.forEach` without support for iteratee shorthands. @@ -11590,13 +11708,13 @@ module.exports = baseEach; /***/ }), -/* 95 */ +/* 94 */ /***/ (function(module, exports, __webpack_require__) { -var arrayFilter = __webpack_require__(210), - baseFilter = __webpack_require__(437), +var arrayFilter = __webpack_require__(207), + baseFilter = __webpack_require__(432), baseIteratee = __webpack_require__(42), - isArray = __webpack_require__(10); + isArray = __webpack_require__(11); /** * Iterates over elements of `collection`, returning an array of all elements @@ -11644,7 +11762,7 @@ module.exports = filter; /***/ }), -/* 96 */ +/* 95 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -11668,12 +11786,12 @@ exports.default = function (message, element) { }; /***/ }), -/* 97 */ +/* 96 */ /***/ (function(module, exports, __webpack_require__) { -var baseFindIndex = __webpack_require__(229), - baseIsNaN = __webpack_require__(442), - strictIndexOf = __webpack_require__(443); +var baseFindIndex = __webpack_require__(226), + baseIsNaN = __webpack_require__(437), + strictIndexOf = __webpack_require__(438); /** * The base implementation of `_.indexOf` without `fromIndex` bounds checks. @@ -11694,11 +11812,11 @@ module.exports = baseIndexOf; /***/ }), -/* 98 */ +/* 97 */ /***/ (function(module, exports, __webpack_require__) { -var baseCreate = __webpack_require__(82), - isObject = __webpack_require__(17); +var baseCreate = __webpack_require__(81), + isObject = __webpack_require__(18); /** * Creates a function that produces an instance of `Ctor` regardless of @@ -11737,14 +11855,14 @@ module.exports = createCtor; /***/ }), -/* 99 */ +/* 98 */ /***/ (function(module, exports, __webpack_require__) { -module.exports = __webpack_require__(245); +module.exports = __webpack_require__(242); /***/ }), -/* 100 */ +/* 99 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -11754,7 +11872,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var _isBrowser = __webpack_require__(145); +var _isBrowser = __webpack_require__(144); var _isBrowser2 = _interopRequireDefault(_isBrowser); @@ -11763,7 +11881,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de var dom = {}; if ((0, _isBrowser2.default)()) { - var jquery = __webpack_require__(247); + var jquery = __webpack_require__(459); var parseMarkup = function parseMarkup(str) { var context = jquery(str); @@ -11815,7 +11933,7 @@ if ((0, _isBrowser2.default)()) { return '' + markup.documentElement.outerHTML; }; } else { - var cheerio = __webpack_require__(464); + var cheerio = __webpack_require__(460); var $ = cheerio.load('', { decodeEntities: false }); @@ -11859,17 +11977,15 @@ if ((0, _isBrowser2.default)()) { exports.default = dom; /***/ }), -/* 101 */ +/* 100 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. + * Copyright (c) 2013-present, Facebook, Inc. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. * * */ @@ -11890,27 +12006,49 @@ if (process.env.NODE_ENV !== 'production') { module.exports = canDefineProperty; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) +/***/ }), +/* 101 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ + + + +var emptyObject = {}; + +if (process.env.NODE_ENV !== 'production') { + Object.freeze(emptyObject); +} + +module.exports = emptyObject; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) + /***/ }), /* 102 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. + * Copyright (c) 2013-present, Facebook, Inc. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. * * */ -var _prodInvariant = __webpack_require__(7); +var _prodInvariant = __webpack_require__(6); -var invariant = __webpack_require__(3); +var invariant = __webpack_require__(2); var OBSERVED_ERROR = {}; @@ -12005,6 +12143,8 @@ var TransactionImpl = { return !!this._isInTransaction; }, + /* eslint-disable space-before-function-paren */ + /** * Executes the function within a safety window. Use this for the top level * methods that result in large amounts of computation/mutations that would @@ -12023,6 +12163,7 @@ var TransactionImpl = { * @return {*} Return value from `method`. */ perform: function (method, scope, a, b, c, d, e, f) { + /* eslint-enable space-before-function-paren */ !!this.isInTransaction() ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Transaction.perform(...): Cannot initialize a transaction when there is already an outstanding transaction.') : _prodInvariant('27') : void 0; var errorThrown; var ret; @@ -12127,21 +12268,19 @@ module.exports = TransactionImpl; "use strict"; /** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. + * Copyright (c) 2013-present, Facebook, Inc. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. * */ var SyntheticUIEvent = __webpack_require__(63); -var ViewportMetrics = __webpack_require__(263); +var ViewportMetrics = __webpack_require__(261); -var getEventModifierState = __webpack_require__(155); +var getEventModifierState = __webpack_require__(153); /** * @interface MouseEvent @@ -12204,12 +12343,10 @@ module.exports = SyntheticMouseEvent; "use strict"; /** - * Copyright 2016-present, Facebook, Inc. - * All rights reserved. + * Copyright (c) 2016-present, Facebook, Inc. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. * * Based on the escape-html library, which is used under the MIT License below: * @@ -12307,7 +12444,6 @@ function escapeHtml(string) { } // end code copied and modified from escape-html - /** * Escapes text to prevent scripting attacks. * @@ -12333,7 +12469,7 @@ module.exports = escapeTextContentForBrowser; /* WEBPACK VAR INJECTION */(function(Buffer) {/* Module Dependencies */ -var htmlparser = __webpack_require__(44); +var htmlparser = __webpack_require__(45); /* Parser @@ -12417,7 +12553,7 @@ exports.update = function(arr, parent) { // module.exports = $.extend(exports); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1).Buffer)) +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(7).Buffer)) /***/ }), /* 106 */ @@ -12731,6 +12867,57 @@ function isUndefined(arg) { /* 107 */ /***/ (function(module, exports, __webpack_require__) { +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { + +if (!process.version || + process.version.indexOf('v0.') === 0 || + process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) { + module.exports = nextTick; +} else { + module.exports = process.nextTick; +} + +function nextTick(fn, arg1, arg2, arg3) { + if (typeof fn !== 'function') { + throw new TypeError('"callback" argument must be a function'); + } + var len = arguments.length; + var args, i; + switch (len) { + case 0: + case 1: + return process.nextTick(fn); + case 2: + return process.nextTick(function afterTickOne() { + fn.call(null, arg1); + }); + case 3: + return process.nextTick(function afterTickTwo() { + fn.call(null, arg1, arg2); + }); + case 4: + return process.nextTick(function afterTickThree() { + fn.call(null, arg1, arg2, arg3); + }); + default: + args = new Array(len - 1); + i = 0; + while (i < args.length) { + args[i++] = arguments[i]; + } + return process.nextTick(function afterTick() { + fn.apply(null, args); + }); + } +} + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) + +/***/ }), +/* 108 */ +/***/ (function(module, exports, __webpack_require__) { + // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a @@ -12752,7 +12939,7 @@ function isUndefined(arg) { // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. -var Buffer = __webpack_require__(1).Buffer; +var Buffer = __webpack_require__(7).Buffer; var isBufferEncoding = Buffer.isEncoding || function(encoding) { @@ -12955,7 +13142,7 @@ function base64DetectIncompleteChar(buffer) { /***/ }), -/* 108 */ +/* 109 */ /***/ (function(module, exports) { /** @@ -13526,22 +13713,23 @@ module.exports = forEach; /***/ }), -/* 109 */ +/* 110 */ /***/ (function(module, exports, __webpack_require__) { -var Buffer = __webpack_require__(709).Buffer -var MD5 = __webpack_require__(710) +var Buffer = __webpack_require__(8).Buffer +var MD5 = __webpack_require__(704) /* eslint-disable camelcase */ -function EVP_BytesToKey (password, salt, keyLen, ivLen) { +function EVP_BytesToKey (password, salt, keyBits, ivLen) { if (!Buffer.isBuffer(password)) password = Buffer.from(password, 'binary') if (salt) { if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, 'binary') if (salt.length !== 8) throw new RangeError('salt should be Buffer with 8 byte length') } + var keyLen = keyBits / 8 var key = Buffer.alloc(keyLen) - var iv = Buffer.alloc(ivLen) + var iv = Buffer.alloc(ivLen || 0) var tmp = Buffer.alloc(0) while (keyLen > 0 || ivLen > 0) { @@ -13576,71 +13764,118 @@ module.exports = EVP_BytesToKey /***/ }), -/* 110 */ +/* 111 */ /***/ (function(module, exports, __webpack_require__) { -/* WEBPACK VAR INJECTION */(function(Buffer) {// based on the aes implimentation in triple sec +// based on the aes implimentation in triple sec // https://github.com/keybase/triplesec - // which is in turn based on the one from crypto-js // https://code.google.com/p/crypto-js/ -var uint_max = Math.pow(2, 32) -function fixup_uint32 (x) { - var ret, x_pos - ret = x > uint_max || x < 0 ? (x_pos = Math.abs(x) % uint_max, x < 0 ? uint_max - x_pos : x_pos) : x - return ret +var Buffer = __webpack_require__(8).Buffer + +function asUInt32Array (buf) { + if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf) + + var len = (buf.length / 4) | 0 + var out = new Array(len) + + for (var i = 0; i < len; i++) { + out[i] = buf.readUInt32BE(i * 4) + } + + return out } -function scrub_vec (v) { + +function scrubVec (v) { for (var i = 0; i < v.length; v++) { v[i] = 0 } - return false } -function Global () { - this.SBOX = [] - this.INV_SBOX = [] - this.SUB_MIX = [[], [], [], []] - this.INV_SUB_MIX = [[], [], [], []] - this.init() - this.RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36] -} +function cryptBlock (M, keySchedule, SUB_MIX, SBOX, nRounds) { + var SUB_MIX0 = SUB_MIX[0] + var SUB_MIX1 = SUB_MIX[1] + var SUB_MIX2 = SUB_MIX[2] + var SUB_MIX3 = SUB_MIX[3] -Global.prototype.init = function () { - var d, i, sx, t, x, x2, x4, x8, xi, _i - d = (function () { - var _i, _results - _results = [] - for (i = _i = 0; _i < 256; i = ++_i) { - if (i < 128) { - _results.push(i << 1) - } else { - _results.push((i << 1) ^ 0x11b) - } + var s0 = M[0] ^ keySchedule[0] + var s1 = M[1] ^ keySchedule[1] + var s2 = M[2] ^ keySchedule[2] + var s3 = M[3] ^ keySchedule[3] + var t0, t1, t2, t3 + var ksRow = 4 + + for (var round = 1; round < nRounds; round++) { + t0 = SUB_MIX0[s0 >>> 24] ^ SUB_MIX1[(s1 >>> 16) & 0xff] ^ SUB_MIX2[(s2 >>> 8) & 0xff] ^ SUB_MIX3[s3 & 0xff] ^ keySchedule[ksRow++] + t1 = SUB_MIX0[s1 >>> 24] ^ SUB_MIX1[(s2 >>> 16) & 0xff] ^ SUB_MIX2[(s3 >>> 8) & 0xff] ^ SUB_MIX3[s0 & 0xff] ^ keySchedule[ksRow++] + t2 = SUB_MIX0[s2 >>> 24] ^ SUB_MIX1[(s3 >>> 16) & 0xff] ^ SUB_MIX2[(s0 >>> 8) & 0xff] ^ SUB_MIX3[s1 & 0xff] ^ keySchedule[ksRow++] + t3 = SUB_MIX0[s3 >>> 24] ^ SUB_MIX1[(s0 >>> 16) & 0xff] ^ SUB_MIX2[(s1 >>> 8) & 0xff] ^ SUB_MIX3[s2 & 0xff] ^ keySchedule[ksRow++] + s0 = t0 + s1 = t1 + s2 = t2 + s3 = t3 + } + + t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++] + t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++] + t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++] + t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++] + t0 = t0 >>> 0 + t1 = t1 >>> 0 + t2 = t2 >>> 0 + t3 = t3 >>> 0 + + return [t0, t1, t2, t3] +} + +// AES constants +var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36] +var G = (function () { + // Compute double table + var d = new Array(256) + for (var j = 0; j < 256; j++) { + if (j < 128) { + d[j] = j << 1 + } else { + d[j] = (j << 1) ^ 0x11b } - return _results - })() - x = 0 - xi = 0 - for (i = _i = 0; _i < 256; i = ++_i) { - sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4) + } + + var SBOX = [] + var INV_SBOX = [] + var SUB_MIX = [[], [], [], []] + var INV_SUB_MIX = [[], [], [], []] + + // Walk GF(2^8) + var x = 0 + var xi = 0 + for (var i = 0; i < 256; ++i) { + // Compute sbox + var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4) sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63 - this.SBOX[x] = sx - this.INV_SBOX[sx] = x - x2 = d[x] - x4 = d[x2] - x8 = d[x4] - t = (d[sx] * 0x101) ^ (sx * 0x1010100) - this.SUB_MIX[0][x] = (t << 24) | (t >>> 8) - this.SUB_MIX[1][x] = (t << 16) | (t >>> 16) - this.SUB_MIX[2][x] = (t << 8) | (t >>> 24) - this.SUB_MIX[3][x] = t + SBOX[x] = sx + INV_SBOX[sx] = x + + // Compute multiplication + var x2 = d[x] + var x4 = d[x2] + var x8 = d[x4] + + // Compute sub bytes, mix columns tables + var t = (d[sx] * 0x101) ^ (sx * 0x1010100) + SUB_MIX[0][x] = (t << 24) | (t >>> 8) + SUB_MIX[1][x] = (t << 16) | (t >>> 16) + SUB_MIX[2][x] = (t << 8) | (t >>> 24) + SUB_MIX[3][x] = t + + // Compute inv sub bytes, inv mix columns tables t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100) - this.INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8) - this.INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16) - this.INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24) - this.INV_SUB_MIX[3][sx] = t + INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8) + INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16) + INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24) + INV_SUB_MIX[3][sx] = t + if (x === 0) { x = xi = 1 } else { @@ -13648,56 +13883,87 @@ Global.prototype.init = function () { xi ^= d[d[xi]] } } - return true -} - -var G = new Global() -AES.blockSize = 4 * 4 + return { + SBOX: SBOX, + INV_SBOX: INV_SBOX, + SUB_MIX: SUB_MIX, + INV_SUB_MIX: INV_SUB_MIX + } +})() -AES.prototype.blockSize = AES.blockSize +function AES (key) { + this._key = asUInt32Array(key) + this._reset() +} +AES.blockSize = 4 * 4 AES.keySize = 256 / 8 - +AES.prototype.blockSize = AES.blockSize AES.prototype.keySize = AES.keySize +AES.prototype._reset = function () { + var keyWords = this._key + var keySize = keyWords.length + var nRounds = keySize + 6 + var ksRows = (nRounds + 1) * 4 -function bufferToArray (buf) { - var len = buf.length / 4 - var out = new Array(len) - var i = -1 - while (++i < len) { - out[i] = buf.readUInt32BE(i * 4) + var keySchedule = [] + for (var k = 0; k < keySize; k++) { + keySchedule[k] = keyWords[k] } - return out -} -function AES (key) { - this._key = bufferToArray(key) - this._doReset() -} -AES.prototype._doReset = function () { - var invKsRow, keySize, keyWords, ksRow, ksRows, t - keyWords = this._key - keySize = keyWords.length - this._nRounds = keySize + 6 - ksRows = (this._nRounds + 1) * 4 - this._keySchedule = [] - for (ksRow = 0; ksRow < ksRows; ksRow++) { - this._keySchedule[ksRow] = ksRow < keySize ? keyWords[ksRow] : (t = this._keySchedule[ksRow - 1], (ksRow % keySize) === 0 ? (t = (t << 8) | (t >>> 24), t = (G.SBOX[t >>> 24] << 24) | (G.SBOX[(t >>> 16) & 0xff] << 16) | (G.SBOX[(t >>> 8) & 0xff] << 8) | G.SBOX[t & 0xff], t ^= G.RCON[(ksRow / keySize) | 0] << 24) : keySize > 6 && ksRow % keySize === 4 ? t = (G.SBOX[t >>> 24] << 24) | (G.SBOX[(t >>> 16) & 0xff] << 16) | (G.SBOX[(t >>> 8) & 0xff] << 8) | G.SBOX[t & 0xff] : void 0, this._keySchedule[ksRow - keySize] ^ t) + for (k = keySize; k < ksRows; k++) { + var t = keySchedule[k - 1] + + if (k % keySize === 0) { + t = (t << 8) | (t >>> 24) + t = + (G.SBOX[t >>> 24] << 24) | + (G.SBOX[(t >>> 16) & 0xff] << 16) | + (G.SBOX[(t >>> 8) & 0xff] << 8) | + (G.SBOX[t & 0xff]) + + t ^= RCON[(k / keySize) | 0] << 24 + } else if (keySize > 6 && k % keySize === 4) { + t = + (G.SBOX[t >>> 24] << 24) | + (G.SBOX[(t >>> 16) & 0xff] << 16) | + (G.SBOX[(t >>> 8) & 0xff] << 8) | + (G.SBOX[t & 0xff]) + } + + keySchedule[k] = keySchedule[k - keySize] ^ t } - this._invKeySchedule = [] - for (invKsRow = 0; invKsRow < ksRows; invKsRow++) { - ksRow = ksRows - invKsRow - t = this._keySchedule[ksRow - (invKsRow % 4 ? 0 : 4)] - this._invKeySchedule[invKsRow] = invKsRow < 4 || ksRow <= 4 ? t : G.INV_SUB_MIX[0][G.SBOX[t >>> 24]] ^ G.INV_SUB_MIX[1][G.SBOX[(t >>> 16) & 0xff]] ^ G.INV_SUB_MIX[2][G.SBOX[(t >>> 8) & 0xff]] ^ G.INV_SUB_MIX[3][G.SBOX[t & 0xff]] + + var invKeySchedule = [] + for (var ik = 0; ik < ksRows; ik++) { + var ksR = ksRows - ik + var tt = keySchedule[ksR - (ik % 4 ? 0 : 4)] + + if (ik < 4 || ksR <= 4) { + invKeySchedule[ik] = tt + } else { + invKeySchedule[ik] = + G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^ + G.INV_SUB_MIX[1][G.SBOX[(tt >>> 16) & 0xff]] ^ + G.INV_SUB_MIX[2][G.SBOX[(tt >>> 8) & 0xff]] ^ + G.INV_SUB_MIX[3][G.SBOX[tt & 0xff]] + } } - return true + + this._nRounds = nRounds + this._keySchedule = keySchedule + this._invKeySchedule = invKeySchedule +} + +AES.prototype.encryptBlockRaw = function (M) { + M = asUInt32Array(M) + return cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds) } AES.prototype.encryptBlock = function (M) { - M = bufferToArray(new Buffer(M)) - var out = this._doCryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX) - var buf = new Buffer(16) + var out = this.encryptBlockRaw(M) + var buf = Buffer.allocUnsafe(16) buf.writeUInt32BE(out[0], 0) buf.writeUInt32BE(out[1], 4) buf.writeUInt32BE(out[2], 8) @@ -13706,12 +13972,15 @@ AES.prototype.encryptBlock = function (M) { } AES.prototype.decryptBlock = function (M) { - M = bufferToArray(new Buffer(M)) - var temp = [M[3], M[1]] - M[1] = temp[0] - M[3] = temp[1] - var out = this._doCryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX) - var buf = new Buffer(16) + M = asUInt32Array(M) + + // swap + var m1 = M[1] + M[1] = M[3] + M[3] = m1 + + var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds) + var buf = Buffer.allocUnsafe(16) buf.writeUInt32BE(out[0], 0) buf.writeUInt32BE(out[3], 4) buf.writeUInt32BE(out[2], 8) @@ -13720,264 +13989,18 @@ AES.prototype.decryptBlock = function (M) { } AES.prototype.scrub = function () { - scrub_vec(this._keySchedule) - scrub_vec(this._invKeySchedule) - scrub_vec(this._key) -} - -AES.prototype._doCryptBlock = function (M, keySchedule, SUB_MIX, SBOX) { - var ksRow, s0, s1, s2, s3, t0, t1, t2, t3 - - s0 = M[0] ^ keySchedule[0] - s1 = M[1] ^ keySchedule[1] - s2 = M[2] ^ keySchedule[2] - s3 = M[3] ^ keySchedule[3] - ksRow = 4 - for (var round = 1; round < this._nRounds; round++) { - t0 = SUB_MIX[0][s0 >>> 24] ^ SUB_MIX[1][(s1 >>> 16) & 0xff] ^ SUB_MIX[2][(s2 >>> 8) & 0xff] ^ SUB_MIX[3][s3 & 0xff] ^ keySchedule[ksRow++] - t1 = SUB_MIX[0][s1 >>> 24] ^ SUB_MIX[1][(s2 >>> 16) & 0xff] ^ SUB_MIX[2][(s3 >>> 8) & 0xff] ^ SUB_MIX[3][s0 & 0xff] ^ keySchedule[ksRow++] - t2 = SUB_MIX[0][s2 >>> 24] ^ SUB_MIX[1][(s3 >>> 16) & 0xff] ^ SUB_MIX[2][(s0 >>> 8) & 0xff] ^ SUB_MIX[3][s1 & 0xff] ^ keySchedule[ksRow++] - t3 = SUB_MIX[0][s3 >>> 24] ^ SUB_MIX[1][(s0 >>> 16) & 0xff] ^ SUB_MIX[2][(s1 >>> 8) & 0xff] ^ SUB_MIX[3][s2 & 0xff] ^ keySchedule[ksRow++] - s0 = t0 - s1 = t1 - s2 = t2 - s3 = t3 - } - t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++] - t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++] - t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++] - t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++] - return [ - fixup_uint32(t0), - fixup_uint32(t1), - fixup_uint32(t2), - fixup_uint32(t3) - ] + scrubVec(this._keySchedule) + scrubVec(this._invKeySchedule) + scrubVec(this._key) } -exports.AES = AES - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1).Buffer)) - -/***/ }), -/* 111 */ -/***/ (function(module, exports) { - -exports['aes-128-ecb'] = { - cipher: 'AES', - key: 128, - iv: 0, - mode: 'ECB', - type: 'block' -} -exports['aes-192-ecb'] = { - cipher: 'AES', - key: 192, - iv: 0, - mode: 'ECB', - type: 'block' -} -exports['aes-256-ecb'] = { - cipher: 'AES', - key: 256, - iv: 0, - mode: 'ECB', - type: 'block' -} -exports['aes-128-cbc'] = { - cipher: 'AES', - key: 128, - iv: 16, - mode: 'CBC', - type: 'block' -} -exports['aes-192-cbc'] = { - cipher: 'AES', - key: 192, - iv: 16, - mode: 'CBC', - type: 'block' -} -exports['aes-256-cbc'] = { - cipher: 'AES', - key: 256, - iv: 16, - mode: 'CBC', - type: 'block' -} -exports['aes128'] = exports['aes-128-cbc'] -exports['aes192'] = exports['aes-192-cbc'] -exports['aes256'] = exports['aes-256-cbc'] -exports['aes-128-cfb'] = { - cipher: 'AES', - key: 128, - iv: 16, - mode: 'CFB', - type: 'stream' -} -exports['aes-192-cfb'] = { - cipher: 'AES', - key: 192, - iv: 16, - mode: 'CFB', - type: 'stream' -} -exports['aes-256-cfb'] = { - cipher: 'AES', - key: 256, - iv: 16, - mode: 'CFB', - type: 'stream' -} -exports['aes-128-cfb8'] = { - cipher: 'AES', - key: 128, - iv: 16, - mode: 'CFB8', - type: 'stream' -} -exports['aes-192-cfb8'] = { - cipher: 'AES', - key: 192, - iv: 16, - mode: 'CFB8', - type: 'stream' -} -exports['aes-256-cfb8'] = { - cipher: 'AES', - key: 256, - iv: 16, - mode: 'CFB8', - type: 'stream' -} -exports['aes-128-cfb1'] = { - cipher: 'AES', - key: 128, - iv: 16, - mode: 'CFB1', - type: 'stream' -} -exports['aes-192-cfb1'] = { - cipher: 'AES', - key: 192, - iv: 16, - mode: 'CFB1', - type: 'stream' -} -exports['aes-256-cfb1'] = { - cipher: 'AES', - key: 256, - iv: 16, - mode: 'CFB1', - type: 'stream' -} -exports['aes-128-ofb'] = { - cipher: 'AES', - key: 128, - iv: 16, - mode: 'OFB', - type: 'stream' -} -exports['aes-192-ofb'] = { - cipher: 'AES', - key: 192, - iv: 16, - mode: 'OFB', - type: 'stream' -} -exports['aes-256-ofb'] = { - cipher: 'AES', - key: 256, - iv: 16, - mode: 'OFB', - type: 'stream' -} -exports['aes-128-ctr'] = { - cipher: 'AES', - key: 128, - iv: 16, - mode: 'CTR', - type: 'stream' -} -exports['aes-192-ctr'] = { - cipher: 'AES', - key: 192, - iv: 16, - mode: 'CTR', - type: 'stream' -} -exports['aes-256-ctr'] = { - cipher: 'AES', - key: 256, - iv: 16, - mode: 'CTR', - type: 'stream' -} -exports['aes-128-gcm'] = { - cipher: 'AES', - key: 128, - iv: 12, - mode: 'GCM', - type: 'auth' -} -exports['aes-192-gcm'] = { - cipher: 'AES', - key: 192, - iv: 12, - mode: 'GCM', - type: 'auth' -} -exports['aes-256-gcm'] = { - cipher: 'AES', - key: 256, - iv: 12, - mode: 'GCM', - type: 'auth' -} +module.exports.AES = AES /***/ }), /* 112 */ /***/ (function(module, exports, __webpack_require__) { -/* WEBPACK VAR INJECTION */(function(Buffer) {var xor = __webpack_require__(72) - -function incr32 (iv) { - var len = iv.length - var item - while (len--) { - item = iv.readUInt8(len) - if (item === 255) { - iv.writeUInt8(0, len) - } else { - item++ - iv.writeUInt8(item, len) - break - } - } -} - -function getBlock (self) { - var out = self._cipher.encryptBlock(self._prev) - incr32(self._prev) - return out -} - -exports.encrypt = function (self, chunk) { - while (self._cache.length < chunk.length) { - self._cache = Buffer.concat([self._cache, getBlock(self)]) - } - var pad = self._cache.slice(0, chunk.length) - self._cache = self._cache.slice(chunk.length) - return xor(chunk, pad) -} - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1).Buffer)) - -/***/ }), -/* 113 */ -/***/ (function(module, exports, __webpack_require__) { - "use strict"; @@ -13990,14 +14013,14 @@ curve.edwards = __webpack_require__(734); /***/ }), -/* 114 */ +/* 113 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(Buffer) {var asn1 = __webpack_require__(750) var aesid = __webpack_require__(762) var fixProc = __webpack_require__(763) -var ciphers = __webpack_require__(185) -var compat = __webpack_require__(312) +var ciphers = __webpack_require__(181) +var compat = __webpack_require__(311) module.exports = parseKeys function parseKeys (buffer) { @@ -14100,15 +14123,15 @@ function decrypt (data, password) { return Buffer.concat(out) } -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1).Buffer)) +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(7).Buffer)) /***/ }), -/* 115 */ +/* 114 */ /***/ (function(module, exports, __webpack_require__) { var identity = __webpack_require__(38), - overRest = __webpack_require__(194), - setToString = __webpack_require__(116); + overRest = __webpack_require__(191), + setToString = __webpack_require__(115); /** * The base implementation of `_.rest` which doesn't validate or coerce arguments. @@ -14126,11 +14149,11 @@ module.exports = baseRest; /***/ }), -/* 116 */ +/* 115 */ /***/ (function(module, exports, __webpack_require__) { -var baseSetToString = __webpack_require__(349), - shortOut = __webpack_require__(198); +var baseSetToString = __webpack_require__(344), + shortOut = __webpack_require__(195); /** * Sets the `toString` method of `func` to return `string`. @@ -14146,11 +14169,11 @@ module.exports = setToString; /***/ }), -/* 117 */ +/* 116 */ /***/ (function(module, exports, __webpack_require__) { -var baseGetTag = __webpack_require__(32), - isObject = __webpack_require__(17); +var baseGetTag = __webpack_require__(33), + isObject = __webpack_require__(18); /** `Object#toString` result references. */ var asyncTag = '[object AsyncFunction]', @@ -14189,15 +14212,15 @@ module.exports = isFunction; /***/ }), -/* 118 */ +/* 117 */ /***/ (function(module, exports, __webpack_require__) { -var Stack = __webpack_require__(76), - assignMergeValue = __webpack_require__(199), - baseFor = __webpack_require__(200), - baseMergeDeep = __webpack_require__(381), - isObject = __webpack_require__(17), - keysIn = __webpack_require__(53); +var Stack = __webpack_require__(75), + assignMergeValue = __webpack_require__(196), + baseFor = __webpack_require__(197), + baseMergeDeep = __webpack_require__(376), + isObject = __webpack_require__(18), + keysIn = __webpack_require__(54); /** * The base implementation of `_.merge` without support for multiple sources. @@ -14236,11 +14259,11 @@ module.exports = baseMerge; /***/ }), -/* 119 */ +/* 118 */ /***/ (function(module, exports, __webpack_require__) { -var getNative = __webpack_require__(31), - root = __webpack_require__(14); +var getNative = __webpack_require__(32), + root = __webpack_require__(15); /* Built-in method references that are verified to be native. */ var Map = getNative(root, 'Map'); @@ -14249,14 +14272,14 @@ module.exports = Map; /***/ }), -/* 120 */ +/* 119 */ /***/ (function(module, exports, __webpack_require__) { -var mapCacheClear = __webpack_require__(368), - mapCacheDelete = __webpack_require__(375), - mapCacheGet = __webpack_require__(377), - mapCacheHas = __webpack_require__(378), - mapCacheSet = __webpack_require__(379); +var mapCacheClear = __webpack_require__(363), + mapCacheDelete = __webpack_require__(370), + mapCacheGet = __webpack_require__(372), + mapCacheHas = __webpack_require__(373), + mapCacheSet = __webpack_require__(374); /** * Creates a map cache object to store key-value pairs. @@ -14287,10 +14310,10 @@ module.exports = MapCache; /***/ }), -/* 121 */ +/* 120 */ /***/ (function(module, exports, __webpack_require__) { -var Uint8Array = __webpack_require__(203); +var Uint8Array = __webpack_require__(200); /** * Creates a clone of `arrayBuffer`. @@ -14309,10 +14332,10 @@ module.exports = cloneArrayBuffer; /***/ }), -/* 122 */ +/* 121 */ /***/ (function(module, exports, __webpack_require__) { -var overArg = __webpack_require__(205); +var overArg = __webpack_require__(202); /** Built-in value references. */ var getPrototype = overArg(Object.getPrototypeOf, Object); @@ -14321,7 +14344,7 @@ module.exports = getPrototype; /***/ }), -/* 123 */ +/* 122 */ /***/ (function(module, exports) { /** Used as references for various `Number` constants. */ @@ -14362,10 +14385,10 @@ module.exports = isLength; /***/ }), -/* 124 */ +/* 123 */ /***/ (function(module, exports, __webpack_require__) { -var baseAssignValue = __webpack_require__(81), +var baseAssignValue = __webpack_require__(80), eq = __webpack_require__(39); /** Used for built-in method references. */ @@ -14396,7 +14419,7 @@ module.exports = assignValue; /***/ }), -/* 125 */ +/* 124 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(global, module) {var __WEBPACK_AMD_DEFINE_RESULT__;/** @@ -31485,13 +31508,13 @@ module.exports = assignValue; } }.call(this)); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(9), __webpack_require__(16)(module))) +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(10), __webpack_require__(17)(module))) /***/ }), -/* 126 */ +/* 125 */ /***/ (function(module, exports, __webpack_require__) { -var baseClone = __webpack_require__(127); +var baseClone = __webpack_require__(126); /** Used to compose bitmasks for cloning. */ var CLONE_DEEP_FLAG = 1, @@ -31523,28 +31546,28 @@ module.exports = cloneDeep; /***/ }), -/* 127 */ +/* 126 */ /***/ (function(module, exports, __webpack_require__) { -var Stack = __webpack_require__(76), - arrayEach = __webpack_require__(128), - assignValue = __webpack_require__(124), - baseAssign = __webpack_require__(392), - baseAssignIn = __webpack_require__(394), - cloneBuffer = __webpack_require__(201), +var Stack = __webpack_require__(75), + arrayEach = __webpack_require__(127), + assignValue = __webpack_require__(123), + baseAssign = __webpack_require__(387), + baseAssignIn = __webpack_require__(389), + cloneBuffer = __webpack_require__(198), copyArray = __webpack_require__(40), - copySymbols = __webpack_require__(395), - copySymbolsIn = __webpack_require__(396), - getAllKeys = __webpack_require__(213), - getAllKeysIn = __webpack_require__(215), - getTag = __webpack_require__(90), - initCloneArray = __webpack_require__(399), - initCloneByTag = __webpack_require__(400), - initCloneObject = __webpack_require__(204), - isArray = __webpack_require__(10), - isBuffer = __webpack_require__(52), - isObject = __webpack_require__(17), - keys = __webpack_require__(25); + copySymbols = __webpack_require__(390), + copySymbolsIn = __webpack_require__(391), + getAllKeys = __webpack_require__(210), + getAllKeysIn = __webpack_require__(212), + getTag = __webpack_require__(89), + initCloneArray = __webpack_require__(394), + initCloneByTag = __webpack_require__(395), + initCloneObject = __webpack_require__(201), + isArray = __webpack_require__(11), + isBuffer = __webpack_require__(53), + isObject = __webpack_require__(18), + keys = __webpack_require__(26); /** Used to compose bitmasks for cloning. */ var CLONE_DEEP_FLAG = 1, @@ -31682,7 +31705,7 @@ module.exports = baseClone; /***/ }), -/* 128 */ +/* 127 */ /***/ (function(module, exports) { /** @@ -31710,11 +31733,11 @@ module.exports = arrayEach; /***/ }), -/* 129 */ +/* 128 */ /***/ (function(module, exports, __webpack_require__) { -var arrayFilter = __webpack_require__(210), - stubArray = __webpack_require__(211); +var arrayFilter = __webpack_require__(207), + stubArray = __webpack_require__(208); /** Used for built-in method references. */ var objectProto = Object.prototype; @@ -31746,7 +31769,7 @@ module.exports = getSymbols; /***/ }), -/* 130 */ +/* 129 */ /***/ (function(module, exports) { /** @@ -31770,11 +31793,11 @@ module.exports = mapToArray; /***/ }), -/* 131 */ +/* 130 */ /***/ (function(module, exports, __webpack_require__) { -var castPath = __webpack_require__(91), - toKey = __webpack_require__(56); +var castPath = __webpack_require__(90), + toKey = __webpack_require__(57); /** * The base implementation of `_.get` without support for default values. @@ -31800,11 +31823,11 @@ module.exports = baseGet; /***/ }), -/* 132 */ +/* 131 */ /***/ (function(module, exports, __webpack_require__) { -var isArray = __webpack_require__(10), - isSymbol = __webpack_require__(55); +var isArray = __webpack_require__(11), + isSymbol = __webpack_require__(56); /** Used to match property names within property paths. */ var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, @@ -31835,13 +31858,13 @@ module.exports = isKey; /***/ }), -/* 133 */ +/* 132 */ /***/ (function(module, exports, __webpack_require__) { -var Symbol = __webpack_require__(33), - arrayMap = __webpack_require__(93), - isArray = __webpack_require__(10), - isSymbol = __webpack_require__(55); +var Symbol = __webpack_require__(34), + arrayMap = __webpack_require__(92), + isArray = __webpack_require__(11), + isSymbol = __webpack_require__(56); /** Used as references for various `Number` constants. */ var INFINITY = 1 / 0; @@ -31878,7 +31901,7 @@ module.exports = baseToString; /***/ }), -/* 134 */ +/* 133 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -31889,23 +31912,23 @@ Object.defineProperty(exports, "__esModule", { }); exports.formatValidationError = exports.registerMJRule = exports.rulesCollection = undefined; -var _concat = __webpack_require__(135); +var _concat = __webpack_require__(134); var _concat2 = _interopRequireDefault(_concat); -var _filter = __webpack_require__(95); +var _filter = __webpack_require__(94); var _filter2 = _interopRequireDefault(_filter); -var _values = __webpack_require__(136); +var _values = __webpack_require__(135); var _values2 = _interopRequireDefault(_values); -var _ruleError = __webpack_require__(96); +var _ruleError = __webpack_require__(95); var _ruleError2 = _interopRequireDefault(_ruleError); -var _MJMLRulesCollection = __webpack_require__(439); +var _MJMLRulesCollection = __webpack_require__(434); var _MJMLRulesCollection2 = _interopRequireDefault(_MJMLRulesCollection); @@ -31937,13 +31960,13 @@ var validateNode = function validateNode(element) { exports.default = validateNode; /***/ }), -/* 135 */ +/* 134 */ /***/ (function(module, exports, __webpack_require__) { -var arrayPush = __webpack_require__(89), - baseFlatten = __webpack_require__(228), +var arrayPush = __webpack_require__(88), + baseFlatten = __webpack_require__(225), copyArray = __webpack_require__(40), - isArray = __webpack_require__(10); + isArray = __webpack_require__(11); /** * Creates a new array concatenating `array` with any additional arrays @@ -31986,11 +32009,11 @@ module.exports = concat; /***/ }), -/* 136 */ +/* 135 */ /***/ (function(module, exports, __webpack_require__) { -var baseValues = __webpack_require__(438), - keys = __webpack_require__(25); +var baseValues = __webpack_require__(433), + keys = __webpack_require__(26); /** * Creates an array of the own enumerable string keyed property values of `object`. @@ -32026,14 +32049,14 @@ module.exports = values; /***/ }), -/* 137 */ +/* 136 */ /***/ (function(module, exports, __webpack_require__) { -var baseIndexOf = __webpack_require__(97), - isArrayLike = __webpack_require__(19), - isString = __webpack_require__(230), - toInteger = __webpack_require__(57), - values = __webpack_require__(136); +var baseIndexOf = __webpack_require__(96), + isArrayLike = __webpack_require__(20), + isString = __webpack_require__(227), + toInteger = __webpack_require__(58), + values = __webpack_require__(135); /* Built-in method references for those with the same name as other `lodash` methods. */ var nativeMax = Math.max; @@ -32085,11 +32108,11 @@ module.exports = includes; /***/ }), -/* 138 */ +/* 137 */ /***/ (function(module, exports, __webpack_require__) { -var baseCreate = __webpack_require__(82), - baseLodash = __webpack_require__(139); +var baseCreate = __webpack_require__(81), + baseLodash = __webpack_require__(138); /** Used as references for the maximum length and index of an array. */ var MAX_ARRAY_LENGTH = 4294967295; @@ -32119,7 +32142,7 @@ module.exports = LazyWrapper; /***/ }), -/* 139 */ +/* 138 */ /***/ (function(module, exports) { /** @@ -32135,11 +32158,11 @@ module.exports = baseLodash; /***/ }), -/* 140 */ +/* 139 */ /***/ (function(module, exports, __webpack_require__) { -var metaMap = __webpack_require__(233), - noop = __webpack_require__(239); +var metaMap = __webpack_require__(230), + noop = __webpack_require__(236); /** * Gets metadata for `func`. @@ -32156,11 +32179,11 @@ module.exports = getData; /***/ }), -/* 141 */ +/* 140 */ /***/ (function(module, exports, __webpack_require__) { -var baseCreate = __webpack_require__(82), - baseLodash = __webpack_require__(139); +var baseCreate = __webpack_require__(81), + baseLodash = __webpack_require__(138); /** * The base constructor for creating `lodash` wrapper objects. @@ -32184,7 +32207,7 @@ module.exports = LodashWrapper; /***/ }), -/* 142 */ +/* 141 */ /***/ (function(module, exports) { /** Used as the internal argument placeholder. */ @@ -32219,11 +32242,11 @@ module.exports = replaceHolders; /***/ }), -/* 143 */ +/* 142 */ /***/ (function(module, exports, __webpack_require__) { -var createFind = __webpack_require__(461), - findIndex = __webpack_require__(462); +var createFind = __webpack_require__(456), + findIndex = __webpack_require__(457); /** * Iterates over elements of `collection`, returning the first element @@ -32267,7 +32290,7 @@ module.exports = find; /***/ }), -/* 144 */ +/* 143 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -32278,7 +32301,7 @@ Object.defineProperty(exports, "__esModule", { }); exports.registerMJHeadElement = exports.endingTags = undefined; -var _lodash = __webpack_require__(125); +var _lodash = __webpack_require__(124); var endingTags = exports.endingTags = []; var registerMJHeadElement = exports.registerMJHeadElement = function registerMJHeadElement() { @@ -32311,7 +32334,7 @@ var MJMLHeadElementsCollection = {}; exports.default = MJMLHeadElementsCollection; /***/ }), -/* 145 */ +/* 144 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -32328,10 +32351,12 @@ exports.default = function () { }; /***/ }), -/* 146 */ +/* 145 */ /***/ (function(module, exports, __webpack_require__) { -var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*jshint curly:true, eqeqeq:true, laxbreak:true, noempty:false */ +var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*jshint curly:false, eqeqeq:true, laxbreak:true, noempty:false */ +/* AUTO-GENERATED. DO NOT MODIFY. */ +/* see js/src/javascript/index.js */ /* The MIT License (MIT) @@ -32418,2407 +32443,2746 @@ var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*jshint curly:t */ -// Object.values polyfill found here: -// http://tokenposts.blogspot.com.au/2012/04/javascript-objectkeys-browser.html -if (!Object.values) { - Object.values = function(o) { - if (o !== Object(o)) { - throw new TypeError('Object.values called on a non-object'); - } - var k = [], - p; - for (p in o) { - if (Object.prototype.hasOwnProperty.call(o, p)) { - k.push(o[p]); - } - } - return k; - }; -} - (function() { +var legacy_beautify_js = +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // identity function for calling harmony imports with the correct context +/******/ __webpack_require__.i = function(value) { return value; }; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { +/******/ configurable: false, +/******/ enumerable: true, +/******/ get: getter +/******/ }); +/******/ } +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 6); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports) { - function mergeOpts(allOptions, targetType) { - var finalOpts = {}; - var name; +/* jshint curly: false */ +// This section of code is taken from acorn. +// +// Acorn was written by Marijn Haverbeke and released under an MIT +// license. The Unicode regexps (for identifiers and whitespace) were +// taken from [Esprima](http://esprima.org) by Ariya Hidayat. +// +// Git repositories for Acorn are available at +// +// http://marijnhaverbeke.nl/git/acorn +// https://github.com/marijnh/acorn.git - for (name in allOptions) { - if (name !== targetType) { - finalOpts[name] = allOptions[name]; - } - } +// ## Character categories - //merge in the per type settings for the targetType - if (targetType in allOptions) { - for (name in allOptions[targetType]) { - finalOpts[name] = allOptions[targetType][name]; - } - } - return finalOpts; - } +// Big ugly regular expressions that match characters in the +// whitespace, identifier, and identifier-start categories. These +// are only applied when a character is found to actually have a +// code point above 128. - function js_beautify(js_source_text, options) { +var nonASCIIwhitespace = /[\u1680\u180e\u2000-\u200a\u202f\u205f\u3000\ufeff]/; // jshint ignore:line +var nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u08a0\u08a2-\u08ac\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097f\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d\u0c58\u0c59\u0c60\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d60\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191c\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19c1-\u19c7\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2e2f\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fcc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua697\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790-\ua793\ua7a0-\ua7aa\ua7f8-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa80-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc"; +var nonASCIIidentifierChars = "\u0300-\u036f\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u0620-\u0649\u0672-\u06d3\u06e7-\u06e8\u06fb-\u06fc\u0730-\u074a\u0800-\u0814\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0840-\u0857\u08e4-\u08fe\u0900-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962-\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09d7\u09df-\u09e0\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2-\u0ae3\u0ae6-\u0aef\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b5f-\u0b60\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c01-\u0c03\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62-\u0c63\u0c66-\u0c6f\u0c82\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2-\u0ce3\u0ce6-\u0cef\u0d02\u0d03\u0d46-\u0d48\u0d57\u0d62-\u0d63\u0d66-\u0d6f\u0d82\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0df2\u0df3\u0e34-\u0e3a\u0e40-\u0e45\u0e50-\u0e59\u0eb4-\u0eb9\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f41-\u0f47\u0f71-\u0f84\u0f86-\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u1000-\u1029\u1040-\u1049\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u170e-\u1710\u1720-\u1730\u1740-\u1750\u1772\u1773\u1780-\u17b2\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u1920-\u192b\u1930-\u193b\u1951-\u196d\u19b0-\u19c0\u19c8-\u19c9\u19d0-\u19d9\u1a00-\u1a15\u1a20-\u1a53\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1b46-\u1b4b\u1b50-\u1b59\u1b6b-\u1b73\u1bb0-\u1bb9\u1be6-\u1bf3\u1c00-\u1c22\u1c40-\u1c49\u1c5b-\u1c7d\u1cd0-\u1cd2\u1d00-\u1dbe\u1e01-\u1f15\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2d81-\u2d96\u2de0-\u2dff\u3021-\u3028\u3099\u309a\ua640-\ua66d\ua674-\ua67d\ua69f\ua6f0-\ua6f1\ua7f8-\ua800\ua806\ua80b\ua823-\ua827\ua880-\ua881\ua8b4-\ua8c4\ua8d0-\ua8d9\ua8f3-\ua8f7\ua900-\ua909\ua926-\ua92d\ua930-\ua945\ua980-\ua983\ua9b3-\ua9c0\uaa00-\uaa27\uaa40-\uaa41\uaa4c-\uaa4d\uaa50-\uaa59\uaa7b\uaae0-\uaae9\uaaf2-\uaaf3\uabc0-\uabe1\uabec\uabed\uabf0-\uabf9\ufb20-\ufb28\ufe00-\ufe0f\ufe20-\ufe26\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f"; +var nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]"); +var nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]"); - var acorn = {}; - (function(exports) { - /* jshint curly: false */ - // This section of code is taken from acorn. - // - // Acorn was written by Marijn Haverbeke and released under an MIT - // license. The Unicode regexps (for identifiers and whitespace) were - // taken from [Esprima](http://esprima.org) by Ariya Hidayat. - // - // Git repositories for Acorn are available at - // - // http://marijnhaverbeke.nl/git/acorn - // https://github.com/marijnh/acorn.git +// Whether a single character denotes a newline. - // ## Character categories +exports.newline = /[\n\r\u2028\u2029]/; - // Big ugly regular expressions that match characters in the - // whitespace, identifier, and identifier-start categories. These - // are only applied when a character is found to actually have a - // code point above 128. +// Matches a whole line break (where CRLF is considered a single +// line break). Used to count lines. - var nonASCIIwhitespace = /[\u1680\u180e\u2000-\u200a\u202f\u205f\u3000\ufeff]/; // jshint ignore:line - var nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u08a0\u08a2-\u08ac\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097f\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d\u0c58\u0c59\u0c60\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d60\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191c\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19c1-\u19c7\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2e2f\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fcc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua697\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790-\ua793\ua7a0-\ua7aa\ua7f8-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa80-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc"; - var nonASCIIidentifierChars = "\u0300-\u036f\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u0620-\u0649\u0672-\u06d3\u06e7-\u06e8\u06fb-\u06fc\u0730-\u074a\u0800-\u0814\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0840-\u0857\u08e4-\u08fe\u0900-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962-\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09d7\u09df-\u09e0\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2-\u0ae3\u0ae6-\u0aef\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b5f-\u0b60\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c01-\u0c03\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62-\u0c63\u0c66-\u0c6f\u0c82\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2-\u0ce3\u0ce6-\u0cef\u0d02\u0d03\u0d46-\u0d48\u0d57\u0d62-\u0d63\u0d66-\u0d6f\u0d82\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0df2\u0df3\u0e34-\u0e3a\u0e40-\u0e45\u0e50-\u0e59\u0eb4-\u0eb9\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f41-\u0f47\u0f71-\u0f84\u0f86-\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u1000-\u1029\u1040-\u1049\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u170e-\u1710\u1720-\u1730\u1740-\u1750\u1772\u1773\u1780-\u17b2\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u1920-\u192b\u1930-\u193b\u1951-\u196d\u19b0-\u19c0\u19c8-\u19c9\u19d0-\u19d9\u1a00-\u1a15\u1a20-\u1a53\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1b46-\u1b4b\u1b50-\u1b59\u1b6b-\u1b73\u1bb0-\u1bb9\u1be6-\u1bf3\u1c00-\u1c22\u1c40-\u1c49\u1c5b-\u1c7d\u1cd0-\u1cd2\u1d00-\u1dbe\u1e01-\u1f15\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2d81-\u2d96\u2de0-\u2dff\u3021-\u3028\u3099\u309a\ua640-\ua66d\ua674-\ua67d\ua69f\ua6f0-\ua6f1\ua7f8-\ua800\ua806\ua80b\ua823-\ua827\ua880-\ua881\ua8b4-\ua8c4\ua8d0-\ua8d9\ua8f3-\ua8f7\ua900-\ua909\ua926-\ua92d\ua930-\ua945\ua980-\ua983\ua9b3-\ua9c0\uaa00-\uaa27\uaa40-\uaa41\uaa4c-\uaa4d\uaa50-\uaa59\uaa7b\uaae0-\uaae9\uaaf2-\uaaf3\uabc0-\uabe1\uabec\uabed\uabf0-\uabf9\ufb20-\ufb28\ufe00-\ufe0f\ufe20-\ufe26\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f"; - var nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]"); - var nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]"); +// in javascript, these two differ +// in python they are the same, different methods are called on them +exports.lineBreak = new RegExp('\r\n|' + exports.newline.source); +exports.allLineBreaks = new RegExp(exports.lineBreak.source, 'g'); - // Whether a single character denotes a newline. - exports.newline = /[\n\r\u2028\u2029]/; +// Test whether a given character code starts an identifier. - // Matches a whole line break (where CRLF is considered a single - // line break). Used to count lines. +exports.isIdentifierStart = function(code) { + // permit $ (36) and @ (64). @ is used in ES7 decorators. + if (code < 65) return code === 36 || code === 64; + // 65 through 91 are uppercase letters. + if (code < 91) return true; + // permit _ (95). + if (code < 97) return code === 95; + // 97 through 123 are lowercase letters. + if (code < 123) return true; + return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code)); +}; - // in javascript, these two differ - // in python they are the same, different methods are called on them - exports.lineBreak = new RegExp('\r\n|' + exports.newline.source); - exports.allLineBreaks = new RegExp(exports.lineBreak.source, 'g'); +// Test whether a given character is part of an identifier. +exports.isIdentifierChar = function(code) { + if (code < 48) return code === 36; + if (code < 58) return true; + if (code < 65) return false; + if (code < 91) return true; + if (code < 97) return code === 95; + if (code < 123) return true; + return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code)); +}; - // Test whether a given character code starts an identifier. - exports.isIdentifierStart = function(code) { - // permit $ (36) and @ (64). @ is used in ES7 decorators. - if (code < 65) return code === 36 || code === 64; - // 65 through 91 are uppercase letters. - if (code < 91) return true; - // permit _ (95). - if (code < 97) return code === 95; - // 97 through 123 are lowercase letters. - if (code < 123) return true; - return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code)); - }; +/***/ }), +/* 1 */ +/***/ (function(module, exports, __webpack_require__) { - // Test whether a given character is part of an identifier. +/*jshint curly:true, eqeqeq:true, laxbreak:true, noempty:false */ +/* - exports.isIdentifierChar = function(code) { - if (code < 48) return code === 36; - if (code < 58) return true; - if (code < 65) return false; - if (code < 91) return true; - if (code < 97) return code === 95; - if (code < 123) return true; - return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code)); - }; - })(acorn); - /* jshint curly: true */ + The MIT License (MIT) + + Copyright (c) 2007-2017 Einar Lielmanis, Liam Newman, and contributors. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ - function in_array(what, arr) { - for (var i = 0; i < arr.length; i += 1) { - if (arr[i] === what) { - return true; - } - } - return false; - } +var mergeOpts = __webpack_require__(3).mergeOpts; +var acorn = __webpack_require__(0); +var Output = __webpack_require__(4).Output; +var Tokenizer = __webpack_require__(7).Tokenizer; - function trim(s) { - return s.replace(/^\s+|\s+$/g, ''); - } +function remove_redundant_indentation(output, frame) { + // This implementation is effective but has some issues: + // - can cause line wrap to happen too soon due to indent removal + // after wrap points are calculated + // These issues are minor compared to ugly indentation. - function ltrim(s) { - return s.replace(/^\s+/g, ''); - } + if (frame.multiline_frame || + frame.mode === MODE.ForInitializer || + frame.mode === MODE.Conditional) { + return; + } - // function rtrim(s) { - // return s.replace(/\s+$/g, ''); - // } + // remove one indent from each line inside this section + var start_index = frame.start_line_index; - function sanitizeOperatorPosition(opPosition) { - opPosition = opPosition || OPERATOR_POSITION.before_newline; + output.remove_indent(start_index); +} - var validPositionValues = Object.values(OPERATOR_POSITION); +function in_array(what, arr) { + for (var i = 0; i < arr.length; i += 1) { + if (arr[i] === what) { + return true; + } + } + return false; +} - if (!in_array(opPosition, validPositionValues)) { - throw new Error("Invalid Option Value: The option 'operator_position' must be one of the following values\n" + - validPositionValues + - "\nYou passed in: '" + opPosition + "'"); - } +function trim(s) { + return s.replace(/^\s+|\s+$/g, ''); +} - return opPosition; - } +function ltrim(s) { + return s.replace(/^\s+/g, ''); +} - var OPERATOR_POSITION = { - before_newline: 'before-newline', - after_newline: 'after-newline', - preserve_newline: 'preserve-newline', - }; +// function rtrim(s) { +// return s.replace(/\s+$/g, ''); +// } - var OPERATOR_POSITION_BEFORE_OR_PRESERVE = [OPERATOR_POSITION.before_newline, OPERATOR_POSITION.preserve_newline]; - var MODE = { - BlockStatement: 'BlockStatement', // 'BLOCK' - Statement: 'Statement', // 'STATEMENT' - ObjectLiteral: 'ObjectLiteral', // 'OBJECT', - ArrayLiteral: 'ArrayLiteral', //'[EXPRESSION]', - ForInitializer: 'ForInitializer', //'(FOR-EXPRESSION)', - Conditional: 'Conditional', //'(COND-EXPRESSION)', - Expression: 'Expression' //'(EXPRESSION)' - }; +function generateMapFromStrings(list) { + var result = {}; + for (var x = 0; x < list.length; x++) { + // make the mapped names underscored instead of dash + result[list[x].replace(/-/g, '_')] = list[x]; + } + return result; +} - function Beautifier(js_source_text, options) { - "use strict"; - var output; - var tokens = [], - token_pos; - var Tokenizer; - var current_token; - var last_type, last_last_text, indent_string; - var flags, previous_flags, flag_store; - var prefix; - - var handlers, opt; - var baseIndentString = ''; - - handlers = { - 'TK_START_EXPR': handle_start_expr, - 'TK_END_EXPR': handle_end_expr, - 'TK_START_BLOCK': handle_start_block, - 'TK_END_BLOCK': handle_end_block, - 'TK_WORD': handle_word, - 'TK_RESERVED': handle_word, - 'TK_SEMICOLON': handle_semicolon, - 'TK_STRING': handle_string, - 'TK_EQUALS': handle_equals, - 'TK_OPERATOR': handle_operator, - 'TK_COMMA': handle_comma, - 'TK_BLOCK_COMMENT': handle_block_comment, - 'TK_COMMENT': handle_comment, - 'TK_DOT': handle_dot, - 'TK_UNKNOWN': handle_unknown, - 'TK_EOF': handle_eof - }; +function sanitizeOperatorPosition(opPosition) { + opPosition = opPosition || OPERATOR_POSITION.before_newline; - function create_flags(flags_base, mode) { - var next_indent_level = 0; - if (flags_base) { - next_indent_level = flags_base.indentation_level; - if (!output.just_added_newline() && - flags_base.line_indent_level > next_indent_level) { - next_indent_level = flags_base.line_indent_level; - } - } + if (!in_array(opPosition, validPositionValues)) { + throw new Error("Invalid Option Value: The option 'operator_position' must be one of the following values\n" + + validPositionValues + + "\nYou passed in: '" + opPosition + "'"); + } - var next_flags = { - mode: mode, - parent: flags_base, - last_text: flags_base ? flags_base.last_text : '', // last token text - last_word: flags_base ? flags_base.last_word : '', // last 'TK_WORD' passed - declaration_statement: false, - declaration_assignment: false, - multiline_frame: false, - inline_frame: false, - if_block: false, - else_block: false, - do_block: false, - do_while: false, - import_block: false, - in_case_statement: false, // switch(..){ INSIDE HERE } - in_case: false, // we're on the exact line with "case 0:" - case_body: false, // the indented case-action block - indentation_level: next_indent_level, - line_indent_level: flags_base ? flags_base.line_indent_level : next_indent_level, - start_line_index: output.get_line_number(), - ternary_depth: 0 - }; - return next_flags; - } + return opPosition; +} - // Some interpreters have unexpected results with foo = baz || bar; - options = options ? options : {}; +var validPositionValues = ['before-newline', 'after-newline', 'preserve-newline']; - // Allow the setting of language/file-type specific options - // with inheritance of overall settings - options = mergeOpts(options, 'js'); +// Generate map from array +var OPERATOR_POSITION = generateMapFromStrings(validPositionValues); - opt = {}; +var OPERATOR_POSITION_BEFORE_OR_PRESERVE = [OPERATOR_POSITION.before_newline, OPERATOR_POSITION.preserve_newline]; - // compatibility, re - if (options.brace_style === "expand-strict") { //graceful handling of deprecated option - options.brace_style = "expand"; - } else if (options.brace_style === "collapse-preserve-inline") { //graceful handling of deprecated option - options.brace_style = "collapse,preserve-inline"; - } else if (options.braces_on_own_line !== undefined) { //graceful handling of deprecated option - options.brace_style = options.braces_on_own_line ? "expand" : "collapse"; - } else if (!options.brace_style) //Nothing exists to set it - { - options.brace_style = "collapse"; - } +var MODE = { + BlockStatement: 'BlockStatement', // 'BLOCK' + Statement: 'Statement', // 'STATEMENT' + ObjectLiteral: 'ObjectLiteral', // 'OBJECT', + ArrayLiteral: 'ArrayLiteral', //'[EXPRESSION]', + ForInitializer: 'ForInitializer', //'(FOR-EXPRESSION)', + Conditional: 'Conditional', //'(COND-EXPRESSION)', + Expression: 'Expression' //'(EXPRESSION)' +}; +function Beautifier(js_source_text, options) { + "use strict"; + var output; + var tokens = [], + token_pos; + var tokenizer; + var current_token; + var last_type, last_last_text, indent_string; + var flags, previous_flags, flag_store; + var prefix; + + var handlers, opt; + var baseIndentString = ''; + + handlers = { + 'TK_START_EXPR': handle_start_expr, + 'TK_END_EXPR': handle_end_expr, + 'TK_START_BLOCK': handle_start_block, + 'TK_END_BLOCK': handle_end_block, + 'TK_WORD': handle_word, + 'TK_RESERVED': handle_word, + 'TK_SEMICOLON': handle_semicolon, + 'TK_STRING': handle_string, + 'TK_EQUALS': handle_equals, + 'TK_OPERATOR': handle_operator, + 'TK_COMMA': handle_comma, + 'TK_BLOCK_COMMENT': handle_block_comment, + 'TK_COMMENT': handle_comment, + 'TK_DOT': handle_dot, + 'TK_UNKNOWN': handle_unknown, + 'TK_EOF': handle_eof + }; - var brace_style_split = options.brace_style.split(/[^a-zA-Z0-9_\-]+/); - opt.brace_style = brace_style_split[0]; - opt.brace_preserve_inline = brace_style_split[1] ? brace_style_split[1] : false; - - opt.indent_size = options.indent_size ? parseInt(options.indent_size, 10) : 4; - opt.indent_char = options.indent_char ? options.indent_char : ' '; - opt.eol = options.eol ? options.eol : 'auto'; - opt.preserve_newlines = (options.preserve_newlines === undefined) ? true : options.preserve_newlines; - opt.break_chained_methods = (options.break_chained_methods === undefined) ? false : options.break_chained_methods; - opt.max_preserve_newlines = (options.max_preserve_newlines === undefined) ? 0 : parseInt(options.max_preserve_newlines, 10); - opt.space_in_paren = (options.space_in_paren === undefined) ? false : options.space_in_paren; - opt.space_in_empty_paren = (options.space_in_empty_paren === undefined) ? false : options.space_in_empty_paren; - opt.jslint_happy = (options.jslint_happy === undefined) ? false : options.jslint_happy; - opt.space_after_anon_function = (options.space_after_anon_function === undefined) ? false : options.space_after_anon_function; - opt.keep_array_indentation = (options.keep_array_indentation === undefined) ? false : options.keep_array_indentation; - opt.space_before_conditional = (options.space_before_conditional === undefined) ? true : options.space_before_conditional; - opt.unescape_strings = (options.unescape_strings === undefined) ? false : options.unescape_strings; - opt.wrap_line_length = (options.wrap_line_length === undefined) ? 0 : parseInt(options.wrap_line_length, 10); - opt.e4x = (options.e4x === undefined) ? false : options.e4x; - opt.end_with_newline = (options.end_with_newline === undefined) ? false : options.end_with_newline; - opt.comma_first = (options.comma_first === undefined) ? false : options.comma_first; - opt.operator_position = sanitizeOperatorPosition(options.operator_position); - - // For testing of beautify ignore:start directive - opt.test_output_raw = (options.test_output_raw === undefined) ? false : options.test_output_raw; - - // force opt.space_after_anon_function to true if opt.jslint_happy - if (opt.jslint_happy) { - opt.space_after_anon_function = true; + function create_flags(flags_base, mode) { + var next_indent_level = 0; + if (flags_base) { + next_indent_level = flags_base.indentation_level; + if (!output.just_added_newline() && + flags_base.line_indent_level > next_indent_level) { + next_indent_level = flags_base.line_indent_level; } + } - if (options.indent_with_tabs) { - opt.indent_char = '\t'; - opt.indent_size = 1; - } + var next_flags = { + mode: mode, + parent: flags_base, + last_text: flags_base ? flags_base.last_text : '', // last token text + last_word: flags_base ? flags_base.last_word : '', // last 'TK_WORD' passed + declaration_statement: false, + declaration_assignment: false, + multiline_frame: false, + inline_frame: false, + if_block: false, + else_block: false, + do_block: false, + do_while: false, + import_block: false, + in_case_statement: false, // switch(..){ INSIDE HERE } + in_case: false, // we're on the exact line with "case 0:" + case_body: false, // the indented case-action block + indentation_level: next_indent_level, + line_indent_level: flags_base ? flags_base.line_indent_level : next_indent_level, + start_line_index: output.get_line_number(), + ternary_depth: 0 + }; + return next_flags; + } - if (opt.eol === 'auto') { - opt.eol = '\n'; - if (js_source_text && acorn.lineBreak.test(js_source_text || '')) { - opt.eol = js_source_text.match(acorn.lineBreak)[0]; - } - } + // Some interpreters have unexpected results with foo = baz || bar; + options = options ? options : {}; - opt.eol = opt.eol.replace(/\\r/, '\r').replace(/\\n/, '\n'); + // Allow the setting of language/file-type specific options + // with inheritance of overall settings + options = mergeOpts(options, 'js'); - //---------------------------------- - indent_string = ''; - while (opt.indent_size > 0) { - indent_string += opt.indent_char; - opt.indent_size -= 1; - } + opt = {}; - var preindent_index = 0; - if (js_source_text && js_source_text.length) { - while ((js_source_text.charAt(preindent_index) === ' ' || - js_source_text.charAt(preindent_index) === '\t')) { - baseIndentString += js_source_text.charAt(preindent_index); - preindent_index += 1; - } - js_source_text = js_source_text.substring(preindent_index); - } + // compatibility, re + if (options.brace_style === "expand-strict") { //graceful handling of deprecated option + options.brace_style = "expand"; + } else if (options.brace_style === "collapse-preserve-inline") { //graceful handling of deprecated option + options.brace_style = "collapse,preserve-inline"; + } else if (options.braces_on_own_line !== undefined) { //graceful handling of deprecated option + options.brace_style = options.braces_on_own_line ? "expand" : "collapse"; + } else if (!options.brace_style) //Nothing exists to set it + { + options.brace_style = "collapse"; + } - last_type = 'TK_START_BLOCK'; // last token type - last_last_text = ''; // pre-last token text - output = new Output(indent_string, baseIndentString); - - // If testing the ignore directive, start with output disable set to true - output.raw = opt.test_output_raw; - - - // Stack of parsing/formatting states, including MODE. - // We tokenize, parse, and output in an almost purely a forward-only stream of token input - // and formatted output. This makes the beautifier less accurate than full parsers - // but also far more tolerant of syntax errors. - // - // For example, the default mode is MODE.BlockStatement. If we see a '{' we push a new frame of type - // MODE.BlockStatement on the the stack, even though it could be object literal. If we later - // encounter a ":", we'll switch to to MODE.ObjectLiteral. If we then see a ";", - // most full parsers would die, but the beautifier gracefully falls back to - // MODE.BlockStatement and continues on. - flag_store = []; - set_mode(MODE.BlockStatement); - this.beautify = function() { + var brace_style_split = options.brace_style.split(/[^a-zA-Z0-9_\-]+/); + opt.brace_style = brace_style_split[0]; + opt.brace_preserve_inline = brace_style_split[1] ? brace_style_split[1] : false; - /*jshint onevar:true */ - var sweet_code; - Tokenizer = new tokenizer(js_source_text, opt, indent_string); - tokens = Tokenizer.tokenize(); - token_pos = 0; + opt.indent_size = options.indent_size ? parseInt(options.indent_size, 10) : 4; + opt.indent_char = options.indent_char ? options.indent_char : ' '; + opt.eol = options.eol ? options.eol : 'auto'; + opt.preserve_newlines = (options.preserve_newlines === undefined) ? true : options.preserve_newlines; + opt.unindent_chained_methods = (options.unindent_chained_methods === undefined) ? false : options.unindent_chained_methods; + opt.break_chained_methods = (options.break_chained_methods === undefined) ? false : options.break_chained_methods; + opt.max_preserve_newlines = (options.max_preserve_newlines === undefined) ? 0 : parseInt(options.max_preserve_newlines, 10); + opt.space_in_paren = (options.space_in_paren === undefined) ? false : options.space_in_paren; + opt.space_in_empty_paren = (options.space_in_empty_paren === undefined) ? false : options.space_in_empty_paren; + opt.jslint_happy = (options.jslint_happy === undefined) ? false : options.jslint_happy; + opt.space_after_anon_function = (options.space_after_anon_function === undefined) ? false : options.space_after_anon_function; + opt.keep_array_indentation = (options.keep_array_indentation === undefined) ? false : options.keep_array_indentation; + opt.space_before_conditional = (options.space_before_conditional === undefined) ? true : options.space_before_conditional; + opt.unescape_strings = (options.unescape_strings === undefined) ? false : options.unescape_strings; + opt.wrap_line_length = (options.wrap_line_length === undefined) ? 0 : parseInt(options.wrap_line_length, 10); + opt.e4x = (options.e4x === undefined) ? false : options.e4x; + opt.end_with_newline = (options.end_with_newline === undefined) ? false : options.end_with_newline; + opt.comma_first = (options.comma_first === undefined) ? false : options.comma_first; + opt.operator_position = sanitizeOperatorPosition(options.operator_position); - current_token = get_token(); - while (current_token) { - handlers[current_token.type](); + // For testing of beautify ignore:start directive + opt.test_output_raw = (options.test_output_raw === undefined) ? false : options.test_output_raw; - last_last_text = flags.last_text; - last_type = current_token.type; - flags.last_text = current_token.text; + // force opt.space_after_anon_function to true if opt.jslint_happy + if (opt.jslint_happy) { + opt.space_after_anon_function = true; + } - token_pos += 1; - current_token = get_token(); - } + if (options.indent_with_tabs) { + opt.indent_char = '\t'; + opt.indent_size = 1; + } - sweet_code = output.get_code(); - if (opt.end_with_newline) { - sweet_code += '\n'; - } + if (opt.eol === 'auto') { + opt.eol = '\n'; + if (js_source_text && acorn.lineBreak.test(js_source_text || '')) { + opt.eol = js_source_text.match(acorn.lineBreak)[0]; + } + } - if (opt.eol !== '\n') { - sweet_code = sweet_code.replace(/[\n]/g, opt.eol); - } + opt.eol = opt.eol.replace(/\\r/, '\r').replace(/\\n/, '\n'); - return sweet_code; - }; + //---------------------------------- + indent_string = ''; + while (opt.indent_size > 0) { + indent_string += opt.indent_char; + opt.indent_size -= 1; + } - function handle_whitespace_and_comments(local_token, preserve_statement_flags) { - var newlines = local_token.newlines; - var keep_whitespace = opt.keep_array_indentation && is_array(flags.mode); - var temp_token = current_token; - - for (var h = 0; h < local_token.comments_before.length; h++) { - // The cleanest handling of inline comments is to treat them as though they aren't there. - // Just continue formatting and the behavior should be logical. - // Also ignore unknown tokens. Again, this should result in better behavior. - current_token = local_token.comments_before[h]; - handle_whitespace_and_comments(current_token, preserve_statement_flags); - handlers[current_token.type](preserve_statement_flags); - } - current_token = temp_token; + var preindent_index = 0; + if (js_source_text && js_source_text.length) { + while ((js_source_text.charAt(preindent_index) === ' ' || + js_source_text.charAt(preindent_index) === '\t')) { + preindent_index += 1; + } + baseIndentString = js_source_text.substring(0, preindent_index); + js_source_text = js_source_text.substring(preindent_index); + } - if (keep_whitespace) { - for (var i = 0; i < newlines; i += 1) { - print_newline(i > 0, preserve_statement_flags); - } - } else { - if (opt.max_preserve_newlines && newlines > opt.max_preserve_newlines) { - newlines = opt.max_preserve_newlines; - } + last_type = 'TK_START_BLOCK'; // last token type + last_last_text = ''; // pre-last token text + output = new Output(indent_string, baseIndentString); - if (opt.preserve_newlines) { - if (local_token.newlines > 1) { - print_newline(false, preserve_statement_flags); - for (var j = 1; j < newlines; j += 1) { - print_newline(true, preserve_statement_flags); - } - } - } - } + // If testing the ignore directive, start with output disable set to true + output.raw = opt.test_output_raw; - } - // we could use just string.split, but - // IE doesn't like returning empty strings - function split_linebreaks(s) { - //return s.split(/\x0d\x0a|\x0a/); - - s = s.replace(acorn.allLineBreaks, '\n'); - var out = [], - idx = s.indexOf("\n"); - while (idx !== -1) { - out.push(s.substring(0, idx)); - s = s.substring(idx + 1); - idx = s.indexOf("\n"); - } - if (s.length) { - out.push(s); - } - return out; - } + // Stack of parsing/formatting states, including MODE. + // We tokenize, parse, and output in an almost purely a forward-only stream of token input + // and formatted output. This makes the beautifier less accurate than full parsers + // but also far more tolerant of syntax errors. + // + // For example, the default mode is MODE.BlockStatement. If we see a '{' we push a new frame of type + // MODE.BlockStatement on the the stack, even though it could be object literal. If we later + // encounter a ":", we'll switch to to MODE.ObjectLiteral. If we then see a ";", + // most full parsers would die, but the beautifier gracefully falls back to + // MODE.BlockStatement and continues on. + flag_store = []; + set_mode(MODE.BlockStatement); - var newline_restricted_tokens = ['break', 'continue', 'return', 'throw']; + this.beautify = function() { - function allow_wrap_or_preserved_newline(force_linewrap) { - force_linewrap = (force_linewrap === undefined) ? false : force_linewrap; + /*jshint onevar:true */ + var sweet_code; + tokenizer = new Tokenizer(js_source_text, opt, indent_string); + tokens = tokenizer.tokenize(); + token_pos = 0; - // Never wrap the first token on a line - if (output.just_added_newline()) { - return; - } + current_token = get_token(); + while (current_token) { + handlers[current_token.type](); - var shouldPreserveOrForce = (opt.preserve_newlines && current_token.wanted_newline) || force_linewrap; - var operatorLogicApplies = in_array(flags.last_text, Tokenizer.positionable_operators) || in_array(current_token.text, Tokenizer.positionable_operators); + last_last_text = flags.last_text; + last_type = current_token.type; + flags.last_text = current_token.text; - if (operatorLogicApplies) { - var shouldPrintOperatorNewline = ( - in_array(flags.last_text, Tokenizer.positionable_operators) && - in_array(opt.operator_position, OPERATOR_POSITION_BEFORE_OR_PRESERVE) - ) || - in_array(current_token.text, Tokenizer.positionable_operators); - shouldPreserveOrForce = shouldPreserveOrForce && shouldPrintOperatorNewline; - } + token_pos += 1; + current_token = get_token(); + } - if (shouldPreserveOrForce) { - print_newline(false, true); - } else if (opt.wrap_line_length) { - if (last_type === 'TK_RESERVED' && in_array(flags.last_text, newline_restricted_tokens)) { - // These tokens should never have a newline inserted - // between them and the following expression. - return; - } - var proposed_line_length = output.current_line.get_character_count() + current_token.text.length + - (output.space_before_token ? 1 : 0); - if (proposed_line_length >= opt.wrap_line_length) { - print_newline(false, true); - } - } - } + sweet_code = output.get_code(opt.end_with_newline, opt.eol); - function print_newline(force_newline, preserve_statement_flags) { - if (!preserve_statement_flags) { - if (flags.last_text !== ';' && flags.last_text !== ',' && flags.last_text !== '=' && last_type !== 'TK_OPERATOR') { - var next_token = get_token(1); - while (flags.mode === MODE.Statement && - !(flags.if_block && next_token && next_token.type === 'TK_RESERVED' && next_token.text === 'else') && - !flags.do_block) { - restore_mode(); - } - } - } + return sweet_code; + }; - if (output.add_new_line(force_newline)) { - flags.multiline_frame = true; - } + function handle_whitespace_and_comments(local_token, preserve_statement_flags) { + var newlines = local_token.newlines; + var keep_whitespace = opt.keep_array_indentation && is_array(flags.mode); + var temp_token = current_token; + + for (var h = 0; h < local_token.comments_before.length; h++) { + // The cleanest handling of inline comments is to treat them as though they aren't there. + // Just continue formatting and the behavior should be logical. + // Also ignore unknown tokens. Again, this should result in better behavior. + current_token = local_token.comments_before[h]; + handle_whitespace_and_comments(current_token, preserve_statement_flags); + handlers[current_token.type](preserve_statement_flags); + } + current_token = temp_token; + + if (keep_whitespace) { + for (var i = 0; i < newlines; i += 1) { + print_newline(i > 0, preserve_statement_flags); + } + } else { + if (opt.max_preserve_newlines && newlines > opt.max_preserve_newlines) { + newlines = opt.max_preserve_newlines; } - function print_token_line_indentation() { - if (output.just_added_newline()) { - if (opt.keep_array_indentation && is_array(flags.mode) && current_token.wanted_newline) { - output.current_line.push(current_token.whitespace_before); - output.space_before_token = false; - } else if (output.set_indent(flags.indentation_level)) { - flags.line_indent_level = flags.indentation_level; + if (opt.preserve_newlines) { + if (local_token.newlines > 1) { + print_newline(false, preserve_statement_flags); + for (var j = 1; j < newlines; j += 1) { + print_newline(true, preserve_statement_flags); } } } + } - function print_token(printable_token) { - if (output.raw) { - output.add_raw_token(current_token); - return; - } + } - if (opt.comma_first && last_type === 'TK_COMMA' && - output.just_added_newline()) { - if (output.previous_line.last() === ',') { - var popped = output.previous_line.pop(); - // if the comma was already at the start of the line, - // pull back onto that line and reprint the indentation - if (output.previous_line.is_empty()) { - output.previous_line.push(popped); - output.trim(true); - output.current_line.pop(); - output.trim(); - } + // we could use just string.split, but + // IE doesn't like returning empty strings + function split_linebreaks(s) { + //return s.split(/\x0d\x0a|\x0a/); - // add the comma in front of the next token - print_token_line_indentation(); - output.add_token(','); - output.space_before_token = true; - } - } + s = s.replace(acorn.allLineBreaks, '\n'); + var out = [], + idx = s.indexOf("\n"); + while (idx !== -1) { + out.push(s.substring(0, idx)); + s = s.substring(idx + 1); + idx = s.indexOf("\n"); + } + if (s.length) { + out.push(s); + } + return out; + } - printable_token = printable_token || current_token.text; - print_token_line_indentation(); - output.add_token(printable_token); - } + var newline_restricted_tokens = ['break', 'continue', 'return', 'throw', 'yield']; - function indent() { - flags.indentation_level += 1; - } + function allow_wrap_or_preserved_newline(force_linewrap) { + force_linewrap = (force_linewrap === undefined) ? false : force_linewrap; - function deindent() { - if (flags.indentation_level > 0 && - ((!flags.parent) || flags.indentation_level > flags.parent.indentation_level)) { - flags.indentation_level -= 1; + // Never wrap the first token on a line + if (output.just_added_newline()) { + return; + } - } - } + var shouldPreserveOrForce = (opt.preserve_newlines && current_token.wanted_newline) || force_linewrap; + var operatorLogicApplies = in_array(flags.last_text, tokenizer.positionable_operators) || in_array(current_token.text, tokenizer.positionable_operators); - function set_mode(mode) { - if (flags) { - flag_store.push(flags); - previous_flags = flags; - } else { - previous_flags = create_flags(null, mode); - } + if (operatorLogicApplies) { + var shouldPrintOperatorNewline = ( + in_array(flags.last_text, tokenizer.positionable_operators) && + in_array(opt.operator_position, OPERATOR_POSITION_BEFORE_OR_PRESERVE) + ) || + in_array(current_token.text, tokenizer.positionable_operators); + shouldPreserveOrForce = shouldPreserveOrForce && shouldPrintOperatorNewline; + } - flags = create_flags(previous_flags, mode); + if (shouldPreserveOrForce) { + print_newline(false, true); + } else if (opt.wrap_line_length) { + if (last_type === 'TK_RESERVED' && in_array(flags.last_text, newline_restricted_tokens)) { + // These tokens should never have a newline inserted + // between them and the following expression. + return; } + var proposed_line_length = output.current_line.get_character_count() + current_token.text.length + + (output.space_before_token ? 1 : 0); + if (proposed_line_length >= opt.wrap_line_length) { + print_newline(false, true); + } + } + } - function is_array(mode) { - return mode === MODE.ArrayLiteral; + function print_newline(force_newline, preserve_statement_flags) { + if (!preserve_statement_flags) { + if (flags.last_text !== ';' && flags.last_text !== ',' && flags.last_text !== '=' && last_type !== 'TK_OPERATOR') { + var next_token = get_token(1); + while (flags.mode === MODE.Statement && + !(flags.if_block && next_token && next_token.type === 'TK_RESERVED' && next_token.text === 'else') && + !flags.do_block) { + restore_mode(); + } } + } + + if (output.add_new_line(force_newline)) { + flags.multiline_frame = true; + } + } - function is_expression(mode) { - return in_array(mode, [MODE.Expression, MODE.ForInitializer, MODE.Conditional]); + function print_token_line_indentation() { + if (output.just_added_newline()) { + if (opt.keep_array_indentation && is_array(flags.mode) && current_token.wanted_newline) { + output.current_line.push(current_token.whitespace_before); + output.space_before_token = false; + } else if (output.set_indent(flags.indentation_level)) { + flags.line_indent_level = flags.indentation_level; } + } + } - function restore_mode() { - if (flag_store.length > 0) { - previous_flags = flags; - flags = flag_store.pop(); - if (previous_flags.mode === MODE.Statement) { - output.remove_redundant_indentation(previous_flags); - } + function print_token(printable_token) { + if (output.raw) { + output.add_raw_token(current_token); + return; + } + + if (opt.comma_first && last_type === 'TK_COMMA' && + output.just_added_newline()) { + if (output.previous_line.last() === ',') { + var popped = output.previous_line.pop(); + // if the comma was already at the start of the line, + // pull back onto that line and reprint the indentation + if (output.previous_line.is_empty()) { + output.previous_line.push(popped); + output.trim(true); + output.current_line.pop(); + output.trim(); } - } - function start_of_object_property() { - return flags.parent.mode === MODE.ObjectLiteral && flags.mode === MODE.Statement && ( - (flags.last_text === ':' && flags.ternary_depth === 0) || (last_type === 'TK_RESERVED' && in_array(flags.last_text, ['get', 'set']))); + // add the comma in front of the next token + print_token_line_indentation(); + output.add_token(','); + output.space_before_token = true; } + } - function start_of_statement() { - if ( - (last_type === 'TK_RESERVED' && in_array(flags.last_text, ['var', 'let', 'const']) && current_token.type === 'TK_WORD') || - (last_type === 'TK_RESERVED' && flags.last_text === 'do') || - (last_type === 'TK_RESERVED' && in_array(flags.last_text, ['return', 'throw']) && !current_token.wanted_newline) || - (last_type === 'TK_RESERVED' && flags.last_text === 'else' && - !(current_token.type === 'TK_RESERVED' && current_token.text === 'if' && !current_token.comments_before.length)) || - (last_type === 'TK_END_EXPR' && (previous_flags.mode === MODE.ForInitializer || previous_flags.mode === MODE.Conditional)) || - (last_type === 'TK_WORD' && flags.mode === MODE.BlockStatement && - !flags.in_case && - !(current_token.text === '--' || current_token.text === '++') && - last_last_text !== 'function' && - current_token.type !== 'TK_WORD' && current_token.type !== 'TK_RESERVED') || - (flags.mode === MODE.ObjectLiteral && ( - (flags.last_text === ':' && flags.ternary_depth === 0) || (last_type === 'TK_RESERVED' && in_array(flags.last_text, ['get', 'set'])))) - ) { + printable_token = printable_token || current_token.text; + print_token_line_indentation(); + output.add_token(printable_token); + } - set_mode(MODE.Statement); - indent(); + function indent() { + flags.indentation_level += 1; + } - handle_whitespace_and_comments(current_token, true); + function deindent() { + if (flags.indentation_level > 0 && + ((!flags.parent) || flags.indentation_level > flags.parent.indentation_level)) { + flags.indentation_level -= 1; - // Issue #276: - // If starting a new statement with [if, for, while, do], push to a new line. - // if (a) if (b) if(c) d(); else e(); else f(); - if (!start_of_object_property()) { - allow_wrap_or_preserved_newline( - current_token.type === 'TK_RESERVED' && in_array(current_token.text, ['do', 'for', 'if', 'while'])); - } + } + } - return true; - } - return false; - } + function set_mode(mode) { + if (flags) { + flag_store.push(flags); + previous_flags = flags; + } else { + previous_flags = create_flags(null, mode); + } - function all_lines_start_with(lines, c) { - for (var i = 0; i < lines.length; i++) { - var line = trim(lines[i]); - if (line.charAt(0) !== c) { - return false; - } - } - return true; - } + flags = create_flags(previous_flags, mode); + } - function each_line_matches_indent(lines, indent) { - var i = 0, - len = lines.length, - line; - for (; i < len; i++) { - line = lines[i]; - // allow empty lines to pass through - if (line && line.indexOf(indent) !== 0) { - return false; - } - } - return true; - } + function is_array(mode) { + return mode === MODE.ArrayLiteral; + } + + function is_expression(mode) { + return in_array(mode, [MODE.Expression, MODE.ForInitializer, MODE.Conditional]); + } - function is_special_word(word) { - return in_array(word, ['case', 'return', 'do', 'if', 'throw', 'else']); + function restore_mode() { + if (flag_store.length > 0) { + previous_flags = flags; + flags = flag_store.pop(); + if (previous_flags.mode === MODE.Statement && !opt.unindent_chained_methods) { + remove_redundant_indentation(output, previous_flags); } + } + } + + function start_of_object_property() { + return flags.parent.mode === MODE.ObjectLiteral && flags.mode === MODE.Statement && ( + (flags.last_text === ':' && flags.ternary_depth === 0) || (last_type === 'TK_RESERVED' && in_array(flags.last_text, ['get', 'set']))); + } - function get_token(offset) { - var index = token_pos + (offset || 0); - return (index < 0 || index >= tokens.length) ? null : tokens[index]; + function start_of_statement() { + if ( + (last_type === 'TK_RESERVED' && in_array(flags.last_text, ['var', 'let', 'const']) && current_token.type === 'TK_WORD') || + (last_type === 'TK_RESERVED' && flags.last_text === 'do') || + (last_type === 'TK_RESERVED' && in_array(flags.last_text, newline_restricted_tokens) && !current_token.wanted_newline) || + (last_type === 'TK_RESERVED' && flags.last_text === 'else' && + !(current_token.type === 'TK_RESERVED' && current_token.text === 'if' && !current_token.comments_before.length)) || + (last_type === 'TK_END_EXPR' && (previous_flags.mode === MODE.ForInitializer || previous_flags.mode === MODE.Conditional)) || + (last_type === 'TK_WORD' && flags.mode === MODE.BlockStatement && + !flags.in_case && + !(current_token.text === '--' || current_token.text === '++') && + last_last_text !== 'function' && + current_token.type !== 'TK_WORD' && current_token.type !== 'TK_RESERVED') || + (flags.mode === MODE.ObjectLiteral && ( + (flags.last_text === ':' && flags.ternary_depth === 0) || (last_type === 'TK_RESERVED' && in_array(flags.last_text, ['get', 'set'])))) + ) { + + set_mode(MODE.Statement); + if (!opt.unindent_chained_methods) { + indent(); } - function handle_start_expr() { - // The conditional starts the statement if appropriate. - if (!start_of_statement()) { - handle_whitespace_and_comments(current_token); - } + handle_whitespace_and_comments(current_token, true); - var next_mode = MODE.Expression; - if (current_token.text === '[') { + // Issue #276: + // If starting a new statement with [if, for, while, do], push to a new line. + // if (a) if (b) if(c) d(); else e(); else f(); + if (!start_of_object_property()) { + allow_wrap_or_preserved_newline( + current_token.type === 'TK_RESERVED' && in_array(current_token.text, ['do', 'for', 'if', 'while'])); + } - if (last_type === 'TK_WORD' || flags.last_text === ')') { - // this is array index specifier, break immediately - // a[x], fn()[x] - if (last_type === 'TK_RESERVED' && in_array(flags.last_text, Tokenizer.line_starters)) { - output.space_before_token = true; - } - set_mode(next_mode); - print_token(); - indent(); - if (opt.space_in_paren) { - output.space_before_token = true; - } - return; - } + return true; + } + return false; + } - next_mode = MODE.ArrayLiteral; - if (is_array(flags.mode)) { - if (flags.last_text === '[' || - (flags.last_text === ',' && (last_last_text === ']' || last_last_text === '}'))) { - // ], [ goes to new line - // }, [ goes to new line - if (!opt.keep_array_indentation) { - print_newline(); - } - } - } + function all_lines_start_with(lines, c) { + for (var i = 0; i < lines.length; i++) { + var line = trim(lines[i]); + if (line.charAt(0) !== c) { + return false; + } + } + return true; + } - } else { - if (last_type === 'TK_RESERVED' && flags.last_text === 'for') { - next_mode = MODE.ForInitializer; - } else if (last_type === 'TK_RESERVED' && in_array(flags.last_text, ['if', 'while'])) { - next_mode = MODE.Conditional; - } else { - // next_mode = MODE.Expression; - } - } + function each_line_matches_indent(lines, indent) { + var i = 0, + len = lines.length, + line; + for (; i < len; i++) { + line = lines[i]; + // allow empty lines to pass through + if (line && line.indexOf(indent) !== 0) { + return false; + } + } + return true; + } - if (flags.last_text === ';' || last_type === 'TK_START_BLOCK') { - print_newline(); - } else if (last_type === 'TK_END_EXPR' || last_type === 'TK_START_EXPR' || last_type === 'TK_END_BLOCK' || flags.last_text === '.') { - // TODO: Consider whether forcing this is required. Review failing tests when removed. - allow_wrap_or_preserved_newline(current_token.wanted_newline); - // do nothing on (( and )( and ][ and ]( and .( - } else if (!(last_type === 'TK_RESERVED' && current_token.text === '(') && last_type !== 'TK_WORD' && last_type !== 'TK_OPERATOR') { - output.space_before_token = true; - } else if ((last_type === 'TK_RESERVED' && (flags.last_word === 'function' || flags.last_word === 'typeof')) || - (flags.last_text === '*' && - (in_array(last_last_text, ['function', 'yield']) || - (flags.mode === MODE.ObjectLiteral && in_array(last_last_text, ['{', ',']))))) { - // function() vs function () - // yield*() vs yield* () - // function*() vs function* () - if (opt.space_after_anon_function) { - output.space_before_token = true; - } - } else if (last_type === 'TK_RESERVED' && (in_array(flags.last_text, Tokenizer.line_starters) || flags.last_text === 'catch')) { - if (opt.space_before_conditional) { - output.space_before_token = true; - } - } + function is_special_word(word) { + return in_array(word, ['case', 'return', 'do', 'if', 'throw', 'else']); + } - // Should be a space between await and an IIFE - if (current_token.text === '(' && last_type === 'TK_RESERVED' && flags.last_word === 'await') { - output.space_before_token = true; - } + function get_token(offset) { + var index = token_pos + (offset || 0); + return (index < 0 || index >= tokens.length) ? null : tokens[index]; + } - // Support of this kind of newline preservation. - // a = (b && - // (c || d)); - if (current_token.text === '(') { - if (last_type === 'TK_EQUALS' || last_type === 'TK_OPERATOR') { - if (!start_of_object_property()) { - allow_wrap_or_preserved_newline(); - } - } - } + function handle_start_expr() { + // The conditional starts the statement if appropriate. + if (!start_of_statement()) { + handle_whitespace_and_comments(current_token); + } - // Support preserving wrapped arrow function expressions - // a.b('c', - // () => d.e - // ) - if (current_token.text === '(' && last_type !== 'TK_WORD' && last_type !== 'TK_RESERVED') { - allow_wrap_or_preserved_newline(); - } + var next_mode = MODE.Expression; + if (current_token.text === '[') { + if (last_type === 'TK_WORD' || flags.last_text === ')') { + // this is array index specifier, break immediately + // a[x], fn()[x] + if (last_type === 'TK_RESERVED' && in_array(flags.last_text, tokenizer.line_starters)) { + output.space_before_token = true; + } set_mode(next_mode); print_token(); + indent(); if (opt.space_in_paren) { output.space_before_token = true; } - - // In all cases, if we newline while inside an expression it should be indented. - indent(); + return; } - function handle_end_expr() { - // statements inside expressions are not valid syntax, but... - // statements must all be closed when their container closes - while (flags.mode === MODE.Statement) { - restore_mode(); + next_mode = MODE.ArrayLiteral; + if (is_array(flags.mode)) { + if (flags.last_text === '[' || + (flags.last_text === ',' && (last_last_text === ']' || last_last_text === '}'))) { + // ], [ goes to new line + // }, [ goes to new line + if (!opt.keep_array_indentation) { + print_newline(); + } } + } - handle_whitespace_and_comments(current_token); + } else { + if (last_type === 'TK_RESERVED' && flags.last_text === 'for') { + next_mode = MODE.ForInitializer; + } else if (last_type === 'TK_RESERVED' && in_array(flags.last_text, ['if', 'while'])) { + next_mode = MODE.Conditional; + } else { + // next_mode = MODE.Expression; + } + } - if (flags.multiline_frame) { - allow_wrap_or_preserved_newline(current_token.text === ']' && is_array(flags.mode) && !opt.keep_array_indentation); - } + if (flags.last_text === ';' || last_type === 'TK_START_BLOCK') { + print_newline(); + } else if (last_type === 'TK_END_EXPR' || last_type === 'TK_START_EXPR' || last_type === 'TK_END_BLOCK' || flags.last_text === '.') { + // TODO: Consider whether forcing this is required. Review failing tests when removed. + allow_wrap_or_preserved_newline(current_token.wanted_newline); + // do nothing on (( and )( and ][ and ]( and .( + } else if (!(last_type === 'TK_RESERVED' && current_token.text === '(') && last_type !== 'TK_WORD' && last_type !== 'TK_OPERATOR') { + output.space_before_token = true; + } else if ((last_type === 'TK_RESERVED' && (flags.last_word === 'function' || flags.last_word === 'typeof')) || + (flags.last_text === '*' && + (in_array(last_last_text, ['function', 'yield']) || + (flags.mode === MODE.ObjectLiteral && in_array(last_last_text, ['{', ',']))))) { + // function() vs function () + // yield*() vs yield* () + // function*() vs function* () + if (opt.space_after_anon_function) { + output.space_before_token = true; + } + } else if (last_type === 'TK_RESERVED' && (in_array(flags.last_text, tokenizer.line_starters) || flags.last_text === 'catch')) { + if (opt.space_before_conditional) { + output.space_before_token = true; + } + } - if (opt.space_in_paren) { - if (last_type === 'TK_START_EXPR' && !opt.space_in_empty_paren) { - // () [] no inner space in empty parens like these, ever, ref #320 - output.trim(); - output.space_before_token = false; - } else { - output.space_before_token = true; - } - } - if (current_token.text === ']' && opt.keep_array_indentation) { - print_token(); - restore_mode(); - } else { - restore_mode(); - print_token(); - } - output.remove_redundant_indentation(previous_flags); - - // do {} while () // no statement required after - if (flags.do_while && previous_flags.mode === MODE.Conditional) { - previous_flags.mode = MODE.Expression; - flags.do_block = false; - flags.do_while = false; + // Should be a space between await and an IIFE, or async and an arrow function + if (current_token.text === '(' && last_type === 'TK_RESERVED' && in_array(flags.last_word, ['await', 'async'])) { + output.space_before_token = true; + } + // Support of this kind of newline preservation. + // a = (b && + // (c || d)); + if (current_token.text === '(') { + if (last_type === 'TK_EQUALS' || last_type === 'TK_OPERATOR') { + if (!start_of_object_property()) { + allow_wrap_or_preserved_newline(); } } + } - function handle_start_block() { - handle_whitespace_and_comments(current_token); + // Support preserving wrapped arrow function expressions + // a.b('c', + // () => d.e + // ) + if (current_token.text === '(' && last_type !== 'TK_WORD' && last_type !== 'TK_RESERVED') { + allow_wrap_or_preserved_newline(); + } - // Check if this is should be treated as a ObjectLiteral - var next_token = get_token(1); - var second_token = get_token(2); - if (second_token && ( - (in_array(second_token.text, [':', ',']) && in_array(next_token.type, ['TK_STRING', 'TK_WORD', 'TK_RESERVED'])) || - (in_array(next_token.text, ['get', 'set', '...']) && in_array(second_token.type, ['TK_WORD', 'TK_RESERVED'])) - )) { - // We don't support TypeScript,but we didn't break it for a very long time. - // We'll try to keep not breaking it. - if (!in_array(last_last_text, ['class', 'interface'])) { - set_mode(MODE.ObjectLiteral); - } else { - set_mode(MODE.BlockStatement); - } - } else if (last_type === 'TK_OPERATOR' && flags.last_text === '=>') { - // arrow function: (param1, paramN) => { statements } - set_mode(MODE.BlockStatement); - } else if (in_array(last_type, ['TK_EQUALS', 'TK_START_EXPR', 'TK_COMMA', 'TK_OPERATOR']) || - (last_type === 'TK_RESERVED' && in_array(flags.last_text, ['return', 'throw', 'import', 'default'])) - ) { - // Detecting shorthand function syntax is difficult by scanning forward, - // so check the surrounding context. - // If the block is being returned, imported, export default, passed as arg, - // assigned with = or assigned in a nested object, treat as an ObjectLiteral. - set_mode(MODE.ObjectLiteral); - } else { - set_mode(MODE.BlockStatement); - } + set_mode(next_mode); + print_token(); + if (opt.space_in_paren) { + output.space_before_token = true; + } - var empty_braces = !next_token.comments_before.length && next_token.text === '}'; - var empty_anonymous_function = empty_braces && flags.last_word === 'function' && - last_type === 'TK_END_EXPR'; - - if (opt.brace_preserve_inline) // check for inline, set inline_frame if so - { - // search forward for a newline wanted inside this block - var index = 0; - var check_token = null; - flags.inline_frame = true; - do { - index += 1; - check_token = get_token(index); - if (check_token.wanted_newline) { - flags.inline_frame = false; - break; - } - } while (check_token.type !== 'TK_EOF' && - !(check_token.type === 'TK_END_BLOCK' && check_token.opened === current_token)); - } + // In all cases, if we newline while inside an expression it should be indented. + indent(); + } - if ((opt.brace_style === "expand" || - (opt.brace_style === "none" && current_token.wanted_newline)) && - !flags.inline_frame) { - if (last_type !== 'TK_OPERATOR' && - (empty_anonymous_function || - last_type === 'TK_EQUALS' || - (last_type === 'TK_RESERVED' && is_special_word(flags.last_text) && flags.last_text !== 'else'))) { - output.space_before_token = true; - } else { - print_newline(false, true); - } - } else { // collapse || inline_frame - if (is_array(previous_flags.mode) && (last_type === 'TK_START_EXPR' || last_type === 'TK_COMMA')) { - if (last_type === 'TK_COMMA' || opt.space_in_paren) { - output.space_before_token = true; - } + function handle_end_expr() { + // statements inside expressions are not valid syntax, but... + // statements must all be closed when their container closes + while (flags.mode === MODE.Statement) { + restore_mode(); + } - if (last_type === 'TK_COMMA' || (last_type === 'TK_START_EXPR' && flags.inline_frame)) { - allow_wrap_or_preserved_newline(); - previous_flags.multiline_frame = previous_flags.multiline_frame || flags.multiline_frame; - flags.multiline_frame = false; - } - } - if (last_type !== 'TK_OPERATOR' && last_type !== 'TK_START_EXPR') { - if (last_type === 'TK_START_BLOCK' && !flags.inline_frame) { - print_newline(); - } else { - output.space_before_token = true; - } - } - } - print_token(); - indent(); - } + handle_whitespace_and_comments(current_token); - function handle_end_block() { - // statements must all be closed when their container closes - handle_whitespace_and_comments(current_token); + if (flags.multiline_frame) { + allow_wrap_or_preserved_newline(current_token.text === ']' && is_array(flags.mode) && !opt.keep_array_indentation); + } - while (flags.mode === MODE.Statement) { - restore_mode(); - } + if (opt.space_in_paren) { + if (last_type === 'TK_START_EXPR' && !opt.space_in_empty_paren) { + // () [] no inner space in empty parens like these, ever, ref #320 + output.trim(); + output.space_before_token = false; + } else { + output.space_before_token = true; + } + } + if (current_token.text === ']' && opt.keep_array_indentation) { + print_token(); + restore_mode(); + } else { + restore_mode(); + print_token(); + } + remove_redundant_indentation(output, previous_flags); - var empty_braces = last_type === 'TK_START_BLOCK'; + // do {} while () // no statement required after + if (flags.do_while && previous_flags.mode === MODE.Conditional) { + previous_flags.mode = MODE.Expression; + flags.do_block = false; + flags.do_while = false; - if (flags.inline_frame && !empty_braces) { // try inline_frame (only set if opt.braces-preserve-inline) first - output.space_before_token = true; - } else if (opt.brace_style === "expand") { - if (!empty_braces) { - print_newline(); - } - } else { - // skip {} - if (!empty_braces) { - if (is_array(flags.mode) && opt.keep_array_indentation) { - // we REALLY need a newline here, but newliner would skip that - opt.keep_array_indentation = false; - print_newline(); - opt.keep_array_indentation = true; + } + } - } else { - print_newline(); - } - } - } - restore_mode(); - print_token(); + function handle_start_block() { + handle_whitespace_and_comments(current_token); + + // Check if this is should be treated as a ObjectLiteral + var next_token = get_token(1); + var second_token = get_token(2); + if (second_token && ( + (in_array(second_token.text, [':', ',']) && in_array(next_token.type, ['TK_STRING', 'TK_WORD', 'TK_RESERVED'])) || + (in_array(next_token.text, ['get', 'set', '...']) && in_array(second_token.type, ['TK_WORD', 'TK_RESERVED'])) + )) { + // We don't support TypeScript,but we didn't break it for a very long time. + // We'll try to keep not breaking it. + if (!in_array(last_last_text, ['class', 'interface'])) { + set_mode(MODE.ObjectLiteral); + } else { + set_mode(MODE.BlockStatement); } + } else if (last_type === 'TK_OPERATOR' && flags.last_text === '=>') { + // arrow function: (param1, paramN) => { statements } + set_mode(MODE.BlockStatement); + } else if (in_array(last_type, ['TK_EQUALS', 'TK_START_EXPR', 'TK_COMMA', 'TK_OPERATOR']) || + (last_type === 'TK_RESERVED' && in_array(flags.last_text, ['return', 'throw', 'import', 'default'])) + ) { + // Detecting shorthand function syntax is difficult by scanning forward, + // so check the surrounding context. + // If the block is being returned, imported, export default, passed as arg, + // assigned with = or assigned in a nested object, treat as an ObjectLiteral. + set_mode(MODE.ObjectLiteral); + } else { + set_mode(MODE.BlockStatement); + } - function handle_word() { - if (current_token.type === 'TK_RESERVED') { - if (in_array(current_token.text, ['set', 'get']) && flags.mode !== MODE.ObjectLiteral) { - current_token.type = 'TK_WORD'; - } else if (in_array(current_token.text, ['as', 'from']) && !flags.import_block) { - current_token.type = 'TK_WORD'; - } else if (flags.mode === MODE.ObjectLiteral) { - var next_token = get_token(1); - if (next_token.text === ':') { - current_token.type = 'TK_WORD'; - } - } - } + var empty_braces = !next_token.comments_before.length && next_token.text === '}'; + var empty_anonymous_function = empty_braces && flags.last_word === 'function' && + last_type === 'TK_END_EXPR'; - if (start_of_statement()) { - // The conditional starts the statement if appropriate. - if (last_type === 'TK_RESERVED' && in_array(flags.last_text, ['var', 'let', 'const']) && current_token.type === 'TK_WORD') { - flags.declaration_statement = true; - } - } else if (current_token.wanted_newline && !is_expression(flags.mode) && - (last_type !== 'TK_OPERATOR' || (flags.last_text === '--' || flags.last_text === '++')) && - last_type !== 'TK_EQUALS' && - (opt.preserve_newlines || !(last_type === 'TK_RESERVED' && in_array(flags.last_text, ['var', 'let', 'const', 'set', 'get'])))) { - handle_whitespace_and_comments(current_token); - print_newline(); - } else { - handle_whitespace_and_comments(current_token); + if (opt.brace_preserve_inline) // check for inline, set inline_frame if so + { + // search forward for a newline wanted inside this block + var index = 0; + var check_token = null; + flags.inline_frame = true; + do { + index += 1; + check_token = get_token(index); + if (check_token.wanted_newline) { + flags.inline_frame = false; + break; } + } while (check_token.type !== 'TK_EOF' && + !(check_token.type === 'TK_END_BLOCK' && check_token.opened === current_token)); + } - if (flags.do_block && !flags.do_while) { - if (current_token.type === 'TK_RESERVED' && current_token.text === 'while') { - // do {} ## while () - output.space_before_token = true; - print_token(); - output.space_before_token = true; - flags.do_while = true; - return; - } else { - // do {} should always have while as the next word. - // if we don't see the expected while, recover - print_newline(); - flags.do_block = false; - } + if ((opt.brace_style === "expand" || + (opt.brace_style === "none" && current_token.wanted_newline)) && + !flags.inline_frame) { + if (last_type !== 'TK_OPERATOR' && + (empty_anonymous_function || + last_type === 'TK_EQUALS' || + (last_type === 'TK_RESERVED' && is_special_word(flags.last_text) && flags.last_text !== 'else'))) { + output.space_before_token = true; + } else { + print_newline(false, true); + } + } else { // collapse || inline_frame + if (is_array(previous_flags.mode) && (last_type === 'TK_START_EXPR' || last_type === 'TK_COMMA')) { + if (last_type === 'TK_COMMA' || opt.space_in_paren) { + output.space_before_token = true; } - // if may be followed by else, or not - // Bare/inline ifs are tricky - // Need to unwind the modes correctly: if (a) if (b) c(); else d(); else e(); - if (flags.if_block) { - if (!flags.else_block && (current_token.type === 'TK_RESERVED' && current_token.text === 'else')) { - flags.else_block = true; - } else { - while (flags.mode === MODE.Statement) { - restore_mode(); - } - flags.if_block = false; - flags.else_block = false; - } + if (last_type === 'TK_COMMA' || (last_type === 'TK_START_EXPR' && flags.inline_frame)) { + allow_wrap_or_preserved_newline(); + previous_flags.multiline_frame = previous_flags.multiline_frame || flags.multiline_frame; + flags.multiline_frame = false; } - - if (current_token.type === 'TK_RESERVED' && (current_token.text === 'case' || (current_token.text === 'default' && flags.in_case_statement))) { + } + if (last_type !== 'TK_OPERATOR' && last_type !== 'TK_START_EXPR') { + if (last_type === 'TK_START_BLOCK' && !flags.inline_frame) { print_newline(); - if (flags.case_body || opt.jslint_happy) { - // switch cases following one another - deindent(); - flags.case_body = false; - } - print_token(); - flags.in_case = true; - flags.in_case_statement = true; - return; - } - - if (last_type === 'TK_COMMA' || last_type === 'TK_START_EXPR' || last_type === 'TK_EQUALS' || last_type === 'TK_OPERATOR') { - if (!start_of_object_property()) { - allow_wrap_or_preserved_newline(); - } + } else { + output.space_before_token = true; } + } + } + print_token(); + indent(); + } - if (current_token.type === 'TK_RESERVED' && current_token.text === 'function') { - if (in_array(flags.last_text, ['}', ';']) || - (output.just_added_newline() && !(in_array(flags.last_text, ['(', '[', '{', ':', '=', ',']) || last_type === 'TK_OPERATOR'))) { - // make sure there is a nice clean space of at least one blank line - // before a new function definition - if (!output.just_added_blankline() && !current_token.comments_before.length) { - print_newline(); - print_newline(true); - } - } - if (last_type === 'TK_RESERVED' || last_type === 'TK_WORD') { - if (last_type === 'TK_RESERVED' && in_array(flags.last_text, ['get', 'set', 'new', 'return', 'export', 'async'])) { - output.space_before_token = true; - } else if (last_type === 'TK_RESERVED' && flags.last_text === 'default' && last_last_text === 'export') { - output.space_before_token = true; - } else { - print_newline(); - } - } else if (last_type === 'TK_OPERATOR' || flags.last_text === '=') { - // foo = function - output.space_before_token = true; - } else if (!flags.multiline_frame && (is_expression(flags.mode) || is_array(flags.mode))) { - // (function - } else { - print_newline(); - } + function handle_end_block() { + // statements must all be closed when their container closes + handle_whitespace_and_comments(current_token); - print_token(); - flags.last_word = current_token.text; - return; - } + while (flags.mode === MODE.Statement) { + restore_mode(); + } - prefix = 'NONE'; + var empty_braces = last_type === 'TK_START_BLOCK'; - if (last_type === 'TK_END_BLOCK') { + if (flags.inline_frame && !empty_braces) { // try inline_frame (only set if opt.braces-preserve-inline) first + output.space_before_token = true; + } else if (opt.brace_style === "expand") { + if (!empty_braces) { + print_newline(); + } + } else { + // skip {} + if (!empty_braces) { + if (is_array(flags.mode) && opt.keep_array_indentation) { + // we REALLY need a newline here, but newliner would skip that + opt.keep_array_indentation = false; + print_newline(); + opt.keep_array_indentation = true; - if (previous_flags.inline_frame) { - prefix = 'SPACE'; - } else if (!(current_token.type === 'TK_RESERVED' && in_array(current_token.text, ['else', 'catch', 'finally', 'from']))) { - prefix = 'NEWLINE'; - } else { - if (opt.brace_style === "expand" || - opt.brace_style === "end-expand" || - (opt.brace_style === "none" && current_token.wanted_newline)) { - prefix = 'NEWLINE'; - } else { - prefix = 'SPACE'; - output.space_before_token = true; - } - } - } else if (last_type === 'TK_SEMICOLON' && flags.mode === MODE.BlockStatement) { - // TODO: Should this be for STATEMENT as well? - prefix = 'NEWLINE'; - } else if (last_type === 'TK_SEMICOLON' && is_expression(flags.mode)) { - prefix = 'SPACE'; - } else if (last_type === 'TK_STRING') { - prefix = 'NEWLINE'; - } else if (last_type === 'TK_RESERVED' || last_type === 'TK_WORD' || - (flags.last_text === '*' && - (in_array(last_last_text, ['function', 'yield']) || - (flags.mode === MODE.ObjectLiteral && in_array(last_last_text, ['{', ',']))))) { - prefix = 'SPACE'; - } else if (last_type === 'TK_START_BLOCK') { - if (flags.inline_frame) { - prefix = 'SPACE'; - } else { - prefix = 'NEWLINE'; - } - } else if (last_type === 'TK_END_EXPR') { - output.space_before_token = true; - prefix = 'NEWLINE'; + } else { + print_newline(); } + } + } + restore_mode(); + print_token(); + } - if (current_token.type === 'TK_RESERVED' && in_array(current_token.text, Tokenizer.line_starters) && flags.last_text !== ')') { - if (flags.inline_frame || flags.last_text === 'else' || flags.last_text === 'export') { - prefix = 'SPACE'; - } else { - prefix = 'NEWLINE'; - } - + function handle_word() { + if (current_token.type === 'TK_RESERVED') { + if (in_array(current_token.text, ['set', 'get']) && flags.mode !== MODE.ObjectLiteral) { + current_token.type = 'TK_WORD'; + } else if (in_array(current_token.text, ['as', 'from']) && !flags.import_block) { + current_token.type = 'TK_WORD'; + } else if (flags.mode === MODE.ObjectLiteral) { + var next_token = get_token(1); + if (next_token.text === ':') { + current_token.type = 'TK_WORD'; } + } + } - if (current_token.type === 'TK_RESERVED' && in_array(current_token.text, ['else', 'catch', 'finally'])) { - if ((!(last_type === 'TK_END_BLOCK' && previous_flags.mode === MODE.BlockStatement) || - opt.brace_style === "expand" || - opt.brace_style === "end-expand" || - (opt.brace_style === "none" && current_token.wanted_newline)) && - !flags.inline_frame) { - print_newline(); - } else { - output.trim(true); - var line = output.current_line; - // If we trimmed and there's something other than a close block before us - // put a newline back in. Handles '} // comment' scenario. - if (line.last() !== '}') { - print_newline(); - } - output.space_before_token = true; - } - } else if (prefix === 'NEWLINE') { - if (last_type === 'TK_RESERVED' && is_special_word(flags.last_text)) { - // no newline between 'return nnn' - output.space_before_token = true; - } else if (last_type !== 'TK_END_EXPR') { - if ((last_type !== 'TK_START_EXPR' || !(current_token.type === 'TK_RESERVED' && in_array(current_token.text, ['var', 'let', 'const']))) && flags.last_text !== ':') { - // no need to force newline on 'var': for (var x = 0...) - if (current_token.type === 'TK_RESERVED' && current_token.text === 'if' && flags.last_text === 'else') { - // no newline for } else if { - output.space_before_token = true; - } else { - print_newline(); - } - } - } else if (current_token.type === 'TK_RESERVED' && in_array(current_token.text, Tokenizer.line_starters) && flags.last_text !== ')') { - print_newline(); - } - } else if (flags.multiline_frame && is_array(flags.mode) && flags.last_text === ',' && last_last_text === '}') { - print_newline(); // }, in lists get a newline treatment - } else if (prefix === 'SPACE') { - output.space_before_token = true; - } - print_token(); - flags.last_word = current_token.text; - - if (current_token.type === 'TK_RESERVED') { - if (current_token.text === 'do') { - flags.do_block = true; - } else if (current_token.text === 'if') { - flags.if_block = true; - } else if (current_token.text === 'import') { - flags.import_block = true; - } else if (flags.import_block && current_token.type === 'TK_RESERVED' && current_token.text === 'from') { - flags.import_block = false; - } - } + if (start_of_statement()) { + // The conditional starts the statement if appropriate. + if (last_type === 'TK_RESERVED' && in_array(flags.last_text, ['var', 'let', 'const']) && current_token.type === 'TK_WORD') { + flags.declaration_statement = true; } + } else if (current_token.wanted_newline && !is_expression(flags.mode) && + (last_type !== 'TK_OPERATOR' || (flags.last_text === '--' || flags.last_text === '++')) && + last_type !== 'TK_EQUALS' && + (opt.preserve_newlines || !(last_type === 'TK_RESERVED' && in_array(flags.last_text, ['var', 'let', 'const', 'set', 'get'])))) { + handle_whitespace_and_comments(current_token); + print_newline(); + } else { + handle_whitespace_and_comments(current_token); + } - function handle_semicolon() { - if (start_of_statement()) { - // The conditional starts the statement if appropriate. - // Semicolon can be the start (and end) of a statement - output.space_before_token = false; - } else { - handle_whitespace_and_comments(current_token); - } + if (flags.do_block && !flags.do_while) { + if (current_token.type === 'TK_RESERVED' && current_token.text === 'while') { + // do {} ## while () + output.space_before_token = true; + print_token(); + output.space_before_token = true; + flags.do_while = true; + return; + } else { + // do {} should always have while as the next word. + // if we don't see the expected while, recover + print_newline(); + flags.do_block = false; + } + } - var next_token = get_token(1); - while (flags.mode === MODE.Statement && - !(flags.if_block && next_token && next_token.type === 'TK_RESERVED' && next_token.text === 'else') && - !flags.do_block) { + // if may be followed by else, or not + // Bare/inline ifs are tricky + // Need to unwind the modes correctly: if (a) if (b) c(); else d(); else e(); + if (flags.if_block) { + if (!flags.else_block && (current_token.type === 'TK_RESERVED' && current_token.text === 'else')) { + flags.else_block = true; + } else { + while (flags.mode === MODE.Statement) { restore_mode(); } + flags.if_block = false; + flags.else_block = false; + } + } - // hacky but effective for the moment - if (flags.import_block) { - flags.import_block = false; - } - print_token(); + if (current_token.type === 'TK_RESERVED' && (current_token.text === 'case' || (current_token.text === 'default' && flags.in_case_statement))) { + print_newline(); + if (flags.case_body || opt.jslint_happy) { + // switch cases following one another + deindent(); + flags.case_body = false; + } + print_token(); + flags.in_case = true; + flags.in_case_statement = true; + return; + } + + if (last_type === 'TK_COMMA' || last_type === 'TK_START_EXPR' || last_type === 'TK_EQUALS' || last_type === 'TK_OPERATOR') { + if (!start_of_object_property()) { + allow_wrap_or_preserved_newline(); } + } - function handle_string() { - if (start_of_statement()) { - // The conditional starts the statement if appropriate. - // One difference - strings want at least a space before + if (current_token.type === 'TK_RESERVED' && current_token.text === 'function') { + if (in_array(flags.last_text, ['}', ';']) || + (output.just_added_newline() && !(in_array(flags.last_text, ['(', '[', '{', ':', '=', ',']) || last_type === 'TK_OPERATOR'))) { + // make sure there is a nice clean space of at least one blank line + // before a new function definition + if (!output.just_added_blankline() && !current_token.comments_before.length) { + print_newline(); + print_newline(true); + } + } + if (last_type === 'TK_RESERVED' || last_type === 'TK_WORD') { + if (last_type === 'TK_RESERVED' && ( + in_array(flags.last_text, ['get', 'set', 'new', 'export', 'async']) || + in_array(flags.last_text, newline_restricted_tokens))) { + output.space_before_token = true; + } else if (last_type === 'TK_RESERVED' && flags.last_text === 'default' && last_last_text === 'export') { output.space_before_token = true; } else { - handle_whitespace_and_comments(current_token); - if (last_type === 'TK_RESERVED' || last_type === 'TK_WORD' || flags.inline_frame) { - output.space_before_token = true; - } else if (last_type === 'TK_COMMA' || last_type === 'TK_START_EXPR' || last_type === 'TK_EQUALS' || last_type === 'TK_OPERATOR') { - if (!start_of_object_property()) { - allow_wrap_or_preserved_newline(); - } - } else { - print_newline(); - } + print_newline(); } - print_token(); + } else if (last_type === 'TK_OPERATOR' || flags.last_text === '=') { + // foo = function + output.space_before_token = true; + } else if (!flags.multiline_frame && (is_expression(flags.mode) || is_array(flags.mode))) { + // (function + } else { + print_newline(); } - function handle_equals() { - if (start_of_statement()) { - // The conditional starts the statement if appropriate. + print_token(); + flags.last_word = current_token.text; + return; + } + + prefix = 'NONE'; + + if (last_type === 'TK_END_BLOCK') { + + if (previous_flags.inline_frame) { + prefix = 'SPACE'; + } else if (!(current_token.type === 'TK_RESERVED' && in_array(current_token.text, ['else', 'catch', 'finally', 'from']))) { + prefix = 'NEWLINE'; + } else { + if (opt.brace_style === "expand" || + opt.brace_style === "end-expand" || + (opt.brace_style === "none" && current_token.wanted_newline)) { + prefix = 'NEWLINE'; } else { - handle_whitespace_and_comments(current_token); + prefix = 'SPACE'; + output.space_before_token = true; } + } + } else if (last_type === 'TK_SEMICOLON' && flags.mode === MODE.BlockStatement) { + // TODO: Should this be for STATEMENT as well? + prefix = 'NEWLINE'; + } else if (last_type === 'TK_SEMICOLON' && is_expression(flags.mode)) { + prefix = 'SPACE'; + } else if (last_type === 'TK_STRING') { + prefix = 'NEWLINE'; + } else if (last_type === 'TK_RESERVED' || last_type === 'TK_WORD' || + (flags.last_text === '*' && + (in_array(last_last_text, ['function', 'yield']) || + (flags.mode === MODE.ObjectLiteral && in_array(last_last_text, ['{', ',']))))) { + prefix = 'SPACE'; + } else if (last_type === 'TK_START_BLOCK') { + if (flags.inline_frame) { + prefix = 'SPACE'; + } else { + prefix = 'NEWLINE'; + } + } else if (last_type === 'TK_END_EXPR') { + output.space_before_token = true; + prefix = 'NEWLINE'; + } - if (flags.declaration_statement) { - // just got an '=' in a var-line, different formatting/line-breaking, etc will now be done - flags.declaration_assignment = true; - } - output.space_before_token = true; - print_token(); - output.space_before_token = true; + if (current_token.type === 'TK_RESERVED' && in_array(current_token.text, tokenizer.line_starters) && flags.last_text !== ')') { + if (flags.inline_frame || flags.last_text === 'else' || flags.last_text === 'export') { + prefix = 'SPACE'; + } else { + prefix = 'NEWLINE'; } - function handle_comma() { - handle_whitespace_and_comments(current_token, true); + } - print_token(); + if (current_token.type === 'TK_RESERVED' && in_array(current_token.text, ['else', 'catch', 'finally'])) { + if ((!(last_type === 'TK_END_BLOCK' && previous_flags.mode === MODE.BlockStatement) || + opt.brace_style === "expand" || + opt.brace_style === "end-expand" || + (opt.brace_style === "none" && current_token.wanted_newline)) && + !flags.inline_frame) { + print_newline(); + } else { + output.trim(true); + var line = output.current_line; + // If we trimmed and there's something other than a close block before us + // put a newline back in. Handles '} // comment' scenario. + if (line.last() !== '}') { + print_newline(); + } output.space_before_token = true; - if (flags.declaration_statement) { - if (is_expression(flags.parent.mode)) { - // do not break on comma, for(var a = 1, b = 2) - flags.declaration_assignment = false; - } - - if (flags.declaration_assignment) { - flags.declaration_assignment = false; - print_newline(false, true); - } else if (opt.comma_first) { - // for comma-first, we want to allow a newline before the comma - // to turn into a newline after the comma, which we will fixup later - allow_wrap_or_preserved_newline(); - } - } else if (flags.mode === MODE.ObjectLiteral || - (flags.mode === MODE.Statement && flags.parent.mode === MODE.ObjectLiteral)) { - if (flags.mode === MODE.Statement) { - restore_mode(); - } - - if (!flags.inline_frame) { + } + } else if (prefix === 'NEWLINE') { + if (last_type === 'TK_RESERVED' && is_special_word(flags.last_text)) { + // no newline between 'return nnn' + output.space_before_token = true; + } else if (last_type !== 'TK_END_EXPR') { + if ((last_type !== 'TK_START_EXPR' || !(current_token.type === 'TK_RESERVED' && in_array(current_token.text, ['var', 'let', 'const']))) && flags.last_text !== ':') { + // no need to force newline on 'var': for (var x = 0...) + if (current_token.type === 'TK_RESERVED' && current_token.text === 'if' && flags.last_text === 'else') { + // no newline for } else if { + output.space_before_token = true; + } else { print_newline(); } - } else if (opt.comma_first) { - // EXPR or DO_BLOCK - // for comma-first, we want to allow a newline before the comma - // to turn into a newline after the comma, which we will fixup later - allow_wrap_or_preserved_newline(); } + } else if (current_token.type === 'TK_RESERVED' && in_array(current_token.text, tokenizer.line_starters) && flags.last_text !== ')') { + print_newline(); } + } else if (flags.multiline_frame && is_array(flags.mode) && flags.last_text === ',' && last_last_text === '}') { + print_newline(); // }, in lists get a newline treatment + } else if (prefix === 'SPACE') { + output.space_before_token = true; + } + print_token(); + flags.last_word = current_token.text; + + if (current_token.type === 'TK_RESERVED') { + if (current_token.text === 'do') { + flags.do_block = true; + } else if (current_token.text === 'if') { + flags.if_block = true; + } else if (current_token.text === 'import') { + flags.import_block = true; + } else if (flags.import_block && current_token.type === 'TK_RESERVED' && current_token.text === 'from') { + flags.import_block = false; + } + } + } - function handle_operator() { - var isGeneratorAsterisk = current_token.text === '*' && - ((last_type === 'TK_RESERVED' && in_array(flags.last_text, ['function', 'yield'])) || - (in_array(last_type, ['TK_START_BLOCK', 'TK_COMMA', 'TK_END_BLOCK', 'TK_SEMICOLON'])) - ); - var isUnary = in_array(current_token.text, ['-', '+']) && ( - in_array(last_type, ['TK_START_BLOCK', 'TK_START_EXPR', 'TK_EQUALS', 'TK_OPERATOR']) || - in_array(flags.last_text, Tokenizer.line_starters) || - flags.last_text === ',' - ); - - if (start_of_statement()) { - // The conditional starts the statement if appropriate. - } else { - var preserve_statement_flags = !isGeneratorAsterisk; - handle_whitespace_and_comments(current_token, preserve_statement_flags); - } - - if (last_type === 'TK_RESERVED' && is_special_word(flags.last_text)) { - // "return" had a special handling in TK_WORD. Now we need to return the favor - output.space_before_token = true; - print_token(); - return; - } + function handle_semicolon() { + if (start_of_statement()) { + // The conditional starts the statement if appropriate. + // Semicolon can be the start (and end) of a statement + output.space_before_token = false; + } else { + handle_whitespace_and_comments(current_token); + } - // hack for actionscript's import .*; - if (current_token.text === '*' && last_type === 'TK_DOT') { - print_token(); - return; - } + var next_token = get_token(1); + while (flags.mode === MODE.Statement && + !(flags.if_block && next_token && next_token.type === 'TK_RESERVED' && next_token.text === 'else') && + !flags.do_block) { + restore_mode(); + } - if (current_token.text === '::') { - // no spaces around exotic namespacing syntax operator - print_token(); - return; - } + // hacky but effective for the moment + if (flags.import_block) { + flags.import_block = false; + } + print_token(); + } - // Allow line wrapping between operators when operator_position is - // set to before or preserve - if (last_type === 'TK_OPERATOR' && in_array(opt.operator_position, OPERATOR_POSITION_BEFORE_OR_PRESERVE)) { + function handle_string() { + if (start_of_statement()) { + // The conditional starts the statement if appropriate. + // One difference - strings want at least a space before + output.space_before_token = true; + } else { + handle_whitespace_and_comments(current_token); + if (last_type === 'TK_RESERVED' || last_type === 'TK_WORD' || flags.inline_frame) { + output.space_before_token = true; + } else if (last_type === 'TK_COMMA' || last_type === 'TK_START_EXPR' || last_type === 'TK_EQUALS' || last_type === 'TK_OPERATOR') { + if (!start_of_object_property()) { allow_wrap_or_preserved_newline(); } + } else { + print_newline(); + } + } + print_token(); + } - if (current_token.text === ':' && flags.in_case) { - flags.case_body = true; - indent(); - print_token(); - print_newline(); - flags.in_case = false; - return; - } + function handle_equals() { + if (start_of_statement()) { + // The conditional starts the statement if appropriate. + } else { + handle_whitespace_and_comments(current_token); + } - var space_before = true; - var space_after = true; - var in_ternary = false; - if (current_token.text === ':') { - if (flags.ternary_depth === 0) { - // Colon is invalid javascript outside of ternary and object, but do our best to guess what was meant. - space_before = false; - } else { - flags.ternary_depth -= 1; - in_ternary = true; - } - } else if (current_token.text === '?') { - flags.ternary_depth += 1; - } + if (flags.declaration_statement) { + // just got an '=' in a var-line, different formatting/line-breaking, etc will now be done + flags.declaration_assignment = true; + } + output.space_before_token = true; + print_token(); + output.space_before_token = true; + } - // let's handle the operator_position option prior to any conflicting logic - if (!isUnary && !isGeneratorAsterisk && opt.preserve_newlines && in_array(current_token.text, Tokenizer.positionable_operators)) { - var isColon = current_token.text === ':'; - var isTernaryColon = (isColon && in_ternary); - var isOtherColon = (isColon && !in_ternary); + function handle_comma() { + handle_whitespace_and_comments(current_token, true); - switch (opt.operator_position) { - case OPERATOR_POSITION.before_newline: - // if the current token is : and it's not a ternary statement then we set space_before to false - output.space_before_token = !isOtherColon; + print_token(); + output.space_before_token = true; + if (flags.declaration_statement) { + if (is_expression(flags.parent.mode)) { + // do not break on comma, for(var a = 1, b = 2) + flags.declaration_assignment = false; + } - print_token(); + if (flags.declaration_assignment) { + flags.declaration_assignment = false; + print_newline(false, true); + } else if (opt.comma_first) { + // for comma-first, we want to allow a newline before the comma + // to turn into a newline after the comma, which we will fixup later + allow_wrap_or_preserved_newline(); + } + } else if (flags.mode === MODE.ObjectLiteral || + (flags.mode === MODE.Statement && flags.parent.mode === MODE.ObjectLiteral)) { + if (flags.mode === MODE.Statement) { + restore_mode(); + } - if (!isColon || isTernaryColon) { - allow_wrap_or_preserved_newline(); - } + if (!flags.inline_frame) { + print_newline(); + } + } else if (opt.comma_first) { + // EXPR or DO_BLOCK + // for comma-first, we want to allow a newline before the comma + // to turn into a newline after the comma, which we will fixup later + allow_wrap_or_preserved_newline(); + } + } - output.space_before_token = true; - return; + function handle_operator() { + var isGeneratorAsterisk = current_token.text === '*' && + ((last_type === 'TK_RESERVED' && in_array(flags.last_text, ['function', 'yield'])) || + (in_array(last_type, ['TK_START_BLOCK', 'TK_COMMA', 'TK_END_BLOCK', 'TK_SEMICOLON'])) + ); + var isUnary = in_array(current_token.text, ['-', '+']) && ( + in_array(last_type, ['TK_START_BLOCK', 'TK_START_EXPR', 'TK_EQUALS', 'TK_OPERATOR']) || + in_array(flags.last_text, tokenizer.line_starters) || + flags.last_text === ',' + ); - case OPERATOR_POSITION.after_newline: - // if the current token is anything but colon, or (via deduction) it's a colon and in a ternary statement, - // then print a newline. + if (start_of_statement()) { + // The conditional starts the statement if appropriate. + } else { + var preserve_statement_flags = !isGeneratorAsterisk; + handle_whitespace_and_comments(current_token, preserve_statement_flags); + } - output.space_before_token = true; + if (last_type === 'TK_RESERVED' && is_special_word(flags.last_text)) { + // "return" had a special handling in TK_WORD. Now we need to return the favor + output.space_before_token = true; + print_token(); + return; + } - if (!isColon || isTernaryColon) { - if (get_token(1).wanted_newline) { - print_newline(false, true); - } else { - allow_wrap_or_preserved_newline(); - } - } else { - output.space_before_token = false; - } + // hack for actionscript's import .*; + if (current_token.text === '*' && last_type === 'TK_DOT') { + print_token(); + return; + } - print_token(); + if (current_token.text === '::') { + // no spaces around exotic namespacing syntax operator + print_token(); + return; + } - output.space_before_token = true; - return; + // Allow line wrapping between operators when operator_position is + // set to before or preserve + if (last_type === 'TK_OPERATOR' && in_array(opt.operator_position, OPERATOR_POSITION_BEFORE_OR_PRESERVE)) { + allow_wrap_or_preserved_newline(); + } - case OPERATOR_POSITION.preserve_newline: - if (!isOtherColon) { - allow_wrap_or_preserved_newline(); - } + if (current_token.text === ':' && flags.in_case) { + flags.case_body = true; + indent(); + print_token(); + print_newline(); + flags.in_case = false; + return; + } - // if we just added a newline, or the current token is : and it's not a ternary statement, - // then we set space_before to false - space_before = !(output.just_added_newline() || isOtherColon); + var space_before = true; + var space_after = true; + var in_ternary = false; + if (current_token.text === ':') { + if (flags.ternary_depth === 0) { + // Colon is invalid javascript outside of ternary and object, but do our best to guess what was meant. + space_before = false; + } else { + flags.ternary_depth -= 1; + in_ternary = true; + } + } else if (current_token.text === '?') { + flags.ternary_depth += 1; + } - output.space_before_token = space_before; - print_token(); - output.space_before_token = true; - return; - } - } + // let's handle the operator_position option prior to any conflicting logic + if (!isUnary && !isGeneratorAsterisk && opt.preserve_newlines && in_array(current_token.text, tokenizer.positionable_operators)) { + var isColon = current_token.text === ':'; + var isTernaryColon = (isColon && in_ternary); + var isOtherColon = (isColon && !in_ternary); - if (isGeneratorAsterisk) { - allow_wrap_or_preserved_newline(); - space_before = false; - var next_token = get_token(1); - space_after = next_token && in_array(next_token.type, ['TK_WORD', 'TK_RESERVED']); - } else if (current_token.text === '...') { - allow_wrap_or_preserved_newline(); - space_before = last_type === 'TK_START_BLOCK'; - space_after = false; - } else if (in_array(current_token.text, ['--', '++', '!', '~']) || isUnary) { - // unary operators (and binary +/- pretending to be unary) special cases - - space_before = false; - space_after = false; - - // http://www.ecma-international.org/ecma-262/5.1/#sec-7.9.1 - // if there is a newline between -- or ++ and anything else we should preserve it. - if (current_token.wanted_newline && (current_token.text === '--' || current_token.text === '++')) { - print_newline(false, true); - } + switch (opt.operator_position) { + case OPERATOR_POSITION.before_newline: + // if the current token is : and it's not a ternary statement then we set space_before to false + output.space_before_token = !isOtherColon; - if (flags.last_text === ';' && is_expression(flags.mode)) { - // for (;; ++i) - // ^^^ - space_before = true; - } + print_token(); - if (last_type === 'TK_RESERVED') { - space_before = true; - } else if (last_type === 'TK_END_EXPR') { - space_before = !(flags.last_text === ']' && (current_token.text === '--' || current_token.text === '++')); - } else if (last_type === 'TK_OPERATOR') { - // a++ + ++b; - // a - -b - space_before = in_array(current_token.text, ['--', '-', '++', '+']) && in_array(flags.last_text, ['--', '-', '++', '+']); - // + and - are not unary when preceeded by -- or ++ operator - // a-- + b - // a * +b - // a - -b - if (in_array(current_token.text, ['+', '-']) && in_array(flags.last_text, ['--', '++'])) { - space_after = true; - } + if (!isColon || isTernaryColon) { + allow_wrap_or_preserved_newline(); } + output.space_before_token = true; + return; - if (((flags.mode === MODE.BlockStatement && !flags.inline_frame) || flags.mode === MODE.Statement) && - (flags.last_text === '{' || flags.last_text === ';')) { - // { foo; --i } - // foo(); --bar; - print_newline(); - } - } + case OPERATOR_POSITION.after_newline: + // if the current token is anything but colon, or (via deduction) it's a colon and in a ternary statement, + // then print a newline. - output.space_before_token = output.space_before_token || space_before; - print_token(); - output.space_before_token = space_after; - } + output.space_before_token = true; - function handle_block_comment(preserve_statement_flags) { - if (output.raw) { - output.add_raw_token(current_token); - if (current_token.directives && current_token.directives.preserve === 'end') { - // If we're testing the raw output behavior, do not allow a directive to turn it off. - output.raw = opt.test_output_raw; + if (!isColon || isTernaryColon) { + if (get_token(1).wanted_newline) { + print_newline(false, true); + } else { + allow_wrap_or_preserved_newline(); + } + } else { + output.space_before_token = false; } - return; - } - if (current_token.directives) { - print_newline(false, preserve_statement_flags); print_token(); - if (current_token.directives.preserve === 'start') { - output.raw = true; - } - print_newline(false, true); - return; - } - // inline block - if (!acorn.newline.test(current_token.text) && !current_token.wanted_newline) { - output.space_before_token = true; - print_token(); output.space_before_token = true; return; - } - - var lines = split_linebreaks(current_token.text); - var j; // iterator for this case - var javadoc = false; - var starless = false; - var lastIndent = current_token.whitespace_before; - var lastIndentLength = lastIndent.length; - - // block comment starts with a new line - print_newline(false, preserve_statement_flags); - if (lines.length > 1) { - javadoc = all_lines_start_with(lines.slice(1), '*'); - starless = each_line_matches_indent(lines.slice(1), lastIndent); - } - // first line always indented - print_token(lines[0]); - for (j = 1; j < lines.length; j++) { - print_newline(false, true); - if (javadoc) { - // javadoc: reformat and re-indent - print_token(' ' + ltrim(lines[j])); - } else if (starless && lines[j].length > lastIndentLength) { - // starless: re-indent non-empty content, avoiding trim - print_token(lines[j].substring(lastIndentLength)); - } else { - // normal comments output raw - output.add_token(lines[j]); + case OPERATOR_POSITION.preserve_newline: + if (!isOtherColon) { + allow_wrap_or_preserved_newline(); } - } - // for comments of more than one line, make sure there's a new line after - print_newline(false, preserve_statement_flags); + // if we just added a newline, or the current token is : and it's not a ternary statement, + // then we set space_before to false + space_before = !(output.just_added_newline() || isOtherColon); + + output.space_before_token = space_before; + print_token(); + output.space_before_token = true; + return; } + } - function handle_comment(preserve_statement_flags) { - if (current_token.wanted_newline) { - print_newline(false, preserve_statement_flags); - } else { - output.trim(true); - } + if (isGeneratorAsterisk) { + allow_wrap_or_preserved_newline(); + space_before = false; + var next_token = get_token(1); + space_after = next_token && in_array(next_token.type, ['TK_WORD', 'TK_RESERVED']); + } else if (current_token.text === '...') { + allow_wrap_or_preserved_newline(); + space_before = last_type === 'TK_START_BLOCK'; + space_after = false; + } else if (in_array(current_token.text, ['--', '++', '!', '~']) || isUnary) { + // unary operators (and binary +/- pretending to be unary) special cases + + space_before = false; + space_after = false; + + // http://www.ecma-international.org/ecma-262/5.1/#sec-7.9.1 + // if there is a newline between -- or ++ and anything else we should preserve it. + if (current_token.wanted_newline && (current_token.text === '--' || current_token.text === '++')) { + print_newline(false, true); + } - output.space_before_token = true; - print_token(); - print_newline(false, preserve_statement_flags); + if (flags.last_text === ';' && is_expression(flags.mode)) { + // for (;; ++i) + // ^^^ + space_before = true; } - function handle_dot() { - if (start_of_statement()) { - // The conditional starts the statement if appropriate. - } else { - handle_whitespace_and_comments(current_token, true); + if (last_type === 'TK_RESERVED') { + space_before = true; + } else if (last_type === 'TK_END_EXPR') { + space_before = !(flags.last_text === ']' && (current_token.text === '--' || current_token.text === '++')); + } else if (last_type === 'TK_OPERATOR') { + // a++ + ++b; + // a - -b + space_before = in_array(current_token.text, ['--', '-', '++', '+']) && in_array(flags.last_text, ['--', '-', '++', '+']); + // + and - are not unary when preceeded by -- or ++ operator + // a-- + b + // a * +b + // a - -b + if (in_array(current_token.text, ['+', '-']) && in_array(flags.last_text, ['--', '++'])) { + space_after = true; } + } - if (last_type === 'TK_RESERVED' && is_special_word(flags.last_text)) { - output.space_before_token = true; - } else { - // allow preserved newlines before dots in general - // force newlines on dots after close paren when break_chained - for bar().baz() - allow_wrap_or_preserved_newline(flags.last_text === ')' && opt.break_chained_methods); - } - print_token(); + if (((flags.mode === MODE.BlockStatement && !flags.inline_frame) || flags.mode === MODE.Statement) && + (flags.last_text === '{' || flags.last_text === ';')) { + // { foo; --i } + // foo(); --bar; + print_newline(); } + } - function handle_unknown(preserve_statement_flags) { - print_token(); + output.space_before_token = output.space_before_token || space_before; + print_token(); + output.space_before_token = space_after; + } - if (current_token.text[current_token.text.length - 1] === '\n') { - print_newline(false, preserve_statement_flags); - } + function handle_block_comment(preserve_statement_flags) { + if (output.raw) { + output.add_raw_token(current_token); + if (current_token.directives && current_token.directives.preserve === 'end') { + // If we're testing the raw output behavior, do not allow a directive to turn it off. + output.raw = opt.test_output_raw; } + return; + } - function handle_eof() { - // Unwind any open statements - while (flags.mode === MODE.Statement) { - restore_mode(); - } - handle_whitespace_and_comments(current_token); + if (current_token.directives) { + print_newline(false, preserve_statement_flags); + print_token(); + if (current_token.directives.preserve === 'start') { + output.raw = true; } + print_newline(false, true); + return; } + // inline block + if (!acorn.newline.test(current_token.text) && !current_token.wanted_newline) { + output.space_before_token = true; + print_token(); + output.space_before_token = true; + return; + } - function OutputLine(parent) { - var _character_count = 0; - // use indent_count as a marker for lines that have preserved indentation - var _indent_count = -1; - - var _items = []; - var _empty = true; - - this.set_indent = function(level) { - _character_count = parent.baseIndentLength + level * parent.indent_length; - _indent_count = level; - }; + var lines = split_linebreaks(current_token.text); + var j; // iterator for this case + var javadoc = false; + var starless = false; + var lastIndent = current_token.whitespace_before; + var lastIndentLength = lastIndent.length; + + // block comment starts with a new line + print_newline(false, preserve_statement_flags); + if (lines.length > 1) { + javadoc = all_lines_start_with(lines.slice(1), '*'); + starless = each_line_matches_indent(lines.slice(1), lastIndent); + } + + // first line always indented + print_token(lines[0]); + for (j = 1; j < lines.length; j++) { + print_newline(false, true); + if (javadoc) { + // javadoc: reformat and re-indent + print_token(' ' + ltrim(lines[j])); + } else if (starless && lines[j].length > lastIndentLength) { + // starless: re-indent non-empty content, avoiding trim + print_token(lines[j].substring(lastIndentLength)); + } else { + // normal comments output raw + output.add_token(lines[j]); + } + } - this.get_character_count = function() { - return _character_count; - }; + // for comments of more than one line, make sure there's a new line after + print_newline(false, preserve_statement_flags); + } - this.is_empty = function() { - return _empty; - }; + function handle_comment(preserve_statement_flags) { + if (current_token.wanted_newline) { + print_newline(false, preserve_statement_flags); + } else { + output.trim(true); + } - this.last = function() { - if (!this._empty) { - return _items[_items.length - 1]; - } else { - return null; - } - }; + output.space_before_token = true; + print_token(); + print_newline(false, preserve_statement_flags); + } - this.push = function(input) { - _items.push(input); - _character_count += input.length; - _empty = false; - }; + function handle_dot() { + if (start_of_statement()) { + // The conditional starts the statement if appropriate. + } else { + handle_whitespace_and_comments(current_token, true); + } - this.pop = function() { - var item = null; - if (!_empty) { - item = _items.pop(); - _character_count -= item.length; - _empty = _items.length === 0; - } - return item; - }; + if (last_type === 'TK_RESERVED' && is_special_word(flags.last_text)) { + output.space_before_token = true; + } else { + // allow preserved newlines before dots in general + // force newlines on dots after close paren when break_chained - for bar().baz() + allow_wrap_or_preserved_newline(flags.last_text === ')' && opt.break_chained_methods); + } - this.remove_indent = function() { - if (_indent_count > 0) { - _indent_count -= 1; - _character_count -= parent.indent_length; - } - }; + print_token(); + } - this.trim = function() { - while (this.last() === ' ') { - _items.pop(); - _character_count -= 1; - } - _empty = _items.length === 0; - }; + function handle_unknown(preserve_statement_flags) { + print_token(); - this.toString = function() { - var result = ''; - if (!this._empty) { - if (_indent_count >= 0) { - result = parent.indent_cache[_indent_count]; - } - result += _items.join(''); - } - return result; - }; + if (current_token.text[current_token.text.length - 1] === '\n') { + print_newline(false, preserve_statement_flags); } + } - function Output(indent_string, baseIndentString) { - baseIndentString = baseIndentString || ''; - this.indent_cache = [baseIndentString]; - this.baseIndentLength = baseIndentString.length; - this.indent_length = indent_string.length; - this.raw = false; - - var lines = []; - this.baseIndentString = baseIndentString; - this.indent_string = indent_string; - this.previous_line = null; - this.current_line = null; - this.space_before_token = false; - - this.add_outputline = function() { - this.previous_line = this.current_line; - this.current_line = new OutputLine(this); - lines.push(this.current_line); - }; - - // initialize - this.add_outputline(); + function handle_eof() { + // Unwind any open statements + while (flags.mode === MODE.Statement) { + restore_mode(); + } + handle_whitespace_and_comments(current_token); + } +} +module.exports.Beautifier = Beautifier; - this.get_line_number = function() { - return lines.length; - }; +/***/ }), +/* 2 */ +/***/ (function(module, exports) { - // Using object instead of string to allow for later expansion of info about each line - this.add_new_line = function(force_newline) { - if (this.get_line_number() === 1 && this.just_added_newline()) { - return false; // no newline on start of file - } +/*jshint curly:true, eqeqeq:true, laxbreak:true, noempty:false */ +/* - if (force_newline || !this.just_added_newline()) { - if (!this.raw) { - this.add_outputline(); - } - return true; - } + The MIT License (MIT) - return false; - }; + Copyright (c) 2007-2017 Einar Lielmanis, Liam Newman, and contributors. - this.get_code = function() { - var sweet_code = lines.join('\n').replace(/[\r\n\t ]+$/, ''); - return sweet_code; - }; + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: - this.set_indent = function(level) { - // Never indent your first output indent at the start of the file - if (lines.length > 1) { - while (level >= this.indent_cache.length) { - this.indent_cache.push(this.indent_cache[this.indent_cache.length - 1] + this.indent_string); - } + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. - this.current_line.set_indent(level); - return true; - } - this.current_line.set_indent(0); - return false; - }; + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ - this.add_raw_token = function(token) { - for (var x = 0; x < token.newlines; x++) { - this.add_outputline(); - } - this.current_line.push(token.whitespace_before); - this.current_line.push(token.text); - this.space_before_token = false; - }; +function InputScanner(input) { + var _input = input; + var _input_length = _input.length; + var _position = 0; - this.add_token = function(printable_token) { - this.add_space_before_token(); - this.current_line.push(printable_token); - }; + this.back = function() { + _position -= 1; + }; - this.add_space_before_token = function() { - if (this.space_before_token && !this.just_added_newline()) { - this.current_line.push(' '); - } - this.space_before_token = false; - }; + this.hasNext = function() { + return _position < _input_length; + }; - this.remove_redundant_indentation = function(frame) { - // This implementation is effective but has some issues: - // - can cause line wrap to happen too soon due to indent removal - // after wrap points are calculated - // These issues are minor compared to ugly indentation. + this.next = function() { + var val = null; + if (this.hasNext()) { + val = _input.charAt(_position); + _position += 1; + } + return val; + }; - if (frame.multiline_frame || - frame.mode === MODE.ForInitializer || - frame.mode === MODE.Conditional) { - return; - } + this.peek = function(index) { + var val = null; + index = index || 0; + index += _position; + if (index >= 0 && index < _input_length) { + val = _input.charAt(index); + } + return val; + }; - // remove one indent from each line inside this section - var index = frame.start_line_index; + this.peekCharCode = function(index) { + var val = 0; + index = index || 0; + index += _position; + if (index >= 0 && index < _input_length) { + val = _input.charCodeAt(index); + } + return val; + }; - var output_length = lines.length; - while (index < output_length) { - lines[index].remove_indent(); - index++; - } - }; + this.test = function(pattern, index) { + index = index || 0; + pattern.lastIndex = _position + index; + return pattern.test(_input); + }; - this.trim = function(eat_newlines) { - eat_newlines = (eat_newlines === undefined) ? false : eat_newlines; + this.testChar = function(pattern, index) { + var val = this.peek(index); + return val !== null && pattern.test(val); + }; - this.current_line.trim(indent_string, baseIndentString); + this.match = function(pattern) { + pattern.lastIndex = _position; + var pattern_match = pattern.exec(_input); + if (pattern_match && pattern_match.index === _position) { + _position += pattern_match[0].length; + } else { + pattern_match = null; + } + return pattern_match; + }; +} - while (eat_newlines && lines.length > 1 && - this.current_line.is_empty()) { - lines.pop(); - this.current_line = lines[lines.length - 1]; - this.current_line.trim(); - } - this.previous_line = lines.length > 1 ? lines[lines.length - 2] : null; - }; +module.exports.InputScanner = InputScanner; - this.just_added_newline = function() { - return this.current_line.is_empty(); - }; - this.just_added_blankline = function() { - if (this.just_added_newline()) { - if (lines.length === 1) { - return true; // start of the file and newline = blank - } +/***/ }), +/* 3 */ +/***/ (function(module, exports) { - var line = lines[lines.length - 2]; - return line.is_empty(); - } - return false; - }; - } +/*jshint curly:true, eqeqeq:true, laxbreak:true, noempty:false */ +/* - var InputScanner = function(input) { - var _input = input; - var _input_length = _input.length; - var _position = 0; + The MIT License (MIT) + + Copyright (c) 2007-2017 Einar Lielmanis, Liam Newman, and contributors. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ - this.back = function() { - _position -= 1; - }; +function mergeOpts(allOptions, targetType) { + var finalOpts = {}; + var name; - this.hasNext = function() { - return _position < _input_length; - }; + for (name in allOptions) { + if (name !== targetType) { + finalOpts[name] = allOptions[name]; + } + } - this.next = function() { - var val = null; - if (this.hasNext()) { - val = _input.charAt(_position); - _position += 1; - } - return val; - }; + //merge in the per type settings for the targetType + if (targetType in allOptions) { + for (name in allOptions[targetType]) { + finalOpts[name] = allOptions[targetType][name]; + } + } + return finalOpts; +} - this.peek = function(index) { - var val = null; - index = index || 0; - index += _position; - if (index >= 0 && index < _input_length) { - val = _input.charAt(index); - } - return val; - }; +module.exports.mergeOpts = mergeOpts; - this.peekCharCode = function(index) { - var val = 0; - index = index || 0; - index += _position; - if (index >= 0 && index < _input_length) { - val = _input.charCodeAt(index); - } - return val; - }; - this.test = function(pattern, index) { - index = index || 0; - pattern.lastIndex = _position + index; - return pattern.test(_input); - }; +/***/ }), +/* 4 */ +/***/ (function(module, exports) { - this.testChar = function(pattern, index) { - var val = this.peek(index); - return val !== null && pattern.test(val); - }; +/*jshint curly:true, eqeqeq:true, laxbreak:true, noempty:false */ +/* - this.match = function(pattern) { - pattern.lastIndex = _position; - var pattern_match = pattern.exec(_input); - if (pattern_match && pattern_match.index === _position) { - _position += pattern_match[0].length; - } else { - pattern_match = null; - } - return pattern_match; - }; - }; + The MIT License (MIT) - var Token = function(type, text, newlines, whitespace_before, parent) { - this.type = type; - this.text = text; + Copyright (c) 2007-2017 Einar Lielmanis, Liam Newman, and contributors. - // comments_before are - // comments that have a new line before them - // and may or may not have a newline after - // this is a set of comments before - this.comments_before = /* inline comment*/ []; + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. - this.comments_after = []; // no new line before and newline after - this.newlines = newlines || 0; - this.wanted_newline = newlines > 0; - this.whitespace_before = whitespace_before || ''; - this.parent = parent || null; - this.opened = null; - this.directives = null; - }; + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ - function tokenizer(input_string, opts) { +function OutputLine(parent) { + var _character_count = 0; + // use indent_count as a marker for lines that have preserved indentation + var _indent_count = -1; - var whitespace = "\n\r\t ".split(''); - var digit = /[0-9]/; - var digit_bin = /[01]/; - var digit_oct = /[01234567]/; - var digit_hex = /[0123456789abcdefABCDEF]/; + var _items = []; + var _empty = true; - this.positionable_operators = '!= !== % & && * ** + - / : < << <= == === > >= >> >>> ? ^ | ||'.split(' '); - var punct = this.positionable_operators.concat( - // non-positionable operators - these do not follow operator position settings - '! %= &= *= **= ++ += , -- -= /= :: <<= = => >>= >>>= ^= |= ~ ...'.split(' ')); + this.set_indent = function(level) { + _character_count = parent.baseIndentLength + level * parent.indent_length; + _indent_count = level; + }; - // words which should always start on new line. - this.line_starters = 'continue,try,throw,return,var,let,const,if,switch,case,default,for,while,break,function,import,export'.split(','); - var reserved_words = this.line_starters.concat(['do', 'in', 'of', 'else', 'get', 'set', 'new', 'catch', 'finally', 'typeof', 'yield', 'async', 'await', 'from', 'as']); + this.get_character_count = function() { + return _character_count; + }; - // /* ... */ comment ends with nearest */ or end of file - var block_comment_pattern = /([\s\S]*?)((?:\*\/)|$)/g; + this.is_empty = function() { + return _empty; + }; - // comment ends just before nearest linefeed or end of file - var comment_pattern = /([^\n\r\u2028\u2029]*)/g; + this.last = function() { + if (!this._empty) { + return _items[_items.length - 1]; + } else { + return null; + } + }; - var directives_block_pattern = /\/\* beautify( \w+[:]\w+)+ \*\//g; - var directive_pattern = / (\w+)[:](\w+)/g; - var directives_end_ignore_pattern = /([\s\S]*?)((?:\/\*\sbeautify\signore:end\s\*\/)|$)/g; + this.push = function(input) { + _items.push(input); + _character_count += input.length; + _empty = false; + }; - var template_pattern = /((<\?php|<\?=)[\s\S]*?\?>)|(<%[\s\S]*?%>)/g; + this.pop = function() { + var item = null; + if (!_empty) { + item = _items.pop(); + _character_count -= item.length; + _empty = _items.length === 0; + } + return item; + }; - var n_newlines, whitespace_before_token, in_html_comment, tokens; - var input; + this.remove_indent = function() { + if (_indent_count > 0) { + _indent_count -= 1; + _character_count -= parent.indent_length; + } + }; - this.tokenize = function() { - input = new InputScanner(input_string); - in_html_comment = false; - tokens = []; + this.trim = function() { + while (this.last() === ' ') { + _items.pop(); + _character_count -= 1; + } + _empty = _items.length === 0; + }; - var next, last; - var token_values; - var open = null; - var open_stack = []; - var comments = []; + this.toString = function() { + var result = ''; + if (!this._empty) { + if (_indent_count >= 0) { + result = parent.indent_cache[_indent_count]; + } + result += _items.join(''); + } + return result; + }; +} - while (!(last && last.type === 'TK_EOF')) { - token_values = tokenize_next(); - next = new Token(token_values[1], token_values[0], n_newlines, whitespace_before_token); - while (next.type === 'TK_COMMENT' || next.type === 'TK_BLOCK_COMMENT' || next.type === 'TK_UNKNOWN') { - if (next.type === 'TK_BLOCK_COMMENT') { - next.directives = token_values[2]; - } - comments.push(next); - token_values = tokenize_next(); - next = new Token(token_values[1], token_values[0], n_newlines, whitespace_before_token); - } +function Output(indent_string, baseIndentString) { + baseIndentString = baseIndentString || ''; + this.indent_cache = [baseIndentString]; + this.baseIndentLength = baseIndentString.length; + this.indent_length = indent_string.length; + this.raw = false; + + var lines = []; + this.baseIndentString = baseIndentString; + this.indent_string = indent_string; + this.previous_line = null; + this.current_line = null; + this.space_before_token = false; + + this.add_outputline = function() { + this.previous_line = this.current_line; + this.current_line = new OutputLine(this); + lines.push(this.current_line); + }; - if (comments.length) { - next.comments_before = comments; - comments = []; - } + // initialize + this.add_outputline(); - if (next.type === 'TK_START_BLOCK' || next.type === 'TK_START_EXPR') { - next.parent = last; - open_stack.push(open); - open = next; - } else if ((next.type === 'TK_END_BLOCK' || next.type === 'TK_END_EXPR') && - (open && ( - (next.text === ']' && open.text === '[') || - (next.text === ')' && open.text === '(') || - (next.text === '}' && open.text === '{')))) { - next.parent = open.parent; - next.opened = open; - - open = open_stack.pop(); - } - tokens.push(next); - last = next; - } + this.get_line_number = function() { + return lines.length; + }; - return tokens; - }; + // Using object instead of string to allow for later expansion of info about each line + this.add_new_line = function(force_newline) { + if (this.get_line_number() === 1 && this.just_added_newline()) { + return false; // no newline on start of file + } - function get_directives(text) { - if (!text.match(directives_block_pattern)) { - return null; - } + if (force_newline || !this.just_added_newline()) { + if (!this.raw) { + this.add_outputline(); + } + return true; + } + + return false; + }; - var directives = {}; - directive_pattern.lastIndex = 0; - var directive_match = directive_pattern.exec(text); + this.get_code = function(end_with_newline, eol) { + var sweet_code = lines.join('\n').replace(/[\r\n\t ]+$/, ''); - while (directive_match) { - directives[directive_match[1]] = directive_match[2]; - directive_match = directive_pattern.exec(text); - } + if (end_with_newline) { + sweet_code += '\n'; + } + + if (eol !== '\n') { + sweet_code = sweet_code.replace(/[\n]/g, eol); + } + + return sweet_code; + }; + + this.set_indent = function(level) { + // Never indent your first output indent at the start of the file + if (lines.length > 1) { + while (level >= this.indent_cache.length) { + this.indent_cache.push(this.indent_cache[this.indent_cache.length - 1] + this.indent_string); + } + + this.current_line.set_indent(level); + return true; + } + this.current_line.set_indent(0); + return false; + }; + + this.add_raw_token = function(token) { + for (var x = 0; x < token.newlines; x++) { + this.add_outputline(); + } + this.current_line.push(token.whitespace_before); + this.current_line.push(token.text); + this.space_before_token = false; + }; + + this.add_token = function(printable_token) { + this.add_space_before_token(); + this.current_line.push(printable_token); + }; + + this.add_space_before_token = function() { + if (this.space_before_token && !this.just_added_newline()) { + this.current_line.push(' '); + } + this.space_before_token = false; + }; + + this.remove_indent = function(index) { + var output_length = lines.length; + while (index < output_length) { + lines[index].remove_indent(); + index++; + } + }; + + this.trim = function(eat_newlines) { + eat_newlines = (eat_newlines === undefined) ? false : eat_newlines; + + this.current_line.trim(indent_string, baseIndentString); + + while (eat_newlines && lines.length > 1 && + this.current_line.is_empty()) { + lines.pop(); + this.current_line = lines[lines.length - 1]; + this.current_line.trim(); + } + + this.previous_line = lines.length > 1 ? lines[lines.length - 2] : null; + }; + + this.just_added_newline = function() { + return this.current_line.is_empty(); + }; - return directives; + this.just_added_blankline = function() { + if (this.just_added_newline()) { + if (lines.length === 1) { + return true; // start of the file and newline = blank } - function tokenize_next() { - var resulting_string; - var whitespace_on_this_line = []; + var line = lines[lines.length - 2]; + return line.is_empty(); + } + return false; + }; +} - n_newlines = 0; - whitespace_before_token = ''; +module.exports.Output = Output; - var c = input.next(); - if (c === null) { - return ['', 'TK_EOF']; - } +/***/ }), +/* 5 */ +/***/ (function(module, exports) { - var last_token; - if (tokens.length) { - last_token = tokens[tokens.length - 1]; - } else { - // For the sake of tokenizing we can pretend that there was on open brace to start - last_token = new Token('TK_START_BLOCK', '{'); - } +/*jshint curly:true, eqeqeq:true, laxbreak:true, noempty:false */ +/* - while (in_array(c, whitespace)) { + The MIT License (MIT) - if (acorn.newline.test(c)) { - if (!(c === '\n' && input.peek(-2) === '\r')) { - n_newlines += 1; - whitespace_on_this_line = []; - } - } else { - whitespace_on_this_line.push(c); - } + Copyright (c) 2007-2017 Einar Lielmanis, Liam Newman, and contributors. - c = input.next(); + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + +function Token(type, text, newlines, whitespace_before, parent) { + this.type = type; + this.text = text; + + // comments_before are + // comments that have a new line before them + // and may or may not have a newline after + // this is a set of comments before + this.comments_before = /* inline comment*/ []; + + + this.comments_after = []; // no new line before and newline after + this.newlines = newlines || 0; + this.wanted_newline = newlines > 0; + this.whitespace_before = whitespace_before || ''; + this.parent = parent || null; + this.opened = null; + this.directives = null; +} + +module.exports.Token = Token; - if (c === null) { - return ['', 'TK_EOF']; - } - } - if (whitespace_on_this_line.length) { - whitespace_before_token = whitespace_on_this_line.join(''); +/***/ }), +/* 6 */ +/***/ (function(module, exports, __webpack_require__) { + +/*jshint curly:true, eqeqeq:true, laxbreak:true, noempty:false */ +/* + + The MIT License (MIT) + + Copyright (c) 2007-2017 Einar Lielmanis, Liam Newman, and contributors. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + +var Beautifier = __webpack_require__(1).Beautifier; + +function js_beautify(js_source_text, options) { + var beautifier = new Beautifier(js_source_text, options); + return beautifier.beautify(); +} + +module.exports = js_beautify; + +/***/ }), +/* 7 */ +/***/ (function(module, exports, __webpack_require__) { + +/*jshint curly:true, eqeqeq:true, laxbreak:true, noempty:false */ +/* + + The MIT License (MIT) + + Copyright (c) 2007-2017 Einar Lielmanis, Liam Newman, and contributors. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + +var InputScanner = __webpack_require__(2).InputScanner; +var Token = __webpack_require__(5).Token; +var acorn = __webpack_require__(0); + +function trim(s) { + return s.replace(/^\s+|\s+$/g, ''); +} + +function in_array(what, arr) { + for (var i = 0; i < arr.length; i += 1) { + if (arr[i] === what) { + return true; + } + } + return false; +} + +function Tokenizer(input_string, opts) { + + var whitespace = "\n\r\t ".split(''); + var digit = /[0-9]/; + var digit_bin = /[01]/; + var digit_oct = /[01234567]/; + var digit_hex = /[0123456789abcdefABCDEF]/; + + this.positionable_operators = '!= !== % & && * ** + - / : < << <= == === > >= >> >>> ? ^ | ||'.split(' '); + var punct = this.positionable_operators.concat( + // non-positionable operators - these do not follow operator position settings + '! %= &= *= **= ++ += , -- -= /= :: <<= = => >>= >>>= ^= |= ~ ...'.split(' ')); + + // words which should always start on new line. + this.line_starters = 'continue,try,throw,return,var,let,const,if,switch,case,default,for,while,break,function,import,export'.split(','); + var reserved_words = this.line_starters.concat(['do', 'in', 'of', 'else', 'get', 'set', 'new', 'catch', 'finally', 'typeof', 'yield', 'async', 'await', 'from', 'as']); + + // /* ... */ comment ends with nearest */ or end of file + var block_comment_pattern = /([\s\S]*?)((?:\*\/)|$)/g; + + // comment ends just before nearest linefeed or end of file + var comment_pattern = /([^\n\r\u2028\u2029]*)/g; + + var directives_block_pattern = /\/\* beautify( \w+[:]\w+)+ \*\//g; + var directive_pattern = / (\w+)[:](\w+)/g; + var directives_end_ignore_pattern = /([\s\S]*?)((?:\/\*\sbeautify\signore:end\s\*\/)|$)/g; + + var template_pattern = /((<\?php|<\?=)[\s\S]*?\?>)|(<%[\s\S]*?%>)/g; + + var n_newlines, whitespace_before_token, in_html_comment, tokens; + var input; + + this.tokenize = function() { + input = new InputScanner(input_string); + in_html_comment = false; + tokens = []; + + var next, last; + var token_values; + var open = null; + var open_stack = []; + var comments = []; + + while (!(last && last.type === 'TK_EOF')) { + token_values = tokenize_next(); + next = new Token(token_values[1], token_values[0], n_newlines, whitespace_before_token); + while (next.type === 'TK_COMMENT' || next.type === 'TK_BLOCK_COMMENT' || next.type === 'TK_UNKNOWN') { + if (next.type === 'TK_BLOCK_COMMENT') { + next.directives = token_values[2]; } + comments.push(next); + token_values = tokenize_next(); + next = new Token(token_values[1], token_values[0], n_newlines, whitespace_before_token); + } - if (digit.test(c) || (c === '.' && input.testChar(digit))) { - var allow_decimal = true; - var allow_e = true; - var local_digit = digit; - - if (c === '0' && input.testChar(/[XxOoBb]/)) { - // switch to hex/oct/bin number, no decimal or e, just hex/oct/bin digits - allow_decimal = false; - allow_e = false; - if (input.testChar(/[Bb]/)) { - local_digit = digit_bin; - } else if (input.testChar(/[Oo]/)) { - local_digit = digit_oct; - } else { - local_digit = digit_hex; - } - c += input.next(); - } else if (c === '.') { - // Already have a decimal for this literal, don't allow another - allow_decimal = false; - } else { - // we know this first loop will run. It keeps the logic simpler. - c = ''; - input.back(); - } + if (comments.length) { + next.comments_before = comments; + comments = []; + } - // Add the digits - while (input.testChar(local_digit)) { - c += input.next(); + if (next.type === 'TK_START_BLOCK' || next.type === 'TK_START_EXPR') { + next.parent = last; + open_stack.push(open); + open = next; + } else if ((next.type === 'TK_END_BLOCK' || next.type === 'TK_END_EXPR') && + (open && ( + (next.text === ']' && open.text === '[') || + (next.text === ')' && open.text === '(') || + (next.text === '}' && open.text === '{')))) { + next.parent = open.parent; + next.opened = open; + + open = open_stack.pop(); + } - if (allow_decimal && input.peek() === '.') { - c += input.next(); - allow_decimal = false; - } + tokens.push(next); + last = next; + } - // a = 1.e-7 is valid, so we test for . then e in one loop - if (allow_e && input.testChar(/[Ee]/)) { - c += input.next(); + return tokens; + }; - if (input.testChar(/[+-]/)) { - c += input.next(); - } + function get_directives(text) { + if (!text.match(directives_block_pattern)) { + return null; + } - allow_e = false; - allow_decimal = false; - } - } + var directives = {}; + directive_pattern.lastIndex = 0; + var directive_match = directive_pattern.exec(text); + + while (directive_match) { + directives[directive_match[1]] = directive_match[2]; + directive_match = directive_pattern.exec(text); + } + + return directives; + } + + function tokenize_next() { + var resulting_string; + var whitespace_on_this_line = []; + + n_newlines = 0; + whitespace_before_token = ''; + + var c = input.next(); - return [c, 'TK_WORD']; + if (c === null) { + return ['', 'TK_EOF']; + } + + var last_token; + if (tokens.length) { + last_token = tokens[tokens.length - 1]; + } else { + // For the sake of tokenizing we can pretend that there was on open brace to start + last_token = new Token('TK_START_BLOCK', '{'); + } + + while (in_array(c, whitespace)) { + + if (acorn.newline.test(c)) { + if (!(c === '\n' && input.peek(-2) === '\r')) { + n_newlines += 1; + whitespace_on_this_line = []; } + } else { + whitespace_on_this_line.push(c); + } - if (acorn.isIdentifierStart(input.peekCharCode(-1))) { - if (input.hasNext()) { - while (acorn.isIdentifierChar(input.peekCharCode())) { - c += input.next(); - if (!input.hasNext()) { - break; - } - } - } + c = input.next(); - if (!(last_token.type === 'TK_DOT' || - (last_token.type === 'TK_RESERVED' && in_array(last_token.text, ['set', 'get']))) && - in_array(c, reserved_words)) { - if (c === 'in' || c === 'of') { // hack for 'in' and 'of' operators - return [c, 'TK_OPERATOR']; - } - return [c, 'TK_RESERVED']; - } + if (c === null) { + return ['', 'TK_EOF']; + } + } - return [c, 'TK_WORD']; + if (whitespace_on_this_line.length) { + whitespace_before_token = whitespace_on_this_line.join(''); + } + + if (digit.test(c) || (c === '.' && input.testChar(digit))) { + var allow_decimal = true; + var allow_e = true; + var local_digit = digit; + + if (c === '0' && input.testChar(/[XxOoBb]/)) { + // switch to hex/oct/bin number, no decimal or e, just hex/oct/bin digits + allow_decimal = false; + allow_e = false; + if (input.testChar(/[Bb]/)) { + local_digit = digit_bin; + } else if (input.testChar(/[Oo]/)) { + local_digit = digit_oct; + } else { + local_digit = digit_hex; } + c += input.next(); + } else if (c === '.') { + // Already have a decimal for this literal, don't allow another + allow_decimal = false; + } else { + // we know this first loop will run. It keeps the logic simpler. + c = ''; + input.back(); + } - if (c === '(' || c === '[') { - return [c, 'TK_START_EXPR']; + // Add the digits + while (input.testChar(local_digit)) { + c += input.next(); + + if (allow_decimal && input.peek() === '.') { + c += input.next(); + allow_decimal = false; } - if (c === ')' || c === ']') { - return [c, 'TK_END_EXPR']; + // a = 1.e-7 is valid, so we test for . then e in one loop + if (allow_e && input.testChar(/[Ee]/)) { + c += input.next(); + + if (input.testChar(/[+-]/)) { + c += input.next(); + } + + allow_e = false; + allow_decimal = false; } + } - if (c === '{') { - return [c, 'TK_START_BLOCK']; + return [c, 'TK_WORD']; + } + + if (acorn.isIdentifierStart(input.peekCharCode(-1))) { + if (input.hasNext()) { + while (acorn.isIdentifierChar(input.peekCharCode())) { + c += input.next(); + if (!input.hasNext()) { + break; + } } + } - if (c === '}') { - return [c, 'TK_END_BLOCK']; + if (!(last_token.type === 'TK_DOT' || + (last_token.type === 'TK_RESERVED' && in_array(last_token.text, ['set', 'get']))) && + in_array(c, reserved_words)) { + if (c === 'in' || c === 'of') { // hack for 'in' and 'of' operators + return [c, 'TK_OPERATOR']; } + return [c, 'TK_RESERVED']; + } + + return [c, 'TK_WORD']; + } + + if (c === '(' || c === '[') { + return [c, 'TK_START_EXPR']; + } + + if (c === ')' || c === ']') { + return [c, 'TK_END_EXPR']; + } - if (c === ';') { - return [c, 'TK_SEMICOLON']; + if (c === '{') { + return [c, 'TK_START_BLOCK']; + } + + if (c === '}') { + return [c, 'TK_END_BLOCK']; + } + + if (c === ';') { + return [c, 'TK_SEMICOLON']; + } + + if (c === '/') { + var comment = ''; + var comment_match; + // peek for comment /* ... */ + if (input.peek() === '*') { + input.next(); + comment_match = input.match(block_comment_pattern); + comment = '/*' + comment_match[0]; + var directives = get_directives(comment); + if (directives && directives.ignore === 'start') { + comment_match = input.match(directives_end_ignore_pattern); + comment += comment_match[0]; } + comment = comment.replace(acorn.allLineBreaks, '\n'); + return [comment, 'TK_BLOCK_COMMENT', directives]; + } + // peek for comment // ... + if (input.peek() === '/') { + input.next(); + comment_match = input.match(comment_pattern); + comment = '//' + comment_match[0]; + return [comment, 'TK_COMMENT']; + } - if (c === '/') { - var comment = ''; - var comment_match; - // peek for comment /* ... */ - if (input.peek() === '*') { - input.next(); - comment_match = input.match(block_comment_pattern); - comment = '/*' + comment_match[0]; - var directives = get_directives(comment); - if (directives && directives.ignore === 'start') { - comment_match = input.match(directives_end_ignore_pattern); - comment += comment_match[0]; + } + + var startXmlRegExp = /<()([-a-zA-Z:0-9_.]+|{[\s\S]+?}|!\[CDATA\[[\s\S]*?\]\])(\s+{[\s\S]+?}|\s+[-a-zA-Z:0-9_.]+|\s+[-a-zA-Z:0-9_.]+\s*=\s*('[^']*'|"[^"]*"|{[\s\S]+?}))*\s*(\/?)\s*>/g; + + if (c === '`' || c === "'" || c === '"' || // string + ( + (c === '/') || // regexp + (opts.e4x && c === "<" && input.test(startXmlRegExp, -1)) // xml + ) && ( // regex and xml can only appear in specific locations during parsing + (last_token.type === 'TK_RESERVED' && in_array(last_token.text, ['return', 'case', 'throw', 'else', 'do', 'typeof', 'yield'])) || + (last_token.type === 'TK_END_EXPR' && last_token.text === ')' && + last_token.parent && last_token.parent.type === 'TK_RESERVED' && in_array(last_token.parent.text, ['if', 'while', 'for'])) || + (in_array(last_token.type, ['TK_COMMENT', 'TK_START_EXPR', 'TK_START_BLOCK', + 'TK_END_BLOCK', 'TK_OPERATOR', 'TK_EQUALS', 'TK_EOF', 'TK_SEMICOLON', 'TK_COMMA' + ])) + )) { + + var sep = c, + esc = false, + has_char_escapes = false; + + resulting_string = c; + + if (sep === '/') { + // + // handle regexp + // + var in_char_class = false; + while (input.hasNext() && + ((esc || in_char_class || input.peek() !== sep) && + !input.testChar(acorn.newline))) { + resulting_string += input.peek(); + if (!esc) { + esc = input.peek() === '\\'; + if (input.peek() === '[') { + in_char_class = true; + } else if (input.peek() === ']') { + in_char_class = false; } - comment = comment.replace(acorn.allLineBreaks, '\n'); - return [comment, 'TK_BLOCK_COMMENT', directives]; - } - // peek for comment // ... - if (input.peek() === '/') { - input.next(); - comment_match = input.match(comment_pattern); - comment = '//' + comment_match[0]; - return [comment, 'TK_COMMENT']; + } else { + esc = false; } - + input.next(); } - - var startXmlRegExp = /<()([-a-zA-Z:0-9_.]+|{[\s\S]+?}|!\[CDATA\[[\s\S]*?\]\])(\s+{[\s\S]+?}|\s+[-a-zA-Z:0-9_.]+|\s+[-a-zA-Z:0-9_.]+\s*=\s*('[^']*'|"[^"]*"|{[\s\S]+?}))*\s*(\/?)\s*>/g; - - if (c === '`' || c === "'" || c === '"' || // string - ( - (c === '/') || // regexp - (opts.e4x && c === "<" && input.test(startXmlRegExp, -1)) // xml - ) && ( // regex and xml can only appear in specific locations during parsing - (last_token.type === 'TK_RESERVED' && in_array(last_token.text, ['return', 'case', 'throw', 'else', 'do', 'typeof', 'yield'])) || - (last_token.type === 'TK_END_EXPR' && last_token.text === ')' && - last_token.parent && last_token.parent.type === 'TK_RESERVED' && in_array(last_token.parent.text, ['if', 'while', 'for'])) || - (in_array(last_token.type, ['TK_COMMENT', 'TK_START_EXPR', 'TK_START_BLOCK', - 'TK_END_BLOCK', 'TK_OPERATOR', 'TK_EQUALS', 'TK_EOF', 'TK_SEMICOLON', 'TK_COMMA' - ])) - )) { - - var sep = c, - esc = false, - has_char_escapes = false; - - resulting_string = c; - - if (sep === '/') { - // - // handle regexp - // - var in_char_class = false; - while (input.hasNext() && - ((esc || in_char_class || input.peek() !== sep) && - !input.testChar(acorn.newline))) { - resulting_string += input.peek(); - if (!esc) { - esc = input.peek() === '\\'; - if (input.peek() === '[') { - in_char_class = true; - } else if (input.peek() === ']') { - in_char_class = false; - } + } else if (opts.e4x && sep === '<') { + // + // handle e4x xml literals + // + + var xmlRegExp = /[\s\S]*?<(\/?)([-a-zA-Z:0-9_.]+|{[\s\S]+?}|!\[CDATA\[[\s\S]*?\]\])(\s+{[\s\S]+?}|\s+[-a-zA-Z:0-9_.]+|\s+[-a-zA-Z:0-9_.]+\s*=\s*('[^']*'|"[^"]*"|{[\s\S]+?}))*\s*(\/?)\s*>/g; + input.back(); + var xmlStr = ''; + var match = input.match(startXmlRegExp); + if (match) { + // Trim root tag to attempt to + var rootTag = match[2].replace(/^{\s+/, '{').replace(/\s+}$/, '}'); + var isCurlyRoot = rootTag.indexOf('{') === 0; + var depth = 0; + while (match) { + var isEndTag = !!match[1]; + var tagName = match[2]; + var isSingletonTag = (!!match[match.length - 1]) || (tagName.slice(0, 8) === "![CDATA["); + if (!isSingletonTag && + (tagName === rootTag || (isCurlyRoot && tagName.replace(/^{\s+/, '{').replace(/\s+}$/, '}')))) { + if (isEndTag) { + --depth; } else { - esc = false; + ++depth; } - input.next(); } - } else if (opts.e4x && sep === '<') { - // - // handle e4x xml literals - // - - var xmlRegExp = /[\s\S]*?<(\/?)([-a-zA-Z:0-9_.]+|{[\s\S]+?}|!\[CDATA\[[\s\S]*?\]\])(\s+{[\s\S]+?}|\s+[-a-zA-Z:0-9_.]+|\s+[-a-zA-Z:0-9_.]+\s*=\s*('[^']*'|"[^"]*"|{[\s\S]+?}))*\s*(\/?)\s*>/g; - input.back(); - var xmlStr = ''; - var match = input.match(startXmlRegExp); - if (match) { - // Trim root tag to attempt to - var rootTag = match[2].replace(/^{\s+/, '{').replace(/\s+}$/, '}'); - var isCurlyRoot = rootTag.indexOf('{') === 0; - var depth = 0; - while (match) { - var isEndTag = !!match[1]; - var tagName = match[2]; - var isSingletonTag = (!!match[match.length - 1]) || (tagName.slice(0, 8) === "![CDATA["); - if (!isSingletonTag && - (tagName === rootTag || (isCurlyRoot && tagName.replace(/^{\s+/, '{').replace(/\s+}$/, '}')))) { - if (isEndTag) { - --depth; - } else { - ++depth; - } - } - xmlStr += match[0]; - if (depth <= 0) { - break; - } - match = input.match(xmlRegExp); - } - // if we didn't close correctly, keep unformatted. - if (!match) { - xmlStr += input.match(/[\s\S]*/g)[0]; - } - xmlStr = xmlStr.replace(acorn.allLineBreaks, '\n'); - return [xmlStr, "TK_STRING"]; + xmlStr += match[0]; + if (depth <= 0) { + break; + } + match = input.match(xmlRegExp); + } + // if we didn't close correctly, keep unformatted. + if (!match) { + xmlStr += input.match(/[\s\S]*/g)[0]; + } + xmlStr = xmlStr.replace(acorn.allLineBreaks, '\n'); + return [xmlStr, "TK_STRING"]; + } + } else { + // + // handle string + // + var parse_string = function(delimiter, allow_unescaped_newlines, start_sub) { + // Template strings can travers lines without escape characters. + // Other strings cannot + var current_char; + while (input.hasNext()) { + current_char = input.peek(); + if (!(esc || (current_char !== delimiter && + (allow_unescaped_newlines || !acorn.newline.test(current_char))))) { + break; } - } else { - // - // handle string - // - var parse_string = function(delimiter, allow_unescaped_newlines, start_sub) { - // Template strings can travers lines without escape characters. - // Other strings cannot - var current_char; - while (input.hasNext()) { - current_char = input.peek(); - if (!(esc || (current_char !== delimiter && - (allow_unescaped_newlines || !acorn.newline.test(current_char))))) { - break; - } - - // Handle \r\n linebreaks after escapes or in template strings - if ((esc || allow_unescaped_newlines) && acorn.newline.test(current_char)) { - if (current_char === '\r' && input.peek(1) === '\n') { - input.next(); - current_char = input.peek(); - } - resulting_string += '\n'; - } else { - resulting_string += current_char; - } - - if (esc) { - if (current_char === 'x' || current_char === 'u') { - has_char_escapes = true; - } - esc = false; - } else { - esc = current_char === '\\'; - } + // Handle \r\n linebreaks after escapes or in template strings + if ((esc || allow_unescaped_newlines) && acorn.newline.test(current_char)) { + if (current_char === '\r' && input.peek(1) === '\n') { input.next(); - - if (start_sub && resulting_string.indexOf(start_sub, resulting_string.length - start_sub.length) !== -1) { - if (delimiter === '`') { - parse_string('}', allow_unescaped_newlines, '`'); - } else { - parse_string('`', allow_unescaped_newlines, '${'); - } - - if (input.hasNext()) { - resulting_string += input.next(); - } - } + current_char = input.peek(); } - }; - - if (sep === '`') { - parse_string('`', true, '${'); + resulting_string += '\n'; } else { - parse_string(sep); + resulting_string += current_char; } - } - if (has_char_escapes && opts.unescape_strings) { - resulting_string = unescape_string(resulting_string); - } + if (esc) { + if (current_char === 'x' || current_char === 'u') { + has_char_escapes = true; + } + esc = false; + } else { + esc = current_char === '\\'; + } - if (input.peek() === sep) { - resulting_string += sep; input.next(); - if (sep === '/') { - // regexps may have modifiers /regexp/MOD , so fetch those, too - // Only [gim] are valid, but if the user puts in garbage, do what we can to take it. - while (input.hasNext() && acorn.isIdentifierStart(input.peekCharCode())) { + if (start_sub && resulting_string.indexOf(start_sub, resulting_string.length - start_sub.length) !== -1) { + if (delimiter === '`') { + parse_string('}', allow_unescaped_newlines, '`'); + } else { + parse_string('`', allow_unescaped_newlines, '${'); + } + + if (input.hasNext()) { resulting_string += input.next(); } } } - return [resulting_string, 'TK_STRING']; - } - - if (c === '#') { + }; - if (tokens.length === 0 && input.peek() === '!') { - // shebang - resulting_string = c; - while (input.hasNext() && c !== '\n') { - c = input.next(); - resulting_string += c; - } - return [trim(resulting_string) + '\n', 'TK_UNKNOWN']; - } + if (sep === '`') { + parse_string('`', true, '${'); + } else { + parse_string(sep); + } + } + if (has_char_escapes && opts.unescape_strings) { + resulting_string = unescape_string(resulting_string); + } + if (input.peek() === sep) { + resulting_string += sep; + input.next(); - // Spidermonkey-specific sharp variables for circular references - // https://developer.mozilla.org/En/Sharp_variables_in_JavaScript - // http://mxr.mozilla.org/mozilla-central/source/js/src/jsscan.cpp around line 1935 - var sharp = '#'; - if (input.hasNext() && input.testChar(digit)) { - do { - c = input.next(); - sharp += c; - } while (input.hasNext() && c !== '#' && c !== '='); - if (c === '#') { - // - } else if (input.peek() === '[' && input.peek(1) === ']') { - sharp += '[]'; - input.next(); - input.next(); - } else if (input.peek() === '{' && input.peek(1) === '}') { - sharp += '{}'; - input.next(); - input.next(); - } - return [sharp, 'TK_WORD']; + if (sep === '/') { + // regexps may have modifiers /regexp/MOD , so fetch those, too + // Only [gim] are valid, but if the user puts in garbage, do what we can to take it. + while (input.hasNext() && acorn.isIdentifierStart(input.peekCharCode())) { + resulting_string += input.next(); } } + } + return [resulting_string, 'TK_STRING']; + } - if (c === '<' && (input.peek() === '?' || input.peek() === '%')) { - input.back(); - var template_match = input.match(template_pattern); - if (template_match) { - c = template_match[0]; - c = c.replace(acorn.allLineBreaks, '\n'); - return [c, 'TK_STRING']; - } - } + if (c === '#') { - if (c === '<' && input.match(/\!--/g)) { - c = '', 'TK_COMMENT']; - } - if (c === '.') { - if (input.peek() === '.' && input.peek(1) === '.') { - c += input.next() + input.next(); - return [c, 'TK_OPERATOR']; - } - return [c, 'TK_DOT']; + + // Spidermonkey-specific sharp variables for circular references + // https://developer.mozilla.org/En/Sharp_variables_in_JavaScript + // http://mxr.mozilla.org/mozilla-central/source/js/src/jsscan.cpp around line 1935 + var sharp = '#'; + if (input.hasNext() && input.testChar(digit)) { + do { + c = input.next(); + sharp += c; + } while (input.hasNext() && c !== '#' && c !== '='); + if (c === '#') { + // + } else if (input.peek() === '[' && input.peek(1) === ']') { + sharp += '[]'; + input.next(); + input.next(); + } else if (input.peek() === '{' && input.peek(1) === '}') { + sharp += '{}'; + input.next(); + input.next(); } + return [sharp, 'TK_WORD']; + } + } - if (in_array(c, punct)) { - while (input.hasNext() && in_array(c + input.peek(), punct)) { - c += input.next(); - if (!input.hasNext()) { - break; - } - } + if (c === '<' && (input.peek() === '?' || input.peek() === '%')) { + input.back(); + var template_match = input.match(template_pattern); + if (template_match) { + c = template_match[0]; + c = c.replace(acorn.allLineBreaks, '\n'); + return [c, 'TK_STRING']; + } + } - if (c === ',') { - return [c, 'TK_COMMA']; - } else if (c === '=') { - return [c, 'TK_EQUALS']; - } else { - return [c, 'TK_OPERATOR']; - } - } + if (c === '<' && input.match(/\!--/g)) { + c = '', 'TK_COMMENT']; + } + + if (c === '.') { + if (input.peek() === '.' && input.peek(1) === '.') { + c += input.next() + input.next(); + return [c, 'TK_OPERATOR']; + } + return [c, 'TK_DOT']; + } - return [c, 'TK_UNKNOWN']; + if (in_array(c, punct)) { + while (input.hasNext() && in_array(c + input.peek(), punct)) { + c += input.next(); + if (!input.hasNext()) { + break; + } } + if (c === ',') { + return [c, 'TK_COMMA']; + } else if (c === '=') { + return [c, 'TK_EQUALS']; + } else { + return [c, 'TK_OPERATOR']; + } + } - function unescape_string(s) { - // You think that a regex would work for this - // return s.replace(/\\x([0-9a-f]{2})/gi, function(match, val) { - // return String.fromCharCode(parseInt(val, 16)); - // }) - // However, dealing with '\xff', '\\xff', '\\\xff' makes this more fun. - var out = '', - escaped = 0; + return [c, 'TK_UNKNOWN']; + } - var input_scan = new InputScanner(s); - var matched = null; - while (input_scan.hasNext()) { - // Keep any whitespace, non-slash characters - // also keep slash pairs. - matched = input_scan.match(/([\s]|[^\\]|\\\\)+/g); + function unescape_string(s) { + // You think that a regex would work for this + // return s.replace(/\\x([0-9a-f]{2})/gi, function(match, val) { + // return String.fromCharCode(parseInt(val, 16)); + // }) + // However, dealing with '\xff', '\\xff', '\\\xff' makes this more fun. + var out = '', + escaped = 0; - if (matched) { - out += matched[0]; - } + var input_scan = new InputScanner(s); + var matched = null; - if (input_scan.peek() === '\\') { - input_scan.next(); - if (input_scan.peek() === 'x') { - matched = input_scan.match(/x([0-9A-Fa-f]{2})/g); - } else if (input_scan.peek() === 'u') { - matched = input_scan.match(/u([0-9A-Fa-f]{4})/g); - } else { - out += '\\'; - if (input_scan.hasNext()) { - out += input_scan.next(); - } - continue; - } + while (input_scan.hasNext()) { + // Keep any whitespace, non-slash characters + // also keep slash pairs. + matched = input_scan.match(/([\s]|[^\\]|\\\\)+/g); - // If there's some error decoding, return the original string - if (!matched) { - return s; - } + if (matched) { + out += matched[0]; + } - escaped = parseInt(matched[1], 16); - - if (escaped > 0x7e && escaped <= 0xff && matched[0].indexOf('x') === 0) { - // we bail out on \x7f..\xff, - // leaving whole string escaped, - // as it's probably completely binary - return s; - } else if (escaped >= 0x00 && escaped < 0x20) { - // leave 0x00...0x1f escaped - out += '\\' + matched[0]; - continue; - } else if (escaped === 0x22 || escaped === 0x27 || escaped === 0x5c) { - // single-quote, apostrophe, backslash - escape these - out += '\\' + String.fromCharCode(escaped); - } else { - out += String.fromCharCode(escaped); - } + if (input_scan.peek() === '\\') { + input_scan.next(); + if (input_scan.peek() === 'x') { + matched = input_scan.match(/x([0-9A-Fa-f]{2})/g); + } else if (input_scan.peek() === 'u') { + matched = input_scan.match(/u([0-9A-Fa-f]{4})/g); + } else { + out += '\\'; + if (input_scan.hasNext()) { + out += input_scan.next(); } + continue; + } + + // If there's some error decoding, return the original string + if (!matched) { + return s; } - return out; + escaped = parseInt(matched[1], 16); + + if (escaped > 0x7e && escaped <= 0xff && matched[0].indexOf('x') === 0) { + // we bail out on \x7f..\xff, + // leaving whole string escaped, + // as it's probably completely binary + return s; + } else if (escaped >= 0x00 && escaped < 0x20) { + // leave 0x00...0x1f escaped + out += '\\' + matched[0]; + continue; + } else if (escaped === 0x22 || escaped === 0x27 || escaped === 0x5c) { + // single-quote, apostrophe, backslash - escape these + out += '\\' + String.fromCharCode(escaped); + } else { + out += String.fromCharCode(escaped); + } } } - var beautifier = new Beautifier(js_source_text, options); - return beautifier.beautify(); - + return out; } +} - if (true) { - // Add support for AMD ( https://github.com/amdjs/amdjs-api/wiki/AMD#defineamd-property- ) - !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function() { - return { js_beautify: js_beautify }; - }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), +module.exports.Tokenizer = Tokenizer; + +/***/ }) +/******/ ]); +var js_beautify = legacy_beautify_js; +/* Footer */ +if (true) { + // Add support for AMD ( https://github.com/amdjs/amdjs-api/wiki/AMD#defineamd-property- ) + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function() { + return { js_beautify: js_beautify }; + }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - } else if (typeof exports !== "undefined") { - // Add support for CommonJS. Just put this file somewhere on your require.paths - // and you will be able to `var js_beautify = require("beautify").js_beautify`. - exports.js_beautify = js_beautify; - } else if (typeof window !== "undefined") { - // If we're running a web page and don't have either of the above, add our one global - window.js_beautify = js_beautify; - } else if (typeof global !== "undefined") { - // If we don't even have window, try global. - global.js_beautify = js_beautify; - } +} else if (typeof exports !== "undefined") { + // Add support for CommonJS. Just put this file somewhere on your require.paths + // and you will be able to `var js_beautify = require("beautify").js_beautify`. + exports.js_beautify = js_beautify; +} else if (typeof window !== "undefined") { + // If we're running a web page and don't have either of the above, add our one global + window.js_beautify = js_beautify; +} else if (typeof global !== "undefined") { + // If we don't even have window, try global. + global.js_beautify = js_beautify; +} }()); + /***/ }), -/* 147 */ +/* 146 */ /***/ (function(module, exports, __webpack_require__) { -var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*jshint curly:true, eqeqeq:true, laxbreak:true, noempty:false */ +var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*jshint curly:false, eqeqeq:true, laxbreak:true, noempty:false */ +/* AUTO-GENERATED. DO NOT MODIFY. */ /* The MIT License (MIT) @@ -34861,7 +35225,6 @@ var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*jshint curly:t The options are (default in brackets): indent_size (4) โ€” indentation size, indent_char (space) โ€” character to indent with, - preserve_newlines (default false) - whether existing line breaks should be preserved, selector_separator_newline (true) - separate selectors with newline or not (e.g. "a,\nbr" or "a, br") end_with_newline (false) - end with a newline @@ -34884,256 +35247,320 @@ var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*jshint curly:t // http://www.w3.org/TR/css3-syntax/ (function() { +var legacy_beautify_css = +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // identity function for calling harmony imports with the correct context +/******/ __webpack_require__.i = function(value) { return value; }; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { +/******/ configurable: false, +/******/ enumerable: true, +/******/ get: getter +/******/ }); +/******/ } +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 4); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports, __webpack_require__) { - function mergeOpts(allOptions, targetType) { - var finalOpts = {}; - var name; +/*jshint curly:true, eqeqeq:true, laxbreak:true, noempty:false */ +/* - for (name in allOptions) { - if (name !== targetType) { - finalOpts[name] = allOptions[name]; - } - } + The MIT License (MIT) + Copyright (c) 2007-2017 Einar Lielmanis, Liam Newman, and contributors. - //merge in the per type settings for the targetType - if (targetType in allOptions) { - for (name in allOptions[targetType]) { - finalOpts[name] = allOptions[targetType][name]; - } - } - return finalOpts; - } + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: - var lineBreak = /\r\n|[\n\r\u2028\u2029]/; - var allLineBreaks = new RegExp(lineBreak.source, 'g'); + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ - function css_beautify(source_text, options) { - options = options || {}; +var mergeOpts = __webpack_require__(2).mergeOpts; +var acorn = __webpack_require__(1); +var Output = __webpack_require__(3).Output; - // Allow the setting of language/file-type specific options - // with inheritance of overall settings - options = mergeOpts(options, 'css'); - source_text = source_text || ''; +var lineBreak = acorn.lineBreak; +var allLineBreaks = acorn.allLineBreaks; - var newlinesFromLastWSEat = 0; - var indentSize = options.indent_size ? parseInt(options.indent_size, 10) : 4; - var indentCharacter = options.indent_char || ' '; - var preserve_newlines = (options.preserve_newlines === undefined) ? false : options.preserve_newlines; - var selectorSeparatorNewline = (options.selector_separator_newline === undefined) ? true : options.selector_separator_newline; - var end_with_newline = (options.end_with_newline === undefined) ? false : options.end_with_newline; - var newline_between_rules = (options.newline_between_rules === undefined) ? true : options.newline_between_rules; - var space_around_combinator = (options.space_around_combinator === undefined) ? false : options.space_around_combinator; - space_around_combinator = space_around_combinator || ((options.space_around_selector_separator === undefined) ? false : options.space_around_selector_separator); - var eol = options.eol ? options.eol : 'auto'; +function Beautifier(source_text, options) { + options = options || {}; - if (options.indent_with_tabs) { - indentCharacter = '\t'; - indentSize = 1; - } + // Allow the setting of language/file-type specific options + // with inheritance of overall settings + options = mergeOpts(options, 'css'); - if (eol === 'auto') { - eol = '\n'; - if (source_text && lineBreak.test(source_text || '')) { - eol = source_text.match(lineBreak)[0]; - } + source_text = source_text || ''; + + var newlinesFromLastWSEat = 0; + var indentSize = options.indent_size ? parseInt(options.indent_size, 10) : 4; + var indentCharacter = options.indent_char || ' '; + var preserve_newlines = (options.preserve_newlines === undefined) ? false : options.preserve_newlines; + var selectorSeparatorNewline = (options.selector_separator_newline === undefined) ? true : options.selector_separator_newline; + var end_with_newline = (options.end_with_newline === undefined) ? false : options.end_with_newline; + var newline_between_rules = (options.newline_between_rules === undefined) ? true : options.newline_between_rules; + var space_around_combinator = (options.space_around_combinator === undefined) ? false : options.space_around_combinator; + space_around_combinator = space_around_combinator || ((options.space_around_selector_separator === undefined) ? false : options.space_around_selector_separator); + var eol = options.eol ? options.eol : 'auto'; + + if (options.indent_with_tabs) { + indentCharacter = '\t'; + indentSize = 1; + } + + if (eol === 'auto') { + eol = '\n'; + if (source_text && lineBreak.test(source_text || '')) { + eol = source_text.match(lineBreak)[0]; } + } + + eol = eol.replace(/\\r/, '\r').replace(/\\n/, '\n'); - eol = eol.replace(/\\r/, '\r').replace(/\\n/, '\n'); + // HACK: newline parsing inconsistent. This brute force normalizes the input. + source_text = source_text.replace(allLineBreaks, '\n'); - // HACK: newline parsing inconsistent. This brute force normalizes the input. - source_text = source_text.replace(allLineBreaks, '\n'); + // tokenizer + var whiteRe = /^\s+$/; - // tokenizer - var whiteRe = /^\s+$/; + var pos = -1, + ch; + var parenLevel = 0; - var pos = -1, - ch; - var parenLevel = 0; + function next() { + ch = source_text.charAt(++pos); + return ch || ''; + } - function next() { - ch = source_text.charAt(++pos); - return ch || ''; + function peek(skipWhitespace) { + var result = ''; + var prev_pos = pos; + if (skipWhitespace) { + eatWhitespace(); } + result = source_text.charAt(pos + 1) || ''; + pos = prev_pos - 1; + next(); + return result; + } - function peek(skipWhitespace) { - var result = ''; - var prev_pos = pos; - if (skipWhitespace) { - eatWhitespace(); + function eatString(endChars) { + var start = pos; + while (next()) { + if (ch === "\\") { + next(); + } else if (endChars.indexOf(ch) !== -1) { + break; + } else if (ch === "\n") { + break; } - result = source_text.charAt(pos + 1) || ''; - pos = prev_pos - 1; - next(); - return result; } + return source_text.substring(start, pos + 1); + } - function eatString(endChars) { - var start = pos; - while (next()) { - if (ch === "\\") { - next(); - } else if (endChars.indexOf(ch) !== -1) { - break; - } else if (ch === "\n") { - break; - } + function peekString(endChar) { + var prev_pos = pos; + var str = eatString(endChar); + pos = prev_pos - 1; + next(); + return str; + } + + function eatWhitespace(preserve_newlines_local) { + var result = 0; + while (whiteRe.test(peek())) { + next(); + if (ch === '\n' && preserve_newlines_local && preserve_newlines) { + output.add_new_line(true); + result++; } - return source_text.substring(start, pos + 1); } + newlinesFromLastWSEat = result; + return result; + } - function peekString(endChar) { - var prev_pos = pos; - var str = eatString(endChar); - pos = prev_pos - 1; - next(); - return str; + function skipWhitespace() { + var result = ''; + if (ch && whiteRe.test(ch)) { + result = ch; } + while (whiteRe.test(next())) { + result += ch; + } + return result; + } - function eatWhitespace(preserve_newlines_local) { - var result = 0; - while (whiteRe.test(peek())) { + function eatComment() { + var start = pos; + var singleLine = peek() === "/"; + next(); + while (next()) { + if (!singleLine && ch === "*" && peek() === "/") { next(); - if (ch === '\n' && preserve_newlines_local && preserve_newlines) { - print.newLine(true); - result++; - } + break; + } else if (singleLine && ch === "\n") { + return source_text.substring(start, pos); } - newlinesFromLastWSEat = result; - return result; } - function skipWhitespace() { - var result = ''; - if (ch && whiteRe.test(ch)) { - result = ch; - } - while (whiteRe.test(next())) { - result += ch; - } - return result; - } + return source_text.substring(start, pos) + ch; + } - function eatComment(singleLine) { - var start = pos; - singleLine = peek() === "/"; - next(); - while (next()) { - if (!singleLine && ch === "*" && peek() === "/") { - next(); - break; - } else if (singleLine && ch === "\n") { - return source_text.substring(start, pos); + + function lookBack(str) { + return source_text.substring(pos - str.length, pos).toLowerCase() === + str; + } + + // Nested pseudo-class if we are insideRule + // and the next special character found opens + // a new block + function foundNestedPseudoClass() { + var openParen = 0; + for (var i = pos + 1; i < source_text.length; i++) { + var ch = source_text.charAt(i); + if (ch === "{") { + return true; + } else if (ch === '(') { + // pseudoclasses can contain () + openParen += 1; + } else if (ch === ')') { + if (openParen === 0) { + return false; } + openParen -= 1; + } else if (ch === ";" || ch === "}") { + return false; } + } + return false; + } - return source_text.substring(start, pos) + ch; + // printer + var baseIndentString = ''; + var preindent_index = 0; + if (source_text && source_text.length) { + while ((source_text.charAt(preindent_index) === ' ' || + source_text.charAt(preindent_index) === '\t')) { + preindent_index += 1; } + baseIndentString = source_text.substring(0, preindent_index); + js_source_text = source_text.substring(preindent_index); + } - function lookBack(str) { - return source_text.substring(pos - str.length, pos).toLowerCase() === - str; - } + var singleIndent = new Array(indentSize + 1).join(indentCharacter); + var indentLevel; + var nestedLevel; + var output; - // Nested pseudo-class if we are insideRule - // and the next special character found opens - // a new block - function foundNestedPseudoClass() { - var openParen = 0; - for (var i = pos + 1; i < source_text.length; i++) { - var ch = source_text.charAt(i); - if (ch === "{") { - return true; - } else if (ch === '(') { - // pseudoclasses can contain () - openParen += 1; - } else if (ch === ')') { - if (openParen === 0) { - return false; - } - openParen -= 1; - } else if (ch === ";" || ch === "}") { - return false; - } - } - return false; + function print_string(output_string) { + if (output.just_added_newline()) { + output.set_indent(indentLevel); } + output.add_token(output_string); + } - // printer - var basebaseIndentString = source_text.match(/^[\t ]*/)[0]; - var singleIndent = new Array(indentSize + 1).join(indentCharacter); - var indentLevel = 0; - var nestedLevel = 0; - - function indent() { - indentLevel++; - basebaseIndentString += singleIndent; + function preserveSingleSpace(isAfterSpace) { + if (isAfterSpace) { + output.space_before_token = true; } + } + + function indent() { + indentLevel++; + } - function outdent() { + function outdent() { + if (indentLevel > 0) { indentLevel--; - basebaseIndentString = basebaseIndentString.slice(0, -indentSize); } + } - var print = {}; - print["{"] = function(ch) { - print.singleSpace(); - output.push(ch); - if (!eatWhitespace(true)) { - print.newLine(); - } - }; - print["}"] = function(newline) { - if (newline) { - print.newLine(); - } - output.push('}'); - if (!eatWhitespace(true)) { - print.newLine(); - } - }; - - print._lastCharWhitespace = function() { - return whiteRe.test(output[output.length - 1]); - }; - - print.newLine = function(keepWhitespace) { - if (output.length) { - if (!keepWhitespace && output[output.length - 1] !== '\n') { - print.trim(); - } else if (output[output.length - 1] === basebaseIndentString) { - output.pop(); - } - output.push('\n'); - - if (basebaseIndentString) { - output.push(basebaseIndentString); - } - } - }; - print.singleSpace = function() { - if (output.length && !print._lastCharWhitespace()) { - output.push(' '); - } - }; - - print.preserveSingleSpace = function() { - if (isAfterSpace) { - print.singleSpace(); - } - }; - - print.trim = function() { - while (print._lastCharWhitespace()) { - output.pop(); - } - }; + /*_____________________--------------------_____________________*/ + this.beautify = function() { + // reset + output = new Output(singleIndent, baseIndentString); + indentLevel = 0; + nestedLevel = 0; - var output = []; - /*_____________________--------------------_____________________*/ + pos = -1; + ch = null; + parenLevel = 0; var insideRule = false; var insidePropertyValue = false; @@ -35154,29 +35581,29 @@ var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*jshint curly:t var header = indentLevel === 0; if (isAfterNewline || header) { - print.newLine(); + output.add_new_line(); } - output.push(eatComment()); - print.newLine(); + print_string(eatComment()); + output.add_new_line(); if (header) { - print.newLine(true); + output.add_new_line(true); } } else if (ch === '/' && peek() === '/') { // single line comment if (!isAfterNewline && last_top_ch !== '{') { - print.trim(); + output.trim(true); } - print.singleSpace(); - output.push(eatComment()); - print.newLine(); + output.space_before_token = true; + print_string(eatComment()); + output.add_new_line(); } else if (ch === '@') { - print.preserveSingleSpace(); + preserveSingleSpace(isAfterSpace); // deal with less propery mixins @{...} if (peek() === '{') { - output.push(eatString('}')); + print_string(eatString('}')); } else { - output.push(ch); + print_string(ch); // strip trailing space, if present, for hash property checks var variableOrRule = peekString(": ,;{}()[]/='\""); @@ -35185,36 +35612,44 @@ var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*jshint curly:t // we have a variable or pseudo-class, add it and insert one space before continuing next(); variableOrRule = eatString(": ").replace(/\s$/, ''); - output.push(variableOrRule); - print.singleSpace(); + print_string(variableOrRule); + output.space_before_token = true; } variableOrRule = variableOrRule.replace(/\s$/, ''); // might be a nesting at-rule - if (variableOrRule in css_beautify.NESTED_AT_RULE) { + if (variableOrRule in this.NESTED_AT_RULE) { nestedLevel += 1; - if (variableOrRule in css_beautify.CONDITIONAL_GROUP_RULE) { + if (variableOrRule in this.CONDITIONAL_GROUP_RULE) { enteringConditionalGroup = true; } } } } else if (ch === '#' && peek() === '{') { - print.preserveSingleSpace(); - output.push(eatString('}')); + preserveSingleSpace(isAfterSpace); + print_string(eatString('}')); } else if (ch === '{') { if (peek(true) === '}') { eatWhitespace(); next(); - print.singleSpace(); - output.push("{"); - print['}'](false); + output.space_before_token = true; + print_string("{}"); + if (!eatWhitespace(true)) { + output.add_new_line(); + } + if (newlinesFromLastWSEat < 2 && newline_between_rules && indentLevel === 0) { - print.newLine(true); + output.add_new_line(true); } } else { indent(); - print["{"](ch); + output.space_before_token = true; + print_string(ch); + if (!eatWhitespace(true)) { + output.add_new_line(); + } + // when entering conditional groups, only rulesets are allowed if (enteringConditionalGroup) { enteringConditionalGroup = false; @@ -35226,14 +35661,20 @@ var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*jshint curly:t } } else if (ch === '}') { outdent(); - print["}"](true); + output.add_new_line(); + print_string(ch); insideRule = false; insidePropertyValue = false; if (nestedLevel) { nestedLevel--; } + + if (!eatWhitespace(true)) { + output.add_new_line(); + } + if (newlinesFromLastWSEat < 2 && newline_between_rules && indentLevel === 0) { - print.newLine(true); + output.add_new_line(true); } } else if (ch === ":") { eatWhitespace(); @@ -35242,73 +35683,73 @@ var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*jshint curly:t !lookBack("(")) { // 'property: value' delimiter // which could be in a conditional group query - output.push(':'); + print_string(':'); if (!insidePropertyValue) { insidePropertyValue = true; - print.singleSpace(); + output.space_before_token = true; } } else { // sass/less parent reference don't use a space // sass nested pseudo-class don't use a space // preserve space before pseudoclasses/pseudoelements, as it means "in any child" - if (lookBack(" ") && output[output.length - 1] !== " ") { - output.push(" "); + if (lookBack(" ")) { + output.space_before_token = true; } if (peek() === ":") { // pseudo-element next(); - output.push("::"); + print_string("::"); } else { // pseudo-class - output.push(':'); + print_string(':'); } } } else if (ch === '"' || ch === '\'') { - print.preserveSingleSpace(); - output.push(eatString(ch)); + preserveSingleSpace(isAfterSpace); + print_string(eatString(ch)); } else if (ch === ';') { insidePropertyValue = false; - output.push(ch); + print_string(ch); if (!eatWhitespace(true)) { - print.newLine(); + output.add_new_line(); } } else if (ch === '(') { // may be a url if (lookBack("url")) { - output.push(ch); + print_string(ch); eatWhitespace(); if (next()) { if (ch !== ')' && ch !== '"' && ch !== '\'') { - output.push(eatString(')')); + print_string(eatString(')')); } else { pos--; } } } else { parenLevel++; - print.preserveSingleSpace(); - output.push(ch); + preserveSingleSpace(isAfterSpace); + print_string(ch); eatWhitespace(); } } else if (ch === ')') { - output.push(ch); + print_string(ch); parenLevel--; } else if (ch === ',') { - output.push(ch); + print_string(ch); if (!eatWhitespace(true) && selectorSeparatorNewline && !insidePropertyValue && parenLevel < 1) { - print.newLine(); + output.add_new_line(); } else { - print.singleSpace(); + output.space_before_token = true; } } else if ((ch === '>' || ch === '+' || ch === '~') && !insidePropertyValue && parenLevel < 1) { //handle combinator spacing if (space_around_combinator) { - print.singleSpace(); - output.push(ch); - print.singleSpace(); + output.space_before_token = true; + print_string(ch); + output.space_before_token = true; } else { - output.push(ch); + print_string(ch); eatWhitespace(); // squash extra whitespace if (ch && whiteRe.test(ch)) { @@ -35316,44 +35757,30 @@ var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*jshint curly:t } } } else if (ch === ']') { - output.push(ch); + print_string(ch); } else if (ch === '[') { - print.preserveSingleSpace(); - output.push(ch); + preserveSingleSpace(isAfterSpace); + print_string(ch); } else if (ch === '=') { // no whitespace before or after eatWhitespace(); - output.push('='); + print_string('='); if (whiteRe.test(ch)) { ch = ''; } + } else { - print.preserveSingleSpace(); - output.push(ch); + preserveSingleSpace(isAfterSpace); + print_string(ch); } } - - var sweetCode = ''; - if (basebaseIndentString) { - sweetCode += basebaseIndentString; - } - - sweetCode += output.join('').replace(/[\r\n\t ]+$/, ''); - - // establish end_with_newline - if (end_with_newline) { - sweetCode += '\n'; - } - - if (eol !== '\n') { - sweetCode = sweetCode.replace(/[\n]/g, eol); - } + var sweetCode = output.get_code(end_with_newline, eol); return sweetCode; - } + }; // https://developer.mozilla.org/en-US/docs/Web/CSS/At-rule - css_beautify.NESTED_AT_RULE = { + this.NESTED_AT_RULE = { "@page": true, "@font-face": true, "@keyframes": true, @@ -35362,282 +35789,535 @@ var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*jshint curly:t "@supports": true, "@document": true }; - css_beautify.CONDITIONAL_GROUP_RULE = { + this.CONDITIONAL_GROUP_RULE = { "@media": true, "@supports": true, "@document": true }; +} - /*global define */ - if (true) { - // Add support for AMD ( https://github.com/amdjs/amdjs-api/wiki/AMD#defineamd-property- ) - !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function() { - return { - css_beautify: css_beautify - }; - }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - } else if (typeof exports !== "undefined") { - // Add support for CommonJS. Just put this file somewhere on your require.paths - // and you will be able to `var html_beautify = require("beautify").html_beautify`. - exports.css_beautify = css_beautify; - } else if (typeof window !== "undefined") { - // If we're running a web page and don't have either of the above, add our one global - window.css_beautify = css_beautify; - } else if (typeof global !== "undefined") { - // If we don't even have window, try global. - global.css_beautify = css_beautify; - } +module.exports.Beautifier = Beautifier; -}()); /***/ }), -/* 148 */ -/***/ (function(module, exports, __webpack_require__) { +/* 1 */ +/***/ (function(module, exports) { -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ +/* jshint curly: false */ +// This section of code is taken from acorn. +// +// Acorn was written by Marijn Haverbeke and released under an MIT +// license. The Unicode regexps (for identifiers and whitespace) were +// taken from [Esprima](http://esprima.org) by Ariya Hidayat. +// +// Git repositories for Acorn are available at +// +// http://marijnhaverbeke.nl/git/acorn +// https://github.com/marijnh/acorn.git +// ## Character categories +// Big ugly regular expressions that match characters in the +// whitespace, identifier, and identifier-start categories. These +// are only applied when a character is found to actually have a +// code point above 128. -var _prodInvariant = __webpack_require__(34); +var nonASCIIwhitespace = /[\u1680\u180e\u2000-\u200a\u202f\u205f\u3000\ufeff]/; // jshint ignore:line +var nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u08a0\u08a2-\u08ac\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097f\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d\u0c58\u0c59\u0c60\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d60\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191c\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19c1-\u19c7\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2e2f\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fcc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua697\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790-\ua793\ua7a0-\ua7aa\ua7f8-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa80-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc"; +var nonASCIIidentifierChars = "\u0300-\u036f\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u0620-\u0649\u0672-\u06d3\u06e7-\u06e8\u06fb-\u06fc\u0730-\u074a\u0800-\u0814\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0840-\u0857\u08e4-\u08fe\u0900-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962-\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09d7\u09df-\u09e0\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2-\u0ae3\u0ae6-\u0aef\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b5f-\u0b60\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c01-\u0c03\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62-\u0c63\u0c66-\u0c6f\u0c82\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2-\u0ce3\u0ce6-\u0cef\u0d02\u0d03\u0d46-\u0d48\u0d57\u0d62-\u0d63\u0d66-\u0d6f\u0d82\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0df2\u0df3\u0e34-\u0e3a\u0e40-\u0e45\u0e50-\u0e59\u0eb4-\u0eb9\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f41-\u0f47\u0f71-\u0f84\u0f86-\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u1000-\u1029\u1040-\u1049\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u170e-\u1710\u1720-\u1730\u1740-\u1750\u1772\u1773\u1780-\u17b2\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u1920-\u192b\u1930-\u193b\u1951-\u196d\u19b0-\u19c0\u19c8-\u19c9\u19d0-\u19d9\u1a00-\u1a15\u1a20-\u1a53\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1b46-\u1b4b\u1b50-\u1b59\u1b6b-\u1b73\u1bb0-\u1bb9\u1be6-\u1bf3\u1c00-\u1c22\u1c40-\u1c49\u1c5b-\u1c7d\u1cd0-\u1cd2\u1d00-\u1dbe\u1e01-\u1f15\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2d81-\u2d96\u2de0-\u2dff\u3021-\u3028\u3099\u309a\ua640-\ua66d\ua674-\ua67d\ua69f\ua6f0-\ua6f1\ua7f8-\ua800\ua806\ua80b\ua823-\ua827\ua880-\ua881\ua8b4-\ua8c4\ua8d0-\ua8d9\ua8f3-\ua8f7\ua900-\ua909\ua926-\ua92d\ua930-\ua945\ua980-\ua983\ua9b3-\ua9c0\uaa00-\uaa27\uaa40-\uaa41\uaa4c-\uaa4d\uaa50-\uaa59\uaa7b\uaae0-\uaae9\uaaf2-\uaaf3\uabc0-\uabe1\uabec\uabed\uabf0-\uabf9\ufb20-\ufb28\ufe00-\ufe0f\ufe20-\ufe26\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f"; +var nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]"); +var nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]"); -var ReactNoopUpdateQueue = __webpack_require__(149); +// Whether a single character denotes a newline. -var canDefineProperty = __webpack_require__(101); -var emptyObject = __webpack_require__(58); -var invariant = __webpack_require__(3); -var warning = __webpack_require__(4); +exports.newline = /[\n\r\u2028\u2029]/; -/** - * Base class helpers for the updating state of a component. - */ -function ReactComponent(props, context, updater) { - this.props = props; - this.context = context; - this.refs = emptyObject; - // We initialize the default updater but the real one gets injected by the - // renderer. - this.updater = updater || ReactNoopUpdateQueue; -} +// Matches a whole line break (where CRLF is considered a single +// line break). Used to count lines. -ReactComponent.prototype.isReactComponent = {}; +// in javascript, these two differ +// in python they are the same, different methods are called on them +exports.lineBreak = new RegExp('\r\n|' + exports.newline.source); +exports.allLineBreaks = new RegExp(exports.lineBreak.source, 'g'); -/** - * Sets a subset of the state. Always use this to mutate - * state. You should treat `this.state` as immutable. - * - * There is no guarantee that `this.state` will be immediately updated, so - * accessing `this.state` after calling this method may return the old value. - * - * There is no guarantee that calls to `setState` will run synchronously, - * as they may eventually be batched together. You can provide an optional - * callback that will be executed when the call to setState is actually - * completed. - * - * When a function is provided to setState, it will be called at some point in - * the future (not synchronously). It will be called with the up to date - * component arguments (state, props, context). These values can be different - * from this.* because your function may be called after receiveProps but before - * shouldComponentUpdate, and this new state, props, and context will not yet be - * assigned to this. - * - * @param {object|function} partialState Next partial state or function to - * produce next partial state to be merged with current state. - * @param {?function} callback Called after state is updated. - * @final - * @protected - */ -ReactComponent.prototype.setState = function (partialState, callback) { - !(typeof partialState === 'object' || typeof partialState === 'function' || partialState == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'setState(...): takes an object of state variables to update or a function which returns an object of state variables.') : _prodInvariant('85') : void 0; - this.updater.enqueueSetState(this, partialState); - if (callback) { - this.updater.enqueueCallback(this, callback, 'setState'); - } + +// Test whether a given character code starts an identifier. + +exports.isIdentifierStart = function(code) { + // permit $ (36) and @ (64). @ is used in ES7 decorators. + if (code < 65) return code === 36 || code === 64; + // 65 through 91 are uppercase letters. + if (code < 91) return true; + // permit _ (95). + if (code < 97) return code === 95; + // 97 through 123 are lowercase letters. + if (code < 123) return true; + return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code)); }; -/** - * Forces an update. This should only be invoked when it is known with - * certainty that we are **not** in a DOM transaction. - * - * You may want to call this when you know that some deeper aspect of the - * component's state has changed but `setState` was not called. - * - * This will not invoke `shouldComponentUpdate`, but it will invoke - * `componentWillUpdate` and `componentDidUpdate`. - * - * @param {?function} callback Called after update is complete. - * @final - * @protected - */ -ReactComponent.prototype.forceUpdate = function (callback) { - this.updater.enqueueForceUpdate(this); - if (callback) { - this.updater.enqueueCallback(this, callback, 'forceUpdate'); - } +// Test whether a given character is part of an identifier. + +exports.isIdentifierChar = function(code) { + if (code < 48) return code === 36; + if (code < 58) return true; + if (code < 65) return false; + if (code < 91) return true; + if (code < 97) return code === 95; + if (code < 123) return true; + return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code)); }; -/** - * Deprecated APIs. These APIs used to exist on classic React classes but since - * we would like to deprecate them, we're not going to move them over to this - * modern base class. Instead, we define a getter that warns if it's accessed. - */ -if (process.env.NODE_ENV !== 'production') { - var deprecatedAPIs = { - isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'], - replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).'] - }; - var defineDeprecationWarning = function (methodName, info) { - if (canDefineProperty) { - Object.defineProperty(ReactComponent.prototype, methodName, { - get: function () { - process.env.NODE_ENV !== 'production' ? warning(false, '%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]) : void 0; - return undefined; + +/***/ }), +/* 2 */ +/***/ (function(module, exports) { + +/*jshint curly:true, eqeqeq:true, laxbreak:true, noempty:false */ +/* + + The MIT License (MIT) + + Copyright (c) 2007-2017 Einar Lielmanis, Liam Newman, and contributors. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + +function mergeOpts(allOptions, targetType) { + var finalOpts = {}; + var name; + + for (name in allOptions) { + if (name !== targetType) { + finalOpts[name] = allOptions[name]; } - }); } - }; - for (var fnName in deprecatedAPIs) { - if (deprecatedAPIs.hasOwnProperty(fnName)) { - defineDeprecationWarning(fnName, deprecatedAPIs[fnName]); + + //merge in the per type settings for the targetType + if (targetType in allOptions) { + for (name in allOptions[targetType]) { + finalOpts[name] = allOptions[targetType][name]; + } } - } + return finalOpts; } -module.exports = ReactComponent; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) +module.exports.mergeOpts = mergeOpts; + /***/ }), -/* 149 */ +/* 3 */ +/***/ (function(module, exports) { + +/*jshint curly:true, eqeqeq:true, laxbreak:true, noempty:false */ +/* + + The MIT License (MIT) + + Copyright (c) 2007-2017 Einar Lielmanis, Liam Newman, and contributors. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + +function OutputLine(parent) { + var _character_count = 0; + // use indent_count as a marker for lines that have preserved indentation + var _indent_count = -1; + + var _items = []; + var _empty = true; + + this.set_indent = function(level) { + _character_count = parent.baseIndentLength + level * parent.indent_length; + _indent_count = level; + }; + + this.get_character_count = function() { + return _character_count; + }; + + this.is_empty = function() { + return _empty; + }; + + this.last = function() { + if (!this._empty) { + return _items[_items.length - 1]; + } else { + return null; + } + }; + + this.push = function(input) { + _items.push(input); + _character_count += input.length; + _empty = false; + }; + + this.pop = function() { + var item = null; + if (!_empty) { + item = _items.pop(); + _character_count -= item.length; + _empty = _items.length === 0; + } + return item; + }; + + this.remove_indent = function() { + if (_indent_count > 0) { + _indent_count -= 1; + _character_count -= parent.indent_length; + } + }; + + this.trim = function() { + while (this.last() === ' ') { + _items.pop(); + _character_count -= 1; + } + _empty = _items.length === 0; + }; + + this.toString = function() { + var result = ''; + if (!this._empty) { + if (_indent_count >= 0) { + result = parent.indent_cache[_indent_count]; + } + result += _items.join(''); + } + return result; + }; +} + +function Output(indent_string, baseIndentString) { + baseIndentString = baseIndentString || ''; + this.indent_cache = [baseIndentString]; + this.baseIndentLength = baseIndentString.length; + this.indent_length = indent_string.length; + this.raw = false; + + var lines = []; + this.baseIndentString = baseIndentString; + this.indent_string = indent_string; + this.previous_line = null; + this.current_line = null; + this.space_before_token = false; + + this.add_outputline = function() { + this.previous_line = this.current_line; + this.current_line = new OutputLine(this); + lines.push(this.current_line); + }; + + // initialize + this.add_outputline(); + + + this.get_line_number = function() { + return lines.length; + }; + + // Using object instead of string to allow for later expansion of info about each line + this.add_new_line = function(force_newline) { + if (this.get_line_number() === 1 && this.just_added_newline()) { + return false; // no newline on start of file + } + + if (force_newline || !this.just_added_newline()) { + if (!this.raw) { + this.add_outputline(); + } + return true; + } + + return false; + }; + + this.get_code = function(end_with_newline, eol) { + var sweet_code = lines.join('\n').replace(/[\r\n\t ]+$/, ''); + + if (end_with_newline) { + sweet_code += '\n'; + } + + if (eol !== '\n') { + sweet_code = sweet_code.replace(/[\n]/g, eol); + } + + return sweet_code; + }; + + this.set_indent = function(level) { + // Never indent your first output indent at the start of the file + if (lines.length > 1) { + while (level >= this.indent_cache.length) { + this.indent_cache.push(this.indent_cache[this.indent_cache.length - 1] + this.indent_string); + } + + this.current_line.set_indent(level); + return true; + } + this.current_line.set_indent(0); + return false; + }; + + this.add_raw_token = function(token) { + for (var x = 0; x < token.newlines; x++) { + this.add_outputline(); + } + this.current_line.push(token.whitespace_before); + this.current_line.push(token.text); + this.space_before_token = false; + }; + + this.add_token = function(printable_token) { + this.add_space_before_token(); + this.current_line.push(printable_token); + }; + + this.add_space_before_token = function() { + if (this.space_before_token && !this.just_added_newline()) { + this.current_line.push(' '); + } + this.space_before_token = false; + }; + + this.remove_indent = function(index) { + var output_length = lines.length; + while (index < output_length) { + lines[index].remove_indent(); + index++; + } + }; + + this.trim = function(eat_newlines) { + eat_newlines = (eat_newlines === undefined) ? false : eat_newlines; + + this.current_line.trim(indent_string, baseIndentString); + + while (eat_newlines && lines.length > 1 && + this.current_line.is_empty()) { + lines.pop(); + this.current_line = lines[lines.length - 1]; + this.current_line.trim(); + } + + this.previous_line = lines.length > 1 ? lines[lines.length - 2] : null; + }; + + this.just_added_newline = function() { + return this.current_line.is_empty(); + }; + + this.just_added_blankline = function() { + if (this.just_added_newline()) { + if (lines.length === 1) { + return true; // start of the file and newline = blank + } + + var line = lines[lines.length - 2]; + return line.is_empty(); + } + return false; + }; +} + +module.exports.Output = Output; + + +/***/ }), +/* 4 */ +/***/ (function(module, exports, __webpack_require__) { + +/*jshint curly:true, eqeqeq:true, laxbreak:true, noempty:false */ +/* + + The MIT License (MIT) + + Copyright (c) 2007-2017 Einar Lielmanis, Liam Newman, and contributors. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + +var Beautifier = __webpack_require__(0).Beautifier; + +function css_beautify(source_text, options) { + var beautifier = new Beautifier(source_text, options); + return beautifier.beautify(); +} + +module.exports = css_beautify; + +/***/ }) +/******/ ]); +var css_beautify = legacy_beautify_css; +/* Footer */ +if (true) { + // Add support for AMD ( https://github.com/amdjs/amdjs-api/wiki/AMD#defineamd-property- ) + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function() { + return { + css_beautify: css_beautify + }; + }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), + __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); +} else if (typeof exports !== "undefined") { + // Add support for CommonJS. Just put this file somewhere on your require.paths + // and you will be able to `var html_beautify = require("beautify").html_beautify`. + exports.css_beautify = css_beautify; +} else if (typeof window !== "undefined") { + // If we're running a web page and don't have either of the above, add our one global + window.css_beautify = css_beautify; +} else if (typeof global !== "undefined") { + // If we don't even have window, try global. + global.css_beautify = css_beautify; +} + +}()); + + +/***/ }), +/* 147 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright 2015-present, Facebook, Inc. - * All rights reserved. + * Copyright (c) 2014-present, Facebook, Inc. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. * */ -var warning = __webpack_require__(4); - -function warnNoop(publicInstance, callerName) { - if (process.env.NODE_ENV !== 'production') { - var constructor = publicInstance.constructor; - process.env.NODE_ENV !== 'production' ? warning(false, '%s(...): Can only update a mounted or mounting component. ' + 'This usually means you called %s() on an unmounted component. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, constructor && (constructor.displayName || constructor.name) || 'ReactClass') : void 0; - } -} - /** - * This is the abstract API for an update queue. + * Forked from fbjs/warning: + * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js + * + * Only change is we use console.warn instead of console.error, + * and do nothing when 'console' is not supported. + * This really simplifies the code. + * --- + * Similar to invariant but only logs a warning if the condition is not met. + * This can be used to log issues in development environments in critical + * paths. Removing the logging code for production environments will keep the + * same logic and follow the same code paths. */ -var ReactNoopUpdateQueue = { - /** - * Checks whether or not this composite component is mounted. - * @param {ReactClass} publicInstance The instance we want to test. - * @return {boolean} True if mounted, false otherwise. - * @protected - * @final - */ - isMounted: function (publicInstance) { - return false; - }, +var lowPriorityWarning = function () {}; - /** - * Enqueue a callback that will be executed after all the pending updates - * have processed. - * - * @param {ReactClass} publicInstance The instance to use as `this` context. - * @param {?function} callback Called after state is updated. - * @internal - */ - enqueueCallback: function (publicInstance, callback) {}, +if (process.env.NODE_ENV !== 'production') { + var printWarning = function (format) { + for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } - /** - * Forces an update. This should only be invoked when it is known with - * certainty that we are **not** in a DOM transaction. - * - * You may want to call this when you know that some deeper aspect of the - * component's state has changed but `setState` was not called. - * - * This will not invoke `shouldComponentUpdate`, but it will invoke - * `componentWillUpdate` and `componentDidUpdate`. - * - * @param {ReactClass} publicInstance The instance that should rerender. - * @internal - */ - enqueueForceUpdate: function (publicInstance) { - warnNoop(publicInstance, 'forceUpdate'); - }, + var argIndex = 0; + var message = 'Warning: ' + format.replace(/%s/g, function () { + return args[argIndex++]; + }); + if (typeof console !== 'undefined') { + console.warn(message); + } + try { + // --- Welcome to debugging React --- + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch (x) {} + }; - /** - * Replaces all of the state. Always use this or `setState` to mutate state. - * You should treat `this.state` as immutable. - * - * There is no guarantee that `this.state` will be immediately updated, so - * accessing `this.state` after calling this method may return the old value. - * - * @param {ReactClass} publicInstance The instance that should rerender. - * @param {object} completeState Next state. - * @internal - */ - enqueueReplaceState: function (publicInstance, completeState) { - warnNoop(publicInstance, 'replaceState'); - }, + lowPriorityWarning = function (condition, format) { + if (format === undefined) { + throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument'); + } + if (!condition) { + for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { + args[_key2 - 2] = arguments[_key2]; + } - /** - * Sets a subset of the state. This only exists because _pendingState is - * internal. This provides a merging strategy that is not available to deep - * properties which is confusing. TODO: Expose pendingState or don't use it - * during the merge. - * - * @param {ReactClass} publicInstance The instance that should rerender. - * @param {object} partialState Next partial state to be merged with state. - * @internal - */ - enqueueSetState: function (publicInstance, partialState) { - warnNoop(publicInstance, 'setState'); - } -}; + printWarning.apply(undefined, [format].concat(args)); + } + }; +} -module.exports = ReactNoopUpdateQueue; +module.exports = lowPriorityWarning; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 150 */ +/* 148 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. + * Copyright (c) 2013-present, Facebook, Inc. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. * * */ -var _prodInvariant = __webpack_require__(7); +var _prodInvariant = __webpack_require__(6); -var invariant = __webpack_require__(3); +var invariant = __webpack_require__(2); /** * Injectable ordering of event plugins. @@ -35732,7 +36412,6 @@ function publishRegistrationName(registrationName, pluginModule, eventName) { * @see {EventPluginHub} */ var EventPluginRegistry = { - /** * Ordered list of injected plugins. */ @@ -35872,34 +36551,31 @@ var EventPluginRegistry = { } } } - }; module.exports = EventPluginRegistry; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 151 */ +/* 149 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. + * Copyright (c) 2013-present, Facebook, Inc. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. * */ -var _prodInvariant = __webpack_require__(7); +var _prodInvariant = __webpack_require__(6); -var ReactErrorUtils = __webpack_require__(152); +var ReactErrorUtils = __webpack_require__(150); -var invariant = __webpack_require__(3); +var invariant = __webpack_require__(2); var warning = __webpack_require__(4); /** @@ -36111,17 +36787,15 @@ module.exports = EventPluginUtils; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 152 */ +/* 150 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. + * Copyright (c) 2013-present, Facebook, Inc. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. * * */ @@ -36178,7 +36852,9 @@ if (process.env.NODE_ENV !== 'production') { if (typeof window !== 'undefined' && typeof window.dispatchEvent === 'function' && typeof document !== 'undefined' && typeof document.createEvent === 'function') { var fakeNode = document.createElement('react'); ReactErrorUtils.invokeGuardedCallback = function (name, func, a) { - var boundFunc = func.bind(null, a); + var boundFunc = function () { + func(a); + }; var evtType = 'react-' + name; fakeNode.addEventListener(evtType, boundFunc, false); var evt = document.createEvent('Event'); @@ -36193,17 +36869,15 @@ module.exports = ReactErrorUtils; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 153 */ +/* 151 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. + * Copyright (c) 2013-present, Facebook, Inc. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. * */ @@ -36233,23 +36907,21 @@ function getEventTarget(nativeEvent) { module.exports = getEventTarget; /***/ }), -/* 154 */ +/* 152 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. + * Copyright (c) 2013-present, Facebook, Inc. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. * */ -var ExecutionEnvironment = __webpack_require__(13); +var ExecutionEnvironment = __webpack_require__(14); var useHasFeature; if (ExecutionEnvironment.canUseDOM) { @@ -36298,17 +36970,15 @@ function isEventSupported(eventNameSuffix, capture) { module.exports = isEventSupported; /***/ }), -/* 155 */ +/* 153 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. + * Copyright (c) 2013-present, Facebook, Inc. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. * */ @@ -36320,10 +36990,10 @@ module.exports = isEventSupported; */ var modifierKeyToProp = { - 'Alt': 'altKey', - 'Control': 'ctrlKey', - 'Meta': 'metaKey', - 'Shift': 'shiftKey' + Alt: 'altKey', + Control: 'ctrlKey', + Meta: 'metaKey', + Shift: 'shiftKey' }; // IE8 does not implement getModifierState so we simply map it to the only @@ -36346,30 +37016,28 @@ function getEventModifierState(nativeEvent) { module.exports = getEventModifierState; /***/ }), -/* 156 */ +/* 154 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. + * Copyright (c) 2013-present, Facebook, Inc. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. * */ var DOMLazyTree = __webpack_require__(64); -var Danger = __webpack_require__(518); -var ReactDOMComponentTree = __webpack_require__(12); -var ReactInstrumentation = __webpack_require__(21); +var Danger = __webpack_require__(515); +var ReactDOMComponentTree = __webpack_require__(13); +var ReactInstrumentation = __webpack_require__(22); -var createMicrosoftUnsafeLocalFunction = __webpack_require__(159); -var setInnerHTML = __webpack_require__(158); -var setTextContent = __webpack_require__(264); +var createMicrosoftUnsafeLocalFunction = __webpack_require__(157); +var setInnerHTML = __webpack_require__(156); +var setTextContent = __webpack_require__(262); function getNodeAfter(parentNode, node) { // Special case for text components, which return [open, close] comments @@ -36497,7 +37165,6 @@ if (process.env.NODE_ENV !== 'production') { * Operations for updating with DOM children. */ var DOMChildrenOperations = { - dangerouslyReplaceNodeWithMarkup: dangerouslyReplaceNodeWithMarkup, replaceDelimitedText: replaceDelimitedText, @@ -36523,7 +37190,10 @@ var DOMChildrenOperations = { ReactInstrumentation.debugTool.onHostOperation({ instanceID: parentNodeDebugID, type: 'insert child', - payload: { toIndex: update.toIndex, content: update.content.toString() } + payload: { + toIndex: update.toIndex, + content: update.content.toString() + } }); } break; @@ -36570,24 +37240,21 @@ var DOMChildrenOperations = { } } } - }; module.exports = DOMChildrenOperations; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 157 */ +/* 155 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. + * Copyright (c) 2013-present, Facebook, Inc. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. * */ @@ -36602,29 +37269,27 @@ var DOMNamespaces = { module.exports = DOMNamespaces; /***/ }), -/* 158 */ +/* 156 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. + * Copyright (c) 2013-present, Facebook, Inc. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. * */ -var ExecutionEnvironment = __webpack_require__(13); -var DOMNamespaces = __webpack_require__(157); +var ExecutionEnvironment = __webpack_require__(14); +var DOMNamespaces = __webpack_require__(155); var WHITESPACE_TEST = /^[ \r\n\t\f]/; var NONVISIBLE_TEST = /<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/; -var createMicrosoftUnsafeLocalFunction = __webpack_require__(159); +var createMicrosoftUnsafeLocalFunction = __webpack_require__(157); // SVG temp container for IE lacking innerHTML var reusableSVGContainer; @@ -36684,7 +37349,7 @@ if (ExecutionEnvironment.canUseDOM) { // in hopes that this is preserved even if "\uFEFF" is transformed to // the actual Unicode character (by Babel, for example). // https://github.com/mishoo/UglifyJS2/blob/v2.4.20/lib/parse.js#L216 - node.innerHTML = String.fromCharCode(0xFEFF) + html; + node.innerHTML = String.fromCharCode(0xfeff) + html; // deleteData leaves an empty `TextNode` which offsets the index of all // children. Definitely want to avoid this. @@ -36705,17 +37370,15 @@ if (ExecutionEnvironment.canUseDOM) { module.exports = setInnerHTML; /***/ }), -/* 159 */ +/* 157 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. + * Copyright (c) 2013-present, Facebook, Inc. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. * */ @@ -36742,30 +37405,28 @@ var createMicrosoftUnsafeLocalFunction = function (func) { module.exports = createMicrosoftUnsafeLocalFunction; /***/ }), -/* 160 */ +/* 158 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. + * Copyright (c) 2013-present, Facebook, Inc. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. * */ -var _assign = __webpack_require__(8); +var _assign = __webpack_require__(9); -var EventPluginRegistry = __webpack_require__(150); -var ReactEventEmitterMixin = __webpack_require__(533); -var ViewportMetrics = __webpack_require__(263); +var EventPluginRegistry = __webpack_require__(148); +var ReactEventEmitterMixin = __webpack_require__(530); +var ViewportMetrics = __webpack_require__(261); -var getVendorPrefixedEventName = __webpack_require__(534); -var isEventSupported = __webpack_require__(154); +var getVendorPrefixedEventName = __webpack_require__(531); +var isEventSupported = __webpack_require__(152); /** * Summary of `ReactBrowserEventEmitter` event handling: @@ -36923,7 +37584,6 @@ function getListeningForDocument(mountAt) { * @internal */ var ReactBrowserEventEmitter = _assign({}, ReactEventEmitterMixin, { - /** * Injectable event backend */ @@ -36997,14 +37657,12 @@ var ReactBrowserEventEmitter = _assign({}, ReactEventEmitterMixin, { ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topWheel', 'DOMMouseScroll', mountAt); } } else if (dependency === 'topScroll') { - if (isEventSupported('scroll', true)) { ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('topScroll', 'scroll', mountAt); } else { ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topScroll', 'scroll', ReactBrowserEventEmitter.ReactEventListener.WINDOW_HANDLE); } } else if (dependency === 'topFocus' || dependency === 'topBlur') { - if (isEventSupported('focus', true)) { ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('topFocus', 'focus', mountAt); ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('topBlur', 'blur', mountAt); @@ -37069,47 +37727,44 @@ var ReactBrowserEventEmitter = _assign({}, ReactEventEmitterMixin, { isMonitoringScrollValue = true; } } - }); module.exports = ReactBrowserEventEmitter; /***/ }), -/* 161 */ +/* 159 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. + * Copyright (c) 2013-present, Facebook, Inc. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. * */ -var _prodInvariant = __webpack_require__(7); +var _prodInvariant = __webpack_require__(6); -var ReactPropTypesSecret = __webpack_require__(268); -var propTypesFactory = __webpack_require__(254); +var ReactPropTypesSecret = __webpack_require__(266); +var propTypesFactory = __webpack_require__(251); var React = __webpack_require__(43); var PropTypes = propTypesFactory(React.isValidElement); -var invariant = __webpack_require__(3); +var invariant = __webpack_require__(2); var warning = __webpack_require__(4); var hasReadOnlyValue = { - 'button': true, - 'checkbox': true, - 'image': true, - 'hidden': true, - 'radio': true, - 'reset': true, - 'submit': true + button: true, + checkbox: true, + image: true, + hidden: true, + radio: true, + reset: true, + submit: true }; function _assertSingleLink(inputProps) { @@ -37219,31 +37874,28 @@ module.exports = LinkedValueUtils; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 162 */ +/* 160 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright 2014-present, Facebook, Inc. - * All rights reserved. + * Copyright (c) 2014-present, Facebook, Inc. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. * * */ -var _prodInvariant = __webpack_require__(7); +var _prodInvariant = __webpack_require__(6); -var invariant = __webpack_require__(3); +var invariant = __webpack_require__(2); var injected = false; var ReactComponentEnvironment = { - /** * Optionally injectable hook for swapping out mount images in the middle of * the tree. @@ -37264,24 +37916,21 @@ var ReactComponentEnvironment = { injected = true; } } - }; module.exports = ReactComponentEnvironment; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 163 */ +/* 161 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. + * Copyright (c) 2013-present, Facebook, Inc. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. * */ @@ -37297,7 +37946,6 @@ module.exports = ReactComponentEnvironment; // TODO: Replace this with ES6: var ReactInstanceMap = new Map(); var ReactInstanceMap = { - /** * This API should be called `delete` but we'd have to make sure to always * transform these to strings for IE support. When this transform is fully @@ -37318,23 +37966,20 @@ var ReactInstanceMap = { set: function (key, value) { key._reactInternalInstance = value; } - }; module.exports = ReactInstanceMap; /***/ }), -/* 164 */ +/* 162 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright (c) 2013-present, Facebook, Inc. - * All rights reserved. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. * * @typechecks * @@ -37397,17 +38042,15 @@ function shallowEqual(objA, objB) { module.exports = shallowEqual; /***/ }), -/* 165 */ +/* 163 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. + * Copyright (c) 2013-present, Facebook, Inc. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. * * */ @@ -37461,25 +38104,23 @@ var KeyEscapeUtils = { module.exports = KeyEscapeUtils; /***/ }), -/* 166 */ +/* 164 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright 2015-present, Facebook, Inc. - * All rights reserved. + * Copyright (c) 2015-present, Facebook, Inc. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. * */ -var _assign = __webpack_require__(8); +var _assign = __webpack_require__(9); -var emptyFunction = __webpack_require__(20); +var emptyFunction = __webpack_require__(21); var warning = __webpack_require__(4); var validateDOMNesting = emptyFunction; @@ -37588,7 +38229,6 @@ if (process.env.NODE_ENV !== 'production') { // but case 'option': return tag === '#text'; - // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intd // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incaption // No special behavior since these rules fall back to "in body" mode for @@ -37597,25 +38237,20 @@ if (process.env.NODE_ENV !== 'production') { // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intr case 'tr': return tag === 'th' || tag === 'td' || tag === 'style' || tag === 'script' || tag === 'template'; - // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intbody case 'tbody': case 'thead': case 'tfoot': return tag === 'tr' || tag === 'style' || tag === 'script' || tag === 'template'; - // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incolgroup case 'colgroup': return tag === 'col' || tag === 'template'; - // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intable case 'table': return tag === 'caption' || tag === 'colgroup' || tag === 'tbody' || tag === 'tfoot' || tag === 'thead' || tag === 'style' || tag === 'script' || tag === 'template'; - // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inhead case 'head': return tag === 'base' || tag === 'basefont' || tag === 'bgsound' || tag === 'link' || tag === 'meta' || tag === 'title' || tag === 'noscript' || tag === 'noframes' || tag === 'style' || tag === 'script' || tag === 'template'; - // https://html.spec.whatwg.org/multipage/semantics.html#the-html-element case 'html': return tag === 'head' || tag === 'body'; @@ -37811,7 +38446,7 @@ if (process.env.NODE_ENV !== 'production') { tagDisplayName = 'Text nodes'; } else { tagDisplayName = 'Whitespace text nodes'; - whitespaceInfo = ' Make sure you don\'t have any extra whitespace between tags on ' + 'each line of your source code.'; + whitespaceInfo = " Make sure you don't have any extra whitespace between tags on " + 'each line of your source code.'; } } else { tagDisplayName = '<' + childTag + '>'; @@ -37844,17 +38479,15 @@ module.exports = validateDOMNesting; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 167 */ +/* 165 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** - * Copyright 2013-present, Facebook, Inc. - * All rights reserved. + * Copyright (c) 2013-present, Facebook, Inc. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. * */ @@ -37899,7 +38532,7 @@ function getEventCharCode(nativeEvent) { module.exports = getEventCharCode; /***/ }), -/* 168 */ +/* 166 */ /***/ (function(module, exports, __webpack_require__) { /* @@ -37909,10 +38542,10 @@ module.exports = getEventCharCode; var parse = __webpack_require__(105), isHtml = __webpack_require__(68).isHtml, _ = { - extend: __webpack_require__(291), - bind: __webpack_require__(176), - forEach: __webpack_require__(108), - defaults: __webpack_require__(292) + extend: __webpack_require__(290), + bind: __webpack_require__(172), + forEach: __webpack_require__(109), + defaults: __webpack_require__(291) }; /* @@ -37920,11 +38553,11 @@ var parse = __webpack_require__(105), */ var api = [ - __webpack_require__(613), - __webpack_require__(623), - __webpack_require__(627), - __webpack_require__(629), - __webpack_require__(631) + __webpack_require__(610), + __webpack_require__(620), + __webpack_require__(624), + __webpack_require__(626), + __webpack_require__(628) ]; /* @@ -37994,7 +38627,7 @@ var Cheerio = module.exports = function(selector, context, root, options) { * Mix in `static` */ -_.extend(Cheerio, __webpack_require__(177)); +_.extend(Cheerio, __webpack_require__(173)); /* * Set a signature of the object @@ -38053,2345 +38686,89 @@ var isNode = function(obj) { /***/ }), -/* 169 */ +/* 167 */ /***/ (function(module, exports) { -module.exports = { - "Aacute": "ร", - "aacute": "รก", - "Abreve": "ฤ‚", - "abreve": "ฤƒ", - "ac": "โˆพ", - "acd": "โˆฟ", - "acE": "โˆพฬณ", - "Acirc": "ร‚", - "acirc": "รข", - "acute": "ยด", - "Acy": "ะ", - "acy": "ะฐ", - "AElig": "ร†", - "aelig": "รฆ", - "af": "โก", - "Afr": "๐”„", - "afr": "๐”ž", - "Agrave": "ร€", - "agrave": "ร ", - "alefsym": "โ„ต", - "aleph": "โ„ต", - "Alpha": "ฮ‘", - "alpha": "ฮฑ", - "Amacr": "ฤ€", - "amacr": "ฤ", - "amalg": "โจฟ", - "amp": "&", - "AMP": "&", - "andand": "โฉ•", - "And": "โฉ“", - "and": "โˆง", - "andd": "โฉœ", - "andslope": "โฉ˜", - "andv": "โฉš", - "ang": "โˆ ", - "ange": "โฆค", - "angle": "โˆ ", - "angmsdaa": "โฆจ", - "angmsdab": "โฆฉ", - "angmsdac": "โฆช", - "angmsdad": "โฆซ", - "angmsdae": "โฆฌ", - "angmsdaf": "โฆญ", - "angmsdag": "โฆฎ", - "angmsdah": "โฆฏ", - "angmsd": "โˆก", - "angrt": "โˆŸ", - "angrtvb": "โŠพ", - "angrtvbd": "โฆ", - "angsph": "โˆข", - "angst": "ร…", - "angzarr": "โผ", - "Aogon": "ฤ„", - "aogon": "ฤ…", - "Aopf": "๐”ธ", - "aopf": "๐•’", - "apacir": "โฉฏ", - "ap": "โ‰ˆ", - "apE": "โฉฐ", - "ape": "โ‰Š", - "apid": "โ‰‹", - "apos": "'", - "ApplyFunction": "โก", - "approx": "โ‰ˆ", - "approxeq": "โ‰Š", - "Aring": "ร…", - "aring": "รฅ", - "Ascr": "๐’œ", - "ascr": "๐’ถ", - "Assign": "โ‰”", - "ast": "*", - "asymp": "โ‰ˆ", - "asympeq": "โ‰", - "Atilde": "รƒ", - "atilde": "รฃ", - "Auml": "ร„", - "auml": "รค", - "awconint": "โˆณ", - "awint": "โจ‘", - "backcong": "โ‰Œ", - "backepsilon": "ฯถ", - "backprime": "โ€ต", - "backsim": "โˆฝ", - "backsimeq": "โ‹", - "Backslash": "โˆ–", - "Barv": "โซง", - "barvee": "โŠฝ", - "barwed": "โŒ…", - "Barwed": "โŒ†", - "barwedge": "โŒ…", - "bbrk": "โŽต", - "bbrktbrk": "โŽถ", - "bcong": "โ‰Œ", - "Bcy": "ะ‘", - "bcy": "ะฑ", - "bdquo": "โ€ž", - "becaus": "โˆต", - "because": "โˆต", - "Because": "โˆต", - "bemptyv": "โฆฐ", - "bepsi": "ฯถ", - "bernou": "โ„ฌ", - "Bernoullis": "โ„ฌ", - "Beta": "ฮ’", - "beta": "ฮฒ", - "beth": "โ„ถ", - "between": "โ‰ฌ", - "Bfr": "๐”…", - "bfr": "๐”Ÿ", - "bigcap": "โ‹‚", - "bigcirc": "โ—ฏ", - "bigcup": "โ‹ƒ", - "bigodot": "โจ€", - "bigoplus": "โจ", - "bigotimes": "โจ‚", - "bigsqcup": "โจ†", - "bigstar": "โ˜…", - "bigtriangledown": "โ–ฝ", - "bigtriangleup": "โ–ณ", - "biguplus": "โจ„", - "bigvee": "โ‹", - "bigwedge": "โ‹€", - "bkarow": "โค", - "blacklozenge": "โงซ", - "blacksquare": "โ–ช", - "blacktriangle": "โ–ด", - "blacktriangledown": "โ–พ", - "blacktriangleleft": "โ—‚", - "blacktriangleright": "โ–ธ", - "blank": "โฃ", - "blk12": "โ–’", - "blk14": "โ–‘", - "blk34": "โ–“", - "block": "โ–ˆ", - "bne": "=โƒฅ", - "bnequiv": "โ‰กโƒฅ", - "bNot": "โซญ", - "bnot": "โŒ", - "Bopf": "๐”น", - "bopf": "๐•“", - "bot": "โŠฅ", - "bottom": "โŠฅ", - "bowtie": "โ‹ˆ", - "boxbox": "โง‰", - "boxdl": "โ”", - "boxdL": "โ••", - "boxDl": "โ•–", - "boxDL": "โ•—", - "boxdr": "โ”Œ", - "boxdR": "โ•’", - "boxDr": "โ•“", - "boxDR": "โ•”", - "boxh": "โ”€", - "boxH": "โ•", - "boxhd": "โ”ฌ", - "boxHd": "โ•ค", - "boxhD": "โ•ฅ", - "boxHD": "โ•ฆ", - "boxhu": "โ”ด", - "boxHu": "โ•ง", - "boxhU": "โ•จ", - "boxHU": "โ•ฉ", - "boxminus": "โŠŸ", - "boxplus": "โŠž", - "boxtimes": "โŠ ", - "boxul": "โ”˜", - "boxuL": "โ•›", - "boxUl": "โ•œ", - "boxUL": "โ•", - "boxur": "โ””", - "boxuR": "โ•˜", - "boxUr": "โ•™", - "boxUR": "โ•š", - "boxv": "โ”‚", - "boxV": "โ•‘", - "boxvh": "โ”ผ", - "boxvH": "โ•ช", - "boxVh": "โ•ซ", - "boxVH": "โ•ฌ", - "boxvl": "โ”ค", - "boxvL": "โ•ก", - "boxVl": "โ•ข", - "boxVL": "โ•ฃ", - "boxvr": "โ”œ", - "boxvR": "โ•ž", - "boxVr": "โ•Ÿ", - "boxVR": "โ• ", - "bprime": "โ€ต", - "breve": "ห˜", - "Breve": "ห˜", - "brvbar": "ยฆ", - "bscr": "๐’ท", - "Bscr": "โ„ฌ", - "bsemi": "โ", - "bsim": "โˆฝ", - "bsime": "โ‹", - "bsolb": "โง…", - "bsol": "\\", - "bsolhsub": "โŸˆ", - "bull": "โ€ข", - "bullet": "โ€ข", - "bump": "โ‰Ž", - "bumpE": "โชฎ", - "bumpe": "โ‰", - "Bumpeq": "โ‰Ž", - "bumpeq": "โ‰", - "Cacute": "ฤ†", - "cacute": "ฤ‡", - "capand": "โฉ„", - "capbrcup": "โฉ‰", - "capcap": "โฉ‹", - "cap": "โˆฉ", - "Cap": "โ‹’", - "capcup": "โฉ‡", - "capdot": "โฉ€", - "CapitalDifferentialD": "โ……", - "caps": "โˆฉ๏ธ€", - "caret": "โ", - "caron": "ห‡", - "Cayleys": "โ„ญ", - "ccaps": "โฉ", - "Ccaron": "ฤŒ", - "ccaron": "ฤ", - "Ccedil": "ร‡", - "ccedil": "รง", - "Ccirc": "ฤˆ", - "ccirc": "ฤ‰", - "Cconint": "โˆฐ", - "ccups": "โฉŒ", - "ccupssm": "โฉ", - "Cdot": "ฤŠ", - "cdot": "ฤ‹", - "cedil": "ยธ", - "Cedilla": "ยธ", - "cemptyv": "โฆฒ", - "cent": "ยข", - "centerdot": "ยท", - "CenterDot": "ยท", - "cfr": "๐” ", - "Cfr": "โ„ญ", - "CHcy": "ะง", - "chcy": "ั‡", - "check": "โœ“", - "checkmark": "โœ“", - "Chi": "ฮง", - "chi": "ฯ‡", - "circ": "ห†", - "circeq": "โ‰—", - "circlearrowleft": "โ†บ", - "circlearrowright": "โ†ป", - "circledast": "โŠ›", - "circledcirc": "โŠš", - "circleddash": "โŠ", - "CircleDot": "โŠ™", - "circledR": "ยฎ", - "circledS": "โ“ˆ", - "CircleMinus": "โŠ–", - "CirclePlus": "โŠ•", - "CircleTimes": "โŠ—", - "cir": "โ—‹", - "cirE": "โงƒ", - "cire": "โ‰—", - "cirfnint": "โจ", - "cirmid": "โซฏ", - "cirscir": "โง‚", - "ClockwiseContourIntegral": "โˆฒ", - "CloseCurlyDoubleQuote": "โ€", - "CloseCurlyQuote": "โ€™", - "clubs": "โ™ฃ", - "clubsuit": "โ™ฃ", - "colon": ":", - "Colon": "โˆท", - "Colone": "โฉด", - "colone": "โ‰”", - "coloneq": "โ‰”", - "comma": ",", - "commat": "@", - "comp": "โˆ", - "compfn": "โˆ˜", - "complement": "โˆ", - "complexes": "โ„‚", - "cong": "โ‰…", - "congdot": "โฉญ", - "Congruent": "โ‰ก", - "conint": "โˆฎ", - "Conint": "โˆฏ", - "ContourIntegral": "โˆฎ", - "copf": "๐•”", - "Copf": "โ„‚", - "coprod": "โˆ", - "Coproduct": "โˆ", - "copy": "ยฉ", - "COPY": "ยฉ", - "copysr": "โ„—", - "CounterClockwiseContourIntegral": "โˆณ", - "crarr": "โ†ต", - "cross": "โœ—", - "Cross": "โจฏ", - "Cscr": "๐’ž", - "cscr": "๐’ธ", - "csub": "โซ", - "csube": "โซ‘", - "csup": "โซ", - "csupe": "โซ’", - "ctdot": "โ‹ฏ", - "cudarrl": "โคธ", - "cudarrr": "โคต", - "cuepr": "โ‹ž", - "cuesc": "โ‹Ÿ", - "cularr": "โ†ถ", - "cularrp": "โคฝ", - "cupbrcap": "โฉˆ", - "cupcap": "โฉ†", - "CupCap": "โ‰", - "cup": "โˆช", - "Cup": "โ‹“", - "cupcup": "โฉŠ", - "cupdot": "โŠ", - "cupor": "โฉ…", - "cups": "โˆช๏ธ€", - "curarr": "โ†ท", - "curarrm": "โคผ", - "curlyeqprec": "โ‹ž", - "curlyeqsucc": "โ‹Ÿ", - "curlyvee": "โ‹Ž", - "curlywedge": "โ‹", - "curren": "ยค", - "curvearrowleft": "โ†ถ", - "curvearrowright": "โ†ท", - "cuvee": "โ‹Ž", - "cuwed": "โ‹", - "cwconint": "โˆฒ", - "cwint": "โˆฑ", - "cylcty": "โŒญ", - "dagger": "โ€ ", - "Dagger": "โ€ก", - "daleth": "โ„ธ", - "darr": "โ†“", - "Darr": "โ†ก", - "dArr": "โ‡“", - "dash": "โ€", - "Dashv": "โซค", - "dashv": "โŠฃ", - "dbkarow": "โค", - "dblac": "ห", - "Dcaron": "ฤŽ", - "dcaron": "ฤ", - "Dcy": "ะ”", - "dcy": "ะด", - "ddagger": "โ€ก", - "ddarr": "โ‡Š", - "DD": "โ……", - "dd": "โ…†", - "DDotrahd": "โค‘", - "ddotseq": "โฉท", - "deg": "ยฐ", - "Del": "โˆ‡", - "Delta": "ฮ”", - "delta": "ฮด", - "demptyv": "โฆฑ", - "dfisht": "โฅฟ", - "Dfr": "๐”‡", - "dfr": "๐”ก", - "dHar": "โฅฅ", - "dharl": "โ‡ƒ", - "dharr": "โ‡‚", - "DiacriticalAcute": "ยด", - "DiacriticalDot": "ห™", - "DiacriticalDoubleAcute": "ห", - "DiacriticalGrave": "`", - "DiacriticalTilde": "หœ", - "diam": "โ‹„", - "diamond": "โ‹„", - "Diamond": "โ‹„", - "diamondsuit": "โ™ฆ", - "diams": "โ™ฆ", - "die": "ยจ", - "DifferentialD": "โ…†", - "digamma": "ฯ", - "disin": "โ‹ฒ", - "div": "รท", - "divide": "รท", - "divideontimes": "โ‹‡", - "divonx": "โ‹‡", - "DJcy": "ะ‚", - "djcy": "ั’", - "dlcorn": "โŒž", - "dlcrop": "โŒ", - "dollar": "$", - "Dopf": "๐”ป", - "dopf": "๐••", - "Dot": "ยจ", - "dot": "ห™", - "DotDot": "โƒœ", - "doteq": "โ‰", - "doteqdot": "โ‰‘", - "DotEqual": "โ‰", - "dotminus": "โˆธ", - "dotplus": "โˆ”", - "dotsquare": "โŠก", - "doublebarwedge": "โŒ†", - "DoubleContourIntegral": "โˆฏ", - "DoubleDot": "ยจ", - "DoubleDownArrow": "โ‡“", - "DoubleLeftArrow": "โ‡", - "DoubleLeftRightArrow": "โ‡”", - "DoubleLeftTee": "โซค", - "DoubleLongLeftArrow": "โŸธ", - "DoubleLongLeftRightArrow": "โŸบ", - "DoubleLongRightArrow": "โŸน", - "DoubleRightArrow": "โ‡’", - "DoubleRightTee": "โŠจ", - "DoubleUpArrow": "โ‡‘", - "DoubleUpDownArrow": "โ‡•", - "DoubleVerticalBar": "โˆฅ", - "DownArrowBar": "โค“", - "downarrow": "โ†“", - "DownArrow": "โ†“", - "Downarrow": "โ‡“", - "DownArrowUpArrow": "โ‡ต", - "DownBreve": "ฬ‘", - "downdownarrows": "โ‡Š", - "downharpoonleft": "โ‡ƒ", - "downharpoonright": "โ‡‚", - "DownLeftRightVector": "โฅ", - "DownLeftTeeVector": "โฅž", - "DownLeftVectorBar": "โฅ–", - "DownLeftVector": "โ†ฝ", - "DownRightTeeVector": "โฅŸ", - "DownRightVectorBar": "โฅ—", - "DownRightVector": "โ‡", - "DownTeeArrow": "โ†ง", - "DownTee": "โŠค", - "drbkarow": "โค", - "drcorn": "โŒŸ", - "drcrop": "โŒŒ", - "Dscr": "๐’Ÿ", - "dscr": "๐’น", - "DScy": "ะ…", - "dscy": "ั•", - "dsol": "โงถ", - "Dstrok": "ฤ", - "dstrok": "ฤ‘", - "dtdot": "โ‹ฑ", - "dtri": "โ–ฟ", - "dtrif": "โ–พ", - "duarr": "โ‡ต", - "duhar": "โฅฏ", - "dwangle": "โฆฆ", - "DZcy": "ะ", - "dzcy": "ัŸ", - "dzigrarr": "โŸฟ", - "Eacute": "ร‰", - "eacute": "รฉ", - "easter": "โฉฎ", - "Ecaron": "ฤš", - "ecaron": "ฤ›", - "Ecirc": "รŠ", - "ecirc": "รช", - "ecir": "โ‰–", - "ecolon": "โ‰•", - "Ecy": "ะญ", - "ecy": "ั", - "eDDot": "โฉท", - "Edot": "ฤ–", - "edot": "ฤ—", - "eDot": "โ‰‘", - "ee": "โ…‡", - "efDot": "โ‰’", - "Efr": "๐”ˆ", - "efr": "๐”ข", - "eg": "โชš", - "Egrave": "รˆ", - "egrave": "รจ", - "egs": "โช–", - "egsdot": "โช˜", - "el": "โช™", - "Element": "โˆˆ", - "elinters": "โง", - "ell": "โ„“", - "els": "โช•", - "elsdot": "โช—", - "Emacr": "ฤ’", - "emacr": "ฤ“", - "empty": "โˆ…", - "emptyset": "โˆ…", - "EmptySmallSquare": "โ—ป", - "emptyv": "โˆ…", - "EmptyVerySmallSquare": "โ–ซ", - "emsp13": "โ€„", - "emsp14": "โ€…", - "emsp": "โ€ƒ", - "ENG": "ลŠ", - "eng": "ล‹", - "ensp": "โ€‚", - "Eogon": "ฤ˜", - "eogon": "ฤ™", - "Eopf": "๐”ผ", - "eopf": "๐•–", - "epar": "โ‹•", - "eparsl": "โงฃ", - "eplus": "โฉฑ", - "epsi": "ฮต", - "Epsilon": "ฮ•", - "epsilon": "ฮต", - "epsiv": "ฯต", - "eqcirc": "โ‰–", - "eqcolon": "โ‰•", - "eqsim": "โ‰‚", - "eqslantgtr": "โช–", - "eqslantless": "โช•", - "Equal": "โฉต", - "equals": "=", - "EqualTilde": "โ‰‚", - "equest": "โ‰Ÿ", - "Equilibrium": "โ‡Œ", - "equiv": "โ‰ก", - "equivDD": "โฉธ", - "eqvparsl": "โงฅ", - "erarr": "โฅฑ", - "erDot": "โ‰“", - "escr": "โ„ฏ", - "Escr": "โ„ฐ", - "esdot": "โ‰", - "Esim": "โฉณ", - "esim": "โ‰‚", - "Eta": "ฮ—", - "eta": "ฮท", - "ETH": "ร", - "eth": "รฐ", - "Euml": "ร‹", - "euml": "รซ", - "euro": "โ‚ฌ", - "excl": "!", - "exist": "โˆƒ", - "Exists": "โˆƒ", - "expectation": "โ„ฐ", - "exponentiale": "โ…‡", - "ExponentialE": "โ…‡", - "fallingdotseq": "โ‰’", - "Fcy": "ะค", - "fcy": "ั„", - "female": "โ™€", - "ffilig": "๏ฌƒ", - "fflig": "๏ฌ€", - "ffllig": "๏ฌ„", - "Ffr": "๐”‰", - "ffr": "๐”ฃ", - "filig": "๏ฌ", - "FilledSmallSquare": "โ—ผ", - "FilledVerySmallSquare": "โ–ช", - "fjlig": "fj", - "flat": "โ™ญ", - "fllig": "๏ฌ‚", - "fltns": "โ–ฑ", - "fnof": "ฦ’", - "Fopf": "๐”ฝ", - "fopf": "๐•—", - "forall": "โˆ€", - "ForAll": "โˆ€", - "fork": "โ‹”", - "forkv": "โซ™", - "Fouriertrf": "โ„ฑ", - "fpartint": "โจ", - "frac12": "ยฝ", - "frac13": "โ…“", - "frac14": "ยผ", - "frac15": "โ…•", - "frac16": "โ…™", - "frac18": "โ…›", - "frac23": "โ…”", - "frac25": "โ…–", - "frac34": "ยพ", - "frac35": "โ…—", - "frac38": "โ…œ", - "frac45": "โ…˜", - "frac56": "โ…š", - "frac58": "โ…", - "frac78": "โ…ž", - "frasl": "โ„", - "frown": "โŒข", - "fscr": "๐’ป", - "Fscr": "โ„ฑ", - "gacute": "วต", - "Gamma": "ฮ“", - "gamma": "ฮณ", - "Gammad": "ฯœ", - "gammad": "ฯ", - "gap": "โช†", - "Gbreve": "ฤž", - "gbreve": "ฤŸ", - "Gcedil": "ฤข", - "Gcirc": "ฤœ", - "gcirc": "ฤ", - "Gcy": "ะ“", - "gcy": "ะณ", - "Gdot": "ฤ ", - "gdot": "ฤก", - "ge": "โ‰ฅ", - "gE": "โ‰ง", - "gEl": "โชŒ", - "gel": "โ‹›", - "geq": "โ‰ฅ", - "geqq": "โ‰ง", - "geqslant": "โฉพ", - "gescc": "โชฉ", - "ges": "โฉพ", - "gesdot": "โช€", - "gesdoto": "โช‚", - "gesdotol": "โช„", - "gesl": "โ‹›๏ธ€", - "gesles": "โช”", - "Gfr": "๐”Š", - "gfr": "๐”ค", - "gg": "โ‰ซ", - "Gg": "โ‹™", - "ggg": "โ‹™", - "gimel": "โ„ท", - "GJcy": "ะƒ", - "gjcy": "ั“", - "gla": "โชฅ", - "gl": "โ‰ท", - "glE": "โช’", - "glj": "โชค", - "gnap": "โชŠ", - "gnapprox": "โชŠ", - "gne": "โชˆ", - "gnE": "โ‰ฉ", - "gneq": "โชˆ", - "gneqq": "โ‰ฉ", - "gnsim": "โ‹ง", - "Gopf": "๐”พ", - "gopf": "๐•˜", - "grave": "`", - "GreaterEqual": "โ‰ฅ", - "GreaterEqualLess": "โ‹›", - "GreaterFullEqual": "โ‰ง", - "GreaterGreater": "โชข", - "GreaterLess": "โ‰ท", - "GreaterSlantEqual": "โฉพ", - "GreaterTilde": "โ‰ณ", - "Gscr": "๐’ข", - "gscr": "โ„Š", - "gsim": "โ‰ณ", - "gsime": "โชŽ", - "gsiml": "โช", - "gtcc": "โชง", - "gtcir": "โฉบ", - "gt": ">", - "GT": ">", - "Gt": "โ‰ซ", - "gtdot": "โ‹—", - "gtlPar": "โฆ•", - "gtquest": "โฉผ", - "gtrapprox": "โช†", - "gtrarr": "โฅธ", - "gtrdot": "โ‹—", - "gtreqless": "โ‹›", - "gtreqqless": "โชŒ", - "gtrless": "โ‰ท", - "gtrsim": "โ‰ณ", - "gvertneqq": "โ‰ฉ๏ธ€", - "gvnE": "โ‰ฉ๏ธ€", - "Hacek": "ห‡", - "hairsp": "โ€Š", - "half": "ยฝ", - "hamilt": "โ„‹", - "HARDcy": "ะช", - "hardcy": "ัŠ", - "harrcir": "โฅˆ", - "harr": "โ†”", - "hArr": "โ‡”", - "harrw": "โ†ญ", - "Hat": "^", - "hbar": "โ„", - "Hcirc": "ฤค", - "hcirc": "ฤฅ", - "hearts": "โ™ฅ", - "heartsuit": "โ™ฅ", - "hellip": "โ€ฆ", - "hercon": "โŠน", - "hfr": "๐”ฅ", - "Hfr": "โ„Œ", - "HilbertSpace": "โ„‹", - "hksearow": "โคฅ", - "hkswarow": "โคฆ", - "hoarr": "โ‡ฟ", - "homtht": "โˆป", - "hookleftarrow": "โ†ฉ", - "hookrightarrow": "โ†ช", - "hopf": "๐•™", - "Hopf": "โ„", - "horbar": "โ€•", - "HorizontalLine": "โ”€", - "hscr": "๐’ฝ", - "Hscr": "โ„‹", - "hslash": "โ„", - "Hstrok": "ฤฆ", - "hstrok": "ฤง", - "HumpDownHump": "โ‰Ž", - "HumpEqual": "โ‰", - "hybull": "โƒ", - "hyphen": "โ€", - "Iacute": "ร", - "iacute": "รญ", - "ic": "โฃ", - "Icirc": "รŽ", - "icirc": "รฎ", - "Icy": "ะ˜", - "icy": "ะธ", - "Idot": "ฤฐ", - "IEcy": "ะ•", - "iecy": "ะต", - "iexcl": "ยก", - "iff": "โ‡”", - "ifr": "๐”ฆ", - "Ifr": "โ„‘", - "Igrave": "รŒ", - "igrave": "รฌ", - "ii": "โ…ˆ", - "iiiint": "โจŒ", - "iiint": "โˆญ", - "iinfin": "โงœ", - "iiota": "โ„ฉ", - "IJlig": "ฤฒ", - "ijlig": "ฤณ", - "Imacr": "ฤช", - "imacr": "ฤซ", - "image": "โ„‘", - "ImaginaryI": "โ…ˆ", - "imagline": "โ„", - "imagpart": "โ„‘", - "imath": "ฤฑ", - "Im": "โ„‘", - "imof": "โŠท", - "imped": "ฦต", - "Implies": "โ‡’", - "incare": "โ„…", - "in": "โˆˆ", - "infin": "โˆž", - "infintie": "โง", - "inodot": "ฤฑ", - "intcal": "โŠบ", - "int": "โˆซ", - "Int": "โˆฌ", - "integers": "โ„ค", - "Integral": "โˆซ", - "intercal": "โŠบ", - "Intersection": "โ‹‚", - "intlarhk": "โจ—", - "intprod": "โจผ", - "InvisibleComma": "โฃ", - "InvisibleTimes": "โข", - "IOcy": "ะ", - "iocy": "ั‘", - "Iogon": "ฤฎ", - "iogon": "ฤฏ", - "Iopf": "๐•€", - "iopf": "๐•š", - "Iota": "ฮ™", - "iota": "ฮน", - "iprod": "โจผ", - "iquest": "ยฟ", - "iscr": "๐’พ", - "Iscr": "โ„", - "isin": "โˆˆ", - "isindot": "โ‹ต", - "isinE": "โ‹น", - "isins": "โ‹ด", - "isinsv": "โ‹ณ", - "isinv": "โˆˆ", - "it": "โข", - "Itilde": "ฤจ", - "itilde": "ฤฉ", - "Iukcy": "ะ†", - "iukcy": "ั–", - "Iuml": "ร", - "iuml": "รฏ", - "Jcirc": "ฤด", - "jcirc": "ฤต", - "Jcy": "ะ™", - "jcy": "ะน", - "Jfr": "๐”", - "jfr": "๐”ง", - "jmath": "ศท", - "Jopf": "๐•", - "jopf": "๐•›", - "Jscr": "๐’ฅ", - "jscr": "๐’ฟ", - "Jsercy": "ะˆ", - "jsercy": "ั˜", - "Jukcy": "ะ„", - "jukcy": "ั”", - "Kappa": "ฮš", - "kappa": "ฮบ", - "kappav": "ฯฐ", - "Kcedil": "ฤถ", - "kcedil": "ฤท", - "Kcy": "ะš", - "kcy": "ะบ", - "Kfr": "๐”Ž", - "kfr": "๐”จ", - "kgreen": "ฤธ", - "KHcy": "ะฅ", - "khcy": "ั…", - "KJcy": "ะŒ", - "kjcy": "ัœ", - "Kopf": "๐•‚", - "kopf": "๐•œ", - "Kscr": "๐’ฆ", - "kscr": "๐“€", - "lAarr": "โ‡š", - "Lacute": "ฤน", - "lacute": "ฤบ", - "laemptyv": "โฆด", - "lagran": "โ„’", - "Lambda": "ฮ›", - "lambda": "ฮป", - "lang": "โŸจ", - "Lang": "โŸช", - "langd": "โฆ‘", - "langle": "โŸจ", - "lap": "โช…", - "Laplacetrf": "โ„’", - "laquo": "ยซ", - "larrb": "โ‡ค", - "larrbfs": "โคŸ", - "larr": "โ†", - "Larr": "โ†ž", - "lArr": "โ‡", - "larrfs": "โค", - "larrhk": "โ†ฉ", - "larrlp": "โ†ซ", - "larrpl": "โคน", - "larrsim": "โฅณ", - "larrtl": "โ†ข", - "latail": "โค™", - "lAtail": "โค›", - "lat": "โชซ", - "late": "โชญ", - "lates": "โชญ๏ธ€", - "lbarr": "โคŒ", - "lBarr": "โคŽ", - "lbbrk": "โฒ", - "lbrace": "{", - "lbrack": "[", - "lbrke": "โฆ‹", - "lbrksld": "โฆ", - "lbrkslu": "โฆ", - "Lcaron": "ฤฝ", - "lcaron": "ฤพ", - "Lcedil": "ฤป", - "lcedil": "ฤผ", - "lceil": "โŒˆ", - "lcub": "{", - "Lcy": "ะ›", - "lcy": "ะป", - "ldca": "โคถ", - "ldquo": "โ€œ", - "ldquor": "โ€ž", - "ldrdhar": "โฅง", - "ldrushar": "โฅ‹", - "ldsh": "โ†ฒ", - "le": "โ‰ค", - "lE": "โ‰ฆ", - "LeftAngleBracket": "โŸจ", - "LeftArrowBar": "โ‡ค", - "leftarrow": "โ†", - "LeftArrow": "โ†", - "Leftarrow": "โ‡", - "LeftArrowRightArrow": "โ‡†", - "leftarrowtail": "โ†ข", - "LeftCeiling": "โŒˆ", - "LeftDoubleBracket": "โŸฆ", - "LeftDownTeeVector": "โฅก", - "LeftDownVectorBar": "โฅ™", - "LeftDownVector": "โ‡ƒ", - "LeftFloor": "โŒŠ", - "leftharpoondown": "โ†ฝ", - "leftharpoonup": "โ†ผ", - "leftleftarrows": "โ‡‡", - "leftrightarrow": "โ†”", - "LeftRightArrow": "โ†”", - "Leftrightarrow": "โ‡”", - "leftrightarrows": "โ‡†", - "leftrightharpoons": "โ‡‹", - "leftrightsquigarrow": "โ†ญ", - "LeftRightVector": "โฅŽ", - "LeftTeeArrow": "โ†ค", - "LeftTee": "โŠฃ", - "LeftTeeVector": "โฅš", - "leftthreetimes": "โ‹‹", - "LeftTriangleBar": "โง", - "LeftTriangle": "โŠฒ", - "LeftTriangleEqual": "โŠด", - "LeftUpDownVector": "โฅ‘", - "LeftUpTeeVector": "โฅ ", - "LeftUpVectorBar": "โฅ˜", - "LeftUpVector": "โ†ฟ", - "LeftVectorBar": "โฅ’", - "LeftVector": "โ†ผ", - "lEg": "โช‹", - "leg": "โ‹š", - "leq": "โ‰ค", - "leqq": "โ‰ฆ", - "leqslant": "โฉฝ", - "lescc": "โชจ", - "les": "โฉฝ", - "lesdot": "โฉฟ", - "lesdoto": "โช", - "lesdotor": "โชƒ", - "lesg": "โ‹š๏ธ€", - "lesges": "โช“", - "lessapprox": "โช…", - "lessdot": "โ‹–", - "lesseqgtr": "โ‹š", - "lesseqqgtr": "โช‹", - "LessEqualGreater": "โ‹š", - "LessFullEqual": "โ‰ฆ", - "LessGreater": "โ‰ถ", - "lessgtr": "โ‰ถ", - "LessLess": "โชก", - "lesssim": "โ‰ฒ", - "LessSlantEqual": "โฉฝ", - "LessTilde": "โ‰ฒ", - "lfisht": "โฅผ", - "lfloor": "โŒŠ", - "Lfr": "๐”", - "lfr": "๐”ฉ", - "lg": "โ‰ถ", - "lgE": "โช‘", - "lHar": "โฅข", - "lhard": "โ†ฝ", - "lharu": "โ†ผ", - "lharul": "โฅช", - "lhblk": "โ–„", - "LJcy": "ะ‰", - "ljcy": "ั™", - "llarr": "โ‡‡", - "ll": "โ‰ช", - "Ll": "โ‹˜", - "llcorner": "โŒž", - "Lleftarrow": "โ‡š", - "llhard": "โฅซ", - "lltri": "โ—บ", - "Lmidot": "ฤฟ", - "lmidot": "ล€", - "lmoustache": "โŽฐ", - "lmoust": "โŽฐ", - "lnap": "โช‰", - "lnapprox": "โช‰", - "lne": "โช‡", - "lnE": "โ‰จ", - "lneq": "โช‡", - "lneqq": "โ‰จ", - "lnsim": "โ‹ฆ", - "loang": "โŸฌ", - "loarr": "โ‡ฝ", - "lobrk": "โŸฆ", - "longleftarrow": "โŸต", - "LongLeftArrow": "โŸต", - "Longleftarrow": "โŸธ", - "longleftrightarrow": "โŸท", - "LongLeftRightArrow": "โŸท", - "Longleftrightarrow": "โŸบ", - "longmapsto": "โŸผ", - "longrightarrow": "โŸถ", - "LongRightArrow": "โŸถ", - "Longrightarrow": "โŸน", - "looparrowleft": "โ†ซ", - "looparrowright": "โ†ฌ", - "lopar": "โฆ…", - "Lopf": "๐•ƒ", - "lopf": "๐•", - "loplus": "โจญ", - "lotimes": "โจด", - "lowast": "โˆ—", - "lowbar": "_", - "LowerLeftArrow": "โ†™", - "LowerRightArrow": "โ†˜", - "loz": "โ—Š", - "lozenge": "โ—Š", - "lozf": "โงซ", - "lpar": "(", - "lparlt": "โฆ“", - "lrarr": "โ‡†", - "lrcorner": "โŒŸ", - "lrhar": "โ‡‹", - "lrhard": "โฅญ", - "lrm": "โ€Ž", - "lrtri": "โŠฟ", - "lsaquo": "โ€น", - "lscr": "๐“", - "Lscr": "โ„’", - "lsh": "โ†ฐ", - "Lsh": "โ†ฐ", - "lsim": "โ‰ฒ", - "lsime": "โช", - "lsimg": "โช", - "lsqb": "[", - "lsquo": "โ€˜", - "lsquor": "โ€š", - "Lstrok": "ล", - "lstrok": "ล‚", - "ltcc": "โชฆ", - "ltcir": "โฉน", - "lt": "<", - "LT": "<", - "Lt": "โ‰ช", - "ltdot": "โ‹–", - "lthree": "โ‹‹", - "ltimes": "โ‹‰", - "ltlarr": "โฅถ", - "ltquest": "โฉป", - "ltri": "โ—ƒ", - "ltrie": "โŠด", - "ltrif": "โ—‚", - "ltrPar": "โฆ–", - "lurdshar": "โฅŠ", - "luruhar": "โฅฆ", - "lvertneqq": "โ‰จ๏ธ€", - "lvnE": "โ‰จ๏ธ€", - "macr": "ยฏ", - "male": "โ™‚", - "malt": "โœ ", - "maltese": "โœ ", - "Map": "โค…", - "map": "โ†ฆ", - "mapsto": "โ†ฆ", - "mapstodown": "โ†ง", - "mapstoleft": "โ†ค", - "mapstoup": "โ†ฅ", - "marker": "โ–ฎ", - "mcomma": "โจฉ", - "Mcy": "ะœ", - "mcy": "ะผ", - "mdash": "โ€”", - "mDDot": "โˆบ", - "measuredangle": "โˆก", - "MediumSpace": "โŸ", - "Mellintrf": "โ„ณ", - "Mfr": "๐”", - "mfr": "๐”ช", - "mho": "โ„ง", - "micro": "ยต", - "midast": "*", - "midcir": "โซฐ", - "mid": "โˆฃ", - "middot": "ยท", - "minusb": "โŠŸ", - "minus": "โˆ’", - "minusd": "โˆธ", - "minusdu": "โจช", - "MinusPlus": "โˆ“", - "mlcp": "โซ›", - "mldr": "โ€ฆ", - "mnplus": "โˆ“", - "models": "โŠง", - "Mopf": "๐•„", - "mopf": "๐•ž", - "mp": "โˆ“", - "mscr": "๐“‚", - "Mscr": "โ„ณ", - "mstpos": "โˆพ", - "Mu": "ฮœ", - "mu": "ฮผ", - "multimap": "โŠธ", - "mumap": "โŠธ", - "nabla": "โˆ‡", - "Nacute": "ลƒ", - "nacute": "ล„", - "nang": "โˆ โƒ’", - "nap": "โ‰‰", - "napE": "โฉฐฬธ", - "napid": "โ‰‹ฬธ", - "napos": "ล‰", - "napprox": "โ‰‰", - "natural": "โ™ฎ", - "naturals": "โ„•", - "natur": "โ™ฎ", - "nbsp": "ย ", - "nbump": "โ‰Žฬธ", - "nbumpe": "โ‰ฬธ", - "ncap": "โฉƒ", - "Ncaron": "ล‡", - "ncaron": "ลˆ", - "Ncedil": "ล…", - "ncedil": "ล†", - "ncong": "โ‰‡", - "ncongdot": "โฉญฬธ", - "ncup": "โฉ‚", - "Ncy": "ะ", - "ncy": "ะฝ", - "ndash": "โ€“", - "nearhk": "โคค", - "nearr": "โ†—", - "neArr": "โ‡—", - "nearrow": "โ†—", - "ne": "โ‰ ", - "nedot": "โ‰ฬธ", - "NegativeMediumSpace": "โ€‹", - "NegativeThickSpace": "โ€‹", - "NegativeThinSpace": "โ€‹", - "NegativeVeryThinSpace": "โ€‹", - "nequiv": "โ‰ข", - "nesear": "โคจ", - "nesim": "โ‰‚ฬธ", - "NestedGreaterGreater": "โ‰ซ", - "NestedLessLess": "โ‰ช", - "NewLine": "\n", - "nexist": "โˆ„", - "nexists": "โˆ„", - "Nfr": "๐”‘", - "nfr": "๐”ซ", - "ngE": "โ‰งฬธ", - "nge": "โ‰ฑ", - "ngeq": "โ‰ฑ", - "ngeqq": "โ‰งฬธ", - "ngeqslant": "โฉพฬธ", - "nges": "โฉพฬธ", - "nGg": "โ‹™ฬธ", - "ngsim": "โ‰ต", - "nGt": "โ‰ซโƒ’", - "ngt": "โ‰ฏ", - "ngtr": "โ‰ฏ", - "nGtv": "โ‰ซฬธ", - "nharr": "โ†ฎ", - "nhArr": "โ‡Ž", - "nhpar": "โซฒ", - "ni": "โˆ‹", - "nis": "โ‹ผ", - "nisd": "โ‹บ", - "niv": "โˆ‹", - "NJcy": "ะŠ", - "njcy": "ัš", - "nlarr": "โ†š", - "nlArr": "โ‡", - "nldr": "โ€ฅ", - "nlE": "โ‰ฆฬธ", - "nle": "โ‰ฐ", - "nleftarrow": "โ†š", - "nLeftarrow": "โ‡", - "nleftrightarrow": "โ†ฎ", - "nLeftrightarrow": "โ‡Ž", - "nleq": "โ‰ฐ", - "nleqq": "โ‰ฆฬธ", - "nleqslant": "โฉฝฬธ", - "nles": "โฉฝฬธ", - "nless": "โ‰ฎ", - "nLl": "โ‹˜ฬธ", - "nlsim": "โ‰ด", - "nLt": "โ‰ชโƒ’", - "nlt": "โ‰ฎ", - "nltri": "โ‹ช", - "nltrie": "โ‹ฌ", - "nLtv": "โ‰ชฬธ", - "nmid": "โˆค", - "NoBreak": "โ ", - "NonBreakingSpace": "ย ", - "nopf": "๐•Ÿ", - "Nopf": "โ„•", - "Not": "โซฌ", - "not": "ยฌ", - "NotCongruent": "โ‰ข", - "NotCupCap": "โ‰ญ", - "NotDoubleVerticalBar": "โˆฆ", - "NotElement": "โˆ‰", - "NotEqual": "โ‰ ", - "NotEqualTilde": "โ‰‚ฬธ", - "NotExists": "โˆ„", - "NotGreater": "โ‰ฏ", - "NotGreaterEqual": "โ‰ฑ", - "NotGreaterFullEqual": "โ‰งฬธ", - "NotGreaterGreater": "โ‰ซฬธ", - "NotGreaterLess": "โ‰น", - "NotGreaterSlantEqual": "โฉพฬธ", - "NotGreaterTilde": "โ‰ต", - "NotHumpDownHump": "โ‰Žฬธ", - "NotHumpEqual": "โ‰ฬธ", - "notin": "โˆ‰", - "notindot": "โ‹ตฬธ", - "notinE": "โ‹นฬธ", - "notinva": "โˆ‰", - "notinvb": "โ‹ท", - "notinvc": "โ‹ถ", - "NotLeftTriangleBar": "โงฬธ", - "NotLeftTriangle": "โ‹ช", - "NotLeftTriangleEqual": "โ‹ฌ", - "NotLess": "โ‰ฎ", - "NotLessEqual": "โ‰ฐ", - "NotLessGreater": "โ‰ธ", - "NotLessLess": "โ‰ชฬธ", - "NotLessSlantEqual": "โฉฝฬธ", - "NotLessTilde": "โ‰ด", - "NotNestedGreaterGreater": "โชขฬธ", - "NotNestedLessLess": "โชกฬธ", - "notni": "โˆŒ", - "notniva": "โˆŒ", - "notnivb": "โ‹พ", - "notnivc": "โ‹ฝ", - "NotPrecedes": "โŠ€", - "NotPrecedesEqual": "โชฏฬธ", - "NotPrecedesSlantEqual": "โ‹ ", - "NotReverseElement": "โˆŒ", - "NotRightTriangleBar": "โงฬธ", - "NotRightTriangle": "โ‹ซ", - "NotRightTriangleEqual": "โ‹ญ", - "NotSquareSubset": "โŠฬธ", - "NotSquareSubsetEqual": "โ‹ข", - "NotSquareSuperset": "โАฬธ", - "NotSquareSupersetEqual": "โ‹ฃ", - "NotSubset": "โŠ‚โƒ’", - "NotSubsetEqual": "โŠˆ", - "NotSucceeds": "โЁ", - "NotSucceedsEqual": "โชฐฬธ", - "NotSucceedsSlantEqual": "โ‹ก", - "NotSucceedsTilde": "โ‰ฟฬธ", - "NotSuperset": "โŠƒโƒ’", - "NotSupersetEqual": "โЉ", - "NotTilde": "โ‰", - "NotTildeEqual": "โ‰„", - "NotTildeFullEqual": "โ‰‡", - "NotTildeTilde": "โ‰‰", - "NotVerticalBar": "โˆค", - "nparallel": "โˆฆ", - "npar": "โˆฆ", - "nparsl": "โซฝโƒฅ", - "npart": "โˆ‚ฬธ", - "npolint": "โจ”", - "npr": "โŠ€", - "nprcue": "โ‹ ", - "nprec": "โŠ€", - "npreceq": "โชฏฬธ", - "npre": "โชฏฬธ", - "nrarrc": "โคณฬธ", - "nrarr": "โ†›", - "nrArr": "โ‡", - "nrarrw": "โ†ฬธ", - "nrightarrow": "โ†›", - "nRightarrow": "โ‡", - "nrtri": "โ‹ซ", - "nrtrie": "โ‹ญ", - "nsc": "โЁ", - "nsccue": "โ‹ก", - "nsce": "โชฐฬธ", - "Nscr": "๐’ฉ", - "nscr": "๐“ƒ", - "nshortmid": "โˆค", - "nshortparallel": "โˆฆ", - "nsim": "โ‰", - "nsime": "โ‰„", - "nsimeq": "โ‰„", - "nsmid": "โˆค", - "nspar": "โˆฆ", - "nsqsube": "โ‹ข", - "nsqsupe": "โ‹ฃ", - "nsub": "โŠ„", - "nsubE": "โซ…ฬธ", - "nsube": "โŠˆ", - "nsubset": "โŠ‚โƒ’", - "nsubseteq": "โŠˆ", - "nsubseteqq": "โซ…ฬธ", - "nsucc": "โЁ", - "nsucceq": "โชฐฬธ", - "nsup": "โŠ…", - "nsupE": "โซ†ฬธ", - "nsupe": "โЉ", - "nsupset": "โŠƒโƒ’", - "nsupseteq": "โЉ", - "nsupseteqq": "โซ†ฬธ", - "ntgl": "โ‰น", - "Ntilde": "ร‘", - "ntilde": "รฑ", - "ntlg": "โ‰ธ", - "ntriangleleft": "โ‹ช", - "ntrianglelefteq": "โ‹ฌ", - "ntriangleright": "โ‹ซ", - "ntrianglerighteq": "โ‹ญ", - "Nu": "ฮ", - "nu": "ฮฝ", - "num": "#", - "numero": "โ„–", - "numsp": "โ€‡", - "nvap": "โ‰โƒ’", - "nvdash": "โŠฌ", - "nvDash": "โŠญ", - "nVdash": "โŠฎ", - "nVDash": "โŠฏ", - "nvge": "โ‰ฅโƒ’", - "nvgt": ">โƒ’", - "nvHarr": "โค„", - "nvinfin": "โงž", - "nvlArr": "โค‚", - "nvle": "โ‰คโƒ’", - "nvlt": "<โƒ’", - "nvltrie": "โŠดโƒ’", - "nvrArr": "โคƒ", - "nvrtrie": "โŠตโƒ’", - "nvsim": "โˆผโƒ’", - "nwarhk": "โคฃ", - "nwarr": "โ†–", - "nwArr": "โ‡–", - "nwarrow": "โ†–", - "nwnear": "โคง", - "Oacute": "ร“", - "oacute": "รณ", - "oast": "โŠ›", - "Ocirc": "ร”", - "ocirc": "รด", - "ocir": "โŠš", - "Ocy": "ะž", - "ocy": "ะพ", - "odash": "โŠ", - "Odblac": "ล", - "odblac": "ล‘", - "odiv": "โจธ", - "odot": "โŠ™", - "odsold": "โฆผ", - "OElig": "ล’", - "oelig": "ล“", - "ofcir": "โฆฟ", - "Ofr": "๐”’", - "ofr": "๐”ฌ", - "ogon": "ห›", - "Ograve": "ร’", - "ograve": "รฒ", - "ogt": "โง", - "ohbar": "โฆต", - "ohm": "ฮฉ", - "oint": "โˆฎ", - "olarr": "โ†บ", - "olcir": "โฆพ", - "olcross": "โฆป", - "oline": "โ€พ", - "olt": "โง€", - "Omacr": "ลŒ", - "omacr": "ล", - "Omega": "ฮฉ", - "omega": "ฯ‰", - "Omicron": "ฮŸ", - "omicron": "ฮฟ", - "omid": "โฆถ", - "ominus": "โŠ–", - "Oopf": "๐•†", - "oopf": "๐• ", - "opar": "โฆท", - "OpenCurlyDoubleQuote": "โ€œ", - "OpenCurlyQuote": "โ€˜", - "operp": "โฆน", - "oplus": "โŠ•", - "orarr": "โ†ป", - "Or": "โฉ”", - "or": "โˆจ", - "ord": "โฉ", - "order": "โ„ด", - "orderof": "โ„ด", - "ordf": "ยช", - "ordm": "ยบ", - "origof": "โŠถ", - "oror": "โฉ–", - "orslope": "โฉ—", - "orv": "โฉ›", - "oS": "โ“ˆ", - "Oscr": "๐’ช", - "oscr": "โ„ด", - "Oslash": "ร˜", - "oslash": "รธ", - "osol": "โŠ˜", - "Otilde": "ร•", - "otilde": "รต", - "otimesas": "โจถ", - "Otimes": "โจท", - "otimes": "โŠ—", - "Ouml": "ร–", - "ouml": "รถ", - "ovbar": "โŒฝ", - "OverBar": "โ€พ", - "OverBrace": "โž", - "OverBracket": "โŽด", - "OverParenthesis": "โœ", - "para": "ยถ", - "parallel": "โˆฅ", - "par": "โˆฅ", - "parsim": "โซณ", - "parsl": "โซฝ", - "part": "โˆ‚", - "PartialD": "โˆ‚", - "Pcy": "ะŸ", - "pcy": "ะฟ", - "percnt": "%", - "period": ".", - "permil": "โ€ฐ", - "perp": "โŠฅ", - "pertenk": "โ€ฑ", - "Pfr": "๐”“", - "pfr": "๐”ญ", - "Phi": "ฮฆ", - "phi": "ฯ†", - "phiv": "ฯ•", - "phmmat": "โ„ณ", - "phone": "โ˜Ž", - "Pi": "ฮ ", - "pi": "ฯ€", - "pitchfork": "โ‹”", - "piv": "ฯ–", - "planck": "โ„", - "planckh": "โ„Ž", - "plankv": "โ„", - "plusacir": "โจฃ", - "plusb": "โŠž", - "pluscir": "โจข", - "plus": "+", - "plusdo": "โˆ”", - "plusdu": "โจฅ", - "pluse": "โฉฒ", - "PlusMinus": "ยฑ", - "plusmn": "ยฑ", - "plussim": "โจฆ", - "plustwo": "โจง", - "pm": "ยฑ", - "Poincareplane": "โ„Œ", - "pointint": "โจ•", - "popf": "๐•ก", - "Popf": "โ„™", - "pound": "ยฃ", - "prap": "โชท", - "Pr": "โชป", - "pr": "โ‰บ", - "prcue": "โ‰ผ", - "precapprox": "โชท", - "prec": "โ‰บ", - "preccurlyeq": "โ‰ผ", - "Precedes": "โ‰บ", - "PrecedesEqual": "โชฏ", - "PrecedesSlantEqual": "โ‰ผ", - "PrecedesTilde": "โ‰พ", - "preceq": "โชฏ", - "precnapprox": "โชน", - "precneqq": "โชต", - "precnsim": "โ‹จ", - "pre": "โชฏ", - "prE": "โชณ", - "precsim": "โ‰พ", - "prime": "โ€ฒ", - "Prime": "โ€ณ", - "primes": "โ„™", - "prnap": "โชน", - "prnE": "โชต", - "prnsim": "โ‹จ", - "prod": "โˆ", - "Product": "โˆ", - "profalar": "โŒฎ", - "profline": "โŒ’", - "profsurf": "โŒ“", - "prop": "โˆ", - "Proportional": "โˆ", - "Proportion": "โˆท", - "propto": "โˆ", - "prsim": "โ‰พ", - "prurel": "โŠฐ", - "Pscr": "๐’ซ", - "pscr": "๐“…", - "Psi": "ฮจ", - "psi": "ฯˆ", - "puncsp": "โ€ˆ", - "Qfr": "๐””", - "qfr": "๐”ฎ", - "qint": "โจŒ", - "qopf": "๐•ข", - "Qopf": "โ„š", - "qprime": "โ—", - "Qscr": "๐’ฌ", - "qscr": "๐“†", - "quaternions": "โ„", - "quatint": "โจ–", - "quest": "?", - "questeq": "โ‰Ÿ", - "quot": "\"", - "QUOT": "\"", - "rAarr": "โ‡›", - "race": "โˆฝฬฑ", - "Racute": "ล”", - "racute": "ล•", - "radic": "โˆš", - "raemptyv": "โฆณ", - "rang": "โŸฉ", - "Rang": "โŸซ", - "rangd": "โฆ’", - "range": "โฆฅ", - "rangle": "โŸฉ", - "raquo": "ยป", - "rarrap": "โฅต", - "rarrb": "โ‡ฅ", - "rarrbfs": "โค ", - "rarrc": "โคณ", - "rarr": "โ†’", - "Rarr": "โ† ", - "rArr": "โ‡’", - "rarrfs": "โคž", - "rarrhk": "โ†ช", - "rarrlp": "โ†ฌ", - "rarrpl": "โฅ…", - "rarrsim": "โฅด", - "Rarrtl": "โค–", - "rarrtl": "โ†ฃ", - "rarrw": "โ†", - "ratail": "โคš", - "rAtail": "โคœ", - "ratio": "โˆถ", - "rationals": "โ„š", - "rbarr": "โค", - "rBarr": "โค", - "RBarr": "โค", - "rbbrk": "โณ", - "rbrace": "}", - "rbrack": "]", - "rbrke": "โฆŒ", - "rbrksld": "โฆŽ", - "rbrkslu": "โฆ", - "Rcaron": "ล˜", - "rcaron": "ล™", - "Rcedil": "ล–", - "rcedil": "ล—", - "rceil": "โŒ‰", - "rcub": "}", - "Rcy": "ะ ", - "rcy": "ั€", - "rdca": "โคท", - "rdldhar": "โฅฉ", - "rdquo": "โ€", - "rdquor": "โ€", - "rdsh": "โ†ณ", - "real": "โ„œ", - "realine": "โ„›", - "realpart": "โ„œ", - "reals": "โ„", - "Re": "โ„œ", - "rect": "โ–ญ", - "reg": "ยฎ", - "REG": "ยฎ", - "ReverseElement": "โˆ‹", - "ReverseEquilibrium": "โ‡‹", - "ReverseUpEquilibrium": "โฅฏ", - "rfisht": "โฅฝ", - "rfloor": "โŒ‹", - "rfr": "๐”ฏ", - "Rfr": "โ„œ", - "rHar": "โฅค", - "rhard": "โ‡", - "rharu": "โ‡€", - "rharul": "โฅฌ", - "Rho": "ฮก", - "rho": "ฯ", - "rhov": "ฯฑ", - "RightAngleBracket": "โŸฉ", - "RightArrowBar": "โ‡ฅ", - "rightarrow": "โ†’", - "RightArrow": "โ†’", - "Rightarrow": "โ‡’", - "RightArrowLeftArrow": "โ‡„", - "rightarrowtail": "โ†ฃ", - "RightCeiling": "โŒ‰", - "RightDoubleBracket": "โŸง", - "RightDownTeeVector": "โฅ", - "RightDownVectorBar": "โฅ•", - "RightDownVector": "โ‡‚", - "RightFloor": "โŒ‹", - "rightharpoondown": "โ‡", - "rightharpoonup": "โ‡€", - "rightleftarrows": "โ‡„", - "rightleftharpoons": "โ‡Œ", - "rightrightarrows": "โ‡‰", - "rightsquigarrow": "โ†", - "RightTeeArrow": "โ†ฆ", - "RightTee": "โŠข", - "RightTeeVector": "โฅ›", - "rightthreetimes": "โ‹Œ", - "RightTriangleBar": "โง", - "RightTriangle": "โŠณ", - "RightTriangleEqual": "โŠต", - "RightUpDownVector": "โฅ", - "RightUpTeeVector": "โฅœ", - "RightUpVectorBar": "โฅ”", - "RightUpVector": "โ†พ", - "RightVectorBar": "โฅ“", - "RightVector": "โ‡€", - "ring": "หš", - "risingdotseq": "โ‰“", - "rlarr": "โ‡„", - "rlhar": "โ‡Œ", - "rlm": "โ€", - "rmoustache": "โŽฑ", - "rmoust": "โŽฑ", - "rnmid": "โซฎ", - "roang": "โŸญ", - "roarr": "โ‡พ", - "robrk": "โŸง", - "ropar": "โฆ†", - "ropf": "๐•ฃ", - "Ropf": "โ„", - "roplus": "โจฎ", - "rotimes": "โจต", - "RoundImplies": "โฅฐ", - "rpar": ")", - "rpargt": "โฆ”", - "rppolint": "โจ’", - "rrarr": "โ‡‰", - "Rrightarrow": "โ‡›", - "rsaquo": "โ€บ", - "rscr": "๐“‡", - "Rscr": "โ„›", - "rsh": "โ†ฑ", - "Rsh": "โ†ฑ", - "rsqb": "]", - "rsquo": "โ€™", - "rsquor": "โ€™", - "rthree": "โ‹Œ", - "rtimes": "โ‹Š", - "rtri": "โ–น", - "rtrie": "โŠต", - "rtrif": "โ–ธ", - "rtriltri": "โงŽ", - "RuleDelayed": "โงด", - "ruluhar": "โฅจ", - "rx": "โ„ž", - "Sacute": "ลš", - "sacute": "ล›", - "sbquo": "โ€š", - "scap": "โชธ", - "Scaron": "ล ", - "scaron": "ลก", - "Sc": "โชผ", - "sc": "โ‰ป", - "sccue": "โ‰ฝ", - "sce": "โชฐ", - "scE": "โชด", - "Scedil": "ลž", - "scedil": "ลŸ", - "Scirc": "ลœ", - "scirc": "ล", - "scnap": "โชบ", - "scnE": "โชถ", - "scnsim": "โ‹ฉ", - "scpolint": "โจ“", - "scsim": "โ‰ฟ", - "Scy": "ะก", - "scy": "ั", - "sdotb": "โŠก", - "sdot": "โ‹…", - "sdote": "โฉฆ", - "searhk": "โคฅ", - "searr": "โ†˜", - "seArr": "โ‡˜", - "searrow": "โ†˜", - "sect": "ยง", - "semi": ";", - "seswar": "โคฉ", - "setminus": "โˆ–", - "setmn": "โˆ–", - "sext": "โœถ", - "Sfr": "๐”–", - "sfr": "๐”ฐ", - "sfrown": "โŒข", - "sharp": "โ™ฏ", - "SHCHcy": "ะฉ", - "shchcy": "ั‰", - "SHcy": "ะจ", - "shcy": "ัˆ", - "ShortDownArrow": "โ†“", - "ShortLeftArrow": "โ†", - "shortmid": "โˆฃ", - "shortparallel": "โˆฅ", - "ShortRightArrow": "โ†’", - "ShortUpArrow": "โ†‘", - "shy": "ยญ", - "Sigma": "ฮฃ", - "sigma": "ฯƒ", - "sigmaf": "ฯ‚", - "sigmav": "ฯ‚", - "sim": "โˆผ", - "simdot": "โฉช", - "sime": "โ‰ƒ", - "simeq": "โ‰ƒ", - "simg": "โชž", - "simgE": "โช ", - "siml": "โช", - "simlE": "โชŸ", - "simne": "โ‰†", - "simplus": "โจค", - "simrarr": "โฅฒ", - "slarr": "โ†", - "SmallCircle": "โˆ˜", - "smallsetminus": "โˆ–", - "smashp": "โจณ", - "smeparsl": "โงค", - "smid": "โˆฃ", - "smile": "โŒฃ", - "smt": "โชช", - "smte": "โชฌ", - "smtes": "โชฌ๏ธ€", - "SOFTcy": "ะฌ", - "softcy": "ัŒ", - "solbar": "โŒฟ", - "solb": "โง„", - "sol": "/", - "Sopf": "๐•Š", - "sopf": "๐•ค", - "spades": "โ™ ", - "spadesuit": "โ™ ", - "spar": "โˆฅ", - "sqcap": "โŠ“", - "sqcaps": "โŠ“๏ธ€", - "sqcup": "โŠ”", - "sqcups": "โŠ”๏ธ€", - "Sqrt": "โˆš", - "sqsub": "โŠ", - "sqsube": "โŠ‘", - "sqsubset": "โŠ", - "sqsubseteq": "โŠ‘", - "sqsup": "โА", - "sqsupe": "โŠ’", - "sqsupset": "โА", - "sqsupseteq": "โŠ’", - "square": "โ–ก", - "Square": "โ–ก", - "SquareIntersection": "โŠ“", - "SquareSubset": "โŠ", - "SquareSubsetEqual": "โŠ‘", - "SquareSuperset": "โА", - "SquareSupersetEqual": "โŠ’", - "SquareUnion": "โŠ”", - "squarf": "โ–ช", - "squ": "โ–ก", - "squf": "โ–ช", - "srarr": "โ†’", - "Sscr": "๐’ฎ", - "sscr": "๐“ˆ", - "ssetmn": "โˆ–", - "ssmile": "โŒฃ", - "sstarf": "โ‹†", - "Star": "โ‹†", - "star": "โ˜†", - "starf": "โ˜…", - "straightepsilon": "ฯต", - "straightphi": "ฯ•", - "strns": "ยฏ", - "sub": "โŠ‚", - "Sub": "โ‹", - "subdot": "โชฝ", - "subE": "โซ…", - "sube": "โІ", - "subedot": "โซƒ", - "submult": "โซ", - "subnE": "โซ‹", - "subne": "โŠŠ", - "subplus": "โชฟ", - "subrarr": "โฅน", - "subset": "โŠ‚", - "Subset": "โ‹", - "subseteq": "โІ", - "subseteqq": "โซ…", - "SubsetEqual": "โІ", - "subsetneq": "โŠŠ", - "subsetneqq": "โซ‹", - "subsim": "โซ‡", - "subsub": "โซ•", - "subsup": "โซ“", - "succapprox": "โชธ", - "succ": "โ‰ป", - "succcurlyeq": "โ‰ฝ", - "Succeeds": "โ‰ป", - "SucceedsEqual": "โชฐ", - "SucceedsSlantEqual": "โ‰ฝ", - "SucceedsTilde": "โ‰ฟ", - "succeq": "โชฐ", - "succnapprox": "โชบ", - "succneqq": "โชถ", - "succnsim": "โ‹ฉ", - "succsim": "โ‰ฟ", - "SuchThat": "โˆ‹", - "sum": "โˆ‘", - "Sum": "โˆ‘", - "sung": "โ™ช", - "sup1": "ยน", - "sup2": "ยฒ", - "sup3": "ยณ", - "sup": "โŠƒ", - "Sup": "โ‹‘", - "supdot": "โชพ", - "supdsub": "โซ˜", - "supE": "โซ†", - "supe": "โЇ", - "supedot": "โซ„", - "Superset": "โŠƒ", - "SupersetEqual": "โЇ", - "suphsol": "โŸ‰", - "suphsub": "โซ—", - "suplarr": "โฅป", - "supmult": "โซ‚", - "supnE": "โซŒ", - "supne": "โŠ‹", - "supplus": "โซ€", - "supset": "โŠƒ", - "Supset": "โ‹‘", - "supseteq": "โЇ", - "supseteqq": "โซ†", - "supsetneq": "โŠ‹", - "supsetneqq": "โซŒ", - "supsim": "โซˆ", - "supsub": "โซ”", - "supsup": "โซ–", - "swarhk": "โคฆ", - "swarr": "โ†™", - "swArr": "โ‡™", - "swarrow": "โ†™", - "swnwar": "โคช", - "szlig": "รŸ", - "Tab": "\t", - "target": "โŒ–", - "Tau": "ฮค", - "tau": "ฯ„", - "tbrk": "โŽด", - "Tcaron": "ลค", - "tcaron": "ลฅ", - "Tcedil": "ลข", - "tcedil": "ลฃ", - "Tcy": "ะข", - "tcy": "ั‚", - "tdot": "โƒ›", - "telrec": "โŒ•", - "Tfr": "๐”—", - "tfr": "๐”ฑ", - "there4": "โˆด", - "therefore": "โˆด", - "Therefore": "โˆด", - "Theta": "ฮ˜", - "theta": "ฮธ", - "thetasym": "ฯ‘", - "thetav": "ฯ‘", - "thickapprox": "โ‰ˆ", - "thicksim": "โˆผ", - "ThickSpace": "โŸโ€Š", - "ThinSpace": "โ€‰", - "thinsp": "โ€‰", - "thkap": "โ‰ˆ", - "thksim": "โˆผ", - "THORN": "รž", - "thorn": "รพ", - "tilde": "หœ", - "Tilde": "โˆผ", - "TildeEqual": "โ‰ƒ", - "TildeFullEqual": "โ‰…", - "TildeTilde": "โ‰ˆ", - "timesbar": "โจฑ", - "timesb": "โŠ ", - "times": "ร—", - "timesd": "โจฐ", - "tint": "โˆญ", - "toea": "โคจ", - "topbot": "โŒถ", - "topcir": "โซฑ", - "top": "โŠค", - "Topf": "๐•‹", - "topf": "๐•ฅ", - "topfork": "โซš", - "tosa": "โคฉ", - "tprime": "โ€ด", - "trade": "โ„ข", - "TRADE": "โ„ข", - "triangle": "โ–ต", - "triangledown": "โ–ฟ", - "triangleleft": "โ—ƒ", - "trianglelefteq": "โŠด", - "triangleq": "โ‰œ", - "triangleright": "โ–น", - "trianglerighteq": "โŠต", - "tridot": "โ—ฌ", - "trie": "โ‰œ", - "triminus": "โจบ", - "TripleDot": "โƒ›", - "triplus": "โจน", - "trisb": "โง", - "tritime": "โจป", - "trpezium": "โข", - "Tscr": "๐’ฏ", - "tscr": "๐“‰", - "TScy": "ะฆ", - "tscy": "ั†", - "TSHcy": "ะ‹", - "tshcy": "ั›", - "Tstrok": "ลฆ", - "tstrok": "ลง", - "twixt": "โ‰ฌ", - "twoheadleftarrow": "โ†ž", - "twoheadrightarrow": "โ† ", - "Uacute": "รš", - "uacute": "รบ", - "uarr": "โ†‘", - "Uarr": "โ†Ÿ", - "uArr": "โ‡‘", - "Uarrocir": "โฅ‰", - "Ubrcy": "ะŽ", - "ubrcy": "ัž", - "Ubreve": "ลฌ", - "ubreve": "ลญ", - "Ucirc": "ร›", - "ucirc": "รป", - "Ucy": "ะฃ", - "ucy": "ัƒ", - "udarr": "โ‡…", - "Udblac": "ลฐ", - "udblac": "ลฑ", - "udhar": "โฅฎ", - "ufisht": "โฅพ", - "Ufr": "๐”˜", - "ufr": "๐”ฒ", - "Ugrave": "ร™", - "ugrave": "รน", - "uHar": "โฅฃ", - "uharl": "โ†ฟ", - "uharr": "โ†พ", - "uhblk": "โ–€", - "ulcorn": "โŒœ", - "ulcorner": "โŒœ", - "ulcrop": "โŒ", - "ultri": "โ—ธ", - "Umacr": "ลช", - "umacr": "ลซ", - "uml": "ยจ", - "UnderBar": "_", - "UnderBrace": "โŸ", - "UnderBracket": "โŽต", - "UnderParenthesis": "โ", - "Union": "โ‹ƒ", - "UnionPlus": "โŠŽ", - "Uogon": "ลฒ", - "uogon": "ลณ", - "Uopf": "๐•Œ", - "uopf": "๐•ฆ", - "UpArrowBar": "โค’", - "uparrow": "โ†‘", - "UpArrow": "โ†‘", - "Uparrow": "โ‡‘", - "UpArrowDownArrow": "โ‡…", - "updownarrow": "โ†•", - "UpDownArrow": "โ†•", - "Updownarrow": "โ‡•", - "UpEquilibrium": "โฅฎ", - "upharpoonleft": "โ†ฟ", - "upharpoonright": "โ†พ", - "uplus": "โŠŽ", - "UpperLeftArrow": "โ†–", - "UpperRightArrow": "โ†—", - "upsi": "ฯ…", - "Upsi": "ฯ’", - "upsih": "ฯ’", - "Upsilon": "ฮฅ", - "upsilon": "ฯ…", - "UpTeeArrow": "โ†ฅ", - "UpTee": "โŠฅ", - "upuparrows": "โ‡ˆ", - "urcorn": "โŒ", - "urcorner": "โŒ", - "urcrop": "โŒŽ", - "Uring": "ลฎ", - "uring": "ลฏ", - "urtri": "โ—น", - "Uscr": "๐’ฐ", - "uscr": "๐“Š", - "utdot": "โ‹ฐ", - "Utilde": "ลจ", - "utilde": "ลฉ", - "utri": "โ–ต", - "utrif": "โ–ด", - "uuarr": "โ‡ˆ", - "Uuml": "รœ", - "uuml": "รผ", - "uwangle": "โฆง", - "vangrt": "โฆœ", - "varepsilon": "ฯต", - "varkappa": "ฯฐ", - "varnothing": "โˆ…", - "varphi": "ฯ•", - "varpi": "ฯ–", - "varpropto": "โˆ", - "varr": "โ†•", - "vArr": "โ‡•", - "varrho": "ฯฑ", - "varsigma": "ฯ‚", - "varsubsetneq": "โŠŠ๏ธ€", - "varsubsetneqq": "โซ‹๏ธ€", - "varsupsetneq": "โŠ‹๏ธ€", - "varsupsetneqq": "โซŒ๏ธ€", - "vartheta": "ฯ‘", - "vartriangleleft": "โŠฒ", - "vartriangleright": "โŠณ", - "vBar": "โซจ", - "Vbar": "โซซ", - "vBarv": "โซฉ", - "Vcy": "ะ’", - "vcy": "ะฒ", - "vdash": "โŠข", - "vDash": "โŠจ", - "Vdash": "โŠฉ", - "VDash": "โŠซ", - "Vdashl": "โซฆ", - "veebar": "โŠป", - "vee": "โˆจ", - "Vee": "โ‹", - "veeeq": "โ‰š", - "vellip": "โ‹ฎ", - "verbar": "|", - "Verbar": "โ€–", - "vert": "|", - "Vert": "โ€–", - "VerticalBar": "โˆฃ", - "VerticalLine": "|", - "VerticalSeparator": "โ˜", - "VerticalTilde": "โ‰€", - "VeryThinSpace": "โ€Š", - "Vfr": "๐”™", - "vfr": "๐”ณ", - "vltri": "โŠฒ", - "vnsub": "โŠ‚โƒ’", - "vnsup": "โŠƒโƒ’", - "Vopf": "๐•", - "vopf": "๐•ง", - "vprop": "โˆ", - "vrtri": "โŠณ", - "Vscr": "๐’ฑ", - "vscr": "๐“‹", - "vsubnE": "โซ‹๏ธ€", - "vsubne": "โŠŠ๏ธ€", - "vsupnE": "โซŒ๏ธ€", - "vsupne": "โŠ‹๏ธ€", - "Vvdash": "โŠช", - "vzigzag": "โฆš", - "Wcirc": "ลด", - "wcirc": "ลต", - "wedbar": "โฉŸ", - "wedge": "โˆง", - "Wedge": "โ‹€", - "wedgeq": "โ‰™", - "weierp": "โ„˜", - "Wfr": "๐”š", - "wfr": "๐”ด", - "Wopf": "๐•Ž", - "wopf": "๐•จ", - "wp": "โ„˜", - "wr": "โ‰€", - "wreath": "โ‰€", - "Wscr": "๐’ฒ", - "wscr": "๐“Œ", - "xcap": "โ‹‚", - "xcirc": "โ—ฏ", - "xcup": "โ‹ƒ", - "xdtri": "โ–ฝ", - "Xfr": "๐”›", - "xfr": "๐”ต", - "xharr": "โŸท", - "xhArr": "โŸบ", - "Xi": "ฮž", - "xi": "ฮพ", - "xlarr": "โŸต", - "xlArr": "โŸธ", - "xmap": "โŸผ", - "xnis": "โ‹ป", - "xodot": "โจ€", - "Xopf": "๐•", - "xopf": "๐•ฉ", - "xoplus": "โจ", - "xotime": "โจ‚", - "xrarr": "โŸถ", - "xrArr": "โŸน", - "Xscr": "๐’ณ", - "xscr": "๐“", - "xsqcup": "โจ†", - "xuplus": "โจ„", - "xutri": "โ–ณ", - "xvee": "โ‹", - "xwedge": "โ‹€", - "Yacute": "ร", - "yacute": "รฝ", - "YAcy": "ะฏ", - "yacy": "ั", - "Ycirc": "ลถ", - "ycirc": "ลท", - "Ycy": "ะซ", - "ycy": "ั‹", - "yen": "ยฅ", - "Yfr": "๐”œ", - "yfr": "๐”ถ", - "YIcy": "ะ‡", - "yicy": "ั—", - "Yopf": "๐•", - "yopf": "๐•ช", - "Yscr": "๐’ด", - "yscr": "๐“Ž", - "YUcy": "ะฎ", - "yucy": "ัŽ", - "yuml": "รฟ", - "Yuml": "ลธ", - "Zacute": "ลน", - "zacute": "ลบ", - "Zcaron": "ลฝ", - "zcaron": "ลพ", - "Zcy": "ะ—", - "zcy": "ะท", - "Zdot": "ลป", - "zdot": "ลผ", - "zeetrf": "โ„จ", - "ZeroWidthSpace": "โ€‹", - "Zeta": "ฮ–", - "zeta": "ฮถ", - "zfr": "๐”ท", - "Zfr": "โ„จ", - "ZHcy": "ะ–", - "zhcy": "ะถ", - "zigrarr": "โ‡", - "zopf": "๐•ซ", - "Zopf": "โ„ค", - "Zscr": "๐’ต", - "zscr": "๐“", - "zwj": "โ€", - "zwnj": "โ€Œ" -}; +module.exports = {"Aacute":"ร","aacute":"รก","Abreve":"ฤ‚","abreve":"ฤƒ","ac":"โˆพ","acd":"โˆฟ","acE":"โˆพฬณ","Acirc":"ร‚","acirc":"รข","acute":"ยด","Acy":"ะ","acy":"ะฐ","AElig":"ร†","aelig":"รฆ","af":"โก","Afr":"๐”„","afr":"๐”ž","Agrave":"ร€","agrave":"ร ","alefsym":"โ„ต","aleph":"โ„ต","Alpha":"ฮ‘","alpha":"ฮฑ","Amacr":"ฤ€","amacr":"ฤ","amalg":"โจฟ","amp":"&","AMP":"&","andand":"โฉ•","And":"โฉ“","and":"โˆง","andd":"โฉœ","andslope":"โฉ˜","andv":"โฉš","ang":"โˆ ","ange":"โฆค","angle":"โˆ ","angmsdaa":"โฆจ","angmsdab":"โฆฉ","angmsdac":"โฆช","angmsdad":"โฆซ","angmsdae":"โฆฌ","angmsdaf":"โฆญ","angmsdag":"โฆฎ","angmsdah":"โฆฏ","angmsd":"โˆก","angrt":"โˆŸ","angrtvb":"โŠพ","angrtvbd":"โฆ","angsph":"โˆข","angst":"ร…","angzarr":"โผ","Aogon":"ฤ„","aogon":"ฤ…","Aopf":"๐”ธ","aopf":"๐•’","apacir":"โฉฏ","ap":"โ‰ˆ","apE":"โฉฐ","ape":"โ‰Š","apid":"โ‰‹","apos":"'","ApplyFunction":"โก","approx":"โ‰ˆ","approxeq":"โ‰Š","Aring":"ร…","aring":"รฅ","Ascr":"๐’œ","ascr":"๐’ถ","Assign":"โ‰”","ast":"*","asymp":"โ‰ˆ","asympeq":"โ‰","Atilde":"รƒ","atilde":"รฃ","Auml":"ร„","auml":"รค","awconint":"โˆณ","awint":"โจ‘","backcong":"โ‰Œ","backepsilon":"ฯถ","backprime":"โ€ต","backsim":"โˆฝ","backsimeq":"โ‹","Backslash":"โˆ–","Barv":"โซง","barvee":"โŠฝ","barwed":"โŒ…","Barwed":"โŒ†","barwedge":"โŒ…","bbrk":"โŽต","bbrktbrk":"โŽถ","bcong":"โ‰Œ","Bcy":"ะ‘","bcy":"ะฑ","bdquo":"โ€ž","becaus":"โˆต","because":"โˆต","Because":"โˆต","bemptyv":"โฆฐ","bepsi":"ฯถ","bernou":"โ„ฌ","Bernoullis":"โ„ฌ","Beta":"ฮ’","beta":"ฮฒ","beth":"โ„ถ","between":"โ‰ฌ","Bfr":"๐”…","bfr":"๐”Ÿ","bigcap":"โ‹‚","bigcirc":"โ—ฏ","bigcup":"โ‹ƒ","bigodot":"โจ€","bigoplus":"โจ","bigotimes":"โจ‚","bigsqcup":"โจ†","bigstar":"โ˜…","bigtriangledown":"โ–ฝ","bigtriangleup":"โ–ณ","biguplus":"โจ„","bigvee":"โ‹","bigwedge":"โ‹€","bkarow":"โค","blacklozenge":"โงซ","blacksquare":"โ–ช","blacktriangle":"โ–ด","blacktriangledown":"โ–พ","blacktriangleleft":"โ—‚","blacktriangleright":"โ–ธ","blank":"โฃ","blk12":"โ–’","blk14":"โ–‘","blk34":"โ–“","block":"โ–ˆ","bne":"=โƒฅ","bnequiv":"โ‰กโƒฅ","bNot":"โซญ","bnot":"โŒ","Bopf":"๐”น","bopf":"๐•“","bot":"โŠฅ","bottom":"โŠฅ","bowtie":"โ‹ˆ","boxbox":"โง‰","boxdl":"โ”","boxdL":"โ••","boxDl":"โ•–","boxDL":"โ•—","boxdr":"โ”Œ","boxdR":"โ•’","boxDr":"โ•“","boxDR":"โ•”","boxh":"โ”€","boxH":"โ•","boxhd":"โ”ฌ","boxHd":"โ•ค","boxhD":"โ•ฅ","boxHD":"โ•ฆ","boxhu":"โ”ด","boxHu":"โ•ง","boxhU":"โ•จ","boxHU":"โ•ฉ","boxminus":"โŠŸ","boxplus":"โŠž","boxtimes":"โŠ ","boxul":"โ”˜","boxuL":"โ•›","boxUl":"โ•œ","boxUL":"โ•","boxur":"โ””","boxuR":"โ•˜","boxUr":"โ•™","boxUR":"โ•š","boxv":"โ”‚","boxV":"โ•‘","boxvh":"โ”ผ","boxvH":"โ•ช","boxVh":"โ•ซ","boxVH":"โ•ฌ","boxvl":"โ”ค","boxvL":"โ•ก","boxVl":"โ•ข","boxVL":"โ•ฃ","boxvr":"โ”œ","boxvR":"โ•ž","boxVr":"โ•Ÿ","boxVR":"โ• ","bprime":"โ€ต","breve":"ห˜","Breve":"ห˜","brvbar":"ยฆ","bscr":"๐’ท","Bscr":"โ„ฌ","bsemi":"โ","bsim":"โˆฝ","bsime":"โ‹","bsolb":"โง…","bsol":"\\","bsolhsub":"โŸˆ","bull":"โ€ข","bullet":"โ€ข","bump":"โ‰Ž","bumpE":"โชฎ","bumpe":"โ‰","Bumpeq":"โ‰Ž","bumpeq":"โ‰","Cacute":"ฤ†","cacute":"ฤ‡","capand":"โฉ„","capbrcup":"โฉ‰","capcap":"โฉ‹","cap":"โˆฉ","Cap":"โ‹’","capcup":"โฉ‡","capdot":"โฉ€","CapitalDifferentialD":"โ……","caps":"โˆฉ๏ธ€","caret":"โ","caron":"ห‡","Cayleys":"โ„ญ","ccaps":"โฉ","Ccaron":"ฤŒ","ccaron":"ฤ","Ccedil":"ร‡","ccedil":"รง","Ccirc":"ฤˆ","ccirc":"ฤ‰","Cconint":"โˆฐ","ccups":"โฉŒ","ccupssm":"โฉ","Cdot":"ฤŠ","cdot":"ฤ‹","cedil":"ยธ","Cedilla":"ยธ","cemptyv":"โฆฒ","cent":"ยข","centerdot":"ยท","CenterDot":"ยท","cfr":"๐” ","Cfr":"โ„ญ","CHcy":"ะง","chcy":"ั‡","check":"โœ“","checkmark":"โœ“","Chi":"ฮง","chi":"ฯ‡","circ":"ห†","circeq":"โ‰—","circlearrowleft":"โ†บ","circlearrowright":"โ†ป","circledast":"โŠ›","circledcirc":"โŠš","circleddash":"โŠ","CircleDot":"โŠ™","circledR":"ยฎ","circledS":"โ“ˆ","CircleMinus":"โŠ–","CirclePlus":"โŠ•","CircleTimes":"โŠ—","cir":"โ—‹","cirE":"โงƒ","cire":"โ‰—","cirfnint":"โจ","cirmid":"โซฏ","cirscir":"โง‚","ClockwiseContourIntegral":"โˆฒ","CloseCurlyDoubleQuote":"โ€","CloseCurlyQuote":"โ€™","clubs":"โ™ฃ","clubsuit":"โ™ฃ","colon":":","Colon":"โˆท","Colone":"โฉด","colone":"โ‰”","coloneq":"โ‰”","comma":",","commat":"@","comp":"โˆ","compfn":"โˆ˜","complement":"โˆ","complexes":"โ„‚","cong":"โ‰…","congdot":"โฉญ","Congruent":"โ‰ก","conint":"โˆฎ","Conint":"โˆฏ","ContourIntegral":"โˆฎ","copf":"๐•”","Copf":"โ„‚","coprod":"โˆ","Coproduct":"โˆ","copy":"ยฉ","COPY":"ยฉ","copysr":"โ„—","CounterClockwiseContourIntegral":"โˆณ","crarr":"โ†ต","cross":"โœ—","Cross":"โจฏ","Cscr":"๐’ž","cscr":"๐’ธ","csub":"โซ","csube":"โซ‘","csup":"โซ","csupe":"โซ’","ctdot":"โ‹ฏ","cudarrl":"โคธ","cudarrr":"โคต","cuepr":"โ‹ž","cuesc":"โ‹Ÿ","cularr":"โ†ถ","cularrp":"โคฝ","cupbrcap":"โฉˆ","cupcap":"โฉ†","CupCap":"โ‰","cup":"โˆช","Cup":"โ‹“","cupcup":"โฉŠ","cupdot":"โŠ","cupor":"โฉ…","cups":"โˆช๏ธ€","curarr":"โ†ท","curarrm":"โคผ","curlyeqprec":"โ‹ž","curlyeqsucc":"โ‹Ÿ","curlyvee":"โ‹Ž","curlywedge":"โ‹","curren":"ยค","curvearrowleft":"โ†ถ","curvearrowright":"โ†ท","cuvee":"โ‹Ž","cuwed":"โ‹","cwconint":"โˆฒ","cwint":"โˆฑ","cylcty":"โŒญ","dagger":"โ€ ","Dagger":"โ€ก","daleth":"โ„ธ","darr":"โ†“","Darr":"โ†ก","dArr":"โ‡“","dash":"โ€","Dashv":"โซค","dashv":"โŠฃ","dbkarow":"โค","dblac":"ห","Dcaron":"ฤŽ","dcaron":"ฤ","Dcy":"ะ”","dcy":"ะด","ddagger":"โ€ก","ddarr":"โ‡Š","DD":"โ……","dd":"โ…†","DDotrahd":"โค‘","ddotseq":"โฉท","deg":"ยฐ","Del":"โˆ‡","Delta":"ฮ”","delta":"ฮด","demptyv":"โฆฑ","dfisht":"โฅฟ","Dfr":"๐”‡","dfr":"๐”ก","dHar":"โฅฅ","dharl":"โ‡ƒ","dharr":"โ‡‚","DiacriticalAcute":"ยด","DiacriticalDot":"ห™","DiacriticalDoubleAcute":"ห","DiacriticalGrave":"`","DiacriticalTilde":"หœ","diam":"โ‹„","diamond":"โ‹„","Diamond":"โ‹„","diamondsuit":"โ™ฆ","diams":"โ™ฆ","die":"ยจ","DifferentialD":"โ…†","digamma":"ฯ","disin":"โ‹ฒ","div":"รท","divide":"รท","divideontimes":"โ‹‡","divonx":"โ‹‡","DJcy":"ะ‚","djcy":"ั’","dlcorn":"โŒž","dlcrop":"โŒ","dollar":"$","Dopf":"๐”ป","dopf":"๐••","Dot":"ยจ","dot":"ห™","DotDot":"โƒœ","doteq":"โ‰","doteqdot":"โ‰‘","DotEqual":"โ‰","dotminus":"โˆธ","dotplus":"โˆ”","dotsquare":"โŠก","doublebarwedge":"โŒ†","DoubleContourIntegral":"โˆฏ","DoubleDot":"ยจ","DoubleDownArrow":"โ‡“","DoubleLeftArrow":"โ‡","DoubleLeftRightArrow":"โ‡”","DoubleLeftTee":"โซค","DoubleLongLeftArrow":"โŸธ","DoubleLongLeftRightArrow":"โŸบ","DoubleLongRightArrow":"โŸน","DoubleRightArrow":"โ‡’","DoubleRightTee":"โŠจ","DoubleUpArrow":"โ‡‘","DoubleUpDownArrow":"โ‡•","DoubleVerticalBar":"โˆฅ","DownArrowBar":"โค“","downarrow":"โ†“","DownArrow":"โ†“","Downarrow":"โ‡“","DownArrowUpArrow":"โ‡ต","DownBreve":"ฬ‘","downdownarrows":"โ‡Š","downharpoonleft":"โ‡ƒ","downharpoonright":"โ‡‚","DownLeftRightVector":"โฅ","DownLeftTeeVector":"โฅž","DownLeftVectorBar":"โฅ–","DownLeftVector":"โ†ฝ","DownRightTeeVector":"โฅŸ","DownRightVectorBar":"โฅ—","DownRightVector":"โ‡","DownTeeArrow":"โ†ง","DownTee":"โŠค","drbkarow":"โค","drcorn":"โŒŸ","drcrop":"โŒŒ","Dscr":"๐’Ÿ","dscr":"๐’น","DScy":"ะ…","dscy":"ั•","dsol":"โงถ","Dstrok":"ฤ","dstrok":"ฤ‘","dtdot":"โ‹ฑ","dtri":"โ–ฟ","dtrif":"โ–พ","duarr":"โ‡ต","duhar":"โฅฏ","dwangle":"โฆฆ","DZcy":"ะ","dzcy":"ัŸ","dzigrarr":"โŸฟ","Eacute":"ร‰","eacute":"รฉ","easter":"โฉฎ","Ecaron":"ฤš","ecaron":"ฤ›","Ecirc":"รŠ","ecirc":"รช","ecir":"โ‰–","ecolon":"โ‰•","Ecy":"ะญ","ecy":"ั","eDDot":"โฉท","Edot":"ฤ–","edot":"ฤ—","eDot":"โ‰‘","ee":"โ…‡","efDot":"โ‰’","Efr":"๐”ˆ","efr":"๐”ข","eg":"โชš","Egrave":"รˆ","egrave":"รจ","egs":"โช–","egsdot":"โช˜","el":"โช™","Element":"โˆˆ","elinters":"โง","ell":"โ„“","els":"โช•","elsdot":"โช—","Emacr":"ฤ’","emacr":"ฤ“","empty":"โˆ…","emptyset":"โˆ…","EmptySmallSquare":"โ—ป","emptyv":"โˆ…","EmptyVerySmallSquare":"โ–ซ","emsp13":"โ€„","emsp14":"โ€…","emsp":"โ€ƒ","ENG":"ลŠ","eng":"ล‹","ensp":"โ€‚","Eogon":"ฤ˜","eogon":"ฤ™","Eopf":"๐”ผ","eopf":"๐•–","epar":"โ‹•","eparsl":"โงฃ","eplus":"โฉฑ","epsi":"ฮต","Epsilon":"ฮ•","epsilon":"ฮต","epsiv":"ฯต","eqcirc":"โ‰–","eqcolon":"โ‰•","eqsim":"โ‰‚","eqslantgtr":"โช–","eqslantless":"โช•","Equal":"โฉต","equals":"=","EqualTilde":"โ‰‚","equest":"โ‰Ÿ","Equilibrium":"โ‡Œ","equiv":"โ‰ก","equivDD":"โฉธ","eqvparsl":"โงฅ","erarr":"โฅฑ","erDot":"โ‰“","escr":"โ„ฏ","Escr":"โ„ฐ","esdot":"โ‰","Esim":"โฉณ","esim":"โ‰‚","Eta":"ฮ—","eta":"ฮท","ETH":"ร","eth":"รฐ","Euml":"ร‹","euml":"รซ","euro":"โ‚ฌ","excl":"!","exist":"โˆƒ","Exists":"โˆƒ","expectation":"โ„ฐ","exponentiale":"โ…‡","ExponentialE":"โ…‡","fallingdotseq":"โ‰’","Fcy":"ะค","fcy":"ั„","female":"โ™€","ffilig":"๏ฌƒ","fflig":"๏ฌ€","ffllig":"๏ฌ„","Ffr":"๐”‰","ffr":"๐”ฃ","filig":"๏ฌ","FilledSmallSquare":"โ—ผ","FilledVerySmallSquare":"โ–ช","fjlig":"fj","flat":"โ™ญ","fllig":"๏ฌ‚","fltns":"โ–ฑ","fnof":"ฦ’","Fopf":"๐”ฝ","fopf":"๐•—","forall":"โˆ€","ForAll":"โˆ€","fork":"โ‹”","forkv":"โซ™","Fouriertrf":"โ„ฑ","fpartint":"โจ","frac12":"ยฝ","frac13":"โ…“","frac14":"ยผ","frac15":"โ…•","frac16":"โ…™","frac18":"โ…›","frac23":"โ…”","frac25":"โ…–","frac34":"ยพ","frac35":"โ…—","frac38":"โ…œ","frac45":"โ…˜","frac56":"โ…š","frac58":"โ…","frac78":"โ…ž","frasl":"โ„","frown":"โŒข","fscr":"๐’ป","Fscr":"โ„ฑ","gacute":"วต","Gamma":"ฮ“","gamma":"ฮณ","Gammad":"ฯœ","gammad":"ฯ","gap":"โช†","Gbreve":"ฤž","gbreve":"ฤŸ","Gcedil":"ฤข","Gcirc":"ฤœ","gcirc":"ฤ","Gcy":"ะ“","gcy":"ะณ","Gdot":"ฤ ","gdot":"ฤก","ge":"โ‰ฅ","gE":"โ‰ง","gEl":"โชŒ","gel":"โ‹›","geq":"โ‰ฅ","geqq":"โ‰ง","geqslant":"โฉพ","gescc":"โชฉ","ges":"โฉพ","gesdot":"โช€","gesdoto":"โช‚","gesdotol":"โช„","gesl":"โ‹›๏ธ€","gesles":"โช”","Gfr":"๐”Š","gfr":"๐”ค","gg":"โ‰ซ","Gg":"โ‹™","ggg":"โ‹™","gimel":"โ„ท","GJcy":"ะƒ","gjcy":"ั“","gla":"โชฅ","gl":"โ‰ท","glE":"โช’","glj":"โชค","gnap":"โชŠ","gnapprox":"โชŠ","gne":"โชˆ","gnE":"โ‰ฉ","gneq":"โชˆ","gneqq":"โ‰ฉ","gnsim":"โ‹ง","Gopf":"๐”พ","gopf":"๐•˜","grave":"`","GreaterEqual":"โ‰ฅ","GreaterEqualLess":"โ‹›","GreaterFullEqual":"โ‰ง","GreaterGreater":"โชข","GreaterLess":"โ‰ท","GreaterSlantEqual":"โฉพ","GreaterTilde":"โ‰ณ","Gscr":"๐’ข","gscr":"โ„Š","gsim":"โ‰ณ","gsime":"โชŽ","gsiml":"โช","gtcc":"โชง","gtcir":"โฉบ","gt":">","GT":">","Gt":"โ‰ซ","gtdot":"โ‹—","gtlPar":"โฆ•","gtquest":"โฉผ","gtrapprox":"โช†","gtrarr":"โฅธ","gtrdot":"โ‹—","gtreqless":"โ‹›","gtreqqless":"โชŒ","gtrless":"โ‰ท","gtrsim":"โ‰ณ","gvertneqq":"โ‰ฉ๏ธ€","gvnE":"โ‰ฉ๏ธ€","Hacek":"ห‡","hairsp":"โ€Š","half":"ยฝ","hamilt":"โ„‹","HARDcy":"ะช","hardcy":"ัŠ","harrcir":"โฅˆ","harr":"โ†”","hArr":"โ‡”","harrw":"โ†ญ","Hat":"^","hbar":"โ„","Hcirc":"ฤค","hcirc":"ฤฅ","hearts":"โ™ฅ","heartsuit":"โ™ฅ","hellip":"โ€ฆ","hercon":"โŠน","hfr":"๐”ฅ","Hfr":"โ„Œ","HilbertSpace":"โ„‹","hksearow":"โคฅ","hkswarow":"โคฆ","hoarr":"โ‡ฟ","homtht":"โˆป","hookleftarrow":"โ†ฉ","hookrightarrow":"โ†ช","hopf":"๐•™","Hopf":"โ„","horbar":"โ€•","HorizontalLine":"โ”€","hscr":"๐’ฝ","Hscr":"โ„‹","hslash":"โ„","Hstrok":"ฤฆ","hstrok":"ฤง","HumpDownHump":"โ‰Ž","HumpEqual":"โ‰","hybull":"โƒ","hyphen":"โ€","Iacute":"ร","iacute":"รญ","ic":"โฃ","Icirc":"รŽ","icirc":"รฎ","Icy":"ะ˜","icy":"ะธ","Idot":"ฤฐ","IEcy":"ะ•","iecy":"ะต","iexcl":"ยก","iff":"โ‡”","ifr":"๐”ฆ","Ifr":"โ„‘","Igrave":"รŒ","igrave":"รฌ","ii":"โ…ˆ","iiiint":"โจŒ","iiint":"โˆญ","iinfin":"โงœ","iiota":"โ„ฉ","IJlig":"ฤฒ","ijlig":"ฤณ","Imacr":"ฤช","imacr":"ฤซ","image":"โ„‘","ImaginaryI":"โ…ˆ","imagline":"โ„","imagpart":"โ„‘","imath":"ฤฑ","Im":"โ„‘","imof":"โŠท","imped":"ฦต","Implies":"โ‡’","incare":"โ„…","in":"โˆˆ","infin":"โˆž","infintie":"โง","inodot":"ฤฑ","intcal":"โŠบ","int":"โˆซ","Int":"โˆฌ","integers":"โ„ค","Integral":"โˆซ","intercal":"โŠบ","Intersection":"โ‹‚","intlarhk":"โจ—","intprod":"โจผ","InvisibleComma":"โฃ","InvisibleTimes":"โข","IOcy":"ะ","iocy":"ั‘","Iogon":"ฤฎ","iogon":"ฤฏ","Iopf":"๐•€","iopf":"๐•š","Iota":"ฮ™","iota":"ฮน","iprod":"โจผ","iquest":"ยฟ","iscr":"๐’พ","Iscr":"โ„","isin":"โˆˆ","isindot":"โ‹ต","isinE":"โ‹น","isins":"โ‹ด","isinsv":"โ‹ณ","isinv":"โˆˆ","it":"โข","Itilde":"ฤจ","itilde":"ฤฉ","Iukcy":"ะ†","iukcy":"ั–","Iuml":"ร","iuml":"รฏ","Jcirc":"ฤด","jcirc":"ฤต","Jcy":"ะ™","jcy":"ะน","Jfr":"๐”","jfr":"๐”ง","jmath":"ศท","Jopf":"๐•","jopf":"๐•›","Jscr":"๐’ฅ","jscr":"๐’ฟ","Jsercy":"ะˆ","jsercy":"ั˜","Jukcy":"ะ„","jukcy":"ั”","Kappa":"ฮš","kappa":"ฮบ","kappav":"ฯฐ","Kcedil":"ฤถ","kcedil":"ฤท","Kcy":"ะš","kcy":"ะบ","Kfr":"๐”Ž","kfr":"๐”จ","kgreen":"ฤธ","KHcy":"ะฅ","khcy":"ั…","KJcy":"ะŒ","kjcy":"ัœ","Kopf":"๐•‚","kopf":"๐•œ","Kscr":"๐’ฆ","kscr":"๐“€","lAarr":"โ‡š","Lacute":"ฤน","lacute":"ฤบ","laemptyv":"โฆด","lagran":"โ„’","Lambda":"ฮ›","lambda":"ฮป","lang":"โŸจ","Lang":"โŸช","langd":"โฆ‘","langle":"โŸจ","lap":"โช…","Laplacetrf":"โ„’","laquo":"ยซ","larrb":"โ‡ค","larrbfs":"โคŸ","larr":"โ†","Larr":"โ†ž","lArr":"โ‡","larrfs":"โค","larrhk":"โ†ฉ","larrlp":"โ†ซ","larrpl":"โคน","larrsim":"โฅณ","larrtl":"โ†ข","latail":"โค™","lAtail":"โค›","lat":"โชซ","late":"โชญ","lates":"โชญ๏ธ€","lbarr":"โคŒ","lBarr":"โคŽ","lbbrk":"โฒ","lbrace":"{","lbrack":"[","lbrke":"โฆ‹","lbrksld":"โฆ","lbrkslu":"โฆ","Lcaron":"ฤฝ","lcaron":"ฤพ","Lcedil":"ฤป","lcedil":"ฤผ","lceil":"โŒˆ","lcub":"{","Lcy":"ะ›","lcy":"ะป","ldca":"โคถ","ldquo":"โ€œ","ldquor":"โ€ž","ldrdhar":"โฅง","ldrushar":"โฅ‹","ldsh":"โ†ฒ","le":"โ‰ค","lE":"โ‰ฆ","LeftAngleBracket":"โŸจ","LeftArrowBar":"โ‡ค","leftarrow":"โ†","LeftArrow":"โ†","Leftarrow":"โ‡","LeftArrowRightArrow":"โ‡†","leftarrowtail":"โ†ข","LeftCeiling":"โŒˆ","LeftDoubleBracket":"โŸฆ","LeftDownTeeVector":"โฅก","LeftDownVectorBar":"โฅ™","LeftDownVector":"โ‡ƒ","LeftFloor":"โŒŠ","leftharpoondown":"โ†ฝ","leftharpoonup":"โ†ผ","leftleftarrows":"โ‡‡","leftrightarrow":"โ†”","LeftRightArrow":"โ†”","Leftrightarrow":"โ‡”","leftrightarrows":"โ‡†","leftrightharpoons":"โ‡‹","leftrightsquigarrow":"โ†ญ","LeftRightVector":"โฅŽ","LeftTeeArrow":"โ†ค","LeftTee":"โŠฃ","LeftTeeVector":"โฅš","leftthreetimes":"โ‹‹","LeftTriangleBar":"โง","LeftTriangle":"โŠฒ","LeftTriangleEqual":"โŠด","LeftUpDownVector":"โฅ‘","LeftUpTeeVector":"โฅ ","LeftUpVectorBar":"โฅ˜","LeftUpVector":"โ†ฟ","LeftVectorBar":"โฅ’","LeftVector":"โ†ผ","lEg":"โช‹","leg":"โ‹š","leq":"โ‰ค","leqq":"โ‰ฆ","leqslant":"โฉฝ","lescc":"โชจ","les":"โฉฝ","lesdot":"โฉฟ","lesdoto":"โช","lesdotor":"โชƒ","lesg":"โ‹š๏ธ€","lesges":"โช“","lessapprox":"โช…","lessdot":"โ‹–","lesseqgtr":"โ‹š","lesseqqgtr":"โช‹","LessEqualGreater":"โ‹š","LessFullEqual":"โ‰ฆ","LessGreater":"โ‰ถ","lessgtr":"โ‰ถ","LessLess":"โชก","lesssim":"โ‰ฒ","LessSlantEqual":"โฉฝ","LessTilde":"โ‰ฒ","lfisht":"โฅผ","lfloor":"โŒŠ","Lfr":"๐”","lfr":"๐”ฉ","lg":"โ‰ถ","lgE":"โช‘","lHar":"โฅข","lhard":"โ†ฝ","lharu":"โ†ผ","lharul":"โฅช","lhblk":"โ–„","LJcy":"ะ‰","ljcy":"ั™","llarr":"โ‡‡","ll":"โ‰ช","Ll":"โ‹˜","llcorner":"โŒž","Lleftarrow":"โ‡š","llhard":"โฅซ","lltri":"โ—บ","Lmidot":"ฤฟ","lmidot":"ล€","lmoustache":"โŽฐ","lmoust":"โŽฐ","lnap":"โช‰","lnapprox":"โช‰","lne":"โช‡","lnE":"โ‰จ","lneq":"โช‡","lneqq":"โ‰จ","lnsim":"โ‹ฆ","loang":"โŸฌ","loarr":"โ‡ฝ","lobrk":"โŸฆ","longleftarrow":"โŸต","LongLeftArrow":"โŸต","Longleftarrow":"โŸธ","longleftrightarrow":"โŸท","LongLeftRightArrow":"โŸท","Longleftrightarrow":"โŸบ","longmapsto":"โŸผ","longrightarrow":"โŸถ","LongRightArrow":"โŸถ","Longrightarrow":"โŸน","looparrowleft":"โ†ซ","looparrowright":"โ†ฌ","lopar":"โฆ…","Lopf":"๐•ƒ","lopf":"๐•","loplus":"โจญ","lotimes":"โจด","lowast":"โˆ—","lowbar":"_","LowerLeftArrow":"โ†™","LowerRightArrow":"โ†˜","loz":"โ—Š","lozenge":"โ—Š","lozf":"โงซ","lpar":"(","lparlt":"โฆ“","lrarr":"โ‡†","lrcorner":"โŒŸ","lrhar":"โ‡‹","lrhard":"โฅญ","lrm":"โ€Ž","lrtri":"โŠฟ","lsaquo":"โ€น","lscr":"๐“","Lscr":"โ„’","lsh":"โ†ฐ","Lsh":"โ†ฐ","lsim":"โ‰ฒ","lsime":"โช","lsimg":"โช","lsqb":"[","lsquo":"โ€˜","lsquor":"โ€š","Lstrok":"ล","lstrok":"ล‚","ltcc":"โชฆ","ltcir":"โฉน","lt":"<","LT":"<","Lt":"โ‰ช","ltdot":"โ‹–","lthree":"โ‹‹","ltimes":"โ‹‰","ltlarr":"โฅถ","ltquest":"โฉป","ltri":"โ—ƒ","ltrie":"โŠด","ltrif":"โ—‚","ltrPar":"โฆ–","lurdshar":"โฅŠ","luruhar":"โฅฆ","lvertneqq":"โ‰จ๏ธ€","lvnE":"โ‰จ๏ธ€","macr":"ยฏ","male":"โ™‚","malt":"โœ ","maltese":"โœ ","Map":"โค…","map":"โ†ฆ","mapsto":"โ†ฆ","mapstodown":"โ†ง","mapstoleft":"โ†ค","mapstoup":"โ†ฅ","marker":"โ–ฎ","mcomma":"โจฉ","Mcy":"ะœ","mcy":"ะผ","mdash":"โ€”","mDDot":"โˆบ","measuredangle":"โˆก","MediumSpace":"โŸ","Mellintrf":"โ„ณ","Mfr":"๐”","mfr":"๐”ช","mho":"โ„ง","micro":"ยต","midast":"*","midcir":"โซฐ","mid":"โˆฃ","middot":"ยท","minusb":"โŠŸ","minus":"โˆ’","minusd":"โˆธ","minusdu":"โจช","MinusPlus":"โˆ“","mlcp":"โซ›","mldr":"โ€ฆ","mnplus":"โˆ“","models":"โŠง","Mopf":"๐•„","mopf":"๐•ž","mp":"โˆ“","mscr":"๐“‚","Mscr":"โ„ณ","mstpos":"โˆพ","Mu":"ฮœ","mu":"ฮผ","multimap":"โŠธ","mumap":"โŠธ","nabla":"โˆ‡","Nacute":"ลƒ","nacute":"ล„","nang":"โˆ โƒ’","nap":"โ‰‰","napE":"โฉฐฬธ","napid":"โ‰‹ฬธ","napos":"ล‰","napprox":"โ‰‰","natural":"โ™ฎ","naturals":"โ„•","natur":"โ™ฎ","nbsp":"ย ","nbump":"โ‰Žฬธ","nbumpe":"โ‰ฬธ","ncap":"โฉƒ","Ncaron":"ล‡","ncaron":"ลˆ","Ncedil":"ล…","ncedil":"ล†","ncong":"โ‰‡","ncongdot":"โฉญฬธ","ncup":"โฉ‚","Ncy":"ะ","ncy":"ะฝ","ndash":"โ€“","nearhk":"โคค","nearr":"โ†—","neArr":"โ‡—","nearrow":"โ†—","ne":"โ‰ ","nedot":"โ‰ฬธ","NegativeMediumSpace":"โ€‹","NegativeThickSpace":"โ€‹","NegativeThinSpace":"โ€‹","NegativeVeryThinSpace":"โ€‹","nequiv":"โ‰ข","nesear":"โคจ","nesim":"โ‰‚ฬธ","NestedGreaterGreater":"โ‰ซ","NestedLessLess":"โ‰ช","NewLine":"\n","nexist":"โˆ„","nexists":"โˆ„","Nfr":"๐”‘","nfr":"๐”ซ","ngE":"โ‰งฬธ","nge":"โ‰ฑ","ngeq":"โ‰ฑ","ngeqq":"โ‰งฬธ","ngeqslant":"โฉพฬธ","nges":"โฉพฬธ","nGg":"โ‹™ฬธ","ngsim":"โ‰ต","nGt":"โ‰ซโƒ’","ngt":"โ‰ฏ","ngtr":"โ‰ฏ","nGtv":"โ‰ซฬธ","nharr":"โ†ฎ","nhArr":"โ‡Ž","nhpar":"โซฒ","ni":"โˆ‹","nis":"โ‹ผ","nisd":"โ‹บ","niv":"โˆ‹","NJcy":"ะŠ","njcy":"ัš","nlarr":"โ†š","nlArr":"โ‡","nldr":"โ€ฅ","nlE":"โ‰ฆฬธ","nle":"โ‰ฐ","nleftarrow":"โ†š","nLeftarrow":"โ‡","nleftrightarrow":"โ†ฎ","nLeftrightarrow":"โ‡Ž","nleq":"โ‰ฐ","nleqq":"โ‰ฆฬธ","nleqslant":"โฉฝฬธ","nles":"โฉฝฬธ","nless":"โ‰ฎ","nLl":"โ‹˜ฬธ","nlsim":"โ‰ด","nLt":"โ‰ชโƒ’","nlt":"โ‰ฎ","nltri":"โ‹ช","nltrie":"โ‹ฌ","nLtv":"โ‰ชฬธ","nmid":"โˆค","NoBreak":"โ ","NonBreakingSpace":"ย ","nopf":"๐•Ÿ","Nopf":"โ„•","Not":"โซฌ","not":"ยฌ","NotCongruent":"โ‰ข","NotCupCap":"โ‰ญ","NotDoubleVerticalBar":"โˆฆ","NotElement":"โˆ‰","NotEqual":"โ‰ ","NotEqualTilde":"โ‰‚ฬธ","NotExists":"โˆ„","NotGreater":"โ‰ฏ","NotGreaterEqual":"โ‰ฑ","NotGreaterFullEqual":"โ‰งฬธ","NotGreaterGreater":"โ‰ซฬธ","NotGreaterLess":"โ‰น","NotGreaterSlantEqual":"โฉพฬธ","NotGreaterTilde":"โ‰ต","NotHumpDownHump":"โ‰Žฬธ","NotHumpEqual":"โ‰ฬธ","notin":"โˆ‰","notindot":"โ‹ตฬธ","notinE":"โ‹นฬธ","notinva":"โˆ‰","notinvb":"โ‹ท","notinvc":"โ‹ถ","NotLeftTriangleBar":"โงฬธ","NotLeftTriangle":"โ‹ช","NotLeftTriangleEqual":"โ‹ฌ","NotLess":"โ‰ฎ","NotLessEqual":"โ‰ฐ","NotLessGreater":"โ‰ธ","NotLessLess":"โ‰ชฬธ","NotLessSlantEqual":"โฉฝฬธ","NotLessTilde":"โ‰ด","NotNestedGreaterGreater":"โชขฬธ","NotNestedLessLess":"โชกฬธ","notni":"โˆŒ","notniva":"โˆŒ","notnivb":"โ‹พ","notnivc":"โ‹ฝ","NotPrecedes":"โŠ€","NotPrecedesEqual":"โชฏฬธ","NotPrecedesSlantEqual":"โ‹ ","NotReverseElement":"โˆŒ","NotRightTriangleBar":"โงฬธ","NotRightTriangle":"โ‹ซ","NotRightTriangleEqual":"โ‹ญ","NotSquareSubset":"โŠฬธ","NotSquareSubsetEqual":"โ‹ข","NotSquareSuperset":"โАฬธ","NotSquareSupersetEqual":"โ‹ฃ","NotSubset":"โŠ‚โƒ’","NotSubsetEqual":"โŠˆ","NotSucceeds":"โЁ","NotSucceedsEqual":"โชฐฬธ","NotSucceedsSlantEqual":"โ‹ก","NotSucceedsTilde":"โ‰ฟฬธ","NotSuperset":"โŠƒโƒ’","NotSupersetEqual":"โЉ","NotTilde":"โ‰","NotTildeEqual":"โ‰„","NotTildeFullEqual":"โ‰‡","NotTildeTilde":"โ‰‰","NotVerticalBar":"โˆค","nparallel":"โˆฆ","npar":"โˆฆ","nparsl":"โซฝโƒฅ","npart":"โˆ‚ฬธ","npolint":"โจ”","npr":"โŠ€","nprcue":"โ‹ ","nprec":"โŠ€","npreceq":"โชฏฬธ","npre":"โชฏฬธ","nrarrc":"โคณฬธ","nrarr":"โ†›","nrArr":"โ‡","nrarrw":"โ†ฬธ","nrightarrow":"โ†›","nRightarrow":"โ‡","nrtri":"โ‹ซ","nrtrie":"โ‹ญ","nsc":"โЁ","nsccue":"โ‹ก","nsce":"โชฐฬธ","Nscr":"๐’ฉ","nscr":"๐“ƒ","nshortmid":"โˆค","nshortparallel":"โˆฆ","nsim":"โ‰","nsime":"โ‰„","nsimeq":"โ‰„","nsmid":"โˆค","nspar":"โˆฆ","nsqsube":"โ‹ข","nsqsupe":"โ‹ฃ","nsub":"โŠ„","nsubE":"โซ…ฬธ","nsube":"โŠˆ","nsubset":"โŠ‚โƒ’","nsubseteq":"โŠˆ","nsubseteqq":"โซ…ฬธ","nsucc":"โЁ","nsucceq":"โชฐฬธ","nsup":"โŠ…","nsupE":"โซ†ฬธ","nsupe":"โЉ","nsupset":"โŠƒโƒ’","nsupseteq":"โЉ","nsupseteqq":"โซ†ฬธ","ntgl":"โ‰น","Ntilde":"ร‘","ntilde":"รฑ","ntlg":"โ‰ธ","ntriangleleft":"โ‹ช","ntrianglelefteq":"โ‹ฌ","ntriangleright":"โ‹ซ","ntrianglerighteq":"โ‹ญ","Nu":"ฮ","nu":"ฮฝ","num":"#","numero":"โ„–","numsp":"โ€‡","nvap":"โ‰โƒ’","nvdash":"โŠฌ","nvDash":"โŠญ","nVdash":"โŠฎ","nVDash":"โŠฏ","nvge":"โ‰ฅโƒ’","nvgt":">โƒ’","nvHarr":"โค„","nvinfin":"โงž","nvlArr":"โค‚","nvle":"โ‰คโƒ’","nvlt":"<โƒ’","nvltrie":"โŠดโƒ’","nvrArr":"โคƒ","nvrtrie":"โŠตโƒ’","nvsim":"โˆผโƒ’","nwarhk":"โคฃ","nwarr":"โ†–","nwArr":"โ‡–","nwarrow":"โ†–","nwnear":"โคง","Oacute":"ร“","oacute":"รณ","oast":"โŠ›","Ocirc":"ร”","ocirc":"รด","ocir":"โŠš","Ocy":"ะž","ocy":"ะพ","odash":"โŠ","Odblac":"ล","odblac":"ล‘","odiv":"โจธ","odot":"โŠ™","odsold":"โฆผ","OElig":"ล’","oelig":"ล“","ofcir":"โฆฟ","Ofr":"๐”’","ofr":"๐”ฌ","ogon":"ห›","Ograve":"ร’","ograve":"รฒ","ogt":"โง","ohbar":"โฆต","ohm":"ฮฉ","oint":"โˆฎ","olarr":"โ†บ","olcir":"โฆพ","olcross":"โฆป","oline":"โ€พ","olt":"โง€","Omacr":"ลŒ","omacr":"ล","Omega":"ฮฉ","omega":"ฯ‰","Omicron":"ฮŸ","omicron":"ฮฟ","omid":"โฆถ","ominus":"โŠ–","Oopf":"๐•†","oopf":"๐• ","opar":"โฆท","OpenCurlyDoubleQuote":"โ€œ","OpenCurlyQuote":"โ€˜","operp":"โฆน","oplus":"โŠ•","orarr":"โ†ป","Or":"โฉ”","or":"โˆจ","ord":"โฉ","order":"โ„ด","orderof":"โ„ด","ordf":"ยช","ordm":"ยบ","origof":"โŠถ","oror":"โฉ–","orslope":"โฉ—","orv":"โฉ›","oS":"โ“ˆ","Oscr":"๐’ช","oscr":"โ„ด","Oslash":"ร˜","oslash":"รธ","osol":"โŠ˜","Otilde":"ร•","otilde":"รต","otimesas":"โจถ","Otimes":"โจท","otimes":"โŠ—","Ouml":"ร–","ouml":"รถ","ovbar":"โŒฝ","OverBar":"โ€พ","OverBrace":"โž","OverBracket":"โŽด","OverParenthesis":"โœ","para":"ยถ","parallel":"โˆฅ","par":"โˆฅ","parsim":"โซณ","parsl":"โซฝ","part":"โˆ‚","PartialD":"โˆ‚","Pcy":"ะŸ","pcy":"ะฟ","percnt":"%","period":".","permil":"โ€ฐ","perp":"โŠฅ","pertenk":"โ€ฑ","Pfr":"๐”“","pfr":"๐”ญ","Phi":"ฮฆ","phi":"ฯ†","phiv":"ฯ•","phmmat":"โ„ณ","phone":"โ˜Ž","Pi":"ฮ ","pi":"ฯ€","pitchfork":"โ‹”","piv":"ฯ–","planck":"โ„","planckh":"โ„Ž","plankv":"โ„","plusacir":"โจฃ","plusb":"โŠž","pluscir":"โจข","plus":"+","plusdo":"โˆ”","plusdu":"โจฅ","pluse":"โฉฒ","PlusMinus":"ยฑ","plusmn":"ยฑ","plussim":"โจฆ","plustwo":"โจง","pm":"ยฑ","Poincareplane":"โ„Œ","pointint":"โจ•","popf":"๐•ก","Popf":"โ„™","pound":"ยฃ","prap":"โชท","Pr":"โชป","pr":"โ‰บ","prcue":"โ‰ผ","precapprox":"โชท","prec":"โ‰บ","preccurlyeq":"โ‰ผ","Precedes":"โ‰บ","PrecedesEqual":"โชฏ","PrecedesSlantEqual":"โ‰ผ","PrecedesTilde":"โ‰พ","preceq":"โชฏ","precnapprox":"โชน","precneqq":"โชต","precnsim":"โ‹จ","pre":"โชฏ","prE":"โชณ","precsim":"โ‰พ","prime":"โ€ฒ","Prime":"โ€ณ","primes":"โ„™","prnap":"โชน","prnE":"โชต","prnsim":"โ‹จ","prod":"โˆ","Product":"โˆ","profalar":"โŒฎ","profline":"โŒ’","profsurf":"โŒ“","prop":"โˆ","Proportional":"โˆ","Proportion":"โˆท","propto":"โˆ","prsim":"โ‰พ","prurel":"โŠฐ","Pscr":"๐’ซ","pscr":"๐“…","Psi":"ฮจ","psi":"ฯˆ","puncsp":"โ€ˆ","Qfr":"๐””","qfr":"๐”ฎ","qint":"โจŒ","qopf":"๐•ข","Qopf":"โ„š","qprime":"โ—","Qscr":"๐’ฌ","qscr":"๐“†","quaternions":"โ„","quatint":"โจ–","quest":"?","questeq":"โ‰Ÿ","quot":"\"","QUOT":"\"","rAarr":"โ‡›","race":"โˆฝฬฑ","Racute":"ล”","racute":"ล•","radic":"โˆš","raemptyv":"โฆณ","rang":"โŸฉ","Rang":"โŸซ","rangd":"โฆ’","range":"โฆฅ","rangle":"โŸฉ","raquo":"ยป","rarrap":"โฅต","rarrb":"โ‡ฅ","rarrbfs":"โค ","rarrc":"โคณ","rarr":"โ†’","Rarr":"โ† ","rArr":"โ‡’","rarrfs":"โคž","rarrhk":"โ†ช","rarrlp":"โ†ฌ","rarrpl":"โฅ…","rarrsim":"โฅด","Rarrtl":"โค–","rarrtl":"โ†ฃ","rarrw":"โ†","ratail":"โคš","rAtail":"โคœ","ratio":"โˆถ","rationals":"โ„š","rbarr":"โค","rBarr":"โค","RBarr":"โค","rbbrk":"โณ","rbrace":"}","rbrack":"]","rbrke":"โฆŒ","rbrksld":"โฆŽ","rbrkslu":"โฆ","Rcaron":"ล˜","rcaron":"ล™","Rcedil":"ล–","rcedil":"ล—","rceil":"โŒ‰","rcub":"}","Rcy":"ะ ","rcy":"ั€","rdca":"โคท","rdldhar":"โฅฉ","rdquo":"โ€","rdquor":"โ€","rdsh":"โ†ณ","real":"โ„œ","realine":"โ„›","realpart":"โ„œ","reals":"โ„","Re":"โ„œ","rect":"โ–ญ","reg":"ยฎ","REG":"ยฎ","ReverseElement":"โˆ‹","ReverseEquilibrium":"โ‡‹","ReverseUpEquilibrium":"โฅฏ","rfisht":"โฅฝ","rfloor":"โŒ‹","rfr":"๐”ฏ","Rfr":"โ„œ","rHar":"โฅค","rhard":"โ‡","rharu":"โ‡€","rharul":"โฅฌ","Rho":"ฮก","rho":"ฯ","rhov":"ฯฑ","RightAngleBracket":"โŸฉ","RightArrowBar":"โ‡ฅ","rightarrow":"โ†’","RightArrow":"โ†’","Rightarrow":"โ‡’","RightArrowLeftArrow":"โ‡„","rightarrowtail":"โ†ฃ","RightCeiling":"โŒ‰","RightDoubleBracket":"โŸง","RightDownTeeVector":"โฅ","RightDownVectorBar":"โฅ•","RightDownVector":"โ‡‚","RightFloor":"โŒ‹","rightharpoondown":"โ‡","rightharpoonup":"โ‡€","rightleftarrows":"โ‡„","rightleftharpoons":"โ‡Œ","rightrightarrows":"โ‡‰","rightsquigarrow":"โ†","RightTeeArrow":"โ†ฆ","RightTee":"โŠข","RightTeeVector":"โฅ›","rightthreetimes":"โ‹Œ","RightTriangleBar":"โง","RightTriangle":"โŠณ","RightTriangleEqual":"โŠต","RightUpDownVector":"โฅ","RightUpTeeVector":"โฅœ","RightUpVectorBar":"โฅ”","RightUpVector":"โ†พ","RightVectorBar":"โฅ“","RightVector":"โ‡€","ring":"หš","risingdotseq":"โ‰“","rlarr":"โ‡„","rlhar":"โ‡Œ","rlm":"โ€","rmoustache":"โŽฑ","rmoust":"โŽฑ","rnmid":"โซฎ","roang":"โŸญ","roarr":"โ‡พ","robrk":"โŸง","ropar":"โฆ†","ropf":"๐•ฃ","Ropf":"โ„","roplus":"โจฎ","rotimes":"โจต","RoundImplies":"โฅฐ","rpar":")","rpargt":"โฆ”","rppolint":"โจ’","rrarr":"โ‡‰","Rrightarrow":"โ‡›","rsaquo":"โ€บ","rscr":"๐“‡","Rscr":"โ„›","rsh":"โ†ฑ","Rsh":"โ†ฑ","rsqb":"]","rsquo":"โ€™","rsquor":"โ€™","rthree":"โ‹Œ","rtimes":"โ‹Š","rtri":"โ–น","rtrie":"โŠต","rtrif":"โ–ธ","rtriltri":"โงŽ","RuleDelayed":"โงด","ruluhar":"โฅจ","rx":"โ„ž","Sacute":"ลš","sacute":"ล›","sbquo":"โ€š","scap":"โชธ","Scaron":"ล ","scaron":"ลก","Sc":"โชผ","sc":"โ‰ป","sccue":"โ‰ฝ","sce":"โชฐ","scE":"โชด","Scedil":"ลž","scedil":"ลŸ","Scirc":"ลœ","scirc":"ล","scnap":"โชบ","scnE":"โชถ","scnsim":"โ‹ฉ","scpolint":"โจ“","scsim":"โ‰ฟ","Scy":"ะก","scy":"ั","sdotb":"โŠก","sdot":"โ‹…","sdote":"โฉฆ","searhk":"โคฅ","searr":"โ†˜","seArr":"โ‡˜","searrow":"โ†˜","sect":"ยง","semi":";","seswar":"โคฉ","setminus":"โˆ–","setmn":"โˆ–","sext":"โœถ","Sfr":"๐”–","sfr":"๐”ฐ","sfrown":"โŒข","sharp":"โ™ฏ","SHCHcy":"ะฉ","shchcy":"ั‰","SHcy":"ะจ","shcy":"ัˆ","ShortDownArrow":"โ†“","ShortLeftArrow":"โ†","shortmid":"โˆฃ","shortparallel":"โˆฅ","ShortRightArrow":"โ†’","ShortUpArrow":"โ†‘","shy":"ยญ","Sigma":"ฮฃ","sigma":"ฯƒ","sigmaf":"ฯ‚","sigmav":"ฯ‚","sim":"โˆผ","simdot":"โฉช","sime":"โ‰ƒ","simeq":"โ‰ƒ","simg":"โชž","simgE":"โช ","siml":"โช","simlE":"โชŸ","simne":"โ‰†","simplus":"โจค","simrarr":"โฅฒ","slarr":"โ†","SmallCircle":"โˆ˜","smallsetminus":"โˆ–","smashp":"โจณ","smeparsl":"โงค","smid":"โˆฃ","smile":"โŒฃ","smt":"โชช","smte":"โชฌ","smtes":"โชฌ๏ธ€","SOFTcy":"ะฌ","softcy":"ัŒ","solbar":"โŒฟ","solb":"โง„","sol":"/","Sopf":"๐•Š","sopf":"๐•ค","spades":"โ™ ","spadesuit":"โ™ ","spar":"โˆฅ","sqcap":"โŠ“","sqcaps":"โŠ“๏ธ€","sqcup":"โŠ”","sqcups":"โŠ”๏ธ€","Sqrt":"โˆš","sqsub":"โŠ","sqsube":"โŠ‘","sqsubset":"โŠ","sqsubseteq":"โŠ‘","sqsup":"โА","sqsupe":"โŠ’","sqsupset":"โА","sqsupseteq":"โŠ’","square":"โ–ก","Square":"โ–ก","SquareIntersection":"โŠ“","SquareSubset":"โŠ","SquareSubsetEqual":"โŠ‘","SquareSuperset":"โА","SquareSupersetEqual":"โŠ’","SquareUnion":"โŠ”","squarf":"โ–ช","squ":"โ–ก","squf":"โ–ช","srarr":"โ†’","Sscr":"๐’ฎ","sscr":"๐“ˆ","ssetmn":"โˆ–","ssmile":"โŒฃ","sstarf":"โ‹†","Star":"โ‹†","star":"โ˜†","starf":"โ˜…","straightepsilon":"ฯต","straightphi":"ฯ•","strns":"ยฏ","sub":"โŠ‚","Sub":"โ‹","subdot":"โชฝ","subE":"โซ…","sube":"โІ","subedot":"โซƒ","submult":"โซ","subnE":"โซ‹","subne":"โŠŠ","subplus":"โชฟ","subrarr":"โฅน","subset":"โŠ‚","Subset":"โ‹","subseteq":"โІ","subseteqq":"โซ…","SubsetEqual":"โІ","subsetneq":"โŠŠ","subsetneqq":"โซ‹","subsim":"โซ‡","subsub":"โซ•","subsup":"โซ“","succapprox":"โชธ","succ":"โ‰ป","succcurlyeq":"โ‰ฝ","Succeeds":"โ‰ป","SucceedsEqual":"โชฐ","SucceedsSlantEqual":"โ‰ฝ","SucceedsTilde":"โ‰ฟ","succeq":"โชฐ","succnapprox":"โชบ","succneqq":"โชถ","succnsim":"โ‹ฉ","succsim":"โ‰ฟ","SuchThat":"โˆ‹","sum":"โˆ‘","Sum":"โˆ‘","sung":"โ™ช","sup1":"ยน","sup2":"ยฒ","sup3":"ยณ","sup":"โŠƒ","Sup":"โ‹‘","supdot":"โชพ","supdsub":"โซ˜","supE":"โซ†","supe":"โЇ","supedot":"โซ„","Superset":"โŠƒ","SupersetEqual":"โЇ","suphsol":"โŸ‰","suphsub":"โซ—","suplarr":"โฅป","supmult":"โซ‚","supnE":"โซŒ","supne":"โŠ‹","supplus":"โซ€","supset":"โŠƒ","Supset":"โ‹‘","supseteq":"โЇ","supseteqq":"โซ†","supsetneq":"โŠ‹","supsetneqq":"โซŒ","supsim":"โซˆ","supsub":"โซ”","supsup":"โซ–","swarhk":"โคฆ","swarr":"โ†™","swArr":"โ‡™","swarrow":"โ†™","swnwar":"โคช","szlig":"รŸ","Tab":"\t","target":"โŒ–","Tau":"ฮค","tau":"ฯ„","tbrk":"โŽด","Tcaron":"ลค","tcaron":"ลฅ","Tcedil":"ลข","tcedil":"ลฃ","Tcy":"ะข","tcy":"ั‚","tdot":"โƒ›","telrec":"โŒ•","Tfr":"๐”—","tfr":"๐”ฑ","there4":"โˆด","therefore":"โˆด","Therefore":"โˆด","Theta":"ฮ˜","theta":"ฮธ","thetasym":"ฯ‘","thetav":"ฯ‘","thickapprox":"โ‰ˆ","thicksim":"โˆผ","ThickSpace":"โŸโ€Š","ThinSpace":"โ€‰","thinsp":"โ€‰","thkap":"โ‰ˆ","thksim":"โˆผ","THORN":"รž","thorn":"รพ","tilde":"หœ","Tilde":"โˆผ","TildeEqual":"โ‰ƒ","TildeFullEqual":"โ‰…","TildeTilde":"โ‰ˆ","timesbar":"โจฑ","timesb":"โŠ ","times":"ร—","timesd":"โจฐ","tint":"โˆญ","toea":"โคจ","topbot":"โŒถ","topcir":"โซฑ","top":"โŠค","Topf":"๐•‹","topf":"๐•ฅ","topfork":"โซš","tosa":"โคฉ","tprime":"โ€ด","trade":"โ„ข","TRADE":"โ„ข","triangle":"โ–ต","triangledown":"โ–ฟ","triangleleft":"โ—ƒ","trianglelefteq":"โŠด","triangleq":"โ‰œ","triangleright":"โ–น","trianglerighteq":"โŠต","tridot":"โ—ฌ","trie":"โ‰œ","triminus":"โจบ","TripleDot":"โƒ›","triplus":"โจน","trisb":"โง","tritime":"โจป","trpezium":"โข","Tscr":"๐’ฏ","tscr":"๐“‰","TScy":"ะฆ","tscy":"ั†","TSHcy":"ะ‹","tshcy":"ั›","Tstrok":"ลฆ","tstrok":"ลง","twixt":"โ‰ฌ","twoheadleftarrow":"โ†ž","twoheadrightarrow":"โ† ","Uacute":"รš","uacute":"รบ","uarr":"โ†‘","Uarr":"โ†Ÿ","uArr":"โ‡‘","Uarrocir":"โฅ‰","Ubrcy":"ะŽ","ubrcy":"ัž","Ubreve":"ลฌ","ubreve":"ลญ","Ucirc":"ร›","ucirc":"รป","Ucy":"ะฃ","ucy":"ัƒ","udarr":"โ‡…","Udblac":"ลฐ","udblac":"ลฑ","udhar":"โฅฎ","ufisht":"โฅพ","Ufr":"๐”˜","ufr":"๐”ฒ","Ugrave":"ร™","ugrave":"รน","uHar":"โฅฃ","uharl":"โ†ฟ","uharr":"โ†พ","uhblk":"โ–€","ulcorn":"โŒœ","ulcorner":"โŒœ","ulcrop":"โŒ","ultri":"โ—ธ","Umacr":"ลช","umacr":"ลซ","uml":"ยจ","UnderBar":"_","UnderBrace":"โŸ","UnderBracket":"โŽต","UnderParenthesis":"โ","Union":"โ‹ƒ","UnionPlus":"โŠŽ","Uogon":"ลฒ","uogon":"ลณ","Uopf":"๐•Œ","uopf":"๐•ฆ","UpArrowBar":"โค’","uparrow":"โ†‘","UpArrow":"โ†‘","Uparrow":"โ‡‘","UpArrowDownArrow":"โ‡…","updownarrow":"โ†•","UpDownArrow":"โ†•","Updownarrow":"โ‡•","UpEquilibrium":"โฅฎ","upharpoonleft":"โ†ฟ","upharpoonright":"โ†พ","uplus":"โŠŽ","UpperLeftArrow":"โ†–","UpperRightArrow":"โ†—","upsi":"ฯ…","Upsi":"ฯ’","upsih":"ฯ’","Upsilon":"ฮฅ","upsilon":"ฯ…","UpTeeArrow":"โ†ฅ","UpTee":"โŠฅ","upuparrows":"โ‡ˆ","urcorn":"โŒ","urcorner":"โŒ","urcrop":"โŒŽ","Uring":"ลฎ","uring":"ลฏ","urtri":"โ—น","Uscr":"๐’ฐ","uscr":"๐“Š","utdot":"โ‹ฐ","Utilde":"ลจ","utilde":"ลฉ","utri":"โ–ต","utrif":"โ–ด","uuarr":"โ‡ˆ","Uuml":"รœ","uuml":"รผ","uwangle":"โฆง","vangrt":"โฆœ","varepsilon":"ฯต","varkappa":"ฯฐ","varnothing":"โˆ…","varphi":"ฯ•","varpi":"ฯ–","varpropto":"โˆ","varr":"โ†•","vArr":"โ‡•","varrho":"ฯฑ","varsigma":"ฯ‚","varsubsetneq":"โŠŠ๏ธ€","varsubsetneqq":"โซ‹๏ธ€","varsupsetneq":"โŠ‹๏ธ€","varsupsetneqq":"โซŒ๏ธ€","vartheta":"ฯ‘","vartriangleleft":"โŠฒ","vartriangleright":"โŠณ","vBar":"โซจ","Vbar":"โซซ","vBarv":"โซฉ","Vcy":"ะ’","vcy":"ะฒ","vdash":"โŠข","vDash":"โŠจ","Vdash":"โŠฉ","VDash":"โŠซ","Vdashl":"โซฆ","veebar":"โŠป","vee":"โˆจ","Vee":"โ‹","veeeq":"โ‰š","vellip":"โ‹ฎ","verbar":"|","Verbar":"โ€–","vert":"|","Vert":"โ€–","VerticalBar":"โˆฃ","VerticalLine":"|","VerticalSeparator":"โ˜","VerticalTilde":"โ‰€","VeryThinSpace":"โ€Š","Vfr":"๐”™","vfr":"๐”ณ","vltri":"โŠฒ","vnsub":"โŠ‚โƒ’","vnsup":"โŠƒโƒ’","Vopf":"๐•","vopf":"๐•ง","vprop":"โˆ","vrtri":"โŠณ","Vscr":"๐’ฑ","vscr":"๐“‹","vsubnE":"โซ‹๏ธ€","vsubne":"โŠŠ๏ธ€","vsupnE":"โซŒ๏ธ€","vsupne":"โŠ‹๏ธ€","Vvdash":"โŠช","vzigzag":"โฆš","Wcirc":"ลด","wcirc":"ลต","wedbar":"โฉŸ","wedge":"โˆง","Wedge":"โ‹€","wedgeq":"โ‰™","weierp":"โ„˜","Wfr":"๐”š","wfr":"๐”ด","Wopf":"๐•Ž","wopf":"๐•จ","wp":"โ„˜","wr":"โ‰€","wreath":"โ‰€","Wscr":"๐’ฒ","wscr":"๐“Œ","xcap":"โ‹‚","xcirc":"โ—ฏ","xcup":"โ‹ƒ","xdtri":"โ–ฝ","Xfr":"๐”›","xfr":"๐”ต","xharr":"โŸท","xhArr":"โŸบ","Xi":"ฮž","xi":"ฮพ","xlarr":"โŸต","xlArr":"โŸธ","xmap":"โŸผ","xnis":"โ‹ป","xodot":"โจ€","Xopf":"๐•","xopf":"๐•ฉ","xoplus":"โจ","xotime":"โจ‚","xrarr":"โŸถ","xrArr":"โŸน","Xscr":"๐’ณ","xscr":"๐“","xsqcup":"โจ†","xuplus":"โจ„","xutri":"โ–ณ","xvee":"โ‹","xwedge":"โ‹€","Yacute":"ร","yacute":"รฝ","YAcy":"ะฏ","yacy":"ั","Ycirc":"ลถ","ycirc":"ลท","Ycy":"ะซ","ycy":"ั‹","yen":"ยฅ","Yfr":"๐”œ","yfr":"๐”ถ","YIcy":"ะ‡","yicy":"ั—","Yopf":"๐•","yopf":"๐•ช","Yscr":"๐’ด","yscr":"๐“Ž","YUcy":"ะฎ","yucy":"ัŽ","yuml":"รฟ","Yuml":"ลธ","Zacute":"ลน","zacute":"ลบ","Zcaron":"ลฝ","zcaron":"ลพ","Zcy":"ะ—","zcy":"ะท","Zdot":"ลป","zdot":"ลผ","zeetrf":"โ„จ","ZeroWidthSpace":"โ€‹","Zeta":"ฮ–","zeta":"ฮถ","zfr":"๐”ท","Zfr":"โ„จ","ZHcy":"ะ–","zhcy":"ะถ","zigrarr":"โ‡","zopf":"๐•ซ","Zopf":"โ„ค","Zscr":"๐’ต","zscr":"๐“","zwj":"โ€","zwnj":"โ€Œ"} /***/ }), -/* 170 */ +/* 168 */ /***/ (function(module, exports) { -module.exports = { - "amp": "&", - "apos": "'", - "gt": ">", - "lt": "<", - "quot": "\"" -}; +module.exports = {"amp":"&","apos":"'","gt":">","lt":"<","quot":"\""} /***/ }), -/* 171 */ +/* 169 */ /***/ (function(module, exports, __webpack_require__) { -exports = module.exports = __webpack_require__(288); +exports = module.exports = __webpack_require__(286); exports.Stream = exports; exports.Readable = exports; -exports.Writable = __webpack_require__(174); +exports.Writable = __webpack_require__(170); exports.Duplex = __webpack_require__(37); -exports.Transform = __webpack_require__(290); -exports.PassThrough = __webpack_require__(595); +exports.Transform = __webpack_require__(289); +exports.PassThrough = __webpack_require__(592); /***/ }), -/* 172 */ +/* 170 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -/* WEBPACK VAR INJECTION */(function(process) { +/* WEBPACK VAR INJECTION */(function(process, setImmediate, global) {// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. -if (!process.version || - process.version.indexOf('v0.') === 0 || - process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) { - module.exports = nextTick; -} else { - module.exports = process.nextTick; -} +// A bit simpler than readable streams. +// Implement an async ._write(chunk, encoding, cb), and it'll handle all +// the drain event emission and buffering. -function nextTick(fn, arg1, arg2, arg3) { - if (typeof fn !== 'function') { - throw new TypeError('"callback" argument must be a function'); - } - var len = arguments.length; - var args, i; - switch (len) { - case 0: - case 1: - return process.nextTick(fn); - case 2: - return process.nextTick(function afterTickOne() { - fn.call(null, arg1); - }); - case 3: - return process.nextTick(function afterTickTwo() { - fn.call(null, arg1, arg2); - }); - case 4: - return process.nextTick(function afterTickThree() { - fn.call(null, arg1, arg2, arg3); - }); - default: - args = new Array(len - 1); - i = 0; - while (i < args.length) { - args[i++] = arguments[i]; - } - return process.nextTick(function afterTick() { - fn.apply(null, args); - }); - } -} -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) -/***/ }), -/* 173 */ -/***/ (function(module, exports, __webpack_require__) { +/**/ -"use strict"; -/* WEBPACK VAR INJECTION */(function(global) { +var processNextTick = __webpack_require__(107); +/**/ -var buffer = __webpack_require__(1); -var Buffer = buffer.Buffer; -var SlowBuffer = buffer.SlowBuffer; -var MAX_LEN = buffer.kMaxLength || 2147483647; -exports.alloc = function alloc(size, fill, encoding) { - if (typeof Buffer.alloc === 'function') { - return Buffer.alloc(size, fill, encoding); - } - if (typeof encoding === 'number') { - throw new TypeError('encoding must not be number'); - } - if (typeof size !== 'number') { - throw new TypeError('size must be a number'); - } - if (size > MAX_LEN) { - throw new RangeError('size is too large'); - } - var enc = encoding; - var _fill = fill; - if (_fill === undefined) { - enc = undefined; - _fill = 0; - } - var buf = new Buffer(size); - if (typeof _fill === 'string') { - var fillBuf = new Buffer(_fill, enc); - var flen = fillBuf.length; - var i = -1; - while (++i < size) { - buf[i] = fillBuf[i % flen]; - } - } else { - buf.fill(_fill); - } - return buf; -} -exports.allocUnsafe = function allocUnsafe(size) { - if (typeof Buffer.allocUnsafe === 'function') { - return Buffer.allocUnsafe(size); - } - if (typeof size !== 'number') { - throw new TypeError('size must be a number'); - } - if (size > MAX_LEN) { - throw new RangeError('size is too large'); - } - return new Buffer(size); -} -exports.from = function from(value, encodingOrOffset, length) { - if (typeof Buffer.from === 'function' && (!global.Uint8Array || Uint8Array.from !== Buffer.from)) { - return Buffer.from(value, encodingOrOffset, length); - } - if (typeof value === 'number') { - throw new TypeError('"value" argument must not be a number'); - } - if (typeof value === 'string') { - return new Buffer(value, encodingOrOffset); - } - if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) { - var offset = encodingOrOffset; - if (arguments.length === 1) { - return new Buffer(value); - } - if (typeof offset === 'undefined') { - offset = 0; - } - var len = length; - if (typeof len === 'undefined') { - len = value.byteLength - offset; - } - if (offset >= value.byteLength) { - throw new RangeError('\'offset\' is out of bounds'); - } - if (len > value.byteLength - offset) { - throw new RangeError('\'length\' is out of bounds'); - } - return new Buffer(value.slice(offset, offset + len)); - } - if (Buffer.isBuffer(value)) { - var out = new Buffer(value.length); - value.copy(out, 0, 0, value.length); - return out; - } - if (value) { - if (Array.isArray(value) || (typeof ArrayBuffer !== 'undefined' && value.buffer instanceof ArrayBuffer) || 'length' in value) { - return new Buffer(value); - } - if (value.type === 'Buffer' && Array.isArray(value.data)) { - return new Buffer(value.data); - } - } +module.exports = Writable; - throw new TypeError('First argument must be a string, Buffer, ' + 'ArrayBuffer, Array, or array-like object.'); -} -exports.allocUnsafeSlow = function allocUnsafeSlow(size) { - if (typeof Buffer.allocUnsafeSlow === 'function') { - return Buffer.allocUnsafeSlow(size); - } - if (typeof size !== 'number') { - throw new TypeError('size must be a number'); - } - if (size >= MAX_LEN) { - throw new RangeError('size is too large'); - } - return new SlowBuffer(size); +/* */ +function WriteReq(chunk, encoding, cb) { + this.chunk = chunk; + this.encoding = encoding; + this.callback = cb; + this.next = null; } -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(9))) - -/***/ }), -/* 174 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process, setImmediate) {// A bit simpler than readable streams. -// Implement an async ._write(chunk, encoding, cb), and it'll handle all -// the drain event emission and buffering. - - - -module.exports = Writable; +// It seems a linked list but it is not +// there will be only 2 of these for each stream +function CorkedRequest(state) { + var _this = this; -/**/ -var processNextTick = __webpack_require__(172); -/**/ + this.next = null; + this.entry = null; + this.finish = function () { + onCorkedFinish(_this, state); + }; +} +/* */ /**/ var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : processNextTick; @@ -40405,35 +38782,36 @@ Writable.WritableState = WritableState; /**/ var util = __webpack_require__(67); -util.inherits = __webpack_require__(2); +util.inherits = __webpack_require__(1); /**/ /**/ var internalUtil = { - deprecate: __webpack_require__(594) + deprecate: __webpack_require__(591) }; /**/ /**/ -var Stream = __webpack_require__(289); +var Stream = __webpack_require__(287); /**/ -var Buffer = __webpack_require__(1).Buffer; /**/ -var bufferShim = __webpack_require__(173); +var Buffer = __webpack_require__(8).Buffer; +var OurUint8Array = global.Uint8Array || function () {}; +function _uint8ArrayToBuffer(chunk) { + return Buffer.from(chunk); +} +function _isUint8Array(obj) { + return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; +} /**/ +var destroyImpl = __webpack_require__(288); + util.inherits(Writable, Stream); function nop() {} -function WriteReq(chunk, encoding, cb) { - this.chunk = chunk; - this.encoding = encoding; - this.callback = cb; - this.next = null; -} - function WritableState(options, stream) { Duplex = Duplex || __webpack_require__(37); @@ -40453,7 +38831,10 @@ function WritableState(options, stream) { this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm; // cast to ints. - this.highWaterMark = ~~this.highWaterMark; + this.highWaterMark = Math.floor(this.highWaterMark); + + // if _final has been called + this.finalCalled = false; // drain event flag. this.needDrain = false; @@ -40464,6 +38845,9 @@ function WritableState(options, stream) { // when 'finish' is emitted this.finished = false; + // has it been destroyed + this.destroyed = false; + // should we decode strings into buffers before passing to _write? // this is here so that some node-core streams can optimize string // handling at a lower level. @@ -40545,7 +38929,7 @@ WritableState.prototype.getBuffer = function getBuffer() { Object.defineProperty(WritableState.prototype, 'buffer', { get: internalUtil.deprecate(function () { return this.getBuffer(); - }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.') + }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003') }); } catch (_) {} })(); @@ -40591,6 +38975,10 @@ function Writable(options) { if (typeof options.write === 'function') this._write = options.write; if (typeof options.writev === 'function') this._writev = options.writev; + + if (typeof options.destroy === 'function') this._destroy = options.destroy; + + if (typeof options.final === 'function') this._final = options.final; } Stream.call(this); @@ -40631,7 +39019,11 @@ function validChunk(stream, state, chunk, cb) { Writable.prototype.write = function (chunk, encoding, cb) { var state = this._writableState; var ret = false; - var isBuf = Buffer.isBuffer(chunk); + var isBuf = _isUint8Array(chunk) && !state.objectMode; + + if (isBuf && !Buffer.isBuffer(chunk)) { + chunk = _uint8ArrayToBuffer(chunk); + } if (typeof encoding === 'function') { cb = encoding; @@ -40676,7 +39068,7 @@ Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { function decodeChunk(state, chunk, encoding) { if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') { - chunk = bufferShim.from(chunk, encoding); + chunk = Buffer.from(chunk, encoding); } return chunk; } @@ -40686,8 +39078,12 @@ function decodeChunk(state, chunk, encoding) { // If we return false, then we need a drain event, so set that flag. function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { if (!isBuf) { - chunk = decodeChunk(state, chunk, encoding); - if (Buffer.isBuffer(chunk)) encoding = 'buffer'; + var newChunk = decodeChunk(state, chunk, encoding); + if (chunk !== newChunk) { + isBuf = true; + encoding = 'buffer'; + chunk = newChunk; + } } var len = state.objectMode ? 1 : chunk.length; @@ -40699,7 +39095,13 @@ function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { if (state.writing || state.corked) { var last = state.lastBufferedRequest; - state.lastBufferedRequest = new WriteReq(chunk, encoding, cb); + state.lastBufferedRequest = { + chunk: chunk, + encoding: encoding, + isBuf: isBuf, + callback: cb, + next: null + }; if (last) { last.next = state.lastBufferedRequest; } else { @@ -40724,10 +39126,26 @@ function doWrite(stream, state, writev, len, chunk, encoding, cb) { function onwriteError(stream, state, sync, er, cb) { --state.pendingcb; - if (sync) processNextTick(cb, er);else cb(er); - stream._writableState.errorEmitted = true; - stream.emit('error', er); + if (sync) { + // defer the callback if we are being called synchronously + // to avoid piling up things on the stack + processNextTick(cb, er); + // this can emit finish, and it will always happen + // after error + processNextTick(finishMaybe, stream, state); + stream._writableState.errorEmitted = true; + stream.emit('error', er); + } else { + // the caller expect this to happen before if + // it is async + cb(er); + stream._writableState.errorEmitted = true; + stream.emit('error', er); + // this can emit finish, but finish must + // always follow error + finishMaybe(stream, state); + } } function onwriteStateUpdate(state) { @@ -40792,11 +39210,14 @@ function clearBuffer(stream, state) { holder.entry = entry; var count = 0; + var allBuffers = true; while (entry) { buffer[count] = entry; + if (!entry.isBuf) allBuffers = false; entry = entry.next; count += 1; } + buffer.allBuffers = allBuffers; doWrite(stream, state, true, state.length, buffer, '', holder.finish); @@ -40870,23 +39291,37 @@ Writable.prototype.end = function (chunk, encoding, cb) { function needFinish(state) { return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; } - -function prefinish(stream, state) { - if (!state.prefinished) { +function callFinal(stream, state) { + stream._final(function (err) { + state.pendingcb--; + if (err) { + stream.emit('error', err); + } state.prefinished = true; stream.emit('prefinish'); + finishMaybe(stream, state); + }); +} +function prefinish(stream, state) { + if (!state.prefinished && !state.finalCalled) { + if (typeof stream._final === 'function') { + state.pendingcb++; + state.finalCalled = true; + processNextTick(callFinal, stream, state); + } else { + state.prefinished = true; + stream.emit('prefinish'); + } } } function finishMaybe(stream, state) { var need = needFinish(state); if (need) { + prefinish(stream, state); if (state.pendingcb === 0) { - prefinish(stream, state); state.finished = true; stream.emit('finish'); - } else { - prefinish(stream, state); } } return need; @@ -40902,40 +39337,59 @@ function endWritable(stream, state, cb) { stream.writable = false; } -// It seems a linked list but it is not -// there will be only 2 of these for each stream -function CorkedRequest(state) { - var _this = this; +function onCorkedFinish(corkReq, state, err) { + var entry = corkReq.entry; + corkReq.entry = null; + while (entry) { + var cb = entry.callback; + state.pendingcb--; + cb(err); + entry = entry.next; + } + if (state.corkedRequestsFree) { + state.corkedRequestsFree.next = corkReq; + } else { + state.corkedRequestsFree = corkReq; + } +} - this.next = null; - this.entry = null; - this.finish = function (err) { - var entry = _this.entry; - _this.entry = null; - while (entry) { - var cb = entry.callback; - state.pendingcb--; - cb(err); - entry = entry.next; +Object.defineProperty(Writable.prototype, 'destroyed', { + get: function () { + if (this._writableState === undefined) { + return false; } - if (state.corkedRequestsFree) { - state.corkedRequestsFree.next = _this; - } else { - state.corkedRequestsFree = _this; + return this._writableState.destroyed; + }, + set: function (value) { + // we ignore the value if the stream + // has not been initialized yet + if (!this._writableState) { + return; } - }; -} -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0), __webpack_require__(592).setImmediate)) + + // backward compatibility, the user is explicitly + // managing destroyed + this._writableState.destroyed = value; + } +}); + +Writable.prototype.destroy = destroyImpl.destroy; +Writable.prototype._undestroy = destroyImpl.undestroy; +Writable.prototype._destroy = function (err, cb) { + this.end(); + cb(err); +}; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0), __webpack_require__(589).setImmediate, __webpack_require__(10))) /***/ }), -/* 175 */ +/* 171 */ /***/ (function(module, exports, __webpack_require__) { /* Module dependencies */ -var ElementType = __webpack_require__(603); -var entities = __webpack_require__(604); +var ElementType = __webpack_require__(600); +var entities = __webpack_require__(601); /* Boolean Attributes @@ -41112,7 +39566,7 @@ function renderComment(elem) { /***/ }), -/* 176 */ +/* 172 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(global) {/** @@ -42370,22 +40824,22 @@ bind.placeholder = {}; module.exports = bind; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(9))) +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(10))) /***/ }), -/* 177 */ +/* 173 */ /***/ (function(module, exports, __webpack_require__) { /** * Module dependencies */ -var serialize = __webpack_require__(175), - select = __webpack_require__(293), +var serialize = __webpack_require__(171), + select = __webpack_require__(292), parse = __webpack_require__(105), _ = { - merge: __webpack_require__(621), - defaults: __webpack_require__(292) + merge: __webpack_require__(618), + defaults: __webpack_require__(291) }; /** @@ -42393,7 +40847,7 @@ var serialize = __webpack_require__(175), */ exports.load = function(content, options) { - var Cheerio = __webpack_require__(168); + var Cheerio = __webpack_require__(166); options = _.defaults(options || {}, Cheerio.prototype.options); @@ -42453,7 +40907,7 @@ function render(that, dom, options) { */ exports.html = function(dom, options) { - var Cheerio = __webpack_require__(168); + var Cheerio = __webpack_require__(166); // be flexible about parameters, sometimes we call html(), // with options as only parameter @@ -42566,7 +41020,7 @@ exports.contains = function(container, contained) { /***/ }), -/* 178 */ +/* 174 */ /***/ (function(module, exports, __webpack_require__) { /* @@ -42582,7 +41036,7 @@ exports.contains = function(container, contained) { they need to return a boolean */ -var DomUtils = __webpack_require__(45), +var DomUtils = __webpack_require__(46), isTag = DomUtils.isTag, getText = DomUtils.getText, getParent = DomUtils.getParent, @@ -42591,8 +41045,8 @@ var DomUtils = __webpack_require__(45), hasAttrib = DomUtils.hasAttrib, getName = DomUtils.getName, getAttribute= DomUtils.getAttributeValue, - getNCheck = __webpack_require__(614), - checkAttrib = __webpack_require__(294).rules.equals, + getNCheck = __webpack_require__(611), + checkAttrib = __webpack_require__(293).rules.equals, BaseFuncs = __webpack_require__(69), trueFunc = BaseFuncs.trueFunc, falseFunc = BaseFuncs.falseFunc; @@ -42965,181 +41419,182 @@ module.exports = { /***/ }), -/* 179 */ +/* 175 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; - - -/** - * Module dependencies. - */ - -var mensch = __webpack_require__(634); -var own = {}.hasOwnProperty; -var os = __webpack_require__(637); -var Selector = __webpack_require__(638); -var Property = __webpack_require__(640); - -exports.Selector = Selector; -exports.Property = Property; - -/** - * Returns an array of the selectors. - * - * @license Sizzle CSS Selector Engine - MIT - * @param {String} selectorText from mensch - * @api public - */ - -exports.extract = function extract(selectorText) { - var attr = 0; - var sels = []; - var sel = ''; - - for (var i = 0, l = selectorText.length; i < l; i++) { - var c = selectorText.charAt(i); - - if (attr) { - if (']' === c || ')' === c) { attr--; } - sel += c; - } else { - if (',' === c) { - sels.push(sel); - sel = ''; - } else { - if ('[' === c || '(' === c) { attr++; } - if (sel.length || (c !== ',' && c !== '\n' && c !== ' ')) { sel += c; } - } - } - } - - if (sel.length) { - sels.push(sel); - } - - return sels; -}; - -/** - * Returns a parse tree for a CSS source. - * If it encounters multiple selectors separated by a comma, it splits the - * tree. - * - * @param {String} css source - * @api public - */ - -exports.parseCSS = function(css) { - var parsed = mensch.parse(css, {position: true, comments: true}); - var rules = typeof parsed.stylesheet != 'undefined' && parsed.stylesheet.rules ? parsed.stylesheet.rules : []; - var ret = []; - - for (var i = 0, l = rules.length; i < l; i++) { - if (rules[i].type == 'rule') { - var rule = rules[i]; - var selectors = rule.selectors; - - for (var ii = 0, ll = selectors.length; ii < ll; ii++) { - ret.push([selectors[ii], rule.declarations]); - } - } - } - - return ret; -}; - -/** - * Returns preserved text for a CSS source. - * - * @param {String} css source - * @param {Object} options - * @api public - */ - -exports.getPreservedText = function(css, options) { - var parsed = mensch.parse(css, {position: true, comments: true}); - var rules = typeof parsed.stylesheet != 'undefined' && parsed.stylesheet.rules ? parsed.stylesheet.rules : []; - var preserved = []; - var lastStart = null; - - for (var i = rules.length - 1; i >= 0; i--) { - if ((options.fontFaces && rules[i].type === 'font-face') || - (options.mediaQueries && rules[i].type === 'media')) { - preserved.push( - mensch.stringify( - { stylesheet: { rules: [ rules[i] ] }}, - { comments: false, indentation: ' ' } - ) - ); - } - lastStart = rules[i].position.start; - } - - if (preserved.length === 0) return false; - return os.EOL+preserved.join(os.EOL)+os.EOL; -}; - -exports.normalizeLineEndings = function(text) { - return text.replace(/\r\n/g, '\n').replace(/\n/g, '\r\n'); -}; - - -/** - * Compares two specificity vectors, returning the winning one. - * - * @param {Array} vector a - * @param {Array} vector b - * @return {Array} - * @api public - */ - -exports.compareFunc = function(a, b) { - var min = Math.min(a.length, b.length); - for (var i = 0; i < min; i++) { - if (a[i] === b[i]) { continue; } - if (a[i] > b[i]) { return 1; } - return -1; - } - - return a.length-b.length; -}; - -exports.compare = function(a, b) { - return exports.compareFunc(a, b) == 1 ? a : b; -}; - -exports.extend = function(obj, src) { - for (var key in src) { - if (own.call(src, key)) { - obj[key] = src[key]; - } - } - return obj; -}; - -exports.getDefaultOptions = function(options) { - var result = exports.extend({ - extraCss: '', - insertPreservedExtraCss: true, - applyStyleTags: true, - removeStyleTags: true, - preserveMediaQueries: true, - preserveFontFaces: true, - applyWidthAttributes: true, - applyHeightAttributes: true, - applyAttributesTableElements: true, - url: '' - }, options); - - result.webResources = result.webResources || {}; - - return result; -}; + + +/** + * Module dependencies. + */ + +var mensch = __webpack_require__(631); +var own = {}.hasOwnProperty; +var Selector = __webpack_require__(634); +var Property = __webpack_require__(636); + +exports.Selector = Selector; +exports.Property = Property; + +/** + * Returns an array of the selectors. + * + * @license Sizzle CSS Selector Engine - MIT + * @param {String} selectorText from mensch + * @api public + */ + +exports.extract = function extract(selectorText) { + var attr = 0; + var sels = []; + var sel = ''; + + for (var i = 0, l = selectorText.length; i < l; i++) { + var c = selectorText.charAt(i); + + if (attr) { + if (']' === c || ')' === c) { attr--; } + sel += c; + } else { + if (',' === c) { + sels.push(sel); + sel = ''; + } else { + if ('[' === c || '(' === c) { attr++; } + if (sel.length || (c !== ',' && c !== '\n' && c !== ' ')) { sel += c; } + } + } + } + + if (sel.length) { + sels.push(sel); + } + + return sels; +}; + +/** + * Returns a parse tree for a CSS source. + * If it encounters multiple selectors separated by a comma, it splits the + * tree. + * + * @param {String} css source + * @api public + */ + +exports.parseCSS = function(css) { + var parsed = mensch.parse(css, {position: true, comments: true}); + var rules = typeof parsed.stylesheet != 'undefined' && parsed.stylesheet.rules ? parsed.stylesheet.rules : []; + var ret = []; + + for (var i = 0, l = rules.length; i < l; i++) { + if (rules[i].type == 'rule') { + var rule = rules[i]; + var selectors = rule.selectors; + + for (var ii = 0, ll = selectors.length; ii < ll; ii++) { + ret.push([selectors[ii], rule.declarations]); + } + } + } + + return ret; +}; + +/** + * Returns preserved text for a CSS source. + * + * @param {String} css source + * @param {Object} options + * @api public + */ + +exports.getPreservedText = function(css, options) { + var parsed = mensch.parse(css, {position: true, comments: true}); + var rules = typeof parsed.stylesheet != 'undefined' && parsed.stylesheet.rules ? parsed.stylesheet.rules : []; + var preserved = []; + var lastStart = null; + + for (var i = rules.length - 1; i >= 0; i--) { + if ((options.fontFaces && rules[i].type === 'font-face') || + (options.mediaQueries && rules[i].type === 'media')) { + preserved.unshift( + mensch.stringify( + { stylesheet: { rules: [ rules[i] ] }}, + { comments: false, indentation: ' ' } + ) + ); + } + lastStart = rules[i].position.start; + } + + if (preserved.length === 0) { + return false; + } + return '\n' + preserved.join('\n') + '\n'; +}; + +exports.normalizeLineEndings = function(text) { + return text.replace(/\r\n/g, '\n').replace(/\n/g, '\r\n'); +}; + + +/** + * Compares two specificity vectors, returning the winning one. + * + * @param {Array} vector a + * @param {Array} vector b + * @return {Array} + * @api public + */ + +exports.compareFunc = function(a, b) { + var min = Math.min(a.length, b.length); + for (var i = 0; i < min; i++) { + if (a[i] === b[i]) { continue; } + if (a[i] > b[i]) { return 1; } + return -1; + } + + return a.length - b.length; +}; + +exports.compare = function(a, b) { + return exports.compareFunc(a, b) == 1 ? a : b; +}; + +exports.extend = function(obj, src) { + for (var key in src) { + if (own.call(src, key)) { + obj[key] = src[key]; + } + } + return obj; +}; + +exports.getDefaultOptions = function(options) { + var result = exports.extend({ + extraCss: '', + insertPreservedExtraCss: true, + applyStyleTags: true, + removeStyleTags: true, + preserveMediaQueries: true, + preserveFontFaces: true, + applyWidthAttributes: true, + applyHeightAttributes: true, + applyAttributesTableElements: true, + url: '' + }, options); + + result.webResources = result.webResources || {}; + + return result; +}; /***/ }), -/* 180 */ +/* 176 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {exports = module.exports = debug; @@ -43156,7 +41611,7 @@ function _debug(label) { /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 181 */ +/* 177 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -43172,13 +41627,13 @@ var _createClass = function () { function defineProperties(target, props) { for var _class; -var _mjmlCore = __webpack_require__(5); +var _mjmlCore = __webpack_require__(3); -var _cloneDeep = __webpack_require__(126); +var _cloneDeep = __webpack_require__(125); var _cloneDeep2 = _interopRequireDefault(_cloneDeep); -var _react = __webpack_require__(6); +var _react = __webpack_require__(5); var _react2 = _interopRequireDefault(_react); @@ -43448,7 +41903,7 @@ Section.postRender = postRender; exports.default = Section; /***/ }), -/* 182 */ +/* 178 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -43462,7 +41917,7 @@ exports.default = Section; * See http://pajhome.org.uk/crypt/md5 for more info. */ -var makeHash = __webpack_require__(699) +var makeHash = __webpack_require__(694) /* * Calculate the MD5 of an array of little-endian words, and a bit length @@ -43606,13 +42061,13 @@ module.exports = function md5 (buf) { /***/ }), -/* 183 */ +/* 179 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(Buffer) { -var inherits = __webpack_require__(2) -var HashBase = __webpack_require__(700) +var inherits = __webpack_require__(1) +var HashBase = __webpack_require__(695) function RIPEMD160 () { HashBase.call(this, 64) @@ -43902,10 +42357,10 @@ function fn5 (a, b, c, d, e, m, k, s) { module.exports = RIPEMD160 -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1).Buffer)) +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(7).Buffer)) /***/ }), -/* 184 */ +/* 180 */ /***/ (function(module, exports, __webpack_require__) { var exports = module.exports = function SHA (algorithm) { @@ -43917,33 +42372,59 @@ var exports = module.exports = function SHA (algorithm) { return new Algorithm() } -exports.sha = __webpack_require__(701) -exports.sha1 = __webpack_require__(702) -exports.sha224 = __webpack_require__(703) -exports.sha256 = __webpack_require__(308) -exports.sha384 = __webpack_require__(704) -exports.sha512 = __webpack_require__(309) +exports.sha = __webpack_require__(696) +exports.sha1 = __webpack_require__(697) +exports.sha224 = __webpack_require__(698) +exports.sha256 = __webpack_require__(307) +exports.sha384 = __webpack_require__(699) +exports.sha512 = __webpack_require__(308) /***/ }), -/* 185 */ +/* 181 */ /***/ (function(module, exports, __webpack_require__) { -var ciphers = __webpack_require__(712) -exports.createCipher = exports.Cipher = ciphers.createCipher -exports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv +var ciphers = __webpack_require__(706) var deciphers = __webpack_require__(714) -exports.createDecipher = exports.Decipher = deciphers.createDecipher -exports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv -var modes = __webpack_require__(111) +var modes = __webpack_require__(317) + function getCiphers () { return Object.keys(modes) } + +exports.createCipher = exports.Cipher = ciphers.createCipher +exports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv +exports.createDecipher = exports.Decipher = deciphers.createDecipher +exports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv exports.listCiphers = exports.getCiphers = getCiphers /***/ }), -/* 186 */ +/* 182 */ +/***/ (function(module, exports, __webpack_require__) { + +var modeModules = { + ECB: __webpack_require__(707), + CBC: __webpack_require__(708), + CFB: __webpack_require__(709), + CFB8: __webpack_require__(710), + CFB1: __webpack_require__(711), + OFB: __webpack_require__(712), + CTR: __webpack_require__(315), + GCM: __webpack_require__(315) +} + +var modes = __webpack_require__(317) + +for (var key in modes) { + modes[key].module = modeModules[modes[key].mode] +} + +module.exports = modes + + +/***/ }), +/* 183 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -43957,11 +42438,11 @@ exports.EDE = __webpack_require__(720); /***/ }), -/* 187 */ +/* 184 */ /***/ (function(module, exports, __webpack_require__) { -/* WEBPACK VAR INJECTION */(function(Buffer) {var bn = __webpack_require__(11); -var randomBytes = __webpack_require__(70); +/* WEBPACK VAR INJECTION */(function(Buffer) {var bn = __webpack_require__(12); +var randomBytes = __webpack_require__(48); module.exports = crt; function blind(priv) { var r = getr(priv); @@ -44001,16 +42482,16 @@ function getr(priv) { return r; } -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1).Buffer)) +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(7).Buffer)) /***/ }), -/* 188 */ +/* 185 */ /***/ (function(module, exports, __webpack_require__) { var hash = exports; -hash.utils = __webpack_require__(23); -hash.common = __webpack_require__(73); +hash.utils = __webpack_require__(24); +hash.common = __webpack_require__(72); hash.sha = __webpack_require__(736); hash.ripemd = __webpack_require__(740); hash.hmac = __webpack_require__(741); @@ -44025,7 +42506,7 @@ hash.ripemd160 = hash.ripemd.ripemd160; /***/ }), -/* 189 */ +/* 186 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -44035,7 +42516,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var _mjmlCore = __webpack_require__(5); +var _mjmlCore = __webpack_require__(3); Object.keys(_mjmlCore).forEach(function (key) { if (key === "default" || key === "__esModule") return; @@ -44047,111 +42528,111 @@ Object.keys(_mjmlCore).forEach(function (key) { }); }); -var _each = __webpack_require__(99); +var _each = __webpack_require__(98); var _each2 = _interopRequireDefault(_each); -var _mjmlButton = __webpack_require__(649); +var _mjmlButton = __webpack_require__(645); var _mjmlButton2 = _interopRequireDefault(_mjmlButton); -var _mjmlColumn = __webpack_require__(650); +var _mjmlColumn = __webpack_require__(646); var _mjmlColumn2 = _interopRequireDefault(_mjmlColumn); -var _mjmlContainer = __webpack_require__(655); +var _mjmlContainer = __webpack_require__(651); var _mjmlContainer2 = _interopRequireDefault(_mjmlContainer); -var _mjmlDivider = __webpack_require__(656); +var _mjmlDivider = __webpack_require__(652); var _mjmlDivider2 = _interopRequireDefault(_mjmlDivider); -var _mjmlGroup = __webpack_require__(657); +var _mjmlGroup = __webpack_require__(653); var _mjmlGroup2 = _interopRequireDefault(_mjmlGroup); -var _mjmlHtml = __webpack_require__(658); +var _mjmlHtml = __webpack_require__(654); var _mjmlHtml2 = _interopRequireDefault(_mjmlHtml); -var _mjmlImage = __webpack_require__(300); +var _mjmlImage = __webpack_require__(299); var _mjmlImage2 = _interopRequireDefault(_mjmlImage); -var _mjmlList = __webpack_require__(661); +var _mjmlList = __webpack_require__(657); var _mjmlList2 = _interopRequireDefault(_mjmlList); -var _mjmlLocation = __webpack_require__(662); +var _mjmlLocation = __webpack_require__(658); var _mjmlLocation2 = _interopRequireDefault(_mjmlLocation); -var _mjmlAccordion = __webpack_require__(663); +var _mjmlAccordion = __webpack_require__(659); var _mjmlAccordion2 = _interopRequireDefault(_mjmlAccordion); -var _mjmlCarousel = __webpack_require__(666); +var _mjmlCarousel = __webpack_require__(662); var _mjmlCarousel2 = _interopRequireDefault(_mjmlCarousel); -var _mjmlHero = __webpack_require__(674); +var _mjmlHero = __webpack_require__(670); var _mjmlHero2 = _interopRequireDefault(_mjmlHero); -var _mjmlInvoice = __webpack_require__(677); +var _mjmlInvoice = __webpack_require__(673); var _mjmlInvoice2 = _interopRequireDefault(_mjmlInvoice); -var _mjmlNavbar = __webpack_require__(688); +var _mjmlNavbar = __webpack_require__(684); var _mjmlNavbar2 = _interopRequireDefault(_mjmlNavbar); -var _mjmlRaw = __webpack_require__(770); +var _mjmlRaw = __webpack_require__(771); var _mjmlRaw2 = _interopRequireDefault(_mjmlRaw); -var _mjmlSection = __webpack_require__(181); +var _mjmlSection = __webpack_require__(177); var _mjmlSection2 = _interopRequireDefault(_mjmlSection); -var _mjmlSocial = __webpack_require__(771); +var _mjmlSocial = __webpack_require__(772); var _mjmlSocial2 = _interopRequireDefault(_mjmlSocial); -var _mjmlSpacer = __webpack_require__(774); +var _mjmlSpacer = __webpack_require__(775); var _mjmlSpacer2 = _interopRequireDefault(_mjmlSpacer); -var _mjmlTable = __webpack_require__(305); +var _mjmlTable = __webpack_require__(304); var _mjmlTable2 = _interopRequireDefault(_mjmlTable); -var _mjmlText = __webpack_require__(302); +var _mjmlText = __webpack_require__(301); var _mjmlText2 = _interopRequireDefault(_mjmlText); -var _mjmlWrapper = __webpack_require__(775); +var _mjmlWrapper = __webpack_require__(776); var _mjmlWrapper2 = _interopRequireDefault(_mjmlWrapper); -var _mjmlHeadAttributes = __webpack_require__(776); +var _mjmlHeadAttributes = __webpack_require__(777); var _mjmlHeadAttributes2 = _interopRequireDefault(_mjmlHeadAttributes); -var _mjmlHeadFont = __webpack_require__(778); +var _mjmlHeadFont = __webpack_require__(779); var _mjmlHeadFont2 = _interopRequireDefault(_mjmlHeadFont); -var _mjmlHeadStyle = __webpack_require__(779); +var _mjmlHeadStyle = __webpack_require__(780); var _mjmlHeadStyle2 = _interopRequireDefault(_mjmlHeadStyle); -var _mjmlHeadTitle = __webpack_require__(780); +var _mjmlHeadTitle = __webpack_require__(781); var _mjmlHeadTitle2 = _interopRequireDefault(_mjmlHeadTitle); -var _mjmlHeadPreview = __webpack_require__(781); +var _mjmlHeadPreview = __webpack_require__(782); var _mjmlHeadPreview2 = _interopRequireDefault(_mjmlHeadPreview); @@ -44179,7 +42660,7 @@ var Navbar = _mjmlNavbar2.default.Navbar, }); /***/ }), -/* 190 */ +/* 187 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -44190,11 +42671,11 @@ Object.defineProperty(exports, "__esModule", { }); exports.includes = undefined; -var _fs = __webpack_require__(344); +var _fs = __webpack_require__(339); var _fs2 = _interopRequireDefault(_fs); -var _path = __webpack_require__(191); +var _path = __webpack_require__(188); var _path2 = _interopRequireDefault(_path); @@ -44278,7 +42759,7 @@ exports.default = function (baseMjml, _ref) { /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 191 */ +/* 188 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {// Copyright Joyent, Inc. and other Node contributors. @@ -44509,7 +42990,7 @@ var substr = 'ab'.substr(-1) === 'b' /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 192 */ +/* 189 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -44601,16 +43082,14 @@ var MJMLValidationError = function () { exports.MJMLValidationError = MJMLValidationError; /***/ }), -/* 193 */ +/* 190 */ /***/ (function(module, exports, __webpack_require__) { /** - * Copyright (c) 2014-2015, Facebook, Inc. - * All rights reserved. + * Copyright (c) 2014-present, Facebook, Inc. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ (function (global, factory) { @@ -49585,10 +48064,10 @@ exports.MJMLValidationError = MJMLValidationError; })); /***/ }), -/* 194 */ +/* 191 */ /***/ (function(module, exports, __webpack_require__) { -var apply = __webpack_require__(49); +var apply = __webpack_require__(50); /* Built-in method references for those with the same name as other `lodash` methods. */ var nativeMax = Math.max; @@ -49627,10 +48106,10 @@ module.exports = overRest; /***/ }), -/* 195 */ +/* 192 */ /***/ (function(module, exports, __webpack_require__) { -var getNative = __webpack_require__(31); +var getNative = __webpack_require__(32); var defineProperty = (function() { try { @@ -49644,7 +48123,7 @@ module.exports = defineProperty; /***/ }), -/* 196 */ +/* 193 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */ @@ -49652,10 +48131,10 @@ var freeGlobal = typeof global == 'object' && global && global.Object === Object module.exports = freeGlobal; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(9))) +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(10))) /***/ }), -/* 197 */ +/* 194 */ /***/ (function(module, exports) { /** Used for built-in method references. */ @@ -49687,7 +48166,7 @@ module.exports = toSource; /***/ }), -/* 198 */ +/* 195 */ /***/ (function(module, exports) { /** Used to detect hot functions by number of calls within a span of milliseconds. */ @@ -49730,10 +48209,10 @@ module.exports = shortOut; /***/ }), -/* 199 */ +/* 196 */ /***/ (function(module, exports, __webpack_require__) { -var baseAssignValue = __webpack_require__(81), +var baseAssignValue = __webpack_require__(80), eq = __webpack_require__(39); /** @@ -49756,10 +48235,10 @@ module.exports = assignMergeValue; /***/ }), -/* 200 */ +/* 197 */ /***/ (function(module, exports, __webpack_require__) { -var createBaseFor = __webpack_require__(380); +var createBaseFor = __webpack_require__(375); /** * The base implementation of `baseForOwn` which iterates over `object` @@ -49778,10 +48257,10 @@ module.exports = baseFor; /***/ }), -/* 201 */ +/* 198 */ /***/ (function(module, exports, __webpack_require__) { -/* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(14); +/* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(15); /** Detect free variable `exports`. */ var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports; @@ -49817,13 +48296,13 @@ function cloneBuffer(buffer, isDeep) { module.exports = cloneBuffer; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(16)(module))) +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(17)(module))) /***/ }), -/* 202 */ +/* 199 */ /***/ (function(module, exports, __webpack_require__) { -var cloneArrayBuffer = __webpack_require__(121); +var cloneArrayBuffer = __webpack_require__(120); /** * Creates a clone of `typedArray`. @@ -49842,10 +48321,10 @@ module.exports = cloneTypedArray; /***/ }), -/* 203 */ +/* 200 */ /***/ (function(module, exports, __webpack_require__) { -var root = __webpack_require__(14); +var root = __webpack_require__(15); /** Built-in value references. */ var Uint8Array = root.Uint8Array; @@ -49854,12 +48333,12 @@ module.exports = Uint8Array; /***/ }), -/* 204 */ +/* 201 */ /***/ (function(module, exports, __webpack_require__) { -var baseCreate = __webpack_require__(82), - getPrototype = __webpack_require__(122), - isPrototype = __webpack_require__(50); +var baseCreate = __webpack_require__(81), + getPrototype = __webpack_require__(121), + isPrototype = __webpack_require__(51); /** * Initializes an object clone. @@ -49878,7 +48357,7 @@ module.exports = initCloneObject; /***/ }), -/* 205 */ +/* 202 */ /***/ (function(module, exports) { /** @@ -49899,12 +48378,12 @@ module.exports = overArg; /***/ }), -/* 206 */ +/* 203 */ /***/ (function(module, exports, __webpack_require__) { -var baseGetTag = __webpack_require__(32), - getPrototype = __webpack_require__(122), - isObjectLike = __webpack_require__(24); +var baseGetTag = __webpack_require__(33), + getPrototype = __webpack_require__(121), + isObjectLike = __webpack_require__(25); /** `Object#toString` result references. */ var objectTag = '[object Object]'; @@ -49967,15 +48446,15 @@ module.exports = isPlainObject; /***/ }), -/* 207 */ +/* 204 */ /***/ (function(module, exports, __webpack_require__) { -var baseTimes = __webpack_require__(389), - isArguments = __webpack_require__(51), - isArray = __webpack_require__(10), - isBuffer = __webpack_require__(52), - isIndex = __webpack_require__(84), - isTypedArray = __webpack_require__(83); +var baseTimes = __webpack_require__(384), + isArguments = __webpack_require__(52), + isArray = __webpack_require__(11), + isBuffer = __webpack_require__(53), + isIndex = __webpack_require__(83), + isTypedArray = __webpack_require__(82); /** Used for built-in method references. */ var objectProto = Object.prototype; @@ -50022,11 +48501,11 @@ module.exports = arrayLikeKeys; /***/ }), -/* 208 */ +/* 205 */ /***/ (function(module, exports, __webpack_require__) { -var baseMerge = __webpack_require__(118), - createAssigner = __webpack_require__(85); +var baseMerge = __webpack_require__(117), + createAssigner = __webpack_require__(84); /** * This method is like `_.merge` except that it accepts `customizer` which @@ -50067,11 +48546,11 @@ module.exports = mergeWith; /***/ }), -/* 209 */ +/* 206 */ /***/ (function(module, exports, __webpack_require__) { -var isPrototype = __webpack_require__(50), - nativeKeys = __webpack_require__(393); +var isPrototype = __webpack_require__(51), + nativeKeys = __webpack_require__(388); /** Used for built-in method references. */ var objectProto = Object.prototype; @@ -50103,7 +48582,7 @@ module.exports = baseKeys; /***/ }), -/* 210 */ +/* 207 */ /***/ (function(module, exports) { /** @@ -50134,7 +48613,7 @@ module.exports = arrayFilter; /***/ }), -/* 211 */ +/* 208 */ /***/ (function(module, exports) { /** @@ -50163,13 +48642,13 @@ module.exports = stubArray; /***/ }), -/* 212 */ +/* 209 */ /***/ (function(module, exports, __webpack_require__) { -var arrayPush = __webpack_require__(89), - getPrototype = __webpack_require__(122), - getSymbols = __webpack_require__(129), - stubArray = __webpack_require__(211); +var arrayPush = __webpack_require__(88), + getPrototype = __webpack_require__(121), + getSymbols = __webpack_require__(128), + stubArray = __webpack_require__(208); /* Built-in method references for those with the same name as other `lodash` methods. */ var nativeGetSymbols = Object.getOwnPropertySymbols; @@ -50194,12 +48673,12 @@ module.exports = getSymbolsIn; /***/ }), -/* 213 */ +/* 210 */ /***/ (function(module, exports, __webpack_require__) { -var baseGetAllKeys = __webpack_require__(214), - getSymbols = __webpack_require__(129), - keys = __webpack_require__(25); +var baseGetAllKeys = __webpack_require__(211), + getSymbols = __webpack_require__(128), + keys = __webpack_require__(26); /** * Creates an array of own enumerable property names and symbols of `object`. @@ -50216,11 +48695,11 @@ module.exports = getAllKeys; /***/ }), -/* 214 */ +/* 211 */ /***/ (function(module, exports, __webpack_require__) { -var arrayPush = __webpack_require__(89), - isArray = __webpack_require__(10); +var arrayPush = __webpack_require__(88), + isArray = __webpack_require__(11); /** * The base implementation of `getAllKeys` and `getAllKeysIn` which uses @@ -50242,12 +48721,12 @@ module.exports = baseGetAllKeys; /***/ }), -/* 215 */ +/* 212 */ /***/ (function(module, exports, __webpack_require__) { -var baseGetAllKeys = __webpack_require__(214), - getSymbolsIn = __webpack_require__(212), - keysIn = __webpack_require__(53); +var baseGetAllKeys = __webpack_require__(211), + getSymbolsIn = __webpack_require__(209), + keysIn = __webpack_require__(54); /** * Creates an array of own and inherited enumerable property names and @@ -50265,11 +48744,11 @@ module.exports = getAllKeysIn; /***/ }), -/* 216 */ +/* 213 */ /***/ (function(module, exports, __webpack_require__) { -var getNative = __webpack_require__(31), - root = __webpack_require__(14); +var getNative = __webpack_require__(32), + root = __webpack_require__(15); /* Built-in method references that are verified to be native. */ var Set = getNative(root, 'Set'); @@ -50278,11 +48757,11 @@ module.exports = Set; /***/ }), -/* 217 */ +/* 214 */ /***/ (function(module, exports, __webpack_require__) { -var getNative = __webpack_require__(31), - root = __webpack_require__(14); +var getNative = __webpack_require__(32), + root = __webpack_require__(15); /* Built-in method references that are verified to be native. */ var WeakMap = getNative(root, 'WeakMap'); @@ -50291,7 +48770,7 @@ module.exports = WeakMap; /***/ }), -/* 218 */ +/* 215 */ /***/ (function(module, exports) { /** @@ -50323,7 +48802,7 @@ module.exports = arrayReduce; /***/ }), -/* 219 */ +/* 216 */ /***/ (function(module, exports) { /** @@ -50352,11 +48831,11 @@ module.exports = arraySome; /***/ }), -/* 220 */ +/* 217 */ /***/ (function(module, exports, __webpack_require__) { -var baseIsEqualDeep = __webpack_require__(413), - isObjectLike = __webpack_require__(24); +var baseIsEqualDeep = __webpack_require__(408), + isObjectLike = __webpack_require__(25); /** * The base implementation of `_.isEqual` which supports partial comparisons @@ -50386,12 +48865,12 @@ module.exports = baseIsEqual; /***/ }), -/* 221 */ +/* 218 */ /***/ (function(module, exports, __webpack_require__) { -var SetCache = __webpack_require__(222), - arraySome = __webpack_require__(219), - cacheHas = __webpack_require__(223); +var SetCache = __webpack_require__(219), + arraySome = __webpack_require__(216), + cacheHas = __webpack_require__(220); /** Used to compose bitmasks for value comparisons. */ var COMPARE_PARTIAL_FLAG = 1, @@ -50475,12 +48954,12 @@ module.exports = equalArrays; /***/ }), -/* 222 */ +/* 219 */ /***/ (function(module, exports, __webpack_require__) { -var MapCache = __webpack_require__(120), - setCacheAdd = __webpack_require__(414), - setCacheHas = __webpack_require__(415); +var MapCache = __webpack_require__(119), + setCacheAdd = __webpack_require__(409), + setCacheHas = __webpack_require__(410); /** * @@ -50508,7 +48987,7 @@ module.exports = SetCache; /***/ }), -/* 223 */ +/* 220 */ /***/ (function(module, exports) { /** @@ -50527,10 +49006,10 @@ module.exports = cacheHas; /***/ }), -/* 224 */ +/* 221 */ /***/ (function(module, exports, __webpack_require__) { -var isObject = __webpack_require__(17); +var isObject = __webpack_require__(18); /** * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. @@ -50548,7 +49027,7 @@ module.exports = isStrictComparable; /***/ }), -/* 225 */ +/* 222 */ /***/ (function(module, exports) { /** @@ -50574,11 +49053,11 @@ module.exports = matchesStrictComparable; /***/ }), -/* 226 */ +/* 223 */ /***/ (function(module, exports, __webpack_require__) { -var baseFor = __webpack_require__(200), - keys = __webpack_require__(25); +var baseFor = __webpack_require__(197), + keys = __webpack_require__(26); /** * The base implementation of `_.forOwn` without support for iteratee shorthands. @@ -50596,10 +49075,10 @@ module.exports = baseForOwn; /***/ }), -/* 227 */ +/* 224 */ /***/ (function(module, exports, __webpack_require__) { -var toNumber = __webpack_require__(434); +var toNumber = __webpack_require__(429); /** Used as references for various `Number` constants. */ var INFINITY = 1 / 0, @@ -50644,11 +49123,11 @@ module.exports = toFinite; /***/ }), -/* 228 */ +/* 225 */ /***/ (function(module, exports, __webpack_require__) { -var arrayPush = __webpack_require__(89), - isFlattenable = __webpack_require__(436); +var arrayPush = __webpack_require__(88), + isFlattenable = __webpack_require__(431); /** * The base implementation of `_.flatten` with support for restricting flattening. @@ -50688,7 +49167,7 @@ module.exports = baseFlatten; /***/ }), -/* 229 */ +/* 226 */ /***/ (function(module, exports) { /** @@ -50718,12 +49197,12 @@ module.exports = baseFindIndex; /***/ }), -/* 230 */ +/* 227 */ /***/ (function(module, exports, __webpack_require__) { -var baseGetTag = __webpack_require__(32), - isArray = __webpack_require__(10), - isObjectLike = __webpack_require__(24); +var baseGetTag = __webpack_require__(33), + isArray = __webpack_require__(11), + isObjectLike = __webpack_require__(25); /** `Object#toString` result references. */ var stringTag = '[object String]'; @@ -50754,7 +49233,7 @@ module.exports = isString; /***/ }), -/* 231 */ +/* 228 */ /***/ (function(module, exports) { function webpackEmptyContext(req) { @@ -50763,14 +49242,14 @@ function webpackEmptyContext(req) { webpackEmptyContext.keys = function() { return []; }; webpackEmptyContext.resolve = webpackEmptyContext; module.exports = webpackEmptyContext; -webpackEmptyContext.id = 231; +webpackEmptyContext.id = 228; /***/ }), -/* 232 */ +/* 229 */ /***/ (function(module, exports, __webpack_require__) { var identity = __webpack_require__(38), - metaMap = __webpack_require__(233); + metaMap = __webpack_require__(230); /** * The base implementation of `setData` without support for hot loop shorting. @@ -50789,10 +49268,10 @@ module.exports = baseSetData; /***/ }), -/* 233 */ +/* 230 */ /***/ (function(module, exports, __webpack_require__) { -var WeakMap = __webpack_require__(217); +var WeakMap = __webpack_require__(214); /** Used to store function metadata. */ var metaMap = WeakMap && new WeakMap; @@ -50801,18 +49280,18 @@ module.exports = metaMap; /***/ }), -/* 234 */ +/* 231 */ /***/ (function(module, exports, __webpack_require__) { -var composeArgs = __webpack_require__(235), - composeArgsRight = __webpack_require__(236), - countHolders = __webpack_require__(450), - createCtor = __webpack_require__(98), - createRecurry = __webpack_require__(237), - getHolder = __webpack_require__(244), - reorder = __webpack_require__(457), - replaceHolders = __webpack_require__(142), - root = __webpack_require__(14); +var composeArgs = __webpack_require__(232), + composeArgsRight = __webpack_require__(233), + countHolders = __webpack_require__(445), + createCtor = __webpack_require__(97), + createRecurry = __webpack_require__(234), + getHolder = __webpack_require__(241), + reorder = __webpack_require__(452), + replaceHolders = __webpack_require__(141), + root = __webpack_require__(15); /** Used to compose bitmasks for function metadata. */ var WRAP_BIND_FLAG = 1, @@ -50899,7 +49378,7 @@ module.exports = createHybrid; /***/ }), -/* 235 */ +/* 232 */ /***/ (function(module, exports) { /* Built-in method references for those with the same name as other `lodash` methods. */ @@ -50944,7 +49423,7 @@ module.exports = composeArgs; /***/ }), -/* 236 */ +/* 233 */ /***/ (function(module, exports) { /* Built-in method references for those with the same name as other `lodash` methods. */ @@ -50991,12 +49470,12 @@ module.exports = composeArgsRight; /***/ }), -/* 237 */ +/* 234 */ /***/ (function(module, exports, __webpack_require__) { -var isLaziable = __webpack_require__(238), - setData = __webpack_require__(241), - setWrapToString = __webpack_require__(242); +var isLaziable = __webpack_require__(235), + setData = __webpack_require__(238), + setWrapToString = __webpack_require__(239); /** Used to compose bitmasks for function metadata. */ var WRAP_BIND_FLAG = 1, @@ -51053,13 +49532,13 @@ module.exports = createRecurry; /***/ }), -/* 238 */ +/* 235 */ /***/ (function(module, exports, __webpack_require__) { -var LazyWrapper = __webpack_require__(138), - getData = __webpack_require__(140), - getFuncName = __webpack_require__(240), - lodash = __webpack_require__(452); +var LazyWrapper = __webpack_require__(137), + getData = __webpack_require__(139), + getFuncName = __webpack_require__(237), + lodash = __webpack_require__(447); /** * Checks if `func` has a lazy counterpart. @@ -51087,7 +49566,7 @@ module.exports = isLaziable; /***/ }), -/* 239 */ +/* 236 */ /***/ (function(module, exports) { /** @@ -51110,10 +49589,10 @@ module.exports = noop; /***/ }), -/* 240 */ +/* 237 */ /***/ (function(module, exports, __webpack_require__) { -var realNames = __webpack_require__(451); +var realNames = __webpack_require__(446); /** Used for built-in method references. */ var objectProto = Object.prototype; @@ -51147,11 +49626,11 @@ module.exports = getFuncName; /***/ }), -/* 241 */ +/* 238 */ /***/ (function(module, exports, __webpack_require__) { -var baseSetData = __webpack_require__(232), - shortOut = __webpack_require__(198); +var baseSetData = __webpack_require__(229), + shortOut = __webpack_require__(195); /** * Sets metadata for `func`. @@ -51173,13 +49652,13 @@ module.exports = setData; /***/ }), -/* 242 */ +/* 239 */ /***/ (function(module, exports, __webpack_require__) { -var getWrapDetails = __webpack_require__(454), - insertWrapDetails = __webpack_require__(455), - setToString = __webpack_require__(116), - updateWrapDetails = __webpack_require__(456); +var getWrapDetails = __webpack_require__(449), + insertWrapDetails = __webpack_require__(450), + setToString = __webpack_require__(115), + updateWrapDetails = __webpack_require__(451); /** * Sets the `toString` method of `wrapper` to mimic the source of `reference` @@ -51200,10 +49679,10 @@ module.exports = setWrapToString; /***/ }), -/* 243 */ +/* 240 */ /***/ (function(module, exports, __webpack_require__) { -var baseIndexOf = __webpack_require__(97); +var baseIndexOf = __webpack_require__(96); /** * A specialized version of `_.includes` for arrays without support for @@ -51223,7 +49702,7 @@ module.exports = arrayIncludes; /***/ }), -/* 244 */ +/* 241 */ /***/ (function(module, exports) { /** @@ -51242,13 +49721,13 @@ module.exports = getHolder; /***/ }), -/* 245 */ +/* 242 */ /***/ (function(module, exports, __webpack_require__) { -var arrayEach = __webpack_require__(128), - baseEach = __webpack_require__(94), - castFunction = __webpack_require__(460), - isArray = __webpack_require__(10); +var arrayEach = __webpack_require__(127), + baseEach = __webpack_require__(93), + castFunction = __webpack_require__(455), + isArray = __webpack_require__(11); /** * Iterates over elements of `collection` and invokes `iteratee` for each element. @@ -51289,7 +49768,7 @@ module.exports = forEach; /***/ }), -/* 246 */ +/* 243 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -51305,53 +49784,53 @@ var _MJMLElementsCollection = __webpack_require__(41); var _MJMLElementsCollection2 = _interopRequireDefault(_MJMLElementsCollection); -var _MJMLHead = __webpack_require__(144); +var _MJMLHead = __webpack_require__(143); var _MJMLHead2 = _interopRequireDefault(_MJMLHead); -var _Error = __webpack_require__(192); +var _Error = __webpack_require__(189); -var _compact = __webpack_require__(463); +var _compact = __webpack_require__(458); var _compact2 = _interopRequireDefault(_compact); -var _concat = __webpack_require__(135); +var _concat = __webpack_require__(134); var _concat2 = _interopRequireDefault(_concat); -var _dom = __webpack_require__(100); +var _dom = __webpack_require__(99); var _dom2 = _interopRequireDefault(_dom); -var _filter = __webpack_require__(95); +var _filter = __webpack_require__(94); var _filter2 = _interopRequireDefault(_filter); -var _forEach = __webpack_require__(245); +var _forEach = __webpack_require__(242); var _forEach2 = _interopRequireDefault(_forEach); -var _includes = __webpack_require__(137); +var _includes = __webpack_require__(136); var _includes2 = _interopRequireDefault(_includes); -var _map = __webpack_require__(465); +var _map = __webpack_require__(461); var _map2 = _interopRequireDefault(_map); -var _mapValues = __webpack_require__(467); +var _mapValues = __webpack_require__(463); var _mapValues2 = _interopRequireDefault(_mapValues); -var _parseAttributes = __webpack_require__(468); +var _parseAttributes = __webpack_require__(464); var _parseAttributes2 = _interopRequireDefault(_parseAttributes); -var _removeCDATA = __webpack_require__(469); +var _removeCDATA = __webpack_require__(465); var _removeCDATA2 = _interopRequireDefault(_removeCDATA); -var _toArray = __webpack_require__(470); +var _toArray = __webpack_require__(466); var _toArray2 = _interopRequireDefault(_toArray); @@ -51484,52594 +49963,13524 @@ var documentParser = function documentParser(content) { exports.default = documentParser; /***/ }), -/* 247 */ +/* 244 */ /***/ (function(module, exports, __webpack_require__) { -var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! - * jQuery JavaScript Library v3.2.1 - * https://jquery.com/ - * - * Includes Sizzle.js - * https://sizzlejs.com/ - * - * Copyright JS Foundation and other contributors - * Released under the MIT license - * https://jquery.org/license +var asciiToArray = __webpack_require__(468), + hasUnicode = __webpack_require__(469), + unicodeToArray = __webpack_require__(470); + +/** + * Converts `string` to an array. * - * Date: 2017-03-20T18:59Z + * @private + * @param {string} string The string to convert. + * @returns {Array} Returns the converted array. */ -( function( global, factory ) { - - "use strict"; - - if ( typeof module === "object" && typeof module.exports === "object" ) { - - // For CommonJS and CommonJS-like environments where a proper `window` - // is present, execute the factory and get jQuery. - // For environments that do not have a `window` with a `document` - // (such as Node.js), expose a factory as module.exports. - // This accentuates the need for the creation of a real `window`. - // e.g. var jQuery = require("jquery")(window); - // See ticket #14549 for more info. - module.exports = global.document ? - factory( global, true ) : - function( w ) { - if ( !w.document ) { - throw new Error( "jQuery requires a window with a document" ); - } - return factory( w ); - }; - } else { - factory( global ); - } - -// Pass this if window is not defined yet -} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { - -// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 -// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode -// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common -// enough that all such attempts are guarded in a try block. -"use strict"; - -var arr = []; +function stringToArray(string) { + return hasUnicode(string) + ? unicodeToArray(string) + : asciiToArray(string); +} -var document = window.document; +module.exports = stringToArray; -var getProto = Object.getPrototypeOf; -var slice = arr.slice; +/***/ }), +/* 245 */ +/***/ (function(module, exports, __webpack_require__) { -var concat = arr.concat; +/* WEBPACK VAR INJECTION */(function(module, global) {var __WEBPACK_AMD_DEFINE_RESULT__;/*! https://mths.be/he v1.1.1 by @mathias | MIT license */ +;(function(root) { -var push = arr.push; + // Detect free variables `exports`. + var freeExports = typeof exports == 'object' && exports; -var indexOf = arr.indexOf; + // Detect free variable `module`. + var freeModule = typeof module == 'object' && module && + module.exports == freeExports && module; -var class2type = {}; + // Detect free variable `global`, from Node.js or Browserified code, + // and use it as `root`. + var freeGlobal = typeof global == 'object' && global; + if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) { + root = freeGlobal; + } -var toString = class2type.toString; + /*--------------------------------------------------------------------------*/ -var hasOwn = class2type.hasOwnProperty; + // All astral symbols. + var regexAstralSymbols = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g; + // All ASCII symbols (not just printable ASCII) except those listed in the + // first column of the overrides table. + // https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides + var regexAsciiWhitelist = /[\x01-\x7F]/g; + // All BMP symbols that are not ASCII newlines, printable ASCII symbols, or + // code points listed in the first column of the overrides table on + // https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides. + var regexBmpWhitelist = /[\x01-\t\x0B\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g; -var fnToString = hasOwn.toString; + var regexEncodeNonAscii = /<\u20D2|=\u20E5|>\u20D2|\u205F\u200A|\u219D\u0338|\u2202\u0338|\u2220\u20D2|\u2229\uFE00|\u222A\uFE00|\u223C\u20D2|\u223D\u0331|\u223E\u0333|\u2242\u0338|\u224B\u0338|\u224D\u20D2|\u224E\u0338|\u224F\u0338|\u2250\u0338|\u2261\u20E5|\u2264\u20D2|\u2265\u20D2|\u2266\u0338|\u2267\u0338|\u2268\uFE00|\u2269\uFE00|\u226A\u0338|\u226A\u20D2|\u226B\u0338|\u226B\u20D2|\u227F\u0338|\u2282\u20D2|\u2283\u20D2|\u228A\uFE00|\u228B\uFE00|\u228F\u0338|\u2290\u0338|\u2293\uFE00|\u2294\uFE00|\u22B4\u20D2|\u22B5\u20D2|\u22D8\u0338|\u22D9\u0338|\u22DA\uFE00|\u22DB\uFE00|\u22F5\u0338|\u22F9\u0338|\u2933\u0338|\u29CF\u0338|\u29D0\u0338|\u2A6D\u0338|\u2A70\u0338|\u2A7D\u0338|\u2A7E\u0338|\u2AA1\u0338|\u2AA2\u0338|\u2AAC\uFE00|\u2AAD\uFE00|\u2AAF\u0338|\u2AB0\u0338|\u2AC5\u0338|\u2AC6\u0338|\u2ACB\uFE00|\u2ACC\uFE00|\u2AFD\u20E5|[\xA0-\u0113\u0116-\u0122\u0124-\u012B\u012E-\u014D\u0150-\u017E\u0192\u01B5\u01F5\u0237\u02C6\u02C7\u02D8-\u02DD\u0311\u0391-\u03A1\u03A3-\u03A9\u03B1-\u03C9\u03D1\u03D2\u03D5\u03D6\u03DC\u03DD\u03F0\u03F1\u03F5\u03F6\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E\u045F\u2002-\u2005\u2007-\u2010\u2013-\u2016\u2018-\u201A\u201C-\u201E\u2020-\u2022\u2025\u2026\u2030-\u2035\u2039\u203A\u203E\u2041\u2043\u2044\u204F\u2057\u205F-\u2063\u20AC\u20DB\u20DC\u2102\u2105\u210A-\u2113\u2115-\u211E\u2122\u2124\u2127-\u2129\u212C\u212D\u212F-\u2131\u2133-\u2138\u2145-\u2148\u2153-\u215E\u2190-\u219B\u219D-\u21A7\u21A9-\u21AE\u21B0-\u21B3\u21B5-\u21B7\u21BA-\u21DB\u21DD\u21E4\u21E5\u21F5\u21FD-\u2205\u2207-\u2209\u220B\u220C\u220F-\u2214\u2216-\u2218\u221A\u221D-\u2238\u223A-\u2257\u2259\u225A\u225C\u225F-\u2262\u2264-\u228B\u228D-\u229B\u229D-\u22A5\u22A7-\u22B0\u22B2-\u22BB\u22BD-\u22DB\u22DE-\u22E3\u22E6-\u22F7\u22F9-\u22FE\u2305\u2306\u2308-\u2310\u2312\u2313\u2315\u2316\u231C-\u231F\u2322\u2323\u232D\u232E\u2336\u233D\u233F\u237C\u23B0\u23B1\u23B4-\u23B6\u23DC-\u23DF\u23E2\u23E7\u2423\u24C8\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2550-\u256C\u2580\u2584\u2588\u2591-\u2593\u25A1\u25AA\u25AB\u25AD\u25AE\u25B1\u25B3-\u25B5\u25B8\u25B9\u25BD-\u25BF\u25C2\u25C3\u25CA\u25CB\u25EC\u25EF\u25F8-\u25FC\u2605\u2606\u260E\u2640\u2642\u2660\u2663\u2665\u2666\u266A\u266D-\u266F\u2713\u2717\u2720\u2736\u2758\u2772\u2773\u27C8\u27C9\u27E6-\u27ED\u27F5-\u27FA\u27FC\u27FF\u2902-\u2905\u290C-\u2913\u2916\u2919-\u2920\u2923-\u292A\u2933\u2935-\u2939\u293C\u293D\u2945\u2948-\u294B\u294E-\u2976\u2978\u2979\u297B-\u297F\u2985\u2986\u298B-\u2996\u299A\u299C\u299D\u29A4-\u29B7\u29B9\u29BB\u29BC\u29BE-\u29C5\u29C9\u29CD-\u29D0\u29DC-\u29DE\u29E3-\u29E5\u29EB\u29F4\u29F6\u2A00-\u2A02\u2A04\u2A06\u2A0C\u2A0D\u2A10-\u2A17\u2A22-\u2A27\u2A29\u2A2A\u2A2D-\u2A31\u2A33-\u2A3C\u2A3F\u2A40\u2A42-\u2A4D\u2A50\u2A53-\u2A58\u2A5A-\u2A5D\u2A5F\u2A66\u2A6A\u2A6D-\u2A75\u2A77-\u2A9A\u2A9D-\u2AA2\u2AA4-\u2AB0\u2AB3-\u2AC8\u2ACB\u2ACC\u2ACF-\u2ADB\u2AE4\u2AE6-\u2AE9\u2AEB-\u2AF3\u2AFD\uFB00-\uFB04]|\uD835[\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDD6B]/g; + var encodeMap = {'\xAD':'shy','\u200C':'zwnj','\u200D':'zwj','\u200E':'lrm','\u2063':'ic','\u2062':'it','\u2061':'af','\u200F':'rlm','\u200B':'ZeroWidthSpace','\u2060':'NoBreak','\u0311':'DownBreve','\u20DB':'tdot','\u20DC':'DotDot','\t':'Tab','\n':'NewLine','\u2008':'puncsp','\u205F':'MediumSpace','\u2009':'thinsp','\u200A':'hairsp','\u2004':'emsp13','\u2002':'ensp','\u2005':'emsp14','\u2003':'emsp','\u2007':'numsp','\xA0':'nbsp','\u205F\u200A':'ThickSpace','\u203E':'oline','_':'lowbar','\u2010':'dash','\u2013':'ndash','\u2014':'mdash','\u2015':'horbar',',':'comma',';':'semi','\u204F':'bsemi',':':'colon','\u2A74':'Colone','!':'excl','\xA1':'iexcl','?':'quest','\xBF':'iquest','.':'period','\u2025':'nldr','\u2026':'mldr','\xB7':'middot','\'':'apos','\u2018':'lsquo','\u2019':'rsquo','\u201A':'sbquo','\u2039':'lsaquo','\u203A':'rsaquo','"':'quot','\u201C':'ldquo','\u201D':'rdquo','\u201E':'bdquo','\xAB':'laquo','\xBB':'raquo','(':'lpar',')':'rpar','[':'lsqb',']':'rsqb','{':'lcub','}':'rcub','\u2308':'lceil','\u2309':'rceil','\u230A':'lfloor','\u230B':'rfloor','\u2985':'lopar','\u2986':'ropar','\u298B':'lbrke','\u298C':'rbrke','\u298D':'lbrkslu','\u298E':'rbrksld','\u298F':'lbrksld','\u2990':'rbrkslu','\u2991':'langd','\u2992':'rangd','\u2993':'lparlt','\u2994':'rpargt','\u2995':'gtlPar','\u2996':'ltrPar','\u27E6':'lobrk','\u27E7':'robrk','\u27E8':'lang','\u27E9':'rang','\u27EA':'Lang','\u27EB':'Rang','\u27EC':'loang','\u27ED':'roang','\u2772':'lbbrk','\u2773':'rbbrk','\u2016':'Vert','\xA7':'sect','\xB6':'para','@':'commat','*':'ast','/':'sol','undefined':null,'&':'amp','#':'num','%':'percnt','\u2030':'permil','\u2031':'pertenk','\u2020':'dagger','\u2021':'Dagger','\u2022':'bull','\u2043':'hybull','\u2032':'prime','\u2033':'Prime','\u2034':'tprime','\u2057':'qprime','\u2035':'bprime','\u2041':'caret','`':'grave','\xB4':'acute','\u02DC':'tilde','^':'Hat','\xAF':'macr','\u02D8':'breve','\u02D9':'dot','\xA8':'die','\u02DA':'ring','\u02DD':'dblac','\xB8':'cedil','\u02DB':'ogon','\u02C6':'circ','\u02C7':'caron','\xB0':'deg','\xA9':'copy','\xAE':'reg','\u2117':'copysr','\u2118':'wp','\u211E':'rx','\u2127':'mho','\u2129':'iiota','\u2190':'larr','\u219A':'nlarr','\u2192':'rarr','\u219B':'nrarr','\u2191':'uarr','\u2193':'darr','\u2194':'harr','\u21AE':'nharr','\u2195':'varr','\u2196':'nwarr','\u2197':'nearr','\u2198':'searr','\u2199':'swarr','\u219D':'rarrw','\u219D\u0338':'nrarrw','\u219E':'Larr','\u219F':'Uarr','\u21A0':'Rarr','\u21A1':'Darr','\u21A2':'larrtl','\u21A3':'rarrtl','\u21A4':'mapstoleft','\u21A5':'mapstoup','\u21A6':'map','\u21A7':'mapstodown','\u21A9':'larrhk','\u21AA':'rarrhk','\u21AB':'larrlp','\u21AC':'rarrlp','\u21AD':'harrw','\u21B0':'lsh','\u21B1':'rsh','\u21B2':'ldsh','\u21B3':'rdsh','\u21B5':'crarr','\u21B6':'cularr','\u21B7':'curarr','\u21BA':'olarr','\u21BB':'orarr','\u21BC':'lharu','\u21BD':'lhard','\u21BE':'uharr','\u21BF':'uharl','\u21C0':'rharu','\u21C1':'rhard','\u21C2':'dharr','\u21C3':'dharl','\u21C4':'rlarr','\u21C5':'udarr','\u21C6':'lrarr','\u21C7':'llarr','\u21C8':'uuarr','\u21C9':'rrarr','\u21CA':'ddarr','\u21CB':'lrhar','\u21CC':'rlhar','\u21D0':'lArr','\u21CD':'nlArr','\u21D1':'uArr','\u21D2':'rArr','\u21CF':'nrArr','\u21D3':'dArr','\u21D4':'iff','\u21CE':'nhArr','\u21D5':'vArr','\u21D6':'nwArr','\u21D7':'neArr','\u21D8':'seArr','\u21D9':'swArr','\u21DA':'lAarr','\u21DB':'rAarr','\u21DD':'zigrarr','\u21E4':'larrb','\u21E5':'rarrb','\u21F5':'duarr','\u21FD':'loarr','\u21FE':'roarr','\u21FF':'hoarr','\u2200':'forall','\u2201':'comp','\u2202':'part','\u2202\u0338':'npart','\u2203':'exist','\u2204':'nexist','\u2205':'empty','\u2207':'Del','\u2208':'in','\u2209':'notin','\u220B':'ni','\u220C':'notni','\u03F6':'bepsi','\u220F':'prod','\u2210':'coprod','\u2211':'sum','+':'plus','\xB1':'pm','\xF7':'div','\xD7':'times','<':'lt','\u226E':'nlt','<\u20D2':'nvlt','=':'equals','\u2260':'ne','=\u20E5':'bne','\u2A75':'Equal','>':'gt','\u226F':'ngt','>\u20D2':'nvgt','\xAC':'not','|':'vert','\xA6':'brvbar','\u2212':'minus','\u2213':'mp','\u2214':'plusdo','\u2044':'frasl','\u2216':'setmn','\u2217':'lowast','\u2218':'compfn','\u221A':'Sqrt','\u221D':'prop','\u221E':'infin','\u221F':'angrt','\u2220':'ang','\u2220\u20D2':'nang','\u2221':'angmsd','\u2222':'angsph','\u2223':'mid','\u2224':'nmid','\u2225':'par','\u2226':'npar','\u2227':'and','\u2228':'or','\u2229':'cap','\u2229\uFE00':'caps','\u222A':'cup','\u222A\uFE00':'cups','\u222B':'int','\u222C':'Int','\u222D':'tint','\u2A0C':'qint','\u222E':'oint','\u222F':'Conint','\u2230':'Cconint','\u2231':'cwint','\u2232':'cwconint','\u2233':'awconint','\u2234':'there4','\u2235':'becaus','\u2236':'ratio','\u2237':'Colon','\u2238':'minusd','\u223A':'mDDot','\u223B':'homtht','\u223C':'sim','\u2241':'nsim','\u223C\u20D2':'nvsim','\u223D':'bsim','\u223D\u0331':'race','\u223E':'ac','\u223E\u0333':'acE','\u223F':'acd','\u2240':'wr','\u2242':'esim','\u2242\u0338':'nesim','\u2243':'sime','\u2244':'nsime','\u2245':'cong','\u2247':'ncong','\u2246':'simne','\u2248':'ap','\u2249':'nap','\u224A':'ape','\u224B':'apid','\u224B\u0338':'napid','\u224C':'bcong','\u224D':'CupCap','\u226D':'NotCupCap','\u224D\u20D2':'nvap','\u224E':'bump','\u224E\u0338':'nbump','\u224F':'bumpe','\u224F\u0338':'nbumpe','\u2250':'doteq','\u2250\u0338':'nedot','\u2251':'eDot','\u2252':'efDot','\u2253':'erDot','\u2254':'colone','\u2255':'ecolon','\u2256':'ecir','\u2257':'cire','\u2259':'wedgeq','\u225A':'veeeq','\u225C':'trie','\u225F':'equest','\u2261':'equiv','\u2262':'nequiv','\u2261\u20E5':'bnequiv','\u2264':'le','\u2270':'nle','\u2264\u20D2':'nvle','\u2265':'ge','\u2271':'nge','\u2265\u20D2':'nvge','\u2266':'lE','\u2266\u0338':'nlE','\u2267':'gE','\u2267\u0338':'ngE','\u2268\uFE00':'lvnE','\u2268':'lnE','\u2269':'gnE','\u2269\uFE00':'gvnE','\u226A':'ll','\u226A\u0338':'nLtv','\u226A\u20D2':'nLt','\u226B':'gg','\u226B\u0338':'nGtv','\u226B\u20D2':'nGt','\u226C':'twixt','\u2272':'lsim','\u2274':'nlsim','\u2273':'gsim','\u2275':'ngsim','\u2276':'lg','\u2278':'ntlg','\u2277':'gl','\u2279':'ntgl','\u227A':'pr','\u2280':'npr','\u227B':'sc','\u2281':'nsc','\u227C':'prcue','\u22E0':'nprcue','\u227D':'sccue','\u22E1':'nsccue','\u227E':'prsim','\u227F':'scsim','\u227F\u0338':'NotSucceedsTilde','\u2282':'sub','\u2284':'nsub','\u2282\u20D2':'vnsub','\u2283':'sup','\u2285':'nsup','\u2283\u20D2':'vnsup','\u2286':'sube','\u2288':'nsube','\u2287':'supe','\u2289':'nsupe','\u228A\uFE00':'vsubne','\u228A':'subne','\u228B\uFE00':'vsupne','\u228B':'supne','\u228D':'cupdot','\u228E':'uplus','\u228F':'sqsub','\u228F\u0338':'NotSquareSubset','\u2290':'sqsup','\u2290\u0338':'NotSquareSuperset','\u2291':'sqsube','\u22E2':'nsqsube','\u2292':'sqsupe','\u22E3':'nsqsupe','\u2293':'sqcap','\u2293\uFE00':'sqcaps','\u2294':'sqcup','\u2294\uFE00':'sqcups','\u2295':'oplus','\u2296':'ominus','\u2297':'otimes','\u2298':'osol','\u2299':'odot','\u229A':'ocir','\u229B':'oast','\u229D':'odash','\u229E':'plusb','\u229F':'minusb','\u22A0':'timesb','\u22A1':'sdotb','\u22A2':'vdash','\u22AC':'nvdash','\u22A3':'dashv','\u22A4':'top','\u22A5':'bot','\u22A7':'models','\u22A8':'vDash','\u22AD':'nvDash','\u22A9':'Vdash','\u22AE':'nVdash','\u22AA':'Vvdash','\u22AB':'VDash','\u22AF':'nVDash','\u22B0':'prurel','\u22B2':'vltri','\u22EA':'nltri','\u22B3':'vrtri','\u22EB':'nrtri','\u22B4':'ltrie','\u22EC':'nltrie','\u22B4\u20D2':'nvltrie','\u22B5':'rtrie','\u22ED':'nrtrie','\u22B5\u20D2':'nvrtrie','\u22B6':'origof','\u22B7':'imof','\u22B8':'mumap','\u22B9':'hercon','\u22BA':'intcal','\u22BB':'veebar','\u22BD':'barvee','\u22BE':'angrtvb','\u22BF':'lrtri','\u22C0':'Wedge','\u22C1':'Vee','\u22C2':'xcap','\u22C3':'xcup','\u22C4':'diam','\u22C5':'sdot','\u22C6':'Star','\u22C7':'divonx','\u22C8':'bowtie','\u22C9':'ltimes','\u22CA':'rtimes','\u22CB':'lthree','\u22CC':'rthree','\u22CD':'bsime','\u22CE':'cuvee','\u22CF':'cuwed','\u22D0':'Sub','\u22D1':'Sup','\u22D2':'Cap','\u22D3':'Cup','\u22D4':'fork','\u22D5':'epar','\u22D6':'ltdot','\u22D7':'gtdot','\u22D8':'Ll','\u22D8\u0338':'nLl','\u22D9':'Gg','\u22D9\u0338':'nGg','\u22DA\uFE00':'lesg','\u22DA':'leg','\u22DB':'gel','\u22DB\uFE00':'gesl','\u22DE':'cuepr','\u22DF':'cuesc','\u22E6':'lnsim','\u22E7':'gnsim','\u22E8':'prnsim','\u22E9':'scnsim','\u22EE':'vellip','\u22EF':'ctdot','\u22F0':'utdot','\u22F1':'dtdot','\u22F2':'disin','\u22F3':'isinsv','\u22F4':'isins','\u22F5':'isindot','\u22F5\u0338':'notindot','\u22F6':'notinvc','\u22F7':'notinvb','\u22F9':'isinE','\u22F9\u0338':'notinE','\u22FA':'nisd','\u22FB':'xnis','\u22FC':'nis','\u22FD':'notnivc','\u22FE':'notnivb','\u2305':'barwed','\u2306':'Barwed','\u230C':'drcrop','\u230D':'dlcrop','\u230E':'urcrop','\u230F':'ulcrop','\u2310':'bnot','\u2312':'profline','\u2313':'profsurf','\u2315':'telrec','\u2316':'target','\u231C':'ulcorn','\u231D':'urcorn','\u231E':'dlcorn','\u231F':'drcorn','\u2322':'frown','\u2323':'smile','\u232D':'cylcty','\u232E':'profalar','\u2336':'topbot','\u233D':'ovbar','\u233F':'solbar','\u237C':'angzarr','\u23B0':'lmoust','\u23B1':'rmoust','\u23B4':'tbrk','\u23B5':'bbrk','\u23B6':'bbrktbrk','\u23DC':'OverParenthesis','\u23DD':'UnderParenthesis','\u23DE':'OverBrace','\u23DF':'UnderBrace','\u23E2':'trpezium','\u23E7':'elinters','\u2423':'blank','\u2500':'boxh','\u2502':'boxv','\u250C':'boxdr','\u2510':'boxdl','\u2514':'boxur','\u2518':'boxul','\u251C':'boxvr','\u2524':'boxvl','\u252C':'boxhd','\u2534':'boxhu','\u253C':'boxvh','\u2550':'boxH','\u2551':'boxV','\u2552':'boxdR','\u2553':'boxDr','\u2554':'boxDR','\u2555':'boxdL','\u2556':'boxDl','\u2557':'boxDL','\u2558':'boxuR','\u2559':'boxUr','\u255A':'boxUR','\u255B':'boxuL','\u255C':'boxUl','\u255D':'boxUL','\u255E':'boxvR','\u255F':'boxVr','\u2560':'boxVR','\u2561':'boxvL','\u2562':'boxVl','\u2563':'boxVL','\u2564':'boxHd','\u2565':'boxhD','\u2566':'boxHD','\u2567':'boxHu','\u2568':'boxhU','\u2569':'boxHU','\u256A':'boxvH','\u256B':'boxVh','\u256C':'boxVH','\u2580':'uhblk','\u2584':'lhblk','\u2588':'block','\u2591':'blk14','\u2592':'blk12','\u2593':'blk34','\u25A1':'squ','\u25AA':'squf','\u25AB':'EmptyVerySmallSquare','\u25AD':'rect','\u25AE':'marker','\u25B1':'fltns','\u25B3':'xutri','\u25B4':'utrif','\u25B5':'utri','\u25B8':'rtrif','\u25B9':'rtri','\u25BD':'xdtri','\u25BE':'dtrif','\u25BF':'dtri','\u25C2':'ltrif','\u25C3':'ltri','\u25CA':'loz','\u25CB':'cir','\u25EC':'tridot','\u25EF':'xcirc','\u25F8':'ultri','\u25F9':'urtri','\u25FA':'lltri','\u25FB':'EmptySmallSquare','\u25FC':'FilledSmallSquare','\u2605':'starf','\u2606':'star','\u260E':'phone','\u2640':'female','\u2642':'male','\u2660':'spades','\u2663':'clubs','\u2665':'hearts','\u2666':'diams','\u266A':'sung','\u2713':'check','\u2717':'cross','\u2720':'malt','\u2736':'sext','\u2758':'VerticalSeparator','\u27C8':'bsolhsub','\u27C9':'suphsol','\u27F5':'xlarr','\u27F6':'xrarr','\u27F7':'xharr','\u27F8':'xlArr','\u27F9':'xrArr','\u27FA':'xhArr','\u27FC':'xmap','\u27FF':'dzigrarr','\u2902':'nvlArr','\u2903':'nvrArr','\u2904':'nvHarr','\u2905':'Map','\u290C':'lbarr','\u290D':'rbarr','\u290E':'lBarr','\u290F':'rBarr','\u2910':'RBarr','\u2911':'DDotrahd','\u2912':'UpArrowBar','\u2913':'DownArrowBar','\u2916':'Rarrtl','\u2919':'latail','\u291A':'ratail','\u291B':'lAtail','\u291C':'rAtail','\u291D':'larrfs','\u291E':'rarrfs','\u291F':'larrbfs','\u2920':'rarrbfs','\u2923':'nwarhk','\u2924':'nearhk','\u2925':'searhk','\u2926':'swarhk','\u2927':'nwnear','\u2928':'toea','\u2929':'tosa','\u292A':'swnwar','\u2933':'rarrc','\u2933\u0338':'nrarrc','\u2935':'cudarrr','\u2936':'ldca','\u2937':'rdca','\u2938':'cudarrl','\u2939':'larrpl','\u293C':'curarrm','\u293D':'cularrp','\u2945':'rarrpl','\u2948':'harrcir','\u2949':'Uarrocir','\u294A':'lurdshar','\u294B':'ldrushar','\u294E':'LeftRightVector','\u294F':'RightUpDownVector','\u2950':'DownLeftRightVector','\u2951':'LeftUpDownVector','\u2952':'LeftVectorBar','\u2953':'RightVectorBar','\u2954':'RightUpVectorBar','\u2955':'RightDownVectorBar','\u2956':'DownLeftVectorBar','\u2957':'DownRightVectorBar','\u2958':'LeftUpVectorBar','\u2959':'LeftDownVectorBar','\u295A':'LeftTeeVector','\u295B':'RightTeeVector','\u295C':'RightUpTeeVector','\u295D':'RightDownTeeVector','\u295E':'DownLeftTeeVector','\u295F':'DownRightTeeVector','\u2960':'LeftUpTeeVector','\u2961':'LeftDownTeeVector','\u2962':'lHar','\u2963':'uHar','\u2964':'rHar','\u2965':'dHar','\u2966':'luruhar','\u2967':'ldrdhar','\u2968':'ruluhar','\u2969':'rdldhar','\u296A':'lharul','\u296B':'llhard','\u296C':'rharul','\u296D':'lrhard','\u296E':'udhar','\u296F':'duhar','\u2970':'RoundImplies','\u2971':'erarr','\u2972':'simrarr','\u2973':'larrsim','\u2974':'rarrsim','\u2975':'rarrap','\u2976':'ltlarr','\u2978':'gtrarr','\u2979':'subrarr','\u297B':'suplarr','\u297C':'lfisht','\u297D':'rfisht','\u297E':'ufisht','\u297F':'dfisht','\u299A':'vzigzag','\u299C':'vangrt','\u299D':'angrtvbd','\u29A4':'ange','\u29A5':'range','\u29A6':'dwangle','\u29A7':'uwangle','\u29A8':'angmsdaa','\u29A9':'angmsdab','\u29AA':'angmsdac','\u29AB':'angmsdad','\u29AC':'angmsdae','\u29AD':'angmsdaf','\u29AE':'angmsdag','\u29AF':'angmsdah','\u29B0':'bemptyv','\u29B1':'demptyv','\u29B2':'cemptyv','\u29B3':'raemptyv','\u29B4':'laemptyv','\u29B5':'ohbar','\u29B6':'omid','\u29B7':'opar','\u29B9':'operp','\u29BB':'olcross','\u29BC':'odsold','\u29BE':'olcir','\u29BF':'ofcir','\u29C0':'olt','\u29C1':'ogt','\u29C2':'cirscir','\u29C3':'cirE','\u29C4':'solb','\u29C5':'bsolb','\u29C9':'boxbox','\u29CD':'trisb','\u29CE':'rtriltri','\u29CF':'LeftTriangleBar','\u29CF\u0338':'NotLeftTriangleBar','\u29D0':'RightTriangleBar','\u29D0\u0338':'NotRightTriangleBar','\u29DC':'iinfin','\u29DD':'infintie','\u29DE':'nvinfin','\u29E3':'eparsl','\u29E4':'smeparsl','\u29E5':'eqvparsl','\u29EB':'lozf','\u29F4':'RuleDelayed','\u29F6':'dsol','\u2A00':'xodot','\u2A01':'xoplus','\u2A02':'xotime','\u2A04':'xuplus','\u2A06':'xsqcup','\u2A0D':'fpartint','\u2A10':'cirfnint','\u2A11':'awint','\u2A12':'rppolint','\u2A13':'scpolint','\u2A14':'npolint','\u2A15':'pointint','\u2A16':'quatint','\u2A17':'intlarhk','\u2A22':'pluscir','\u2A23':'plusacir','\u2A24':'simplus','\u2A25':'plusdu','\u2A26':'plussim','\u2A27':'plustwo','\u2A29':'mcomma','\u2A2A':'minusdu','\u2A2D':'loplus','\u2A2E':'roplus','\u2A2F':'Cross','\u2A30':'timesd','\u2A31':'timesbar','\u2A33':'smashp','\u2A34':'lotimes','\u2A35':'rotimes','\u2A36':'otimesas','\u2A37':'Otimes','\u2A38':'odiv','\u2A39':'triplus','\u2A3A':'triminus','\u2A3B':'tritime','\u2A3C':'iprod','\u2A3F':'amalg','\u2A40':'capdot','\u2A42':'ncup','\u2A43':'ncap','\u2A44':'capand','\u2A45':'cupor','\u2A46':'cupcap','\u2A47':'capcup','\u2A48':'cupbrcap','\u2A49':'capbrcup','\u2A4A':'cupcup','\u2A4B':'capcap','\u2A4C':'ccups','\u2A4D':'ccaps','\u2A50':'ccupssm','\u2A53':'And','\u2A54':'Or','\u2A55':'andand','\u2A56':'oror','\u2A57':'orslope','\u2A58':'andslope','\u2A5A':'andv','\u2A5B':'orv','\u2A5C':'andd','\u2A5D':'ord','\u2A5F':'wedbar','\u2A66':'sdote','\u2A6A':'simdot','\u2A6D':'congdot','\u2A6D\u0338':'ncongdot','\u2A6E':'easter','\u2A6F':'apacir','\u2A70':'apE','\u2A70\u0338':'napE','\u2A71':'eplus','\u2A72':'pluse','\u2A73':'Esim','\u2A77':'eDDot','\u2A78':'equivDD','\u2A79':'ltcir','\u2A7A':'gtcir','\u2A7B':'ltquest','\u2A7C':'gtquest','\u2A7D':'les','\u2A7D\u0338':'nles','\u2A7E':'ges','\u2A7E\u0338':'nges','\u2A7F':'lesdot','\u2A80':'gesdot','\u2A81':'lesdoto','\u2A82':'gesdoto','\u2A83':'lesdotor','\u2A84':'gesdotol','\u2A85':'lap','\u2A86':'gap','\u2A87':'lne','\u2A88':'gne','\u2A89':'lnap','\u2A8A':'gnap','\u2A8B':'lEg','\u2A8C':'gEl','\u2A8D':'lsime','\u2A8E':'gsime','\u2A8F':'lsimg','\u2A90':'gsiml','\u2A91':'lgE','\u2A92':'glE','\u2A93':'lesges','\u2A94':'gesles','\u2A95':'els','\u2A96':'egs','\u2A97':'elsdot','\u2A98':'egsdot','\u2A99':'el','\u2A9A':'eg','\u2A9D':'siml','\u2A9E':'simg','\u2A9F':'simlE','\u2AA0':'simgE','\u2AA1':'LessLess','\u2AA1\u0338':'NotNestedLessLess','\u2AA2':'GreaterGreater','\u2AA2\u0338':'NotNestedGreaterGreater','\u2AA4':'glj','\u2AA5':'gla','\u2AA6':'ltcc','\u2AA7':'gtcc','\u2AA8':'lescc','\u2AA9':'gescc','\u2AAA':'smt','\u2AAB':'lat','\u2AAC':'smte','\u2AAC\uFE00':'smtes','\u2AAD':'late','\u2AAD\uFE00':'lates','\u2AAE':'bumpE','\u2AAF':'pre','\u2AAF\u0338':'npre','\u2AB0':'sce','\u2AB0\u0338':'nsce','\u2AB3':'prE','\u2AB4':'scE','\u2AB5':'prnE','\u2AB6':'scnE','\u2AB7':'prap','\u2AB8':'scap','\u2AB9':'prnap','\u2ABA':'scnap','\u2ABB':'Pr','\u2ABC':'Sc','\u2ABD':'subdot','\u2ABE':'supdot','\u2ABF':'subplus','\u2AC0':'supplus','\u2AC1':'submult','\u2AC2':'supmult','\u2AC3':'subedot','\u2AC4':'supedot','\u2AC5':'subE','\u2AC5\u0338':'nsubE','\u2AC6':'supE','\u2AC6\u0338':'nsupE','\u2AC7':'subsim','\u2AC8':'supsim','\u2ACB\uFE00':'vsubnE','\u2ACB':'subnE','\u2ACC\uFE00':'vsupnE','\u2ACC':'supnE','\u2ACF':'csub','\u2AD0':'csup','\u2AD1':'csube','\u2AD2':'csupe','\u2AD3':'subsup','\u2AD4':'supsub','\u2AD5':'subsub','\u2AD6':'supsup','\u2AD7':'suphsub','\u2AD8':'supdsub','\u2AD9':'forkv','\u2ADA':'topfork','\u2ADB':'mlcp','\u2AE4':'Dashv','\u2AE6':'Vdashl','\u2AE7':'Barv','\u2AE8':'vBar','\u2AE9':'vBarv','\u2AEB':'Vbar','\u2AEC':'Not','\u2AED':'bNot','\u2AEE':'rnmid','\u2AEF':'cirmid','\u2AF0':'midcir','\u2AF1':'topcir','\u2AF2':'nhpar','\u2AF3':'parsim','\u2AFD':'parsl','\u2AFD\u20E5':'nparsl','\u266D':'flat','\u266E':'natur','\u266F':'sharp','\xA4':'curren','\xA2':'cent','$':'dollar','\xA3':'pound','\xA5':'yen','\u20AC':'euro','\xB9':'sup1','\xBD':'half','\u2153':'frac13','\xBC':'frac14','\u2155':'frac15','\u2159':'frac16','\u215B':'frac18','\xB2':'sup2','\u2154':'frac23','\u2156':'frac25','\xB3':'sup3','\xBE':'frac34','\u2157':'frac35','\u215C':'frac38','\u2158':'frac45','\u215A':'frac56','\u215D':'frac58','\u215E':'frac78','\uD835\uDCB6':'ascr','\uD835\uDD52':'aopf','\uD835\uDD1E':'afr','\uD835\uDD38':'Aopf','\uD835\uDD04':'Afr','\uD835\uDC9C':'Ascr','\xAA':'ordf','\xE1':'aacute','\xC1':'Aacute','\xE0':'agrave','\xC0':'Agrave','\u0103':'abreve','\u0102':'Abreve','\xE2':'acirc','\xC2':'Acirc','\xE5':'aring','\xC5':'angst','\xE4':'auml','\xC4':'Auml','\xE3':'atilde','\xC3':'Atilde','\u0105':'aogon','\u0104':'Aogon','\u0101':'amacr','\u0100':'Amacr','\xE6':'aelig','\xC6':'AElig','\uD835\uDCB7':'bscr','\uD835\uDD53':'bopf','\uD835\uDD1F':'bfr','\uD835\uDD39':'Bopf','\u212C':'Bscr','\uD835\uDD05':'Bfr','\uD835\uDD20':'cfr','\uD835\uDCB8':'cscr','\uD835\uDD54':'copf','\u212D':'Cfr','\uD835\uDC9E':'Cscr','\u2102':'Copf','\u0107':'cacute','\u0106':'Cacute','\u0109':'ccirc','\u0108':'Ccirc','\u010D':'ccaron','\u010C':'Ccaron','\u010B':'cdot','\u010A':'Cdot','\xE7':'ccedil','\xC7':'Ccedil','\u2105':'incare','\uD835\uDD21':'dfr','\u2146':'dd','\uD835\uDD55':'dopf','\uD835\uDCB9':'dscr','\uD835\uDC9F':'Dscr','\uD835\uDD07':'Dfr','\u2145':'DD','\uD835\uDD3B':'Dopf','\u010F':'dcaron','\u010E':'Dcaron','\u0111':'dstrok','\u0110':'Dstrok','\xF0':'eth','\xD0':'ETH','\u2147':'ee','\u212F':'escr','\uD835\uDD22':'efr','\uD835\uDD56':'eopf','\u2130':'Escr','\uD835\uDD08':'Efr','\uD835\uDD3C':'Eopf','\xE9':'eacute','\xC9':'Eacute','\xE8':'egrave','\xC8':'Egrave','\xEA':'ecirc','\xCA':'Ecirc','\u011B':'ecaron','\u011A':'Ecaron','\xEB':'euml','\xCB':'Euml','\u0117':'edot','\u0116':'Edot','\u0119':'eogon','\u0118':'Eogon','\u0113':'emacr','\u0112':'Emacr','\uD835\uDD23':'ffr','\uD835\uDD57':'fopf','\uD835\uDCBB':'fscr','\uD835\uDD09':'Ffr','\uD835\uDD3D':'Fopf','\u2131':'Fscr','\uFB00':'fflig','\uFB03':'ffilig','\uFB04':'ffllig','\uFB01':'filig','fj':'fjlig','\uFB02':'fllig','\u0192':'fnof','\u210A':'gscr','\uD835\uDD58':'gopf','\uD835\uDD24':'gfr','\uD835\uDCA2':'Gscr','\uD835\uDD3E':'Gopf','\uD835\uDD0A':'Gfr','\u01F5':'gacute','\u011F':'gbreve','\u011E':'Gbreve','\u011D':'gcirc','\u011C':'Gcirc','\u0121':'gdot','\u0120':'Gdot','\u0122':'Gcedil','\uD835\uDD25':'hfr','\u210E':'planckh','\uD835\uDCBD':'hscr','\uD835\uDD59':'hopf','\u210B':'Hscr','\u210C':'Hfr','\u210D':'Hopf','\u0125':'hcirc','\u0124':'Hcirc','\u210F':'hbar','\u0127':'hstrok','\u0126':'Hstrok','\uD835\uDD5A':'iopf','\uD835\uDD26':'ifr','\uD835\uDCBE':'iscr','\u2148':'ii','\uD835\uDD40':'Iopf','\u2110':'Iscr','\u2111':'Im','\xED':'iacute','\xCD':'Iacute','\xEC':'igrave','\xCC':'Igrave','\xEE':'icirc','\xCE':'Icirc','\xEF':'iuml','\xCF':'Iuml','\u0129':'itilde','\u0128':'Itilde','\u0130':'Idot','\u012F':'iogon','\u012E':'Iogon','\u012B':'imacr','\u012A':'Imacr','\u0133':'ijlig','\u0132':'IJlig','\u0131':'imath','\uD835\uDCBF':'jscr','\uD835\uDD5B':'jopf','\uD835\uDD27':'jfr','\uD835\uDCA5':'Jscr','\uD835\uDD0D':'Jfr','\uD835\uDD41':'Jopf','\u0135':'jcirc','\u0134':'Jcirc','\u0237':'jmath','\uD835\uDD5C':'kopf','\uD835\uDCC0':'kscr','\uD835\uDD28':'kfr','\uD835\uDCA6':'Kscr','\uD835\uDD42':'Kopf','\uD835\uDD0E':'Kfr','\u0137':'kcedil','\u0136':'Kcedil','\uD835\uDD29':'lfr','\uD835\uDCC1':'lscr','\u2113':'ell','\uD835\uDD5D':'lopf','\u2112':'Lscr','\uD835\uDD0F':'Lfr','\uD835\uDD43':'Lopf','\u013A':'lacute','\u0139':'Lacute','\u013E':'lcaron','\u013D':'Lcaron','\u013C':'lcedil','\u013B':'Lcedil','\u0142':'lstrok','\u0141':'Lstrok','\u0140':'lmidot','\u013F':'Lmidot','\uD835\uDD2A':'mfr','\uD835\uDD5E':'mopf','\uD835\uDCC2':'mscr','\uD835\uDD10':'Mfr','\uD835\uDD44':'Mopf','\u2133':'Mscr','\uD835\uDD2B':'nfr','\uD835\uDD5F':'nopf','\uD835\uDCC3':'nscr','\u2115':'Nopf','\uD835\uDCA9':'Nscr','\uD835\uDD11':'Nfr','\u0144':'nacute','\u0143':'Nacute','\u0148':'ncaron','\u0147':'Ncaron','\xF1':'ntilde','\xD1':'Ntilde','\u0146':'ncedil','\u0145':'Ncedil','\u2116':'numero','\u014B':'eng','\u014A':'ENG','\uD835\uDD60':'oopf','\uD835\uDD2C':'ofr','\u2134':'oscr','\uD835\uDCAA':'Oscr','\uD835\uDD12':'Ofr','\uD835\uDD46':'Oopf','\xBA':'ordm','\xF3':'oacute','\xD3':'Oacute','\xF2':'ograve','\xD2':'Ograve','\xF4':'ocirc','\xD4':'Ocirc','\xF6':'ouml','\xD6':'Ouml','\u0151':'odblac','\u0150':'Odblac','\xF5':'otilde','\xD5':'Otilde','\xF8':'oslash','\xD8':'Oslash','\u014D':'omacr','\u014C':'Omacr','\u0153':'oelig','\u0152':'OElig','\uD835\uDD2D':'pfr','\uD835\uDCC5':'pscr','\uD835\uDD61':'popf','\u2119':'Popf','\uD835\uDD13':'Pfr','\uD835\uDCAB':'Pscr','\uD835\uDD62':'qopf','\uD835\uDD2E':'qfr','\uD835\uDCC6':'qscr','\uD835\uDCAC':'Qscr','\uD835\uDD14':'Qfr','\u211A':'Qopf','\u0138':'kgreen','\uD835\uDD2F':'rfr','\uD835\uDD63':'ropf','\uD835\uDCC7':'rscr','\u211B':'Rscr','\u211C':'Re','\u211D':'Ropf','\u0155':'racute','\u0154':'Racute','\u0159':'rcaron','\u0158':'Rcaron','\u0157':'rcedil','\u0156':'Rcedil','\uD835\uDD64':'sopf','\uD835\uDCC8':'sscr','\uD835\uDD30':'sfr','\uD835\uDD4A':'Sopf','\uD835\uDD16':'Sfr','\uD835\uDCAE':'Sscr','\u24C8':'oS','\u015B':'sacute','\u015A':'Sacute','\u015D':'scirc','\u015C':'Scirc','\u0161':'scaron','\u0160':'Scaron','\u015F':'scedil','\u015E':'Scedil','\xDF':'szlig','\uD835\uDD31':'tfr','\uD835\uDCC9':'tscr','\uD835\uDD65':'topf','\uD835\uDCAF':'Tscr','\uD835\uDD17':'Tfr','\uD835\uDD4B':'Topf','\u0165':'tcaron','\u0164':'Tcaron','\u0163':'tcedil','\u0162':'Tcedil','\u2122':'trade','\u0167':'tstrok','\u0166':'Tstrok','\uD835\uDCCA':'uscr','\uD835\uDD66':'uopf','\uD835\uDD32':'ufr','\uD835\uDD4C':'Uopf','\uD835\uDD18':'Ufr','\uD835\uDCB0':'Uscr','\xFA':'uacute','\xDA':'Uacute','\xF9':'ugrave','\xD9':'Ugrave','\u016D':'ubreve','\u016C':'Ubreve','\xFB':'ucirc','\xDB':'Ucirc','\u016F':'uring','\u016E':'Uring','\xFC':'uuml','\xDC':'Uuml','\u0171':'udblac','\u0170':'Udblac','\u0169':'utilde','\u0168':'Utilde','\u0173':'uogon','\u0172':'Uogon','\u016B':'umacr','\u016A':'Umacr','\uD835\uDD33':'vfr','\uD835\uDD67':'vopf','\uD835\uDCCB':'vscr','\uD835\uDD19':'Vfr','\uD835\uDD4D':'Vopf','\uD835\uDCB1':'Vscr','\uD835\uDD68':'wopf','\uD835\uDCCC':'wscr','\uD835\uDD34':'wfr','\uD835\uDCB2':'Wscr','\uD835\uDD4E':'Wopf','\uD835\uDD1A':'Wfr','\u0175':'wcirc','\u0174':'Wcirc','\uD835\uDD35':'xfr','\uD835\uDCCD':'xscr','\uD835\uDD69':'xopf','\uD835\uDD4F':'Xopf','\uD835\uDD1B':'Xfr','\uD835\uDCB3':'Xscr','\uD835\uDD36':'yfr','\uD835\uDCCE':'yscr','\uD835\uDD6A':'yopf','\uD835\uDCB4':'Yscr','\uD835\uDD1C':'Yfr','\uD835\uDD50':'Yopf','\xFD':'yacute','\xDD':'Yacute','\u0177':'ycirc','\u0176':'Ycirc','\xFF':'yuml','\u0178':'Yuml','\uD835\uDCCF':'zscr','\uD835\uDD37':'zfr','\uD835\uDD6B':'zopf','\u2128':'Zfr','\u2124':'Zopf','\uD835\uDCB5':'Zscr','\u017A':'zacute','\u0179':'Zacute','\u017E':'zcaron','\u017D':'Zcaron','\u017C':'zdot','\u017B':'Zdot','\u01B5':'imped','\xFE':'thorn','\xDE':'THORN','\u0149':'napos','\u03B1':'alpha','\u0391':'Alpha','\u03B2':'beta','\u0392':'Beta','\u03B3':'gamma','\u0393':'Gamma','\u03B4':'delta','\u0394':'Delta','\u03B5':'epsi','\u03F5':'epsiv','\u0395':'Epsilon','\u03DD':'gammad','\u03DC':'Gammad','\u03B6':'zeta','\u0396':'Zeta','\u03B7':'eta','\u0397':'Eta','\u03B8':'theta','\u03D1':'thetav','\u0398':'Theta','\u03B9':'iota','\u0399':'Iota','\u03BA':'kappa','\u03F0':'kappav','\u039A':'Kappa','\u03BB':'lambda','\u039B':'Lambda','\u03BC':'mu','\xB5':'micro','\u039C':'Mu','\u03BD':'nu','\u039D':'Nu','\u03BE':'xi','\u039E':'Xi','\u03BF':'omicron','\u039F':'Omicron','\u03C0':'pi','\u03D6':'piv','\u03A0':'Pi','\u03C1':'rho','\u03F1':'rhov','\u03A1':'Rho','\u03C3':'sigma','\u03A3':'Sigma','\u03C2':'sigmaf','\u03C4':'tau','\u03A4':'Tau','\u03C5':'upsi','\u03A5':'Upsilon','\u03D2':'Upsi','\u03C6':'phi','\u03D5':'phiv','\u03A6':'Phi','\u03C7':'chi','\u03A7':'Chi','\u03C8':'psi','\u03A8':'Psi','\u03C9':'omega','\u03A9':'ohm','\u0430':'acy','\u0410':'Acy','\u0431':'bcy','\u0411':'Bcy','\u0432':'vcy','\u0412':'Vcy','\u0433':'gcy','\u0413':'Gcy','\u0453':'gjcy','\u0403':'GJcy','\u0434':'dcy','\u0414':'Dcy','\u0452':'djcy','\u0402':'DJcy','\u0435':'iecy','\u0415':'IEcy','\u0451':'iocy','\u0401':'IOcy','\u0454':'jukcy','\u0404':'Jukcy','\u0436':'zhcy','\u0416':'ZHcy','\u0437':'zcy','\u0417':'Zcy','\u0455':'dscy','\u0405':'DScy','\u0438':'icy','\u0418':'Icy','\u0456':'iukcy','\u0406':'Iukcy','\u0457':'yicy','\u0407':'YIcy','\u0439':'jcy','\u0419':'Jcy','\u0458':'jsercy','\u0408':'Jsercy','\u043A':'kcy','\u041A':'Kcy','\u045C':'kjcy','\u040C':'KJcy','\u043B':'lcy','\u041B':'Lcy','\u0459':'ljcy','\u0409':'LJcy','\u043C':'mcy','\u041C':'Mcy','\u043D':'ncy','\u041D':'Ncy','\u045A':'njcy','\u040A':'NJcy','\u043E':'ocy','\u041E':'Ocy','\u043F':'pcy','\u041F':'Pcy','\u0440':'rcy','\u0420':'Rcy','\u0441':'scy','\u0421':'Scy','\u0442':'tcy','\u0422':'Tcy','\u045B':'tshcy','\u040B':'TSHcy','\u0443':'ucy','\u0423':'Ucy','\u045E':'ubrcy','\u040E':'Ubrcy','\u0444':'fcy','\u0424':'Fcy','\u0445':'khcy','\u0425':'KHcy','\u0446':'tscy','\u0426':'TScy','\u0447':'chcy','\u0427':'CHcy','\u045F':'dzcy','\u040F':'DZcy','\u0448':'shcy','\u0428':'SHcy','\u0449':'shchcy','\u0429':'SHCHcy','\u044A':'hardcy','\u042A':'HARDcy','\u044B':'ycy','\u042B':'Ycy','\u044C':'softcy','\u042C':'SOFTcy','\u044D':'ecy','\u042D':'Ecy','\u044E':'yucy','\u042E':'YUcy','\u044F':'yacy','\u042F':'YAcy','\u2135':'aleph','\u2136':'beth','\u2137':'gimel','\u2138':'daleth'}; -var ObjectFunctionString = fnToString.call( Object ); + var regexEscape = /["&'<>`]/g; + var escapeMap = { + '"': '"', + '&': '&', + '\'': ''', + '<': '<', + // See https://mathiasbynens.be/notes/ambiguous-ampersands: in HTML, the + // following is not strictly necessary unless itโ€™s part of a tag or an + // unquoted attribute value. Weโ€™re only escaping it to support those + // situations, and for XML support. + '>': '>', + // In Internet Explorer โ‰ค 8, the backtick character can be used + // to break out of (un)quoted attribute values or HTML comments. + // See http://html5sec.org/#102, http://html5sec.org/#108, and + // http://html5sec.org/#133. + '`': '`' + }; -var support = {}; + var regexInvalidEntity = /&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/; + var regexInvalidRawCodePoint = /[\0-\x08\x0B\x0E-\x1F\x7F-\x9F\uFDD0-\uFDEF\uFFFE\uFFFF]|[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; + var regexDecode = /&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)([=a-zA-Z0-9])?/g; + var decodeMap = {'aacute':'\xE1','Aacute':'\xC1','abreve':'\u0103','Abreve':'\u0102','ac':'\u223E','acd':'\u223F','acE':'\u223E\u0333','acirc':'\xE2','Acirc':'\xC2','acute':'\xB4','acy':'\u0430','Acy':'\u0410','aelig':'\xE6','AElig':'\xC6','af':'\u2061','afr':'\uD835\uDD1E','Afr':'\uD835\uDD04','agrave':'\xE0','Agrave':'\xC0','alefsym':'\u2135','aleph':'\u2135','alpha':'\u03B1','Alpha':'\u0391','amacr':'\u0101','Amacr':'\u0100','amalg':'\u2A3F','amp':'&','AMP':'&','and':'\u2227','And':'\u2A53','andand':'\u2A55','andd':'\u2A5C','andslope':'\u2A58','andv':'\u2A5A','ang':'\u2220','ange':'\u29A4','angle':'\u2220','angmsd':'\u2221','angmsdaa':'\u29A8','angmsdab':'\u29A9','angmsdac':'\u29AA','angmsdad':'\u29AB','angmsdae':'\u29AC','angmsdaf':'\u29AD','angmsdag':'\u29AE','angmsdah':'\u29AF','angrt':'\u221F','angrtvb':'\u22BE','angrtvbd':'\u299D','angsph':'\u2222','angst':'\xC5','angzarr':'\u237C','aogon':'\u0105','Aogon':'\u0104','aopf':'\uD835\uDD52','Aopf':'\uD835\uDD38','ap':'\u2248','apacir':'\u2A6F','ape':'\u224A','apE':'\u2A70','apid':'\u224B','apos':'\'','ApplyFunction':'\u2061','approx':'\u2248','approxeq':'\u224A','aring':'\xE5','Aring':'\xC5','ascr':'\uD835\uDCB6','Ascr':'\uD835\uDC9C','Assign':'\u2254','ast':'*','asymp':'\u2248','asympeq':'\u224D','atilde':'\xE3','Atilde':'\xC3','auml':'\xE4','Auml':'\xC4','awconint':'\u2233','awint':'\u2A11','backcong':'\u224C','backepsilon':'\u03F6','backprime':'\u2035','backsim':'\u223D','backsimeq':'\u22CD','Backslash':'\u2216','Barv':'\u2AE7','barvee':'\u22BD','barwed':'\u2305','Barwed':'\u2306','barwedge':'\u2305','bbrk':'\u23B5','bbrktbrk':'\u23B6','bcong':'\u224C','bcy':'\u0431','Bcy':'\u0411','bdquo':'\u201E','becaus':'\u2235','because':'\u2235','Because':'\u2235','bemptyv':'\u29B0','bepsi':'\u03F6','bernou':'\u212C','Bernoullis':'\u212C','beta':'\u03B2','Beta':'\u0392','beth':'\u2136','between':'\u226C','bfr':'\uD835\uDD1F','Bfr':'\uD835\uDD05','bigcap':'\u22C2','bigcirc':'\u25EF','bigcup':'\u22C3','bigodot':'\u2A00','bigoplus':'\u2A01','bigotimes':'\u2A02','bigsqcup':'\u2A06','bigstar':'\u2605','bigtriangledown':'\u25BD','bigtriangleup':'\u25B3','biguplus':'\u2A04','bigvee':'\u22C1','bigwedge':'\u22C0','bkarow':'\u290D','blacklozenge':'\u29EB','blacksquare':'\u25AA','blacktriangle':'\u25B4','blacktriangledown':'\u25BE','blacktriangleleft':'\u25C2','blacktriangleright':'\u25B8','blank':'\u2423','blk12':'\u2592','blk14':'\u2591','blk34':'\u2593','block':'\u2588','bne':'=\u20E5','bnequiv':'\u2261\u20E5','bnot':'\u2310','bNot':'\u2AED','bopf':'\uD835\uDD53','Bopf':'\uD835\uDD39','bot':'\u22A5','bottom':'\u22A5','bowtie':'\u22C8','boxbox':'\u29C9','boxdl':'\u2510','boxdL':'\u2555','boxDl':'\u2556','boxDL':'\u2557','boxdr':'\u250C','boxdR':'\u2552','boxDr':'\u2553','boxDR':'\u2554','boxh':'\u2500','boxH':'\u2550','boxhd':'\u252C','boxhD':'\u2565','boxHd':'\u2564','boxHD':'\u2566','boxhu':'\u2534','boxhU':'\u2568','boxHu':'\u2567','boxHU':'\u2569','boxminus':'\u229F','boxplus':'\u229E','boxtimes':'\u22A0','boxul':'\u2518','boxuL':'\u255B','boxUl':'\u255C','boxUL':'\u255D','boxur':'\u2514','boxuR':'\u2558','boxUr':'\u2559','boxUR':'\u255A','boxv':'\u2502','boxV':'\u2551','boxvh':'\u253C','boxvH':'\u256A','boxVh':'\u256B','boxVH':'\u256C','boxvl':'\u2524','boxvL':'\u2561','boxVl':'\u2562','boxVL':'\u2563','boxvr':'\u251C','boxvR':'\u255E','boxVr':'\u255F','boxVR':'\u2560','bprime':'\u2035','breve':'\u02D8','Breve':'\u02D8','brvbar':'\xA6','bscr':'\uD835\uDCB7','Bscr':'\u212C','bsemi':'\u204F','bsim':'\u223D','bsime':'\u22CD','bsol':'\\','bsolb':'\u29C5','bsolhsub':'\u27C8','bull':'\u2022','bullet':'\u2022','bump':'\u224E','bumpe':'\u224F','bumpE':'\u2AAE','bumpeq':'\u224F','Bumpeq':'\u224E','cacute':'\u0107','Cacute':'\u0106','cap':'\u2229','Cap':'\u22D2','capand':'\u2A44','capbrcup':'\u2A49','capcap':'\u2A4B','capcup':'\u2A47','capdot':'\u2A40','CapitalDifferentialD':'\u2145','caps':'\u2229\uFE00','caret':'\u2041','caron':'\u02C7','Cayleys':'\u212D','ccaps':'\u2A4D','ccaron':'\u010D','Ccaron':'\u010C','ccedil':'\xE7','Ccedil':'\xC7','ccirc':'\u0109','Ccirc':'\u0108','Cconint':'\u2230','ccups':'\u2A4C','ccupssm':'\u2A50','cdot':'\u010B','Cdot':'\u010A','cedil':'\xB8','Cedilla':'\xB8','cemptyv':'\u29B2','cent':'\xA2','centerdot':'\xB7','CenterDot':'\xB7','cfr':'\uD835\uDD20','Cfr':'\u212D','chcy':'\u0447','CHcy':'\u0427','check':'\u2713','checkmark':'\u2713','chi':'\u03C7','Chi':'\u03A7','cir':'\u25CB','circ':'\u02C6','circeq':'\u2257','circlearrowleft':'\u21BA','circlearrowright':'\u21BB','circledast':'\u229B','circledcirc':'\u229A','circleddash':'\u229D','CircleDot':'\u2299','circledR':'\xAE','circledS':'\u24C8','CircleMinus':'\u2296','CirclePlus':'\u2295','CircleTimes':'\u2297','cire':'\u2257','cirE':'\u29C3','cirfnint':'\u2A10','cirmid':'\u2AEF','cirscir':'\u29C2','ClockwiseContourIntegral':'\u2232','CloseCurlyDoubleQuote':'\u201D','CloseCurlyQuote':'\u2019','clubs':'\u2663','clubsuit':'\u2663','colon':':','Colon':'\u2237','colone':'\u2254','Colone':'\u2A74','coloneq':'\u2254','comma':',','commat':'@','comp':'\u2201','compfn':'\u2218','complement':'\u2201','complexes':'\u2102','cong':'\u2245','congdot':'\u2A6D','Congruent':'\u2261','conint':'\u222E','Conint':'\u222F','ContourIntegral':'\u222E','copf':'\uD835\uDD54','Copf':'\u2102','coprod':'\u2210','Coproduct':'\u2210','copy':'\xA9','COPY':'\xA9','copysr':'\u2117','CounterClockwiseContourIntegral':'\u2233','crarr':'\u21B5','cross':'\u2717','Cross':'\u2A2F','cscr':'\uD835\uDCB8','Cscr':'\uD835\uDC9E','csub':'\u2ACF','csube':'\u2AD1','csup':'\u2AD0','csupe':'\u2AD2','ctdot':'\u22EF','cudarrl':'\u2938','cudarrr':'\u2935','cuepr':'\u22DE','cuesc':'\u22DF','cularr':'\u21B6','cularrp':'\u293D','cup':'\u222A','Cup':'\u22D3','cupbrcap':'\u2A48','cupcap':'\u2A46','CupCap':'\u224D','cupcup':'\u2A4A','cupdot':'\u228D','cupor':'\u2A45','cups':'\u222A\uFE00','curarr':'\u21B7','curarrm':'\u293C','curlyeqprec':'\u22DE','curlyeqsucc':'\u22DF','curlyvee':'\u22CE','curlywedge':'\u22CF','curren':'\xA4','curvearrowleft':'\u21B6','curvearrowright':'\u21B7','cuvee':'\u22CE','cuwed':'\u22CF','cwconint':'\u2232','cwint':'\u2231','cylcty':'\u232D','dagger':'\u2020','Dagger':'\u2021','daleth':'\u2138','darr':'\u2193','dArr':'\u21D3','Darr':'\u21A1','dash':'\u2010','dashv':'\u22A3','Dashv':'\u2AE4','dbkarow':'\u290F','dblac':'\u02DD','dcaron':'\u010F','Dcaron':'\u010E','dcy':'\u0434','Dcy':'\u0414','dd':'\u2146','DD':'\u2145','ddagger':'\u2021','ddarr':'\u21CA','DDotrahd':'\u2911','ddotseq':'\u2A77','deg':'\xB0','Del':'\u2207','delta':'\u03B4','Delta':'\u0394','demptyv':'\u29B1','dfisht':'\u297F','dfr':'\uD835\uDD21','Dfr':'\uD835\uDD07','dHar':'\u2965','dharl':'\u21C3','dharr':'\u21C2','DiacriticalAcute':'\xB4','DiacriticalDot':'\u02D9','DiacriticalDoubleAcute':'\u02DD','DiacriticalGrave':'`','DiacriticalTilde':'\u02DC','diam':'\u22C4','diamond':'\u22C4','Diamond':'\u22C4','diamondsuit':'\u2666','diams':'\u2666','die':'\xA8','DifferentialD':'\u2146','digamma':'\u03DD','disin':'\u22F2','div':'\xF7','divide':'\xF7','divideontimes':'\u22C7','divonx':'\u22C7','djcy':'\u0452','DJcy':'\u0402','dlcorn':'\u231E','dlcrop':'\u230D','dollar':'$','dopf':'\uD835\uDD55','Dopf':'\uD835\uDD3B','dot':'\u02D9','Dot':'\xA8','DotDot':'\u20DC','doteq':'\u2250','doteqdot':'\u2251','DotEqual':'\u2250','dotminus':'\u2238','dotplus':'\u2214','dotsquare':'\u22A1','doublebarwedge':'\u2306','DoubleContourIntegral':'\u222F','DoubleDot':'\xA8','DoubleDownArrow':'\u21D3','DoubleLeftArrow':'\u21D0','DoubleLeftRightArrow':'\u21D4','DoubleLeftTee':'\u2AE4','DoubleLongLeftArrow':'\u27F8','DoubleLongLeftRightArrow':'\u27FA','DoubleLongRightArrow':'\u27F9','DoubleRightArrow':'\u21D2','DoubleRightTee':'\u22A8','DoubleUpArrow':'\u21D1','DoubleUpDownArrow':'\u21D5','DoubleVerticalBar':'\u2225','downarrow':'\u2193','Downarrow':'\u21D3','DownArrow':'\u2193','DownArrowBar':'\u2913','DownArrowUpArrow':'\u21F5','DownBreve':'\u0311','downdownarrows':'\u21CA','downharpoonleft':'\u21C3','downharpoonright':'\u21C2','DownLeftRightVector':'\u2950','DownLeftTeeVector':'\u295E','DownLeftVector':'\u21BD','DownLeftVectorBar':'\u2956','DownRightTeeVector':'\u295F','DownRightVector':'\u21C1','DownRightVectorBar':'\u2957','DownTee':'\u22A4','DownTeeArrow':'\u21A7','drbkarow':'\u2910','drcorn':'\u231F','drcrop':'\u230C','dscr':'\uD835\uDCB9','Dscr':'\uD835\uDC9F','dscy':'\u0455','DScy':'\u0405','dsol':'\u29F6','dstrok':'\u0111','Dstrok':'\u0110','dtdot':'\u22F1','dtri':'\u25BF','dtrif':'\u25BE','duarr':'\u21F5','duhar':'\u296F','dwangle':'\u29A6','dzcy':'\u045F','DZcy':'\u040F','dzigrarr':'\u27FF','eacute':'\xE9','Eacute':'\xC9','easter':'\u2A6E','ecaron':'\u011B','Ecaron':'\u011A','ecir':'\u2256','ecirc':'\xEA','Ecirc':'\xCA','ecolon':'\u2255','ecy':'\u044D','Ecy':'\u042D','eDDot':'\u2A77','edot':'\u0117','eDot':'\u2251','Edot':'\u0116','ee':'\u2147','efDot':'\u2252','efr':'\uD835\uDD22','Efr':'\uD835\uDD08','eg':'\u2A9A','egrave':'\xE8','Egrave':'\xC8','egs':'\u2A96','egsdot':'\u2A98','el':'\u2A99','Element':'\u2208','elinters':'\u23E7','ell':'\u2113','els':'\u2A95','elsdot':'\u2A97','emacr':'\u0113','Emacr':'\u0112','empty':'\u2205','emptyset':'\u2205','EmptySmallSquare':'\u25FB','emptyv':'\u2205','EmptyVerySmallSquare':'\u25AB','emsp':'\u2003','emsp13':'\u2004','emsp14':'\u2005','eng':'\u014B','ENG':'\u014A','ensp':'\u2002','eogon':'\u0119','Eogon':'\u0118','eopf':'\uD835\uDD56','Eopf':'\uD835\uDD3C','epar':'\u22D5','eparsl':'\u29E3','eplus':'\u2A71','epsi':'\u03B5','epsilon':'\u03B5','Epsilon':'\u0395','epsiv':'\u03F5','eqcirc':'\u2256','eqcolon':'\u2255','eqsim':'\u2242','eqslantgtr':'\u2A96','eqslantless':'\u2A95','Equal':'\u2A75','equals':'=','EqualTilde':'\u2242','equest':'\u225F','Equilibrium':'\u21CC','equiv':'\u2261','equivDD':'\u2A78','eqvparsl':'\u29E5','erarr':'\u2971','erDot':'\u2253','escr':'\u212F','Escr':'\u2130','esdot':'\u2250','esim':'\u2242','Esim':'\u2A73','eta':'\u03B7','Eta':'\u0397','eth':'\xF0','ETH':'\xD0','euml':'\xEB','Euml':'\xCB','euro':'\u20AC','excl':'!','exist':'\u2203','Exists':'\u2203','expectation':'\u2130','exponentiale':'\u2147','ExponentialE':'\u2147','fallingdotseq':'\u2252','fcy':'\u0444','Fcy':'\u0424','female':'\u2640','ffilig':'\uFB03','fflig':'\uFB00','ffllig':'\uFB04','ffr':'\uD835\uDD23','Ffr':'\uD835\uDD09','filig':'\uFB01','FilledSmallSquare':'\u25FC','FilledVerySmallSquare':'\u25AA','fjlig':'fj','flat':'\u266D','fllig':'\uFB02','fltns':'\u25B1','fnof':'\u0192','fopf':'\uD835\uDD57','Fopf':'\uD835\uDD3D','forall':'\u2200','ForAll':'\u2200','fork':'\u22D4','forkv':'\u2AD9','Fouriertrf':'\u2131','fpartint':'\u2A0D','frac12':'\xBD','frac13':'\u2153','frac14':'\xBC','frac15':'\u2155','frac16':'\u2159','frac18':'\u215B','frac23':'\u2154','frac25':'\u2156','frac34':'\xBE','frac35':'\u2157','frac38':'\u215C','frac45':'\u2158','frac56':'\u215A','frac58':'\u215D','frac78':'\u215E','frasl':'\u2044','frown':'\u2322','fscr':'\uD835\uDCBB','Fscr':'\u2131','gacute':'\u01F5','gamma':'\u03B3','Gamma':'\u0393','gammad':'\u03DD','Gammad':'\u03DC','gap':'\u2A86','gbreve':'\u011F','Gbreve':'\u011E','Gcedil':'\u0122','gcirc':'\u011D','Gcirc':'\u011C','gcy':'\u0433','Gcy':'\u0413','gdot':'\u0121','Gdot':'\u0120','ge':'\u2265','gE':'\u2267','gel':'\u22DB','gEl':'\u2A8C','geq':'\u2265','geqq':'\u2267','geqslant':'\u2A7E','ges':'\u2A7E','gescc':'\u2AA9','gesdot':'\u2A80','gesdoto':'\u2A82','gesdotol':'\u2A84','gesl':'\u22DB\uFE00','gesles':'\u2A94','gfr':'\uD835\uDD24','Gfr':'\uD835\uDD0A','gg':'\u226B','Gg':'\u22D9','ggg':'\u22D9','gimel':'\u2137','gjcy':'\u0453','GJcy':'\u0403','gl':'\u2277','gla':'\u2AA5','glE':'\u2A92','glj':'\u2AA4','gnap':'\u2A8A','gnapprox':'\u2A8A','gne':'\u2A88','gnE':'\u2269','gneq':'\u2A88','gneqq':'\u2269','gnsim':'\u22E7','gopf':'\uD835\uDD58','Gopf':'\uD835\uDD3E','grave':'`','GreaterEqual':'\u2265','GreaterEqualLess':'\u22DB','GreaterFullEqual':'\u2267','GreaterGreater':'\u2AA2','GreaterLess':'\u2277','GreaterSlantEqual':'\u2A7E','GreaterTilde':'\u2273','gscr':'\u210A','Gscr':'\uD835\uDCA2','gsim':'\u2273','gsime':'\u2A8E','gsiml':'\u2A90','gt':'>','Gt':'\u226B','GT':'>','gtcc':'\u2AA7','gtcir':'\u2A7A','gtdot':'\u22D7','gtlPar':'\u2995','gtquest':'\u2A7C','gtrapprox':'\u2A86','gtrarr':'\u2978','gtrdot':'\u22D7','gtreqless':'\u22DB','gtreqqless':'\u2A8C','gtrless':'\u2277','gtrsim':'\u2273','gvertneqq':'\u2269\uFE00','gvnE':'\u2269\uFE00','Hacek':'\u02C7','hairsp':'\u200A','half':'\xBD','hamilt':'\u210B','hardcy':'\u044A','HARDcy':'\u042A','harr':'\u2194','hArr':'\u21D4','harrcir':'\u2948','harrw':'\u21AD','Hat':'^','hbar':'\u210F','hcirc':'\u0125','Hcirc':'\u0124','hearts':'\u2665','heartsuit':'\u2665','hellip':'\u2026','hercon':'\u22B9','hfr':'\uD835\uDD25','Hfr':'\u210C','HilbertSpace':'\u210B','hksearow':'\u2925','hkswarow':'\u2926','hoarr':'\u21FF','homtht':'\u223B','hookleftarrow':'\u21A9','hookrightarrow':'\u21AA','hopf':'\uD835\uDD59','Hopf':'\u210D','horbar':'\u2015','HorizontalLine':'\u2500','hscr':'\uD835\uDCBD','Hscr':'\u210B','hslash':'\u210F','hstrok':'\u0127','Hstrok':'\u0126','HumpDownHump':'\u224E','HumpEqual':'\u224F','hybull':'\u2043','hyphen':'\u2010','iacute':'\xED','Iacute':'\xCD','ic':'\u2063','icirc':'\xEE','Icirc':'\xCE','icy':'\u0438','Icy':'\u0418','Idot':'\u0130','iecy':'\u0435','IEcy':'\u0415','iexcl':'\xA1','iff':'\u21D4','ifr':'\uD835\uDD26','Ifr':'\u2111','igrave':'\xEC','Igrave':'\xCC','ii':'\u2148','iiiint':'\u2A0C','iiint':'\u222D','iinfin':'\u29DC','iiota':'\u2129','ijlig':'\u0133','IJlig':'\u0132','Im':'\u2111','imacr':'\u012B','Imacr':'\u012A','image':'\u2111','ImaginaryI':'\u2148','imagline':'\u2110','imagpart':'\u2111','imath':'\u0131','imof':'\u22B7','imped':'\u01B5','Implies':'\u21D2','in':'\u2208','incare':'\u2105','infin':'\u221E','infintie':'\u29DD','inodot':'\u0131','int':'\u222B','Int':'\u222C','intcal':'\u22BA','integers':'\u2124','Integral':'\u222B','intercal':'\u22BA','Intersection':'\u22C2','intlarhk':'\u2A17','intprod':'\u2A3C','InvisibleComma':'\u2063','InvisibleTimes':'\u2062','iocy':'\u0451','IOcy':'\u0401','iogon':'\u012F','Iogon':'\u012E','iopf':'\uD835\uDD5A','Iopf':'\uD835\uDD40','iota':'\u03B9','Iota':'\u0399','iprod':'\u2A3C','iquest':'\xBF','iscr':'\uD835\uDCBE','Iscr':'\u2110','isin':'\u2208','isindot':'\u22F5','isinE':'\u22F9','isins':'\u22F4','isinsv':'\u22F3','isinv':'\u2208','it':'\u2062','itilde':'\u0129','Itilde':'\u0128','iukcy':'\u0456','Iukcy':'\u0406','iuml':'\xEF','Iuml':'\xCF','jcirc':'\u0135','Jcirc':'\u0134','jcy':'\u0439','Jcy':'\u0419','jfr':'\uD835\uDD27','Jfr':'\uD835\uDD0D','jmath':'\u0237','jopf':'\uD835\uDD5B','Jopf':'\uD835\uDD41','jscr':'\uD835\uDCBF','Jscr':'\uD835\uDCA5','jsercy':'\u0458','Jsercy':'\u0408','jukcy':'\u0454','Jukcy':'\u0404','kappa':'\u03BA','Kappa':'\u039A','kappav':'\u03F0','kcedil':'\u0137','Kcedil':'\u0136','kcy':'\u043A','Kcy':'\u041A','kfr':'\uD835\uDD28','Kfr':'\uD835\uDD0E','kgreen':'\u0138','khcy':'\u0445','KHcy':'\u0425','kjcy':'\u045C','KJcy':'\u040C','kopf':'\uD835\uDD5C','Kopf':'\uD835\uDD42','kscr':'\uD835\uDCC0','Kscr':'\uD835\uDCA6','lAarr':'\u21DA','lacute':'\u013A','Lacute':'\u0139','laemptyv':'\u29B4','lagran':'\u2112','lambda':'\u03BB','Lambda':'\u039B','lang':'\u27E8','Lang':'\u27EA','langd':'\u2991','langle':'\u27E8','lap':'\u2A85','Laplacetrf':'\u2112','laquo':'\xAB','larr':'\u2190','lArr':'\u21D0','Larr':'\u219E','larrb':'\u21E4','larrbfs':'\u291F','larrfs':'\u291D','larrhk':'\u21A9','larrlp':'\u21AB','larrpl':'\u2939','larrsim':'\u2973','larrtl':'\u21A2','lat':'\u2AAB','latail':'\u2919','lAtail':'\u291B','late':'\u2AAD','lates':'\u2AAD\uFE00','lbarr':'\u290C','lBarr':'\u290E','lbbrk':'\u2772','lbrace':'{','lbrack':'[','lbrke':'\u298B','lbrksld':'\u298F','lbrkslu':'\u298D','lcaron':'\u013E','Lcaron':'\u013D','lcedil':'\u013C','Lcedil':'\u013B','lceil':'\u2308','lcub':'{','lcy':'\u043B','Lcy':'\u041B','ldca':'\u2936','ldquo':'\u201C','ldquor':'\u201E','ldrdhar':'\u2967','ldrushar':'\u294B','ldsh':'\u21B2','le':'\u2264','lE':'\u2266','LeftAngleBracket':'\u27E8','leftarrow':'\u2190','Leftarrow':'\u21D0','LeftArrow':'\u2190','LeftArrowBar':'\u21E4','LeftArrowRightArrow':'\u21C6','leftarrowtail':'\u21A2','LeftCeiling':'\u2308','LeftDoubleBracket':'\u27E6','LeftDownTeeVector':'\u2961','LeftDownVector':'\u21C3','LeftDownVectorBar':'\u2959','LeftFloor':'\u230A','leftharpoondown':'\u21BD','leftharpoonup':'\u21BC','leftleftarrows':'\u21C7','leftrightarrow':'\u2194','Leftrightarrow':'\u21D4','LeftRightArrow':'\u2194','leftrightarrows':'\u21C6','leftrightharpoons':'\u21CB','leftrightsquigarrow':'\u21AD','LeftRightVector':'\u294E','LeftTee':'\u22A3','LeftTeeArrow':'\u21A4','LeftTeeVector':'\u295A','leftthreetimes':'\u22CB','LeftTriangle':'\u22B2','LeftTriangleBar':'\u29CF','LeftTriangleEqual':'\u22B4','LeftUpDownVector':'\u2951','LeftUpTeeVector':'\u2960','LeftUpVector':'\u21BF','LeftUpVectorBar':'\u2958','LeftVector':'\u21BC','LeftVectorBar':'\u2952','leg':'\u22DA','lEg':'\u2A8B','leq':'\u2264','leqq':'\u2266','leqslant':'\u2A7D','les':'\u2A7D','lescc':'\u2AA8','lesdot':'\u2A7F','lesdoto':'\u2A81','lesdotor':'\u2A83','lesg':'\u22DA\uFE00','lesges':'\u2A93','lessapprox':'\u2A85','lessdot':'\u22D6','lesseqgtr':'\u22DA','lesseqqgtr':'\u2A8B','LessEqualGreater':'\u22DA','LessFullEqual':'\u2266','LessGreater':'\u2276','lessgtr':'\u2276','LessLess':'\u2AA1','lesssim':'\u2272','LessSlantEqual':'\u2A7D','LessTilde':'\u2272','lfisht':'\u297C','lfloor':'\u230A','lfr':'\uD835\uDD29','Lfr':'\uD835\uDD0F','lg':'\u2276','lgE':'\u2A91','lHar':'\u2962','lhard':'\u21BD','lharu':'\u21BC','lharul':'\u296A','lhblk':'\u2584','ljcy':'\u0459','LJcy':'\u0409','ll':'\u226A','Ll':'\u22D8','llarr':'\u21C7','llcorner':'\u231E','Lleftarrow':'\u21DA','llhard':'\u296B','lltri':'\u25FA','lmidot':'\u0140','Lmidot':'\u013F','lmoust':'\u23B0','lmoustache':'\u23B0','lnap':'\u2A89','lnapprox':'\u2A89','lne':'\u2A87','lnE':'\u2268','lneq':'\u2A87','lneqq':'\u2268','lnsim':'\u22E6','loang':'\u27EC','loarr':'\u21FD','lobrk':'\u27E6','longleftarrow':'\u27F5','Longleftarrow':'\u27F8','LongLeftArrow':'\u27F5','longleftrightarrow':'\u27F7','Longleftrightarrow':'\u27FA','LongLeftRightArrow':'\u27F7','longmapsto':'\u27FC','longrightarrow':'\u27F6','Longrightarrow':'\u27F9','LongRightArrow':'\u27F6','looparrowleft':'\u21AB','looparrowright':'\u21AC','lopar':'\u2985','lopf':'\uD835\uDD5D','Lopf':'\uD835\uDD43','loplus':'\u2A2D','lotimes':'\u2A34','lowast':'\u2217','lowbar':'_','LowerLeftArrow':'\u2199','LowerRightArrow':'\u2198','loz':'\u25CA','lozenge':'\u25CA','lozf':'\u29EB','lpar':'(','lparlt':'\u2993','lrarr':'\u21C6','lrcorner':'\u231F','lrhar':'\u21CB','lrhard':'\u296D','lrm':'\u200E','lrtri':'\u22BF','lsaquo':'\u2039','lscr':'\uD835\uDCC1','Lscr':'\u2112','lsh':'\u21B0','Lsh':'\u21B0','lsim':'\u2272','lsime':'\u2A8D','lsimg':'\u2A8F','lsqb':'[','lsquo':'\u2018','lsquor':'\u201A','lstrok':'\u0142','Lstrok':'\u0141','lt':'<','Lt':'\u226A','LT':'<','ltcc':'\u2AA6','ltcir':'\u2A79','ltdot':'\u22D6','lthree':'\u22CB','ltimes':'\u22C9','ltlarr':'\u2976','ltquest':'\u2A7B','ltri':'\u25C3','ltrie':'\u22B4','ltrif':'\u25C2','ltrPar':'\u2996','lurdshar':'\u294A','luruhar':'\u2966','lvertneqq':'\u2268\uFE00','lvnE':'\u2268\uFE00','macr':'\xAF','male':'\u2642','malt':'\u2720','maltese':'\u2720','map':'\u21A6','Map':'\u2905','mapsto':'\u21A6','mapstodown':'\u21A7','mapstoleft':'\u21A4','mapstoup':'\u21A5','marker':'\u25AE','mcomma':'\u2A29','mcy':'\u043C','Mcy':'\u041C','mdash':'\u2014','mDDot':'\u223A','measuredangle':'\u2221','MediumSpace':'\u205F','Mellintrf':'\u2133','mfr':'\uD835\uDD2A','Mfr':'\uD835\uDD10','mho':'\u2127','micro':'\xB5','mid':'\u2223','midast':'*','midcir':'\u2AF0','middot':'\xB7','minus':'\u2212','minusb':'\u229F','minusd':'\u2238','minusdu':'\u2A2A','MinusPlus':'\u2213','mlcp':'\u2ADB','mldr':'\u2026','mnplus':'\u2213','models':'\u22A7','mopf':'\uD835\uDD5E','Mopf':'\uD835\uDD44','mp':'\u2213','mscr':'\uD835\uDCC2','Mscr':'\u2133','mstpos':'\u223E','mu':'\u03BC','Mu':'\u039C','multimap':'\u22B8','mumap':'\u22B8','nabla':'\u2207','nacute':'\u0144','Nacute':'\u0143','nang':'\u2220\u20D2','nap':'\u2249','napE':'\u2A70\u0338','napid':'\u224B\u0338','napos':'\u0149','napprox':'\u2249','natur':'\u266E','natural':'\u266E','naturals':'\u2115','nbsp':'\xA0','nbump':'\u224E\u0338','nbumpe':'\u224F\u0338','ncap':'\u2A43','ncaron':'\u0148','Ncaron':'\u0147','ncedil':'\u0146','Ncedil':'\u0145','ncong':'\u2247','ncongdot':'\u2A6D\u0338','ncup':'\u2A42','ncy':'\u043D','Ncy':'\u041D','ndash':'\u2013','ne':'\u2260','nearhk':'\u2924','nearr':'\u2197','neArr':'\u21D7','nearrow':'\u2197','nedot':'\u2250\u0338','NegativeMediumSpace':'\u200B','NegativeThickSpace':'\u200B','NegativeThinSpace':'\u200B','NegativeVeryThinSpace':'\u200B','nequiv':'\u2262','nesear':'\u2928','nesim':'\u2242\u0338','NestedGreaterGreater':'\u226B','NestedLessLess':'\u226A','NewLine':'\n','nexist':'\u2204','nexists':'\u2204','nfr':'\uD835\uDD2B','Nfr':'\uD835\uDD11','nge':'\u2271','ngE':'\u2267\u0338','ngeq':'\u2271','ngeqq':'\u2267\u0338','ngeqslant':'\u2A7E\u0338','nges':'\u2A7E\u0338','nGg':'\u22D9\u0338','ngsim':'\u2275','ngt':'\u226F','nGt':'\u226B\u20D2','ngtr':'\u226F','nGtv':'\u226B\u0338','nharr':'\u21AE','nhArr':'\u21CE','nhpar':'\u2AF2','ni':'\u220B','nis':'\u22FC','nisd':'\u22FA','niv':'\u220B','njcy':'\u045A','NJcy':'\u040A','nlarr':'\u219A','nlArr':'\u21CD','nldr':'\u2025','nle':'\u2270','nlE':'\u2266\u0338','nleftarrow':'\u219A','nLeftarrow':'\u21CD','nleftrightarrow':'\u21AE','nLeftrightarrow':'\u21CE','nleq':'\u2270','nleqq':'\u2266\u0338','nleqslant':'\u2A7D\u0338','nles':'\u2A7D\u0338','nless':'\u226E','nLl':'\u22D8\u0338','nlsim':'\u2274','nlt':'\u226E','nLt':'\u226A\u20D2','nltri':'\u22EA','nltrie':'\u22EC','nLtv':'\u226A\u0338','nmid':'\u2224','NoBreak':'\u2060','NonBreakingSpace':'\xA0','nopf':'\uD835\uDD5F','Nopf':'\u2115','not':'\xAC','Not':'\u2AEC','NotCongruent':'\u2262','NotCupCap':'\u226D','NotDoubleVerticalBar':'\u2226','NotElement':'\u2209','NotEqual':'\u2260','NotEqualTilde':'\u2242\u0338','NotExists':'\u2204','NotGreater':'\u226F','NotGreaterEqual':'\u2271','NotGreaterFullEqual':'\u2267\u0338','NotGreaterGreater':'\u226B\u0338','NotGreaterLess':'\u2279','NotGreaterSlantEqual':'\u2A7E\u0338','NotGreaterTilde':'\u2275','NotHumpDownHump':'\u224E\u0338','NotHumpEqual':'\u224F\u0338','notin':'\u2209','notindot':'\u22F5\u0338','notinE':'\u22F9\u0338','notinva':'\u2209','notinvb':'\u22F7','notinvc':'\u22F6','NotLeftTriangle':'\u22EA','NotLeftTriangleBar':'\u29CF\u0338','NotLeftTriangleEqual':'\u22EC','NotLess':'\u226E','NotLessEqual':'\u2270','NotLessGreater':'\u2278','NotLessLess':'\u226A\u0338','NotLessSlantEqual':'\u2A7D\u0338','NotLessTilde':'\u2274','NotNestedGreaterGreater':'\u2AA2\u0338','NotNestedLessLess':'\u2AA1\u0338','notni':'\u220C','notniva':'\u220C','notnivb':'\u22FE','notnivc':'\u22FD','NotPrecedes':'\u2280','NotPrecedesEqual':'\u2AAF\u0338','NotPrecedesSlantEqual':'\u22E0','NotReverseElement':'\u220C','NotRightTriangle':'\u22EB','NotRightTriangleBar':'\u29D0\u0338','NotRightTriangleEqual':'\u22ED','NotSquareSubset':'\u228F\u0338','NotSquareSubsetEqual':'\u22E2','NotSquareSuperset':'\u2290\u0338','NotSquareSupersetEqual':'\u22E3','NotSubset':'\u2282\u20D2','NotSubsetEqual':'\u2288','NotSucceeds':'\u2281','NotSucceedsEqual':'\u2AB0\u0338','NotSucceedsSlantEqual':'\u22E1','NotSucceedsTilde':'\u227F\u0338','NotSuperset':'\u2283\u20D2','NotSupersetEqual':'\u2289','NotTilde':'\u2241','NotTildeEqual':'\u2244','NotTildeFullEqual':'\u2247','NotTildeTilde':'\u2249','NotVerticalBar':'\u2224','npar':'\u2226','nparallel':'\u2226','nparsl':'\u2AFD\u20E5','npart':'\u2202\u0338','npolint':'\u2A14','npr':'\u2280','nprcue':'\u22E0','npre':'\u2AAF\u0338','nprec':'\u2280','npreceq':'\u2AAF\u0338','nrarr':'\u219B','nrArr':'\u21CF','nrarrc':'\u2933\u0338','nrarrw':'\u219D\u0338','nrightarrow':'\u219B','nRightarrow':'\u21CF','nrtri':'\u22EB','nrtrie':'\u22ED','nsc':'\u2281','nsccue':'\u22E1','nsce':'\u2AB0\u0338','nscr':'\uD835\uDCC3','Nscr':'\uD835\uDCA9','nshortmid':'\u2224','nshortparallel':'\u2226','nsim':'\u2241','nsime':'\u2244','nsimeq':'\u2244','nsmid':'\u2224','nspar':'\u2226','nsqsube':'\u22E2','nsqsupe':'\u22E3','nsub':'\u2284','nsube':'\u2288','nsubE':'\u2AC5\u0338','nsubset':'\u2282\u20D2','nsubseteq':'\u2288','nsubseteqq':'\u2AC5\u0338','nsucc':'\u2281','nsucceq':'\u2AB0\u0338','nsup':'\u2285','nsupe':'\u2289','nsupE':'\u2AC6\u0338','nsupset':'\u2283\u20D2','nsupseteq':'\u2289','nsupseteqq':'\u2AC6\u0338','ntgl':'\u2279','ntilde':'\xF1','Ntilde':'\xD1','ntlg':'\u2278','ntriangleleft':'\u22EA','ntrianglelefteq':'\u22EC','ntriangleright':'\u22EB','ntrianglerighteq':'\u22ED','nu':'\u03BD','Nu':'\u039D','num':'#','numero':'\u2116','numsp':'\u2007','nvap':'\u224D\u20D2','nvdash':'\u22AC','nvDash':'\u22AD','nVdash':'\u22AE','nVDash':'\u22AF','nvge':'\u2265\u20D2','nvgt':'>\u20D2','nvHarr':'\u2904','nvinfin':'\u29DE','nvlArr':'\u2902','nvle':'\u2264\u20D2','nvlt':'<\u20D2','nvltrie':'\u22B4\u20D2','nvrArr':'\u2903','nvrtrie':'\u22B5\u20D2','nvsim':'\u223C\u20D2','nwarhk':'\u2923','nwarr':'\u2196','nwArr':'\u21D6','nwarrow':'\u2196','nwnear':'\u2927','oacute':'\xF3','Oacute':'\xD3','oast':'\u229B','ocir':'\u229A','ocirc':'\xF4','Ocirc':'\xD4','ocy':'\u043E','Ocy':'\u041E','odash':'\u229D','odblac':'\u0151','Odblac':'\u0150','odiv':'\u2A38','odot':'\u2299','odsold':'\u29BC','oelig':'\u0153','OElig':'\u0152','ofcir':'\u29BF','ofr':'\uD835\uDD2C','Ofr':'\uD835\uDD12','ogon':'\u02DB','ograve':'\xF2','Ograve':'\xD2','ogt':'\u29C1','ohbar':'\u29B5','ohm':'\u03A9','oint':'\u222E','olarr':'\u21BA','olcir':'\u29BE','olcross':'\u29BB','oline':'\u203E','olt':'\u29C0','omacr':'\u014D','Omacr':'\u014C','omega':'\u03C9','Omega':'\u03A9','omicron':'\u03BF','Omicron':'\u039F','omid':'\u29B6','ominus':'\u2296','oopf':'\uD835\uDD60','Oopf':'\uD835\uDD46','opar':'\u29B7','OpenCurlyDoubleQuote':'\u201C','OpenCurlyQuote':'\u2018','operp':'\u29B9','oplus':'\u2295','or':'\u2228','Or':'\u2A54','orarr':'\u21BB','ord':'\u2A5D','order':'\u2134','orderof':'\u2134','ordf':'\xAA','ordm':'\xBA','origof':'\u22B6','oror':'\u2A56','orslope':'\u2A57','orv':'\u2A5B','oS':'\u24C8','oscr':'\u2134','Oscr':'\uD835\uDCAA','oslash':'\xF8','Oslash':'\xD8','osol':'\u2298','otilde':'\xF5','Otilde':'\xD5','otimes':'\u2297','Otimes':'\u2A37','otimesas':'\u2A36','ouml':'\xF6','Ouml':'\xD6','ovbar':'\u233D','OverBar':'\u203E','OverBrace':'\u23DE','OverBracket':'\u23B4','OverParenthesis':'\u23DC','par':'\u2225','para':'\xB6','parallel':'\u2225','parsim':'\u2AF3','parsl':'\u2AFD','part':'\u2202','PartialD':'\u2202','pcy':'\u043F','Pcy':'\u041F','percnt':'%','period':'.','permil':'\u2030','perp':'\u22A5','pertenk':'\u2031','pfr':'\uD835\uDD2D','Pfr':'\uD835\uDD13','phi':'\u03C6','Phi':'\u03A6','phiv':'\u03D5','phmmat':'\u2133','phone':'\u260E','pi':'\u03C0','Pi':'\u03A0','pitchfork':'\u22D4','piv':'\u03D6','planck':'\u210F','planckh':'\u210E','plankv':'\u210F','plus':'+','plusacir':'\u2A23','plusb':'\u229E','pluscir':'\u2A22','plusdo':'\u2214','plusdu':'\u2A25','pluse':'\u2A72','PlusMinus':'\xB1','plusmn':'\xB1','plussim':'\u2A26','plustwo':'\u2A27','pm':'\xB1','Poincareplane':'\u210C','pointint':'\u2A15','popf':'\uD835\uDD61','Popf':'\u2119','pound':'\xA3','pr':'\u227A','Pr':'\u2ABB','prap':'\u2AB7','prcue':'\u227C','pre':'\u2AAF','prE':'\u2AB3','prec':'\u227A','precapprox':'\u2AB7','preccurlyeq':'\u227C','Precedes':'\u227A','PrecedesEqual':'\u2AAF','PrecedesSlantEqual':'\u227C','PrecedesTilde':'\u227E','preceq':'\u2AAF','precnapprox':'\u2AB9','precneqq':'\u2AB5','precnsim':'\u22E8','precsim':'\u227E','prime':'\u2032','Prime':'\u2033','primes':'\u2119','prnap':'\u2AB9','prnE':'\u2AB5','prnsim':'\u22E8','prod':'\u220F','Product':'\u220F','profalar':'\u232E','profline':'\u2312','profsurf':'\u2313','prop':'\u221D','Proportion':'\u2237','Proportional':'\u221D','propto':'\u221D','prsim':'\u227E','prurel':'\u22B0','pscr':'\uD835\uDCC5','Pscr':'\uD835\uDCAB','psi':'\u03C8','Psi':'\u03A8','puncsp':'\u2008','qfr':'\uD835\uDD2E','Qfr':'\uD835\uDD14','qint':'\u2A0C','qopf':'\uD835\uDD62','Qopf':'\u211A','qprime':'\u2057','qscr':'\uD835\uDCC6','Qscr':'\uD835\uDCAC','quaternions':'\u210D','quatint':'\u2A16','quest':'?','questeq':'\u225F','quot':'"','QUOT':'"','rAarr':'\u21DB','race':'\u223D\u0331','racute':'\u0155','Racute':'\u0154','radic':'\u221A','raemptyv':'\u29B3','rang':'\u27E9','Rang':'\u27EB','rangd':'\u2992','range':'\u29A5','rangle':'\u27E9','raquo':'\xBB','rarr':'\u2192','rArr':'\u21D2','Rarr':'\u21A0','rarrap':'\u2975','rarrb':'\u21E5','rarrbfs':'\u2920','rarrc':'\u2933','rarrfs':'\u291E','rarrhk':'\u21AA','rarrlp':'\u21AC','rarrpl':'\u2945','rarrsim':'\u2974','rarrtl':'\u21A3','Rarrtl':'\u2916','rarrw':'\u219D','ratail':'\u291A','rAtail':'\u291C','ratio':'\u2236','rationals':'\u211A','rbarr':'\u290D','rBarr':'\u290F','RBarr':'\u2910','rbbrk':'\u2773','rbrace':'}','rbrack':']','rbrke':'\u298C','rbrksld':'\u298E','rbrkslu':'\u2990','rcaron':'\u0159','Rcaron':'\u0158','rcedil':'\u0157','Rcedil':'\u0156','rceil':'\u2309','rcub':'}','rcy':'\u0440','Rcy':'\u0420','rdca':'\u2937','rdldhar':'\u2969','rdquo':'\u201D','rdquor':'\u201D','rdsh':'\u21B3','Re':'\u211C','real':'\u211C','realine':'\u211B','realpart':'\u211C','reals':'\u211D','rect':'\u25AD','reg':'\xAE','REG':'\xAE','ReverseElement':'\u220B','ReverseEquilibrium':'\u21CB','ReverseUpEquilibrium':'\u296F','rfisht':'\u297D','rfloor':'\u230B','rfr':'\uD835\uDD2F','Rfr':'\u211C','rHar':'\u2964','rhard':'\u21C1','rharu':'\u21C0','rharul':'\u296C','rho':'\u03C1','Rho':'\u03A1','rhov':'\u03F1','RightAngleBracket':'\u27E9','rightarrow':'\u2192','Rightarrow':'\u21D2','RightArrow':'\u2192','RightArrowBar':'\u21E5','RightArrowLeftArrow':'\u21C4','rightarrowtail':'\u21A3','RightCeiling':'\u2309','RightDoubleBracket':'\u27E7','RightDownTeeVector':'\u295D','RightDownVector':'\u21C2','RightDownVectorBar':'\u2955','RightFloor':'\u230B','rightharpoondown':'\u21C1','rightharpoonup':'\u21C0','rightleftarrows':'\u21C4','rightleftharpoons':'\u21CC','rightrightarrows':'\u21C9','rightsquigarrow':'\u219D','RightTee':'\u22A2','RightTeeArrow':'\u21A6','RightTeeVector':'\u295B','rightthreetimes':'\u22CC','RightTriangle':'\u22B3','RightTriangleBar':'\u29D0','RightTriangleEqual':'\u22B5','RightUpDownVector':'\u294F','RightUpTeeVector':'\u295C','RightUpVector':'\u21BE','RightUpVectorBar':'\u2954','RightVector':'\u21C0','RightVectorBar':'\u2953','ring':'\u02DA','risingdotseq':'\u2253','rlarr':'\u21C4','rlhar':'\u21CC','rlm':'\u200F','rmoust':'\u23B1','rmoustache':'\u23B1','rnmid':'\u2AEE','roang':'\u27ED','roarr':'\u21FE','robrk':'\u27E7','ropar':'\u2986','ropf':'\uD835\uDD63','Ropf':'\u211D','roplus':'\u2A2E','rotimes':'\u2A35','RoundImplies':'\u2970','rpar':')','rpargt':'\u2994','rppolint':'\u2A12','rrarr':'\u21C9','Rrightarrow':'\u21DB','rsaquo':'\u203A','rscr':'\uD835\uDCC7','Rscr':'\u211B','rsh':'\u21B1','Rsh':'\u21B1','rsqb':']','rsquo':'\u2019','rsquor':'\u2019','rthree':'\u22CC','rtimes':'\u22CA','rtri':'\u25B9','rtrie':'\u22B5','rtrif':'\u25B8','rtriltri':'\u29CE','RuleDelayed':'\u29F4','ruluhar':'\u2968','rx':'\u211E','sacute':'\u015B','Sacute':'\u015A','sbquo':'\u201A','sc':'\u227B','Sc':'\u2ABC','scap':'\u2AB8','scaron':'\u0161','Scaron':'\u0160','sccue':'\u227D','sce':'\u2AB0','scE':'\u2AB4','scedil':'\u015F','Scedil':'\u015E','scirc':'\u015D','Scirc':'\u015C','scnap':'\u2ABA','scnE':'\u2AB6','scnsim':'\u22E9','scpolint':'\u2A13','scsim':'\u227F','scy':'\u0441','Scy':'\u0421','sdot':'\u22C5','sdotb':'\u22A1','sdote':'\u2A66','searhk':'\u2925','searr':'\u2198','seArr':'\u21D8','searrow':'\u2198','sect':'\xA7','semi':';','seswar':'\u2929','setminus':'\u2216','setmn':'\u2216','sext':'\u2736','sfr':'\uD835\uDD30','Sfr':'\uD835\uDD16','sfrown':'\u2322','sharp':'\u266F','shchcy':'\u0449','SHCHcy':'\u0429','shcy':'\u0448','SHcy':'\u0428','ShortDownArrow':'\u2193','ShortLeftArrow':'\u2190','shortmid':'\u2223','shortparallel':'\u2225','ShortRightArrow':'\u2192','ShortUpArrow':'\u2191','shy':'\xAD','sigma':'\u03C3','Sigma':'\u03A3','sigmaf':'\u03C2','sigmav':'\u03C2','sim':'\u223C','simdot':'\u2A6A','sime':'\u2243','simeq':'\u2243','simg':'\u2A9E','simgE':'\u2AA0','siml':'\u2A9D','simlE':'\u2A9F','simne':'\u2246','simplus':'\u2A24','simrarr':'\u2972','slarr':'\u2190','SmallCircle':'\u2218','smallsetminus':'\u2216','smashp':'\u2A33','smeparsl':'\u29E4','smid':'\u2223','smile':'\u2323','smt':'\u2AAA','smte':'\u2AAC','smtes':'\u2AAC\uFE00','softcy':'\u044C','SOFTcy':'\u042C','sol':'/','solb':'\u29C4','solbar':'\u233F','sopf':'\uD835\uDD64','Sopf':'\uD835\uDD4A','spades':'\u2660','spadesuit':'\u2660','spar':'\u2225','sqcap':'\u2293','sqcaps':'\u2293\uFE00','sqcup':'\u2294','sqcups':'\u2294\uFE00','Sqrt':'\u221A','sqsub':'\u228F','sqsube':'\u2291','sqsubset':'\u228F','sqsubseteq':'\u2291','sqsup':'\u2290','sqsupe':'\u2292','sqsupset':'\u2290','sqsupseteq':'\u2292','squ':'\u25A1','square':'\u25A1','Square':'\u25A1','SquareIntersection':'\u2293','SquareSubset':'\u228F','SquareSubsetEqual':'\u2291','SquareSuperset':'\u2290','SquareSupersetEqual':'\u2292','SquareUnion':'\u2294','squarf':'\u25AA','squf':'\u25AA','srarr':'\u2192','sscr':'\uD835\uDCC8','Sscr':'\uD835\uDCAE','ssetmn':'\u2216','ssmile':'\u2323','sstarf':'\u22C6','star':'\u2606','Star':'\u22C6','starf':'\u2605','straightepsilon':'\u03F5','straightphi':'\u03D5','strns':'\xAF','sub':'\u2282','Sub':'\u22D0','subdot':'\u2ABD','sube':'\u2286','subE':'\u2AC5','subedot':'\u2AC3','submult':'\u2AC1','subne':'\u228A','subnE':'\u2ACB','subplus':'\u2ABF','subrarr':'\u2979','subset':'\u2282','Subset':'\u22D0','subseteq':'\u2286','subseteqq':'\u2AC5','SubsetEqual':'\u2286','subsetneq':'\u228A','subsetneqq':'\u2ACB','subsim':'\u2AC7','subsub':'\u2AD5','subsup':'\u2AD3','succ':'\u227B','succapprox':'\u2AB8','succcurlyeq':'\u227D','Succeeds':'\u227B','SucceedsEqual':'\u2AB0','SucceedsSlantEqual':'\u227D','SucceedsTilde':'\u227F','succeq':'\u2AB0','succnapprox':'\u2ABA','succneqq':'\u2AB6','succnsim':'\u22E9','succsim':'\u227F','SuchThat':'\u220B','sum':'\u2211','Sum':'\u2211','sung':'\u266A','sup':'\u2283','Sup':'\u22D1','sup1':'\xB9','sup2':'\xB2','sup3':'\xB3','supdot':'\u2ABE','supdsub':'\u2AD8','supe':'\u2287','supE':'\u2AC6','supedot':'\u2AC4','Superset':'\u2283','SupersetEqual':'\u2287','suphsol':'\u27C9','suphsub':'\u2AD7','suplarr':'\u297B','supmult':'\u2AC2','supne':'\u228B','supnE':'\u2ACC','supplus':'\u2AC0','supset':'\u2283','Supset':'\u22D1','supseteq':'\u2287','supseteqq':'\u2AC6','supsetneq':'\u228B','supsetneqq':'\u2ACC','supsim':'\u2AC8','supsub':'\u2AD4','supsup':'\u2AD6','swarhk':'\u2926','swarr':'\u2199','swArr':'\u21D9','swarrow':'\u2199','swnwar':'\u292A','szlig':'\xDF','Tab':'\t','target':'\u2316','tau':'\u03C4','Tau':'\u03A4','tbrk':'\u23B4','tcaron':'\u0165','Tcaron':'\u0164','tcedil':'\u0163','Tcedil':'\u0162','tcy':'\u0442','Tcy':'\u0422','tdot':'\u20DB','telrec':'\u2315','tfr':'\uD835\uDD31','Tfr':'\uD835\uDD17','there4':'\u2234','therefore':'\u2234','Therefore':'\u2234','theta':'\u03B8','Theta':'\u0398','thetasym':'\u03D1','thetav':'\u03D1','thickapprox':'\u2248','thicksim':'\u223C','ThickSpace':'\u205F\u200A','thinsp':'\u2009','ThinSpace':'\u2009','thkap':'\u2248','thksim':'\u223C','thorn':'\xFE','THORN':'\xDE','tilde':'\u02DC','Tilde':'\u223C','TildeEqual':'\u2243','TildeFullEqual':'\u2245','TildeTilde':'\u2248','times':'\xD7','timesb':'\u22A0','timesbar':'\u2A31','timesd':'\u2A30','tint':'\u222D','toea':'\u2928','top':'\u22A4','topbot':'\u2336','topcir':'\u2AF1','topf':'\uD835\uDD65','Topf':'\uD835\uDD4B','topfork':'\u2ADA','tosa':'\u2929','tprime':'\u2034','trade':'\u2122','TRADE':'\u2122','triangle':'\u25B5','triangledown':'\u25BF','triangleleft':'\u25C3','trianglelefteq':'\u22B4','triangleq':'\u225C','triangleright':'\u25B9','trianglerighteq':'\u22B5','tridot':'\u25EC','trie':'\u225C','triminus':'\u2A3A','TripleDot':'\u20DB','triplus':'\u2A39','trisb':'\u29CD','tritime':'\u2A3B','trpezium':'\u23E2','tscr':'\uD835\uDCC9','Tscr':'\uD835\uDCAF','tscy':'\u0446','TScy':'\u0426','tshcy':'\u045B','TSHcy':'\u040B','tstrok':'\u0167','Tstrok':'\u0166','twixt':'\u226C','twoheadleftarrow':'\u219E','twoheadrightarrow':'\u21A0','uacute':'\xFA','Uacute':'\xDA','uarr':'\u2191','uArr':'\u21D1','Uarr':'\u219F','Uarrocir':'\u2949','ubrcy':'\u045E','Ubrcy':'\u040E','ubreve':'\u016D','Ubreve':'\u016C','ucirc':'\xFB','Ucirc':'\xDB','ucy':'\u0443','Ucy':'\u0423','udarr':'\u21C5','udblac':'\u0171','Udblac':'\u0170','udhar':'\u296E','ufisht':'\u297E','ufr':'\uD835\uDD32','Ufr':'\uD835\uDD18','ugrave':'\xF9','Ugrave':'\xD9','uHar':'\u2963','uharl':'\u21BF','uharr':'\u21BE','uhblk':'\u2580','ulcorn':'\u231C','ulcorner':'\u231C','ulcrop':'\u230F','ultri':'\u25F8','umacr':'\u016B','Umacr':'\u016A','uml':'\xA8','UnderBar':'_','UnderBrace':'\u23DF','UnderBracket':'\u23B5','UnderParenthesis':'\u23DD','Union':'\u22C3','UnionPlus':'\u228E','uogon':'\u0173','Uogon':'\u0172','uopf':'\uD835\uDD66','Uopf':'\uD835\uDD4C','uparrow':'\u2191','Uparrow':'\u21D1','UpArrow':'\u2191','UpArrowBar':'\u2912','UpArrowDownArrow':'\u21C5','updownarrow':'\u2195','Updownarrow':'\u21D5','UpDownArrow':'\u2195','UpEquilibrium':'\u296E','upharpoonleft':'\u21BF','upharpoonright':'\u21BE','uplus':'\u228E','UpperLeftArrow':'\u2196','UpperRightArrow':'\u2197','upsi':'\u03C5','Upsi':'\u03D2','upsih':'\u03D2','upsilon':'\u03C5','Upsilon':'\u03A5','UpTee':'\u22A5','UpTeeArrow':'\u21A5','upuparrows':'\u21C8','urcorn':'\u231D','urcorner':'\u231D','urcrop':'\u230E','uring':'\u016F','Uring':'\u016E','urtri':'\u25F9','uscr':'\uD835\uDCCA','Uscr':'\uD835\uDCB0','utdot':'\u22F0','utilde':'\u0169','Utilde':'\u0168','utri':'\u25B5','utrif':'\u25B4','uuarr':'\u21C8','uuml':'\xFC','Uuml':'\xDC','uwangle':'\u29A7','vangrt':'\u299C','varepsilon':'\u03F5','varkappa':'\u03F0','varnothing':'\u2205','varphi':'\u03D5','varpi':'\u03D6','varpropto':'\u221D','varr':'\u2195','vArr':'\u21D5','varrho':'\u03F1','varsigma':'\u03C2','varsubsetneq':'\u228A\uFE00','varsubsetneqq':'\u2ACB\uFE00','varsupsetneq':'\u228B\uFE00','varsupsetneqq':'\u2ACC\uFE00','vartheta':'\u03D1','vartriangleleft':'\u22B2','vartriangleright':'\u22B3','vBar':'\u2AE8','Vbar':'\u2AEB','vBarv':'\u2AE9','vcy':'\u0432','Vcy':'\u0412','vdash':'\u22A2','vDash':'\u22A8','Vdash':'\u22A9','VDash':'\u22AB','Vdashl':'\u2AE6','vee':'\u2228','Vee':'\u22C1','veebar':'\u22BB','veeeq':'\u225A','vellip':'\u22EE','verbar':'|','Verbar':'\u2016','vert':'|','Vert':'\u2016','VerticalBar':'\u2223','VerticalLine':'|','VerticalSeparator':'\u2758','VerticalTilde':'\u2240','VeryThinSpace':'\u200A','vfr':'\uD835\uDD33','Vfr':'\uD835\uDD19','vltri':'\u22B2','vnsub':'\u2282\u20D2','vnsup':'\u2283\u20D2','vopf':'\uD835\uDD67','Vopf':'\uD835\uDD4D','vprop':'\u221D','vrtri':'\u22B3','vscr':'\uD835\uDCCB','Vscr':'\uD835\uDCB1','vsubne':'\u228A\uFE00','vsubnE':'\u2ACB\uFE00','vsupne':'\u228B\uFE00','vsupnE':'\u2ACC\uFE00','Vvdash':'\u22AA','vzigzag':'\u299A','wcirc':'\u0175','Wcirc':'\u0174','wedbar':'\u2A5F','wedge':'\u2227','Wedge':'\u22C0','wedgeq':'\u2259','weierp':'\u2118','wfr':'\uD835\uDD34','Wfr':'\uD835\uDD1A','wopf':'\uD835\uDD68','Wopf':'\uD835\uDD4E','wp':'\u2118','wr':'\u2240','wreath':'\u2240','wscr':'\uD835\uDCCC','Wscr':'\uD835\uDCB2','xcap':'\u22C2','xcirc':'\u25EF','xcup':'\u22C3','xdtri':'\u25BD','xfr':'\uD835\uDD35','Xfr':'\uD835\uDD1B','xharr':'\u27F7','xhArr':'\u27FA','xi':'\u03BE','Xi':'\u039E','xlarr':'\u27F5','xlArr':'\u27F8','xmap':'\u27FC','xnis':'\u22FB','xodot':'\u2A00','xopf':'\uD835\uDD69','Xopf':'\uD835\uDD4F','xoplus':'\u2A01','xotime':'\u2A02','xrarr':'\u27F6','xrArr':'\u27F9','xscr':'\uD835\uDCCD','Xscr':'\uD835\uDCB3','xsqcup':'\u2A06','xuplus':'\u2A04','xutri':'\u25B3','xvee':'\u22C1','xwedge':'\u22C0','yacute':'\xFD','Yacute':'\xDD','yacy':'\u044F','YAcy':'\u042F','ycirc':'\u0177','Ycirc':'\u0176','ycy':'\u044B','Ycy':'\u042B','yen':'\xA5','yfr':'\uD835\uDD36','Yfr':'\uD835\uDD1C','yicy':'\u0457','YIcy':'\u0407','yopf':'\uD835\uDD6A','Yopf':'\uD835\uDD50','yscr':'\uD835\uDCCE','Yscr':'\uD835\uDCB4','yucy':'\u044E','YUcy':'\u042E','yuml':'\xFF','Yuml':'\u0178','zacute':'\u017A','Zacute':'\u0179','zcaron':'\u017E','Zcaron':'\u017D','zcy':'\u0437','Zcy':'\u0417','zdot':'\u017C','Zdot':'\u017B','zeetrf':'\u2128','ZeroWidthSpace':'\u200B','zeta':'\u03B6','Zeta':'\u0396','zfr':'\uD835\uDD37','Zfr':'\u2128','zhcy':'\u0436','ZHcy':'\u0416','zigrarr':'\u21DD','zopf':'\uD835\uDD6B','Zopf':'\u2124','zscr':'\uD835\uDCCF','Zscr':'\uD835\uDCB5','zwj':'\u200D','zwnj':'\u200C'}; + var decodeMapLegacy = {'aacute':'\xE1','Aacute':'\xC1','acirc':'\xE2','Acirc':'\xC2','acute':'\xB4','aelig':'\xE6','AElig':'\xC6','agrave':'\xE0','Agrave':'\xC0','amp':'&','AMP':'&','aring':'\xE5','Aring':'\xC5','atilde':'\xE3','Atilde':'\xC3','auml':'\xE4','Auml':'\xC4','brvbar':'\xA6','ccedil':'\xE7','Ccedil':'\xC7','cedil':'\xB8','cent':'\xA2','copy':'\xA9','COPY':'\xA9','curren':'\xA4','deg':'\xB0','divide':'\xF7','eacute':'\xE9','Eacute':'\xC9','ecirc':'\xEA','Ecirc':'\xCA','egrave':'\xE8','Egrave':'\xC8','eth':'\xF0','ETH':'\xD0','euml':'\xEB','Euml':'\xCB','frac12':'\xBD','frac14':'\xBC','frac34':'\xBE','gt':'>','GT':'>','iacute':'\xED','Iacute':'\xCD','icirc':'\xEE','Icirc':'\xCE','iexcl':'\xA1','igrave':'\xEC','Igrave':'\xCC','iquest':'\xBF','iuml':'\xEF','Iuml':'\xCF','laquo':'\xAB','lt':'<','LT':'<','macr':'\xAF','micro':'\xB5','middot':'\xB7','nbsp':'\xA0','not':'\xAC','ntilde':'\xF1','Ntilde':'\xD1','oacute':'\xF3','Oacute':'\xD3','ocirc':'\xF4','Ocirc':'\xD4','ograve':'\xF2','Ograve':'\xD2','ordf':'\xAA','ordm':'\xBA','oslash':'\xF8','Oslash':'\xD8','otilde':'\xF5','Otilde':'\xD5','ouml':'\xF6','Ouml':'\xD6','para':'\xB6','plusmn':'\xB1','pound':'\xA3','quot':'"','QUOT':'"','raquo':'\xBB','reg':'\xAE','REG':'\xAE','sect':'\xA7','shy':'\xAD','sup1':'\xB9','sup2':'\xB2','sup3':'\xB3','szlig':'\xDF','thorn':'\xFE','THORN':'\xDE','times':'\xD7','uacute':'\xFA','Uacute':'\xDA','ucirc':'\xFB','Ucirc':'\xDB','ugrave':'\xF9','Ugrave':'\xD9','uml':'\xA8','uuml':'\xFC','Uuml':'\xDC','yacute':'\xFD','Yacute':'\xDD','yen':'\xA5','yuml':'\xFF'}; + var decodeMapNumeric = {'0':'\uFFFD','128':'\u20AC','130':'\u201A','131':'\u0192','132':'\u201E','133':'\u2026','134':'\u2020','135':'\u2021','136':'\u02C6','137':'\u2030','138':'\u0160','139':'\u2039','140':'\u0152','142':'\u017D','145':'\u2018','146':'\u2019','147':'\u201C','148':'\u201D','149':'\u2022','150':'\u2013','151':'\u2014','152':'\u02DC','153':'\u2122','154':'\u0161','155':'\u203A','156':'\u0153','158':'\u017E','159':'\u0178'}; + var invalidReferenceCodePoints = [1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65000,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111]; + /*--------------------------------------------------------------------------*/ + var stringFromCharCode = String.fromCharCode; - function DOMEval( code, doc ) { - doc = doc || document; + var object = {}; + var hasOwnProperty = object.hasOwnProperty; + var has = function(object, propertyName) { + return hasOwnProperty.call(object, propertyName); + }; - var script = doc.createElement( "script" ); + var contains = function(array, value) { + var index = -1; + var length = array.length; + while (++index < length) { + if (array[index] == value) { + return true; + } + } + return false; + }; - script.text = code; - doc.head.appendChild( script ).parentNode.removeChild( script ); - } -/* global Symbol */ -// Defining this global in .eslintrc.json would create a danger of using the global -// unguarded in another place, it seems safer to define global only for this module + var merge = function(options, defaults) { + if (!options) { + return defaults; + } + var result = {}; + var key; + for (key in defaults) { + // A `hasOwnProperty` check is not needed here, since only recognized + // option names are used anyway. Any others are ignored. + result[key] = has(options, key) ? options[key] : defaults[key]; + } + return result; + }; + // Modified version of `ucs2encode`; see https://mths.be/punycode. + var codePointToSymbol = function(codePoint, strict) { + var output = ''; + if ((codePoint >= 0xD800 && codePoint <= 0xDFFF) || codePoint > 0x10FFFF) { + // See issue #4: + // โ€œOtherwise, if the number is in the range 0xD800 to 0xDFFF or is + // greater than 0x10FFFF, then this is a parse error. Return a U+FFFD + // REPLACEMENT CHARACTER.โ€ + if (strict) { + parseError('character reference outside the permissible Unicode range'); + } + return '\uFFFD'; + } + if (has(decodeMapNumeric, codePoint)) { + if (strict) { + parseError('disallowed character reference'); + } + return decodeMapNumeric[codePoint]; + } + if (strict && contains(invalidReferenceCodePoints, codePoint)) { + parseError('disallowed character reference'); + } + if (codePoint > 0xFFFF) { + codePoint -= 0x10000; + output += stringFromCharCode(codePoint >>> 10 & 0x3FF | 0xD800); + codePoint = 0xDC00 | codePoint & 0x3FF; + } + output += stringFromCharCode(codePoint); + return output; + }; + var hexEscape = function(codePoint) { + return '&#x' + codePoint.toString(16).toUpperCase() + ';'; + }; -var - version = "3.2.1", + var decEscape = function(codePoint) { + return '&#' + codePoint + ';'; + }; - // Define a local copy of jQuery - jQuery = function( selector, context ) { + var parseError = function(message) { + throw Error('Parse error: ' + message); + }; - // The jQuery object is actually just the init constructor 'enhanced' - // Need init if jQuery is called (just allow error to be thrown if not included) - return new jQuery.fn.init( selector, context ); - }, + /*--------------------------------------------------------------------------*/ - // Support: Android <=4.0 only - // Make sure we trim BOM and NBSP - rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, + var encode = function(string, options) { + options = merge(options, encode.options); + var strict = options.strict; + if (strict && regexInvalidRawCodePoint.test(string)) { + parseError('forbidden code point'); + } + var encodeEverything = options.encodeEverything; + var useNamedReferences = options.useNamedReferences; + var allowUnsafeSymbols = options.allowUnsafeSymbols; + var escapeCodePoint = options.decimal ? decEscape : hexEscape; - // Matches dashed string for camelizing - rmsPrefix = /^-ms-/, - rdashAlpha = /-([a-z])/g, + var escapeBmpSymbol = function(symbol) { + return escapeCodePoint(symbol.charCodeAt(0)); + }; - // Used by jQuery.camelCase as callback to replace() - fcamelCase = function( all, letter ) { - return letter.toUpperCase(); + if (encodeEverything) { + // Encode ASCII symbols. + string = string.replace(regexAsciiWhitelist, function(symbol) { + // Use named references if requested & possible. + if (useNamedReferences && has(encodeMap, symbol)) { + return '&' + encodeMap[symbol] + ';'; + } + return escapeBmpSymbol(symbol); + }); + // Shorten a few escapes that represent two symbols, of which at least one + // is within the ASCII range. + if (useNamedReferences) { + string = string + .replace(/>\u20D2/g, '>⃒') + .replace(/<\u20D2/g, '<⃒') + .replace(/fj/g, 'fj'); + } + // Encode non-ASCII symbols. + if (useNamedReferences) { + // Encode non-ASCII symbols that can be replaced with a named reference. + string = string.replace(regexEncodeNonAscii, function(string) { + // Note: there is no need to check `has(encodeMap, string)` here. + return '&' + encodeMap[string] + ';'; + }); + } + // Note: any remaining non-ASCII symbols are handled outside of the `if`. + } else if (useNamedReferences) { + // Apply named character references. + // Encode `<>"'&` using named character references. + if (!allowUnsafeSymbols) { + string = string.replace(regexEscape, function(string) { + return '&' + encodeMap[string] + ';'; // no need to check `has()` here + }); + } + // Shorten escapes that represent two symbols, of which at least one is + // `<>"'&`. + string = string + .replace(/>\u20D2/g, '>⃒') + .replace(/<\u20D2/g, '<⃒'); + // Encode non-ASCII symbols that can be replaced with a named reference. + string = string.replace(regexEncodeNonAscii, function(string) { + // Note: there is no need to check `has(encodeMap, string)` here. + return '&' + encodeMap[string] + ';'; + }); + } else if (!allowUnsafeSymbols) { + // Encode `<>"'&` using hexadecimal escapes, now that theyโ€™re not handled + // using named character references. + string = string.replace(regexEscape, escapeBmpSymbol); + } + return string + // Encode astral symbols. + .replace(regexAstralSymbols, function($0) { + // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae + var high = $0.charCodeAt(0); + var low = $0.charCodeAt(1); + var codePoint = (high - 0xD800) * 0x400 + low - 0xDC00 + 0x10000; + return escapeCodePoint(codePoint); + }) + // Encode any remaining BMP symbols that are not printable ASCII symbols + // using a hexadecimal escape. + .replace(regexBmpWhitelist, escapeBmpSymbol); + }; + // Expose default options (so they can be overridden globally). + encode.options = { + 'allowUnsafeSymbols': false, + 'encodeEverything': false, + 'strict': false, + 'useNamedReferences': false, + 'decimal' : false }; -jQuery.fn = jQuery.prototype = { + var decode = function(html, options) { + options = merge(options, decode.options); + var strict = options.strict; + if (strict && regexInvalidEntity.test(html)) { + parseError('malformed character reference'); + } + return html.replace(regexDecode, function($0, $1, $2, $3, $4, $5, $6, $7) { + var codePoint; + var semicolon; + var decDigits; + var hexDigits; + var reference; + var next; + if ($1) { + // Decode decimal escapes, e.g. `𝌆`. + decDigits = $1; + semicolon = $2; + if (strict && !semicolon) { + parseError('character reference was not terminated by a semicolon'); + } + codePoint = parseInt(decDigits, 10); + return codePointToSymbol(codePoint, strict); + } + if ($3) { + // Decode hexadecimal escapes, e.g. `𝌆`. + hexDigits = $3; + semicolon = $4; + if (strict && !semicolon) { + parseError('character reference was not terminated by a semicolon'); + } + codePoint = parseInt(hexDigits, 16); + return codePointToSymbol(codePoint, strict); + } + if ($5) { + // Decode named character references with trailing `;`, e.g. `©`. + reference = $5; + if (has(decodeMap, reference)) { + return decodeMap[reference]; + } else { + // Ambiguous ampersand. https://mths.be/notes/ambiguous-ampersands + if (strict) { + parseError( + 'named character reference was not terminated by a semicolon' + ); + } + return $0; + } + } + // If weโ€™re still here, itโ€™s a legacy reference for sure. No need for an + // extra `if` check. + // Decode named character references without trailing `;`, e.g. `&` + // This is only a parse error if it gets converted to `&`, or if it is + // followed by `=` in an attribute context. + reference = $6; + next = $7; + if (next && options.isAttributeValue) { + if (strict && next == '=') { + parseError('`&` did not start a character reference'); + } + return $0; + } else { + if (strict) { + parseError( + 'named character reference was not terminated by a semicolon' + ); + } + // Note: there is no need to check `has(decodeMapLegacy, reference)`. + return decodeMapLegacy[reference] + (next || ''); + } + }); + }; + // Expose default options (so they can be overridden globally). + decode.options = { + 'isAttributeValue': false, + 'strict': false + }; - // The current version of jQuery being used - jquery: version, + var escape = function(string) { + return string.replace(regexEscape, function($0) { + // Note: there is no need to check `has(escapeMap, $0)` here. + return escapeMap[$0]; + }); + }; - constructor: jQuery, + /*--------------------------------------------------------------------------*/ - // The default length of a jQuery object is 0 - length: 0, + var he = { + 'version': '1.1.1', + 'encode': encode, + 'decode': decode, + 'escape': escape, + 'unescape': decode + }; - toArray: function() { - return slice.call( this ); - }, - - // Get the Nth element in the matched element set OR - // Get the whole matched element set as a clean array - get: function( num ) { - - // Return all the elements in a clean array - if ( num == null ) { - return slice.call( this ); + // Some AMD build optimizers, like r.js, check for specific condition patterns + // like the following: + if ( + true + ) { + !(__WEBPACK_AMD_DEFINE_RESULT__ = function() { + return he; + }.call(exports, __webpack_require__, exports, module), + __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); + } else if (freeExports && !freeExports.nodeType) { + if (freeModule) { // in Node.js, io.js, or RingoJS v0.8.0+ + freeModule.exports = he; + } else { // in Narwhal or RingoJS v0.7.0- + for (var key in he) { + has(he, key) && (freeExports[key] = he[key]); + } } + } else { // in Rhino or a web browser + root.he = he; + } - // Return just the one element from the set - return num < 0 ? this[ num + this.length ] : this[ num ]; - }, +}(this)); - // Take an array of elements and push it onto the stack - // (returning the new matched element set) - pushStack: function( elems ) { +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(17)(module), __webpack_require__(10))) - // Build a new jQuery matched element set - var ret = jQuery.merge( this.constructor(), elems ); +/***/ }), +/* 246 */ +/***/ (function(module, exports, __webpack_require__) { - // Add the old object onto the stack (as a reference) - ret.prevObject = this; +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ - // Return the newly-formed element set - return ret; - }, - // Execute a callback for every element in the matched set. - each: function( callback ) { - return jQuery.each( this, callback ); - }, - map: function( callback ) { - return this.pushStack( jQuery.map( this, function( elem, i ) { - return callback.call( elem, i, elem ); - } ) ); - }, +var _prodInvariant = __webpack_require__(44), + _assign = __webpack_require__(9); - slice: function() { - return this.pushStack( slice.apply( this, arguments ) ); - }, +var ReactNoopUpdateQueue = __webpack_require__(247); - first: function() { - return this.eq( 0 ); - }, +var canDefineProperty = __webpack_require__(100); +var emptyObject = __webpack_require__(101); +var invariant = __webpack_require__(2); +var lowPriorityWarning = __webpack_require__(147); - last: function() { - return this.eq( -1 ); - }, +/** + * Base class helpers for the updating state of a component. + */ +function ReactComponent(props, context, updater) { + this.props = props; + this.context = context; + this.refs = emptyObject; + // We initialize the default updater but the real one gets injected by the + // renderer. + this.updater = updater || ReactNoopUpdateQueue; +} - eq: function( i ) { - var len = this.length, - j = +i + ( i < 0 ? len : 0 ); - return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); - }, +ReactComponent.prototype.isReactComponent = {}; - end: function() { - return this.prevObject || this.constructor(); - }, +/** + * Sets a subset of the state. Always use this to mutate + * state. You should treat `this.state` as immutable. + * + * There is no guarantee that `this.state` will be immediately updated, so + * accessing `this.state` after calling this method may return the old value. + * + * There is no guarantee that calls to `setState` will run synchronously, + * as they may eventually be batched together. You can provide an optional + * callback that will be executed when the call to setState is actually + * completed. + * + * When a function is provided to setState, it will be called at some point in + * the future (not synchronously). It will be called with the up to date + * component arguments (state, props, context). These values can be different + * from this.* because your function may be called after receiveProps but before + * shouldComponentUpdate, and this new state, props, and context will not yet be + * assigned to this. + * + * @param {object|function} partialState Next partial state or function to + * produce next partial state to be merged with current state. + * @param {?function} callback Called after state is updated. + * @final + * @protected + */ +ReactComponent.prototype.setState = function (partialState, callback) { + !(typeof partialState === 'object' || typeof partialState === 'function' || partialState == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'setState(...): takes an object of state variables to update or a function which returns an object of state variables.') : _prodInvariant('85') : void 0; + this.updater.enqueueSetState(this, partialState); + if (callback) { + this.updater.enqueueCallback(this, callback, 'setState'); + } +}; - // For internal use only. - // Behaves like an Array's method, not like a jQuery method. - push: push, - sort: arr.sort, - splice: arr.splice +/** + * Forces an update. This should only be invoked when it is known with + * certainty that we are **not** in a DOM transaction. + * + * You may want to call this when you know that some deeper aspect of the + * component's state has changed but `setState` was not called. + * + * This will not invoke `shouldComponentUpdate`, but it will invoke + * `componentWillUpdate` and `componentDidUpdate`. + * + * @param {?function} callback Called after update is complete. + * @final + * @protected + */ +ReactComponent.prototype.forceUpdate = function (callback) { + this.updater.enqueueForceUpdate(this); + if (callback) { + this.updater.enqueueCallback(this, callback, 'forceUpdate'); + } }; -jQuery.extend = jQuery.fn.extend = function() { - var options, name, src, copy, copyIsArray, clone, - target = arguments[ 0 ] || {}, - i = 1, - length = arguments.length, - deep = false; +/** + * Deprecated APIs. These APIs used to exist on classic React classes but since + * we would like to deprecate them, we're not going to move them over to this + * modern base class. Instead, we define a getter that warns if it's accessed. + */ +if (process.env.NODE_ENV !== 'production') { + var deprecatedAPIs = { + isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'], + replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).'] + }; + var defineDeprecationWarning = function (methodName, info) { + if (canDefineProperty) { + Object.defineProperty(ReactComponent.prototype, methodName, { + get: function () { + lowPriorityWarning(false, '%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]); + return undefined; + } + }); + } + }; + for (var fnName in deprecatedAPIs) { + if (deprecatedAPIs.hasOwnProperty(fnName)) { + defineDeprecationWarning(fnName, deprecatedAPIs[fnName]); + } + } +} - // Handle a deep copy situation - if ( typeof target === "boolean" ) { - deep = target; +/** + * Base class helpers for the updating state of a component. + */ +function ReactPureComponent(props, context, updater) { + // Duplicated from ReactComponent. + this.props = props; + this.context = context; + this.refs = emptyObject; + // We initialize the default updater but the real one gets injected by the + // renderer. + this.updater = updater || ReactNoopUpdateQueue; +} - // Skip the boolean and the target - target = arguments[ i ] || {}; - i++; - } +function ComponentDummy() {} +ComponentDummy.prototype = ReactComponent.prototype; +ReactPureComponent.prototype = new ComponentDummy(); +ReactPureComponent.prototype.constructor = ReactPureComponent; +// Avoid an extra prototype jump for these methods. +_assign(ReactPureComponent.prototype, ReactComponent.prototype); +ReactPureComponent.prototype.isPureReactComponent = true; - // Handle case when target is a string or something (possible in deep copy) - if ( typeof target !== "object" && !jQuery.isFunction( target ) ) { - target = {}; - } +module.exports = { + Component: ReactComponent, + PureComponent: ReactPureComponent +}; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) - // Extend jQuery itself if only one argument is passed - if ( i === length ) { - target = this; - i--; - } +/***/ }), +/* 247 */ +/***/ (function(module, exports, __webpack_require__) { - for ( ; i < length; i++ ) { +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright (c) 2015-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ - // Only deal with non-null/undefined values - if ( ( options = arguments[ i ] ) != null ) { - // Extend the base object - for ( name in options ) { - src = target[ name ]; - copy = options[ name ]; - // Prevent never-ending loop - if ( target === copy ) { - continue; - } +var warning = __webpack_require__(4); - // Recurse if we're merging plain objects or arrays - if ( deep && copy && ( jQuery.isPlainObject( copy ) || - ( copyIsArray = Array.isArray( copy ) ) ) ) { +function warnNoop(publicInstance, callerName) { + if (process.env.NODE_ENV !== 'production') { + var constructor = publicInstance.constructor; + process.env.NODE_ENV !== 'production' ? warning(false, '%s(...): Can only update a mounted or mounting component. ' + 'This usually means you called %s() on an unmounted component. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, constructor && (constructor.displayName || constructor.name) || 'ReactClass') : void 0; + } +} - if ( copyIsArray ) { - copyIsArray = false; - clone = src && Array.isArray( src ) ? src : []; +/** + * This is the abstract API for an update queue. + */ +var ReactNoopUpdateQueue = { + /** + * Checks whether or not this composite component is mounted. + * @param {ReactClass} publicInstance The instance we want to test. + * @return {boolean} True if mounted, false otherwise. + * @protected + * @final + */ + isMounted: function (publicInstance) { + return false; + }, - } else { - clone = src && jQuery.isPlainObject( src ) ? src : {}; - } + /** + * Enqueue a callback that will be executed after all the pending updates + * have processed. + * + * @param {ReactClass} publicInstance The instance to use as `this` context. + * @param {?function} callback Called after state is updated. + * @internal + */ + enqueueCallback: function (publicInstance, callback) {}, - // Never move original objects, clone them - target[ name ] = jQuery.extend( deep, clone, copy ); + /** + * Forces an update. This should only be invoked when it is known with + * certainty that we are **not** in a DOM transaction. + * + * You may want to call this when you know that some deeper aspect of the + * component's state has changed but `setState` was not called. + * + * This will not invoke `shouldComponentUpdate`, but it will invoke + * `componentWillUpdate` and `componentDidUpdate`. + * + * @param {ReactClass} publicInstance The instance that should rerender. + * @internal + */ + enqueueForceUpdate: function (publicInstance) { + warnNoop(publicInstance, 'forceUpdate'); + }, - // Don't bring in undefined values - } else if ( copy !== undefined ) { - target[ name ] = copy; - } - } - } - } + /** + * Replaces all of the state. Always use this or `setState` to mutate state. + * You should treat `this.state` as immutable. + * + * There is no guarantee that `this.state` will be immediately updated, so + * accessing `this.state` after calling this method may return the old value. + * + * @param {ReactClass} publicInstance The instance that should rerender. + * @param {object} completeState Next state. + * @internal + */ + enqueueReplaceState: function (publicInstance, completeState) { + warnNoop(publicInstance, 'replaceState'); + }, - // Return the modified object - return target; + /** + * Sets a subset of the state. This only exists because _pendingState is + * internal. This provides a merging strategy that is not available to deep + * properties which is confusing. TODO: Expose pendingState or don't use it + * during the merge. + * + * @param {ReactClass} publicInstance The instance that should rerender. + * @param {object} partialState Next partial state to be merged with state. + * @internal + */ + enqueueSetState: function (publicInstance, partialState) { + warnNoop(publicInstance, 'setState'); + } }; -jQuery.extend( { +module.exports = ReactNoopUpdateQueue; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) - // Unique for each copy of jQuery on the page - expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), +/***/ }), +/* 248 */ +/***/ (function(module, exports, __webpack_require__) { - // Assume jQuery is ready without the ready module - isReady: true, +"use strict"; +/** + * Copyright (c) 2014-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * + */ - error: function( msg ) { - throw new Error( msg ); - }, - noop: function() {}, - isFunction: function( obj ) { - return jQuery.type( obj ) === "function"; - }, +// The Symbol used to tag the ReactElement type. If there is no native Symbol +// nor polyfill, then a plain number is used for performance. - isWindow: function( obj ) { - return obj != null && obj === obj.window; - }, +var REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol['for'] && Symbol['for']('react.element') || 0xeac7; - isNumeric: function( obj ) { +module.exports = REACT_ELEMENT_TYPE; - // As of jQuery 3.0, isNumeric is limited to - // strings and numbers (primitives or objects) - // that can be coerced to finite numbers (gh-2662) - var type = jQuery.type( obj ); - return ( type === "number" || type === "string" ) && +/***/ }), +/* 249 */ +/***/ (function(module, exports, __webpack_require__) { - // parseFloat NaNs numeric-cast false positives ("") - // ...but misinterprets leading-number strings, particularly hex literals ("0x...") - // subtraction forces infinities to NaN - !isNaN( obj - parseFloat( obj ) ); - }, +"use strict"; +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * + */ - isPlainObject: function( obj ) { - var proto, Ctor; - // Detect obvious negatives - // Use toString instead of jQuery.type to catch host objects - if ( !obj || toString.call( obj ) !== "[object Object]" ) { - return false; - } - proto = getProto( obj ); +/* global Symbol */ - // Objects with no prototype (e.g., `Object.create( null )`) are plain - if ( !proto ) { - return true; - } +var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; +var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. - // Objects with prototype are plain iff they were constructed by a global Object function - Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; - return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; - }, +/** + * Returns the iterator method function contained on the iterable object. + * + * Be sure to invoke the function with the iterable as context: + * + * var iteratorFn = getIteratorFn(myIterable); + * if (iteratorFn) { + * var iterator = iteratorFn.call(myIterable); + * ... + * } + * + * @param {?object} maybeIterable + * @return {?function} + */ +function getIteratorFn(maybeIterable) { + var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]); + if (typeof iteratorFn === 'function') { + return iteratorFn; + } +} - isEmptyObject: function( obj ) { +module.exports = getIteratorFn; - /* eslint-disable no-unused-vars */ - // See https://github.com/eslint/eslint/issues/6125 - var name; +/***/ }), +/* 250 */ +/***/ (function(module, exports, __webpack_require__) { - for ( name in obj ) { - return false; - } - return true; - }, +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright (c) 2014-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ - type: function( obj ) { - if ( obj == null ) { - return obj + ""; - } +/** + * ReactElementValidator provides a wrapper around a element factory + * which validates the props passed to the element. This is intended to be + * used only in DEV and could be replaced by a static type checker for languages + * that support it. + */ - // Support: Android <=2.3 only (functionish RegExp) - return typeof obj === "object" || typeof obj === "function" ? - class2type[ toString.call( obj ) ] || "object" : - typeof obj; - }, - // Evaluates a script in a global context - globalEval: function( code ) { - DOMEval( code ); - }, - // Convert dashed to camelCase; used by the css and data modules - // Support: IE <=9 - 11, Edge 12 - 13 - // Microsoft forgot to hump their vendor prefix (#9572) - camelCase: function( string ) { - return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); - }, +var ReactCurrentOwner = __webpack_require__(30); +var ReactComponentTreeHook = __webpack_require__(23); +var ReactElement = __webpack_require__(35); - each: function( obj, callback ) { - var length, i = 0; +var checkReactTypeSpec = __webpack_require__(485); - if ( isArrayLike( obj ) ) { - length = obj.length; - for ( ; i < length; i++ ) { - if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { - break; - } - } - } else { - for ( i in obj ) { - if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { - break; - } - } - } +var canDefineProperty = __webpack_require__(100); +var getIteratorFn = __webpack_require__(249); +var warning = __webpack_require__(4); +var lowPriorityWarning = __webpack_require__(147); - return obj; - }, +function getDeclarationErrorAddendum() { + if (ReactCurrentOwner.current) { + var name = ReactCurrentOwner.current.getName(); + if (name) { + return ' Check the render method of `' + name + '`.'; + } + } + return ''; +} - // Support: Android <=4.0 only - trim: function( text ) { - return text == null ? - "" : - ( text + "" ).replace( rtrim, "" ); - }, +function getSourceInfoErrorAddendum(elementProps) { + if (elementProps !== null && elementProps !== undefined && elementProps.__source !== undefined) { + var source = elementProps.__source; + var fileName = source.fileName.replace(/^.*[\\\/]/, ''); + var lineNumber = source.lineNumber; + return ' Check your code at ' + fileName + ':' + lineNumber + '.'; + } + return ''; +} - // results is for internal usage only - makeArray: function( arr, results ) { - var ret = results || []; +/** + * Warn if there's no key explicitly set on dynamic arrays of children or + * object keys are not valid. This allows us to keep track of children between + * updates. + */ +var ownerHasKeyUseWarning = {}; - if ( arr != null ) { - if ( isArrayLike( Object( arr ) ) ) { - jQuery.merge( ret, - typeof arr === "string" ? - [ arr ] : arr - ); - } else { - push.call( ret, arr ); - } - } +function getCurrentComponentErrorInfo(parentType) { + var info = getDeclarationErrorAddendum(); - return ret; - }, + if (!info) { + var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name; + if (parentName) { + info = ' Check the top-level render call using <' + parentName + '>.'; + } + } + return info; +} - inArray: function( elem, arr, i ) { - return arr == null ? -1 : indexOf.call( arr, elem, i ); - }, +/** + * Warn if the element doesn't have an explicit key assigned to it. + * This element is in an array. The array could grow and shrink or be + * reordered. All children that haven't already been validated are required to + * have a "key" property assigned to it. Error statuses are cached so a warning + * will only be shown once. + * + * @internal + * @param {ReactElement} element Element that requires a key. + * @param {*} parentType element's parent's type. + */ +function validateExplicitKey(element, parentType) { + if (!element._store || element._store.validated || element.key != null) { + return; + } + element._store.validated = true; - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - merge: function( first, second ) { - var len = +second.length, - j = 0, - i = first.length; + var memoizer = ownerHasKeyUseWarning.uniqueKey || (ownerHasKeyUseWarning.uniqueKey = {}); - for ( ; j < len; j++ ) { - first[ i++ ] = second[ j ]; - } + var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType); + if (memoizer[currentComponentErrorInfo]) { + return; + } + memoizer[currentComponentErrorInfo] = true; - first.length = i; + // Usually the current owner is the offender, but if it accepts children as a + // property, it may be the creator of the child that's responsible for + // assigning it a key. + var childOwner = ''; + if (element && element._owner && element._owner !== ReactCurrentOwner.current) { + // Give the component that originally created this child. + childOwner = ' It was passed a child from ' + element._owner.getName() + '.'; + } - return first; - }, + process.env.NODE_ENV !== 'production' ? warning(false, 'Each child in an array or iterator should have a unique "key" prop.' + '%s%s See https://fb.me/react-warning-keys for more information.%s', currentComponentErrorInfo, childOwner, ReactComponentTreeHook.getCurrentStackAddendum(element)) : void 0; +} - grep: function( elems, callback, invert ) { - var callbackInverse, - matches = [], - i = 0, - length = elems.length, - callbackExpect = !invert; +/** + * Ensure that every element either is passed in a static location, in an + * array with an explicit keys property defined, or in an object literal + * with valid key property. + * + * @internal + * @param {ReactNode} node Statically passed child of any type. + * @param {*} parentType node's parent's type. + */ +function validateChildKeys(node, parentType) { + if (typeof node !== 'object') { + return; + } + if (Array.isArray(node)) { + for (var i = 0; i < node.length; i++) { + var child = node[i]; + if (ReactElement.isValidElement(child)) { + validateExplicitKey(child, parentType); + } + } + } else if (ReactElement.isValidElement(node)) { + // This element was passed in a valid location. + if (node._store) { + node._store.validated = true; + } + } else if (node) { + var iteratorFn = getIteratorFn(node); + // Entry iterators provide implicit keys. + if (iteratorFn) { + if (iteratorFn !== node.entries) { + var iterator = iteratorFn.call(node); + var step; + while (!(step = iterator.next()).done) { + if (ReactElement.isValidElement(step.value)) { + validateExplicitKey(step.value, parentType); + } + } + } + } + } +} - // Go through the array, only saving the items - // that pass the validator function - for ( ; i < length; i++ ) { - callbackInverse = !callback( elems[ i ], i ); - if ( callbackInverse !== callbackExpect ) { - matches.push( elems[ i ] ); - } - } +/** + * Given an element, validate that its props follow the propTypes definition, + * provided by the type. + * + * @param {ReactElement} element + */ +function validatePropTypes(element) { + var componentClass = element.type; + if (typeof componentClass !== 'function') { + return; + } + var name = componentClass.displayName || componentClass.name; + if (componentClass.propTypes) { + checkReactTypeSpec(componentClass.propTypes, element.props, 'prop', name, element, null); + } + if (typeof componentClass.getDefaultProps === 'function') { + process.env.NODE_ENV !== 'production' ? warning(componentClass.getDefaultProps.isReactClassApproved, 'getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.') : void 0; + } +} - return matches; - }, +var ReactElementValidator = { + createElement: function (type, props, children) { + var validType = typeof type === 'string' || typeof type === 'function'; + // We warn in this case but don't throw. We expect the element creation to + // succeed and there will likely be errors in render. + if (!validType) { + if (typeof type !== 'function' && typeof type !== 'string') { + var info = ''; + if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) { + info += ' You likely forgot to export your component from the file ' + "it's defined in."; + } - // arg is for internal usage only - map: function( elems, callback, arg ) { - var length, value, - i = 0, - ret = []; + var sourceInfo = getSourceInfoErrorAddendum(props); + if (sourceInfo) { + info += sourceInfo; + } else { + info += getDeclarationErrorAddendum(); + } - // Go through the array, translating each of the items to their new values - if ( isArrayLike( elems ) ) { - length = elems.length; - for ( ; i < length; i++ ) { - value = callback( elems[ i ], i, arg ); + info += ReactComponentTreeHook.getCurrentStackAddendum(); - if ( value != null ) { - ret.push( value ); - } - } + var currentSource = props !== null && props !== undefined && props.__source !== undefined ? props.__source : null; + ReactComponentTreeHook.pushNonStandardWarningStack(true, currentSource); + process.env.NODE_ENV !== 'production' ? warning(false, 'React.createElement: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', type == null ? type : typeof type, info) : void 0; + ReactComponentTreeHook.popNonStandardWarningStack(); + } + } - // Go through every key on the object, - } else { - for ( i in elems ) { - value = callback( elems[ i ], i, arg ); + var element = ReactElement.createElement.apply(this, arguments); - if ( value != null ) { - ret.push( value ); - } - } - } + // The result can be nullish if a mock or a custom function is used. + // TODO: Drop this when these are no longer allowed as the type argument. + if (element == null) { + return element; + } - // Flatten any nested arrays - return concat.apply( [], ret ); - }, + // Skip key warning if the type isn't valid since our key validation logic + // doesn't expect a non-string/function type and can throw confusing errors. + // We don't want exception behavior to differ between dev and prod. + // (Rendering will throw with a helpful message and as soon as the type is + // fixed, the key warnings will appear.) + if (validType) { + for (var i = 2; i < arguments.length; i++) { + validateChildKeys(arguments[i], type); + } + } - // A global GUID counter for objects - guid: 1, + validatePropTypes(element); - // Bind a function to a context, optionally partially applying any - // arguments. - proxy: function( fn, context ) { - var tmp, args, proxy; + return element; + }, - if ( typeof context === "string" ) { - tmp = fn[ context ]; - context = fn; - fn = tmp; - } + createFactory: function (type) { + var validatedFactory = ReactElementValidator.createElement.bind(null, type); + // Legacy hook TODO: Warn if this is accessed + validatedFactory.type = type; - // Quick check to determine if target is callable, in the spec - // this throws a TypeError, but we will just return undefined. - if ( !jQuery.isFunction( fn ) ) { - return undefined; - } + if (process.env.NODE_ENV !== 'production') { + if (canDefineProperty) { + Object.defineProperty(validatedFactory, 'type', { + enumerable: false, + get: function () { + lowPriorityWarning(false, 'Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.'); + Object.defineProperty(this, 'type', { + value: type + }); + return type; + } + }); + } + } - // Simulated bind - args = slice.call( arguments, 2 ); - proxy = function() { - return fn.apply( context || this, args.concat( slice.call( arguments ) ) ); - }; + return validatedFactory; + }, - // Set the guid of unique handler to the same of original handler, so it can be removed - proxy.guid = fn.guid = fn.guid || jQuery.guid++; + cloneElement: function (element, props, children) { + var newElement = ReactElement.cloneElement.apply(this, arguments); + for (var i = 2; i < arguments.length; i++) { + validateChildKeys(arguments[i], newElement.type); + } + validatePropTypes(newElement); + return newElement; + } +}; - return proxy; - }, +module.exports = ReactElementValidator; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) - now: Date.now, +/***/ }), +/* 251 */ +/***/ (function(module, exports, __webpack_require__) { - // jQuery.support is not used in Core but other projects attach their - // properties to it so it needs to exist. - support: support -} ); +"use strict"; +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ -if ( typeof Symbol === "function" ) { - jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; -} -// Populate the class2type map -jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), -function( i, name ) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); -} ); -function isArrayLike( obj ) { +// React 15.5 references this module, and assumes PropTypes are still callable in production. +// Therefore we re-export development-only version with all the PropTypes checks here. +// However if one is migrating to the `prop-types` npm library, they will go through the +// `index.js` entry point, and it will branch depending on the environment. +var factory = __webpack_require__(489); +module.exports = function(isValidElement) { + // It is still allowed in 15.5. + var throwOnDirectAccess = false; + return factory(isValidElement, throwOnDirectAccess); +}; - // Support: real iOS 8.2 only (not reproducible in simulator) - // `in` check used to prevent JIT error (gh-2145) - // hasOwn isn't used here due to false negatives - // regarding Nodelist length in IE - var length = !!obj && "length" in obj && obj.length, - type = jQuery.type( obj ); - if ( type === "function" || jQuery.isWindow( obj ) ) { - return false; - } +/***/ }), +/* 252 */ +/***/ (function(module, exports, __webpack_require__) { - return type === "array" || length === 0 || - typeof length === "number" && length > 0 && ( length - 1 ) in obj; -} -var Sizzle = -/*! - * Sizzle CSS Selector Engine v2.3.3 - * https://sizzlejs.com/ - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license - * http://jquery.org/license +"use strict"; +/** + * Copyright (c) 2013-present, Facebook, Inc. * - * Date: 2016-08-08 + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ -(function( window ) { -var i, - support, - Expr, - getText, - isXML, - tokenize, - compile, - select, - outermostContext, - sortInput, - hasDuplicate, - // Local document vars - setDocument, - document, - docElem, - documentIsHTML, - rbuggyQSA, - rbuggyMatches, - matches, - contains, - // Instance-specific data - expando = "sizzle" + 1 * new Date(), - preferredDoc = window.document, - dirruns = 0, - done = 0, - classCache = createCache(), - tokenCache = createCache(), - compilerCache = createCache(), - sortOrder = function( a, b ) { - if ( a === b ) { - hasDuplicate = true; - } - return 0; - }, +var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; - // Instance methods - hasOwn = ({}).hasOwnProperty, - arr = [], - pop = arr.pop, - push_native = arr.push, - push = arr.push, - slice = arr.slice, - // Use a stripped-down indexOf as it's faster than native - // https://jsperf.com/thor-indexof-vs-for/5 - indexOf = function( list, elem ) { - var i = 0, - len = list.length; - for ( ; i < len; i++ ) { - if ( list[i] === elem ) { - return i; - } - } - return -1; - }, +module.exports = ReactPropTypesSecret; - booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", - // Regular expressions +/***/ }), +/* 253 */ +/***/ (function(module, exports, __webpack_require__) { - // http://www.w3.org/TR/css3-selectors/#whitespace - whitespace = "[\\x20\\t\\r\\n\\f]", +"use strict"; - // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier - identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", - // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors - attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + - // Operator (capture 2) - "*([*^$|!~]?=)" + whitespace + - // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" - "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + - "*\\]", +module.exports = __webpack_require__(495); - pseudos = ":(" + identifier + ")(?:\\((" + - // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: - // 1. quoted (capture 3; capture 4 or capture 5) - "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + - // 2. simple (capture 6) - "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + - // 3. anything else (capture 2) - ".*" + - ")\\)|)", - // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter - rwhitespace = new RegExp( whitespace + "+", "g" ), - rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), +/***/ }), +/* 254 */ +/***/ (function(module, exports, __webpack_require__) { - rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), - rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright (c) 2014-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * + */ - rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), - rpseudo = new RegExp( pseudos ), - ridentifier = new RegExp( "^" + identifier + "$" ), - matchExpr = { - "ID": new RegExp( "^#(" + identifier + ")" ), - "CLASS": new RegExp( "^\\.(" + identifier + ")" ), - "TAG": new RegExp( "^(" + identifier + "|[*])" ), - "ATTR": new RegExp( "^" + attributes ), - "PSEUDO": new RegExp( "^" + pseudos ), - "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + - "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + - "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), - "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), - // For use in libraries implementing .is() - // We use this for POS matching in `select` - "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + - whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) - }, +var _prodInvariant = __webpack_require__(6); - rinputs = /^(?:input|select|textarea|button)$/i, - rheader = /^h\d$/i, +var invariant = __webpack_require__(2); - rnative = /^[^{]+\{\s*\[native \w/, +/** + * Accumulates items that must not be null or undefined into the first one. This + * is used to conserve memory by avoiding array allocations, and thus sacrifices + * API cleanness. Since `current` can be null before being passed in and not + * null after this function, make sure to assign it back to `current`: + * + * `a = accumulateInto(a, b);` + * + * This API should be sparingly used. Try `accumulate` for something cleaner. + * + * @return {*|array<*>} An accumulation of items. + */ - // Easily-parseable/retrievable ID or TAG or CLASS selectors - rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, +function accumulateInto(current, next) { + !(next != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'accumulateInto(...): Accumulated items must not be null or undefined.') : _prodInvariant('30') : void 0; - rsibling = /[+~]/, + if (current == null) { + return next; + } - // CSS escapes - // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters - runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), - funescape = function( _, escaped, escapedWhitespace ) { - var high = "0x" + escaped - 0x10000; - // NaN means non-codepoint - // Support: Firefox<24 - // Workaround erroneous numeric interpretation of +"0x" - return high !== high || escapedWhitespace ? - escaped : - high < 0 ? - // BMP codepoint - String.fromCharCode( high + 0x10000 ) : - // Supplemental Plane codepoint (surrogate pair) - String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); - }, + // Both are not empty. Warning: Never call x.concat(y) when you are not + // certain that x is an Array (x could be a string with concat method). + if (Array.isArray(current)) { + if (Array.isArray(next)) { + current.push.apply(current, next); + return current; + } + current.push(next); + return current; + } - // CSS string/identifier serialization - // https://drafts.csswg.org/cssom/#common-serializing-idioms - rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, - fcssescape = function( ch, asCodePoint ) { - if ( asCodePoint ) { + if (Array.isArray(next)) { + // A bit too dangerous to mutate `next`. + return [current].concat(next); + } - // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER - if ( ch === "\0" ) { - return "\uFFFD"; - } + return [current, next]; +} - // Control characters and (dependent upon position) numbers get escaped as code points - return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; - } +module.exports = accumulateInto; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) - // Other potentially-special ASCII characters get backslash-escaped - return "\\" + ch; - }, +/***/ }), +/* 255 */ +/***/ (function(module, exports, __webpack_require__) { - // Used for iframes - // See setDocument() - // Removing the function wrapper causes a "Permission Denied" - // error in IE - unloadHandler = function() { - setDocument(); - }, +"use strict"; +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * + */ - disabledAncestor = addCombinator( - function( elem ) { - return elem.disabled === true && ("form" in elem || "label" in elem); - }, - { dir: "parentNode", next: "legend" } - ); -// Optimize for push.apply( _, NodeList ) -try { - push.apply( - (arr = slice.call( preferredDoc.childNodes )), - preferredDoc.childNodes - ); - // Support: Android<4.0 - // Detect silently failing push.apply - arr[ preferredDoc.childNodes.length ].nodeType; -} catch ( e ) { - push = { apply: arr.length ? - // Leverage slice if possible - function( target, els ) { - push_native.apply( target, slice.call(els) ); - } : +/** + * @param {array} arr an "accumulation" of items which is either an Array or + * a single item. Useful when paired with the `accumulate` module. This is a + * simple utility that allows us to reason about a collection of items, but + * handling the case when there is exactly one item (and we do not need to + * allocate an array). + */ - // Support: IE<9 - // Otherwise append directly - function( target, els ) { - var j = target.length, - i = 0; - // Can't trust NodeList.length - while ( (target[j++] = els[i++]) ) {} - target.length = j - 1; - } - }; +function forEachAccumulated(arr, cb, scope) { + if (Array.isArray(arr)) { + arr.forEach(cb, scope); + } else if (arr) { + cb.call(scope, arr); + } } -function Sizzle( selector, context, results, seed ) { - var m, i, elem, nid, match, groups, newSelector, - newContext = context && context.ownerDocument, +module.exports = forEachAccumulated; - // nodeType defaults to 9, since context defaults to document - nodeType = context ? context.nodeType : 9; +/***/ }), +/* 256 */ +/***/ (function(module, exports, __webpack_require__) { - results = results || []; +"use strict"; +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ - // Return early from calls with invalid selector or context - if ( typeof selector !== "string" || !selector || - nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { - return results; - } - // Try to shortcut find operations (as opposed to filters) in HTML documents - if ( !seed ) { +var ExecutionEnvironment = __webpack_require__(14); - if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { - setDocument( context ); - } - context = context || document; +var contentKey = null; - if ( documentIsHTML ) { +/** + * Gets the key used to access text content on a DOM node. + * + * @return {?string} Key used to access text content. + * @internal + */ +function getTextContentAccessor() { + if (!contentKey && ExecutionEnvironment.canUseDOM) { + // Prefer textContent to innerText because many browsers support both but + // SVG elements don't support innerText even when
does. + contentKey = 'textContent' in document.documentElement ? 'textContent' : 'innerText'; + } + return contentKey; +} - // If the selector is sufficiently simple, try using a "get*By*" DOM method - // (excepting DocumentFragment context, where the methods don't exist) - if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { +module.exports = getTextContentAccessor; - // ID selector - if ( (m = match[1]) ) { +/***/ }), +/* 257 */ +/***/ (function(module, exports, __webpack_require__) { - // Document context - if ( nodeType === 9 ) { - if ( (elem = context.getElementById( m )) ) { +"use strict"; +/** + * Copyright (c) 2015-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ - // Support: IE, Opera, Webkit - // TODO: identify versions - // getElementById can match elements by name instead of ID - if ( elem.id === m ) { - results.push( elem ); - return results; - } - } else { - return results; - } - // Element context - } else { - // Support: IE, Opera, Webkit - // TODO: identify versions - // getElementById can match elements by name instead of ID - if ( newContext && (elem = newContext.getElementById( m )) && - contains( context, elem ) && - elem.id === m ) { +var ReactDOMComponentFlags = { + hasCachedChildNodes: 1 << 0 +}; - results.push( elem ); - return results; - } - } +module.exports = ReactDOMComponentFlags; - // Type selector - } else if ( match[2] ) { - push.apply( results, context.getElementsByTagName( selector ) ); - return results; +/***/ }), +/* 258 */ +/***/ (function(module, exports, __webpack_require__) { - // Class selector - } else if ( (m = match[3]) && support.getElementsByClassName && - context.getElementsByClassName ) { +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * + */ - push.apply( results, context.getElementsByClassName( m ) ); - return results; - } - } - // Take advantage of querySelectorAll - if ( support.qsa && - !compilerCache[ selector + " " ] && - (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { - if ( nodeType !== 1 ) { - newContext = context; - newSelector = selector; +var _prodInvariant = __webpack_require__(6); - // qSA looks outside Element context, which is not what we want - // Thanks to Andrew Dupont for this workaround technique - // Support: IE <=8 - // Exclude object elements - } else if ( context.nodeName.toLowerCase() !== "object" ) { +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - // Capture the context ID, setting it first if necessary - if ( (nid = context.getAttribute( "id" )) ) { - nid = nid.replace( rcssescape, fcssescape ); - } else { - context.setAttribute( "id", (nid = expando) ); - } +var PooledClass = __webpack_require__(36); - // Prefix every selector in the list - groups = tokenize( selector ); - i = groups.length; - while ( i-- ) { - groups[i] = "#" + nid + " " + toSelector( groups[i] ); - } - newSelector = groups.join( "," ); +var invariant = __webpack_require__(2); - // Expand context for sibling selectors - newContext = rsibling.test( selector ) && testContext( context.parentNode ) || - context; - } +/** + * A specialized pseudo-event module to help keep track of components waiting to + * be notified when their DOM representations are available for use. + * + * This implements `PooledClass`, so you should never need to instantiate this. + * Instead, use `CallbackQueue.getPooled()`. + * + * @class ReactMountReady + * @implements PooledClass + * @internal + */ - if ( newSelector ) { - try { - push.apply( results, - newContext.querySelectorAll( newSelector ) - ); - return results; - } catch ( qsaError ) { - } finally { - if ( nid === expando ) { - context.removeAttribute( "id" ); - } - } - } - } - } - } +var CallbackQueue = function () { + function CallbackQueue(arg) { + _classCallCheck(this, CallbackQueue); - // All others - return select( selector.replace( rtrim, "$1" ), context, results, seed ); -} + this._callbacks = null; + this._contexts = null; + this._arg = arg; + } -/** - * Create key-value caches of limited size - * @returns {function(string, object)} Returns the Object data after storing it on itself with - * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) - * deleting the oldest entry - */ -function createCache() { - var keys = []; + /** + * Enqueues a callback to be invoked when `notifyAll` is invoked. + * + * @param {function} callback Invoked when `notifyAll` is invoked. + * @param {?object} context Context to call `callback` with. + * @internal + */ - function cache( key, value ) { - // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) - if ( keys.push( key + " " ) > Expr.cacheLength ) { - // Only keep the most recent entries - delete cache[ keys.shift() ]; - } - return (cache[ key + " " ] = value); - } - return cache; -} -/** - * Mark a function for special use by Sizzle - * @param {Function} fn The function to mark - */ -function markFunction( fn ) { - fn[ expando ] = true; - return fn; -} + CallbackQueue.prototype.enqueue = function enqueue(callback, context) { + this._callbacks = this._callbacks || []; + this._callbacks.push(callback); + this._contexts = this._contexts || []; + this._contexts.push(context); + }; -/** - * Support testing using an element - * @param {Function} fn Passed the created element and returns a boolean result - */ -function assert( fn ) { - var el = document.createElement("fieldset"); + /** + * Invokes all enqueued callbacks and clears the queue. This is invoked after + * the DOM representation of a component has been created or updated. + * + * @internal + */ - try { - return !!fn( el ); - } catch (e) { - return false; - } finally { - // Remove from its parent by default - if ( el.parentNode ) { - el.parentNode.removeChild( el ); - } - // release memory in IE - el = null; - } -} -/** - * Adds the same handler for all of the specified attrs - * @param {String} attrs Pipe-separated list of attributes - * @param {Function} handler The method that will be applied - */ -function addHandle( attrs, handler ) { - var arr = attrs.split("|"), - i = arr.length; + CallbackQueue.prototype.notifyAll = function notifyAll() { + var callbacks = this._callbacks; + var contexts = this._contexts; + var arg = this._arg; + if (callbacks && contexts) { + !(callbacks.length === contexts.length) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Mismatched list of contexts in callback queue') : _prodInvariant('24') : void 0; + this._callbacks = null; + this._contexts = null; + for (var i = 0; i < callbacks.length; i++) { + callbacks[i].call(contexts[i], arg); + } + callbacks.length = 0; + contexts.length = 0; + } + }; - while ( i-- ) { - Expr.attrHandle[ arr[i] ] = handler; - } -} + CallbackQueue.prototype.checkpoint = function checkpoint() { + return this._callbacks ? this._callbacks.length : 0; + }; -/** - * Checks document order of two siblings - * @param {Element} a - * @param {Element} b - * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b - */ -function siblingCheck( a, b ) { - var cur = b && a, - diff = cur && a.nodeType === 1 && b.nodeType === 1 && - a.sourceIndex - b.sourceIndex; + CallbackQueue.prototype.rollback = function rollback(len) { + if (this._callbacks && this._contexts) { + this._callbacks.length = len; + this._contexts.length = len; + } + }; - // Use IE sourceIndex if available on both nodes - if ( diff ) { - return diff; - } + /** + * Resets the internal queue. + * + * @internal + */ - // Check if b follows a - if ( cur ) { - while ( (cur = cur.nextSibling) ) { - if ( cur === b ) { - return -1; - } - } - } - return a ? 1 : -1; -} + CallbackQueue.prototype.reset = function reset() { + this._callbacks = null; + this._contexts = null; + }; -/** - * Returns a function to use in pseudos for input types - * @param {String} type - */ -function createInputPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === type; - }; -} + /** + * `PooledClass` looks for this. + */ -/** - * Returns a function to use in pseudos for buttons - * @param {String} type - */ -function createButtonPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return (name === "input" || name === "button") && elem.type === type; - }; -} -/** - * Returns a function to use in pseudos for :enabled/:disabled - * @param {Boolean} disabled true for :disabled; false for :enabled - */ -function createDisabledPseudo( disabled ) { + CallbackQueue.prototype.destructor = function destructor() { + this.reset(); + }; - // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable - return function( elem ) { + return CallbackQueue; +}(); - // Only certain elements can match :enabled or :disabled - // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled - // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled - if ( "form" in elem ) { +module.exports = PooledClass.addPoolingTo(CallbackQueue); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) - // Check for inherited disabledness on relevant non-disabled elements: - // * listed form-associated elements in a disabled fieldset - // https://html.spec.whatwg.org/multipage/forms.html#category-listed - // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled - // * option elements in a disabled optgroup - // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled - // All such elements have a "form" property. - if ( elem.parentNode && elem.disabled === false ) { +/***/ }), +/* 259 */ +/***/ (function(module, exports, __webpack_require__) { - // Option elements defer to a parent optgroup if present - if ( "label" in elem ) { - if ( "label" in elem.parentNode ) { - return elem.parentNode.disabled === disabled; - } else { - return elem.disabled === disabled; - } - } +"use strict"; +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ - // Support: IE 6 - 11 - // Use the isDisabled shortcut property to check for disabled fieldset ancestors - return elem.isDisabled === disabled || - // Where there is no isDisabled, check manually - /* jshint -W018 */ - elem.isDisabled !== !disabled && - disabledAncestor( elem ) === disabled; - } - return elem.disabled === disabled; +var ReactDOMComponentTree = __webpack_require__(13); - // Try to winnow out elements that can't be disabled before trusting the disabled property. - // Some victims get caught in our net (label, legend, menu, track), but it shouldn't - // even exist on them, let alone have a boolean value. - } else if ( "label" in elem ) { - return elem.disabled === disabled; - } +function isCheckable(elem) { + var type = elem.type; + var nodeName = elem.nodeName; + return nodeName && nodeName.toLowerCase() === 'input' && (type === 'checkbox' || type === 'radio'); +} - // Remaining elements are neither :enabled nor :disabled - return false; - }; +function getTracker(inst) { + return inst._wrapperState.valueTracker; } -/** - * Returns a function to use in pseudos for positionals - * @param {Function} fn - */ -function createPositionalPseudo( fn ) { - return markFunction(function( argument ) { - argument = +argument; - return markFunction(function( seed, matches ) { - var j, - matchIndexes = fn( [], seed.length, argument ), - i = matchIndexes.length; +function attachTracker(inst, tracker) { + inst._wrapperState.valueTracker = tracker; +} - // Match elements found at the specified indexes - while ( i-- ) { - if ( seed[ (j = matchIndexes[i]) ] ) { - seed[j] = !(matches[j] = seed[j]); - } - } - }); - }); +function detachTracker(inst) { + inst._wrapperState.valueTracker = null; } -/** - * Checks a node for validity as a Sizzle context - * @param {Element|Object=} context - * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value - */ -function testContext( context ) { - return context && typeof context.getElementsByTagName !== "undefined" && context; +function getValueFromNode(node) { + var value; + if (node) { + value = isCheckable(node) ? '' + node.checked : node.value; + } + return value; } -// Expose support vars for convenience -support = Sizzle.support = {}; +var inputValueTracking = { + // exposed for testing + _getTrackerFromNode: function (node) { + return getTracker(ReactDOMComponentTree.getInstanceFromNode(node)); + }, -/** - * Detects XML nodes - * @param {Element|Object} elem An element or a document - * @returns {Boolean} True iff elem is a non-HTML XML node - */ -isXML = Sizzle.isXML = function( elem ) { - // documentElement is verified for cases where it doesn't yet exist - // (such as loading iframes in IE - #4833) - var documentElement = elem && (elem.ownerDocument || elem).documentElement; - return documentElement ? documentElement.nodeName !== "HTML" : false; -}; -/** - * Sets document-related variables once based on the current document - * @param {Element|Object} [doc] An element or document object to use to set the document - * @returns {Object} Returns the current document - */ -setDocument = Sizzle.setDocument = function( node ) { - var hasCompare, subWindow, - doc = node ? node.ownerDocument || node : preferredDoc; + track: function (inst) { + if (getTracker(inst)) { + return; + } - // Return early if doc is invalid or already selected - if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { - return document; - } + var node = ReactDOMComponentTree.getNodeFromInstance(inst); + var valueField = isCheckable(node) ? 'checked' : 'value'; + var descriptor = Object.getOwnPropertyDescriptor(node.constructor.prototype, valueField); - // Update global variables - document = doc; - docElem = document.documentElement; - documentIsHTML = !isXML( document ); - - // Support: IE 9-11, Edge - // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) - if ( preferredDoc !== document && - (subWindow = document.defaultView) && subWindow.top !== subWindow ) { - - // Support: IE 11, Edge - if ( subWindow.addEventListener ) { - subWindow.addEventListener( "unload", unloadHandler, false ); + var currentValue = '' + node[valueField]; - // Support: IE 9 - 10 only - } else if ( subWindow.attachEvent ) { - subWindow.attachEvent( "onunload", unloadHandler ); - } - } + // if someone has already defined a value or Safari, then bail + // and don't track value will cause over reporting of changes, + // but it's better then a hard failure + // (needed for certain tests that spyOn input values and Safari) + if (node.hasOwnProperty(valueField) || typeof descriptor.get !== 'function' || typeof descriptor.set !== 'function') { + return; + } - /* Attributes - ---------------------------------------------------------------------- */ + Object.defineProperty(node, valueField, { + enumerable: descriptor.enumerable, + configurable: true, + get: function () { + return descriptor.get.call(this); + }, + set: function (value) { + currentValue = '' + value; + descriptor.set.call(this, value); + } + }); - // Support: IE<8 - // Verify that getAttribute really returns attributes and not properties - // (excepting IE8 booleans) - support.attributes = assert(function( el ) { - el.className = "i"; - return !el.getAttribute("className"); - }); + attachTracker(inst, { + getValue: function () { + return currentValue; + }, + setValue: function (value) { + currentValue = '' + value; + }, + stopTracking: function () { + detachTracker(inst); + delete node[valueField]; + } + }); + }, - /* getElement(s)By* - ---------------------------------------------------------------------- */ + updateValueIfChanged: function (inst) { + if (!inst) { + return false; + } + var tracker = getTracker(inst); - // Check if getElementsByTagName("*") returns only elements - support.getElementsByTagName = assert(function( el ) { - el.appendChild( document.createComment("") ); - return !el.getElementsByTagName("*").length; - }); + if (!tracker) { + inputValueTracking.track(inst); + return true; + } - // Support: IE<9 - support.getElementsByClassName = rnative.test( document.getElementsByClassName ); + var lastValue = tracker.getValue(); + var nextValue = getValueFromNode(ReactDOMComponentTree.getNodeFromInstance(inst)); - // Support: IE<10 - // Check if getElementById returns elements by name - // The broken getElementById methods don't pick up programmatically-set names, - // so use a roundabout getElementsByName test - support.getById = assert(function( el ) { - docElem.appendChild( el ).id = expando; - return !document.getElementsByName || !document.getElementsByName( expando ).length; - }); + if (nextValue !== lastValue) { + tracker.setValue(nextValue); + return true; + } - // ID filter and find - if ( support.getById ) { - Expr.filter["ID"] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - return elem.getAttribute("id") === attrId; - }; - }; - Expr.find["ID"] = function( id, context ) { - if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { - var elem = context.getElementById( id ); - return elem ? [ elem ] : []; - } - }; - } else { - Expr.filter["ID"] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - var node = typeof elem.getAttributeNode !== "undefined" && - elem.getAttributeNode("id"); - return node && node.value === attrId; - }; - }; + return false; + }, + stopTracking: function (inst) { + var tracker = getTracker(inst); + if (tracker) { + tracker.stopTracking(); + } + } +}; - // Support: IE 6 - 7 only - // getElementById is not reliable as a find shortcut - Expr.find["ID"] = function( id, context ) { - if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { - var node, i, elems, - elem = context.getElementById( id ); +module.exports = inputValueTracking; - if ( elem ) { +/***/ }), +/* 260 */ +/***/ (function(module, exports, __webpack_require__) { - // Verify the id attribute - node = elem.getAttributeNode("id"); - if ( node && node.value === id ) { - return [ elem ]; - } +"use strict"; +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * + */ - // Fall back on getElementsByName - elems = context.getElementsByName( id ); - i = 0; - while ( (elem = elems[i++]) ) { - node = elem.getAttributeNode("id"); - if ( node && node.value === id ) { - return [ elem ]; - } - } - } - return []; - } - }; - } - // Tag - Expr.find["TAG"] = support.getElementsByTagName ? - function( tag, context ) { - if ( typeof context.getElementsByTagName !== "undefined" ) { - return context.getElementsByTagName( tag ); +/** + * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary + */ - // DocumentFragment nodes don't have gEBTN - } else if ( support.qsa ) { - return context.querySelectorAll( tag ); - } - } : +var supportedInputTypes = { + color: true, + date: true, + datetime: true, + 'datetime-local': true, + email: true, + month: true, + number: true, + password: true, + range: true, + search: true, + tel: true, + text: true, + time: true, + url: true, + week: true +}; - function( tag, context ) { - var elem, - tmp = [], - i = 0, - // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too - results = context.getElementsByTagName( tag ); +function isTextInputElement(elem) { + var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase(); - // Filter out possible comments - if ( tag === "*" ) { - while ( (elem = results[i++]) ) { - if ( elem.nodeType === 1 ) { - tmp.push( elem ); - } - } + if (nodeName === 'input') { + return !!supportedInputTypes[elem.type]; + } - return tmp; - } - return results; - }; + if (nodeName === 'textarea') { + return true; + } - // Class - Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { - if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { - return context.getElementsByClassName( className ); - } - }; + return false; +} - /* QSA/matchesSelector - ---------------------------------------------------------------------- */ +module.exports = isTextInputElement; - // QSA and matchesSelector support +/***/ }), +/* 261 */ +/***/ (function(module, exports, __webpack_require__) { - // matchesSelector(:active) reports false when true (IE9/Opera 11.5) - rbuggyMatches = []; +"use strict"; +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ - // qSa(:focus) reports false when true (Chrome 21) - // We allow this because of a bug in IE8/9 that throws an error - // whenever `document.activeElement` is accessed on an iframe - // So, we allow :focus to pass through QSA all the time to avoid the IE error - // See https://bugs.jquery.com/ticket/13378 - rbuggyQSA = []; - if ( (support.qsa = rnative.test( document.querySelectorAll )) ) { - // Build QSA regex - // Regex strategy adopted from Diego Perini - assert(function( el ) { - // Select is set to empty string on purpose - // This is to test IE's treatment of not explicitly - // setting a boolean content attribute, - // since its presence should be enough - // https://bugs.jquery.com/ticket/12359 - docElem.appendChild( el ).innerHTML = "" + - ""; - // Support: IE8, Opera 11-12.16 - // Nothing should be selected when empty strings follow ^= or $= or *= - // The test attribute must be unknown in Opera but "safe" for WinRT - // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section - if ( el.querySelectorAll("[msallowcapture^='']").length ) { - rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); - } +var ViewportMetrics = { + currentScrollLeft: 0, - // Support: IE8 - // Boolean attributes and "value" are not treated correctly - if ( !el.querySelectorAll("[selected]").length ) { - rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); - } + currentScrollTop: 0, - // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ - if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { - rbuggyQSA.push("~="); - } + refreshScrollValues: function (scrollPosition) { + ViewportMetrics.currentScrollLeft = scrollPosition.x; + ViewportMetrics.currentScrollTop = scrollPosition.y; + } +}; - // Webkit/Opera - :checked should return selected option elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - // IE8 throws error here and will not see later tests - if ( !el.querySelectorAll(":checked").length ) { - rbuggyQSA.push(":checked"); - } +module.exports = ViewportMetrics; - // Support: Safari 8+, iOS 8+ - // https://bugs.webkit.org/show_bug.cgi?id=136851 - // In-page `selector#id sibling-combinator selector` fails - if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { - rbuggyQSA.push(".#.+[+~]"); - } - }); +/***/ }), +/* 262 */ +/***/ (function(module, exports, __webpack_require__) { - assert(function( el ) { - el.innerHTML = "" + - ""; +"use strict"; +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ - // Support: Windows 8 Native Apps - // The type and name attributes are restricted during .innerHTML assignment - var input = document.createElement("input"); - input.setAttribute( "type", "hidden" ); - el.appendChild( input ).setAttribute( "name", "D" ); - // Support: IE8 - // Enforce case-sensitivity of name attribute - if ( el.querySelectorAll("[name=d]").length ) { - rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); - } - // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) - // IE8 throws error here and will not see later tests - if ( el.querySelectorAll(":enabled").length !== 2 ) { - rbuggyQSA.push( ":enabled", ":disabled" ); - } +var ExecutionEnvironment = __webpack_require__(14); +var escapeTextContentForBrowser = __webpack_require__(104); +var setInnerHTML = __webpack_require__(156); - // Support: IE9-11+ - // IE's :disabled selector does not pick up the children of disabled fieldsets - docElem.appendChild( el ).disabled = true; - if ( el.querySelectorAll(":disabled").length !== 2 ) { - rbuggyQSA.push( ":enabled", ":disabled" ); - } +/** + * Set the textContent property of a node, ensuring that whitespace is preserved + * even in IE8. innerText is a poor substitute for textContent and, among many + * issues, inserts
instead of the literal newline chars. innerHTML behaves + * as it should. + * + * @param {DOMElement} node + * @param {string} text + * @internal + */ +var setTextContent = function (node, text) { + if (text) { + var firstChild = node.firstChild; - // Opera 10-11 does not throw on post-comma invalid pseudos - el.querySelectorAll("*,:x"); - rbuggyQSA.push(",.*:"); - }); - } + if (firstChild && firstChild === node.lastChild && firstChild.nodeType === 3) { + firstChild.nodeValue = text; + return; + } + } + node.textContent = text; +}; - if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || - docElem.webkitMatchesSelector || - docElem.mozMatchesSelector || - docElem.oMatchesSelector || - docElem.msMatchesSelector) )) ) { +if (ExecutionEnvironment.canUseDOM) { + if (!('textContent' in document.documentElement)) { + setTextContent = function (node, text) { + if (node.nodeType === 3) { + node.nodeValue = text; + return; + } + setInnerHTML(node, escapeTextContentForBrowser(text)); + }; + } +} - assert(function( el ) { - // Check to see if it's possible to do matchesSelector - // on a disconnected node (IE 9) - support.disconnectedMatch = matches.call( el, "*" ); +module.exports = setTextContent; - // This should fail with an exception - // Gecko does not error, returns false instead - matches.call( el, "[s!='']:x" ); - rbuggyMatches.push( "!=", pseudos ); - }); - } +/***/ }), +/* 263 */ +/***/ (function(module, exports, __webpack_require__) { - rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); - rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); +"use strict"; +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ - /* Contains - ---------------------------------------------------------------------- */ - hasCompare = rnative.test( docElem.compareDocumentPosition ); - // Element contains another - // Purposefully self-exclusive - // As in, an element does not contain itself - contains = hasCompare || rnative.test( docElem.contains ) ? - function( a, b ) { - var adown = a.nodeType === 9 ? a.documentElement : a, - bup = b && b.parentNode; - return a === bup || !!( bup && bup.nodeType === 1 && ( - adown.contains ? - adown.contains( bup ) : - a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 - )); - } : - function( a, b ) { - if ( b ) { - while ( (b = b.parentNode) ) { - if ( b === a ) { - return true; - } - } - } - return false; - }; - /* Sorting - ---------------------------------------------------------------------- */ +/** + * @param {DOMElement} node input/textarea to focus + */ - // Document order sorting - sortOrder = hasCompare ? - function( a, b ) { +function focusNode(node) { + // IE8 can throw "Can't move focus to the control because it is invisible, + // not enabled, or of a type that does not accept the focus." for all kinds of + // reasons that are too expensive and fragile to test. + try { + node.focus(); + } catch (e) {} +} - // Flag for duplicate removal - if ( a === b ) { - hasDuplicate = true; - return 0; - } +module.exports = focusNode; - // Sort on method existence if only one input has compareDocumentPosition - var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; - if ( compare ) { - return compare; - } +/***/ }), +/* 264 */ +/***/ (function(module, exports, __webpack_require__) { - // Calculate position if both inputs belong to the same document - compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? - a.compareDocumentPosition( b ) : +"use strict"; +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ - // Otherwise we know they are disconnected - 1; - // Disconnected nodes - if ( compare & 1 || - (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { - // Choose the first element that is related to our preferred document - if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { - return -1; - } - if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { - return 1; - } +/** + * CSS properties which accept numbers but are not in units of "px". + */ - // Maintain original order - return sortInput ? - ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : - 0; - } +var isUnitlessNumber = { + animationIterationCount: true, + borderImageOutset: true, + borderImageSlice: true, + borderImageWidth: true, + boxFlex: true, + boxFlexGroup: true, + boxOrdinalGroup: true, + columnCount: true, + columns: true, + flex: true, + flexGrow: true, + flexPositive: true, + flexShrink: true, + flexNegative: true, + flexOrder: true, + gridRow: true, + gridRowEnd: true, + gridRowSpan: true, + gridRowStart: true, + gridColumn: true, + gridColumnEnd: true, + gridColumnSpan: true, + gridColumnStart: true, + fontWeight: true, + lineClamp: true, + lineHeight: true, + opacity: true, + order: true, + orphans: true, + tabSize: true, + widows: true, + zIndex: true, + zoom: true, - return compare & 4 ? -1 : 1; - } : - function( a, b ) { - // Exit early if the nodes are identical - if ( a === b ) { - hasDuplicate = true; - return 0; - } + // SVG-related properties + fillOpacity: true, + floodOpacity: true, + stopOpacity: true, + strokeDasharray: true, + strokeDashoffset: true, + strokeMiterlimit: true, + strokeOpacity: true, + strokeWidth: true +}; - var cur, - i = 0, - aup = a.parentNode, - bup = b.parentNode, - ap = [ a ], - bp = [ b ]; +/** + * @param {string} prefix vendor-specific prefix, eg: Webkit + * @param {string} key style name, eg: transitionDuration + * @return {string} style name prefixed with `prefix`, properly camelCased, eg: + * WebkitTransitionDuration + */ +function prefixKey(prefix, key) { + return prefix + key.charAt(0).toUpperCase() + key.substring(1); +} - // Parentless nodes are either documents or disconnected - if ( !aup || !bup ) { - return a === document ? -1 : - b === document ? 1 : - aup ? -1 : - bup ? 1 : - sortInput ? - ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : - 0; +/** + * Support style names that may come passed in prefixed by adding permutations + * of vendor prefixes. + */ +var prefixes = ['Webkit', 'ms', 'Moz', 'O']; - // If the nodes are siblings, we can do a quick check - } else if ( aup === bup ) { - return siblingCheck( a, b ); - } +// Using Object.keys here, or else the vanilla for-in loop makes IE8 go into an +// infinite loop, because it iterates over the newly added props too. +Object.keys(isUnitlessNumber).forEach(function (prop) { + prefixes.forEach(function (prefix) { + isUnitlessNumber[prefixKey(prefix, prop)] = isUnitlessNumber[prop]; + }); +}); - // Otherwise we need full lists of their ancestors for comparison - cur = a; - while ( (cur = cur.parentNode) ) { - ap.unshift( cur ); - } - cur = b; - while ( (cur = cur.parentNode) ) { - bp.unshift( cur ); - } - - // Walk down the tree looking for a discrepancy - while ( ap[i] === bp[i] ) { - i++; - } - - return i ? - // Do a sibling check if the nodes have a common ancestor - siblingCheck( ap[i], bp[i] ) : - - // Otherwise nodes in our document sort first - ap[i] === preferredDoc ? -1 : - bp[i] === preferredDoc ? 1 : - 0; - }; - - return document; +/** + * Most style properties can be unset by doing .style[prop] = '' but IE8 + * doesn't like doing that with shorthand properties so for the properties that + * IE8 breaks on, which are listed here, we instead unset each of the + * individual properties. See http://bugs.jquery.com/ticket/12385. + * The 4-value 'clock' properties like margin, padding, border-width seem to + * behave without any problems. Curiously, list-style works too without any + * special prodding. + */ +var shorthandPropertyExpansions = { + background: { + backgroundAttachment: true, + backgroundColor: true, + backgroundImage: true, + backgroundPositionX: true, + backgroundPositionY: true, + backgroundRepeat: true + }, + backgroundPosition: { + backgroundPositionX: true, + backgroundPositionY: true + }, + border: { + borderWidth: true, + borderStyle: true, + borderColor: true + }, + borderBottom: { + borderBottomWidth: true, + borderBottomStyle: true, + borderBottomColor: true + }, + borderLeft: { + borderLeftWidth: true, + borderLeftStyle: true, + borderLeftColor: true + }, + borderRight: { + borderRightWidth: true, + borderRightStyle: true, + borderRightColor: true + }, + borderTop: { + borderTopWidth: true, + borderTopStyle: true, + borderTopColor: true + }, + font: { + fontStyle: true, + fontVariant: true, + fontWeight: true, + fontSize: true, + lineHeight: true, + fontFamily: true + }, + outline: { + outlineWidth: true, + outlineStyle: true, + outlineColor: true + } }; -Sizzle.matches = function( expr, elements ) { - return Sizzle( expr, null, null, elements ); +var CSSProperty = { + isUnitlessNumber: isUnitlessNumber, + shorthandPropertyExpansions: shorthandPropertyExpansions }; -Sizzle.matchesSelector = function( elem, expr ) { - // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { - setDocument( elem ); - } - - // Make sure that attribute selectors are quoted - expr = expr.replace( rattributeQuotes, "='$1']" ); - - if ( support.matchesSelector && documentIsHTML && - !compilerCache[ expr + " " ] && - ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && - ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { +module.exports = CSSProperty; - try { - var ret = matches.call( elem, expr ); +/***/ }), +/* 265 */ +/***/ (function(module, exports, __webpack_require__) { - // IE 9's matchesSelector returns false on disconnected nodes - if ( ret || support.disconnectedMatch || - // As well, disconnected nodes are said to be in a document - // fragment in IE 9 - elem.document && elem.document.nodeType !== 11 ) { - return ret; - } - } catch (e) {} - } +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ - return Sizzle( expr, document, null, [ elem ] ).length > 0; -}; -Sizzle.contains = function( context, elem ) { - // Set document vars if needed - if ( ( context.ownerDocument || context ) !== document ) { - setDocument( context ); - } - return contains( context, elem ); -}; -Sizzle.attr = function( elem, name ) { - // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { - setDocument( elem ); - } +var DOMProperty = __webpack_require__(61); +var ReactDOMComponentTree = __webpack_require__(13); +var ReactInstrumentation = __webpack_require__(22); - var fn = Expr.attrHandle[ name.toLowerCase() ], - // Don't get fooled by Object.prototype properties (jQuery #13807) - val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? - fn( elem, name, !documentIsHTML ) : - undefined; +var quoteAttributeValueForBrowser = __webpack_require__(529); +var warning = __webpack_require__(4); - return val !== undefined ? - val : - support.attributes || !documentIsHTML ? - elem.getAttribute( name ) : - (val = elem.getAttributeNode(name)) && val.specified ? - val.value : - null; -}; +var VALID_ATTRIBUTE_NAME_REGEX = new RegExp('^[' + DOMProperty.ATTRIBUTE_NAME_START_CHAR + '][' + DOMProperty.ATTRIBUTE_NAME_CHAR + ']*$'); +var illegalAttributeNameCache = {}; +var validatedAttributeNameCache = {}; -Sizzle.escape = function( sel ) { - return (sel + "").replace( rcssescape, fcssescape ); -}; +function isAttributeNameSafe(attributeName) { + if (validatedAttributeNameCache.hasOwnProperty(attributeName)) { + return true; + } + if (illegalAttributeNameCache.hasOwnProperty(attributeName)) { + return false; + } + if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) { + validatedAttributeNameCache[attributeName] = true; + return true; + } + illegalAttributeNameCache[attributeName] = true; + process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid attribute name: `%s`', attributeName) : void 0; + return false; +} -Sizzle.error = function( msg ) { - throw new Error( "Syntax error, unrecognized expression: " + msg ); -}; +function shouldIgnoreValue(propertyInfo, value) { + return value == null || propertyInfo.hasBooleanValue && !value || propertyInfo.hasNumericValue && isNaN(value) || propertyInfo.hasPositiveNumericValue && value < 1 || propertyInfo.hasOverloadedBooleanValue && value === false; +} /** - * Document sorting and removing duplicates - * @param {ArrayLike} results + * Operations for dealing with DOM properties. */ -Sizzle.uniqueSort = function( results ) { - var elem, - duplicates = [], - j = 0, - i = 0; +var DOMPropertyOperations = { + /** + * Creates markup for the ID property. + * + * @param {string} id Unescaped ID. + * @return {string} Markup string. + */ + createMarkupForID: function (id) { + return DOMProperty.ID_ATTRIBUTE_NAME + '=' + quoteAttributeValueForBrowser(id); + }, - // Unless we *know* we can detect duplicates, assume their presence - hasDuplicate = !support.detectDuplicates; - sortInput = !support.sortStable && results.slice( 0 ); - results.sort( sortOrder ); + setAttributeForID: function (node, id) { + node.setAttribute(DOMProperty.ID_ATTRIBUTE_NAME, id); + }, - if ( hasDuplicate ) { - while ( (elem = results[i++]) ) { - if ( elem === results[ i ] ) { - j = duplicates.push( i ); - } - } - while ( j-- ) { - results.splice( duplicates[ j ], 1 ); - } - } + createMarkupForRoot: function () { + return DOMProperty.ROOT_ATTRIBUTE_NAME + '=""'; + }, - // Clear input after sorting to release objects - // See https://github.com/jquery/sizzle/pull/225 - sortInput = null; + setAttributeForRoot: function (node) { + node.setAttribute(DOMProperty.ROOT_ATTRIBUTE_NAME, ''); + }, - return results; -}; + /** + * Creates markup for a property. + * + * @param {string} name + * @param {*} value + * @return {?string} Markup string, or null if the property was invalid. + */ + createMarkupForProperty: function (name, value) { + var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null; + if (propertyInfo) { + if (shouldIgnoreValue(propertyInfo, value)) { + return ''; + } + var attributeName = propertyInfo.attributeName; + if (propertyInfo.hasBooleanValue || propertyInfo.hasOverloadedBooleanValue && value === true) { + return attributeName + '=""'; + } + return attributeName + '=' + quoteAttributeValueForBrowser(value); + } else if (DOMProperty.isCustomAttribute(name)) { + if (value == null) { + return ''; + } + return name + '=' + quoteAttributeValueForBrowser(value); + } + return null; + }, -/** - * Utility function for retrieving the text value of an array of DOM nodes - * @param {Array|Element} elem - */ -getText = Sizzle.getText = function( elem ) { - var node, - ret = "", - i = 0, - nodeType = elem.nodeType; + /** + * Creates markup for a custom property. + * + * @param {string} name + * @param {*} value + * @return {string} Markup string, or empty string if the property was invalid. + */ + createMarkupForCustomAttribute: function (name, value) { + if (!isAttributeNameSafe(name) || value == null) { + return ''; + } + return name + '=' + quoteAttributeValueForBrowser(value); + }, - if ( !nodeType ) { - // If no nodeType, this is expected to be an array - while ( (node = elem[i++]) ) { - // Do not traverse comment nodes - ret += getText( node ); - } - } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { - // Use textContent for elements - // innerText usage removed for consistency of new lines (jQuery #11153) - if ( typeof elem.textContent === "string" ) { - return elem.textContent; - } else { - // Traverse its children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - ret += getText( elem ); - } - } - } else if ( nodeType === 3 || nodeType === 4 ) { - return elem.nodeValue; - } - // Do not include comment or processing instruction nodes + /** + * Sets the value for a property on a node. + * + * @param {DOMElement} node + * @param {string} name + * @param {*} value + */ + setValueForProperty: function (node, name, value) { + var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null; + if (propertyInfo) { + var mutationMethod = propertyInfo.mutationMethod; + if (mutationMethod) { + mutationMethod(node, value); + } else if (shouldIgnoreValue(propertyInfo, value)) { + this.deleteValueForProperty(node, name); + return; + } else if (propertyInfo.mustUseProperty) { + // Contrary to `setAttribute`, object properties are properly + // `toString`ed by IE8/9. + node[propertyInfo.propertyName] = value; + } else { + var attributeName = propertyInfo.attributeName; + var namespace = propertyInfo.attributeNamespace; + // `setAttribute` with objects becomes only `[object]` in IE8/9, + // ('' + value) makes it output the correct toString()-value. + if (namespace) { + node.setAttributeNS(namespace, attributeName, '' + value); + } else if (propertyInfo.hasBooleanValue || propertyInfo.hasOverloadedBooleanValue && value === true) { + node.setAttribute(attributeName, ''); + } else { + node.setAttribute(attributeName, '' + value); + } + } + } else if (DOMProperty.isCustomAttribute(name)) { + DOMPropertyOperations.setValueForAttribute(node, name, value); + return; + } - return ret; -}; + if (process.env.NODE_ENV !== 'production') { + var payload = {}; + payload[name] = value; + ReactInstrumentation.debugTool.onHostOperation({ + instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID, + type: 'update attribute', + payload: payload + }); + } + }, -Expr = Sizzle.selectors = { + setValueForAttribute: function (node, name, value) { + if (!isAttributeNameSafe(name)) { + return; + } + if (value == null) { + node.removeAttribute(name); + } else { + node.setAttribute(name, '' + value); + } - // Can be adjusted by the user - cacheLength: 50, + if (process.env.NODE_ENV !== 'production') { + var payload = {}; + payload[name] = value; + ReactInstrumentation.debugTool.onHostOperation({ + instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID, + type: 'update attribute', + payload: payload + }); + } + }, - createPseudo: markFunction, + /** + * Deletes an attributes from a node. + * + * @param {DOMElement} node + * @param {string} name + */ + deleteValueForAttribute: function (node, name) { + node.removeAttribute(name); + if (process.env.NODE_ENV !== 'production') { + ReactInstrumentation.debugTool.onHostOperation({ + instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID, + type: 'remove attribute', + payload: name + }); + } + }, - match: matchExpr, + /** + * Deletes the value for a property on a node. + * + * @param {DOMElement} node + * @param {string} name + */ + deleteValueForProperty: function (node, name) { + var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null; + if (propertyInfo) { + var mutationMethod = propertyInfo.mutationMethod; + if (mutationMethod) { + mutationMethod(node, undefined); + } else if (propertyInfo.mustUseProperty) { + var propName = propertyInfo.propertyName; + if (propertyInfo.hasBooleanValue) { + node[propName] = false; + } else { + node[propName] = ''; + } + } else { + node.removeAttribute(propertyInfo.attributeName); + } + } else if (DOMProperty.isCustomAttribute(name)) { + node.removeAttribute(name); + } - attrHandle: {}, + if (process.env.NODE_ENV !== 'production') { + ReactInstrumentation.debugTool.onHostOperation({ + instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID, + type: 'remove attribute', + payload: name + }); + } + } +}; - find: {}, +module.exports = DOMPropertyOperations; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) - relative: { - ">": { dir: "parentNode", first: true }, - " ": { dir: "parentNode" }, - "+": { dir: "previousSibling", first: true }, - "~": { dir: "previousSibling" } - }, +/***/ }), +/* 266 */ +/***/ (function(module, exports, __webpack_require__) { - preFilter: { - "ATTR": function( match ) { - match[1] = match[1].replace( runescape, funescape ); +"use strict"; +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * + */ - // Move the given value to match[3] whether quoted or unquoted - match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); - if ( match[2] === "~=" ) { - match[3] = " " + match[3] + " "; - } - return match.slice( 0, 4 ); - }, +var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; - "CHILD": function( match ) { - /* matches from matchExpr["CHILD"] - 1 type (only|nth|...) - 2 what (child|of-type) - 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) - 4 xn-component of xn+y argument ([+-]?\d*n|) - 5 sign of xn-component - 6 x of xn-component - 7 sign of y-component - 8 y of y-component - */ - match[1] = match[1].toLowerCase(); +module.exports = ReactPropTypesSecret; - if ( match[1].slice( 0, 3 ) === "nth" ) { - // nth-* requires argument - if ( !match[3] ) { - Sizzle.error( match[0] ); - } +/***/ }), +/* 267 */ +/***/ (function(module, exports, __webpack_require__) { - // numeric x and y parameters for Expr.filter.CHILD - // remember that false/true cast respectively to 0/1 - match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); - match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ - // other types prohibit arguments - } else if ( match[3] ) { - Sizzle.error( match[0] ); - } - return match; - }, - "PSEUDO": function( match ) { - var excess, - unquoted = !match[6] && match[2]; +var _assign = __webpack_require__(9); - if ( matchExpr["CHILD"].test( match[0] ) ) { - return null; - } +var LinkedValueUtils = __webpack_require__(159); +var ReactDOMComponentTree = __webpack_require__(13); +var ReactUpdates = __webpack_require__(28); - // Accept quoted arguments as-is - if ( match[3] ) { - match[2] = match[4] || match[5] || ""; +var warning = __webpack_require__(4); - // Strip excess characters from unquoted arguments - } else if ( unquoted && rpseudo.test( unquoted ) && - // Get excess from tokenize (recursively) - (excess = tokenize( unquoted, true )) && - // advance to the next closing parenthesis - (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { +var didWarnValueLink = false; +var didWarnValueDefaultValue = false; - // excess is a negative index - match[0] = match[0].slice( 0, excess ); - match[2] = unquoted.slice( 0, excess ); - } +function updateOptionsIfPendingUpdateAndMounted() { + if (this._rootNodeID && this._wrapperState.pendingUpdate) { + this._wrapperState.pendingUpdate = false; - // Return only captures needed by the pseudo filter method (type and argument) - return match.slice( 0, 3 ); - } - }, - - filter: { + var props = this._currentElement.props; + var value = LinkedValueUtils.getValue(props); - "TAG": function( nodeNameSelector ) { - var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); - return nodeNameSelector === "*" ? - function() { return true; } : - function( elem ) { - return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; - }; - }, + if (value != null) { + updateOptions(this, Boolean(props.multiple), value); + } + } +} - "CLASS": function( className ) { - var pattern = classCache[ className + " " ]; +function getDeclarationErrorAddendum(owner) { + if (owner) { + var name = owner.getName(); + if (name) { + return ' Check the render method of `' + name + '`.'; + } + } + return ''; +} - return pattern || - (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && - classCache( className, function( elem ) { - return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" ); - }); - }, +var valuePropNames = ['value', 'defaultValue']; - "ATTR": function( name, operator, check ) { - return function( elem ) { - var result = Sizzle.attr( elem, name ); +/** + * Validation function for `value` and `defaultValue`. + * @private + */ +function checkSelectPropTypes(inst, props) { + var owner = inst._currentElement._owner; + LinkedValueUtils.checkPropTypes('select', props, owner); - if ( result == null ) { - return operator === "!="; - } - if ( !operator ) { - return true; - } + if (props.valueLink !== undefined && !didWarnValueLink) { + process.env.NODE_ENV !== 'production' ? warning(false, '`valueLink` prop on `select` is deprecated; set `value` and `onChange` instead.') : void 0; + didWarnValueLink = true; + } - result += ""; + for (var i = 0; i < valuePropNames.length; i++) { + var propName = valuePropNames[i]; + if (props[propName] == null) { + continue; + } + var isArray = Array.isArray(props[propName]); + if (props.multiple && !isArray) { + process.env.NODE_ENV !== 'production' ? warning(false, 'The `%s` prop supplied to must be a scalar ' + 'value if `multiple` is false.%s', propName, getDeclarationErrorAddendum(owner)) : void 0; + } + } +} - return operator === "=" ? result === check : - operator === "!=" ? result !== check : - operator === "^=" ? check && result.indexOf( check ) === 0 : - operator === "*=" ? check && result.indexOf( check ) > -1 : - operator === "$=" ? check && result.slice( -check.length ) === check : - operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : - operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : - false; - }; - }, +/** + * @param {ReactDOMComponent} inst + * @param {boolean} multiple + * @param {*} propValue A stringable (with `multiple`, a list of stringables). + * @private + */ +function updateOptions(inst, multiple, propValue) { + var selectedValue, i; + var options = ReactDOMComponentTree.getNodeFromInstance(inst).options; - "CHILD": function( type, what, argument, first, last ) { - var simple = type.slice( 0, 3 ) !== "nth", - forward = type.slice( -4 ) !== "last", - ofType = what === "of-type"; + if (multiple) { + selectedValue = {}; + for (i = 0; i < propValue.length; i++) { + selectedValue['' + propValue[i]] = true; + } + for (i = 0; i < options.length; i++) { + var selected = selectedValue.hasOwnProperty(options[i].value); + if (options[i].selected !== selected) { + options[i].selected = selected; + } + } + } else { + // Do not set `select.value` as exact behavior isn't consistent across all + // browsers for all cases. + selectedValue = '' + propValue; + for (i = 0; i < options.length; i++) { + if (options[i].value === selectedValue) { + options[i].selected = true; + return; + } + } + if (options.length) { + options[0].selected = true; + } + } +} - return first === 1 && last === 0 ? +/** + * Implements a "; - el.firstChild.setAttribute( "value", "" ); - return el.firstChild.getAttribute( "value" ) === ""; -}) ) { - addHandle( "value", function( elem, name, isXML ) { - if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { - return elem.defaultValue; - } - }); -} + var queue = internalInstance._pendingStateQueue || (internalInstance._pendingStateQueue = []); + queue.push(partialState); -// Support: IE<9 -// Use getAttributeNode to fetch booleans when getAttribute lies -if ( !assert(function( el ) { - return el.getAttribute("disabled") == null; -}) ) { - addHandle( booleans, function( elem, name, isXML ) { - var val; - if ( !isXML ) { - return elem[ name ] === true ? name.toLowerCase() : - (val = elem.getAttributeNode( name )) && val.specified ? - val.value : - null; - } - }); -} + enqueueUpdate(internalInstance); + }, -return Sizzle; + enqueueElementInternal: function (internalInstance, nextElement, nextContext) { + internalInstance._pendingElement = nextElement; + // TODO: introduce _pendingContext instead of setting it directly. + internalInstance._context = nextContext; + enqueueUpdate(internalInstance); + }, -})( window ); + validateCallback: function (callback, callerName) { + !(!callback || typeof callback === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s(...): Expected the last optional `callback` argument to be a function. Instead received: %s.', callerName, formatUnexpectedArgument(callback)) : _prodInvariant('122', callerName, formatUnexpectedArgument(callback)) : void 0; + } +}; +module.exports = ReactUpdateQueue; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) +/***/ }), +/* 275 */ +/***/ (function(module, exports, __webpack_require__) { -jQuery.find = Sizzle; -jQuery.expr = Sizzle.selectors; +"use strict"; +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ -// Deprecated -jQuery.expr[ ":" ] = jQuery.expr.pseudos; -jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; -jQuery.text = Sizzle.getText; -jQuery.isXMLDoc = Sizzle.isXML; -jQuery.contains = Sizzle.contains; -jQuery.escapeSelector = Sizzle.escape; +var _assign = __webpack_require__(9); +var ReactUpdates = __webpack_require__(28); +var Transaction = __webpack_require__(102); -var dir = function( elem, dir, until ) { - var matched = [], - truncate = until !== undefined; +var emptyFunction = __webpack_require__(21); - while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { - if ( elem.nodeType === 1 ) { - if ( truncate && jQuery( elem ).is( until ) ) { - break; - } - matched.push( elem ); - } - } - return matched; +var RESET_BATCHED_UPDATES = { + initialize: emptyFunction, + close: function () { + ReactDefaultBatchingStrategy.isBatchingUpdates = false; + } }; - -var siblings = function( n, elem ) { - var matched = []; - - for ( ; n; n = n.nextSibling ) { - if ( n.nodeType === 1 && n !== elem ) { - matched.push( n ); - } - } - - return matched; +var FLUSH_BATCHED_UPDATES = { + initialize: emptyFunction, + close: ReactUpdates.flushBatchedUpdates.bind(ReactUpdates) }; +var TRANSACTION_WRAPPERS = [FLUSH_BATCHED_UPDATES, RESET_BATCHED_UPDATES]; + +function ReactDefaultBatchingStrategyTransaction() { + this.reinitializeTransaction(); +} -var rneedsContext = jQuery.expr.match.needsContext; +_assign(ReactDefaultBatchingStrategyTransaction.prototype, Transaction, { + getTransactionWrappers: function () { + return TRANSACTION_WRAPPERS; + } +}); +var transaction = new ReactDefaultBatchingStrategyTransaction(); +var ReactDefaultBatchingStrategy = { + isBatchingUpdates: false, -function nodeName( elem, name ) { + /** + * Call the provided function in a context within which calls to `setState` + * and friends are batched such that components aren't updated unnecessarily. + */ + batchedUpdates: function (callback, a, b, c, d, e) { + var alreadyBatchingUpdates = ReactDefaultBatchingStrategy.isBatchingUpdates; - return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + ReactDefaultBatchingStrategy.isBatchingUpdates = true; + // The code is written this way to avoid extra allocations + if (alreadyBatchingUpdates) { + return callback(a, b, c, d, e); + } else { + return transaction.perform(callback, null, a, b, c, d, e); + } + } }; -var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); +module.exports = ReactDefaultBatchingStrategy; +/***/ }), +/* 276 */ +/***/ (function(module, exports, __webpack_require__) { -var risSimple = /^.[^:#\[\.,]*$/; +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { -// Implement the identical functionality for filter and not -function winnow( elements, qualifier, not ) { - if ( jQuery.isFunction( qualifier ) ) { - return jQuery.grep( elements, function( elem, i ) { - return !!qualifier.call( elem, i, elem ) !== not; - } ); - } +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @typechecks + */ - // Single element - if ( qualifier.nodeType ) { - return jQuery.grep( elements, function( elem ) { - return ( elem === qualifier ) !== not; - } ); - } +var emptyFunction = __webpack_require__(21); - // Arraylike of elements (jQuery, arguments, Array) - if ( typeof qualifier !== "string" ) { - return jQuery.grep( elements, function( elem ) { - return ( indexOf.call( qualifier, elem ) > -1 ) !== not; - } ); - } +/** + * Upstream version of event listener. Does not take into account specific + * nature of platform. + */ +var EventListener = { + /** + * Listen to DOM events during the bubble phase. + * + * @param {DOMEventTarget} target DOM element to register listener on. + * @param {string} eventType Event type, e.g. 'click' or 'mouseover'. + * @param {function} callback Callback function. + * @return {object} Object with a `remove` method. + */ + listen: function listen(target, eventType, callback) { + if (target.addEventListener) { + target.addEventListener(eventType, callback, false); + return { + remove: function remove() { + target.removeEventListener(eventType, callback, false); + } + }; + } else if (target.attachEvent) { + target.attachEvent('on' + eventType, callback); + return { + remove: function remove() { + target.detachEvent('on' + eventType, callback); + } + }; + } + }, - // Simple selector that can be filtered directly, removing non-Elements - if ( risSimple.test( qualifier ) ) { - return jQuery.filter( qualifier, elements, not ); - } + /** + * Listen to DOM events during the capture phase. + * + * @param {DOMEventTarget} target DOM element to register listener on. + * @param {string} eventType Event type, e.g. 'click' or 'mouseover'. + * @param {function} callback Callback function. + * @return {object} Object with a `remove` method. + */ + capture: function capture(target, eventType, callback) { + if (target.addEventListener) { + target.addEventListener(eventType, callback, true); + return { + remove: function remove() { + target.removeEventListener(eventType, callback, true); + } + }; + } else { + if (process.env.NODE_ENV !== 'production') { + console.error('Attempted to listen to events during the capture phase on a ' + 'browser that does not support the capture phase. Your application ' + 'will not receive some events.'); + } + return { + remove: emptyFunction + }; + } + }, - // Complex selector, compare the two sets, removing non-Elements - qualifier = jQuery.filter( qualifier, elements ); - return jQuery.grep( elements, function( elem ) { - return ( indexOf.call( qualifier, elem ) > -1 ) !== not && elem.nodeType === 1; - } ); -} + registerDefault: function registerDefault() {} +}; -jQuery.filter = function( expr, elems, not ) { - var elem = elems[ 0 ]; +module.exports = EventListener; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) - if ( not ) { - expr = ":not(" + expr + ")"; - } +/***/ }), +/* 277 */ +/***/ (function(module, exports, __webpack_require__) { - if ( elems.length === 1 && elem.nodeType === 1 ) { - return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : []; - } +"use strict"; +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ - return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { - return elem.nodeType === 1; - } ) ); -}; -jQuery.fn.extend( { - find: function( selector ) { - var i, ret, - len = this.length, - self = this; - if ( typeof selector !== "string" ) { - return this.pushStack( jQuery( selector ).filter( function() { - for ( i = 0; i < len; i++ ) { - if ( jQuery.contains( self[ i ], this ) ) { - return true; - } - } - } ) ); - } +var ReactDOMSelection = __webpack_require__(553); - ret = this.pushStack( [] ); +var containsNode = __webpack_require__(555); +var focusNode = __webpack_require__(263); +var getActiveElement = __webpack_require__(278); - for ( i = 0; i < len; i++ ) { - jQuery.find( selector, self[ i ], ret ); - } +function isInDocument(node) { + return containsNode(document.documentElement, node); +} - return len > 1 ? jQuery.uniqueSort( ret ) : ret; - }, - filter: function( selector ) { - return this.pushStack( winnow( this, selector || [], false ) ); - }, - not: function( selector ) { - return this.pushStack( winnow( this, selector || [], true ) ); - }, - is: function( selector ) { - return !!winnow( - this, +/** + * @ReactInputSelection: React input selection module. Based on Selection.js, + * but modified to be suitable for react and has a couple of bug fixes (doesn't + * assume buttons have range selections allowed). + * Input selection module for React. + */ +var ReactInputSelection = { + hasSelectionCapabilities: function (elem) { + var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase(); + return nodeName && (nodeName === 'input' && elem.type === 'text' || nodeName === 'textarea' || elem.contentEditable === 'true'); + }, - // If this is a positional/relative selector, check membership in the returned set - // so $("p:first").is("p:last") won't return true for a doc with two "p". - typeof selector === "string" && rneedsContext.test( selector ) ? - jQuery( selector ) : - selector || [], - false - ).length; - } -} ); + getSelectionInformation: function () { + var focusedElem = getActiveElement(); + return { + focusedElem: focusedElem, + selectionRange: ReactInputSelection.hasSelectionCapabilities(focusedElem) ? ReactInputSelection.getSelection(focusedElem) : null + }; + }, + /** + * @restoreSelection: If any selection information was potentially lost, + * restore it. This is useful when performing operations that could remove dom + * nodes and place them back in, resulting in focus being lost. + */ + restoreSelection: function (priorSelectionInformation) { + var curFocusedElem = getActiveElement(); + var priorFocusedElem = priorSelectionInformation.focusedElem; + var priorSelectionRange = priorSelectionInformation.selectionRange; + if (curFocusedElem !== priorFocusedElem && isInDocument(priorFocusedElem)) { + if (ReactInputSelection.hasSelectionCapabilities(priorFocusedElem)) { + ReactInputSelection.setSelection(priorFocusedElem, priorSelectionRange); + } + focusNode(priorFocusedElem); + } + }, -// Initialize a jQuery object + /** + * @getSelection: Gets the selection bounds of a focused textarea, input or + * contentEditable node. + * -@input: Look up selection bounds of this input + * -@return {start: selectionStart, end: selectionEnd} + */ + getSelection: function (input) { + var selection; + if ('selectionStart' in input) { + // Modern browser with input or textarea. + selection = { + start: input.selectionStart, + end: input.selectionEnd + }; + } else if (document.selection && input.nodeName && input.nodeName.toLowerCase() === 'input') { + // IE8 input. + var range = document.selection.createRange(); + // There can only be one selection per document in IE, so it must + // be in our element. + if (range.parentElement() === input) { + selection = { + start: -range.moveStart('character', -input.value.length), + end: -range.moveEnd('character', -input.value.length) + }; + } + } else { + // Content editable or old IE textarea. + selection = ReactDOMSelection.getOffsets(input); + } -// A central reference to the root jQuery(document) -var rootjQuery, + return selection || { start: 0, end: 0 }; + }, - // A simple way to check for HTML strings - // Prioritize #id over to avoid XSS via location.hash (#9521) - // Strict HTML recognition (#11290: must start with <) - // Shortcut simple #id case for speed - rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, + /** + * @setSelection: Sets the selection bounds of a textarea or input and focuses + * the input. + * -@input Set selection bounds of this input or textarea + * -@offsets Object of same form that is returned from get* + */ + setSelection: function (input, offsets) { + var start = offsets.start; + var end = offsets.end; + if (end === undefined) { + end = start; + } - init = jQuery.fn.init = function( selector, context, root ) { - var match, elem; + if ('selectionStart' in input) { + input.selectionStart = start; + input.selectionEnd = Math.min(end, input.value.length); + } else if (document.selection && input.nodeName && input.nodeName.toLowerCase() === 'input') { + var range = input.createTextRange(); + range.collapse(true); + range.moveStart('character', start); + range.moveEnd('character', end - start); + range.select(); + } else { + ReactDOMSelection.setOffsets(input, offsets); + } + } +}; - // HANDLE: $(""), $(null), $(undefined), $(false) - if ( !selector ) { - return this; - } +module.exports = ReactInputSelection; - // Method init() accepts an alternate rootjQuery - // so migrate can support jQuery.sub (gh-2101) - root = root || rootjQuery; +/***/ }), +/* 278 */ +/***/ (function(module, exports, __webpack_require__) { - // Handle HTML strings - if ( typeof selector === "string" ) { - if ( selector[ 0 ] === "<" && - selector[ selector.length - 1 ] === ">" && - selector.length >= 3 ) { +"use strict"; - // Assume that strings that start and end with <> are HTML and skip the regex check - match = [ null, selector, null ]; - } else { - match = rquickExpr.exec( selector ); - } +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @typechecks + */ - // Match html or make sure no context is specified for #id - if ( match && ( match[ 1 ] || !context ) ) { +/* eslint-disable fb-www/typeof-undefined */ - // HANDLE: $(html) -> $(array) - if ( match[ 1 ] ) { - context = context instanceof jQuery ? context[ 0 ] : context; - - // Option to run scripts is true for back-compat - // Intentionally let the error be thrown if parseHTML is not present - jQuery.merge( this, jQuery.parseHTML( - match[ 1 ], - context && context.nodeType ? context.ownerDocument || context : document, - true - ) ); - - // HANDLE: $(html, props) - if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { - for ( match in context ) { - - // Properties of context are called as methods if possible - if ( jQuery.isFunction( this[ match ] ) ) { - this[ match ]( context[ match ] ); - - // ...and otherwise set as attributes - } else { - this.attr( match, context[ match ] ); - } - } - } - - return this; +/** + * Same as document.activeElement but wraps in a try-catch block. In IE it is + * not safe to call document.activeElement if there is nothing focused. + * + * The activeElement will be null only if the document or document body is not + * yet defined. + * + * @param {?DOMDocument} doc Defaults to current document. + * @return {?DOMElement} + */ +function getActiveElement(doc) /*?DOMElement*/{ + doc = doc || (typeof document !== 'undefined' ? document : undefined); + if (typeof doc === 'undefined') { + return null; + } + try { + return doc.activeElement || doc.body; + } catch (e) { + return doc.body; + } +} - // HANDLE: $(#id) - } else { - elem = document.getElementById( match[ 2 ] ); +module.exports = getActiveElement; - if ( elem ) { +/***/ }), +/* 279 */ +/***/ (function(module, exports) { - // Inject the element directly into the jQuery object - this[ 0 ] = elem; - this.length = 1; - } - return this; - } +var toString = {}.toString; - // HANDLE: $(expr, $(...)) - } else if ( !context || context.jquery ) { - return ( context || root ).find( selector ); +module.exports = Array.isArray || function (arr) { + return toString.call(arr) == '[object Array]'; +}; - // HANDLE: $(expr, context) - // (which is just equivalent to: $(context).find(expr) - } else { - return this.constructor( context ).find( selector ); - } - // HANDLE: $(DOMElement) - } else if ( selector.nodeType ) { - this[ 0 ] = selector; - this.length = 1; - return this; +/***/ }), +/* 280 */ +/***/ (function(module, exports, __webpack_require__) { - // HANDLE: $(function) - // Shortcut for document ready - } else if ( jQuery.isFunction( selector ) ) { - return root.ready !== undefined ? - root.ready( selector ) : +var Tokenizer = __webpack_require__(281); - // Execute immediately if ready is not present - selector( jQuery ); - } +/* + Options: - return jQuery.makeArray( selector, this ); - }; + xmlMode: Disables the special behavior for script/style tags (false by default) + lowerCaseAttributeNames: call .toLowerCase for each attribute name (true if xmlMode is `false`) + lowerCaseTags: call .toLowerCase for each tag name (true if xmlMode is `false`) +*/ -// Give the init function the jQuery prototype for later instantiation -init.prototype = jQuery.fn; +/* + Callbacks: -// Initialize central reference -rootjQuery = jQuery( document ); + oncdataend, + oncdatastart, + onclosetag, + oncomment, + oncommentend, + onerror, + onopentag, + onprocessinginstruction, + onreset, + ontext +*/ +var formTags = { + input: true, + option: true, + optgroup: true, + select: true, + button: true, + datalist: true, + textarea: true +}; -var rparentsprev = /^(?:parents|prev(?:Until|All))/, +var openImpliesClose = { + tr : { tr:true, th:true, td:true }, + th : { th:true }, + td : { thead:true, th:true, td:true }, + body : { head:true, link:true, script:true }, + li : { li:true }, + p : { p:true }, + h1 : { p:true }, + h2 : { p:true }, + h3 : { p:true }, + h4 : { p:true }, + h5 : { p:true }, + h6 : { p:true }, + select : formTags, + input : formTags, + output : formTags, + button : formTags, + datalist: formTags, + textarea: formTags, + option : { option:true }, + optgroup: { optgroup:true } +}; - // Methods guaranteed to produce a unique set when starting from a unique set - guaranteedUnique = { - children: true, - contents: true, - next: true, - prev: true - }; +var voidElements = { + __proto__: null, + area: true, + base: true, + basefont: true, + br: true, + col: true, + command: true, + embed: true, + frame: true, + hr: true, + img: true, + input: true, + isindex: true, + keygen: true, + link: true, + meta: true, + param: true, + source: true, + track: true, + wbr: true, -jQuery.fn.extend( { - has: function( target ) { - var targets = jQuery( target, this ), - l = targets.length; + //common self closing svg elements + path: true, + circle: true, + ellipse: true, + line: true, + rect: true, + use: true, + stop: true, + polyline: true, + polygon: true +}; - return this.filter( function() { - var i = 0; - for ( ; i < l; i++ ) { - if ( jQuery.contains( this, targets[ i ] ) ) { - return true; - } - } - } ); - }, +var re_nameEnd = /\s|\//; - closest: function( selectors, context ) { - var cur, - i = 0, - l = this.length, - matched = [], - targets = typeof selectors !== "string" && jQuery( selectors ); +function Parser(cbs, options){ + this._options = options || {}; + this._cbs = cbs || {}; - // Positional selectors never match, since there's no _selection_ context - if ( !rneedsContext.test( selectors ) ) { - for ( ; i < l; i++ ) { - for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { + this._tagname = ""; + this._attribname = ""; + this._attribvalue = ""; + this._attribs = null; + this._stack = []; - // Always skip document fragments - if ( cur.nodeType < 11 && ( targets ? - targets.index( cur ) > -1 : + this.startIndex = 0; + this.endIndex = null; - // Don't pass non-elements to Sizzle - cur.nodeType === 1 && - jQuery.find.matchesSelector( cur, selectors ) ) ) { + this._lowerCaseTagNames = "lowerCaseTags" in this._options ? + !!this._options.lowerCaseTags : + !this._options.xmlMode; + this._lowerCaseAttributeNames = "lowerCaseAttributeNames" in this._options ? + !!this._options.lowerCaseAttributeNames : + !this._options.xmlMode; - matched.push( cur ); - break; - } - } - } - } + if(this._options.Tokenizer) { + Tokenizer = this._options.Tokenizer; + } + this._tokenizer = new Tokenizer(this._options, this); - return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); - }, + if(this._cbs.onparserinit) this._cbs.onparserinit(this); +} - // Determine the position of an element within the set - index: function( elem ) { +__webpack_require__(1)(Parser, __webpack_require__(106).EventEmitter); - // No argument, return index in parent - if ( !elem ) { - return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; +Parser.prototype._updatePosition = function(initialOffset){ + if(this.endIndex === null){ + if(this._tokenizer._sectionStart <= initialOffset){ + this.startIndex = 0; + } else { + this.startIndex = this._tokenizer._sectionStart - initialOffset; } + } + else this.startIndex = this.endIndex + 1; + this.endIndex = this._tokenizer.getAbsoluteIndex(); +}; - // Index in selector - if ( typeof elem === "string" ) { - return indexOf.call( jQuery( elem ), this[ 0 ] ); - } +//Tokenizer event handlers +Parser.prototype.ontext = function(data){ + this._updatePosition(1); + this.endIndex--; - // Locate the position of the desired element - return indexOf.call( this, + if(this._cbs.ontext) this._cbs.ontext(data); +}; - // If it receives a jQuery object, the first element is used - elem.jquery ? elem[ 0 ] : elem - ); - }, +Parser.prototype.onopentagname = function(name){ + if(this._lowerCaseTagNames){ + name = name.toLowerCase(); + } - add: function( selector, context ) { - return this.pushStack( - jQuery.uniqueSort( - jQuery.merge( this.get(), jQuery( selector, context ) ) - ) - ); - }, + this._tagname = name; - addBack: function( selector ) { - return this.add( selector == null ? - this.prevObject : this.prevObject.filter( selector ) + if(!this._options.xmlMode && name in openImpliesClose) { + for( + var el; + (el = this._stack[this._stack.length - 1]) in openImpliesClose[name]; + this.onclosetag(el) ); } -} ); -function sibling( cur, dir ) { - while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} - return cur; -} + if(this._options.xmlMode || !(name in voidElements)){ + this._stack.push(name); + } -jQuery.each( { - parent: function( elem ) { - var parent = elem.parentNode; - return parent && parent.nodeType !== 11 ? parent : null; - }, - parents: function( elem ) { - return dir( elem, "parentNode" ); - }, - parentsUntil: function( elem, i, until ) { - return dir( elem, "parentNode", until ); - }, - next: function( elem ) { - return sibling( elem, "nextSibling" ); - }, - prev: function( elem ) { - return sibling( elem, "previousSibling" ); - }, - nextAll: function( elem ) { - return dir( elem, "nextSibling" ); - }, - prevAll: function( elem ) { - return dir( elem, "previousSibling" ); - }, - nextUntil: function( elem, i, until ) { - return dir( elem, "nextSibling", until ); - }, - prevUntil: function( elem, i, until ) { - return dir( elem, "previousSibling", until ); - }, - siblings: function( elem ) { - return siblings( ( elem.parentNode || {} ).firstChild, elem ); - }, - children: function( elem ) { - return siblings( elem.firstChild ); - }, - contents: function( elem ) { - if ( nodeName( elem, "iframe" ) ) { - return elem.contentDocument; - } + if(this._cbs.onopentagname) this._cbs.onopentagname(name); + if(this._cbs.onopentag) this._attribs = {}; +}; - // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only - // Treat the template element as a regular one in browsers that - // don't support it. - if ( nodeName( elem, "template" ) ) { - elem = elem.content || elem; - } +Parser.prototype.onopentagend = function(){ + this._updatePosition(1); - return jQuery.merge( [], elem.childNodes ); + if(this._attribs){ + if(this._cbs.onopentag) this._cbs.onopentag(this._tagname, this._attribs); + this._attribs = null; } -}, function( name, fn ) { - jQuery.fn[ name ] = function( until, selector ) { - var matched = jQuery.map( this, fn, until ); - if ( name.slice( -5 ) !== "Until" ) { - selector = until; - } + if(!this._options.xmlMode && this._cbs.onclosetag && this._tagname in voidElements){ + this._cbs.onclosetag(this._tagname); + } - if ( selector && typeof selector === "string" ) { - matched = jQuery.filter( selector, matched ); - } + this._tagname = ""; +}; - if ( this.length > 1 ) { +Parser.prototype.onclosetag = function(name){ + this._updatePosition(1); - // Remove duplicates - if ( !guaranteedUnique[ name ] ) { - jQuery.uniqueSort( matched ); - } + if(this._lowerCaseTagNames){ + name = name.toLowerCase(); + } - // Reverse order for parents* and prev-derivatives - if ( rparentsprev.test( name ) ) { - matched.reverse(); + if(this._stack.length && (!(name in voidElements) || this._options.xmlMode)){ + var pos = this._stack.lastIndexOf(name); + if(pos !== -1){ + if(this._cbs.onclosetag){ + pos = this._stack.length - pos; + while(pos--) this._cbs.onclosetag(this._stack.pop()); } + else this._stack.length = pos; + } else if(name === "p" && !this._options.xmlMode){ + this.onopentagname(name); + this._closeCurrentTag(); } + } else if(!this._options.xmlMode && (name === "br" || name === "p")){ + this.onopentagname(name); + this._closeCurrentTag(); + } +}; - return this.pushStack( matched ); - }; -} ); -var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g ); +Parser.prototype.onselfclosingtag = function(){ + if(this._options.xmlMode || this._options.recognizeSelfClosing){ + this._closeCurrentTag(); + } else { + this.onopentagend(); + } +}; +Parser.prototype._closeCurrentTag = function(){ + var name = this._tagname; + this.onopentagend(); -// Convert String-formatted options into Object-formatted ones -function createOptions( options ) { - var object = {}; - jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) { - object[ flag ] = true; - } ); - return object; -} + //self-closing tags will be on the top of the stack + //(cheaper check than in onclosetag) + if(this._stack[this._stack.length - 1] === name){ + if(this._cbs.onclosetag){ + this._cbs.onclosetag(name); + } + this._stack.pop(); + } +}; -/* - * Create a callback list using the following parameters: - * - * options: an optional list of space-separated options that will change how - * the callback list behaves or a more traditional option object - * - * By default a callback list will act like an event callback list and can be - * "fired" multiple times. - * - * Possible options: - * - * once: will ensure the callback list can only be fired once (like a Deferred) - * - * memory: will keep track of previous values and will call any callback added - * after the list has been fired right away with the latest "memorized" - * values (like a Deferred) - * - * unique: will ensure a callback can only be added once (no duplicate in the list) - * - * stopOnFalse: interrupt callings when a callback returns false - * - */ -jQuery.Callbacks = function( options ) { +Parser.prototype.onattribname = function(name){ + if(this._lowerCaseAttributeNames){ + name = name.toLowerCase(); + } + this._attribname = name; +}; - // Convert options from String-formatted to Object-formatted if needed - // (we check in cache first) - options = typeof options === "string" ? - createOptions( options ) : - jQuery.extend( {}, options ); +Parser.prototype.onattribdata = function(value){ + this._attribvalue += value; +}; - var // Flag to know if list is currently firing - firing, +Parser.prototype.onattribend = function(){ + if(this._cbs.onattribute) this._cbs.onattribute(this._attribname, this._attribvalue); + if( + this._attribs && + !Object.prototype.hasOwnProperty.call(this._attribs, this._attribname) + ){ + this._attribs[this._attribname] = this._attribvalue; + } + this._attribname = ""; + this._attribvalue = ""; +}; - // Last fire value for non-forgettable lists - memory, +Parser.prototype._getInstructionName = function(value){ + var idx = value.search(re_nameEnd), + name = idx < 0 ? value : value.substr(0, idx); - // Flag to know if list was already fired - fired, + if(this._lowerCaseTagNames){ + name = name.toLowerCase(); + } - // Flag to prevent firing - locked, + return name; +}; - // Actual callback list - list = [], +Parser.prototype.ondeclaration = function(value){ + if(this._cbs.onprocessinginstruction){ + var name = this._getInstructionName(value); + this._cbs.onprocessinginstruction("!" + name, "!" + value); + } +}; - // Queue of execution data for repeatable lists - queue = [], +Parser.prototype.onprocessinginstruction = function(value){ + if(this._cbs.onprocessinginstruction){ + var name = this._getInstructionName(value); + this._cbs.onprocessinginstruction("?" + name, "?" + value); + } +}; - // Index of currently firing callback (modified by add/remove as needed) - firingIndex = -1, +Parser.prototype.oncomment = function(value){ + this._updatePosition(4); - // Fire callbacks - fire = function() { + if(this._cbs.oncomment) this._cbs.oncomment(value); + if(this._cbs.oncommentend) this._cbs.oncommentend(); +}; - // Enforce single-firing - locked = locked || options.once; +Parser.prototype.oncdata = function(value){ + this._updatePosition(1); - // Execute callbacks for all pending executions, - // respecting firingIndex overrides and runtime changes - fired = firing = true; - for ( ; queue.length; firingIndex = -1 ) { - memory = queue.shift(); - while ( ++firingIndex < list.length ) { + if(this._options.xmlMode || this._options.recognizeCDATA){ + if(this._cbs.oncdatastart) this._cbs.oncdatastart(); + if(this._cbs.ontext) this._cbs.ontext(value); + if(this._cbs.oncdataend) this._cbs.oncdataend(); + } else { + this.oncomment("[CDATA[" + value + "]]"); + } +}; - // Run callback and check for early termination - if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && - options.stopOnFalse ) { +Parser.prototype.onerror = function(err){ + if(this._cbs.onerror) this._cbs.onerror(err); +}; - // Jump to end and forget the data so .add doesn't re-fire - firingIndex = list.length; - memory = false; - } - } - } +Parser.prototype.onend = function(){ + if(this._cbs.onclosetag){ + for( + var i = this._stack.length; + i > 0; + this._cbs.onclosetag(this._stack[--i]) + ); + } + if(this._cbs.onend) this._cbs.onend(); +}; - // Forget the data if we're done with it - if ( !options.memory ) { - memory = false; - } - firing = false; +//Resets the parser to a blank state, ready to parse a new HTML document +Parser.prototype.reset = function(){ + if(this._cbs.onreset) this._cbs.onreset(); + this._tokenizer.reset(); - // Clean up if we're done firing for good - if ( locked ) { + this._tagname = ""; + this._attribname = ""; + this._attribs = null; + this._stack = []; - // Keep an empty list if we have data for future add calls - if ( memory ) { - list = []; + if(this._cbs.onparserinit) this._cbs.onparserinit(this); +}; - // Otherwise, this object is spent - } else { - list = ""; - } - } - }, +//Parses a complete HTML document and pushes it to the handler +Parser.prototype.parseComplete = function(data){ + this.reset(); + this.end(data); +}; - // Actual Callbacks object - self = { +Parser.prototype.write = function(chunk){ + this._tokenizer.write(chunk); +}; - // Add a callback or a collection of callbacks to the list - add: function() { - if ( list ) { +Parser.prototype.end = function(chunk){ + this._tokenizer.end(chunk); +}; - // If we have memory from a past run, we should fire after adding - if ( memory && !firing ) { - firingIndex = list.length - 1; - queue.push( memory ); - } +Parser.prototype.pause = function(){ + this._tokenizer.pause(); +}; - ( function add( args ) { - jQuery.each( args, function( _, arg ) { - if ( jQuery.isFunction( arg ) ) { - if ( !options.unique || !self.has( arg ) ) { - list.push( arg ); - } - } else if ( arg && arg.length && jQuery.type( arg ) !== "string" ) { +Parser.prototype.resume = function(){ + this._tokenizer.resume(); +}; - // Inspect recursively - add( arg ); - } - } ); - } )( arguments ); +//alias for backwards compat +Parser.prototype.parseChunk = Parser.prototype.write; +Parser.prototype.done = Parser.prototype.end; - if ( memory && !firing ) { - fire(); - } - } - return this; - }, +module.exports = Parser; - // Remove a callback from the list - remove: function() { - jQuery.each( arguments, function( _, arg ) { - var index; - while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { - list.splice( index, 1 ); - // Handle firing indexes - if ( index <= firingIndex ) { - firingIndex--; - } - } - } ); - return this; - }, +/***/ }), +/* 281 */ +/***/ (function(module, exports, __webpack_require__) { - // Check if a given callback is in the list. - // If no argument is given, return whether or not list has callbacks attached. - has: function( fn ) { - return fn ? - jQuery.inArray( fn, list ) > -1 : - list.length > 0; - }, +module.exports = Tokenizer; - // Remove all callbacks from the list - empty: function() { - if ( list ) { - list = []; - } - return this; - }, +var decodeCodePoint = __webpack_require__(282), + entityMap = __webpack_require__(167), + legacyMap = __webpack_require__(283), + xmlMap = __webpack_require__(168), - // Disable .fire and .add - // Abort any current/pending executions - // Clear all callbacks and values - disable: function() { - locked = queue = []; - list = memory = ""; - return this; - }, - disabled: function() { - return !list; - }, + i = 0, - // Disable .fire - // Also disable .add unless we have memory (since it would have no effect) - // Abort any pending executions - lock: function() { - locked = queue = []; - if ( !memory && !firing ) { - list = memory = ""; - } - return this; - }, - locked: function() { - return !!locked; - }, + TEXT = i++, + BEFORE_TAG_NAME = i++, //after < + IN_TAG_NAME = i++, + IN_SELF_CLOSING_TAG = i++, + BEFORE_CLOSING_TAG_NAME = i++, + IN_CLOSING_TAG_NAME = i++, + AFTER_CLOSING_TAG_NAME = i++, - // Call all callbacks with the given context and arguments - fireWith: function( context, args ) { - if ( !locked ) { - args = args || []; - args = [ context, args.slice ? args.slice() : args ]; - queue.push( args ); - if ( !firing ) { - fire(); - } - } - return this; - }, + //attributes + BEFORE_ATTRIBUTE_NAME = i++, + IN_ATTRIBUTE_NAME = i++, + AFTER_ATTRIBUTE_NAME = i++, + BEFORE_ATTRIBUTE_VALUE = i++, + IN_ATTRIBUTE_VALUE_DQ = i++, // " + IN_ATTRIBUTE_VALUE_SQ = i++, // ' + IN_ATTRIBUTE_VALUE_NQ = i++, - // Call all the callbacks with the given arguments - fire: function() { - self.fireWith( this, arguments ); - return this; - }, + //declarations + BEFORE_DECLARATION = i++, // ! + IN_DECLARATION = i++, - // To know if the callbacks have already been called at least once - fired: function() { - return !!fired; - } - }; + //processing instructions + IN_PROCESSING_INSTRUCTION = i++, // ? - return self; -}; + //comments + BEFORE_COMMENT = i++, + IN_COMMENT = i++, + AFTER_COMMENT_1 = i++, + AFTER_COMMENT_2 = i++, + //cdata + BEFORE_CDATA_1 = i++, // [ + BEFORE_CDATA_2 = i++, // C + BEFORE_CDATA_3 = i++, // D + BEFORE_CDATA_4 = i++, // A + BEFORE_CDATA_5 = i++, // T + BEFORE_CDATA_6 = i++, // A + IN_CDATA = i++, // [ + AFTER_CDATA_1 = i++, // ] + AFTER_CDATA_2 = i++, // ] -function Identity( v ) { - return v; -} -function Thrower( ex ) { - throw ex; -} + //special tags + BEFORE_SPECIAL = i++, //S + BEFORE_SPECIAL_END = i++, //S -function adoptValue( value, resolve, reject, noValue ) { - var method; + BEFORE_SCRIPT_1 = i++, //C + BEFORE_SCRIPT_2 = i++, //R + BEFORE_SCRIPT_3 = i++, //I + BEFORE_SCRIPT_4 = i++, //P + BEFORE_SCRIPT_5 = i++, //T + AFTER_SCRIPT_1 = i++, //C + AFTER_SCRIPT_2 = i++, //R + AFTER_SCRIPT_3 = i++, //I + AFTER_SCRIPT_4 = i++, //P + AFTER_SCRIPT_5 = i++, //T - try { + BEFORE_STYLE_1 = i++, //T + BEFORE_STYLE_2 = i++, //Y + BEFORE_STYLE_3 = i++, //L + BEFORE_STYLE_4 = i++, //E + AFTER_STYLE_1 = i++, //T + AFTER_STYLE_2 = i++, //Y + AFTER_STYLE_3 = i++, //L + AFTER_STYLE_4 = i++, //E - // Check for promise aspect first to privilege synchronous behavior - if ( value && jQuery.isFunction( ( method = value.promise ) ) ) { - method.call( value ).done( resolve ).fail( reject ); + BEFORE_ENTITY = i++, //& + BEFORE_NUMERIC_ENTITY = i++, //# + IN_NAMED_ENTITY = i++, + IN_NUMERIC_ENTITY = i++, + IN_HEX_ENTITY = i++, //X - // Other thenables - } else if ( value && jQuery.isFunction( ( method = value.then ) ) ) { - method.call( value, resolve, reject ); + j = 0, - // Other non-thenables - } else { + SPECIAL_NONE = j++, + SPECIAL_SCRIPT = j++, + SPECIAL_STYLE = j++; - // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer: - // * false: [ value ].slice( 0 ) => resolve( value ) - // * true: [ value ].slice( 1 ) => resolve() - resolve.apply( undefined, [ value ].slice( noValue ) ); - } +function whitespace(c){ + return c === " " || c === "\n" || c === "\t" || c === "\f" || c === "\r"; +} - // For Promises/A+, convert exceptions into rejections - // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in - // Deferred#then to conditionally suppress rejection. - } catch ( value ) { +function characterState(char, SUCCESS){ + return function(c){ + if(c === char) this._state = SUCCESS; + }; +} - // Support: Android 4.0 only - // Strict mode functions invoked without .call/.apply get global-object context - reject.apply( undefined, [ value ] ); +function ifElseState(upper, SUCCESS, FAILURE){ + var lower = upper.toLowerCase(); + + if(upper === lower){ + return function(c){ + if(c === lower){ + this._state = SUCCESS; + } else { + this._state = FAILURE; + this._index--; + } + }; + } else { + return function(c){ + if(c === lower || c === upper){ + this._state = SUCCESS; + } else { + this._state = FAILURE; + this._index--; + } + }; } } -jQuery.extend( { +function consumeSpecialNameChar(upper, NEXT_STATE){ + var lower = upper.toLowerCase(); - Deferred: function( func ) { - var tuples = [ + return function(c){ + if(c === lower || c === upper){ + this._state = NEXT_STATE; + } else { + this._state = IN_TAG_NAME; + this._index--; //consume the token again + } + }; +} - // action, add listener, callbacks, - // ... .then handlers, argument index, [final state] - [ "notify", "progress", jQuery.Callbacks( "memory" ), - jQuery.Callbacks( "memory" ), 2 ], - [ "resolve", "done", jQuery.Callbacks( "once memory" ), - jQuery.Callbacks( "once memory" ), 0, "resolved" ], - [ "reject", "fail", jQuery.Callbacks( "once memory" ), - jQuery.Callbacks( "once memory" ), 1, "rejected" ] - ], - state = "pending", - promise = { - state: function() { - return state; - }, - always: function() { - deferred.done( arguments ).fail( arguments ); - return this; - }, - "catch": function( fn ) { - return promise.then( null, fn ); - }, +function Tokenizer(options, cbs){ + this._state = TEXT; + this._buffer = ""; + this._sectionStart = 0; + this._index = 0; + this._bufferOffset = 0; //chars removed from _buffer + this._baseState = TEXT; + this._special = SPECIAL_NONE; + this._cbs = cbs; + this._running = true; + this._ended = false; + this._xmlMode = !!(options && options.xmlMode); + this._decodeEntities = !!(options && options.decodeEntities); +} - // Keep pipe for back-compat - pipe: function( /* fnDone, fnFail, fnProgress */ ) { - var fns = arguments; +Tokenizer.prototype._stateText = function(c){ + if(c === "<"){ + if(this._index > this._sectionStart){ + this._cbs.ontext(this._getSection()); + } + this._state = BEFORE_TAG_NAME; + this._sectionStart = this._index; + } else if(this._decodeEntities && this._special === SPECIAL_NONE && c === "&"){ + if(this._index > this._sectionStart){ + this._cbs.ontext(this._getSection()); + } + this._baseState = TEXT; + this._state = BEFORE_ENTITY; + this._sectionStart = this._index; + } +}; - return jQuery.Deferred( function( newDefer ) { - jQuery.each( tuples, function( i, tuple ) { +Tokenizer.prototype._stateBeforeTagName = function(c){ + if(c === "/"){ + this._state = BEFORE_CLOSING_TAG_NAME; + } else if(c === "<"){ + this._cbs.ontext(this._getSection()); + this._sectionStart = this._index; + } else if(c === ">" || this._special !== SPECIAL_NONE || whitespace(c)) { + this._state = TEXT; + } else if(c === "!"){ + this._state = BEFORE_DECLARATION; + this._sectionStart = this._index + 1; + } else if(c === "?"){ + this._state = IN_PROCESSING_INSTRUCTION; + this._sectionStart = this._index + 1; + } else { + this._state = (!this._xmlMode && (c === "s" || c === "S")) ? + BEFORE_SPECIAL : IN_TAG_NAME; + this._sectionStart = this._index; + } +}; - // Map tuples (progress, done, fail) to arguments (done, fail, progress) - var fn = jQuery.isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; +Tokenizer.prototype._stateInTagName = function(c){ + if(c === "/" || c === ">" || whitespace(c)){ + this._emitToken("onopentagname"); + this._state = BEFORE_ATTRIBUTE_NAME; + this._index--; + } +}; - // deferred.progress(function() { bind to newDefer or newDefer.notify }) - // deferred.done(function() { bind to newDefer or newDefer.resolve }) - // deferred.fail(function() { bind to newDefer or newDefer.reject }) - deferred[ tuple[ 1 ] ]( function() { - var returned = fn && fn.apply( this, arguments ); - if ( returned && jQuery.isFunction( returned.promise ) ) { - returned.promise() - .progress( newDefer.notify ) - .done( newDefer.resolve ) - .fail( newDefer.reject ); - } else { - newDefer[ tuple[ 0 ] + "With" ]( - this, - fn ? [ returned ] : arguments - ); - } - } ); - } ); - fns = null; - } ).promise(); - }, - then: function( onFulfilled, onRejected, onProgress ) { - var maxDepth = 0; - function resolve( depth, deferred, handler, special ) { - return function() { - var that = this, - args = arguments, - mightThrow = function() { - var returned, then; +Tokenizer.prototype._stateBeforeCloseingTagName = function(c){ + if(whitespace(c)); + else if(c === ">"){ + this._state = TEXT; + } else if(this._special !== SPECIAL_NONE){ + if(c === "s" || c === "S"){ + this._state = BEFORE_SPECIAL_END; + } else { + this._state = TEXT; + this._index--; + } + } else { + this._state = IN_CLOSING_TAG_NAME; + this._sectionStart = this._index; + } +}; - // Support: Promises/A+ section 2.3.3.3.3 - // https://promisesaplus.com/#point-59 - // Ignore double-resolution attempts - if ( depth < maxDepth ) { - return; - } +Tokenizer.prototype._stateInCloseingTagName = function(c){ + if(c === ">" || whitespace(c)){ + this._emitToken("onclosetag"); + this._state = AFTER_CLOSING_TAG_NAME; + this._index--; + } +}; - returned = handler.apply( that, args ); +Tokenizer.prototype._stateAfterCloseingTagName = function(c){ + //skip everything until ">" + if(c === ">"){ + this._state = TEXT; + this._sectionStart = this._index + 1; + } +}; - // Support: Promises/A+ section 2.3.1 - // https://promisesaplus.com/#point-48 - if ( returned === deferred.promise() ) { - throw new TypeError( "Thenable self-resolution" ); - } +Tokenizer.prototype._stateBeforeAttributeName = function(c){ + if(c === ">"){ + this._cbs.onopentagend(); + this._state = TEXT; + this._sectionStart = this._index + 1; + } else if(c === "/"){ + this._state = IN_SELF_CLOSING_TAG; + } else if(!whitespace(c)){ + this._state = IN_ATTRIBUTE_NAME; + this._sectionStart = this._index; + } +}; - // Support: Promises/A+ sections 2.3.3.1, 3.5 - // https://promisesaplus.com/#point-54 - // https://promisesaplus.com/#point-75 - // Retrieve `then` only once - then = returned && - - // Support: Promises/A+ section 2.3.4 - // https://promisesaplus.com/#point-64 - // Only check objects and functions for thenability - ( typeof returned === "object" || - typeof returned === "function" ) && - returned.then; +Tokenizer.prototype._stateInSelfClosingTag = function(c){ + if(c === ">"){ + this._cbs.onselfclosingtag(); + this._state = TEXT; + this._sectionStart = this._index + 1; + } else if(!whitespace(c)){ + this._state = BEFORE_ATTRIBUTE_NAME; + this._index--; + } +}; - // Handle a returned thenable - if ( jQuery.isFunction( then ) ) { +Tokenizer.prototype._stateInAttributeName = function(c){ + if(c === "=" || c === "/" || c === ">" || whitespace(c)){ + this._cbs.onattribname(this._getSection()); + this._sectionStart = -1; + this._state = AFTER_ATTRIBUTE_NAME; + this._index--; + } +}; - // Special processors (notify) just wait for resolution - if ( special ) { - then.call( - returned, - resolve( maxDepth, deferred, Identity, special ), - resolve( maxDepth, deferred, Thrower, special ) - ); +Tokenizer.prototype._stateAfterAttributeName = function(c){ + if(c === "="){ + this._state = BEFORE_ATTRIBUTE_VALUE; + } else if(c === "/" || c === ">"){ + this._cbs.onattribend(); + this._state = BEFORE_ATTRIBUTE_NAME; + this._index--; + } else if(!whitespace(c)){ + this._cbs.onattribend(); + this._state = IN_ATTRIBUTE_NAME; + this._sectionStart = this._index; + } +}; - // Normal processors (resolve) also hook into progress - } else { +Tokenizer.prototype._stateBeforeAttributeValue = function(c){ + if(c === "\""){ + this._state = IN_ATTRIBUTE_VALUE_DQ; + this._sectionStart = this._index + 1; + } else if(c === "'"){ + this._state = IN_ATTRIBUTE_VALUE_SQ; + this._sectionStart = this._index + 1; + } else if(!whitespace(c)){ + this._state = IN_ATTRIBUTE_VALUE_NQ; + this._sectionStart = this._index; + this._index--; //reconsume token + } +}; - // ...and disregard older resolution values - maxDepth++; +Tokenizer.prototype._stateInAttributeValueDoubleQuotes = function(c){ + if(c === "\""){ + this._emitToken("onattribdata"); + this._cbs.onattribend(); + this._state = BEFORE_ATTRIBUTE_NAME; + } else if(this._decodeEntities && c === "&"){ + this._emitToken("onattribdata"); + this._baseState = this._state; + this._state = BEFORE_ENTITY; + this._sectionStart = this._index; + } +}; - then.call( - returned, - resolve( maxDepth, deferred, Identity, special ), - resolve( maxDepth, deferred, Thrower, special ), - resolve( maxDepth, deferred, Identity, - deferred.notifyWith ) - ); - } +Tokenizer.prototype._stateInAttributeValueSingleQuotes = function(c){ + if(c === "'"){ + this._emitToken("onattribdata"); + this._cbs.onattribend(); + this._state = BEFORE_ATTRIBUTE_NAME; + } else if(this._decodeEntities && c === "&"){ + this._emitToken("onattribdata"); + this._baseState = this._state; + this._state = BEFORE_ENTITY; + this._sectionStart = this._index; + } +}; - // Handle all other returned values - } else { +Tokenizer.prototype._stateInAttributeValueNoQuotes = function(c){ + if(whitespace(c) || c === ">"){ + this._emitToken("onattribdata"); + this._cbs.onattribend(); + this._state = BEFORE_ATTRIBUTE_NAME; + this._index--; + } else if(this._decodeEntities && c === "&"){ + this._emitToken("onattribdata"); + this._baseState = this._state; + this._state = BEFORE_ENTITY; + this._sectionStart = this._index; + } +}; - // Only substitute handlers pass on context - // and multiple values (non-spec behavior) - if ( handler !== Identity ) { - that = undefined; - args = [ returned ]; - } +Tokenizer.prototype._stateBeforeDeclaration = function(c){ + this._state = c === "[" ? BEFORE_CDATA_1 : + c === "-" ? BEFORE_COMMENT : + IN_DECLARATION; +}; - // Process the value(s) - // Default process is resolve - ( special || deferred.resolveWith )( that, args ); - } - }, +Tokenizer.prototype._stateInDeclaration = function(c){ + if(c === ">"){ + this._cbs.ondeclaration(this._getSection()); + this._state = TEXT; + this._sectionStart = this._index + 1; + } +}; - // Only normal processors (resolve) catch and reject exceptions - process = special ? - mightThrow : - function() { - try { - mightThrow(); - } catch ( e ) { +Tokenizer.prototype._stateInProcessingInstruction = function(c){ + if(c === ">"){ + this._cbs.onprocessinginstruction(this._getSection()); + this._state = TEXT; + this._sectionStart = this._index + 1; + } +}; - if ( jQuery.Deferred.exceptionHook ) { - jQuery.Deferred.exceptionHook( e, - process.stackTrace ); - } +Tokenizer.prototype._stateBeforeComment = function(c){ + if(c === "-"){ + this._state = IN_COMMENT; + this._sectionStart = this._index + 1; + } else { + this._state = IN_DECLARATION; + } +}; - // Support: Promises/A+ section 2.3.3.3.4.1 - // https://promisesaplus.com/#point-61 - // Ignore post-resolution exceptions - if ( depth + 1 >= maxDepth ) { +Tokenizer.prototype._stateInComment = function(c){ + if(c === "-") this._state = AFTER_COMMENT_1; +}; - // Only substitute handlers pass on context - // and multiple values (non-spec behavior) - if ( handler !== Thrower ) { - that = undefined; - args = [ e ]; - } +Tokenizer.prototype._stateAfterComment1 = function(c){ + if(c === "-"){ + this._state = AFTER_COMMENT_2; + } else { + this._state = IN_COMMENT; + } +}; - deferred.rejectWith( that, args ); - } - } - }; +Tokenizer.prototype._stateAfterComment2 = function(c){ + if(c === ">"){ + //remove 2 trailing chars + this._cbs.oncomment(this._buffer.substring(this._sectionStart, this._index - 2)); + this._state = TEXT; + this._sectionStart = this._index + 1; + } else if(c !== "-"){ + this._state = IN_COMMENT; + } + // else: stay in AFTER_COMMENT_2 (`--->`) +}; - // Support: Promises/A+ section 2.3.3.3.1 - // https://promisesaplus.com/#point-57 - // Re-resolve promises immediately to dodge false rejection from - // subsequent errors - if ( depth ) { - process(); - } else { +Tokenizer.prototype._stateBeforeCdata1 = ifElseState("C", BEFORE_CDATA_2, IN_DECLARATION); +Tokenizer.prototype._stateBeforeCdata2 = ifElseState("D", BEFORE_CDATA_3, IN_DECLARATION); +Tokenizer.prototype._stateBeforeCdata3 = ifElseState("A", BEFORE_CDATA_4, IN_DECLARATION); +Tokenizer.prototype._stateBeforeCdata4 = ifElseState("T", BEFORE_CDATA_5, IN_DECLARATION); +Tokenizer.prototype._stateBeforeCdata5 = ifElseState("A", BEFORE_CDATA_6, IN_DECLARATION); - // Call an optional hook to record the stack, in case of exception - // since it's otherwise lost when execution goes async - if ( jQuery.Deferred.getStackHook ) { - process.stackTrace = jQuery.Deferred.getStackHook(); - } - window.setTimeout( process ); - } - }; - } +Tokenizer.prototype._stateBeforeCdata6 = function(c){ + if(c === "["){ + this._state = IN_CDATA; + this._sectionStart = this._index + 1; + } else { + this._state = IN_DECLARATION; + this._index--; + } +}; - return jQuery.Deferred( function( newDefer ) { +Tokenizer.prototype._stateInCdata = function(c){ + if(c === "]") this._state = AFTER_CDATA_1; +}; - // progress_handlers.add( ... ) - tuples[ 0 ][ 3 ].add( - resolve( - 0, - newDefer, - jQuery.isFunction( onProgress ) ? - onProgress : - Identity, - newDefer.notifyWith - ) - ); +Tokenizer.prototype._stateAfterCdata1 = characterState("]", AFTER_CDATA_2); - // fulfilled_handlers.add( ... ) - tuples[ 1 ][ 3 ].add( - resolve( - 0, - newDefer, - jQuery.isFunction( onFulfilled ) ? - onFulfilled : - Identity - ) - ); +Tokenizer.prototype._stateAfterCdata2 = function(c){ + if(c === ">"){ + //remove 2 trailing chars + this._cbs.oncdata(this._buffer.substring(this._sectionStart, this._index - 2)); + this._state = TEXT; + this._sectionStart = this._index + 1; + } else if(c !== "]") { + this._state = IN_CDATA; + } + //else: stay in AFTER_CDATA_2 (`]]]>`) +}; - // rejected_handlers.add( ... ) - tuples[ 2 ][ 3 ].add( - resolve( - 0, - newDefer, - jQuery.isFunction( onRejected ) ? - onRejected : - Thrower - ) - ); - } ).promise(); - }, +Tokenizer.prototype._stateBeforeSpecial = function(c){ + if(c === "c" || c === "C"){ + this._state = BEFORE_SCRIPT_1; + } else if(c === "t" || c === "T"){ + this._state = BEFORE_STYLE_1; + } else { + this._state = IN_TAG_NAME; + this._index--; //consume the token again + } +}; - // Get a promise for this deferred - // If obj is provided, the promise aspect is added to the object - promise: function( obj ) { - return obj != null ? jQuery.extend( obj, promise ) : promise; - } - }, - deferred = {}; +Tokenizer.prototype._stateBeforeSpecialEnd = function(c){ + if(this._special === SPECIAL_SCRIPT && (c === "c" || c === "C")){ + this._state = AFTER_SCRIPT_1; + } else if(this._special === SPECIAL_STYLE && (c === "t" || c === "T")){ + this._state = AFTER_STYLE_1; + } + else this._state = TEXT; +}; - // Add list-specific methods - jQuery.each( tuples, function( i, tuple ) { - var list = tuple[ 2 ], - stateString = tuple[ 5 ]; +Tokenizer.prototype._stateBeforeScript1 = consumeSpecialNameChar("R", BEFORE_SCRIPT_2); +Tokenizer.prototype._stateBeforeScript2 = consumeSpecialNameChar("I", BEFORE_SCRIPT_3); +Tokenizer.prototype._stateBeforeScript3 = consumeSpecialNameChar("P", BEFORE_SCRIPT_4); +Tokenizer.prototype._stateBeforeScript4 = consumeSpecialNameChar("T", BEFORE_SCRIPT_5); - // promise.progress = list.add - // promise.done = list.add - // promise.fail = list.add - promise[ tuple[ 1 ] ] = list.add; +Tokenizer.prototype._stateBeforeScript5 = function(c){ + if(c === "/" || c === ">" || whitespace(c)){ + this._special = SPECIAL_SCRIPT; + } + this._state = IN_TAG_NAME; + this._index--; //consume the token again +}; - // Handle state - if ( stateString ) { - list.add( - function() { +Tokenizer.prototype._stateAfterScript1 = ifElseState("R", AFTER_SCRIPT_2, TEXT); +Tokenizer.prototype._stateAfterScript2 = ifElseState("I", AFTER_SCRIPT_3, TEXT); +Tokenizer.prototype._stateAfterScript3 = ifElseState("P", AFTER_SCRIPT_4, TEXT); +Tokenizer.prototype._stateAfterScript4 = ifElseState("T", AFTER_SCRIPT_5, TEXT); - // state = "resolved" (i.e., fulfilled) - // state = "rejected" - state = stateString; - }, +Tokenizer.prototype._stateAfterScript5 = function(c){ + if(c === ">" || whitespace(c)){ + this._special = SPECIAL_NONE; + this._state = IN_CLOSING_TAG_NAME; + this._sectionStart = this._index - 6; + this._index--; //reconsume the token + } + else this._state = TEXT; +}; - // rejected_callbacks.disable - // fulfilled_callbacks.disable - tuples[ 3 - i ][ 2 ].disable, +Tokenizer.prototype._stateBeforeStyle1 = consumeSpecialNameChar("Y", BEFORE_STYLE_2); +Tokenizer.prototype._stateBeforeStyle2 = consumeSpecialNameChar("L", BEFORE_STYLE_3); +Tokenizer.prototype._stateBeforeStyle3 = consumeSpecialNameChar("E", BEFORE_STYLE_4); - // progress_callbacks.lock - tuples[ 0 ][ 2 ].lock - ); - } +Tokenizer.prototype._stateBeforeStyle4 = function(c){ + if(c === "/" || c === ">" || whitespace(c)){ + this._special = SPECIAL_STYLE; + } + this._state = IN_TAG_NAME; + this._index--; //consume the token again +}; - // progress_handlers.fire - // fulfilled_handlers.fire - // rejected_handlers.fire - list.add( tuple[ 3 ].fire ); +Tokenizer.prototype._stateAfterStyle1 = ifElseState("Y", AFTER_STYLE_2, TEXT); +Tokenizer.prototype._stateAfterStyle2 = ifElseState("L", AFTER_STYLE_3, TEXT); +Tokenizer.prototype._stateAfterStyle3 = ifElseState("E", AFTER_STYLE_4, TEXT); - // deferred.notify = function() { deferred.notifyWith(...) } - // deferred.resolve = function() { deferred.resolveWith(...) } - // deferred.reject = function() { deferred.rejectWith(...) } - deferred[ tuple[ 0 ] ] = function() { - deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments ); - return this; - }; +Tokenizer.prototype._stateAfterStyle4 = function(c){ + if(c === ">" || whitespace(c)){ + this._special = SPECIAL_NONE; + this._state = IN_CLOSING_TAG_NAME; + this._sectionStart = this._index - 5; + this._index--; //reconsume the token + } + else this._state = TEXT; +}; - // deferred.notifyWith = list.fireWith - // deferred.resolveWith = list.fireWith - // deferred.rejectWith = list.fireWith - deferred[ tuple[ 0 ] + "With" ] = list.fireWith; - } ); +Tokenizer.prototype._stateBeforeEntity = ifElseState("#", BEFORE_NUMERIC_ENTITY, IN_NAMED_ENTITY); +Tokenizer.prototype._stateBeforeNumericEntity = ifElseState("X", IN_HEX_ENTITY, IN_NUMERIC_ENTITY); - // Make the deferred a promise - promise.promise( deferred ); +//for entities terminated with a semicolon +Tokenizer.prototype._parseNamedEntityStrict = function(){ + //offset = 1 + if(this._sectionStart + 1 < this._index){ + var entity = this._buffer.substring(this._sectionStart + 1, this._index), + map = this._xmlMode ? xmlMap : entityMap; - // Call given func if any - if ( func ) { - func.call( deferred, deferred ); + if(map.hasOwnProperty(entity)){ + this._emitPartial(map[entity]); + this._sectionStart = this._index + 1; } + } +}; - // All done! - return deferred; - }, - - // Deferred helper - when: function( singleValue ) { - var - - // count of uncompleted subordinates - remaining = arguments.length, - - // count of unprocessed arguments - i = remaining, - - // subordinate fulfillment data - resolveContexts = Array( i ), - resolveValues = slice.call( arguments ), - - // the master Deferred - master = jQuery.Deferred(), - - // subordinate callback factory - updateFunc = function( i ) { - return function( value ) { - resolveContexts[ i ] = this; - resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; - if ( !( --remaining ) ) { - master.resolveWith( resolveContexts, resolveValues ); - } - }; - }; - // Single- and empty arguments are adopted like Promise.resolve - if ( remaining <= 1 ) { - adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject, - !remaining ); +//parses legacy entities (without trailing semicolon) +Tokenizer.prototype._parseLegacyEntity = function(){ + var start = this._sectionStart + 1, + limit = this._index - start; - // Use .then() to unwrap secondary thenables (cf. gh-3000) - if ( master.state() === "pending" || - jQuery.isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { + if(limit > 6) limit = 6; //the max length of legacy entities is 6 - return master.then(); - } - } + while(limit >= 2){ //the min length of legacy entities is 2 + var entity = this._buffer.substr(start, limit); - // Multiple arguments are aggregated like Promise.all array elements - while ( i-- ) { - adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); + if(legacyMap.hasOwnProperty(entity)){ + this._emitPartial(legacyMap[entity]); + this._sectionStart += limit + 1; + return; + } else { + limit--; } - - return master.promise(); } -} ); - - -// These usually indicate a programmer mistake during development, -// warn about them ASAP rather than swallowing them by default. -var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; +}; -jQuery.Deferred.exceptionHook = function( error, stack ) { +Tokenizer.prototype._stateInNamedEntity = function(c){ + if(c === ";"){ + this._parseNamedEntityStrict(); + if(this._sectionStart + 1 < this._index && !this._xmlMode){ + this._parseLegacyEntity(); + } + this._state = this._baseState; + } else if((c < "a" || c > "z") && (c < "A" || c > "Z") && (c < "0" || c > "9")){ + if(this._xmlMode); + else if(this._sectionStart + 1 === this._index); + else if(this._baseState !== TEXT){ + if(c !== "="){ + this._parseNamedEntityStrict(); + } + } else { + this._parseLegacyEntity(); + } - // Support: IE 8 - 9 only - // Console exists when dev tools are open, which can happen at any time - if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { - window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack ); + this._state = this._baseState; + this._index--; } }; +Tokenizer.prototype._decodeNumericEntity = function(offset, base){ + var sectionStart = this._sectionStart + offset; + if(sectionStart !== this._index){ + //parse entity + var entity = this._buffer.substring(sectionStart, this._index); + var parsed = parseInt(entity, base); + this._emitPartial(decodeCodePoint(parsed)); + this._sectionStart = this._index; + } else { + this._sectionStart--; + } -jQuery.readyException = function( error ) { - window.setTimeout( function() { - throw error; - } ); + this._state = this._baseState; }; +Tokenizer.prototype._stateInNumericEntity = function(c){ + if(c === ";"){ + this._decodeNumericEntity(2, 10); + this._sectionStart++; + } else if(c < "0" || c > "9"){ + if(!this._xmlMode){ + this._decodeNumericEntity(2, 10); + } else { + this._state = this._baseState; + } + this._index--; + } +}; +Tokenizer.prototype._stateInHexEntity = function(c){ + if(c === ";"){ + this._decodeNumericEntity(3, 16); + this._sectionStart++; + } else if((c < "a" || c > "f") && (c < "A" || c > "F") && (c < "0" || c > "9")){ + if(!this._xmlMode){ + this._decodeNumericEntity(3, 16); + } else { + this._state = this._baseState; + } + this._index--; + } +}; +Tokenizer.prototype._cleanup = function (){ + if(this._sectionStart < 0){ + this._buffer = ""; + this._bufferOffset += this._index; + this._index = 0; + } else if(this._running){ + if(this._state === TEXT){ + if(this._sectionStart !== this._index){ + this._cbs.ontext(this._buffer.substr(this._sectionStart)); + } + this._buffer = ""; + this._bufferOffset += this._index; + this._index = 0; + } else if(this._sectionStart === this._index){ + //the section just started + this._buffer = ""; + this._bufferOffset += this._index; + this._index = 0; + } else { + //remove everything unnecessary + this._buffer = this._buffer.substr(this._sectionStart); + this._index -= this._sectionStart; + this._bufferOffset += this._sectionStart; + } -// The deferred used on DOM ready -var readyList = jQuery.Deferred(); - -jQuery.fn.ready = function( fn ) { - - readyList - .then( fn ) - - // Wrap jQuery.readyException in a function so that the lookup - // happens at the time of error handling instead of callback - // registration. - .catch( function( error ) { - jQuery.readyException( error ); - } ); - - return this; + this._sectionStart = 0; + } }; -jQuery.extend( { +//TODO make events conditional +Tokenizer.prototype.write = function(chunk){ + if(this._ended) this._cbs.onerror(Error(".write() after done!")); - // Is the DOM ready to be used? Set to true once it occurs. - isReady: false, + this._buffer += chunk; + this._parse(); +}; - // A counter to track how many items to wait for before - // the ready event fires. See #6781 - readyWait: 1, +Tokenizer.prototype._parse = function(){ + while(this._index < this._buffer.length && this._running){ + var c = this._buffer.charAt(this._index); + if(this._state === TEXT) { + this._stateText(c); + } else if(this._state === BEFORE_TAG_NAME){ + this._stateBeforeTagName(c); + } else if(this._state === IN_TAG_NAME) { + this._stateInTagName(c); + } else if(this._state === BEFORE_CLOSING_TAG_NAME){ + this._stateBeforeCloseingTagName(c); + } else if(this._state === IN_CLOSING_TAG_NAME){ + this._stateInCloseingTagName(c); + } else if(this._state === AFTER_CLOSING_TAG_NAME){ + this._stateAfterCloseingTagName(c); + } else if(this._state === IN_SELF_CLOSING_TAG){ + this._stateInSelfClosingTag(c); + } - // Handle when the DOM is ready - ready: function( wait ) { + /* + * attributes + */ + else if(this._state === BEFORE_ATTRIBUTE_NAME){ + this._stateBeforeAttributeName(c); + } else if(this._state === IN_ATTRIBUTE_NAME){ + this._stateInAttributeName(c); + } else if(this._state === AFTER_ATTRIBUTE_NAME){ + this._stateAfterAttributeName(c); + } else if(this._state === BEFORE_ATTRIBUTE_VALUE){ + this._stateBeforeAttributeValue(c); + } else if(this._state === IN_ATTRIBUTE_VALUE_DQ){ + this._stateInAttributeValueDoubleQuotes(c); + } else if(this._state === IN_ATTRIBUTE_VALUE_SQ){ + this._stateInAttributeValueSingleQuotes(c); + } else if(this._state === IN_ATTRIBUTE_VALUE_NQ){ + this._stateInAttributeValueNoQuotes(c); + } - // Abort if there are pending holds or we're already ready - if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { - return; + /* + * declarations + */ + else if(this._state === BEFORE_DECLARATION){ + this._stateBeforeDeclaration(c); + } else if(this._state === IN_DECLARATION){ + this._stateInDeclaration(c); } - // Remember that the DOM is ready - jQuery.isReady = true; + /* + * processing instructions + */ + else if(this._state === IN_PROCESSING_INSTRUCTION){ + this._stateInProcessingInstruction(c); + } - // If a normal DOM Ready event fired, decrement, and wait if need be - if ( wait !== true && --jQuery.readyWait > 0 ) { - return; + /* + * comments + */ + else if(this._state === BEFORE_COMMENT){ + this._stateBeforeComment(c); + } else if(this._state === IN_COMMENT){ + this._stateInComment(c); + } else if(this._state === AFTER_COMMENT_1){ + this._stateAfterComment1(c); + } else if(this._state === AFTER_COMMENT_2){ + this._stateAfterComment2(c); } - // If there are functions bound, to execute - readyList.resolveWith( document, [ jQuery ] ); - } -} ); + /* + * cdata + */ + else if(this._state === BEFORE_CDATA_1){ + this._stateBeforeCdata1(c); + } else if(this._state === BEFORE_CDATA_2){ + this._stateBeforeCdata2(c); + } else if(this._state === BEFORE_CDATA_3){ + this._stateBeforeCdata3(c); + } else if(this._state === BEFORE_CDATA_4){ + this._stateBeforeCdata4(c); + } else if(this._state === BEFORE_CDATA_5){ + this._stateBeforeCdata5(c); + } else if(this._state === BEFORE_CDATA_6){ + this._stateBeforeCdata6(c); + } else if(this._state === IN_CDATA){ + this._stateInCdata(c); + } else if(this._state === AFTER_CDATA_1){ + this._stateAfterCdata1(c); + } else if(this._state === AFTER_CDATA_2){ + this._stateAfterCdata2(c); + } -jQuery.ready.then = readyList.then; + /* + * special tags + */ + else if(this._state === BEFORE_SPECIAL){ + this._stateBeforeSpecial(c); + } else if(this._state === BEFORE_SPECIAL_END){ + this._stateBeforeSpecialEnd(c); + } -// The ready event handler and self cleanup method -function completed() { - document.removeEventListener( "DOMContentLoaded", completed ); - window.removeEventListener( "load", completed ); - jQuery.ready(); -} + /* + * script + */ + else if(this._state === BEFORE_SCRIPT_1){ + this._stateBeforeScript1(c); + } else if(this._state === BEFORE_SCRIPT_2){ + this._stateBeforeScript2(c); + } else if(this._state === BEFORE_SCRIPT_3){ + this._stateBeforeScript3(c); + } else if(this._state === BEFORE_SCRIPT_4){ + this._stateBeforeScript4(c); + } else if(this._state === BEFORE_SCRIPT_5){ + this._stateBeforeScript5(c); + } -// Catch cases where $(document).ready() is called -// after the browser event has already occurred. -// Support: IE <=9 - 10 only -// Older IE sometimes signals "interactive" too soon -if ( document.readyState === "complete" || - ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { + else if(this._state === AFTER_SCRIPT_1){ + this._stateAfterScript1(c); + } else if(this._state === AFTER_SCRIPT_2){ + this._stateAfterScript2(c); + } else if(this._state === AFTER_SCRIPT_3){ + this._stateAfterScript3(c); + } else if(this._state === AFTER_SCRIPT_4){ + this._stateAfterScript4(c); + } else if(this._state === AFTER_SCRIPT_5){ + this._stateAfterScript5(c); + } - // Handle it asynchronously to allow scripts the opportunity to delay ready - window.setTimeout( jQuery.ready ); + /* + * style + */ + else if(this._state === BEFORE_STYLE_1){ + this._stateBeforeStyle1(c); + } else if(this._state === BEFORE_STYLE_2){ + this._stateBeforeStyle2(c); + } else if(this._state === BEFORE_STYLE_3){ + this._stateBeforeStyle3(c); + } else if(this._state === BEFORE_STYLE_4){ + this._stateBeforeStyle4(c); + } -} else { + else if(this._state === AFTER_STYLE_1){ + this._stateAfterStyle1(c); + } else if(this._state === AFTER_STYLE_2){ + this._stateAfterStyle2(c); + } else if(this._state === AFTER_STYLE_3){ + this._stateAfterStyle3(c); + } else if(this._state === AFTER_STYLE_4){ + this._stateAfterStyle4(c); + } - // Use the handy event callback - document.addEventListener( "DOMContentLoaded", completed ); + /* + * entities + */ + else if(this._state === BEFORE_ENTITY){ + this._stateBeforeEntity(c); + } else if(this._state === BEFORE_NUMERIC_ENTITY){ + this._stateBeforeNumericEntity(c); + } else if(this._state === IN_NAMED_ENTITY){ + this._stateInNamedEntity(c); + } else if(this._state === IN_NUMERIC_ENTITY){ + this._stateInNumericEntity(c); + } else if(this._state === IN_HEX_ENTITY){ + this._stateInHexEntity(c); + } - // A fallback to window.onload, that will always work - window.addEventListener( "load", completed ); -} + else { + this._cbs.onerror(Error("unknown _state"), this._state); + } + this._index++; + } + this._cleanup(); +}; +Tokenizer.prototype.pause = function(){ + this._running = false; +}; +Tokenizer.prototype.resume = function(){ + this._running = true; -// Multifunctional method to get and set values of a collection -// The value/s can optionally be executed if it's a function -var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { - var i = 0, - len = elems.length, - bulk = key == null; + if(this._index < this._buffer.length){ + this._parse(); + } + if(this._ended){ + this._finish(); + } +}; - // Sets many values - if ( jQuery.type( key ) === "object" ) { - chainable = true; - for ( i in key ) { - access( elems, fn, i, key[ i ], true, emptyGet, raw ); - } +Tokenizer.prototype.end = function(chunk){ + if(this._ended) this._cbs.onerror(Error(".end() after done!")); + if(chunk) this.write(chunk); - // Sets one value - } else if ( value !== undefined ) { - chainable = true; + this._ended = true; - if ( !jQuery.isFunction( value ) ) { - raw = true; - } + if(this._running) this._finish(); +}; - if ( bulk ) { +Tokenizer.prototype._finish = function(){ + //if there is remaining data, emit it in a reasonable way + if(this._sectionStart < this._index){ + this._handleTrailingData(); + } - // Bulk operations run against the entire set - if ( raw ) { - fn.call( elems, value ); - fn = null; + this._cbs.onend(); +}; - // ...except when executing function values - } else { - bulk = fn; - fn = function( elem, key, value ) { - return bulk.call( jQuery( elem ), value ); - }; - } - } +Tokenizer.prototype._handleTrailingData = function(){ + var data = this._buffer.substr(this._sectionStart); - if ( fn ) { - for ( ; i < len; i++ ) { - fn( - elems[ i ], key, raw ? - value : - value.call( elems[ i ], i, fn( elems[ i ], key ) ) - ); - } + if(this._state === IN_CDATA || this._state === AFTER_CDATA_1 || this._state === AFTER_CDATA_2){ + this._cbs.oncdata(data); + } else if(this._state === IN_COMMENT || this._state === AFTER_COMMENT_1 || this._state === AFTER_COMMENT_2){ + this._cbs.oncomment(data); + } else if(this._state === IN_NAMED_ENTITY && !this._xmlMode){ + this._parseLegacyEntity(); + if(this._sectionStart < this._index){ + this._state = this._baseState; + this._handleTrailingData(); + } + } else if(this._state === IN_NUMERIC_ENTITY && !this._xmlMode){ + this._decodeNumericEntity(2, 10); + if(this._sectionStart < this._index){ + this._state = this._baseState; + this._handleTrailingData(); + } + } else if(this._state === IN_HEX_ENTITY && !this._xmlMode){ + this._decodeNumericEntity(3, 16); + if(this._sectionStart < this._index){ + this._state = this._baseState; + this._handleTrailingData(); } + } else if( + this._state !== IN_TAG_NAME && + this._state !== BEFORE_ATTRIBUTE_NAME && + this._state !== BEFORE_ATTRIBUTE_VALUE && + this._state !== AFTER_ATTRIBUTE_NAME && + this._state !== IN_ATTRIBUTE_NAME && + this._state !== IN_ATTRIBUTE_VALUE_SQ && + this._state !== IN_ATTRIBUTE_VALUE_DQ && + this._state !== IN_ATTRIBUTE_VALUE_NQ && + this._state !== IN_CLOSING_TAG_NAME + ){ + this._cbs.ontext(data); } + //else, ignore remaining data + //TODO add a way to remove current tag +}; - if ( chainable ) { - return elems; - } +Tokenizer.prototype.reset = function(){ + Tokenizer.call(this, {xmlMode: this._xmlMode, decodeEntities: this._decodeEntities}, this._cbs); +}; - // Gets - if ( bulk ) { - return fn.call( elems ); - } +Tokenizer.prototype.getAbsoluteIndex = function(){ + return this._bufferOffset + this._index; +}; - return len ? fn( elems[ 0 ], key ) : emptyGet; +Tokenizer.prototype._getSection = function(){ + return this._buffer.substring(this._sectionStart, this._index); }; -var acceptData = function( owner ) { - // Accepts only: - // - Node - // - Node.ELEMENT_NODE - // - Node.DOCUMENT_NODE - // - Object - // - Any - return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); +Tokenizer.prototype._emitToken = function(name){ + this._cbs[name](this._getSection()); + this._sectionStart = -1; }; +Tokenizer.prototype._emitPartial = function(value){ + if(this._baseState !== TEXT){ + this._cbs.onattribdata(value); //TODO implement the new event + } else { + this._cbs.ontext(value); + } +}; +/***/ }), +/* 282 */ +/***/ (function(module, exports, __webpack_require__) { -function Data() { - this.expando = jQuery.expando + Data.uid++; -} +var decodeMap = __webpack_require__(582); -Data.uid = 1; +module.exports = decodeCodePoint; -Data.prototype = { +// modified version of https://github.com/mathiasbynens/he/blob/master/src/he.js#L94-L119 +function decodeCodePoint(codePoint){ - cache: function( owner ) { + if((codePoint >= 0xD800 && codePoint <= 0xDFFF) || codePoint > 0x10FFFF){ + return "\uFFFD"; + } - // Check if the owner object already has a cache - var value = owner[ this.expando ]; + if(codePoint in decodeMap){ + codePoint = decodeMap[codePoint]; + } - // If not, create one - if ( !value ) { - value = {}; + var output = ""; - // We can accept data for non-element nodes in modern browsers, - // but we should not, see #8335. - // Always return an empty object. - if ( acceptData( owner ) ) { + if(codePoint > 0xFFFF){ + codePoint -= 0x10000; + output += String.fromCharCode(codePoint >>> 10 & 0x3FF | 0xD800); + codePoint = 0xDC00 | codePoint & 0x3FF; + } - // If it is a node unlikely to be stringify-ed or looped over - // use plain assignment - if ( owner.nodeType ) { - owner[ this.expando ] = value; + output += String.fromCharCode(codePoint); + return output; +} - // Otherwise secure it in a non-enumerable property - // configurable must be true to allow the property to be - // deleted when data is removed - } else { - Object.defineProperty( owner, this.expando, { - value: value, - configurable: true - } ); - } - } - } - return value; - }, - set: function( owner, data, value ) { - var prop, - cache = this.cache( owner ); +/***/ }), +/* 283 */ +/***/ (function(module, exports) { - // Handle: [ owner, key, value ] args - // Always use camelCase key (gh-2257) - if ( typeof data === "string" ) { - cache[ jQuery.camelCase( data ) ] = value; +module.exports = {"Aacute":"ร","aacute":"รก","Acirc":"ร‚","acirc":"รข","acute":"ยด","AElig":"ร†","aelig":"รฆ","Agrave":"ร€","agrave":"ร ","amp":"&","AMP":"&","Aring":"ร…","aring":"รฅ","Atilde":"รƒ","atilde":"รฃ","Auml":"ร„","auml":"รค","brvbar":"ยฆ","Ccedil":"ร‡","ccedil":"รง","cedil":"ยธ","cent":"ยข","copy":"ยฉ","COPY":"ยฉ","curren":"ยค","deg":"ยฐ","divide":"รท","Eacute":"ร‰","eacute":"รฉ","Ecirc":"รŠ","ecirc":"รช","Egrave":"รˆ","egrave":"รจ","ETH":"ร","eth":"รฐ","Euml":"ร‹","euml":"รซ","frac12":"ยฝ","frac14":"ยผ","frac34":"ยพ","gt":">","GT":">","Iacute":"ร","iacute":"รญ","Icirc":"รŽ","icirc":"รฎ","iexcl":"ยก","Igrave":"รŒ","igrave":"รฌ","iquest":"ยฟ","Iuml":"ร","iuml":"รฏ","laquo":"ยซ","lt":"<","LT":"<","macr":"ยฏ","micro":"ยต","middot":"ยท","nbsp":"ย ","not":"ยฌ","Ntilde":"ร‘","ntilde":"รฑ","Oacute":"ร“","oacute":"รณ","Ocirc":"ร”","ocirc":"รด","Ograve":"ร’","ograve":"รฒ","ordf":"ยช","ordm":"ยบ","Oslash":"ร˜","oslash":"รธ","Otilde":"ร•","otilde":"รต","Ouml":"ร–","ouml":"รถ","para":"ยถ","plusmn":"ยฑ","pound":"ยฃ","quot":"\"","QUOT":"\"","raquo":"ยป","reg":"ยฎ","REG":"ยฎ","sect":"ยง","shy":"ยญ","sup1":"ยน","sup2":"ยฒ","sup3":"ยณ","szlig":"รŸ","THORN":"รž","thorn":"รพ","times":"ร—","Uacute":"รš","uacute":"รบ","Ucirc":"ร›","ucirc":"รป","Ugrave":"ร™","ugrave":"รน","uml":"ยจ","Uuml":"รœ","uuml":"รผ","Yacute":"ร","yacute":"รฝ","yen":"ยฅ","yuml":"รฟ"} - // Handle: [ owner, { properties } ] args - } else { +/***/ }), +/* 284 */ +/***/ (function(module, exports) { - // Copy the properties one-by-one to the cache object - for ( prop in data ) { - cache[ jQuery.camelCase( prop ) ] = data[ prop ]; - } - } - return cache; +// This object will be used as the prototype for Nodes when creating a +// DOM-Level-1-compliant structure. +var NodePrototype = module.exports = { + get firstChild() { + var children = this.children; + return children && children[0] || null; }, - get: function( owner, key ) { - return key === undefined ? - this.cache( owner ) : - - // Always use camelCase key (gh-2257) - owner[ this.expando ] && owner[ this.expando ][ jQuery.camelCase( key ) ]; + get lastChild() { + var children = this.children; + return children && children[children.length - 1] || null; }, - access: function( owner, key, value ) { + get nodeType() { + return nodeTypes[this.type] || nodeTypes.element; + } +}; - // In cases where either: - // - // 1. No key was specified - // 2. A string key was specified, but no value provided - // - // Take the "read" path and allow the get method to determine - // which value to return, respectively either: - // - // 1. The entire cache object - // 2. The data stored at the key - // - if ( key === undefined || - ( ( key && typeof key === "string" ) && value === undefined ) ) { - - return this.get( owner, key ); - } - - // When the key is not a string, or both a key and value - // are specified, set or extend (existing objects) with either: - // - // 1. An object of properties - // 2. A key and value - // - this.set( owner, key, value ); +var domLvl1 = { + tagName: "name", + childNodes: "children", + parentNode: "parent", + previousSibling: "prev", + nextSibling: "next", + nodeValue: "data" +}; - // Since the "set" path can have two possible entry points - // return the expected data based on which path was taken[*] - return value !== undefined ? value : key; - }, - remove: function( owner, key ) { - var i, - cache = owner[ this.expando ]; +var nodeTypes = { + element: 1, + text: 3, + cdata: 4, + comment: 8 +}; - if ( cache === undefined ) { - return; +Object.keys(domLvl1).forEach(function(key) { + var shorthand = domLvl1[key]; + Object.defineProperty(NodePrototype, key, { + get: function() { + return this[shorthand] || null; + }, + set: function(val) { + this[shorthand] = val; + return val; } + }); +}); - if ( key !== undefined ) { - - // Support array or space separated string of keys - if ( Array.isArray( key ) ) { - // If key is an array of keys... - // We always set camelCase keys, so remove that. - key = key.map( jQuery.camelCase ); - } else { - key = jQuery.camelCase( key ); +/***/ }), +/* 285 */ +/***/ (function(module, exports, __webpack_require__) { - // If a key with the spaces exists, use it. - // Otherwise, create an array by matching non-whitespace - key = key in cache ? - [ key ] : - ( key.match( rnothtmlwhite ) || [] ); - } +module.exports = Stream; - i = key.length; +var Parser = __webpack_require__(280), + WritableStream = __webpack_require__(66).Writable || __webpack_require__(597).Writable, + StringDecoder = __webpack_require__(108).StringDecoder, + Buffer = __webpack_require__(7).Buffer; - while ( i-- ) { - delete cache[ key[ i ] ]; - } - } +function Stream(cbs, options){ + var parser = this._parser = new Parser(cbs, options); + var decoder = this._decoder = new StringDecoder(); - // Remove the expando if there's no more data - if ( key === undefined || jQuery.isEmptyObject( cache ) ) { + WritableStream.call(this, {decodeStrings: false}); - // Support: Chrome <=35 - 45 - // Webkit & Blink performance suffers when deleting properties - // from DOM nodes, so set to undefined instead - // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) - if ( owner.nodeType ) { - owner[ this.expando ] = undefined; - } else { - delete owner[ this.expando ]; - } - } - }, - hasData: function( owner ) { - var cache = owner[ this.expando ]; - return cache !== undefined && !jQuery.isEmptyObject( cache ); - } -}; -var dataPriv = new Data(); + this.once("finish", function(){ + parser.end(decoder.end()); + }); +} -var dataUser = new Data(); +__webpack_require__(1)(Stream, WritableStream); +WritableStream.prototype._write = function(chunk, encoding, cb){ + if(chunk instanceof Buffer) chunk = this._decoder.write(chunk); + this._parser.write(chunk); + cb(); +}; +/***/ }), +/* 286 */ +/***/ (function(module, exports, __webpack_require__) { -// Implementation Summary +"use strict"; +/* WEBPACK VAR INJECTION */(function(global, process) {// Copyright Joyent, Inc. and other Node contributors. // -// 1. Enforce API surface and semantic compatibility with 1.9.x branch -// 2. Improve the module's maintainability by reducing the storage -// paths to a single mechanism. -// 3. Use the same single mechanism to support "private" and "user" data. -// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) -// 5. Avoid exposing implementation details on user objects (eg. expando properties) -// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. -var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, - rmultiDash = /[A-Z]/g; -function getData( data ) { - if ( data === "true" ) { - return true; - } - if ( data === "false" ) { - return false; - } +/**/ - if ( data === "null" ) { - return null; - } +var processNextTick = __webpack_require__(107); +/**/ - // Only convert to a number if it doesn't change the string - if ( data === +data + "" ) { - return +data; - } +module.exports = Readable; - if ( rbrace.test( data ) ) { - return JSON.parse( data ); - } +/**/ +var isArray = __webpack_require__(279); +/**/ - return data; -} +/**/ +var Duplex; +/**/ -function dataAttr( elem, key, data ) { - var name; +Readable.ReadableState = ReadableState; - // If nothing was found internally, try to fetch any - // data from the HTML5 data-* attribute - if ( data === undefined && elem.nodeType === 1 ) { - name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase(); - data = elem.getAttribute( name ); +/**/ +var EE = __webpack_require__(106).EventEmitter; - if ( typeof data === "string" ) { - try { - data = getData( data ); - } catch ( e ) {} +var EElistenerCount = function (emitter, type) { + return emitter.listeners(type).length; +}; +/**/ - // Make sure we set the data so it isn't changed later - dataUser.set( elem, key, data ); - } else { - data = undefined; - } - } - return data; +/**/ +var Stream = __webpack_require__(287); +/**/ + +// TODO(bmeurer): Change this back to const once hole checks are +// properly optimized away early in Ignition+TurboFan. +/**/ +var Buffer = __webpack_require__(8).Buffer; +var OurUint8Array = global.Uint8Array || function () {}; +function _uint8ArrayToBuffer(chunk) { + return Buffer.from(chunk); } +function _isUint8Array(obj) { + return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; +} +/**/ -jQuery.extend( { - hasData: function( elem ) { - return dataUser.hasData( elem ) || dataPriv.hasData( elem ); - }, +/**/ +var util = __webpack_require__(67); +util.inherits = __webpack_require__(1); +/**/ - data: function( elem, name, data ) { - return dataUser.access( elem, name, data ); - }, +/**/ +var debugUtil = __webpack_require__(587); +var debug = void 0; +if (debugUtil && debugUtil.debuglog) { + debug = debugUtil.debuglog('stream'); +} else { + debug = function () {}; +} +/**/ - removeData: function( elem, name ) { - dataUser.remove( elem, name ); - }, +var BufferList = __webpack_require__(588); +var destroyImpl = __webpack_require__(288); +var StringDecoder; - // TODO: Now that all calls to _data and _removeData have been replaced - // with direct calls to dataPriv methods, these can be deprecated. - _data: function( elem, name, data ) { - return dataPriv.access( elem, name, data ); - }, +util.inherits(Readable, Stream); - _removeData: function( elem, name ) { - dataPriv.remove( elem, name ); - } -} ); +var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume']; -jQuery.fn.extend( { - data: function( key, value ) { - var i, name, data, - elem = this[ 0 ], - attrs = elem && elem.attributes; +function prependListener(emitter, event, fn) { + // Sadly this is not cacheable as some libraries bundle their own + // event emitter implementation with them. + if (typeof emitter.prependListener === 'function') { + return emitter.prependListener(event, fn); + } else { + // This is a hack to make sure that our error handler is attached before any + // userland ones. NEVER DO THIS. This is here only because this code needs + // to continue to work with older versions of Node.js that do not include + // the prependListener() method. The goal is to eventually remove this hack. + if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]]; + } +} - // Gets all values - if ( key === undefined ) { - if ( this.length ) { - data = dataUser.get( elem ); +function ReadableState(options, stream) { + Duplex = Duplex || __webpack_require__(37); - if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { - i = attrs.length; - while ( i-- ) { + options = options || {}; - // Support: IE 11 only - // The attrs elements can be null (#14894) - if ( attrs[ i ] ) { - name = attrs[ i ].name; - if ( name.indexOf( "data-" ) === 0 ) { - name = jQuery.camelCase( name.slice( 5 ) ); - dataAttr( elem, name, data[ name ] ); - } - } - } - dataPriv.set( elem, "hasDataAttrs", true ); - } - } + // object stream flag. Used to make read(n) ignore n and to + // make all the buffer merging and length checks go away + this.objectMode = !!options.objectMode; - return data; - } + if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode; - // Sets multiple values - if ( typeof key === "object" ) { - return this.each( function() { - dataUser.set( this, key ); - } ); - } + // the point at which it stops calling _read() to fill the buffer + // Note: 0 is a valid value, means "don't call _read preemptively ever" + var hwm = options.highWaterMark; + var defaultHwm = this.objectMode ? 16 : 16 * 1024; + this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm; - return access( this, function( value ) { - var data; + // cast to ints. + this.highWaterMark = Math.floor(this.highWaterMark); - // The calling jQuery object (element matches) is not empty - // (and therefore has an element appears at this[ 0 ]) and the - // `value` parameter was not undefined. An empty jQuery object - // will result in `undefined` for elem = this[ 0 ] which will - // throw an exception if an attempt to read a data cache is made. - if ( elem && value === undefined ) { + // A linked list is used to store data chunks instead of an array because the + // linked list can remove elements from the beginning faster than + // array.shift() + this.buffer = new BufferList(); + this.length = 0; + this.pipes = null; + this.pipesCount = 0; + this.flowing = null; + this.ended = false; + this.endEmitted = false; + this.reading = false; - // Attempt to get data from the cache - // The key will always be camelCased in Data - data = dataUser.get( elem, key ); - if ( data !== undefined ) { - return data; - } + // a flag to be able to tell if the event 'readable'/'data' is emitted + // immediately, or on a later tick. We set this to true at first, because + // any actions that shouldn't happen until "later" should generally also + // not happen before the first read call. + this.sync = true; - // Attempt to "discover" the data in - // HTML5 custom data-* attrs - data = dataAttr( elem, key ); - if ( data !== undefined ) { - return data; - } + // whenever we return null, then we set a flag to say + // that we're awaiting a 'readable' event emission. + this.needReadable = false; + this.emittedReadable = false; + this.readableListening = false; + this.resumeScheduled = false; - // We tried really hard, but the data doesn't exist. - return; - } + // has it been destroyed + this.destroyed = false; - // Set the data... - this.each( function() { + // Crypto is kind of old and crusty. Historically, its default string + // encoding is 'binary' so we have to make this configurable. + // Everything else in the universe uses 'utf8', though. + this.defaultEncoding = options.defaultEncoding || 'utf8'; - // We always store the camelCased key - dataUser.set( this, key, value ); - } ); - }, null, value, arguments.length > 1, null, true ); - }, + // the number of writers that are awaiting a drain event in .pipe()s + this.awaitDrain = 0; - removeData: function( key ) { - return this.each( function() { - dataUser.remove( this, key ); - } ); - } -} ); + // if true, a maybeReadMore has been scheduled + this.readingMore = false; + this.decoder = null; + this.encoding = null; + if (options.encoding) { + if (!StringDecoder) StringDecoder = __webpack_require__(108).StringDecoder; + this.decoder = new StringDecoder(options.encoding); + this.encoding = options.encoding; + } +} -jQuery.extend( { - queue: function( elem, type, data ) { - var queue; +function Readable(options) { + Duplex = Duplex || __webpack_require__(37); - if ( elem ) { - type = ( type || "fx" ) + "queue"; - queue = dataPriv.get( elem, type ); + if (!(this instanceof Readable)) return new Readable(options); - // Speed up dequeue by getting out quickly if this is just a lookup - if ( data ) { - if ( !queue || Array.isArray( data ) ) { - queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); - } else { - queue.push( data ); - } - } - return queue || []; - } - }, + this._readableState = new ReadableState(options, this); - dequeue: function( elem, type ) { - type = type || "fx"; + // legacy + this.readable = true; - var queue = jQuery.queue( elem, type ), - startLength = queue.length, - fn = queue.shift(), - hooks = jQuery._queueHooks( elem, type ), - next = function() { - jQuery.dequeue( elem, type ); - }; + if (options) { + if (typeof options.read === 'function') this._read = options.read; - // If the fx queue is dequeued, always remove the progress sentinel - if ( fn === "inprogress" ) { - fn = queue.shift(); - startLength--; - } + if (typeof options.destroy === 'function') this._destroy = options.destroy; + } - if ( fn ) { + Stream.call(this); +} - // Add a progress sentinel to prevent the fx queue from being - // automatically dequeued - if ( type === "fx" ) { - queue.unshift( "inprogress" ); - } +Object.defineProperty(Readable.prototype, 'destroyed', { + get: function () { + if (this._readableState === undefined) { + return false; + } + return this._readableState.destroyed; + }, + set: function (value) { + // we ignore the value if the stream + // has not been initialized yet + if (!this._readableState) { + return; + } - // Clear up the last queue stop function - delete hooks.stop; - fn.call( elem, next, hooks ); - } + // backward compatibility, the user is explicitly + // managing destroyed + this._readableState.destroyed = value; + } +}); - if ( !startLength && hooks ) { - hooks.empty.fire(); - } - }, +Readable.prototype.destroy = destroyImpl.destroy; +Readable.prototype._undestroy = destroyImpl.undestroy; +Readable.prototype._destroy = function (err, cb) { + this.push(null); + cb(err); +}; - // Not public - generate a queueHooks object, or return the current one - _queueHooks: function( elem, type ) { - var key = type + "queueHooks"; - return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { - empty: jQuery.Callbacks( "once memory" ).add( function() { - dataPriv.remove( elem, [ type + "queue", key ] ); - } ) - } ); - } -} ); +// Manually shove something into the read() buffer. +// This returns true if the highWaterMark has not been hit yet, +// similar to how Writable.write() returns true if you should +// write() some more. +Readable.prototype.push = function (chunk, encoding) { + var state = this._readableState; + var skipChunkCheck; -jQuery.fn.extend( { - queue: function( type, data ) { - var setter = 2; + if (!state.objectMode) { + if (typeof chunk === 'string') { + encoding = encoding || state.defaultEncoding; + if (encoding !== state.encoding) { + chunk = Buffer.from(chunk, encoding); + encoding = ''; + } + skipChunkCheck = true; + } + } else { + skipChunkCheck = true; + } - if ( typeof type !== "string" ) { - data = type; - type = "fx"; - setter--; - } + return readableAddChunk(this, chunk, encoding, false, skipChunkCheck); +}; - if ( arguments.length < setter ) { - return jQuery.queue( this[ 0 ], type ); - } +// Unshift should *always* be something directly out of read() +Readable.prototype.unshift = function (chunk) { + return readableAddChunk(this, chunk, null, true, false); +}; - return data === undefined ? - this : - this.each( function() { - var queue = jQuery.queue( this, type, data ); +function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { + var state = stream._readableState; + if (chunk === null) { + state.reading = false; + onEofChunk(stream, state); + } else { + var er; + if (!skipChunkCheck) er = chunkInvalid(state, chunk); + if (er) { + stream.emit('error', er); + } else if (state.objectMode || chunk && chunk.length > 0) { + if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) { + chunk = _uint8ArrayToBuffer(chunk); + } + + if (addToFront) { + if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true); + } else if (state.ended) { + stream.emit('error', new Error('stream.push() after EOF')); + } else { + state.reading = false; + if (state.decoder && !encoding) { + chunk = state.decoder.write(chunk); + if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state); + } else { + addChunk(stream, state, chunk, false); + } + } + } else if (!addToFront) { + state.reading = false; + } + } - // Ensure a hooks for this queue - jQuery._queueHooks( this, type ); + return needMoreData(state); +} - if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { - jQuery.dequeue( this, type ); - } - } ); - }, - dequeue: function( type ) { - return this.each( function() { - jQuery.dequeue( this, type ); - } ); - }, - clearQueue: function( type ) { - return this.queue( type || "fx", [] ); - }, +function addChunk(stream, state, chunk, addToFront) { + if (state.flowing && state.length === 0 && !state.sync) { + stream.emit('data', chunk); + stream.read(0); + } else { + // update the buffer info. + state.length += state.objectMode ? 1 : chunk.length; + if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk); - // Get a promise resolved when queues of a certain type - // are emptied (fx is the type by default) - promise: function( type, obj ) { - var tmp, - count = 1, - defer = jQuery.Deferred(), - elements = this, - i = this.length, - resolve = function() { - if ( !( --count ) ) { - defer.resolveWith( elements, [ elements ] ); - } - }; + if (state.needReadable) emitReadable(stream); + } + maybeReadMore(stream, state); +} - if ( typeof type !== "string" ) { - obj = type; - type = undefined; - } - type = type || "fx"; +function chunkInvalid(state, chunk) { + var er; + if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { + er = new TypeError('Invalid non-string/buffer chunk'); + } + return er; +} - while ( i-- ) { - tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); - if ( tmp && tmp.empty ) { - count++; - tmp.empty.add( resolve ); - } - } - resolve(); - return defer.promise( obj ); - } -} ); -var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; - -var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); - - -var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; +// if it's past the high water mark, we can push in some more. +// Also, if we have no data yet, we can stand some +// more bytes. This is to work around cases where hwm=0, +// such as the repl. Also, if the push() triggered a +// readable event, and the user called read(largeNumber) such that +// needReadable was set, then we ought to push more, so that another +// 'readable' event will be triggered. +function needMoreData(state) { + return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0); +} -var isHiddenWithinTree = function( elem, el ) { +Readable.prototype.isPaused = function () { + return this._readableState.flowing === false; +}; - // isHiddenWithinTree might be called from jQuery#filter function; - // in that case, element will be second argument - elem = el || elem; +// backwards compatibility. +Readable.prototype.setEncoding = function (enc) { + if (!StringDecoder) StringDecoder = __webpack_require__(108).StringDecoder; + this._readableState.decoder = new StringDecoder(enc); + this._readableState.encoding = enc; + return this; +}; - // Inline style trumps all - return elem.style.display === "none" || - elem.style.display === "" && +// Don't raise the hwm > 8MB +var MAX_HWM = 0x800000; +function computeNewHighWaterMark(n) { + if (n >= MAX_HWM) { + n = MAX_HWM; + } else { + // Get the next highest power of 2 to prevent increasing hwm excessively in + // tiny amounts + n--; + n |= n >>> 1; + n |= n >>> 2; + n |= n >>> 4; + n |= n >>> 8; + n |= n >>> 16; + n++; + } + return n; +} - // Otherwise, check computed style - // Support: Firefox <=43 - 45 - // Disconnected elements can have computed display: none, so first confirm that elem is - // in the document. - jQuery.contains( elem.ownerDocument, elem ) && +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function howMuchToRead(n, state) { + if (n <= 0 || state.length === 0 && state.ended) return 0; + if (state.objectMode) return 1; + if (n !== n) { + // Only flow one buffer at a time + if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length; + } + // If we're asking for more than the current hwm, then raise the hwm. + if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); + if (n <= state.length) return n; + // Don't have enough + if (!state.ended) { + state.needReadable = true; + return 0; + } + return state.length; +} - jQuery.css( elem, "display" ) === "none"; - }; +// you can override either this method, or the async _read(n) below. +Readable.prototype.read = function (n) { + debug('read', n); + n = parseInt(n, 10); + var state = this._readableState; + var nOrig = n; -var swap = function( elem, options, callback, args ) { - var ret, name, - old = {}; + if (n !== 0) state.emittedReadable = false; - // Remember the old values, and insert the new ones - for ( name in options ) { - old[ name ] = elem.style[ name ]; - elem.style[ name ] = options[ name ]; - } + // if we're doing read(0) to trigger a readable event, but we + // already have a bunch of data in the buffer, then just trigger + // the 'readable' event and move on. + if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) { + debug('read: emitReadable', state.length, state.ended); + if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this); + return null; + } - ret = callback.apply( elem, args || [] ); + n = howMuchToRead(n, state); - // Revert the old values - for ( name in options ) { - elem.style[ name ] = old[ name ]; - } + // if we've ended, and we're now clear, then finish it up. + if (n === 0 && state.ended) { + if (state.length === 0) endReadable(this); + return null; + } - return ret; -}; + // All the actual chunk generation logic needs to be + // *below* the call to _read. The reason is that in certain + // synthetic stream cases, such as passthrough streams, _read + // may be a completely synchronous operation which may change + // the state of the read buffer, providing enough data when + // before there was *not* enough. + // + // So, the steps are: + // 1. Figure out what the state of things will be after we do + // a read from the buffer. + // + // 2. If that resulting state will trigger a _read, then call _read. + // Note that this may be asynchronous, or synchronous. Yes, it is + // deeply ugly to write APIs this way, but that still doesn't mean + // that the Readable class should behave improperly, as streams are + // designed to be sync/async agnostic. + // Take note if the _read call is sync or async (ie, if the read call + // has returned yet), so that we know whether or not it's safe to emit + // 'readable' etc. + // + // 3. Actually pull the requested chunks out of the buffer and return. + // if we need a readable event, then we need to do some reading. + var doRead = state.needReadable; + debug('need readable', doRead); + // if we currently have less than the highWaterMark, then also read some + if (state.length === 0 || state.length - n < state.highWaterMark) { + doRead = true; + debug('length less than watermark', doRead); + } + // however, if we've ended, then there's no point, and if we're already + // reading, then it's unnecessary. + if (state.ended || state.reading) { + doRead = false; + debug('reading or ended', doRead); + } else if (doRead) { + debug('do read'); + state.reading = true; + state.sync = true; + // if the length is currently zero, then we *need* a readable event. + if (state.length === 0) state.needReadable = true; + // call internal read method + this._read(state.highWaterMark); + state.sync = false; + // If _read pushed data synchronously, then `reading` will be false, + // and we need to re-evaluate how much data we can return to the user. + if (!state.reading) n = howMuchToRead(nOrig, state); + } -function adjustCSS( elem, prop, valueParts, tween ) { - var adjusted, - scale = 1, - maxIterations = 20, - currentValue = tween ? - function() { - return tween.cur(); - } : - function() { - return jQuery.css( elem, prop, "" ); - }, - initial = currentValue(), - unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), + var ret; + if (n > 0) ret = fromList(n, state);else ret = null; - // Starting value computation is required for potential unit mismatches - initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && - rcssNum.exec( jQuery.css( elem, prop ) ); + if (ret === null) { + state.needReadable = true; + n = 0; + } else { + state.length -= n; + } - if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { + if (state.length === 0) { + // If we have nothing in the buffer, then we want to know + // as soon as we *do* get something into the buffer. + if (!state.ended) state.needReadable = true; - // Trust units reported by jQuery.css - unit = unit || initialInUnit[ 3 ]; + // If we tried to read() past the EOF, then emit end on the next tick. + if (nOrig !== n && state.ended) endReadable(this); + } - // Make sure we update the tween properties later on - valueParts = valueParts || []; + if (ret !== null) this.emit('data', ret); - // Iteratively approximate from a nonzero starting point - initialInUnit = +initial || 1; + return ret; +}; - do { +function onEofChunk(stream, state) { + if (state.ended) return; + if (state.decoder) { + var chunk = state.decoder.end(); + if (chunk && chunk.length) { + state.buffer.push(chunk); + state.length += state.objectMode ? 1 : chunk.length; + } + } + state.ended = true; - // If previous iteration zeroed out, double until we get *something*. - // Use string for doubling so we don't accidentally see scale as unchanged below - scale = scale || ".5"; + // emit 'readable' now to make sure it gets picked up. + emitReadable(stream); +} - // Adjust and apply - initialInUnit = initialInUnit / scale; - jQuery.style( elem, prop, initialInUnit + unit ); +// Don't emit readable right away in sync mode, because this can trigger +// another read() call => stack overflow. This way, it might trigger +// a nextTick recursion warning, but that's not so bad. +function emitReadable(stream) { + var state = stream._readableState; + state.needReadable = false; + if (!state.emittedReadable) { + debug('emitReadable', state.flowing); + state.emittedReadable = true; + if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream); + } +} - // Update scale, tolerating zero or NaN from tween.cur() - // Break the loop if scale is unchanged or perfect, or if we've just had enough. - } while ( - scale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations - ); - } +function emitReadable_(stream) { + debug('emit readable'); + stream.emit('readable'); + flow(stream); +} - if ( valueParts ) { - initialInUnit = +initialInUnit || +initial || 0; +// at this point, the user has presumably seen the 'readable' event, +// and called read() to consume some data. that may have triggered +// in turn another _read(n) call, in which case reading = true if +// it's in progress. +// However, if we're not ended, or reading, and the length < hwm, +// then go ahead and try to read some more preemptively. +function maybeReadMore(stream, state) { + if (!state.readingMore) { + state.readingMore = true; + processNextTick(maybeReadMore_, stream, state); + } +} - // Apply relative offset (+=/-=) if specified - adjusted = valueParts[ 1 ] ? - initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : - +valueParts[ 2 ]; - if ( tween ) { - tween.unit = unit; - tween.start = initialInUnit; - tween.end = adjusted; - } - } - return adjusted; +function maybeReadMore_(stream, state) { + var len = state.length; + while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) { + debug('maybeReadMore read 0'); + stream.read(0); + if (len === state.length) + // didn't get any data, stop spinning. + break;else len = state.length; + } + state.readingMore = false; } +// abstract method. to be overridden in specific implementation classes. +// call cb(er, data) where data is <= n in length. +// for virtual (non-string, non-buffer) streams, "length" is somewhat +// arbitrary, and perhaps not very meaningful. +Readable.prototype._read = function (n) { + this.emit('error', new Error('_read() is not implemented')); +}; -var defaultDisplayMap = {}; +Readable.prototype.pipe = function (dest, pipeOpts) { + var src = this; + var state = this._readableState; -function getDefaultDisplay( elem ) { - var temp, - doc = elem.ownerDocument, - nodeName = elem.nodeName, - display = defaultDisplayMap[ nodeName ]; + switch (state.pipesCount) { + case 0: + state.pipes = dest; + break; + case 1: + state.pipes = [state.pipes, dest]; + break; + default: + state.pipes.push(dest); + break; + } + state.pipesCount += 1; + debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts); - if ( display ) { - return display; - } + var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr; - temp = doc.body.appendChild( doc.createElement( nodeName ) ); - display = jQuery.css( temp, "display" ); + var endFn = doEnd ? onend : unpipe; + if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn); - temp.parentNode.removeChild( temp ); + dest.on('unpipe', onunpipe); + function onunpipe(readable, unpipeInfo) { + debug('onunpipe'); + if (readable === src) { + if (unpipeInfo && unpipeInfo.hasUnpiped === false) { + unpipeInfo.hasUnpiped = true; + cleanup(); + } + } + } - if ( display === "none" ) { - display = "block"; - } - defaultDisplayMap[ nodeName ] = display; + function onend() { + debug('onend'); + dest.end(); + } - return display; -} + // when the dest drains, it reduces the awaitDrain counter + // on the source. This would be more elegant with a .once() + // handler in flow(), but adding and removing repeatedly is + // too slow. + var ondrain = pipeOnDrain(src); + dest.on('drain', ondrain); -function showHide( elements, show ) { - var display, elem, - values = [], - index = 0, - length = elements.length; + var cleanedUp = false; + function cleanup() { + debug('cleanup'); + // cleanup event handlers once the pipe is broken + dest.removeListener('close', onclose); + dest.removeListener('finish', onfinish); + dest.removeListener('drain', ondrain); + dest.removeListener('error', onerror); + dest.removeListener('unpipe', onunpipe); + src.removeListener('end', onend); + src.removeListener('end', unpipe); + src.removeListener('data', ondata); - // Determine new display value for elements that need to change - for ( ; index < length; index++ ) { - elem = elements[ index ]; - if ( !elem.style ) { - continue; - } + cleanedUp = true; - display = elem.style.display; - if ( show ) { + // if the reader is waiting for a drain event from this + // specific writer, then it would cause it to never start + // flowing again. + // So, if this is awaiting a drain, then we just call it now. + // If we don't know, then assume that we are waiting for one. + if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain(); + } - // Since we force visibility upon cascade-hidden elements, an immediate (and slow) - // check is required in this first loop unless we have a nonempty display value (either - // inline or about-to-be-restored) - if ( display === "none" ) { - values[ index ] = dataPriv.get( elem, "display" ) || null; - if ( !values[ index ] ) { - elem.style.display = ""; - } - } - if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) { - values[ index ] = getDefaultDisplay( elem ); - } - } else { - if ( display !== "none" ) { - values[ index ] = "none"; + // If the user pushes more data while we're writing to dest then we'll end up + // in ondata again. However, we only want to increase awaitDrain once because + // dest will only emit one 'drain' event for the multiple writes. + // => Introduce a guard on increasing awaitDrain. + var increasedAwaitDrain = false; + src.on('data', ondata); + function ondata(chunk) { + debug('ondata'); + increasedAwaitDrain = false; + var ret = dest.write(chunk); + if (false === ret && !increasedAwaitDrain) { + // If the user unpiped during `dest.write()`, it is possible + // to get stuck in a permanently paused state if that write + // also returned false. + // => Check whether `dest` is still a piping destination. + if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) { + debug('false write response, pause', src._readableState.awaitDrain); + src._readableState.awaitDrain++; + increasedAwaitDrain = true; + } + src.pause(); + } + } - // Remember what we're overwriting - dataPriv.set( elem, "display", display ); - } - } - } + // if the dest has an error, then stop piping into it. + // however, don't suppress the throwing behavior for this. + function onerror(er) { + debug('onerror', er); + unpipe(); + dest.removeListener('error', onerror); + if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er); + } - // Set the display of the elements in a second loop to avoid constant reflow - for ( index = 0; index < length; index++ ) { - if ( values[ index ] != null ) { - elements[ index ].style.display = values[ index ]; - } - } + // Make sure our error handler is attached before userland ones. + prependListener(dest, 'error', onerror); - return elements; -} + // Both close and finish should trigger unpipe, but only once. + function onclose() { + dest.removeListener('finish', onfinish); + unpipe(); + } + dest.once('close', onclose); + function onfinish() { + debug('onfinish'); + dest.removeListener('close', onclose); + unpipe(); + } + dest.once('finish', onfinish); -jQuery.fn.extend( { - show: function() { - return showHide( this, true ); - }, - hide: function() { - return showHide( this ); - }, - toggle: function( state ) { - if ( typeof state === "boolean" ) { - return state ? this.show() : this.hide(); - } + function unpipe() { + debug('unpipe'); + src.unpipe(dest); + } - return this.each( function() { - if ( isHiddenWithinTree( this ) ) { - jQuery( this ).show(); - } else { - jQuery( this ).hide(); - } - } ); - } -} ); -var rcheckableType = ( /^(?:checkbox|radio)$/i ); + // tell the dest that it's being piped to + dest.emit('pipe', src); -var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i ); + // start the flow if it hasn't been started already. + if (!state.flowing) { + debug('pipe resume'); + src.resume(); + } -var rscriptType = ( /^$|\/(?:java|ecma)script/i ); + return dest; +}; +function pipeOnDrain(src) { + return function () { + var state = src._readableState; + debug('pipeOnDrain', state.awaitDrain); + if (state.awaitDrain) state.awaitDrain--; + if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) { + state.flowing = true; + flow(src); + } + }; +} +Readable.prototype.unpipe = function (dest) { + var state = this._readableState; + var unpipeInfo = { hasUnpiped: false }; -// We have to close these tags to support XHTML (#13200) -var wrapMap = { + // if we're not piping anywhere, then do nothing. + if (state.pipesCount === 0) return this; - // Support: IE <=9 only - option: [ 1, "" ], + // just one destination. most common case. + if (state.pipesCount === 1) { + // passed in one, but it's not the right one. + if (dest && dest !== state.pipes) return this; - // XHTML parsers do not magically insert elements in the - // same way that tag soup parsers do. So we cannot shorten - // this by omitting or other required elements. - thead: [ 1, "", "
" ], - col: [ 2, "", "
" ], - tr: [ 2, "", "
" ], - td: [ 3, "", "
" ], - - _default: [ 0, "", "" ] -}; - -// Support: IE <=9 only -wrapMap.optgroup = wrapMap.option; + if (!dest) dest = state.pipes; -wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; -wrapMap.th = wrapMap.td; + // got a match. + state.pipes = null; + state.pipesCount = 0; + state.flowing = false; + if (dest) dest.emit('unpipe', this, unpipeInfo); + return this; + } + // slow case. multiple pipe destinations. -function getAll( context, tag ) { + if (!dest) { + // remove all. + var dests = state.pipes; + var len = state.pipesCount; + state.pipes = null; + state.pipesCount = 0; + state.flowing = false; - // Support: IE <=9 - 11 only - // Use typeof to avoid zero-argument method invocation on host objects (#15151) - var ret; + for (var i = 0; i < len; i++) { + dests[i].emit('unpipe', this, unpipeInfo); + }return this; + } - if ( typeof context.getElementsByTagName !== "undefined" ) { - ret = context.getElementsByTagName( tag || "*" ); + // try to find the right one. + var index = indexOf(state.pipes, dest); + if (index === -1) return this; - } else if ( typeof context.querySelectorAll !== "undefined" ) { - ret = context.querySelectorAll( tag || "*" ); + state.pipes.splice(index, 1); + state.pipesCount -= 1; + if (state.pipesCount === 1) state.pipes = state.pipes[0]; - } else { - ret = []; - } + dest.emit('unpipe', this, unpipeInfo); - if ( tag === undefined || tag && nodeName( context, tag ) ) { - return jQuery.merge( [ context ], ret ); - } + return this; +}; - return ret; -} +// set up data events if they are asked for +// Ensure readable listeners eventually get something +Readable.prototype.on = function (ev, fn) { + var res = Stream.prototype.on.call(this, ev, fn); + if (ev === 'data') { + // Start flowing on next tick if stream isn't explicitly paused + if (this._readableState.flowing !== false) this.resume(); + } else if (ev === 'readable') { + var state = this._readableState; + if (!state.endEmitted && !state.readableListening) { + state.readableListening = state.needReadable = true; + state.emittedReadable = false; + if (!state.reading) { + processNextTick(nReadingNextTick, this); + } else if (state.length) { + emitReadable(this); + } + } + } -// Mark scripts as having already been evaluated -function setGlobalEval( elems, refElements ) { - var i = 0, - l = elems.length; + return res; +}; +Readable.prototype.addListener = Readable.prototype.on; - for ( ; i < l; i++ ) { - dataPriv.set( - elems[ i ], - "globalEval", - !refElements || dataPriv.get( refElements[ i ], "globalEval" ) - ); - } +function nReadingNextTick(self) { + debug('readable nexttick read 0'); + self.read(0); } +// pause() and resume() are remnants of the legacy readable stream API +// If the user uses them, then switch into old mode. +Readable.prototype.resume = function () { + var state = this._readableState; + if (!state.flowing) { + debug('resume'); + state.flowing = true; + resume(this, state); + } + return this; +}; -var rhtml = /<|&#?\w+;/; - -function buildFragment( elems, context, scripts, selection, ignored ) { - var elem, tmp, tag, wrap, contains, j, - fragment = context.createDocumentFragment(), - nodes = [], - i = 0, - l = elems.length; +function resume(stream, state) { + if (!state.resumeScheduled) { + state.resumeScheduled = true; + processNextTick(resume_, stream, state); + } +} - for ( ; i < l; i++ ) { - elem = elems[ i ]; +function resume_(stream, state) { + if (!state.reading) { + debug('resume read 0'); + stream.read(0); + } - if ( elem || elem === 0 ) { + state.resumeScheduled = false; + state.awaitDrain = 0; + stream.emit('resume'); + flow(stream); + if (state.flowing && !state.reading) stream.read(0); +} - // Add nodes directly - if ( jQuery.type( elem ) === "object" ) { +Readable.prototype.pause = function () { + debug('call pause flowing=%j', this._readableState.flowing); + if (false !== this._readableState.flowing) { + debug('pause'); + this._readableState.flowing = false; + this.emit('pause'); + } + return this; +}; - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); +function flow(stream) { + var state = stream._readableState; + debug('flow', state.flowing); + while (state.flowing && stream.read() !== null) {} +} - // Convert non-html into a text node - } else if ( !rhtml.test( elem ) ) { - nodes.push( context.createTextNode( elem ) ); +// wrap an old-style stream as the async data source. +// This is *not* part of the readable stream interface. +// It is an ugly unfortunate mess of history. +Readable.prototype.wrap = function (stream) { + var state = this._readableState; + var paused = false; - // Convert html into DOM nodes - } else { - tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); + var self = this; + stream.on('end', function () { + debug('wrapped end'); + if (state.decoder && !state.ended) { + var chunk = state.decoder.end(); + if (chunk && chunk.length) self.push(chunk); + } - // Deserialize a standard representation - tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); - wrap = wrapMap[ tag ] || wrapMap._default; - tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; + self.push(null); + }); - // Descend through wrappers to the right content - j = wrap[ 0 ]; - while ( j-- ) { - tmp = tmp.lastChild; - } + stream.on('data', function (chunk) { + debug('wrapped data'); + if (state.decoder) chunk = state.decoder.write(chunk); - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( nodes, tmp.childNodes ); + // don't skip over falsy values in objectMode + if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return; - // Remember the top-level container - tmp = fragment.firstChild; + var ret = self.push(chunk); + if (!ret) { + paused = true; + stream.pause(); + } + }); - // Ensure the created nodes are orphaned (#12392) - tmp.textContent = ""; - } - } - } + // proxy all the other methods. + // important when wrapping filters and duplexes. + for (var i in stream) { + if (this[i] === undefined && typeof stream[i] === 'function') { + this[i] = function (method) { + return function () { + return stream[method].apply(stream, arguments); + }; + }(i); + } + } - // Remove wrapper from fragment - fragment.textContent = ""; + // proxy certain important events. + for (var n = 0; n < kProxyEvents.length; n++) { + stream.on(kProxyEvents[n], self.emit.bind(self, kProxyEvents[n])); + } - i = 0; - while ( ( elem = nodes[ i++ ] ) ) { + // when we try to consume some more bytes, simply unpause the + // underlying stream. + self._read = function (n) { + debug('wrapped _read', n); + if (paused) { + paused = false; + stream.resume(); + } + }; - // Skip elements already in the context collection (trac-4087) - if ( selection && jQuery.inArray( elem, selection ) > -1 ) { - if ( ignored ) { - ignored.push( elem ); - } - continue; - } + return self; +}; - contains = jQuery.contains( elem.ownerDocument, elem ); +// exposed for testing purposes only. +Readable._fromList = fromList; - // Append to fragment - tmp = getAll( fragment.appendChild( elem ), "script" ); +// Pluck off n bytes from an array of buffers. +// Length is the combined lengths of all the buffers in the list. +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function fromList(n, state) { + // nothing buffered + if (state.length === 0) return null; - // Preserve script evaluation history - if ( contains ) { - setGlobalEval( tmp ); - } + var ret; + if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) { + // read it all, truncate the list + if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length); + state.buffer.clear(); + } else { + // read part of list + ret = fromListPartial(n, state.buffer, state.decoder); + } - // Capture executables - if ( scripts ) { - j = 0; - while ( ( elem = tmp[ j++ ] ) ) { - if ( rscriptType.test( elem.type || "" ) ) { - scripts.push( elem ); - } - } - } - } + return ret; +} - return fragment; +// Extracts only enough buffered data to satisfy the amount requested. +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function fromListPartial(n, list, hasStrings) { + var ret; + if (n < list.head.data.length) { + // slice is the same for buffers and strings + ret = list.head.data.slice(0, n); + list.head.data = list.head.data.slice(n); + } else if (n === list.head.data.length) { + // first chunk is a perfect match + ret = list.shift(); + } else { + // result spans more than one buffer + ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list); + } + return ret; } +// Copies a specified amount of characters from the list of buffered data +// chunks. +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function copyFromBufferString(n, list) { + var p = list.head; + var c = 1; + var ret = p.data; + n -= ret.length; + while (p = p.next) { + var str = p.data; + var nb = n > str.length ? str.length : n; + if (nb === str.length) ret += str;else ret += str.slice(0, n); + n -= nb; + if (n === 0) { + if (nb === str.length) { + ++c; + if (p.next) list.head = p.next;else list.head = list.tail = null; + } else { + list.head = p; + p.data = str.slice(nb); + } + break; + } + ++c; + } + list.length -= c; + return ret; +} -( function() { - var fragment = document.createDocumentFragment(), - div = fragment.appendChild( document.createElement( "div" ) ), - input = document.createElement( "input" ); +// Copies a specified amount of bytes from the list of buffered data chunks. +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function copyFromBuffer(n, list) { + var ret = Buffer.allocUnsafe(n); + var p = list.head; + var c = 1; + p.data.copy(ret); + n -= p.data.length; + while (p = p.next) { + var buf = p.data; + var nb = n > buf.length ? buf.length : n; + buf.copy(ret, ret.length - n, 0, nb); + n -= nb; + if (n === 0) { + if (nb === buf.length) { + ++c; + if (p.next) list.head = p.next;else list.head = list.tail = null; + } else { + list.head = p; + p.data = buf.slice(nb); + } + break; + } + ++c; + } + list.length -= c; + return ret; +} - // Support: Android 4.0 - 4.3 only - // Check state lost if the name is set (#11217) - // Support: Windows Web Apps (WWA) - // `name` and `type` must use .setAttribute for WWA (#14901) - input.setAttribute( "type", "radio" ); - input.setAttribute( "checked", "checked" ); - input.setAttribute( "name", "t" ); +function endReadable(stream) { + var state = stream._readableState; - div.appendChild( input ); + // If we get here before consuming all the bytes, then that is a + // bug in node. Should never happen. + if (state.length > 0) throw new Error('"endReadable()" called on non-empty stream'); - // Support: Android <=4.1 only - // Older WebKit doesn't clone checked state correctly in fragments - support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; + if (!state.endEmitted) { + state.ended = true; + processNextTick(endReadableNT, state, stream); + } +} - // Support: IE <=11 only - // Make sure textarea (and checkbox) defaultValue is properly cloned - div.innerHTML = ""; - support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; -} )(); -var documentElement = document.documentElement; +function endReadableNT(state, stream) { + // Check that we didn't get one last unshift. + if (!state.endEmitted && state.length === 0) { + state.endEmitted = true; + stream.readable = false; + stream.emit('end'); + } +} +function forEach(xs, f) { + for (var i = 0, l = xs.length; i < l; i++) { + f(xs[i], i); + } +} +function indexOf(xs, x) { + for (var i = 0, l = xs.length; i < l; i++) { + if (xs[i] === x) return i; + } + return -1; +} +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(10), __webpack_require__(0))) -var - rkeyEvent = /^key/, - rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, - rtypenamespace = /^([^.]*)(?:\.(.+)|)/; +/***/ }), +/* 287 */ +/***/ (function(module, exports, __webpack_require__) { -function returnTrue() { - return true; -} +module.exports = __webpack_require__(106).EventEmitter; -function returnFalse() { - return false; -} -// Support: IE <=9 only -// See #13393 for more info -function safeActiveElement() { - try { - return document.activeElement; - } catch ( err ) { } -} +/***/ }), +/* 288 */ +/***/ (function(module, exports, __webpack_require__) { -function on( elem, types, selector, data, fn, one ) { - var origFn, type; +"use strict"; - // Types can be a map of types/handlers - if ( typeof types === "object" ) { - // ( types-Object, selector, data ) - if ( typeof selector !== "string" ) { +/**/ - // ( types-Object, data ) - data = data || selector; - selector = undefined; - } - for ( type in types ) { - on( elem, type, selector, data, types[ type ], one ); - } - return elem; - } +var processNextTick = __webpack_require__(107); +/**/ - if ( data == null && fn == null ) { +// undocumented cb() API, needed for core, not for public API +function destroy(err, cb) { + var _this = this; - // ( types, fn ) - fn = selector; - data = selector = undefined; - } else if ( fn == null ) { - if ( typeof selector === "string" ) { + var readableDestroyed = this._readableState && this._readableState.destroyed; + var writableDestroyed = this._writableState && this._writableState.destroyed; - // ( types, selector, fn ) - fn = data; - data = undefined; - } else { + if (readableDestroyed || writableDestroyed) { + if (cb) { + cb(err); + } else if (err && (!this._writableState || !this._writableState.errorEmitted)) { + processNextTick(emitErrorNT, this, err); + } + return; + } - // ( types, data, fn ) - fn = data; - data = selector; - selector = undefined; - } - } - if ( fn === false ) { - fn = returnFalse; - } else if ( !fn ) { - return elem; - } + // we set destroyed to true before firing error callbacks in order + // to make it re-entrance safe in case destroy() is called within callbacks - if ( one === 1 ) { - origFn = fn; - fn = function( event ) { + if (this._readableState) { + this._readableState.destroyed = true; + } - // Can use an empty set, since event contains the info - jQuery().off( event ); - return origFn.apply( this, arguments ); - }; + // if this is a duplex stream mark the writable part as destroyed as well + if (this._writableState) { + this._writableState.destroyed = true; + } - // Use same guid so caller can remove using origFn - fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); - } - return elem.each( function() { - jQuery.event.add( this, types, fn, data, selector ); - } ); + this._destroy(err || null, function (err) { + if (!cb && err) { + processNextTick(emitErrorNT, _this, err); + if (_this._writableState) { + _this._writableState.errorEmitted = true; + } + } else if (cb) { + cb(err); + } + }); } -/* - * Helper functions for managing events -- not part of the public interface. - * Props to Dean Edwards' addEvent library for many of the ideas. - */ -jQuery.event = { +function undestroy() { + if (this._readableState) { + this._readableState.destroyed = false; + this._readableState.reading = false; + this._readableState.ended = false; + this._readableState.endEmitted = false; + } - global: {}, + if (this._writableState) { + this._writableState.destroyed = false; + this._writableState.ended = false; + this._writableState.ending = false; + this._writableState.finished = false; + this._writableState.errorEmitted = false; + } +} - add: function( elem, types, handler, data, selector ) { +function emitErrorNT(self, err) { + self.emit('error', err); +} - var handleObjIn, eventHandle, tmp, - events, t, handleObj, - special, handlers, type, namespaces, origType, - elemData = dataPriv.get( elem ); +module.exports = { + destroy: destroy, + undestroy: undestroy +}; - // Don't attach events to noData or text/comment nodes (but allow plain objects) - if ( !elemData ) { - return; - } +/***/ }), +/* 289 */ +/***/ (function(module, exports, __webpack_require__) { - // Caller can pass in an object of custom data in lieu of the handler - if ( handler.handler ) { - handleObjIn = handler; - handler = handleObjIn.handler; - selector = handleObjIn.selector; - } +"use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. - // Ensure that invalid selectors throw exceptions at attach time - // Evaluate against documentElement in case elem is a non-element node (e.g., document) - if ( selector ) { - jQuery.find.matchesSelector( documentElement, selector ); - } +// a transform stream is a readable/writable stream where you do +// something with the data. Sometimes it's called a "filter", +// but that's not a great name for it, since that implies a thing where +// some bits pass through, and others are simply ignored. (That would +// be a valid example of a transform, of course.) +// +// While the output is causally related to the input, it's not a +// necessarily symmetric or synchronous transformation. For example, +// a zlib stream might take multiple plain-text writes(), and then +// emit a single compressed chunk some time in the future. +// +// Here's how this works: +// +// The Transform stream has all the aspects of the readable and writable +// stream classes. When you write(chunk), that calls _write(chunk,cb) +// internally, and returns false if there's a lot of pending writes +// buffered up. When you call read(), that calls _read(n) until +// there's enough pending readable data buffered up. +// +// In a transform stream, the written data is placed in a buffer. When +// _read(n) is called, it transforms the queued up data, calling the +// buffered _write cb's as it consumes chunks. If consuming a single +// written chunk would result in multiple output chunks, then the first +// outputted bit calls the readcb, and subsequent chunks just go into +// the read buffer, and will cause it to emit 'readable' if necessary. +// +// This way, back-pressure is actually determined by the reading side, +// since _read has to be called to start processing a new chunk. However, +// a pathological inflate type of transform can cause excessive buffering +// here. For example, imagine a stream where every byte of input is +// interpreted as an integer from 0-255, and then results in that many +// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in +// 1kb of data being output. In this case, you could write a very small +// amount of input, and end up with a very large amount of output. In +// such a pathological inflating mechanism, there'd be no way to tell +// the system to stop doing the transform. A single 4MB write could +// cause the system to run out of memory. +// +// However, even in such a pathological case, only a single written chunk +// would be consumed, and then the rest would wait (un-transformed) until +// the results of the previous transformed chunk were consumed. - // Make sure that the handler has a unique ID, used to find/remove it later - if ( !handler.guid ) { - handler.guid = jQuery.guid++; - } - // Init the element's event structure and main handler, if this is the first - if ( !( events = elemData.events ) ) { - events = elemData.events = {}; - } - if ( !( eventHandle = elemData.handle ) ) { - eventHandle = elemData.handle = function( e ) { - // Discard the second event of a jQuery.event.trigger() and - // when an event is called after a page has unloaded - return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? - jQuery.event.dispatch.apply( elem, arguments ) : undefined; - }; - } +module.exports = Transform; - // Handle multiple events separated by a space - types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[ t ] ) || []; - type = origType = tmp[ 1 ]; - namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); +var Duplex = __webpack_require__(37); - // There *must* be a type, no attaching namespace-only handlers - if ( !type ) { - continue; - } +/**/ +var util = __webpack_require__(67); +util.inherits = __webpack_require__(1); +/**/ - // If event changes its type, use the special event handlers for the changed type - special = jQuery.event.special[ type ] || {}; +util.inherits(Transform, Duplex); - // If selector defined, determine special event api type, otherwise given type - type = ( selector ? special.delegateType : special.bindType ) || type; +function TransformState(stream) { + this.afterTransform = function (er, data) { + return afterTransform(stream, er, data); + }; - // Update special based on newly reset type - special = jQuery.event.special[ type ] || {}; + this.needTransform = false; + this.transforming = false; + this.writecb = null; + this.writechunk = null; + this.writeencoding = null; +} - // handleObj is passed to all event handlers - handleObj = jQuery.extend( { - type: type, - origType: origType, - data: data, - handler: handler, - guid: handler.guid, - selector: selector, - needsContext: selector && jQuery.expr.match.needsContext.test( selector ), - namespace: namespaces.join( "." ) - }, handleObjIn ); +function afterTransform(stream, er, data) { + var ts = stream._transformState; + ts.transforming = false; - // Init the event handler queue if we're the first - if ( !( handlers = events[ type ] ) ) { - handlers = events[ type ] = []; - handlers.delegateCount = 0; + var cb = ts.writecb; - // Only use addEventListener if the special events handler returns false - if ( !special.setup || - special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + if (!cb) { + return stream.emit('error', new Error('write callback called multiple times')); + } - if ( elem.addEventListener ) { - elem.addEventListener( type, eventHandle ); - } - } - } + ts.writechunk = null; + ts.writecb = null; - if ( special.add ) { - special.add.call( elem, handleObj ); + if (data !== null && data !== undefined) stream.push(data); - if ( !handleObj.handler.guid ) { - handleObj.handler.guid = handler.guid; - } - } + cb(er); - // Add to the element's handler list, delegates in front - if ( selector ) { - handlers.splice( handlers.delegateCount++, 0, handleObj ); - } else { - handlers.push( handleObj ); - } + var rs = stream._readableState; + rs.reading = false; + if (rs.needReadable || rs.length < rs.highWaterMark) { + stream._read(rs.highWaterMark); + } +} - // Keep track of which events have ever been used, for event optimization - jQuery.event.global[ type ] = true; - } +function Transform(options) { + if (!(this instanceof Transform)) return new Transform(options); - }, + Duplex.call(this, options); - // Detach an event or set of events from an element - remove: function( elem, types, handler, selector, mappedTypes ) { + this._transformState = new TransformState(this); - var j, origCount, tmp, - events, t, handleObj, - special, handlers, type, namespaces, origType, - elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); + var stream = this; - if ( !elemData || !( events = elemData.events ) ) { - return; - } + // start out asking for a readable event once data is transformed. + this._readableState.needReadable = true; - // Once for each type.namespace in types; type may be omitted - types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[ t ] ) || []; - type = origType = tmp[ 1 ]; - namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + // we have implemented the _read method, and done the other things + // that Readable wants before the first _read call, so unset the + // sync guard flag. + this._readableState.sync = false; - // Unbind all events (on this namespace, if provided) for the element - if ( !type ) { - for ( type in events ) { - jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); - } - continue; - } + if (options) { + if (typeof options.transform === 'function') this._transform = options.transform; - special = jQuery.event.special[ type ] || {}; - type = ( selector ? special.delegateType : special.bindType ) || type; - handlers = events[ type ] || []; - tmp = tmp[ 2 ] && - new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); + if (typeof options.flush === 'function') this._flush = options.flush; + } - // Remove matching events - origCount = j = handlers.length; - while ( j-- ) { - handleObj = handlers[ j ]; + // When the writable side finishes, then flush out anything remaining. + this.once('prefinish', function () { + if (typeof this._flush === 'function') this._flush(function (er, data) { + done(stream, er, data); + });else done(stream); + }); +} - if ( ( mappedTypes || origType === handleObj.origType ) && - ( !handler || handler.guid === handleObj.guid ) && - ( !tmp || tmp.test( handleObj.namespace ) ) && - ( !selector || selector === handleObj.selector || - selector === "**" && handleObj.selector ) ) { - handlers.splice( j, 1 ); +Transform.prototype.push = function (chunk, encoding) { + this._transformState.needTransform = false; + return Duplex.prototype.push.call(this, chunk, encoding); +}; - if ( handleObj.selector ) { - handlers.delegateCount--; - } - if ( special.remove ) { - special.remove.call( elem, handleObj ); - } - } - } +// This is the part where you do stuff! +// override this function in implementation classes. +// 'chunk' is an input chunk. +// +// Call `push(newChunk)` to pass along transformed output +// to the readable side. You may call 'push' zero or more times. +// +// Call `cb(err)` when you are done with this chunk. If you pass +// an error, then that'll put the hurt on the whole operation. If you +// never call cb(), then you'll never get another chunk. +Transform.prototype._transform = function (chunk, encoding, cb) { + throw new Error('_transform() is not implemented'); +}; - // Remove generic event handler if we removed something and no more handlers exist - // (avoids potential for endless recursion during removal of special event handlers) - if ( origCount && !handlers.length ) { - if ( !special.teardown || - special.teardown.call( elem, namespaces, elemData.handle ) === false ) { +Transform.prototype._write = function (chunk, encoding, cb) { + var ts = this._transformState; + ts.writecb = cb; + ts.writechunk = chunk; + ts.writeencoding = encoding; + if (!ts.transforming) { + var rs = this._readableState; + if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark); + } +}; - jQuery.removeEvent( elem, type, elemData.handle ); - } +// Doesn't matter what the args are here. +// _transform does all the work. +// That we got here means that the readable side wants more data. +Transform.prototype._read = function (n) { + var ts = this._transformState; - delete events[ type ]; - } - } + if (ts.writechunk !== null && ts.writecb && !ts.transforming) { + ts.transforming = true; + this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); + } else { + // mark that we need a transform, so that any data that comes in + // will get processed, now that we've asked for it. + ts.needTransform = true; + } +}; - // Remove data and the expando if it's no longer used - if ( jQuery.isEmptyObject( events ) ) { - dataPriv.remove( elem, "handle events" ); - } - }, +Transform.prototype._destroy = function (err, cb) { + var _this = this; - dispatch: function( nativeEvent ) { + Duplex.prototype._destroy.call(this, err, function (err2) { + cb(err2); + _this.emit('close'); + }); +}; - // Make a writable jQuery.Event from the native event object - var event = jQuery.event.fix( nativeEvent ); +function done(stream, er, data) { + if (er) return stream.emit('error', er); - var i, j, ret, matched, handleObj, handlerQueue, - args = new Array( arguments.length ), - handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [], - special = jQuery.event.special[ event.type ] || {}; + if (data !== null && data !== undefined) stream.push(data); - // Use the fix-ed jQuery.Event rather than the (read-only) native event - args[ 0 ] = event; + // if there's nothing in the write buffer, then that means + // that nothing more will ever be provided + var ws = stream._writableState; + var ts = stream._transformState; - for ( i = 1; i < arguments.length; i++ ) { - args[ i ] = arguments[ i ]; - } + if (ws.length) throw new Error('Calling transform done when ws.length != 0'); - event.delegateTarget = this; + if (ts.transforming) throw new Error('Calling transform done when still transforming'); - // Call the preDispatch hook for the mapped type, and let it bail if desired - if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { - return; - } + return stream.push(null); +} - // Determine handlers - handlerQueue = jQuery.event.handlers.call( this, event, handlers ); +/***/ }), +/* 290 */ +/***/ (function(module, exports) { - // Run delegates first; they may want to stop propagation beneath us - i = 0; - while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { - event.currentTarget = matched.elem; +/** + * lodash (Custom Build) + * Build: `lodash modularize exports="npm" -o ./` + * Copyright jQuery Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */ - j = 0; - while ( ( handleObj = matched.handlers[ j++ ] ) && - !event.isImmediatePropagationStopped() ) { +/** Used as references for various `Number` constants. */ +var MAX_SAFE_INTEGER = 9007199254740991; - // Triggered event must either 1) have no namespace, or 2) have namespace(s) - // a subset or equal to those in the bound event (both can have no namespace). - if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) { +/** `Object#toString` result references. */ +var argsTag = '[object Arguments]', + funcTag = '[object Function]', + genTag = '[object GeneratorFunction]'; - event.handleObj = handleObj; - event.data = handleObj.data; +/** Used to detect unsigned integer values. */ +var reIsUint = /^(?:0|[1-9]\d*)$/; - ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || - handleObj.handler ).apply( matched.elem, args ); +/** + * A faster alternative to `Function#apply`, this function invokes `func` + * with the `this` binding of `thisArg` and the arguments of `args`. + * + * @private + * @param {Function} func The function to invoke. + * @param {*} thisArg The `this` binding of `func`. + * @param {Array} args The arguments to invoke `func` with. + * @returns {*} Returns the result of `func`. + */ +function apply(func, thisArg, args) { + switch (args.length) { + case 0: return func.call(thisArg); + case 1: return func.call(thisArg, args[0]); + case 2: return func.call(thisArg, args[0], args[1]); + case 3: return func.call(thisArg, args[0], args[1], args[2]); + } + return func.apply(thisArg, args); +} - if ( ret !== undefined ) { - if ( ( event.result = ret ) === false ) { - event.preventDefault(); - event.stopPropagation(); - } - } - } - } - } +/** + * The base implementation of `_.times` without support for iteratee shorthands + * or max array length checks. + * + * @private + * @param {number} n The number of times to invoke `iteratee`. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the array of results. + */ +function baseTimes(n, iteratee) { + var index = -1, + result = Array(n); - // Call the postDispatch hook for the mapped type - if ( special.postDispatch ) { - special.postDispatch.call( this, event ); - } + while (++index < n) { + result[index] = iteratee(index); + } + return result; +} - return event.result; - }, +/** Used for built-in method references. */ +var objectProto = Object.prototype; - handlers: function( event, handlers ) { - var i, handleObj, sel, matchedHandlers, matchedSelectors, - handlerQueue = [], - delegateCount = handlers.delegateCount, - cur = event.target; +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; - // Find delegate handlers - if ( delegateCount && +/** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ +var objectToString = objectProto.toString; - // Support: IE <=9 - // Black-hole SVG instance trees (trac-13180) - cur.nodeType && +/** Built-in value references. */ +var propertyIsEnumerable = objectProto.propertyIsEnumerable; - // Support: Firefox <=42 - // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) - // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click - // Support: IE 11 only - // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) - !( event.type === "click" && event.button >= 1 ) ) { +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max; - for ( ; cur !== this; cur = cur.parentNode || this ) { +/** + * Creates an array of the enumerable property names of the array-like `value`. + * + * @private + * @param {*} value The value to query. + * @param {boolean} inherited Specify returning inherited property names. + * @returns {Array} Returns the array of property names. + */ +function arrayLikeKeys(value, inherited) { + // Safari 8.1 makes `arguments.callee` enumerable in strict mode. + // Safari 9 makes `arguments.length` enumerable in strict mode. + var result = (isArray(value) || isArguments(value)) + ? baseTimes(value.length, String) + : []; - // Don't check non-elements (#13208) - // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) - if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) { - matchedHandlers = []; - matchedSelectors = {}; - for ( i = 0; i < delegateCount; i++ ) { - handleObj = handlers[ i ]; + var length = result.length, + skipIndexes = !!length; - // Don't conflict with Object.prototype properties (#13203) - sel = handleObj.selector + " "; + for (var key in value) { + if ((inherited || hasOwnProperty.call(value, key)) && + !(skipIndexes && (key == 'length' || isIndex(key, length)))) { + result.push(key); + } + } + return result; +} - if ( matchedSelectors[ sel ] === undefined ) { - matchedSelectors[ sel ] = handleObj.needsContext ? - jQuery( sel, this ).index( cur ) > -1 : - jQuery.find( sel, this, null, [ cur ] ).length; - } - if ( matchedSelectors[ sel ] ) { - matchedHandlers.push( handleObj ); - } - } - if ( matchedHandlers.length ) { - handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); - } - } - } - } +/** + * Assigns `value` to `key` of `object` if the existing value is not equivalent + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ +function assignValue(object, key, value) { + var objValue = object[key]; + if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || + (value === undefined && !(key in object))) { + object[key] = value; + } +} - // Add the remaining (directly-bound) handlers - cur = this; - if ( delegateCount < handlers.length ) { - handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); - } +/** + * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ +function baseKeysIn(object) { + if (!isObject(object)) { + return nativeKeysIn(object); + } + var isProto = isPrototype(object), + result = []; - return handlerQueue; - }, + for (var key in object) { + if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) { + result.push(key); + } + } + return result; +} - addProp: function( name, hook ) { - Object.defineProperty( jQuery.Event.prototype, name, { - enumerable: true, - configurable: true, +/** + * The base implementation of `_.rest` which doesn't validate or coerce arguments. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @returns {Function} Returns the new function. + */ +function baseRest(func, start) { + start = nativeMax(start === undefined ? (func.length - 1) : start, 0); + return function() { + var args = arguments, + index = -1, + length = nativeMax(args.length - start, 0), + array = Array(length); - get: jQuery.isFunction( hook ) ? - function() { - if ( this.originalEvent ) { - return hook( this.originalEvent ); - } - } : - function() { - if ( this.originalEvent ) { - return this.originalEvent[ name ]; - } - }, + while (++index < length) { + array[index] = args[start + index]; + } + index = -1; + var otherArgs = Array(start + 1); + while (++index < start) { + otherArgs[index] = args[index]; + } + otherArgs[start] = array; + return apply(func, this, otherArgs); + }; +} - set: function( value ) { - Object.defineProperty( this, name, { - enumerable: true, - configurable: true, - writable: true, - value: value - } ); - } - } ); - }, +/** + * Copies properties of `source` to `object`. + * + * @private + * @param {Object} source The object to copy properties from. + * @param {Array} props The property identifiers to copy. + * @param {Object} [object={}] The object to copy properties to. + * @param {Function} [customizer] The function to customize copied values. + * @returns {Object} Returns `object`. + */ +function copyObject(source, props, object, customizer) { + object || (object = {}); - fix: function( originalEvent ) { - return originalEvent[ jQuery.expando ] ? - originalEvent : - new jQuery.Event( originalEvent ); - }, + var index = -1, + length = props.length; - special: { - load: { + while (++index < length) { + var key = props[index]; - // Prevent triggered image.load events from bubbling to window.load - noBubble: true - }, - focus: { + var newValue = customizer + ? customizer(object[key], source[key], key, object, source) + : undefined; - // Fire native event if possible so blur/focus sequence is correct - trigger: function() { - if ( this !== safeActiveElement() && this.focus ) { - this.focus(); - return false; - } - }, - delegateType: "focusin" - }, - blur: { - trigger: function() { - if ( this === safeActiveElement() && this.blur ) { - this.blur(); - return false; - } - }, - delegateType: "focusout" - }, - click: { + assignValue(object, key, newValue === undefined ? source[key] : newValue); + } + return object; +} - // For checkbox, fire native event so checked state will be right - trigger: function() { - if ( this.type === "checkbox" && this.click && nodeName( this, "input" ) ) { - this.click(); - return false; - } - }, +/** + * Creates a function like `_.assign`. + * + * @private + * @param {Function} assigner The function to assign values. + * @returns {Function} Returns the new assigner function. + */ +function createAssigner(assigner) { + return baseRest(function(object, sources) { + var index = -1, + length = sources.length, + customizer = length > 1 ? sources[length - 1] : undefined, + guard = length > 2 ? sources[2] : undefined; - // For cross-browser consistency, don't fire native .click() on links - _default: function( event ) { - return nodeName( event.target, "a" ); - } - }, + customizer = (assigner.length > 3 && typeof customizer == 'function') + ? (length--, customizer) + : undefined; - beforeunload: { - postDispatch: function( event ) { + if (guard && isIterateeCall(sources[0], sources[1], guard)) { + customizer = length < 3 ? undefined : customizer; + length = 1; + } + object = Object(object); + while (++index < length) { + var source = sources[index]; + if (source) { + assigner(object, source, index, customizer); + } + } + return object; + }); +} - // Support: Firefox 20+ - // Firefox doesn't alert if the returnValue field is not set. - if ( event.result !== undefined && event.originalEvent ) { - event.originalEvent.returnValue = event.result; - } - } - } - } -}; +/** + * Checks if `value` is a valid array-like index. + * + * @private + * @param {*} value The value to check. + * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. + * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. + */ +function isIndex(value, length) { + length = length == null ? MAX_SAFE_INTEGER : length; + return !!length && + (typeof value == 'number' || reIsUint.test(value)) && + (value > -1 && value % 1 == 0 && value < length); +} -jQuery.removeEvent = function( elem, type, handle ) { +/** + * Checks if the given arguments are from an iteratee call. + * + * @private + * @param {*} value The potential iteratee value argument. + * @param {*} index The potential iteratee index or key argument. + * @param {*} object The potential iteratee object argument. + * @returns {boolean} Returns `true` if the arguments are from an iteratee call, + * else `false`. + */ +function isIterateeCall(value, index, object) { + if (!isObject(object)) { + return false; + } + var type = typeof index; + if (type == 'number' + ? (isArrayLike(object) && isIndex(index, object.length)) + : (type == 'string' && index in object) + ) { + return eq(object[index], value); + } + return false; +} - // This "if" is needed for plain objects - if ( elem.removeEventListener ) { - elem.removeEventListener( type, handle ); - } -}; +/** + * Checks if `value` is likely a prototype object. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. + */ +function isPrototype(value) { + var Ctor = value && value.constructor, + proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto; -jQuery.Event = function( src, props ) { + return value === proto; +} - // Allow instantiation without the 'new' keyword - if ( !( this instanceof jQuery.Event ) ) { - return new jQuery.Event( src, props ); - } +/** + * This function is like + * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) + * except that it includes inherited enumerable properties. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ +function nativeKeysIn(object) { + var result = []; + if (object != null) { + for (var key in Object(object)) { + result.push(key); + } + } + return result; +} - // Event object - if ( src && src.type ) { - this.originalEvent = src; - this.type = src.type; +/** + * Performs a + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * comparison between two values to determine if they are equivalent. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.eq(object, object); + * // => true + * + * _.eq(object, other); + * // => false + * + * _.eq('a', 'a'); + * // => true + * + * _.eq('a', Object('a')); + * // => false + * + * _.eq(NaN, NaN); + * // => true + */ +function eq(value, other) { + return value === other || (value !== value && other !== other); +} - // Events bubbling up the document may have been marked as prevented - // by a handler lower down the tree; reflect the correct value. - this.isDefaultPrevented = src.defaultPrevented || - src.defaultPrevented === undefined && +/** + * Checks if `value` is likely an `arguments` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + * else `false`. + * @example + * + * _.isArguments(function() { return arguments; }()); + * // => true + * + * _.isArguments([1, 2, 3]); + * // => false + */ +function isArguments(value) { + // Safari 8.1 makes `arguments.callee` enumerable in strict mode. + return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') && + (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag); +} - // Support: Android <=2.3 only - src.returnValue === false ? - returnTrue : - returnFalse; +/** + * Checks if `value` is classified as an `Array` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array, else `false`. + * @example + * + * _.isArray([1, 2, 3]); + * // => true + * + * _.isArray(document.body.children); + * // => false + * + * _.isArray('abc'); + * // => false + * + * _.isArray(_.noop); + * // => false + */ +var isArray = Array.isArray; - // Create target properties - // Support: Safari <=6 - 7 only - // Target should not be a text node (#504, #13143) - this.target = ( src.target && src.target.nodeType === 3 ) ? - src.target.parentNode : - src.target; +/** + * Checks if `value` is array-like. A value is considered array-like if it's + * not a function and has a `value.length` that's an integer greater than or + * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + * @example + * + * _.isArrayLike([1, 2, 3]); + * // => true + * + * _.isArrayLike(document.body.children); + * // => true + * + * _.isArrayLike('abc'); + * // => true + * + * _.isArrayLike(_.noop); + * // => false + */ +function isArrayLike(value) { + return value != null && isLength(value.length) && !isFunction(value); +} - this.currentTarget = src.currentTarget; - this.relatedTarget = src.relatedTarget; +/** + * This method is like `_.isArrayLike` except that it also checks if `value` + * is an object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array-like object, + * else `false`. + * @example + * + * _.isArrayLikeObject([1, 2, 3]); + * // => true + * + * _.isArrayLikeObject(document.body.children); + * // => true + * + * _.isArrayLikeObject('abc'); + * // => false + * + * _.isArrayLikeObject(_.noop); + * // => false + */ +function isArrayLikeObject(value) { + return isObjectLike(value) && isArrayLike(value); +} - // Event type - } else { - this.type = src; - } +/** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a function, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */ +function isFunction(value) { + // The use of `Object#toString` avoids issues with the `typeof` operator + // in Safari 8-9 which returns 'object' for typed array and other constructors. + var tag = isObject(value) ? objectToString.call(value) : ''; + return tag == funcTag || tag == genTag; +} - // Put explicitly provided properties onto the event object - if ( props ) { - jQuery.extend( this, props ); - } +/** + * Checks if `value` is a valid array-like length. + * + * **Note:** This method is loosely based on + * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + * @example + * + * _.isLength(3); + * // => true + * + * _.isLength(Number.MIN_VALUE); + * // => false + * + * _.isLength(Infinity); + * // => false + * + * _.isLength('3'); + * // => false + */ +function isLength(value) { + return typeof value == 'number' && + value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; +} - // Create a timestamp if incoming event doesn't have one - this.timeStamp = src && src.timeStamp || jQuery.now(); +/** + * Checks if `value` is the + * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) + * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(_.noop); + * // => true + * + * _.isObject(null); + * // => false + */ +function isObject(value) { + var type = typeof value; + return !!value && (type == 'object' || type == 'function'); +} - // Mark it as fixed - this[ jQuery.expando ] = true; -}; - -// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding -// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html -jQuery.Event.prototype = { - constructor: jQuery.Event, - isDefaultPrevented: returnFalse, - isPropagationStopped: returnFalse, - isImmediatePropagationStopped: returnFalse, - isSimulated: false, - - preventDefault: function() { - var e = this.originalEvent; - - this.isDefaultPrevented = returnTrue; - - if ( e && !this.isSimulated ) { - e.preventDefault(); - } - }, - stopPropagation: function() { - var e = this.originalEvent; +/** + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false + */ +function isObjectLike(value) { + return !!value && typeof value == 'object'; +} - this.isPropagationStopped = returnTrue; +/** + * This method is like `_.assign` except that it iterates over own and + * inherited source properties. + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @alias extend + * @category Object + * @param {Object} object The destination object. + * @param {...Object} [sources] The source objects. + * @returns {Object} Returns `object`. + * @see _.assign + * @example + * + * function Foo() { + * this.a = 1; + * } + * + * function Bar() { + * this.c = 3; + * } + * + * Foo.prototype.b = 2; + * Bar.prototype.d = 4; + * + * _.assignIn({ 'a': 0 }, new Foo, new Bar); + * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 } + */ +var assignIn = createAssigner(function(object, source) { + copyObject(source, keysIn(source), object); +}); - if ( e && !this.isSimulated ) { - e.stopPropagation(); - } - }, - stopImmediatePropagation: function() { - var e = this.originalEvent; +/** + * Creates an array of the own and inherited enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keysIn(new Foo); + * // => ['a', 'b', 'c'] (iteration order is not guaranteed) + */ +function keysIn(object) { + return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); +} - this.isImmediatePropagationStopped = returnTrue; +module.exports = assignIn; - if ( e && !this.isSimulated ) { - e.stopImmediatePropagation(); - } - this.stopPropagation(); - } -}; +/***/ }), +/* 291 */ +/***/ (function(module, exports) { -// Includes all common event props including KeyEvent and MouseEvent specific props -jQuery.each( { - altKey: true, - bubbles: true, - cancelable: true, - changedTouches: true, - ctrlKey: true, - detail: true, - eventPhase: true, - metaKey: true, - pageX: true, - pageY: true, - shiftKey: true, - view: true, - "char": true, - charCode: true, - key: true, - keyCode: true, - button: true, - buttons: true, - clientX: true, - clientY: true, - offsetX: true, - offsetY: true, - pointerId: true, - pointerType: true, - screenX: true, - screenY: true, - targetTouches: true, - toElement: true, - touches: true, +/** + * lodash (Custom Build) + * Build: `lodash modularize exports="npm" -o ./` + * Copyright jQuery Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */ - which: function( event ) { - var button = event.button; +/** Used as references for various `Number` constants. */ +var MAX_SAFE_INTEGER = 9007199254740991; - // Add which for key events - if ( event.which == null && rkeyEvent.test( event.type ) ) { - return event.charCode != null ? event.charCode : event.keyCode; - } +/** `Object#toString` result references. */ +var argsTag = '[object Arguments]', + funcTag = '[object Function]', + genTag = '[object GeneratorFunction]'; - // Add which for click: 1 === left; 2 === middle; 3 === right - if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) { - if ( button & 1 ) { - return 1; - } +/** Used to detect unsigned integer values. */ +var reIsUint = /^(?:0|[1-9]\d*)$/; - if ( button & 2 ) { - return 3; - } +/** + * A faster alternative to `Function#apply`, this function invokes `func` + * with the `this` binding of `thisArg` and the arguments of `args`. + * + * @private + * @param {Function} func The function to invoke. + * @param {*} thisArg The `this` binding of `func`. + * @param {Array} args The arguments to invoke `func` with. + * @returns {*} Returns the result of `func`. + */ +function apply(func, thisArg, args) { + switch (args.length) { + case 0: return func.call(thisArg); + case 1: return func.call(thisArg, args[0]); + case 2: return func.call(thisArg, args[0], args[1]); + case 3: return func.call(thisArg, args[0], args[1], args[2]); + } + return func.apply(thisArg, args); +} - if ( button & 4 ) { - return 2; - } +/** + * The base implementation of `_.times` without support for iteratee shorthands + * or max array length checks. + * + * @private + * @param {number} n The number of times to invoke `iteratee`. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the array of results. + */ +function baseTimes(n, iteratee) { + var index = -1, + result = Array(n); - return 0; - } + while (++index < n) { + result[index] = iteratee(index); + } + return result; +} - return event.which; - } -}, jQuery.event.addProp ); +/** Used for built-in method references. */ +var objectProto = Object.prototype; -// Create mouseenter/leave events using mouseover/out and event-time checks -// so that event delegation works in jQuery. -// Do the same for pointerenter/pointerleave and pointerover/pointerout -// -// Support: Safari 7 only -// Safari sends mouseenter too often; see: -// https://bugs.chromium.org/p/chromium/issues/detail?id=470258 -// for the description of the bug (it existed in older Chrome versions as well). -jQuery.each( { - mouseenter: "mouseover", - mouseleave: "mouseout", - pointerenter: "pointerover", - pointerleave: "pointerout" -}, function( orig, fix ) { - jQuery.event.special[ orig ] = { - delegateType: fix, - bindType: fix, +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; - handle: function( event ) { - var ret, - target = this, - related = event.relatedTarget, - handleObj = event.handleObj; +/** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ +var objectToString = objectProto.toString; - // For mouseenter/leave call the handler if related is outside the target. - // NB: No relatedTarget if the mouse left/entered the browser window - if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { - event.type = handleObj.origType; - ret = handleObj.handler.apply( this, arguments ); - event.type = fix; - } - return ret; - } - }; -} ); +/** Built-in value references. */ +var propertyIsEnumerable = objectProto.propertyIsEnumerable; -jQuery.fn.extend( { +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max; - on: function( types, selector, data, fn ) { - return on( this, types, selector, data, fn ); - }, - one: function( types, selector, data, fn ) { - return on( this, types, selector, data, fn, 1 ); - }, - off: function( types, selector, fn ) { - var handleObj, type; - if ( types && types.preventDefault && types.handleObj ) { +/** + * Creates an array of the enumerable property names of the array-like `value`. + * + * @private + * @param {*} value The value to query. + * @param {boolean} inherited Specify returning inherited property names. + * @returns {Array} Returns the array of property names. + */ +function arrayLikeKeys(value, inherited) { + // Safari 8.1 makes `arguments.callee` enumerable in strict mode. + // Safari 9 makes `arguments.length` enumerable in strict mode. + var result = (isArray(value) || isArguments(value)) + ? baseTimes(value.length, String) + : []; - // ( event ) dispatched jQuery.Event - handleObj = types.handleObj; - jQuery( types.delegateTarget ).off( - handleObj.namespace ? - handleObj.origType + "." + handleObj.namespace : - handleObj.origType, - handleObj.selector, - handleObj.handler - ); - return this; - } - if ( typeof types === "object" ) { + var length = result.length, + skipIndexes = !!length; - // ( types-object [, selector] ) - for ( type in types ) { - this.off( type, selector, types[ type ] ); - } - return this; - } - if ( selector === false || typeof selector === "function" ) { + for (var key in value) { + if ((inherited || hasOwnProperty.call(value, key)) && + !(skipIndexes && (key == 'length' || isIndex(key, length)))) { + result.push(key); + } + } + return result; +} - // ( types [, fn] ) - fn = selector; - selector = undefined; - } - if ( fn === false ) { - fn = returnFalse; - } - return this.each( function() { - jQuery.event.remove( this, types, fn, selector ); - } ); - } -} ); +/** + * Used by `_.defaults` to customize its `_.assignIn` use. + * + * @private + * @param {*} objValue The destination value. + * @param {*} srcValue The source value. + * @param {string} key The key of the property to assign. + * @param {Object} object The parent object of `objValue`. + * @returns {*} Returns the value to assign. + */ +function assignInDefaults(objValue, srcValue, key, object) { + if (objValue === undefined || + (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) { + return srcValue; + } + return objValue; +} +/** + * Assigns `value` to `key` of `object` if the existing value is not equivalent + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ +function assignValue(object, key, value) { + var objValue = object[key]; + if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || + (value === undefined && !(key in object))) { + object[key] = value; + } +} -var +/** + * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ +function baseKeysIn(object) { + if (!isObject(object)) { + return nativeKeysIn(object); + } + var isProto = isPrototype(object), + result = []; - /* eslint-disable max-len */ + for (var key in object) { + if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) { + result.push(key); + } + } + return result; +} - // See https://github.com/eslint/eslint/issues/3229 - rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi, +/** + * The base implementation of `_.rest` which doesn't validate or coerce arguments. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @returns {Function} Returns the new function. + */ +function baseRest(func, start) { + start = nativeMax(start === undefined ? (func.length - 1) : start, 0); + return function() { + var args = arguments, + index = -1, + length = nativeMax(args.length - start, 0), + array = Array(length); - /* eslint-enable */ + while (++index < length) { + array[index] = args[start + index]; + } + index = -1; + var otherArgs = Array(start + 1); + while (++index < start) { + otherArgs[index] = args[index]; + } + otherArgs[start] = array; + return apply(func, this, otherArgs); + }; +} - // Support: IE <=10 - 11, Edge 12 - 13 - // In IE/Edge using regex groups here causes severe slowdowns. - // See https://connect.microsoft.com/IE/feedback/details/1736512/ - rnoInnerhtml = /\s*$/g; + var index = -1, + length = props.length; -// Prefer a tbody over its parent table for containing new rows -function manipulationTarget( elem, content ) { - if ( nodeName( elem, "table" ) && - nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { + while (++index < length) { + var key = props[index]; - return jQuery( ">tbody", elem )[ 0 ] || elem; - } + var newValue = customizer + ? customizer(object[key], source[key], key, object, source) + : undefined; - return elem; + assignValue(object, key, newValue === undefined ? source[key] : newValue); + } + return object; } -// Replace/restore the type attribute of script elements for safe DOM manipulation -function disableScript( elem ) { - elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; - return elem; -} -function restoreScript( elem ) { - var match = rscriptTypeMasked.exec( elem.type ); +/** + * Creates a function like `_.assign`. + * + * @private + * @param {Function} assigner The function to assign values. + * @returns {Function} Returns the new assigner function. + */ +function createAssigner(assigner) { + return baseRest(function(object, sources) { + var index = -1, + length = sources.length, + customizer = length > 1 ? sources[length - 1] : undefined, + guard = length > 2 ? sources[2] : undefined; - if ( match ) { - elem.type = match[ 1 ]; - } else { - elem.removeAttribute( "type" ); - } + customizer = (assigner.length > 3 && typeof customizer == 'function') + ? (length--, customizer) + : undefined; - return elem; + if (guard && isIterateeCall(sources[0], sources[1], guard)) { + customizer = length < 3 ? undefined : customizer; + length = 1; + } + object = Object(object); + while (++index < length) { + var source = sources[index]; + if (source) { + assigner(object, source, index, customizer); + } + } + return object; + }); } -function cloneCopyEvent( src, dest ) { - var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; +/** + * Checks if `value` is a valid array-like index. + * + * @private + * @param {*} value The value to check. + * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. + * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. + */ +function isIndex(value, length) { + length = length == null ? MAX_SAFE_INTEGER : length; + return !!length && + (typeof value == 'number' || reIsUint.test(value)) && + (value > -1 && value % 1 == 0 && value < length); +} - if ( dest.nodeType !== 1 ) { - return; - } +/** + * Checks if the given arguments are from an iteratee call. + * + * @private + * @param {*} value The potential iteratee value argument. + * @param {*} index The potential iteratee index or key argument. + * @param {*} object The potential iteratee object argument. + * @returns {boolean} Returns `true` if the arguments are from an iteratee call, + * else `false`. + */ +function isIterateeCall(value, index, object) { + if (!isObject(object)) { + return false; + } + var type = typeof index; + if (type == 'number' + ? (isArrayLike(object) && isIndex(index, object.length)) + : (type == 'string' && index in object) + ) { + return eq(object[index], value); + } + return false; +} - // 1. Copy private data: events, handlers, etc. - if ( dataPriv.hasData( src ) ) { - pdataOld = dataPriv.access( src ); - pdataCur = dataPriv.set( dest, pdataOld ); - events = pdataOld.events; +/** + * Checks if `value` is likely a prototype object. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. + */ +function isPrototype(value) { + var Ctor = value && value.constructor, + proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto; - if ( events ) { - delete pdataCur.handle; - pdataCur.events = {}; + return value === proto; +} - for ( type in events ) { - for ( i = 0, l = events[ type ].length; i < l; i++ ) { - jQuery.event.add( dest, type, events[ type ][ i ] ); - } - } - } - } +/** + * This function is like + * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) + * except that it includes inherited enumerable properties. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ +function nativeKeysIn(object) { + var result = []; + if (object != null) { + for (var key in Object(object)) { + result.push(key); + } + } + return result; +} - // 2. Copy user data - if ( dataUser.hasData( src ) ) { - udataOld = dataUser.access( src ); - udataCur = jQuery.extend( {}, udataOld ); +/** + * Performs a + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * comparison between two values to determine if they are equivalent. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.eq(object, object); + * // => true + * + * _.eq(object, other); + * // => false + * + * _.eq('a', 'a'); + * // => true + * + * _.eq('a', Object('a')); + * // => false + * + * _.eq(NaN, NaN); + * // => true + */ +function eq(value, other) { + return value === other || (value !== value && other !== other); +} - dataUser.set( dest, udataCur ); - } +/** + * Checks if `value` is likely an `arguments` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + * else `false`. + * @example + * + * _.isArguments(function() { return arguments; }()); + * // => true + * + * _.isArguments([1, 2, 3]); + * // => false + */ +function isArguments(value) { + // Safari 8.1 makes `arguments.callee` enumerable in strict mode. + return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') && + (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag); } -// Fix IE bugs, see support tests -function fixInput( src, dest ) { - var nodeName = dest.nodeName.toLowerCase(); +/** + * Checks if `value` is classified as an `Array` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array, else `false`. + * @example + * + * _.isArray([1, 2, 3]); + * // => true + * + * _.isArray(document.body.children); + * // => false + * + * _.isArray('abc'); + * // => false + * + * _.isArray(_.noop); + * // => false + */ +var isArray = Array.isArray; - // Fails to persist the checked state of a cloned checkbox or radio button. - if ( nodeName === "input" && rcheckableType.test( src.type ) ) { - dest.checked = src.checked; +/** + * Checks if `value` is array-like. A value is considered array-like if it's + * not a function and has a `value.length` that's an integer greater than or + * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + * @example + * + * _.isArrayLike([1, 2, 3]); + * // => true + * + * _.isArrayLike(document.body.children); + * // => true + * + * _.isArrayLike('abc'); + * // => true + * + * _.isArrayLike(_.noop); + * // => false + */ +function isArrayLike(value) { + return value != null && isLength(value.length) && !isFunction(value); +} - // Fails to return the selected option to the default selected state when cloning options - } else if ( nodeName === "input" || nodeName === "textarea" ) { - dest.defaultValue = src.defaultValue; - } +/** + * This method is like `_.isArrayLike` except that it also checks if `value` + * is an object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array-like object, + * else `false`. + * @example + * + * _.isArrayLikeObject([1, 2, 3]); + * // => true + * + * _.isArrayLikeObject(document.body.children); + * // => true + * + * _.isArrayLikeObject('abc'); + * // => false + * + * _.isArrayLikeObject(_.noop); + * // => false + */ +function isArrayLikeObject(value) { + return isObjectLike(value) && isArrayLike(value); } -function domManip( collection, args, callback, ignored ) { +/** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a function, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */ +function isFunction(value) { + // The use of `Object#toString` avoids issues with the `typeof` operator + // in Safari 8-9 which returns 'object' for typed array and other constructors. + var tag = isObject(value) ? objectToString.call(value) : ''; + return tag == funcTag || tag == genTag; +} - // Flatten any nested arrays - args = concat.apply( [], args ); +/** + * Checks if `value` is a valid array-like length. + * + * **Note:** This method is loosely based on + * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + * @example + * + * _.isLength(3); + * // => true + * + * _.isLength(Number.MIN_VALUE); + * // => false + * + * _.isLength(Infinity); + * // => false + * + * _.isLength('3'); + * // => false + */ +function isLength(value) { + return typeof value == 'number' && + value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; +} - var fragment, first, scripts, hasScripts, node, doc, - i = 0, - l = collection.length, - iNoClone = l - 1, - value = args[ 0 ], - isFunction = jQuery.isFunction( value ); +/** + * Checks if `value` is the + * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) + * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(_.noop); + * // => true + * + * _.isObject(null); + * // => false + */ +function isObject(value) { + var type = typeof value; + return !!value && (type == 'object' || type == 'function'); +} - // We can't cloneNode fragments that contain checked, in WebKit - if ( isFunction || - ( l > 1 && typeof value === "string" && - !support.checkClone && rchecked.test( value ) ) ) { - return collection.each( function( index ) { - var self = collection.eq( index ); - if ( isFunction ) { - args[ 0 ] = value.call( this, index, self.html() ); - } - domManip( self, args, callback, ignored ); - } ); - } +/** + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false + */ +function isObjectLike(value) { + return !!value && typeof value == 'object'; +} - if ( l ) { - fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); - first = fragment.firstChild; +/** + * This method is like `_.assignIn` except that it accepts `customizer` + * which is invoked to produce the assigned values. If `customizer` returns + * `undefined`, assignment is handled by the method instead. The `customizer` + * is invoked with five arguments: (objValue, srcValue, key, object, source). + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @alias extendWith + * @category Object + * @param {Object} object The destination object. + * @param {...Object} sources The source objects. + * @param {Function} [customizer] The function to customize assigned values. + * @returns {Object} Returns `object`. + * @see _.assignWith + * @example + * + * function customizer(objValue, srcValue) { + * return _.isUndefined(objValue) ? srcValue : objValue; + * } + * + * var defaults = _.partialRight(_.assignInWith, customizer); + * + * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); + * // => { 'a': 1, 'b': 2 } + */ +var assignInWith = createAssigner(function(object, source, srcIndex, customizer) { + copyObject(source, keysIn(source), object, customizer); +}); - if ( fragment.childNodes.length === 1 ) { - fragment = first; - } +/** + * Assigns own and inherited enumerable string keyed properties of source + * objects to the destination object for all destination properties that + * resolve to `undefined`. Source objects are applied from left to right. + * Once a property is set, additional values of the same property are ignored. + * + * **Note:** This method mutates `object`. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The destination object. + * @param {...Object} [sources] The source objects. + * @returns {Object} Returns `object`. + * @see _.defaultsDeep + * @example + * + * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); + * // => { 'a': 1, 'b': 2 } + */ +var defaults = baseRest(function(args) { + args.push(undefined, assignInDefaults); + return apply(assignInWith, undefined, args); +}); - // Require either new content or an interest in ignored elements to invoke the callback - if ( first || ignored ) { - scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); - hasScripts = scripts.length; +/** + * Creates an array of the own and inherited enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keysIn(new Foo); + * // => ['a', 'b', 'c'] (iteration order is not guaranteed) + */ +function keysIn(object) { + return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); +} - // Use the original fragment for the last item - // instead of the first because it can end up - // being emptied incorrectly in certain situations (#8070). - for ( ; i < l; i++ ) { - node = fragment; +module.exports = defaults; - if ( i !== iNoClone ) { - node = jQuery.clone( node, true, true ); - // Keep references to cloned scripts for later restoration - if ( hasScripts ) { +/***/ }), +/* 292 */ +/***/ (function(module, exports, __webpack_require__) { - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( scripts, getAll( node, "script" ) ); - } - } +"use strict"; - callback.call( collection[ i ], node, i ); - } - if ( hasScripts ) { - doc = scripts[ scripts.length - 1 ].ownerDocument; +module.exports = CSSselect; - // Reenable scripts - jQuery.map( scripts, restoreScript ); +var Pseudos = __webpack_require__(174), + DomUtils = __webpack_require__(46), + findOne = DomUtils.findOne, + findAll = DomUtils.findAll, + getChildren = DomUtils.getChildren, + removeSubsets = DomUtils.removeSubsets, + falseFunc = __webpack_require__(69).falseFunc, + compile = __webpack_require__(614), + compileUnsafe = compile.compileUnsafe, + compileToken = compile.compileToken; - // Evaluate executable scripts on first document insertion - for ( i = 0; i < hasScripts; i++ ) { - node = scripts[ i ]; - if ( rscriptType.test( node.type || "" ) && - !dataPriv.access( node, "globalEval" ) && - jQuery.contains( doc, node ) ) { +function getSelectorFunc(searchFunc){ + return function select(query, elems, options){ + if(typeof query !== "function") query = compileUnsafe(query, options, elems); + if(!Array.isArray(elems)) elems = getChildren(elems); + else elems = removeSubsets(elems); + return searchFunc(query, elems); + }; +} - if ( node.src ) { +var selectAll = getSelectorFunc(function selectAll(query, elems){ + return (query === falseFunc || !elems || elems.length === 0) ? [] : findAll(query, elems); +}); - // Optional AJAX dependency, but won't run scripts if not present - if ( jQuery._evalUrl ) { - jQuery._evalUrl( node.src ); - } - } else { - DOMEval( node.textContent.replace( rcleanScript, "" ), doc ); - } - } - } - } - } - } +var selectOne = getSelectorFunc(function selectOne(query, elems){ + return (query === falseFunc || !elems || elems.length === 0) ? null : findOne(query, elems); +}); - return collection; +function is(elem, query, options){ + return (typeof query === "function" ? query : compile(query, options))(elem); } -function remove( elem, selector, keepData ) { - var node, - nodes = selector ? jQuery.filter( selector, elem ) : elem, - i = 0; - - for ( ; ( node = nodes[ i ] ) != null; i++ ) { - if ( !keepData && node.nodeType === 1 ) { - jQuery.cleanData( getAll( node ) ); - } - - if ( node.parentNode ) { - if ( keepData && jQuery.contains( node.ownerDocument, node ) ) { - setGlobalEval( getAll( node, "script" ) ); - } - node.parentNode.removeChild( node ); - } - } - - return elem; +/* + the exported interface +*/ +function CSSselect(query, elems, options){ + return selectAll(query, elems, options); } -jQuery.extend( { - htmlPrefilter: function( html ) { - return html.replace( rxhtmlTag, "<$1>" ); - }, - - clone: function( elem, dataAndEvents, deepDataAndEvents ) { - var i, l, srcElements, destElements, - clone = elem.cloneNode( true ), - inPage = jQuery.contains( elem.ownerDocument, elem ); +CSSselect.compile = compile; +CSSselect.filters = Pseudos.filters; +CSSselect.pseudos = Pseudos.pseudos; - // Fix IE cloning issues - if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && - !jQuery.isXMLDoc( elem ) ) { +CSSselect.selectAll = selectAll; +CSSselect.selectOne = selectOne; - // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2 - destElements = getAll( clone ); - srcElements = getAll( elem ); +CSSselect.is = is; - for ( i = 0, l = srcElements.length; i < l; i++ ) { - fixInput( srcElements[ i ], destElements[ i ] ); - } - } +//legacy methods (might be removed) +CSSselect.parse = compile; +CSSselect.iterate = selectAll; - // Copy the events from the original to the clone - if ( dataAndEvents ) { - if ( deepDataAndEvents ) { - srcElements = srcElements || getAll( elem ); - destElements = destElements || getAll( clone ); +//hooks +CSSselect._compileUnsafe = compileUnsafe; +CSSselect._compileToken = compileToken; - for ( i = 0, l = srcElements.length; i < l; i++ ) { - cloneCopyEvent( srcElements[ i ], destElements[ i ] ); - } - } else { - cloneCopyEvent( elem, clone ); - } - } - // Preserve script evaluation history - destElements = getAll( clone, "script" ); - if ( destElements.length > 0 ) { - setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); - } +/***/ }), +/* 293 */ +/***/ (function(module, exports, __webpack_require__) { - // Return the cloned set - return clone; - }, +var DomUtils = __webpack_require__(46), + hasAttrib = DomUtils.hasAttrib, + getAttributeValue = DomUtils.getAttributeValue, + falseFunc = __webpack_require__(69).falseFunc; - cleanData: function( elems ) { - var data, elem, type, - special = jQuery.event.special, - i = 0; +//https://github.com/slevithan/XRegExp/blob/master/src/xregexp.js#L469 +var reChars = /[-[\]{}()*+?.,\\^$|#\s]/g; - for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { - if ( acceptData( elem ) ) { - if ( ( data = elem[ dataPriv.expando ] ) ) { - if ( data.events ) { - for ( type in data.events ) { - if ( special[ type ] ) { - jQuery.event.remove( elem, type ); +/* + attribute selectors +*/ - // This is a shortcut to avoid jQuery.event.remove's overhead - } else { - jQuery.removeEvent( elem, type, data.handle ); - } - } - } +var attributeRules = { + __proto__: null, + equals: function(next, data){ + var name = data.name, + value = data.value; - // Support: Chrome <=35 - 45+ - // Assign undefined instead of using delete, see Data#remove - elem[ dataPriv.expando ] = undefined; - } - if ( elem[ dataUser.expando ] ) { + if(data.ignoreCase){ + value = value.toLowerCase(); - // Support: Chrome <=35 - 45+ - // Assign undefined instead of using delete, see Data#remove - elem[ dataUser.expando ] = undefined; - } - } + return function equalsIC(elem){ + var attr = getAttributeValue(elem, name); + return attr != null && attr.toLowerCase() === value && next(elem); + }; } - } -} ); - -jQuery.fn.extend( { - detach: function( selector ) { - return remove( this, selector, true ); - }, - - remove: function( selector ) { - return remove( this, selector ); - }, - - text: function( value ) { - return access( this, function( value ) { - return value === undefined ? - jQuery.text( this ) : - this.empty().each( function() { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - this.textContent = value; - } - } ); - }, null, value, arguments.length ); - }, - append: function() { - return domManip( this, arguments, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - var target = manipulationTarget( this, elem ); - target.appendChild( elem ); - } - } ); + return function equals(elem){ + return getAttributeValue(elem, name) === value && next(elem); + }; }, + hyphen: function(next, data){ + var name = data.name, + value = data.value, + len = value.length; - prepend: function() { - return domManip( this, arguments, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - var target = manipulationTarget( this, elem ); - target.insertBefore( elem, target.firstChild ); - } - } ); - }, + if(data.ignoreCase){ + value = value.toLowerCase(); - before: function() { - return domManip( this, arguments, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this ); - } - } ); - }, + return function hyphenIC(elem){ + var attr = getAttributeValue(elem, name); + return attr != null && + (attr.length === len || attr.charAt(len) === "-") && + attr.substr(0, len).toLowerCase() === value && + next(elem); + }; + } - after: function() { - return domManip( this, arguments, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this.nextSibling ); - } - } ); + return function hyphen(elem){ + var attr = getAttributeValue(elem, name); + return attr != null && + attr.substr(0, len) === value && + (attr.length === len || attr.charAt(len) === "-") && + next(elem); + }; }, + element: function(next, data){ + var name = data.name, + value = data.value; - empty: function() { - var elem, - i = 0; - - for ( ; ( elem = this[ i ] ) != null; i++ ) { - if ( elem.nodeType === 1 ) { - - // Prevent memory leaks - jQuery.cleanData( getAll( elem, false ) ); - - // Remove any remaining nodes - elem.textContent = ""; - } + if(/\s/.test(value)){ + return falseFunc; } - return this; - }, + value = value.replace(reChars, "\\$&"); - clone: function( dataAndEvents, deepDataAndEvents ) { - dataAndEvents = dataAndEvents == null ? false : dataAndEvents; - deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + var pattern = "(?:^|\\s)" + value + "(?:$|\\s)", + flags = data.ignoreCase ? "i" : "", + regex = new RegExp(pattern, flags); - return this.map( function() { - return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); - } ); + return function element(elem){ + var attr = getAttributeValue(elem, name); + return attr != null && regex.test(attr) && next(elem); + }; }, - - html: function( value ) { - return access( this, function( value ) { - var elem = this[ 0 ] || {}, - i = 0, - l = this.length; - - if ( value === undefined && elem.nodeType === 1 ) { - return elem.innerHTML; - } - - // See if we can take a shortcut and just use innerHTML - if ( typeof value === "string" && !rnoInnerhtml.test( value ) && - !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { - - value = jQuery.htmlPrefilter( value ); - - try { - for ( ; i < l; i++ ) { - elem = this[ i ] || {}; - - // Remove element nodes and prevent memory leaks - if ( elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem, false ) ); - elem.innerHTML = value; - } - } - - elem = 0; - - // If using innerHTML throws an exception, use the fallback method - } catch ( e ) {} - } - - if ( elem ) { - this.empty().append( value ); - } - }, null, value, arguments.length ); + exists: function(next, data){ + var name = data.name; + return function exists(elem){ + return hasAttrib(elem, name) && next(elem); + }; }, + start: function(next, data){ + var name = data.name, + value = data.value, + len = value.length; - replaceWith: function() { - var ignored = []; - - // Make the changes, replacing each non-ignored context element with the new content - return domManip( this, arguments, function( elem ) { - var parent = this.parentNode; - - if ( jQuery.inArray( this, ignored ) < 0 ) { - jQuery.cleanData( getAll( this ) ); - if ( parent ) { - parent.replaceChild( elem, this ); - } - } - - // Force callback invocation - }, ignored ); - } -} ); - -jQuery.each( { - appendTo: "append", - prependTo: "prepend", - insertBefore: "before", - insertAfter: "after", - replaceAll: "replaceWith" -}, function( name, original ) { - jQuery.fn[ name ] = function( selector ) { - var elems, - ret = [], - insert = jQuery( selector ), - last = insert.length - 1, - i = 0; - - for ( ; i <= last; i++ ) { - elems = i === last ? this : this.clone( true ); - jQuery( insert[ i ] )[ original ]( elems ); - - // Support: Android <=4.0 only, PhantomJS 1 only - // .get() because push.apply(_, arraylike) throws on ancient WebKit - push.apply( ret, elems.get() ); + if(len === 0){ + return falseFunc; } + + if(data.ignoreCase){ + value = value.toLowerCase(); - return this.pushStack( ret ); - }; -} ); -var rmargin = ( /^margin/ ); - -var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); - -var getStyles = function( elem ) { - - // Support: IE <=11 only, Firefox <=30 (#15098, #14150) - // IE throws on elements created in popups - // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" - var view = elem.ownerDocument.defaultView; - - if ( !view || !view.opener ) { - view = window; + return function startIC(elem){ + var attr = getAttributeValue(elem, name); + return attr != null && attr.substr(0, len).toLowerCase() === value && next(elem); + }; } - return view.getComputedStyle( elem ); - }; - - + return function start(elem){ + var attr = getAttributeValue(elem, name); + return attr != null && attr.substr(0, len) === value && next(elem); + }; + }, + end: function(next, data){ + var name = data.name, + value = data.value, + len = -value.length; -( function() { + if(len === 0){ + return falseFunc; + } - // Executing both pixelPosition & boxSizingReliable tests require only one layout - // so they're executed at the same time to save the second computation. - function computeStyleTests() { + if(data.ignoreCase){ + value = value.toLowerCase(); - // This is a singleton, we need to execute it only once - if ( !div ) { - return; + return function endIC(elem){ + var attr = getAttributeValue(elem, name); + return attr != null && attr.substr(len).toLowerCase() === value && next(elem); + }; } - div.style.cssText = - "box-sizing:border-box;" + - "position:relative;display:block;" + - "margin:auto;border:1px;padding:1px;" + - "top:1%;width:50%"; - div.innerHTML = ""; - documentElement.appendChild( container ); + return function end(elem){ + var attr = getAttributeValue(elem, name); + return attr != null && attr.substr(len) === value && next(elem); + }; + }, + any: function(next, data){ + var name = data.name, + value = data.value; - var divStyle = window.getComputedStyle( div ); - pixelPositionVal = divStyle.top !== "1%"; + if(value === ""){ + return falseFunc; + } - // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 - reliableMarginLeftVal = divStyle.marginLeft === "2px"; - boxSizingReliableVal = divStyle.width === "4px"; + if(data.ignoreCase){ + var regex = new RegExp(value.replace(reChars, "\\$&"), "i"); - // Support: Android 4.0 - 4.3 only - // Some styles come back with percentage values, even though they shouldn't - div.style.marginRight = "50%"; - pixelMarginRightVal = divStyle.marginRight === "4px"; + return function anyIC(elem){ + var attr = getAttributeValue(elem, name); + return attr != null && regex.test(attr) && next(elem); + }; + } - documentElement.removeChild( container ); + return function any(elem){ + var attr = getAttributeValue(elem, name); + return attr != null && attr.indexOf(value) >= 0 && next(elem); + }; + }, + not: function(next, data){ + var name = data.name, + value = data.value; - // Nullify the div so it wouldn't be stored in the memory and - // it will also be a sign that checks already performed - div = null; - } + if(value === ""){ + return function notEmpty(elem){ + return !!getAttributeValue(elem, name) && next(elem); + }; + } else if(data.ignoreCase){ + value = value.toLowerCase(); - var pixelPositionVal, boxSizingReliableVal, pixelMarginRightVal, reliableMarginLeftVal, - container = document.createElement( "div" ), - div = document.createElement( "div" ); + return function notIC(elem){ + var attr = getAttributeValue(elem, name); + return attr != null && attr.toLowerCase() !== value && next(elem); + }; + } - // Finish early in limited (non-browser) environments - if ( !div.style ) { - return; + return function not(elem){ + return getAttributeValue(elem, name) !== value && next(elem); + }; } +}; - // Support: IE <=9 - 11 only - // Style of cloned element affects source element cloned (#8908) - div.style.backgroundClip = "content-box"; - div.cloneNode( true ).style.backgroundClip = ""; - support.clearCloneStyle = div.style.backgroundClip === "content-box"; - - container.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;" + - "padding:0;margin-top:1px;position:absolute"; - container.appendChild( div ); - - jQuery.extend( support, { - pixelPosition: function() { - computeStyleTests(); - return pixelPositionVal; - }, - boxSizingReliable: function() { - computeStyleTests(); - return boxSizingReliableVal; - }, - pixelMarginRight: function() { - computeStyleTests(); - return pixelMarginRightVal; - }, - reliableMarginLeft: function() { - computeStyleTests(); - return reliableMarginLeftVal; - } - } ); -} )(); +module.exports = { + compile: function(next, data, options){ + if(options && options.strict && ( + data.ignoreCase || data.action === "not" + )) throw SyntaxError("Unsupported attribute selector"); + return attributeRules[data.action](next, data); + }, + rules: attributeRules +}; -function curCSS( elem, name, computed ) { - var width, minWidth, maxWidth, ret, +/***/ }), +/* 294 */ +/***/ (function(module, exports) { - // Support: Firefox 51+ - // Retrieving style before computed somehow - // fixes an issue with getting wrong values - // on detached elements - style = elem.style; +module.exports = {"universal":50,"tag":30,"attribute":1,"pseudo":0,"descendant":-1,"child":-1,"parent":-1,"sibling":-1,"adjacent":-1} - computed = computed || getStyles( elem ); +/***/ }), +/* 295 */ +/***/ (function(module, exports, __webpack_require__) { - // getPropertyValue is needed for: - // .css('filter') (IE 9 only, #12537) - // .css('--customProperty) (#3144) - if ( computed ) { - ret = computed.getPropertyValue( name ) || computed[ name ]; - - if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { - ret = jQuery.style( elem, name ); - } - - // A tribute to the "awesome hack by Dean Edwards" - // Android Browser returns percentage for some values, - // but width seems to be reliably pixels. - // This is against the CSSOM draft spec: - // https://drafts.csswg.org/cssom/#resolved-values - if ( !support.pixelMarginRight() && rnumnonpx.test( ret ) && rmargin.test( name ) ) { - - // Remember the original values - width = style.width; - minWidth = style.minWidth; - maxWidth = style.maxWidth; - - // Put in the new values to get a computed value out - style.minWidth = style.maxWidth = style.width = ret; - ret = computed.width; - - // Revert the changed values - style.width = width; - style.minWidth = minWidth; - style.maxWidth = maxWidth; - } - } - - return ret !== undefined ? - - // Support: IE <=9 - 11 only - // IE returns zIndex value as an integer. - ret + "" : - ret; -} - - -function addGetHookIf( conditionFn, hookFn ) { - - // Define the hook, we'll check on the first run if it's really needed. - return { - get: function() { - if ( conditionFn() ) { - - // Hook not needed (or it's not possible to use it due - // to missing dependency), remove it. - delete this.get; - return; - } - - // Hook needed; redefine it so that the support test is not executed again. - return ( this.get = hookFn ).apply( this, arguments ); - } - }; -} - - -var - - // Swappable if display is none or starts with table - // except "table", "table-cell", or "table-caption" - // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display - rdisplayswap = /^(none|table(?!-c[ea]).+)/, - rcustomProp = /^--/, - cssShow = { position: "absolute", visibility: "hidden", display: "block" }, - cssNormalTransform = { - letterSpacing: "0", - fontWeight: "400" - }, - - cssPrefixes = [ "Webkit", "Moz", "ms" ], - emptyStyle = document.createElement( "div" ).style; - -// Return a css property mapped to a potentially vendor prefixed property -function vendorPropName( name ) { - - // Shortcut for names that are not vendor prefixed - if ( name in emptyStyle ) { - return name; - } - - // Check for vendor prefixed names - var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), - i = cssPrefixes.length; - - while ( i-- ) { - name = cssPrefixes[ i ] + capName; - if ( name in emptyStyle ) { - return name; - } - } -} - -// Return a property mapped along what jQuery.cssProps suggests or to -// a vendor prefixed property. -function finalPropName( name ) { - var ret = jQuery.cssProps[ name ]; - if ( !ret ) { - ret = jQuery.cssProps[ name ] = vendorPropName( name ) || name; - } - return ret; -} - -function setPositiveNumber( elem, value, subtract ) { - - // Any relative (+/-) values have already been - // normalized at this point - var matches = rcssNum.exec( value ); - return matches ? - - // Guard against undefined "subtract", e.g., when used as in cssHooks - Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : - value; -} - -function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) { - var i, - val = 0; - - // If we already have the right measurement, avoid augmentation - if ( extra === ( isBorderBox ? "border" : "content" ) ) { - i = 4; - - // Otherwise initialize for horizontal or vertical properties - } else { - i = name === "width" ? 1 : 0; - } - - for ( ; i < 4; i += 2 ) { - - // Both box models exclude margin, so add it if we want it - if ( extra === "margin" ) { - val += jQuery.css( elem, extra + cssExpand[ i ], true, styles ); - } - - if ( isBorderBox ) { - - // border-box includes padding, so remove it if we want content - if ( extra === "content" ) { - val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); - } - - // At this point, extra isn't border nor margin, so remove border - if ( extra !== "margin" ) { - val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - } - } else { - - // At this point, extra isn't content, so add padding - val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); - - // At this point, extra isn't content nor padding, so add border - if ( extra !== "padding" ) { - val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - } - } - } - - return val; -} - -function getWidthOrHeight( elem, name, extra ) { - - // Start with computed style - var valueIsBorderBox, - styles = getStyles( elem ), - val = curCSS( elem, name, styles ), - isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; - - // Computed unit is not pixels. Stop here and return. - if ( rnumnonpx.test( val ) ) { - return val; - } - - // Check for style in case a browser which returns unreliable values - // for getComputedStyle silently falls back to the reliable elem.style - valueIsBorderBox = isBorderBox && - ( support.boxSizingReliable() || val === elem.style[ name ] ); - - // Fall back to offsetWidth/Height when value is "auto" - // This happens for inline elements with no explicit setting (gh-3571) - if ( val === "auto" ) { - val = elem[ "offset" + name[ 0 ].toUpperCase() + name.slice( 1 ) ]; - } - - // Normalize "", auto, and prepare for extra - val = parseFloat( val ) || 0; - - // Use the active box-sizing model to add/subtract irrelevant styles - return ( val + - augmentWidthOrHeight( - elem, - name, - extra || ( isBorderBox ? "border" : "content" ), - valueIsBorderBox, - styles - ) - ) + "px"; -} - -jQuery.extend( { - - // Add in style property hooks for overriding the default - // behavior of getting and setting a style property - cssHooks: { - opacity: { - get: function( elem, computed ) { - if ( computed ) { - - // We should always get a number back from opacity - var ret = curCSS( elem, "opacity" ); - return ret === "" ? "1" : ret; - } - } - } - }, - - // Don't automatically add "px" to these possibly-unitless properties - cssNumber: { - "animationIterationCount": true, - "columnCount": true, - "fillOpacity": true, - "flexGrow": true, - "flexShrink": true, - "fontWeight": true, - "lineHeight": true, - "opacity": true, - "order": true, - "orphans": true, - "widows": true, - "zIndex": true, - "zoom": true - }, - - // Add in properties whose names you wish to fix before - // setting or getting the value - cssProps: { - "float": "cssFloat" - }, - - // Get and set the style property on a DOM Node - style: function( elem, name, value, extra ) { - - // Don't set styles on text and comment nodes - if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { - return; - } - - // Make sure that we're working with the right name - var ret, type, hooks, - origName = jQuery.camelCase( name ), - isCustomProp = rcustomProp.test( name ), - style = elem.style; - - // Make sure that we're working with the right name. We don't - // want to query the value if it is a CSS custom property - // since they are user-defined. - if ( !isCustomProp ) { - name = finalPropName( origName ); - } - - // Gets hook for the prefixed version, then unprefixed version - hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; - - // Check if we're setting a value - if ( value !== undefined ) { - type = typeof value; - - // Convert "+=" or "-=" to relative numbers (#7345) - if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { - value = adjustCSS( elem, name, ret ); - - // Fixes bug #9237 - type = "number"; - } - - // Make sure that null and NaN values aren't set (#7116) - if ( value == null || value !== value ) { - return; - } - - // If a number was passed in, add the unit (except for certain CSS properties) - if ( type === "number" ) { - value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); - } - - // background-* props affect original clone's values - if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { - style[ name ] = "inherit"; - } - - // If a hook was provided, use that value, otherwise just set the specified value - if ( !hooks || !( "set" in hooks ) || - ( value = hooks.set( elem, value, extra ) ) !== undefined ) { - - if ( isCustomProp ) { - style.setProperty( name, value ); - } else { - style[ name ] = value; - } - } - - } else { - - // If a hook was provided get the non-computed value from there - if ( hooks && "get" in hooks && - ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { - - return ret; - } - - // Otherwise just get the value from the style object - return style[ name ]; - } - }, - - css: function( elem, name, extra, styles ) { - var val, num, hooks, - origName = jQuery.camelCase( name ), - isCustomProp = rcustomProp.test( name ); - - // Make sure that we're working with the right name. We don't - // want to modify the value if it is a CSS custom property - // since they are user-defined. - if ( !isCustomProp ) { - name = finalPropName( origName ); - } - - // Try prefixed name followed by the unprefixed name - hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; - - // If a hook was provided get the computed value from there - if ( hooks && "get" in hooks ) { - val = hooks.get( elem, true, extra ); - } - - // Otherwise, if a way to get the computed value exists, use that - if ( val === undefined ) { - val = curCSS( elem, name, styles ); - } - - // Convert "normal" to computed value - if ( val === "normal" && name in cssNormalTransform ) { - val = cssNormalTransform[ name ]; - } - - // Make numeric if forced or a qualifier was provided and val looks numeric - if ( extra === "" || extra ) { - num = parseFloat( val ); - return extra === true || isFinite( num ) ? num || 0 : val; - } - - return val; - } -} ); - -jQuery.each( [ "height", "width" ], function( i, name ) { - jQuery.cssHooks[ name ] = { - get: function( elem, computed, extra ) { - if ( computed ) { - - // Certain elements can have dimension info if we invisibly show them - // but it must have a current display style that would benefit - return rdisplayswap.test( jQuery.css( elem, "display" ) ) && - - // Support: Safari 8+ - // Table columns in Safari have non-zero offsetWidth & zero - // getBoundingClientRect().width unless display is changed. - // Support: IE <=11 only - // Running getBoundingClientRect on a disconnected node - // in IE throws an error. - ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? - swap( elem, cssShow, function() { - return getWidthOrHeight( elem, name, extra ); - } ) : - getWidthOrHeight( elem, name, extra ); - } - }, - - set: function( elem, value, extra ) { - var matches, - styles = extra && getStyles( elem ), - subtract = extra && augmentWidthOrHeight( - elem, - name, - extra, - jQuery.css( elem, "boxSizing", false, styles ) === "border-box", - styles - ); - - // Convert to pixels if value adjustment is needed - if ( subtract && ( matches = rcssNum.exec( value ) ) && - ( matches[ 3 ] || "px" ) !== "px" ) { - - elem.style[ name ] = value; - value = jQuery.css( elem, name ); - } - - return setPositiveNumber( elem, value, subtract ); - } - }; -} ); - -jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, - function( elem, computed ) { - if ( computed ) { - return ( parseFloat( curCSS( elem, "marginLeft" ) ) || - elem.getBoundingClientRect().left - - swap( elem, { marginLeft: 0 }, function() { - return elem.getBoundingClientRect().left; - } ) - ) + "px"; - } - } -); - -// These hooks are used by animate to expand properties -jQuery.each( { - margin: "", - padding: "", - border: "Width" -}, function( prefix, suffix ) { - jQuery.cssHooks[ prefix + suffix ] = { - expand: function( value ) { - var i = 0, - expanded = {}, - - // Assumes a single number if not a string - parts = typeof value === "string" ? value.split( " " ) : [ value ]; - - for ( ; i < 4; i++ ) { - expanded[ prefix + cssExpand[ i ] + suffix ] = - parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; - } - - return expanded; - } - }; - - if ( !rmargin.test( prefix ) ) { - jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; - } -} ); - -jQuery.fn.extend( { - css: function( name, value ) { - return access( this, function( elem, name, value ) { - var styles, len, - map = {}, - i = 0; - - if ( Array.isArray( name ) ) { - styles = getStyles( elem ); - len = name.length; - - for ( ; i < len; i++ ) { - map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); - } - - return map; - } - - return value !== undefined ? - jQuery.style( elem, name, value ) : - jQuery.css( elem, name ); - }, name, value, arguments.length > 1 ); - } -} ); - - -function Tween( elem, options, prop, end, easing ) { - return new Tween.prototype.init( elem, options, prop, end, easing ); -} -jQuery.Tween = Tween; - -Tween.prototype = { - constructor: Tween, - init: function( elem, options, prop, end, easing, unit ) { - this.elem = elem; - this.prop = prop; - this.easing = easing || jQuery.easing._default; - this.options = options; - this.start = this.now = this.cur(); - this.end = end; - this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); - }, - cur: function() { - var hooks = Tween.propHooks[ this.prop ]; - - return hooks && hooks.get ? - hooks.get( this ) : - Tween.propHooks._default.get( this ); - }, - run: function( percent ) { - var eased, - hooks = Tween.propHooks[ this.prop ]; - - if ( this.options.duration ) { - this.pos = eased = jQuery.easing[ this.easing ]( - percent, this.options.duration * percent, 0, 1, this.options.duration - ); - } else { - this.pos = eased = percent; - } - this.now = ( this.end - this.start ) * eased + this.start; - - if ( this.options.step ) { - this.options.step.call( this.elem, this.now, this ); - } - - if ( hooks && hooks.set ) { - hooks.set( this ); - } else { - Tween.propHooks._default.set( this ); - } - return this; - } -}; - -Tween.prototype.init.prototype = Tween.prototype; - -Tween.propHooks = { - _default: { - get: function( tween ) { - var result; - - // Use a property on the element directly when it is not a DOM element, - // or when there is no matching style property that exists. - if ( tween.elem.nodeType !== 1 || - tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { - return tween.elem[ tween.prop ]; - } - - // Passing an empty string as a 3rd parameter to .css will automatically - // attempt a parseFloat and fallback to a string if the parse fails. - // Simple values such as "10px" are parsed to Float; - // complex values such as "rotate(1rad)" are returned as-is. - result = jQuery.css( tween.elem, tween.prop, "" ); - - // Empty strings, null, undefined and "auto" are converted to 0. - return !result || result === "auto" ? 0 : result; - }, - set: function( tween ) { - - // Use step hook for back compat. - // Use cssHook if its there. - // Use .style if available and use plain properties where available. - if ( jQuery.fx.step[ tween.prop ] ) { - jQuery.fx.step[ tween.prop ]( tween ); - } else if ( tween.elem.nodeType === 1 && - ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || - jQuery.cssHooks[ tween.prop ] ) ) { - jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); - } else { - tween.elem[ tween.prop ] = tween.now; - } - } - } -}; - -// Support: IE <=9 only -// Panic based approach to setting things on disconnected nodes -Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { - set: function( tween ) { - if ( tween.elem.nodeType && tween.elem.parentNode ) { - tween.elem[ tween.prop ] = tween.now; - } - } -}; - -jQuery.easing = { - linear: function( p ) { - return p; - }, - swing: function( p ) { - return 0.5 - Math.cos( p * Math.PI ) / 2; - }, - _default: "swing" -}; - -jQuery.fx = Tween.prototype.init; - -// Back compat <1.8 extension point -jQuery.fx.step = {}; - - - - -var - fxNow, inProgress, - rfxtypes = /^(?:toggle|show|hide)$/, - rrun = /queueHooks$/; - -function schedule() { - if ( inProgress ) { - if ( document.hidden === false && window.requestAnimationFrame ) { - window.requestAnimationFrame( schedule ); - } else { - window.setTimeout( schedule, jQuery.fx.interval ); - } - - jQuery.fx.tick(); - } -} - -// Animations created synchronously will run synchronously -function createFxNow() { - window.setTimeout( function() { - fxNow = undefined; - } ); - return ( fxNow = jQuery.now() ); -} - -// Generate parameters to create a standard animation -function genFx( type, includeWidth ) { - var which, - i = 0, - attrs = { height: type }; - - // If we include width, step value is 1 to do all cssExpand values, - // otherwise step value is 2 to skip over Left and Right - includeWidth = includeWidth ? 1 : 0; - for ( ; i < 4; i += 2 - includeWidth ) { - which = cssExpand[ i ]; - attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; - } - - if ( includeWidth ) { - attrs.opacity = attrs.width = type; - } - - return attrs; -} - -function createTween( value, prop, animation ) { - var tween, - collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), - index = 0, - length = collection.length; - for ( ; index < length; index++ ) { - if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { - - // We're done with this property - return tween; - } - } -} - -function defaultPrefilter( elem, props, opts ) { - var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, - isBox = "width" in props || "height" in props, - anim = this, - orig = {}, - style = elem.style, - hidden = elem.nodeType && isHiddenWithinTree( elem ), - dataShow = dataPriv.get( elem, "fxshow" ); - - // Queue-skipping animations hijack the fx hooks - if ( !opts.queue ) { - hooks = jQuery._queueHooks( elem, "fx" ); - if ( hooks.unqueued == null ) { - hooks.unqueued = 0; - oldfire = hooks.empty.fire; - hooks.empty.fire = function() { - if ( !hooks.unqueued ) { - oldfire(); - } - }; - } - hooks.unqueued++; - - anim.always( function() { - - // Ensure the complete handler is called before this completes - anim.always( function() { - hooks.unqueued--; - if ( !jQuery.queue( elem, "fx" ).length ) { - hooks.empty.fire(); - } - } ); - } ); - } - - // Detect show/hide animations - for ( prop in props ) { - value = props[ prop ]; - if ( rfxtypes.test( value ) ) { - delete props[ prop ]; - toggle = toggle || value === "toggle"; - if ( value === ( hidden ? "hide" : "show" ) ) { - - // Pretend to be hidden if this is a "show" and - // there is still data from a stopped show/hide - if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { - hidden = true; - - // Ignore all other no-op show/hide data - } else { - continue; - } - } - orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); - } - } - - // Bail out if this is a no-op like .hide().hide() - propTween = !jQuery.isEmptyObject( props ); - if ( !propTween && jQuery.isEmptyObject( orig ) ) { - return; - } - - // Restrict "overflow" and "display" styles during box animations - if ( isBox && elem.nodeType === 1 ) { - - // Support: IE <=9 - 11, Edge 12 - 13 - // Record all 3 overflow attributes because IE does not infer the shorthand - // from identically-valued overflowX and overflowY - opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; - - // Identify a display type, preferring old show/hide data over the CSS cascade - restoreDisplay = dataShow && dataShow.display; - if ( restoreDisplay == null ) { - restoreDisplay = dataPriv.get( elem, "display" ); - } - display = jQuery.css( elem, "display" ); - if ( display === "none" ) { - if ( restoreDisplay ) { - display = restoreDisplay; - } else { - - // Get nonempty value(s) by temporarily forcing visibility - showHide( [ elem ], true ); - restoreDisplay = elem.style.display || restoreDisplay; - display = jQuery.css( elem, "display" ); - showHide( [ elem ] ); - } - } - - // Animate inline elements as inline-block - if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { - if ( jQuery.css( elem, "float" ) === "none" ) { - - // Restore the original display value at the end of pure show/hide animations - if ( !propTween ) { - anim.done( function() { - style.display = restoreDisplay; - } ); - if ( restoreDisplay == null ) { - display = style.display; - restoreDisplay = display === "none" ? "" : display; - } - } - style.display = "inline-block"; - } - } - } - - if ( opts.overflow ) { - style.overflow = "hidden"; - anim.always( function() { - style.overflow = opts.overflow[ 0 ]; - style.overflowX = opts.overflow[ 1 ]; - style.overflowY = opts.overflow[ 2 ]; - } ); - } - - // Implement show/hide animations - propTween = false; - for ( prop in orig ) { - - // General show/hide setup for this element animation - if ( !propTween ) { - if ( dataShow ) { - if ( "hidden" in dataShow ) { - hidden = dataShow.hidden; - } - } else { - dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); - } - - // Store hidden/visible for toggle so `.stop().toggle()` "reverses" - if ( toggle ) { - dataShow.hidden = !hidden; - } - - // Show elements before animating them - if ( hidden ) { - showHide( [ elem ], true ); - } - - /* eslint-disable no-loop-func */ - - anim.done( function() { - - /* eslint-enable no-loop-func */ - - // The final step of a "hide" animation is actually hiding the element - if ( !hidden ) { - showHide( [ elem ] ); - } - dataPriv.remove( elem, "fxshow" ); - for ( prop in orig ) { - jQuery.style( elem, prop, orig[ prop ] ); - } - } ); - } - - // Per-property setup - propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); - if ( !( prop in dataShow ) ) { - dataShow[ prop ] = propTween.start; - if ( hidden ) { - propTween.end = propTween.start; - propTween.start = 0; - } - } - } -} - -function propFilter( props, specialEasing ) { - var index, name, easing, value, hooks; - - // camelCase, specialEasing and expand cssHook pass - for ( index in props ) { - name = jQuery.camelCase( index ); - easing = specialEasing[ name ]; - value = props[ index ]; - if ( Array.isArray( value ) ) { - easing = value[ 1 ]; - value = props[ index ] = value[ 0 ]; - } - - if ( index !== name ) { - props[ name ] = value; - delete props[ index ]; - } - - hooks = jQuery.cssHooks[ name ]; - if ( hooks && "expand" in hooks ) { - value = hooks.expand( value ); - delete props[ name ]; - - // Not quite $.extend, this won't overwrite existing keys. - // Reusing 'index' because we have the correct "name" - for ( index in value ) { - if ( !( index in props ) ) { - props[ index ] = value[ index ]; - specialEasing[ index ] = easing; - } - } - } else { - specialEasing[ name ] = easing; - } - } -} - -function Animation( elem, properties, options ) { - var result, - stopped, - index = 0, - length = Animation.prefilters.length, - deferred = jQuery.Deferred().always( function() { - - // Don't match elem in the :animated selector - delete tick.elem; - } ), - tick = function() { - if ( stopped ) { - return false; - } - var currentTime = fxNow || createFxNow(), - remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), - - // Support: Android 2.3 only - // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) - temp = remaining / animation.duration || 0, - percent = 1 - temp, - index = 0, - length = animation.tweens.length; - - for ( ; index < length; index++ ) { - animation.tweens[ index ].run( percent ); - } - - deferred.notifyWith( elem, [ animation, percent, remaining ] ); - - // If there's more to do, yield - if ( percent < 1 && length ) { - return remaining; - } - - // If this was an empty animation, synthesize a final progress notification - if ( !length ) { - deferred.notifyWith( elem, [ animation, 1, 0 ] ); - } - - // Resolve the animation and report its conclusion - deferred.resolveWith( elem, [ animation ] ); - return false; - }, - animation = deferred.promise( { - elem: elem, - props: jQuery.extend( {}, properties ), - opts: jQuery.extend( true, { - specialEasing: {}, - easing: jQuery.easing._default - }, options ), - originalProperties: properties, - originalOptions: options, - startTime: fxNow || createFxNow(), - duration: options.duration, - tweens: [], - createTween: function( prop, end ) { - var tween = jQuery.Tween( elem, animation.opts, prop, end, - animation.opts.specialEasing[ prop ] || animation.opts.easing ); - animation.tweens.push( tween ); - return tween; - }, - stop: function( gotoEnd ) { - var index = 0, - - // If we are going to the end, we want to run all the tweens - // otherwise we skip this part - length = gotoEnd ? animation.tweens.length : 0; - if ( stopped ) { - return this; - } - stopped = true; - for ( ; index < length; index++ ) { - animation.tweens[ index ].run( 1 ); - } - - // Resolve when we played the last frame; otherwise, reject - if ( gotoEnd ) { - deferred.notifyWith( elem, [ animation, 1, 0 ] ); - deferred.resolveWith( elem, [ animation, gotoEnd ] ); - } else { - deferred.rejectWith( elem, [ animation, gotoEnd ] ); - } - return this; - } - } ), - props = animation.props; - - propFilter( props, animation.opts.specialEasing ); - - for ( ; index < length; index++ ) { - result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); - if ( result ) { - if ( jQuery.isFunction( result.stop ) ) { - jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = - jQuery.proxy( result.stop, result ); - } - return result; - } - } - - jQuery.map( props, createTween, animation ); - - if ( jQuery.isFunction( animation.opts.start ) ) { - animation.opts.start.call( elem, animation ); - } - - // Attach callbacks from options - animation - .progress( animation.opts.progress ) - .done( animation.opts.done, animation.opts.complete ) - .fail( animation.opts.fail ) - .always( animation.opts.always ); - - jQuery.fx.timer( - jQuery.extend( tick, { - elem: elem, - anim: animation, - queue: animation.opts.queue - } ) - ); - - return animation; -} - -jQuery.Animation = jQuery.extend( Animation, { - - tweeners: { - "*": [ function( prop, value ) { - var tween = this.createTween( prop, value ); - adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); - return tween; - } ] - }, - - tweener: function( props, callback ) { - if ( jQuery.isFunction( props ) ) { - callback = props; - props = [ "*" ]; - } else { - props = props.match( rnothtmlwhite ); - } - - var prop, - index = 0, - length = props.length; - - for ( ; index < length; index++ ) { - prop = props[ index ]; - Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; - Animation.tweeners[ prop ].unshift( callback ); - } - }, - - prefilters: [ defaultPrefilter ], - - prefilter: function( callback, prepend ) { - if ( prepend ) { - Animation.prefilters.unshift( callback ); - } else { - Animation.prefilters.push( callback ); - } - } -} ); - -jQuery.speed = function( speed, easing, fn ) { - var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { - complete: fn || !fn && easing || - jQuery.isFunction( speed ) && speed, - duration: speed, - easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing - }; - - // Go to the end state if fx are off - if ( jQuery.fx.off ) { - opt.duration = 0; - - } else { - if ( typeof opt.duration !== "number" ) { - if ( opt.duration in jQuery.fx.speeds ) { - opt.duration = jQuery.fx.speeds[ opt.duration ]; - - } else { - opt.duration = jQuery.fx.speeds._default; - } - } - } - - // Normalize opt.queue - true/undefined/null -> "fx" - if ( opt.queue == null || opt.queue === true ) { - opt.queue = "fx"; - } - - // Queueing - opt.old = opt.complete; - - opt.complete = function() { - if ( jQuery.isFunction( opt.old ) ) { - opt.old.call( this ); - } - - if ( opt.queue ) { - jQuery.dequeue( this, opt.queue ); - } - }; - - return opt; -}; - -jQuery.fn.extend( { - fadeTo: function( speed, to, easing, callback ) { - - // Show any hidden elements after setting opacity to 0 - return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show() - - // Animate to the value specified - .end().animate( { opacity: to }, speed, easing, callback ); - }, - animate: function( prop, speed, easing, callback ) { - var empty = jQuery.isEmptyObject( prop ), - optall = jQuery.speed( speed, easing, callback ), - doAnimation = function() { - - // Operate on a copy of prop so per-property easing won't be lost - var anim = Animation( this, jQuery.extend( {}, prop ), optall ); - - // Empty animations, or finishing resolves immediately - if ( empty || dataPriv.get( this, "finish" ) ) { - anim.stop( true ); - } - }; - doAnimation.finish = doAnimation; - - return empty || optall.queue === false ? - this.each( doAnimation ) : - this.queue( optall.queue, doAnimation ); - }, - stop: function( type, clearQueue, gotoEnd ) { - var stopQueue = function( hooks ) { - var stop = hooks.stop; - delete hooks.stop; - stop( gotoEnd ); - }; - - if ( typeof type !== "string" ) { - gotoEnd = clearQueue; - clearQueue = type; - type = undefined; - } - if ( clearQueue && type !== false ) { - this.queue( type || "fx", [] ); - } - - return this.each( function() { - var dequeue = true, - index = type != null && type + "queueHooks", - timers = jQuery.timers, - data = dataPriv.get( this ); - - if ( index ) { - if ( data[ index ] && data[ index ].stop ) { - stopQueue( data[ index ] ); - } - } else { - for ( index in data ) { - if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { - stopQueue( data[ index ] ); - } - } - } - - for ( index = timers.length; index--; ) { - if ( timers[ index ].elem === this && - ( type == null || timers[ index ].queue === type ) ) { - - timers[ index ].anim.stop( gotoEnd ); - dequeue = false; - timers.splice( index, 1 ); - } - } - - // Start the next in the queue if the last step wasn't forced. - // Timers currently will call their complete callbacks, which - // will dequeue but only if they were gotoEnd. - if ( dequeue || !gotoEnd ) { - jQuery.dequeue( this, type ); - } - } ); - }, - finish: function( type ) { - if ( type !== false ) { - type = type || "fx"; - } - return this.each( function() { - var index, - data = dataPriv.get( this ), - queue = data[ type + "queue" ], - hooks = data[ type + "queueHooks" ], - timers = jQuery.timers, - length = queue ? queue.length : 0; - - // Enable finishing flag on private data - data.finish = true; - - // Empty the queue first - jQuery.queue( this, type, [] ); - - if ( hooks && hooks.stop ) { - hooks.stop.call( this, true ); - } - - // Look for any active animations, and finish them - for ( index = timers.length; index--; ) { - if ( timers[ index ].elem === this && timers[ index ].queue === type ) { - timers[ index ].anim.stop( true ); - timers.splice( index, 1 ); - } - } - - // Look for any animations in the old queue and finish them - for ( index = 0; index < length; index++ ) { - if ( queue[ index ] && queue[ index ].finish ) { - queue[ index ].finish.call( this ); - } - } - - // Turn off finishing flag - delete data.finish; - } ); - } -} ); - -jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) { - var cssFn = jQuery.fn[ name ]; - jQuery.fn[ name ] = function( speed, easing, callback ) { - return speed == null || typeof speed === "boolean" ? - cssFn.apply( this, arguments ) : - this.animate( genFx( name, true ), speed, easing, callback ); - }; -} ); - -// Generate shortcuts for custom animations -jQuery.each( { - slideDown: genFx( "show" ), - slideUp: genFx( "hide" ), - slideToggle: genFx( "toggle" ), - fadeIn: { opacity: "show" }, - fadeOut: { opacity: "hide" }, - fadeToggle: { opacity: "toggle" } -}, function( name, props ) { - jQuery.fn[ name ] = function( speed, easing, callback ) { - return this.animate( props, speed, easing, callback ); - }; -} ); - -jQuery.timers = []; -jQuery.fx.tick = function() { - var timer, - i = 0, - timers = jQuery.timers; - - fxNow = jQuery.now(); - - for ( ; i < timers.length; i++ ) { - timer = timers[ i ]; - - // Run the timer and safely remove it when done (allowing for external removal) - if ( !timer() && timers[ i ] === timer ) { - timers.splice( i--, 1 ); - } - } - - if ( !timers.length ) { - jQuery.fx.stop(); - } - fxNow = undefined; -}; - -jQuery.fx.timer = function( timer ) { - jQuery.timers.push( timer ); - jQuery.fx.start(); -}; - -jQuery.fx.interval = 13; -jQuery.fx.start = function() { - if ( inProgress ) { - return; - } - - inProgress = true; - schedule(); -}; - -jQuery.fx.stop = function() { - inProgress = null; -}; - -jQuery.fx.speeds = { - slow: 600, - fast: 200, - - // Default speed - _default: 400 -}; - - -// Based off of the plugin by Clint Helfers, with permission. -// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ -jQuery.fn.delay = function( time, type ) { - time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; - type = type || "fx"; - - return this.queue( type, function( next, hooks ) { - var timeout = window.setTimeout( next, time ); - hooks.stop = function() { - window.clearTimeout( timeout ); - }; - } ); -}; - - -( function() { - var input = document.createElement( "input" ), - select = document.createElement( "select" ), - opt = select.appendChild( document.createElement( "option" ) ); - - input.type = "checkbox"; - - // Support: Android <=4.3 only - // Default value for a checkbox should be "on" - support.checkOn = input.value !== ""; - - // Support: IE <=11 only - // Must access selectedIndex to make default options select - support.optSelected = opt.selected; - - // Support: IE <=11 only - // An input loses its value after becoming a radio - input = document.createElement( "input" ); - input.value = "t"; - input.type = "radio"; - support.radioValue = input.value === "t"; -} )(); - - -var boolHook, - attrHandle = jQuery.expr.attrHandle; - -jQuery.fn.extend( { - attr: function( name, value ) { - return access( this, jQuery.attr, name, value, arguments.length > 1 ); - }, - - removeAttr: function( name ) { - return this.each( function() { - jQuery.removeAttr( this, name ); - } ); - } -} ); - -jQuery.extend( { - attr: function( elem, name, value ) { - var ret, hooks, - nType = elem.nodeType; - - // Don't get/set attributes on text, comment and attribute nodes - if ( nType === 3 || nType === 8 || nType === 2 ) { - return; - } - - // Fallback to prop when attributes are not supported - if ( typeof elem.getAttribute === "undefined" ) { - return jQuery.prop( elem, name, value ); - } - - // Attribute hooks are determined by the lowercase version - // Grab necessary hook if one is defined - if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { - hooks = jQuery.attrHooks[ name.toLowerCase() ] || - ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); - } - - if ( value !== undefined ) { - if ( value === null ) { - jQuery.removeAttr( elem, name ); - return; - } - - if ( hooks && "set" in hooks && - ( ret = hooks.set( elem, value, name ) ) !== undefined ) { - return ret; - } - - elem.setAttribute( name, value + "" ); - return value; - } - - if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { - return ret; - } - - ret = jQuery.find.attr( elem, name ); - - // Non-existent attributes return null, we normalize to undefined - return ret == null ? undefined : ret; - }, - - attrHooks: { - type: { - set: function( elem, value ) { - if ( !support.radioValue && value === "radio" && - nodeName( elem, "input" ) ) { - var val = elem.value; - elem.setAttribute( "type", value ); - if ( val ) { - elem.value = val; - } - return value; - } - } - } - }, - - removeAttr: function( elem, value ) { - var name, - i = 0, - - // Attribute names can contain non-HTML whitespace characters - // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 - attrNames = value && value.match( rnothtmlwhite ); - - if ( attrNames && elem.nodeType === 1 ) { - while ( ( name = attrNames[ i++ ] ) ) { - elem.removeAttribute( name ); - } - } - } -} ); - -// Hooks for boolean attributes -boolHook = { - set: function( elem, value, name ) { - if ( value === false ) { - - // Remove boolean attributes when set to false - jQuery.removeAttr( elem, name ); - } else { - elem.setAttribute( name, name ); - } - return name; - } -}; - -jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { - var getter = attrHandle[ name ] || jQuery.find.attr; - - attrHandle[ name ] = function( elem, name, isXML ) { - var ret, handle, - lowercaseName = name.toLowerCase(); - - if ( !isXML ) { - - // Avoid an infinite loop by temporarily removing this function from the getter - handle = attrHandle[ lowercaseName ]; - attrHandle[ lowercaseName ] = ret; - ret = getter( elem, name, isXML ) != null ? - lowercaseName : - null; - attrHandle[ lowercaseName ] = handle; - } - return ret; - }; -} ); - - - - -var rfocusable = /^(?:input|select|textarea|button)$/i, - rclickable = /^(?:a|area)$/i; - -jQuery.fn.extend( { - prop: function( name, value ) { - return access( this, jQuery.prop, name, value, arguments.length > 1 ); - }, - - removeProp: function( name ) { - return this.each( function() { - delete this[ jQuery.propFix[ name ] || name ]; - } ); - } -} ); - -jQuery.extend( { - prop: function( elem, name, value ) { - var ret, hooks, - nType = elem.nodeType; - - // Don't get/set properties on text, comment and attribute nodes - if ( nType === 3 || nType === 8 || nType === 2 ) { - return; - } - - if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { - - // Fix name and attach hooks - name = jQuery.propFix[ name ] || name; - hooks = jQuery.propHooks[ name ]; - } - - if ( value !== undefined ) { - if ( hooks && "set" in hooks && - ( ret = hooks.set( elem, value, name ) ) !== undefined ) { - return ret; - } - - return ( elem[ name ] = value ); - } - - if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { - return ret; - } - - return elem[ name ]; - }, - - propHooks: { - tabIndex: { - get: function( elem ) { - - // Support: IE <=9 - 11 only - // elem.tabIndex doesn't always return the - // correct value when it hasn't been explicitly set - // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ - // Use proper attribute retrieval(#12072) - var tabindex = jQuery.find.attr( elem, "tabindex" ); - - if ( tabindex ) { - return parseInt( tabindex, 10 ); - } - - if ( - rfocusable.test( elem.nodeName ) || - rclickable.test( elem.nodeName ) && - elem.href - ) { - return 0; - } - - return -1; - } - } - }, - - propFix: { - "for": "htmlFor", - "class": "className" - } -} ); - -// Support: IE <=11 only -// Accessing the selectedIndex property -// forces the browser to respect setting selected -// on the option -// The getter ensures a default option is selected -// when in an optgroup -// eslint rule "no-unused-expressions" is disabled for this code -// since it considers such accessions noop -if ( !support.optSelected ) { - jQuery.propHooks.selected = { - get: function( elem ) { - - /* eslint no-unused-expressions: "off" */ - - var parent = elem.parentNode; - if ( parent && parent.parentNode ) { - parent.parentNode.selectedIndex; - } - return null; - }, - set: function( elem ) { - - /* eslint no-unused-expressions: "off" */ - - var parent = elem.parentNode; - if ( parent ) { - parent.selectedIndex; - - if ( parent.parentNode ) { - parent.parentNode.selectedIndex; - } - } - } - }; -} - -jQuery.each( [ - "tabIndex", - "readOnly", - "maxLength", - "cellSpacing", - "cellPadding", - "rowSpan", - "colSpan", - "useMap", - "frameBorder", - "contentEditable" -], function() { - jQuery.propFix[ this.toLowerCase() ] = this; -} ); - - - - - // Strip and collapse whitespace according to HTML spec - // https://html.spec.whatwg.org/multipage/infrastructure.html#strip-and-collapse-whitespace - function stripAndCollapse( value ) { - var tokens = value.match( rnothtmlwhite ) || []; - return tokens.join( " " ); - } - - -function getClass( elem ) { - return elem.getAttribute && elem.getAttribute( "class" ) || ""; -} - -jQuery.fn.extend( { - addClass: function( value ) { - var classes, elem, cur, curValue, clazz, j, finalValue, - i = 0; - - if ( jQuery.isFunction( value ) ) { - return this.each( function( j ) { - jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); - } ); - } - - if ( typeof value === "string" && value ) { - classes = value.match( rnothtmlwhite ) || []; - - while ( ( elem = this[ i++ ] ) ) { - curValue = getClass( elem ); - cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); - - if ( cur ) { - j = 0; - while ( ( clazz = classes[ j++ ] ) ) { - if ( cur.indexOf( " " + clazz + " " ) < 0 ) { - cur += clazz + " "; - } - } - - // Only assign if different to avoid unneeded rendering. - finalValue = stripAndCollapse( cur ); - if ( curValue !== finalValue ) { - elem.setAttribute( "class", finalValue ); - } - } - } - } - - return this; - }, - - removeClass: function( value ) { - var classes, elem, cur, curValue, clazz, j, finalValue, - i = 0; - - if ( jQuery.isFunction( value ) ) { - return this.each( function( j ) { - jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); - } ); - } - - if ( !arguments.length ) { - return this.attr( "class", "" ); - } - - if ( typeof value === "string" && value ) { - classes = value.match( rnothtmlwhite ) || []; - - while ( ( elem = this[ i++ ] ) ) { - curValue = getClass( elem ); - - // This expression is here for better compressibility (see addClass) - cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); - - if ( cur ) { - j = 0; - while ( ( clazz = classes[ j++ ] ) ) { - - // Remove *all* instances - while ( cur.indexOf( " " + clazz + " " ) > -1 ) { - cur = cur.replace( " " + clazz + " ", " " ); - } - } - - // Only assign if different to avoid unneeded rendering. - finalValue = stripAndCollapse( cur ); - if ( curValue !== finalValue ) { - elem.setAttribute( "class", finalValue ); - } - } - } - } - - return this; - }, - - toggleClass: function( value, stateVal ) { - var type = typeof value; - - if ( typeof stateVal === "boolean" && type === "string" ) { - return stateVal ? this.addClass( value ) : this.removeClass( value ); - } - - if ( jQuery.isFunction( value ) ) { - return this.each( function( i ) { - jQuery( this ).toggleClass( - value.call( this, i, getClass( this ), stateVal ), - stateVal - ); - } ); - } - - return this.each( function() { - var className, i, self, classNames; - - if ( type === "string" ) { - - // Toggle individual class names - i = 0; - self = jQuery( this ); - classNames = value.match( rnothtmlwhite ) || []; - - while ( ( className = classNames[ i++ ] ) ) { - - // Check each className given, space separated list - if ( self.hasClass( className ) ) { - self.removeClass( className ); - } else { - self.addClass( className ); - } - } - - // Toggle whole class name - } else if ( value === undefined || type === "boolean" ) { - className = getClass( this ); - if ( className ) { - - // Store className if set - dataPriv.set( this, "__className__", className ); - } - - // If the element has a class name or if we're passed `false`, - // then remove the whole classname (if there was one, the above saved it). - // Otherwise bring back whatever was previously saved (if anything), - // falling back to the empty string if nothing was stored. - if ( this.setAttribute ) { - this.setAttribute( "class", - className || value === false ? - "" : - dataPriv.get( this, "__className__" ) || "" - ); - } - } - } ); - }, - - hasClass: function( selector ) { - var className, elem, - i = 0; - - className = " " + selector + " "; - while ( ( elem = this[ i++ ] ) ) { - if ( elem.nodeType === 1 && - ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { - return true; - } - } - - return false; - } -} ); - - - - -var rreturn = /\r/g; - -jQuery.fn.extend( { - val: function( value ) { - var hooks, ret, isFunction, - elem = this[ 0 ]; - - if ( !arguments.length ) { - if ( elem ) { - hooks = jQuery.valHooks[ elem.type ] || - jQuery.valHooks[ elem.nodeName.toLowerCase() ]; - - if ( hooks && - "get" in hooks && - ( ret = hooks.get( elem, "value" ) ) !== undefined - ) { - return ret; - } - - ret = elem.value; - - // Handle most common string cases - if ( typeof ret === "string" ) { - return ret.replace( rreturn, "" ); - } - - // Handle cases where value is null/undef or number - return ret == null ? "" : ret; - } - - return; - } - - isFunction = jQuery.isFunction( value ); - - return this.each( function( i ) { - var val; - - if ( this.nodeType !== 1 ) { - return; - } - - if ( isFunction ) { - val = value.call( this, i, jQuery( this ).val() ); - } else { - val = value; - } - - // Treat null/undefined as ""; convert numbers to string - if ( val == null ) { - val = ""; - - } else if ( typeof val === "number" ) { - val += ""; - - } else if ( Array.isArray( val ) ) { - val = jQuery.map( val, function( value ) { - return value == null ? "" : value + ""; - } ); - } - - hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; - - // If set returns undefined, fall back to normal setting - if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { - this.value = val; - } - } ); - } -} ); - -jQuery.extend( { - valHooks: { - option: { - get: function( elem ) { - - var val = jQuery.find.attr( elem, "value" ); - return val != null ? - val : - - // Support: IE <=10 - 11 only - // option.text throws exceptions (#14686, #14858) - // Strip and collapse whitespace - // https://html.spec.whatwg.org/#strip-and-collapse-whitespace - stripAndCollapse( jQuery.text( elem ) ); - } - }, - select: { - get: function( elem ) { - var value, option, i, - options = elem.options, - index = elem.selectedIndex, - one = elem.type === "select-one", - values = one ? null : [], - max = one ? index + 1 : options.length; - - if ( index < 0 ) { - i = max; - - } else { - i = one ? index : 0; - } - - // Loop through all the selected options - for ( ; i < max; i++ ) { - option = options[ i ]; - - // Support: IE <=9 only - // IE8-9 doesn't update selected after form reset (#2551) - if ( ( option.selected || i === index ) && - - // Don't return options that are disabled or in a disabled optgroup - !option.disabled && - ( !option.parentNode.disabled || - !nodeName( option.parentNode, "optgroup" ) ) ) { - - // Get the specific value for the option - value = jQuery( option ).val(); - - // We don't need an array for one selects - if ( one ) { - return value; - } - - // Multi-Selects return an array - values.push( value ); - } - } - - return values; - }, - - set: function( elem, value ) { - var optionSet, option, - options = elem.options, - values = jQuery.makeArray( value ), - i = options.length; - - while ( i-- ) { - option = options[ i ]; - - /* eslint-disable no-cond-assign */ - - if ( option.selected = - jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 - ) { - optionSet = true; - } - - /* eslint-enable no-cond-assign */ - } - - // Force browsers to behave consistently when non-matching value is set - if ( !optionSet ) { - elem.selectedIndex = -1; - } - return values; - } - } - } -} ); - -// Radios and checkboxes getter/setter -jQuery.each( [ "radio", "checkbox" ], function() { - jQuery.valHooks[ this ] = { - set: function( elem, value ) { - if ( Array.isArray( value ) ) { - return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); - } - } - }; - if ( !support.checkOn ) { - jQuery.valHooks[ this ].get = function( elem ) { - return elem.getAttribute( "value" ) === null ? "on" : elem.value; - }; - } -} ); - - - - -// Return jQuery for attributes-only inclusion - - -var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/; - -jQuery.extend( jQuery.event, { - - trigger: function( event, data, elem, onlyHandlers ) { - - var i, cur, tmp, bubbleType, ontype, handle, special, - eventPath = [ elem || document ], - type = hasOwn.call( event, "type" ) ? event.type : event, - namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; - - cur = tmp = elem = elem || document; - - // Don't do events on text and comment nodes - if ( elem.nodeType === 3 || elem.nodeType === 8 ) { - return; - } - - // focus/blur morphs to focusin/out; ensure we're not firing them right now - if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { - return; - } - - if ( type.indexOf( "." ) > -1 ) { - - // Namespaced trigger; create a regexp to match event type in handle() - namespaces = type.split( "." ); - type = namespaces.shift(); - namespaces.sort(); - } - ontype = type.indexOf( ":" ) < 0 && "on" + type; - - // Caller can pass in a jQuery.Event object, Object, or just an event type string - event = event[ jQuery.expando ] ? - event : - new jQuery.Event( type, typeof event === "object" && event ); - - // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) - event.isTrigger = onlyHandlers ? 2 : 3; - event.namespace = namespaces.join( "." ); - event.rnamespace = event.namespace ? - new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : - null; - - // Clean up the event in case it is being reused - event.result = undefined; - if ( !event.target ) { - event.target = elem; - } - - // Clone any incoming data and prepend the event, creating the handler arg list - data = data == null ? - [ event ] : - jQuery.makeArray( data, [ event ] ); - - // Allow special events to draw outside the lines - special = jQuery.event.special[ type ] || {}; - if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { - return; - } - - // Determine event propagation path in advance, per W3C events spec (#9951) - // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) - if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { - - bubbleType = special.delegateType || type; - if ( !rfocusMorph.test( bubbleType + type ) ) { - cur = cur.parentNode; - } - for ( ; cur; cur = cur.parentNode ) { - eventPath.push( cur ); - tmp = cur; - } - - // Only add window if we got to document (e.g., not plain obj or detached DOM) - if ( tmp === ( elem.ownerDocument || document ) ) { - eventPath.push( tmp.defaultView || tmp.parentWindow || window ); - } - } - - // Fire handlers on the event path - i = 0; - while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { - - event.type = i > 1 ? - bubbleType : - special.bindType || type; - - // jQuery handler - handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] && - dataPriv.get( cur, "handle" ); - if ( handle ) { - handle.apply( cur, data ); - } - - // Native handler - handle = ontype && cur[ ontype ]; - if ( handle && handle.apply && acceptData( cur ) ) { - event.result = handle.apply( cur, data ); - if ( event.result === false ) { - event.preventDefault(); - } - } - } - event.type = type; - - // If nobody prevented the default action, do it now - if ( !onlyHandlers && !event.isDefaultPrevented() ) { - - if ( ( !special._default || - special._default.apply( eventPath.pop(), data ) === false ) && - acceptData( elem ) ) { - - // Call a native DOM method on the target with the same name as the event. - // Don't do default actions on window, that's where global variables be (#6170) - if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) { - - // Don't re-trigger an onFOO event when we call its FOO() method - tmp = elem[ ontype ]; - - if ( tmp ) { - elem[ ontype ] = null; - } - - // Prevent re-triggering of the same event, since we already bubbled it above - jQuery.event.triggered = type; - elem[ type ](); - jQuery.event.triggered = undefined; - - if ( tmp ) { - elem[ ontype ] = tmp; - } - } - } - } - - return event.result; - }, - - // Piggyback on a donor event to simulate a different one - // Used only for `focus(in | out)` events - simulate: function( type, elem, event ) { - var e = jQuery.extend( - new jQuery.Event(), - event, - { - type: type, - isSimulated: true - } - ); - - jQuery.event.trigger( e, null, elem ); - } - -} ); - -jQuery.fn.extend( { - - trigger: function( type, data ) { - return this.each( function() { - jQuery.event.trigger( type, data, this ); - } ); - }, - triggerHandler: function( type, data ) { - var elem = this[ 0 ]; - if ( elem ) { - return jQuery.event.trigger( type, data, elem, true ); - } - } -} ); - - -jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " + - "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + - "change select submit keydown keypress keyup contextmenu" ).split( " " ), - function( i, name ) { - - // Handle event binding - jQuery.fn[ name ] = function( data, fn ) { - return arguments.length > 0 ? - this.on( name, null, data, fn ) : - this.trigger( name ); - }; -} ); - -jQuery.fn.extend( { - hover: function( fnOver, fnOut ) { - return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); - } -} ); - - - - -support.focusin = "onfocusin" in window; - - -// Support: Firefox <=44 -// Firefox doesn't have focus(in | out) events -// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 -// -// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 -// focus(in | out) events fire after focus & blur events, -// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order -// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 -if ( !support.focusin ) { - jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) { - - // Attach a single capturing handler on the document while someone wants focusin/focusout - var handler = function( event ) { - jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) ); - }; - - jQuery.event.special[ fix ] = { - setup: function() { - var doc = this.ownerDocument || this, - attaches = dataPriv.access( doc, fix ); - - if ( !attaches ) { - doc.addEventListener( orig, handler, true ); - } - dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); - }, - teardown: function() { - var doc = this.ownerDocument || this, - attaches = dataPriv.access( doc, fix ) - 1; - - if ( !attaches ) { - doc.removeEventListener( orig, handler, true ); - dataPriv.remove( doc, fix ); - - } else { - dataPriv.access( doc, fix, attaches ); - } - } - }; - } ); -} -var location = window.location; - -var nonce = jQuery.now(); - -var rquery = ( /\?/ ); - - - -// Cross-browser xml parsing -jQuery.parseXML = function( data ) { - var xml; - if ( !data || typeof data !== "string" ) { - return null; - } - - // Support: IE 9 - 11 only - // IE throws on parseFromString with invalid input. - try { - xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); - } catch ( e ) { - xml = undefined; - } - - if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { - jQuery.error( "Invalid XML: " + data ); - } - return xml; -}; - - -var - rbracket = /\[\]$/, - rCRLF = /\r?\n/g, - rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, - rsubmittable = /^(?:input|select|textarea|keygen)/i; - -function buildParams( prefix, obj, traditional, add ) { - var name; - - if ( Array.isArray( obj ) ) { - - // Serialize array item. - jQuery.each( obj, function( i, v ) { - if ( traditional || rbracket.test( prefix ) ) { - - // Treat each array item as a scalar. - add( prefix, v ); - - } else { - - // Item is non-scalar (array or object), encode its numeric index. - buildParams( - prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", - v, - traditional, - add - ); - } - } ); - - } else if ( !traditional && jQuery.type( obj ) === "object" ) { - - // Serialize object item. - for ( name in obj ) { - buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); - } - - } else { - - // Serialize scalar item. - add( prefix, obj ); - } -} - -// Serialize an array of form elements or a set of -// key/values into a query string -jQuery.param = function( a, traditional ) { - var prefix, - s = [], - add = function( key, valueOrFunction ) { - - // If value is a function, invoke it and use its return value - var value = jQuery.isFunction( valueOrFunction ) ? - valueOrFunction() : - valueOrFunction; - - s[ s.length ] = encodeURIComponent( key ) + "=" + - encodeURIComponent( value == null ? "" : value ); - }; - - // If an array was passed in, assume that it is an array of form elements. - if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { - - // Serialize the form elements - jQuery.each( a, function() { - add( this.name, this.value ); - } ); - - } else { - - // If traditional, encode the "old" way (the way 1.3.2 or older - // did it), otherwise encode params recursively. - for ( prefix in a ) { - buildParams( prefix, a[ prefix ], traditional, add ); - } - } - - // Return the resulting serialization - return s.join( "&" ); -}; - -jQuery.fn.extend( { - serialize: function() { - return jQuery.param( this.serializeArray() ); - }, - serializeArray: function() { - return this.map( function() { - - // Can add propHook for "elements" to filter or add form elements - var elements = jQuery.prop( this, "elements" ); - return elements ? jQuery.makeArray( elements ) : this; - } ) - .filter( function() { - var type = this.type; - - // Use .is( ":disabled" ) so that fieldset[disabled] works - return this.name && !jQuery( this ).is( ":disabled" ) && - rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && - ( this.checked || !rcheckableType.test( type ) ); - } ) - .map( function( i, elem ) { - var val = jQuery( this ).val(); - - if ( val == null ) { - return null; - } - - if ( Array.isArray( val ) ) { - return jQuery.map( val, function( val ) { - return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; - } ); - } - - return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; - } ).get(); - } -} ); - - -var - r20 = /%20/g, - rhash = /#.*$/, - rantiCache = /([?&])_=[^&]*/, - rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, - - // #7653, #8125, #8152: local protocol detection - rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, - rnoContent = /^(?:GET|HEAD)$/, - rprotocol = /^\/\//, - - /* Prefilters - * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) - * 2) These are called: - * - BEFORE asking for a transport - * - AFTER param serialization (s.data is a string if s.processData is true) - * 3) key is the dataType - * 4) the catchall symbol "*" can be used - * 5) execution will start with transport dataType and THEN continue down to "*" if needed - */ - prefilters = {}, - - /* Transports bindings - * 1) key is the dataType - * 2) the catchall symbol "*" can be used - * 3) selection will start with transport dataType and THEN go to "*" if needed - */ - transports = {}, - - // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression - allTypes = "*/".concat( "*" ), - - // Anchor tag for parsing the document origin - originAnchor = document.createElement( "a" ); - originAnchor.href = location.href; - -// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport -function addToPrefiltersOrTransports( structure ) { - - // dataTypeExpression is optional and defaults to "*" - return function( dataTypeExpression, func ) { - - if ( typeof dataTypeExpression !== "string" ) { - func = dataTypeExpression; - dataTypeExpression = "*"; - } - - var dataType, - i = 0, - dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; - - if ( jQuery.isFunction( func ) ) { - - // For each dataType in the dataTypeExpression - while ( ( dataType = dataTypes[ i++ ] ) ) { - - // Prepend if requested - if ( dataType[ 0 ] === "+" ) { - dataType = dataType.slice( 1 ) || "*"; - ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); - - // Otherwise append - } else { - ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); - } - } - } - }; -} - -// Base inspection function for prefilters and transports -function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { - - var inspected = {}, - seekingTransport = ( structure === transports ); - - function inspect( dataType ) { - var selected; - inspected[ dataType ] = true; - jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { - var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); - if ( typeof dataTypeOrTransport === "string" && - !seekingTransport && !inspected[ dataTypeOrTransport ] ) { - - options.dataTypes.unshift( dataTypeOrTransport ); - inspect( dataTypeOrTransport ); - return false; - } else if ( seekingTransport ) { - return !( selected = dataTypeOrTransport ); - } - } ); - return selected; - } - - return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); -} - -// A special extend for ajax options -// that takes "flat" options (not to be deep extended) -// Fixes #9887 -function ajaxExtend( target, src ) { - var key, deep, - flatOptions = jQuery.ajaxSettings.flatOptions || {}; - - for ( key in src ) { - if ( src[ key ] !== undefined ) { - ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; - } - } - if ( deep ) { - jQuery.extend( true, target, deep ); - } - - return target; -} - -/* Handles responses to an ajax request: - * - finds the right dataType (mediates between content-type and expected dataType) - * - returns the corresponding response - */ -function ajaxHandleResponses( s, jqXHR, responses ) { - - var ct, type, finalDataType, firstDataType, - contents = s.contents, - dataTypes = s.dataTypes; - - // Remove auto dataType and get content-type in the process - while ( dataTypes[ 0 ] === "*" ) { - dataTypes.shift(); - if ( ct === undefined ) { - ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); - } - } - - // Check if we're dealing with a known content-type - if ( ct ) { - for ( type in contents ) { - if ( contents[ type ] && contents[ type ].test( ct ) ) { - dataTypes.unshift( type ); - break; - } - } - } - - // Check to see if we have a response for the expected dataType - if ( dataTypes[ 0 ] in responses ) { - finalDataType = dataTypes[ 0 ]; - } else { - - // Try convertible dataTypes - for ( type in responses ) { - if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { - finalDataType = type; - break; - } - if ( !firstDataType ) { - firstDataType = type; - } - } - - // Or just use first one - finalDataType = finalDataType || firstDataType; - } - - // If we found a dataType - // We add the dataType to the list if needed - // and return the corresponding response - if ( finalDataType ) { - if ( finalDataType !== dataTypes[ 0 ] ) { - dataTypes.unshift( finalDataType ); - } - return responses[ finalDataType ]; - } -} - -/* Chain conversions given the request and the original response - * Also sets the responseXXX fields on the jqXHR instance - */ -function ajaxConvert( s, response, jqXHR, isSuccess ) { - var conv2, current, conv, tmp, prev, - converters = {}, - - // Work with a copy of dataTypes in case we need to modify it for conversion - dataTypes = s.dataTypes.slice(); - - // Create converters map with lowercased keys - if ( dataTypes[ 1 ] ) { - for ( conv in s.converters ) { - converters[ conv.toLowerCase() ] = s.converters[ conv ]; - } - } - - current = dataTypes.shift(); - - // Convert to each sequential dataType - while ( current ) { - - if ( s.responseFields[ current ] ) { - jqXHR[ s.responseFields[ current ] ] = response; - } - - // Apply the dataFilter if provided - if ( !prev && isSuccess && s.dataFilter ) { - response = s.dataFilter( response, s.dataType ); - } - - prev = current; - current = dataTypes.shift(); - - if ( current ) { - - // There's only work to do if current dataType is non-auto - if ( current === "*" ) { - - current = prev; - - // Convert response if prev dataType is non-auto and differs from current - } else if ( prev !== "*" && prev !== current ) { - - // Seek a direct converter - conv = converters[ prev + " " + current ] || converters[ "* " + current ]; - - // If none found, seek a pair - if ( !conv ) { - for ( conv2 in converters ) { - - // If conv2 outputs current - tmp = conv2.split( " " ); - if ( tmp[ 1 ] === current ) { - - // If prev can be converted to accepted input - conv = converters[ prev + " " + tmp[ 0 ] ] || - converters[ "* " + tmp[ 0 ] ]; - if ( conv ) { - - // Condense equivalence converters - if ( conv === true ) { - conv = converters[ conv2 ]; - - // Otherwise, insert the intermediate dataType - } else if ( converters[ conv2 ] !== true ) { - current = tmp[ 0 ]; - dataTypes.unshift( tmp[ 1 ] ); - } - break; - } - } - } - } - - // Apply converter (if not an equivalence) - if ( conv !== true ) { - - // Unless errors are allowed to bubble, catch and return them - if ( conv && s.throws ) { - response = conv( response ); - } else { - try { - response = conv( response ); - } catch ( e ) { - return { - state: "parsererror", - error: conv ? e : "No conversion from " + prev + " to " + current - }; - } - } - } - } - } - } - - return { state: "success", data: response }; -} - -jQuery.extend( { - - // Counter for holding the number of active queries - active: 0, - - // Last-Modified header cache for next request - lastModified: {}, - etag: {}, - - ajaxSettings: { - url: location.href, - type: "GET", - isLocal: rlocalProtocol.test( location.protocol ), - global: true, - processData: true, - async: true, - contentType: "application/x-www-form-urlencoded; charset=UTF-8", - - /* - timeout: 0, - data: null, - dataType: null, - username: null, - password: null, - cache: null, - throws: false, - traditional: false, - headers: {}, - */ - - accepts: { - "*": allTypes, - text: "text/plain", - html: "text/html", - xml: "application/xml, text/xml", - json: "application/json, text/javascript" - }, - - contents: { - xml: /\bxml\b/, - html: /\bhtml/, - json: /\bjson\b/ - }, - - responseFields: { - xml: "responseXML", - text: "responseText", - json: "responseJSON" - }, - - // Data converters - // Keys separate source (or catchall "*") and destination types with a single space - converters: { - - // Convert anything to text - "* text": String, - - // Text to html (true = no transformation) - "text html": true, - - // Evaluate text as a json expression - "text json": JSON.parse, - - // Parse text as xml - "text xml": jQuery.parseXML - }, - - // For options that shouldn't be deep extended: - // you can add your own custom options here if - // and when you create one that shouldn't be - // deep extended (see ajaxExtend) - flatOptions: { - url: true, - context: true - } - }, - - // Creates a full fledged settings object into target - // with both ajaxSettings and settings fields. - // If target is omitted, writes into ajaxSettings. - ajaxSetup: function( target, settings ) { - return settings ? - - // Building a settings object - ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : - - // Extending ajaxSettings - ajaxExtend( jQuery.ajaxSettings, target ); - }, - - ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), - ajaxTransport: addToPrefiltersOrTransports( transports ), - - // Main method - ajax: function( url, options ) { - - // If url is an object, simulate pre-1.5 signature - if ( typeof url === "object" ) { - options = url; - url = undefined; - } - - // Force options to be an object - options = options || {}; - - var transport, - - // URL without anti-cache param - cacheURL, - - // Response headers - responseHeadersString, - responseHeaders, - - // timeout handle - timeoutTimer, - - // Url cleanup var - urlAnchor, - - // Request state (becomes false upon send and true upon completion) - completed, - - // To know if global events are to be dispatched - fireGlobals, - - // Loop variable - i, - - // uncached part of the url - uncached, - - // Create the final options object - s = jQuery.ajaxSetup( {}, options ), - - // Callbacks context - callbackContext = s.context || s, - - // Context for global events is callbackContext if it is a DOM node or jQuery collection - globalEventContext = s.context && - ( callbackContext.nodeType || callbackContext.jquery ) ? - jQuery( callbackContext ) : - jQuery.event, - - // Deferreds - deferred = jQuery.Deferred(), - completeDeferred = jQuery.Callbacks( "once memory" ), - - // Status-dependent callbacks - statusCode = s.statusCode || {}, - - // Headers (they are sent all at once) - requestHeaders = {}, - requestHeadersNames = {}, - - // Default abort message - strAbort = "canceled", - - // Fake xhr - jqXHR = { - readyState: 0, - - // Builds headers hashtable if needed - getResponseHeader: function( key ) { - var match; - if ( completed ) { - if ( !responseHeaders ) { - responseHeaders = {}; - while ( ( match = rheaders.exec( responseHeadersString ) ) ) { - responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ]; - } - } - match = responseHeaders[ key.toLowerCase() ]; - } - return match == null ? null : match; - }, - - // Raw string - getAllResponseHeaders: function() { - return completed ? responseHeadersString : null; - }, - - // Caches the header - setRequestHeader: function( name, value ) { - if ( completed == null ) { - name = requestHeadersNames[ name.toLowerCase() ] = - requestHeadersNames[ name.toLowerCase() ] || name; - requestHeaders[ name ] = value; - } - return this; - }, - - // Overrides response content-type header - overrideMimeType: function( type ) { - if ( completed == null ) { - s.mimeType = type; - } - return this; - }, - - // Status-dependent callbacks - statusCode: function( map ) { - var code; - if ( map ) { - if ( completed ) { - - // Execute the appropriate callbacks - jqXHR.always( map[ jqXHR.status ] ); - } else { - - // Lazy-add the new callbacks in a way that preserves old ones - for ( code in map ) { - statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; - } - } - } - return this; - }, - - // Cancel the request - abort: function( statusText ) { - var finalText = statusText || strAbort; - if ( transport ) { - transport.abort( finalText ); - } - done( 0, finalText ); - return this; - } - }; - - // Attach deferreds - deferred.promise( jqXHR ); - - // Add protocol if not provided (prefilters might expect it) - // Handle falsy url in the settings object (#10093: consistency with old signature) - // We also use the url parameter if available - s.url = ( ( url || s.url || location.href ) + "" ) - .replace( rprotocol, location.protocol + "//" ); - - // Alias method option to type as per ticket #12004 - s.type = options.method || options.type || s.method || s.type; - - // Extract dataTypes list - s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; - - // A cross-domain request is in order when the origin doesn't match the current origin. - if ( s.crossDomain == null ) { - urlAnchor = document.createElement( "a" ); - - // Support: IE <=8 - 11, Edge 12 - 13 - // IE throws exception on accessing the href property if url is malformed, - // e.g. http://example.com:80x/ - try { - urlAnchor.href = s.url; - - // Support: IE <=8 - 11 only - // Anchor's host property isn't correctly set when s.url is relative - urlAnchor.href = urlAnchor.href; - s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== - urlAnchor.protocol + "//" + urlAnchor.host; - } catch ( e ) { - - // If there is an error parsing the URL, assume it is crossDomain, - // it can be rejected by the transport if it is invalid - s.crossDomain = true; - } - } - - // Convert data if not already a string - if ( s.data && s.processData && typeof s.data !== "string" ) { - s.data = jQuery.param( s.data, s.traditional ); - } - - // Apply prefilters - inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); - - // If request was aborted inside a prefilter, stop there - if ( completed ) { - return jqXHR; - } - - // We can fire global events as of now if asked to - // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) - fireGlobals = jQuery.event && s.global; - - // Watch for a new set of requests - if ( fireGlobals && jQuery.active++ === 0 ) { - jQuery.event.trigger( "ajaxStart" ); - } - - // Uppercase the type - s.type = s.type.toUpperCase(); - - // Determine if request has content - s.hasContent = !rnoContent.test( s.type ); - - // Save the URL in case we're toying with the If-Modified-Since - // and/or If-None-Match header later on - // Remove hash to simplify url manipulation - cacheURL = s.url.replace( rhash, "" ); - - // More options handling for requests with no content - if ( !s.hasContent ) { - - // Remember the hash so we can put it back - uncached = s.url.slice( cacheURL.length ); - - // If data is available, append data to url - if ( s.data ) { - cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; - - // #9682: remove data so that it's not used in an eventual retry - delete s.data; - } - - // Add or update anti-cache param if needed - if ( s.cache === false ) { - cacheURL = cacheURL.replace( rantiCache, "$1" ); - uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached; - } - - // Put hash and anti-cache on the URL that will be requested (gh-1732) - s.url = cacheURL + uncached; - - // Change '%20' to '+' if this is encoded form body content (gh-2658) - } else if ( s.data && s.processData && - ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { - s.data = s.data.replace( r20, "+" ); - } - - // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. - if ( s.ifModified ) { - if ( jQuery.lastModified[ cacheURL ] ) { - jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); - } - if ( jQuery.etag[ cacheURL ] ) { - jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); - } - } - - // Set the correct header, if data is being sent - if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { - jqXHR.setRequestHeader( "Content-Type", s.contentType ); - } - - // Set the Accepts header for the server, depending on the dataType - jqXHR.setRequestHeader( - "Accept", - s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? - s.accepts[ s.dataTypes[ 0 ] ] + - ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : - s.accepts[ "*" ] - ); - - // Check for headers option - for ( i in s.headers ) { - jqXHR.setRequestHeader( i, s.headers[ i ] ); - } - - // Allow custom headers/mimetypes and early abort - if ( s.beforeSend && - ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { - - // Abort if not done already and return - return jqXHR.abort(); - } - - // Aborting is no longer a cancellation - strAbort = "abort"; - - // Install callbacks on deferreds - completeDeferred.add( s.complete ); - jqXHR.done( s.success ); - jqXHR.fail( s.error ); - - // Get transport - transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); - - // If no transport, we auto-abort - if ( !transport ) { - done( -1, "No Transport" ); - } else { - jqXHR.readyState = 1; - - // Send global event - if ( fireGlobals ) { - globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); - } - - // If request was aborted inside ajaxSend, stop there - if ( completed ) { - return jqXHR; - } - - // Timeout - if ( s.async && s.timeout > 0 ) { - timeoutTimer = window.setTimeout( function() { - jqXHR.abort( "timeout" ); - }, s.timeout ); - } - - try { - completed = false; - transport.send( requestHeaders, done ); - } catch ( e ) { - - // Rethrow post-completion exceptions - if ( completed ) { - throw e; - } - - // Propagate others as results - done( -1, e ); - } - } - - // Callback for when everything is done - function done( status, nativeStatusText, responses, headers ) { - var isSuccess, success, error, response, modified, - statusText = nativeStatusText; - - // Ignore repeat invocations - if ( completed ) { - return; - } - - completed = true; - - // Clear timeout if it exists - if ( timeoutTimer ) { - window.clearTimeout( timeoutTimer ); - } - - // Dereference transport for early garbage collection - // (no matter how long the jqXHR object will be used) - transport = undefined; - - // Cache response headers - responseHeadersString = headers || ""; - - // Set readyState - jqXHR.readyState = status > 0 ? 4 : 0; - - // Determine if successful - isSuccess = status >= 200 && status < 300 || status === 304; - - // Get response data - if ( responses ) { - response = ajaxHandleResponses( s, jqXHR, responses ); - } - - // Convert no matter what (that way responseXXX fields are always set) - response = ajaxConvert( s, response, jqXHR, isSuccess ); - - // If successful, handle type chaining - if ( isSuccess ) { - - // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. - if ( s.ifModified ) { - modified = jqXHR.getResponseHeader( "Last-Modified" ); - if ( modified ) { - jQuery.lastModified[ cacheURL ] = modified; - } - modified = jqXHR.getResponseHeader( "etag" ); - if ( modified ) { - jQuery.etag[ cacheURL ] = modified; - } - } - - // if no content - if ( status === 204 || s.type === "HEAD" ) { - statusText = "nocontent"; - - // if not modified - } else if ( status === 304 ) { - statusText = "notmodified"; - - // If we have data, let's convert it - } else { - statusText = response.state; - success = response.data; - error = response.error; - isSuccess = !error; - } - } else { - - // Extract error from statusText and normalize for non-aborts - error = statusText; - if ( status || !statusText ) { - statusText = "error"; - if ( status < 0 ) { - status = 0; - } - } - } - - // Set data for the fake xhr object - jqXHR.status = status; - jqXHR.statusText = ( nativeStatusText || statusText ) + ""; - - // Success/Error - if ( isSuccess ) { - deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); - } else { - deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); - } - - // Status-dependent callbacks - jqXHR.statusCode( statusCode ); - statusCode = undefined; - - if ( fireGlobals ) { - globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", - [ jqXHR, s, isSuccess ? success : error ] ); - } - - // Complete - completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); - - if ( fireGlobals ) { - globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); - - // Handle the global AJAX counter - if ( !( --jQuery.active ) ) { - jQuery.event.trigger( "ajaxStop" ); - } - } - } - - return jqXHR; - }, - - getJSON: function( url, data, callback ) { - return jQuery.get( url, data, callback, "json" ); - }, - - getScript: function( url, callback ) { - return jQuery.get( url, undefined, callback, "script" ); - } -} ); - -jQuery.each( [ "get", "post" ], function( i, method ) { - jQuery[ method ] = function( url, data, callback, type ) { - - // Shift arguments if data argument was omitted - if ( jQuery.isFunction( data ) ) { - type = type || callback; - callback = data; - data = undefined; - } - - // The url can be an options object (which then must have .url) - return jQuery.ajax( jQuery.extend( { - url: url, - type: method, - dataType: type, - data: data, - success: callback - }, jQuery.isPlainObject( url ) && url ) ); - }; -} ); - - -jQuery._evalUrl = function( url ) { - return jQuery.ajax( { - url: url, - - // Make this explicit, since user can override this through ajaxSetup (#11264) - type: "GET", - dataType: "script", - cache: true, - async: false, - global: false, - "throws": true - } ); -}; - - -jQuery.fn.extend( { - wrapAll: function( html ) { - var wrap; - - if ( this[ 0 ] ) { - if ( jQuery.isFunction( html ) ) { - html = html.call( this[ 0 ] ); - } - - // The elements to wrap the target around - wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); - - if ( this[ 0 ].parentNode ) { - wrap.insertBefore( this[ 0 ] ); - } - - wrap.map( function() { - var elem = this; - - while ( elem.firstElementChild ) { - elem = elem.firstElementChild; - } - - return elem; - } ).append( this ); - } - - return this; - }, - - wrapInner: function( html ) { - if ( jQuery.isFunction( html ) ) { - return this.each( function( i ) { - jQuery( this ).wrapInner( html.call( this, i ) ); - } ); - } - - return this.each( function() { - var self = jQuery( this ), - contents = self.contents(); - - if ( contents.length ) { - contents.wrapAll( html ); - - } else { - self.append( html ); - } - } ); - }, - - wrap: function( html ) { - var isFunction = jQuery.isFunction( html ); - - return this.each( function( i ) { - jQuery( this ).wrapAll( isFunction ? html.call( this, i ) : html ); - } ); - }, - - unwrap: function( selector ) { - this.parent( selector ).not( "body" ).each( function() { - jQuery( this ).replaceWith( this.childNodes ); - } ); - return this; - } -} ); - - -jQuery.expr.pseudos.hidden = function( elem ) { - return !jQuery.expr.pseudos.visible( elem ); -}; -jQuery.expr.pseudos.visible = function( elem ) { - return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); -}; - - - - -jQuery.ajaxSettings.xhr = function() { - try { - return new window.XMLHttpRequest(); - } catch ( e ) {} -}; - -var xhrSuccessStatus = { - - // File protocol always yields status code 0, assume 200 - 0: 200, - - // Support: IE <=9 only - // #1450: sometimes IE returns 1223 when it should be 204 - 1223: 204 - }, - xhrSupported = jQuery.ajaxSettings.xhr(); - -support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); -support.ajax = xhrSupported = !!xhrSupported; - -jQuery.ajaxTransport( function( options ) { - var callback, errorCallback; - - // Cross domain only allowed if supported through XMLHttpRequest - if ( support.cors || xhrSupported && !options.crossDomain ) { - return { - send: function( headers, complete ) { - var i, - xhr = options.xhr(); - - xhr.open( - options.type, - options.url, - options.async, - options.username, - options.password - ); - - // Apply custom fields if provided - if ( options.xhrFields ) { - for ( i in options.xhrFields ) { - xhr[ i ] = options.xhrFields[ i ]; - } - } - - // Override mime type if needed - if ( options.mimeType && xhr.overrideMimeType ) { - xhr.overrideMimeType( options.mimeType ); - } - - // X-Requested-With header - // For cross-domain requests, seeing as conditions for a preflight are - // akin to a jigsaw puzzle, we simply never set it to be sure. - // (it can always be set on a per-request basis or even using ajaxSetup) - // For same-domain requests, won't change header if already provided. - if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { - headers[ "X-Requested-With" ] = "XMLHttpRequest"; - } - - // Set headers - for ( i in headers ) { - xhr.setRequestHeader( i, headers[ i ] ); - } - - // Callback - callback = function( type ) { - return function() { - if ( callback ) { - callback = errorCallback = xhr.onload = - xhr.onerror = xhr.onabort = xhr.onreadystatechange = null; - - if ( type === "abort" ) { - xhr.abort(); - } else if ( type === "error" ) { - - // Support: IE <=9 only - // On a manual native abort, IE9 throws - // errors on any property access that is not readyState - if ( typeof xhr.status !== "number" ) { - complete( 0, "error" ); - } else { - complete( - - // File: protocol always yields status 0; see #8605, #14207 - xhr.status, - xhr.statusText - ); - } - } else { - complete( - xhrSuccessStatus[ xhr.status ] || xhr.status, - xhr.statusText, - - // Support: IE <=9 only - // IE9 has no XHR2 but throws on binary (trac-11426) - // For XHR2 non-text, let the caller handle it (gh-2498) - ( xhr.responseType || "text" ) !== "text" || - typeof xhr.responseText !== "string" ? - { binary: xhr.response } : - { text: xhr.responseText }, - xhr.getAllResponseHeaders() - ); - } - } - }; - }; - - // Listen to events - xhr.onload = callback(); - errorCallback = xhr.onerror = callback( "error" ); - - // Support: IE 9 only - // Use onreadystatechange to replace onabort - // to handle uncaught aborts - if ( xhr.onabort !== undefined ) { - xhr.onabort = errorCallback; - } else { - xhr.onreadystatechange = function() { - - // Check readyState before timeout as it changes - if ( xhr.readyState === 4 ) { - - // Allow onerror to be called first, - // but that will not handle a native abort - // Also, save errorCallback to a variable - // as xhr.onerror cannot be accessed - window.setTimeout( function() { - if ( callback ) { - errorCallback(); - } - } ); - } - }; - } - - // Create the abort callback - callback = callback( "abort" ); - - try { - - // Do send the request (this may raise an exception) - xhr.send( options.hasContent && options.data || null ); - } catch ( e ) { - - // #14683: Only rethrow if this hasn't been notified as an error yet - if ( callback ) { - throw e; - } - } - }, - - abort: function() { - if ( callback ) { - callback(); - } - } - }; - } -} ); - - - - -// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) -jQuery.ajaxPrefilter( function( s ) { - if ( s.crossDomain ) { - s.contents.script = false; - } -} ); - -// Install script dataType -jQuery.ajaxSetup( { - accepts: { - script: "text/javascript, application/javascript, " + - "application/ecmascript, application/x-ecmascript" - }, - contents: { - script: /\b(?:java|ecma)script\b/ - }, - converters: { - "text script": function( text ) { - jQuery.globalEval( text ); - return text; - } - } -} ); - -// Handle cache's special case and crossDomain -jQuery.ajaxPrefilter( "script", function( s ) { - if ( s.cache === undefined ) { - s.cache = false; - } - if ( s.crossDomain ) { - s.type = "GET"; - } -} ); - -// Bind script tag hack transport -jQuery.ajaxTransport( "script", function( s ) { - - // This transport only deals with cross domain requests - if ( s.crossDomain ) { - var script, callback; - return { - send: function( _, complete ) { - script = jQuery( "