diff --git a/build.gradle b/build.gradle index cf18563f..f53bfd64 100644 --- a/build.gradle +++ b/build.gradle @@ -423,6 +423,7 @@ project('maxkey-common') { task copyMaxKey(type: Copy) { from "$rootDir/build/maxkey-jars/maxkey-authentication-social-${project.version}.jar" + from "$rootDir/build/maxkey-jars/maxkey-web-static-${project.version}.jar" from "$rootDir/build/maxkey-jars/maxkey-web-maxkey-${project.version}.jar" from "$rootDir/build/maxkey-jars/maxkey-web-maxkey-static-${project.version}.jar" into "$rootDir/build/MaxKey-v${project.version}GA/maxkey/"; @@ -431,6 +432,7 @@ task copyMaxKey(type: Copy) { task copyMaxKeyMgt(type: Copy) { from "$rootDir/build/maxkey-jars/maxkey-identity-rest-${project.version}.jar" from "$rootDir/build/maxkey-jars/maxkey-identity-scim-${project.version}.jar" + from "$rootDir/build/maxkey-jars/maxkey-web-static-${project.version}.jar" from "$rootDir/build/maxkey-jars/maxkey-web-mgt-${project.version}.jar" from "$rootDir/build/maxkey-jars/maxkey-web-mgt-static-${project.version}.jar" from "$rootDir/build/maxkey-jars/maxkey-synchronizers-${project.version}.jar" diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/jquery.js b/maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/jquery.js deleted file mode 100644 index da417064..00000000 --- a/maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/jquery.js +++ /dev/null @@ -1,6 +0,0 @@ -/*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license -//@ sourceMappingURL=jquery-1.10.2.min.map -*/ -(function(e,t){var n,r,i=typeof t,o=e.location,a=e.document,s=a.documentElement,l=e.jQuery,u=e.$,c={},p=[],f="1.10.2",d=p.concat,h=p.push,g=p.slice,m=p.indexOf,y=c.toString,v=c.hasOwnProperty,b=f.trim,x=function(e,t){return new x.fn.init(e,t,r)},w=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=/\S+/g,C=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,k=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,E=/^[\],:{}\s]*$/,S=/(?:^|:|,)(?:\s*\[)+/g,A=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,j=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,D=/^-ms-/,L=/-([\da-z])/gi,H=function(e,t){return t.toUpperCase()},q=function(e){(a.addEventListener||"load"===e.type||"complete"===a.readyState)&&(_(),x.ready())},_=function(){a.addEventListener?(a.removeEventListener("DOMContentLoaded",q,!1),e.removeEventListener("load",q,!1)):(a.detachEvent("onreadystatechange",q),e.detachEvent("onload",q))};x.fn=x.prototype={jquery:f,constructor:x,init:function(e,n,r){var i,o;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof x?n[0]:n,x.merge(this,x.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:a,!0)),k.test(i[1])&&x.isPlainObject(n))for(i in n)x.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(o=a.getElementById(i[2]),o&&o.parentNode){if(o.id!==i[2])return r.find(e);this.length=1,this[0]=o}return this.context=a,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return g.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(g.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},l=2),"object"==typeof s||x.isFunction(s)||(s={}),u===l&&(s=this,--l);u>l;l++)if(null!=(o=arguments[l]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(x.isPlainObject(r)||(n=x.isArray(r)))?(n?(n=!1,a=e&&x.isArray(e)?e:[]):a=e&&x.isPlainObject(e)?e:{},s[i]=x.extend(c,a,r)):r!==t&&(s[i]=r));return s},x.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=l),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){if(e===!0?!--x.readyWait:!x.isReady){if(!a.body)return setTimeout(x.ready);x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(a,[x]),x.fn.trigger&&x(a).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray||function(e){return"array"===x.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?c[y.call(e)]||"object":typeof e},isPlainObject:function(e){var n;if(!e||"object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!v.call(e,"constructor")&&!v.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(r){return!1}if(x.support.ownLast)for(n in e)return v.call(e,n);for(n in e);return n===t||v.call(e,n)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||a;var r=k.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=x.trim(n),n&&E.test(n.replace(A,"@").replace(j,"]").replace(S,"")))?Function("return "+n)():(x.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||x.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&x.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(D,"ms-").replace(L,H)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:b&&!b.call("\ufeff\u00a0")?function(e){return null==e?"":b.call(e)}:function(e){return null==e?"":(e+"").replace(C,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?x.merge(n,"string"==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(m)return m.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return d.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),x.isFunction(e)?(r=g.call(arguments,2),i=function(){return e.apply(n||this,r.concat(g.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):t},access:function(e,n,r,i,o,a,s){var l=0,u=e.length,c=null==r;if("object"===x.type(r)){o=!0;for(l in r)x.access(e,n,l,r[l],!0,a,s)}else if(i!==t&&(o=!0,x.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(x(e),n)})),n))for(;u>l;l++)n(e[l],r,s?i:i.call(e[l],l,n(e[l],r)));return o?e:c?n.call(e):u?n(e[0],r):a},now:function(){return(new Date).getTime()},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),x.ready.promise=function(t){if(!n)if(n=x.Deferred(),"complete"===a.readyState)setTimeout(x.ready);else if(a.addEventListener)a.addEventListener("DOMContentLoaded",q,!1),e.addEventListener("load",q,!1);else{a.attachEvent("onreadystatechange",q),e.attachEvent("onload",q);var r=!1;try{r=null==e.frameElement&&a.documentElement}catch(i){}r&&r.doScroll&&function o(){if(!x.isReady){try{r.doScroll("left")}catch(e){return setTimeout(o,50)}_(),x.ready()}}()}return n.promise(t)},x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){c["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=x(a),function(e,t){var n,r,i,o,a,s,l,u,c,p,f,d,h,g,m,y,v,b="sizzle"+-new Date,w=e.document,T=0,C=0,N=st(),k=st(),E=st(),S=!1,A=function(e,t){return e===t?(S=!0,0):0},j=typeof t,D=1<<31,L={}.hasOwnProperty,H=[],q=H.pop,_=H.push,M=H.push,O=H.slice,F=H.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},B="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",P="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",W=R.replace("w","w#"),$="\\["+P+"*("+R+")"+P+"*(?:([*^$|!~]?=)"+P+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+W+")|)|)"+P+"*\\]",I=":("+R+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+$.replace(3,8)+")*)|.*)\\)|)",z=RegExp("^"+P+"+|((?:^|[^\\\\])(?:\\\\.)*)"+P+"+$","g"),X=RegExp("^"+P+"*,"+P+"*"),U=RegExp("^"+P+"*([>+~]|"+P+")"+P+"*"),V=RegExp(P+"*[+~]"),Y=RegExp("="+P+"*([^\\]'\"]*)"+P+"*\\]","g"),J=RegExp(I),G=RegExp("^"+W+"$"),Q={ID:RegExp("^#("+R+")"),CLASS:RegExp("^\\.("+R+")"),TAG:RegExp("^("+R.replace("w","w*")+")"),ATTR:RegExp("^"+$),PSEUDO:RegExp("^"+I),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+P+"*(even|odd|(([+-]|)(\\d*)n|)"+P+"*(?:([+-]|)"+P+"*(\\d+)|))"+P+"*\\)|)","i"),bool:RegExp("^(?:"+B+")$","i"),needsContext:RegExp("^"+P+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+P+"*((?:-\\d)?\\d*)"+P+"*\\)|)(?=[^-]|$)","i")},K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,et=/^(?:input|select|textarea|button)$/i,tt=/^h\d$/i,nt=/'|\\/g,rt=RegExp("\\\\([\\da-f]{1,6}"+P+"?|("+P+")|.)","ig"),it=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(55296|r>>10,56320|1023&r)};try{M.apply(H=O.call(w.childNodes),w.childNodes),H[w.childNodes.length].nodeType}catch(ot){M={apply:H.length?function(e,t){_.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function at(e,t,n,i){var o,a,s,l,u,c,d,m,y,x;if((t?t.ownerDocument||t:w)!==f&&p(t),t=t||f,n=n||[],!e||"string"!=typeof e)return n;if(1!==(l=t.nodeType)&&9!==l)return[];if(h&&!i){if(o=Z.exec(e))if(s=o[1]){if(9===l){if(a=t.getElementById(s),!a||!a.parentNode)return n;if(a.id===s)return n.push(a),n}else if(t.ownerDocument&&(a=t.ownerDocument.getElementById(s))&&v(t,a)&&a.id===s)return n.push(a),n}else{if(o[2])return M.apply(n,t.getElementsByTagName(e)),n;if((s=o[3])&&r.getElementsByClassName&&t.getElementsByClassName)return M.apply(n,t.getElementsByClassName(s)),n}if(r.qsa&&(!g||!g.test(e))){if(m=d=b,y=t,x=9===l&&e,1===l&&"object"!==t.nodeName.toLowerCase()){c=mt(e),(d=t.getAttribute("id"))?m=d.replace(nt,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",u=c.length;while(u--)c[u]=m+yt(c[u]);y=V.test(e)&&t.parentNode||t,x=c.join(",")}if(x)try{return M.apply(n,y.querySelectorAll(x)),n}catch(T){}finally{d||t.removeAttribute("id")}}}return kt(e.replace(z,"$1"),t,n,i)}function st(){var e=[];function t(n,r){return e.push(n+=" ")>o.cacheLength&&delete t[e.shift()],t[n]=r}return t}function lt(e){return e[b]=!0,e}function ut(e){var t=f.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ct(e,t){var n=e.split("|"),r=e.length;while(r--)o.attrHandle[n[r]]=t}function pt(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function ft(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function dt(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function ht(e){return lt(function(t){return t=+t,lt(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}s=at.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},r=at.support={},p=at.setDocument=function(e){var n=e?e.ownerDocument||e:w,i=n.defaultView;return n!==f&&9===n.nodeType&&n.documentElement?(f=n,d=n.documentElement,h=!s(n),i&&i.attachEvent&&i!==i.top&&i.attachEvent("onbeforeunload",function(){p()}),r.attributes=ut(function(e){return e.className="i",!e.getAttribute("className")}),r.getElementsByTagName=ut(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),r.getElementsByClassName=ut(function(e){return e.innerHTML="
",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),r.getById=ut(function(e){return d.appendChild(e).id=b,!n.getElementsByName||!n.getElementsByName(b).length}),r.getById?(o.find.ID=function(e,t){if(typeof t.getElementById!==j&&h){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){return e.getAttribute("id")===t}}):(delete o.find.ID,o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){var n=typeof e.getAttributeNode!==j&&e.getAttributeNode("id");return n&&n.value===t}}),o.find.TAG=r.getElementsByTagName?function(e,n){return typeof n.getElementsByTagName!==j?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},o.find.CLASS=r.getElementsByClassName&&function(e,n){return typeof n.getElementsByClassName!==j&&h?n.getElementsByClassName(e):t},m=[],g=[],(r.qsa=K.test(n.querySelectorAll))&&(ut(function(e){e.innerHTML="",e.querySelectorAll("[selected]").length||g.push("\\["+P+"*(?:value|"+B+")"),e.querySelectorAll(":checked").length||g.push(":checked")}),ut(function(e){var t=n.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&g.push("[*^$]="+P+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(r.matchesSelector=K.test(y=d.webkitMatchesSelector||d.mozMatchesSelector||d.oMatchesSelector||d.msMatchesSelector))&&ut(function(e){r.disconnectedMatch=y.call(e,"div"),y.call(e,"[s!='']:x"),m.push("!=",I)}),g=g.length&&RegExp(g.join("|")),m=m.length&&RegExp(m.join("|")),v=K.test(d.contains)||d.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},A=d.compareDocumentPosition?function(e,t){if(e===t)return S=!0,0;var i=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t);return i?1&i||!r.sortDetached&&t.compareDocumentPosition(e)===i?e===n||v(w,e)?-1:t===n||v(w,t)?1:c?F.call(c,e)-F.call(c,t):0:4&i?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return S=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:c?F.call(c,e)-F.call(c,t):0;if(o===a)return pt(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?pt(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},n):f},at.matches=function(e,t){return at(e,null,null,t)},at.matchesSelector=function(e,t){if((e.ownerDocument||e)!==f&&p(e),t=t.replace(Y,"='$1']"),!(!r.matchesSelector||!h||m&&m.test(t)||g&&g.test(t)))try{var n=y.call(e,t);if(n||r.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(i){}return at(t,f,null,[e]).length>0},at.contains=function(e,t){return(e.ownerDocument||e)!==f&&p(e),v(e,t)},at.attr=function(e,n){(e.ownerDocument||e)!==f&&p(e);var i=o.attrHandle[n.toLowerCase()],a=i&&L.call(o.attrHandle,n.toLowerCase())?i(e,n,!h):t;return a===t?r.attributes||!h?e.getAttribute(n):(a=e.getAttributeNode(n))&&a.specified?a.value:null:a},at.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},at.uniqueSort=function(e){var t,n=[],i=0,o=0;if(S=!r.detectDuplicates,c=!r.sortStable&&e.slice(0),e.sort(A),S){while(t=e[o++])t===e[o]&&(i=n.push(o));while(i--)e.splice(n[i],1)}return e},a=at.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=a(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=a(t);return n},o=at.selectors={cacheLength:50,createPseudo:lt,match:Q,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(rt,it),e[3]=(e[4]||e[5]||"").replace(rt,it),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||at.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&at.error(e[0]),e},PSEUDO:function(e){var n,r=!e[5]&&e[2];return Q.CHILD.test(e[0])?null:(e[3]&&e[4]!==t?e[2]=e[4]:r&&J.test(r)&&(n=mt(r,!0))&&(n=r.indexOf(")",r.length-n)-r.length)&&(e[0]=e[0].slice(0,n),e[2]=r.slice(0,n)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(rt,it).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=N[e+" "];return t||(t=RegExp("(^|"+P+")"+e+"("+P+"|$)"))&&N(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=at.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var u,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!l&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[b]||(m[b]={}),u=c[e]||[],d=u[0]===T&&u[1],f=u[0]===T&&u[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[T,d,f];break}}else if(v&&(u=(t[b]||(t[b]={}))[e])&&u[0]===T)f=u[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[b]||(p[b]={}))[e]=[T,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=o.pseudos[e]||o.setFilters[e.toLowerCase()]||at.error("unsupported pseudo: "+e);return r[b]?r(t):r.length>1?(n=[e,e,"",t],o.setFilters.hasOwnProperty(e.toLowerCase())?lt(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=F.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:lt(function(e){var t=[],n=[],r=l(e.replace(z,"$1"));return r[b]?lt(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:lt(function(e){return function(t){return at(e,t).length>0}}),contains:lt(function(e){return function(t){return(t.textContent||t.innerText||a(t)).indexOf(e)>-1}}),lang:lt(function(e){return G.test(e||"")||at.error("unsupported lang: "+e),e=e.replace(rt,it).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===d},focus:function(e){return e===f.activeElement&&(!f.hasFocus||f.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!o.pseudos.empty(e)},header:function(e){return tt.test(e.nodeName)},input:function(e){return et.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:ht(function(){return[0]}),last:ht(function(e,t){return[t-1]}),eq:ht(function(e,t,n){return[0>n?n+t:n]}),even:ht(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:ht(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:ht(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:ht(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}},o.pseudos.nth=o.pseudos.eq;for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})o.pseudos[n]=ft(n);for(n in{submit:!0,reset:!0})o.pseudos[n]=dt(n);function gt(){}gt.prototype=o.filters=o.pseudos,o.setFilters=new gt;function mt(e,t){var n,r,i,a,s,l,u,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,l=[],u=o.preFilter;while(s){(!n||(r=X.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),l.push(i=[])),n=!1,(r=U.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(z," ")}),s=s.slice(n.length));for(a in o.filter)!(r=Q[a].exec(s))||u[a]&&!(r=u[a](r))||(n=r.shift(),i.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?at.error(e):k(e,l).slice(0)}function yt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function vt(e,t,n){var r=t.dir,o=n&&"parentNode"===r,a=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||o)return e(t,n,i)}:function(t,n,s){var l,u,c,p=T+" "+a;if(s){while(t=t[r])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[r])if(1===t.nodeType||o)if(c=t[b]||(t[b]={}),(u=c[r])&&u[0]===p){if((l=u[1])===!0||l===i)return l===!0}else if(u=c[r]=[p],u[1]=e(t,n,s)||i,u[1]===!0)return!0}}function bt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function xt(e,t,n,r,i){var o,a=[],s=0,l=e.length,u=null!=t;for(;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),u&&t.push(s));return a}function wt(e,t,n,r,i,o){return r&&!r[b]&&(r=wt(r)),i&&!i[b]&&(i=wt(i,o)),lt(function(o,a,s,l){var u,c,p,f=[],d=[],h=a.length,g=o||Nt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:xt(g,f,e,s,l),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,l),r){u=xt(y,d),r(u,[],s,l),c=u.length;while(c--)(p=u[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){u=[],c=y.length;while(c--)(p=y[c])&&u.push(m[c]=p);i(null,y=[],u,l)}c=y.length;while(c--)(p=y[c])&&(u=i?F.call(o,p):f[c])>-1&&(o[u]=!(a[u]=p))}}else y=xt(y===a?y.splice(h,y.length):y),i?i(null,a,y,l):M.apply(a,y)})}function Tt(e){var t,n,r,i=e.length,a=o.relative[e[0].type],s=a||o.relative[" "],l=a?1:0,c=vt(function(e){return e===t},s,!0),p=vt(function(e){return F.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;i>l;l++)if(n=o.relative[e[l].type])f=[vt(bt(f),n)];else{if(n=o.filter[e[l].type].apply(null,e[l].matches),n[b]){for(r=++l;i>r;r++)if(o.relative[e[r].type])break;return wt(l>1&&bt(f),l>1&&yt(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,r>l&&Tt(e.slice(l,r)),i>r&&Tt(e=e.slice(r)),i>r&&yt(e))}f.push(n)}return bt(f)}function Ct(e,t){var n=0,r=t.length>0,a=e.length>0,s=function(s,l,c,p,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,C=u,N=s||a&&o.find.TAG("*",d&&l.parentNode||l),k=T+=null==C?1:Math.random()||.1;for(w&&(u=l!==f&&l,i=n);null!=(h=N[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,l,c)){p.push(h);break}w&&(T=k,i=++n)}r&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,r&&b!==v){g=0;while(m=t[g++])m(x,y,l,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=q.call(p));y=xt(y)}M.apply(p,y),w&&!s&&y.length>0&&v+t.length>1&&at.uniqueSort(p)}return w&&(T=k,u=C),x};return r?lt(s):s}l=at.compile=function(e,t){var n,r=[],i=[],o=E[e+" "];if(!o){t||(t=mt(e)),n=t.length;while(n--)o=Tt(t[n]),o[b]?r.push(o):i.push(o);o=E(e,Ct(i,r))}return o};function Nt(e,t,n){var r=0,i=t.length;for(;i>r;r++)at(e,t[r],n);return n}function kt(e,t,n,i){var a,s,u,c,p,f=mt(e);if(!i&&1===f.length){if(s=f[0]=f[0].slice(0),s.length>2&&"ID"===(u=s[0]).type&&r.getById&&9===t.nodeType&&h&&o.relative[s[1].type]){if(t=(o.find.ID(u.matches[0].replace(rt,it),t)||[])[0],!t)return n;e=e.slice(s.shift().value.length)}a=Q.needsContext.test(e)?0:s.length;while(a--){if(u=s[a],o.relative[c=u.type])break;if((p=o.find[c])&&(i=p(u.matches[0].replace(rt,it),V.test(s[0].type)&&t.parentNode||t))){if(s.splice(a,1),e=i.length&&yt(s),!e)return M.apply(n,i),n;break}}}return l(e,f)(i,t,!h,n,V.test(e)),n}r.sortStable=b.split("").sort(A).join("")===b,r.detectDuplicates=S,p(),r.sortDetached=ut(function(e){return 1&e.compareDocumentPosition(f.createElement("div"))}),ut(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||ct("type|href|height|width",function(e,n,r){return r?t:e.getAttribute(n,"type"===n.toLowerCase()?1:2)}),r.attributes&&ut(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||ct("value",function(e,n,r){return r||"input"!==e.nodeName.toLowerCase()?t:e.defaultValue}),ut(function(e){return null==e.getAttribute("disabled")})||ct(B,function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&i.specified?i.value:e[n]===!0?n.toLowerCase():null}),x.find=at,x.expr=at.selectors,x.expr[":"]=x.expr.pseudos,x.unique=at.uniqueSort,x.text=at.getText,x.isXMLDoc=at.isXML,x.contains=at.contains}(e);var O={};function F(e){var t=O[e]={};return x.each(e.match(T)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof e?O[e]||F(e):x.extend({},e);var n,r,i,o,a,s,l=[],u=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=l.length,n=!0;l&&o>a;a++)if(l[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,l&&(u?u.length&&c(u.shift()):r?l=[]:p.disable())},p={add:function(){if(l){var t=l.length;(function i(t){x.each(t,function(t,n){var r=x.type(n);"function"===r?e.unique&&p.has(n)||l.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=l.length:r&&(s=t,c(r))}return this},remove:function(){return l&&x.each(arguments,function(e,t){var r;while((r=x.inArray(t,l,r))>-1)l.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?x.inArray(e,l)>-1:!(!l||!l.length)},empty:function(){return l=[],o=0,this},disable:function(){return l=u=r=t,this},disabled:function(){return!l},lock:function(){return u=t,r||p.disable(),this},locked:function(){return!u},fireWith:function(e,t){return!l||i&&!u||(t=t||[],t=[e,t.slice?t.slice():t],n?u.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},x.extend({Deferred:function(e){var t=[["resolve","done",x.Callbacks("once memory"),"resolved"],["reject","fail",x.Callbacks("once memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var a=o[0],s=x.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=g.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?g.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,l,u;if(r>1)for(s=Array(r),l=Array(r),u=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(a(t,u,n)).fail(o.reject).progress(a(t,l,s)):--i;return i||o.resolveWith(u,n),o.promise()}}),x.support=function(t){var n,r,o,s,l,u,c,p,f,d=a.createElement("div");if(d.setAttribute("className","t"),d.innerHTML="
a",n=d.getElementsByTagName("*")||[],r=d.getElementsByTagName("a")[0],!r||!r.style||!n.length)return t;s=a.createElement("select"),u=s.appendChild(a.createElement("option")),o=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t.getSetAttribute="t"!==d.className,t.leadingWhitespace=3===d.firstChild.nodeType,t.tbody=!d.getElementsByTagName("tbody").length,t.htmlSerialize=!!d.getElementsByTagName("link").length,t.style=/top/.test(r.getAttribute("style")),t.hrefNormalized="/a"===r.getAttribute("href"),t.opacity=/^0.5/.test(r.style.opacity),t.cssFloat=!!r.style.cssFloat,t.checkOn=!!o.value,t.optSelected=u.selected,t.enctype=!!a.createElement("form").enctype,t.html5Clone="<:nav>"!==a.createElement("nav").cloneNode(!0).outerHTML,t.inlineBlockNeedsLayout=!1,t.shrinkWrapBlocks=!1,t.pixelPosition=!1,t.deleteExpando=!0,t.noCloneEvent=!0,t.reliableMarginRight=!0,t.boxSizingReliable=!0,o.checked=!0,t.noCloneChecked=o.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!u.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}o=a.createElement("input"),o.setAttribute("value",""),t.input=""===o.getAttribute("value"),o.value="t",o.setAttribute("type","radio"),t.radioValue="t"===o.value,o.setAttribute("checked","t"),o.setAttribute("name","t"),l=a.createDocumentFragment(),l.appendChild(o),t.appendChecked=o.checked,t.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip;for(f in x(t))break;return t.ownLast="0"!==f,x(function(){var n,r,o,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",l=a.getElementsByTagName("body")[0];l&&(n=a.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",l.appendChild(n).appendChild(d),d.innerHTML="
t
",o=d.getElementsByTagName("td"),o[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===o[0].offsetHeight,o[0].style.display="",o[1].style.display="none",t.reliableHiddenOffsets=p&&0===o[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",x.swap(l,null!=l.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===d.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(a.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="
",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(l.style.zoom=1)),l.removeChild(n),n=d=o=r=null)}),n=s=l=u=r=o=null,t -}({});var B=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;function R(e,n,r,i){if(x.acceptData(e)){var o,a,s=x.expando,l=e.nodeType,u=l?x.cache:e,c=l?e[s]:e[s]&&s;if(c&&u[c]&&(i||u[c].data)||r!==t||"string"!=typeof n)return c||(c=l?e[s]=p.pop()||x.guid++:s),u[c]||(u[c]=l?{}:{toJSON:x.noop}),("object"==typeof n||"function"==typeof n)&&(i?u[c]=x.extend(u[c],n):u[c].data=x.extend(u[c].data,n)),a=u[c],i||(a.data||(a.data={}),a=a.data),r!==t&&(a[x.camelCase(n)]=r),"string"==typeof n?(o=a[n],null==o&&(o=a[x.camelCase(n)])):o=a,o}}function W(e,t,n){if(x.acceptData(e)){var r,i,o=e.nodeType,a=o?x.cache:e,s=o?e[x.expando]:x.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){x.isArray(t)?t=t.concat(x.map(t,x.camelCase)):t in r?t=[t]:(t=x.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;while(i--)delete r[t[i]];if(n?!I(r):!x.isEmptyObject(r))return}(n||(delete a[s].data,I(a[s])))&&(o?x.cleanData([e],!0):x.support.deleteExpando||a!=a.window?delete a[s]:a[s]=null)}}}x.extend({cache:{},noData:{applet:!0,embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?x.cache[e[x.expando]]:e[x.expando],!!e&&!I(e)},data:function(e,t,n){return R(e,t,n)},removeData:function(e,t){return W(e,t)},_data:function(e,t,n){return R(e,t,n,!0)},_removeData:function(e,t){return W(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&x.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),x.fn.extend({data:function(e,n){var r,i,o=null,a=0,s=this[0];if(e===t){if(this.length&&(o=x.data(s),1===s.nodeType&&!x._data(s,"parsedAttrs"))){for(r=s.attributes;r.length>a;a++)i=r[a].name,0===i.indexOf("data-")&&(i=x.camelCase(i.slice(5)),$(s,i,o[i]));x._data(s,"parsedAttrs",!0)}return o}return"object"==typeof e?this.each(function(){x.data(this,e)}):arguments.length>1?this.each(function(){x.data(this,e,n)}):s?$(s,e,x.data(s,e)):null},removeData:function(e){return this.each(function(){x.removeData(this,e)})}});function $(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(P,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:B.test(r)?x.parseJSON(r):r}catch(o){}x.data(e,n,r)}else r=t}return r}function I(e){var t;for(t in e)if(("data"!==t||!x.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}x.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=x._data(e,n),r&&(!i||x.isArray(r)?i=x._data(e,n,x.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),a=function(){x.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return x._data(e,n)||x._data(e,n,{empty:x.Callbacks("once memory").add(function(){x._removeData(e,t+"queue"),x._removeData(e,n)})})}}),x.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?x.queue(this[0],e):n===t?this:this.each(function(){var t=x.queue(this,e,n);x._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=x.Deferred(),a=this,s=this.length,l=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=x._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(l));return l(),o.promise(n)}});var z,X,U=/[\t\r\n\f]/g,V=/\r/g,Y=/^(?:input|select|textarea|button|object)$/i,J=/^(?:a|area)$/i,G=/^(?:checked|selected)$/i,Q=x.support.getSetAttribute,K=x.support.input;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return e=x.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,l="string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,l=0===arguments.length||"string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var t,r=0,o=x(this),a=e.match(T)||[];while(t=a[r++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else(n===i||"boolean"===n)&&(this.className&&x._data(this,"__className__",this.className),this.className=this.className||e===!1?"":x._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(U," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=x.isFunction(e),this.each(function(n){var o;1===this.nodeType&&(o=i?e.call(this,n,x(this).val()):e,null==o?o="":"number"==typeof o?o+="":x.isArray(o)&&(o=x.map(o,function(e){return null==e?"":e+""})),r=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=x.valHooks[o.type]||x.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(V,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var t=x.find.attr(e,"value");return null!=t?t:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,l=0>i?s:o?i:0;for(;s>l;l++)if(n=r[l],!(!n.selected&&l!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),a=i.length;while(a--)r=i[a],(r.selected=x.inArray(x(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,n,r){var o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===i?x.prop(e,n,r):(1===s&&x.isXMLDoc(e)||(n=n.toLowerCase(),o=x.attrHooks[n]||(x.expr.match.bool.test(n)?X:z)),r===t?o&&"get"in o&&null!==(a=o.get(e,n))?a:(a=x.find.attr(e,n),null==a?t:a):null!==r?o&&"set"in o&&(a=o.set(e,r,n))!==t?a:(e.setAttribute(n,r+""),r):(x.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(T);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)?K&&Q||!G.test(n)?e[r]=!1:e[x.camelCase("default-"+n)]=e[r]=!1:x.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!x.isXMLDoc(e),a&&(n=x.propFix[n]||n,o=x.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var t=x.find.attr(e,"tabindex");return t?parseInt(t,10):Y.test(e.nodeName)||J.test(e.nodeName)&&e.href?0:-1}}}}),X={set:function(e,t,n){return t===!1?x.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&x.propFix[n]||n,n):e[x.camelCase("default-"+n)]=e[n]=!0,n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,n){var r=x.expr.attrHandle[n]||x.find.attr;x.expr.attrHandle[n]=K&&Q||!G.test(n)?function(e,n,i){var o=x.expr.attrHandle[n],a=i?t:(x.expr.attrHandle[n]=t)!=r(e,n,i)?n.toLowerCase():null;return x.expr.attrHandle[n]=o,a}:function(e,n,r){return r?t:e[x.camelCase("default-"+n)]?n.toLowerCase():null}}),K&&Q||(x.attrHooks.value={set:function(e,n,r){return x.nodeName(e,"input")?(e.defaultValue=n,t):z&&z.set(e,n,r)}}),Q||(z={set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},x.expr.attrHandle.id=x.expr.attrHandle.name=x.expr.attrHandle.coords=function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&""!==i.value?i.value:null},x.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&r.specified?r.value:t},set:z.set},x.attrHooks.contenteditable={set:function(e,t,n){z.set(e,""===t?!1:t,n)}},x.each(["width","height"],function(e,n){x.attrHooks[n]={set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}}})),x.support.hrefNormalized||x.each(["href","src"],function(e,t){x.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),x.support.style||(x.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.support.enctype||(x.propFix.enctype="encoding"),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,n){return x.isArray(n)?e.checked=x.inArray(x(e).val(),n)>=0:t}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}function at(){try{return a.activeElement}catch(e){}}x.event={global:{},add:function(e,n,r,o,a){var s,l,u,c,p,f,d,h,g,m,y,v=x._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=x.guid++),(l=v.events)||(l=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof x===i||e&&x.event.triggered===e.type?t:x.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(T)||[""],u=n.length;while(u--)s=rt.exec(n[u])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),g&&(p=x.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=x.event.special[g]||{},d=x.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&x.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=l[g])||(h=l[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),x.event.global[g]=!0);e=null}},remove:function(e,t,n,r,i){var o,a,s,l,u,c,p,f,d,h,g,m=x.hasData(e)&&x._data(e);if(m&&(c=m.events)){t=(t||"").match(T)||[""],u=t.length;while(u--)if(s=rt.exec(t[u])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=x.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),l=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));l&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||x.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)x.event.remove(e,d+t[u],n,r,!0);x.isEmptyObject(c)&&(delete m.handle,x._removeData(e,"events"))}},trigger:function(n,r,i,o){var s,l,u,c,p,f,d,h=[i||a],g=v.call(n,"type")?n.type:n,m=v.call(n,"namespace")?n.namespace.split("."):[];if(u=f=i=i||a,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+x.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),l=0>g.indexOf(":")&&"on"+g,n=n[x.expando]?n:new x.Event(g,"object"==typeof n&&n),n.isTrigger=o?2:3,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:x.makeArray(r,[n]),p=x.event.special[g]||{},o||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!o&&!p.noBubble&&!x.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(u=u.parentNode);u;u=u.parentNode)h.push(u),f=u;f===(i.ownerDocument||a)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((u=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(x._data(u,"events")||{})[n.type]&&x._data(u,"handle"),s&&s.apply(u,r),s=l&&u[l],s&&x.acceptData(u)&&s.apply&&s.apply(u,r)===!1&&n.preventDefault();if(n.type=g,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(h.pop(),r)===!1)&&x.acceptData(i)&&l&&i[g]&&!x.isWindow(i)){f=i[l],f&&(i[l]=null),x.event.triggered=g;try{i[g]()}catch(y){}x.event.triggered=t,f&&(i[l]=f)}return n.result}},dispatch:function(e){e=x.event.fix(e);var n,r,i,o,a,s=[],l=g.call(arguments),u=(x._data(this,"events")||{})[e.type]||[],c=x.event.special[e.type]||{};if(l[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((x.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,l),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],l=n.delegateCount,u=e.target;if(l&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(o=[],a=0;l>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?x(r,this).index(u)>=0:x.find(r,this,null,[u]).length),o[r]&&o.push(i);o.length&&s.push({elem:u,handlers:o})}return n.length>l&&s.push({elem:this,handlers:n.slice(l)}),s},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,o=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new x.Event(o),t=r.length;while(t--)n=r[t],e[n]=o[n];return e.target||(e.target=o.srcElement||a),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,o):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,o,s=n.button,l=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||a,o=i.documentElement,r=i.body,e.pageX=n.clientX+(o&&o.scrollLeft||r&&r.scrollLeft||0)-(o&&o.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(o&&o.scrollTop||r&&r.scrollTop||0)-(o&&o.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&l&&(e.relatedTarget=l===e.target?n.toElement:l),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==at()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===at()&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},click:{trigger:function(){return x.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t},_default:function(e){return x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=a.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},x.Event=function(e,n){return this instanceof x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&x.extend(this,n),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,t):new x.Event(e,n)},x.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.submitBubbles||(x.event.special.submit={setup:function(){return x.nodeName(this,"form")?!1:(x.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=x.nodeName(n,"input")||x.nodeName(n,"button")?n.form:t;r&&!x._data(r,"submitBubbles")&&(x.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),x._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&x.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return x.nodeName(this,"form")?!1:(x.event.remove(this,"._submit"),t)}}),x.support.changeBubbles||(x.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(x.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),x.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),x.event.simulate("change",this,e,!0)})),!1):(x.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!x._data(t,"changeBubbles")&&(x.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||x.event.simulate("change",this.parentNode,e,!0)}),x._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return x.event.remove(this,"._change"),!Z.test(this.nodeName)}}),x.support.focusinBubbles||x.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&&a.addEventListener(e,r,!0)},teardown:function(){0===--n&&a.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return x().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=x.guid++)),this.each(function(){x.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,x(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){x.event.remove(this,e,r,n)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?x.event.trigger(e,n,r,!0):t}});var st=/^.[^:#\[\.,]*$/,lt=/^(?:parents|prev(?:Until|All))/,ut=x.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;i>t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i>t;t++)x.find(e,r[t],n);return n=this.pushStack(i>1?x.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},has:function(e){var t,n=x(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(x.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e||[],!0))},filter:function(e){return this.pushStack(ft(this,e||[],!1))},is:function(e){return!!ft(this,"string"==typeof e&&ut.test(e)?x(e):e||[],!1).length},closest:function(e,t){var n,r=0,i=this.length,o=[],a=ut.test(e)||"string"!=typeof e?x(e,t||this.context):0;for(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(11>n.nodeType&&(a?a.index(n)>-1:1===n.nodeType&&x.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.length>1?x.unique(o):o)},index:function(e){return e?"string"==typeof e?x.inArray(this[0],x(e)):x.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?x(e,t):x.makeArray(e&&e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return x.dir(e,"parentNode")},parentsUntil:function(e,t,n){return x.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return x.dir(e,"nextSibling")},prevAll:function(e){return x.dir(e,"previousSibling")},nextUntil:function(e,t,n){return x.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return x.dir(e,"previousSibling",n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return x.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=x.filter(r,i)),this.length>1&&(ct[e]||(i=x.unique(i)),lt.test(e)&&(i=i.reverse())),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!x(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(st.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return x.inArray(e,t)>=0!==n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/\s*$/g,At={option:[1,""],legend:[1,"
","
"],area:[1,"",""],param:[1,"",""],thead:[1,"","
"],tr:[2,"","
"],col:[2,"","
"],td:[3,"","
"],_default:x.support.htmlSerialize?[0,"",""]:[1,"X
","
"]},jt=dt(a),Dt=jt.appendChild(a.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===t?x.text(this):this.empty().append((this[0]&&this[0].ownerDocument||a).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(Ft(n)),n.parentNode&&(t&&x.contains(n.ownerDocument,n)&&_t(Ft(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&x.cleanData(Ft(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&x.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!x.support.htmlSerialize&&mt.test(e)||!x.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(x.cleanData(Ft(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&&(r&&r.parentNode!==i&&(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=d.apply([],e);var r,i,o,a,s,l,u=0,c=this.length,p=this,f=c-1,h=e[0],g=x.isFunction(h);if(g||!(1>=c||"string"!=typeof h||x.support.checkClone)&&Nt.test(h))return this.each(function(r){var i=p.eq(r);g&&(e[0]=h.call(this,r,i.html())),i.domManip(e,t,n)});if(c&&(l=x.buildFragment(e,this[0].ownerDocument,!1,!n&&this),r=l.firstChild,1===l.childNodes.length&&(l=r),r)){for(a=x.map(Ft(l,"script"),Ht),o=a.length;c>u;u++)i=l,u!==f&&(i=x.clone(i,!0,!0),o&&x.merge(a,Ft(i,"script"))),t.call(this[u],i,u);if(o)for(s=a[a.length-1].ownerDocument,x.map(a,qt),u=0;o>u;u++)i=a[u],kt.test(i.type||"")&&!x._data(i,"globalEval")&&x.contains(s,i)&&(i.src?x._evalUrl(i.src):x.globalEval((i.text||i.textContent||i.innerHTML||"").replace(St,"")));l=r=null}return this}});function Lt(e,t){return x.nodeName(e,"table")&&x.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function Ht(e){return e.type=(null!==x.find.attr(e,"type"))+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function _t(e,t){var n,r=0;for(;null!=(n=e[r]);r++)x._data(n,"globalEval",!t||x._data(t[r],"globalEval"))}function Mt(e,t){if(1===t.nodeType&&x.hasData(e)){var n,r,i,o=x._data(e),a=x._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)x.event.add(t,n,s[n][r])}a.data&&(a.data=x.extend({},a.data))}}function Ot(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!x.support.noCloneEvent&&t[x.expando]){i=x._data(t);for(r in i.events)x.removeEvent(t,r,i.handle);t.removeAttribute(x.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),x.support.html5Clone&&e.innerHTML&&!x.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Ct.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}x.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){x.fn[e]=function(e){var n,r=0,i=[],o=x(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),x(o[r])[t](n),h.apply(i,n.get());return this.pushStack(i)}});function Ft(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||x.nodeName(o,n)?s.push(o):x.merge(s,Ft(o,n));return n===t||n&&x.nodeName(e,n)?x.merge([e],s):s}function Bt(e){Ct.test(e.type)&&(e.defaultChecked=e.checked)}x.extend({clone:function(e,t,n){var r,i,o,a,s,l=x.contains(e.ownerDocument,e);if(x.support.html5Clone||x.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(x.support.noCloneEvent&&x.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(r=Ft(o),s=Ft(e),a=0;null!=(i=s[a]);++a)r[a]&&Ot(i,r[a]);if(t)if(n)for(s=s||Ft(e),r=r||Ft(o),a=0;null!=(i=s[a]);a++)Mt(i,r[a]);else Mt(e,o);return r=Ft(o,"script"),r.length>0&&_t(r,!l&&Ft(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,l,u,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===x.type(o))x.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),l=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[l]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!x.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!x.support.tbody){o="table"!==l||xt.test(o)?""!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)x.nodeName(u=o.childNodes[i],"tbody")&&!u.childNodes.length&&o.removeChild(u)}x.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),x.support.appendChecked||x.grep(Ft(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===x.inArray(o,r))&&(a=x.contains(o.ownerDocument,o),s=Ft(f.appendChild(o),"script"),a&&_t(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,l=x.expando,u=x.cache,c=x.support.deleteExpando,f=x.event.special;for(;null!=(n=e[s]);s++)if((t||x.acceptData(n))&&(o=n[l],a=o&&u[o])){if(a.events)for(r in a.events)f[r]?x.event.remove(n,r):x.removeEvent(n,r,a.handle); -u[o]&&(delete u[o],c?delete n[l]:typeof n.removeAttribute!==i?n.removeAttribute(l):n[l]=null,p.push(o))}},_evalUrl:function(e){return x.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}}),x.fn.extend({wrapAll:function(e){if(x.isFunction(e))return this.each(function(t){x(this).wrapAll(e.call(this,t))});if(this[0]){var t=x(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+w+")(.*)$","i"),Yt=RegExp("^("+w+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+w+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=x._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=x._data(r,"olddisplay",ln(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&x._data(r,"olddisplay",i?n:x.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}x.fn.extend({css:function(e,n){return x.access(this,function(e,n,r){var i,o,a={},s=0;if(x.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=x.css(e,n[s],!1,o);return a}return r!==t?x.style(e,n,r):x.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){nn(this)?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":x.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,l=x.camelCase(n),u=e.style;if(n=x.cssProps[l]||(x.cssProps[l]=tn(u,l)),s=x.cssHooks[n]||x.cssHooks[l],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:u[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(x.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||x.cssNumber[l]||(r+="px"),x.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(u[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{u[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,l=x.camelCase(n);return n=x.cssProps[l]||(x.cssProps[l]=tn(e.style,l)),s=x.cssHooks[n]||x.cssHooks[l],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||x.isNumeric(o)?o||0:a):a}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s.getPropertyValue(n)||s[n]:t,u=e.style;return s&&(""!==l||x.contains(e.ownerDocument,e)||(l=x.style(e,n)),Yt.test(l)&&Ut.test(n)&&(i=u.width,o=u.minWidth,a=u.maxWidth,u.minWidth=u.maxWidth=u.width=l,l=s.width,u.width=i,u.minWidth=o,u.maxWidth=a)),l}):a.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s[n]:t,u=e.style;return null==l&&u&&u[n]&&(l=u[n]),Yt.test(l)&&!zt.test(n)&&(i=u.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),u.left="fontSize"===n?"1em":l,l=u.pixelLeft+"px",u.left=i,a&&(o.left=a)),""===l?"auto":l});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=x.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=x.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=x.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=x.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=x.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function ln(e){var t=a,n=Gt[e];return n||(n=un(e,t),"none"!==n&&n||(Pt=(Pt||x(""; - - $.dialog({//open iframe - title : settings.title, - content : winContent, - width : settings.width, - height : settings.height, - icon : settings.type, - init : settings.init, - lock : true, - background : "eeeeee", - padding : '0px 25px', - opacity : 0.1, - ok : function () {}, - cancel : function () {}, - button : [{ - value : settings.closeText, - callback : settings.callback, - disabled : false, - focus : true - }] - }); - $(".d-footer").hide(); - }; - //close window - $.closeWindow=function(){ - $(".d-buttons", window.parent.document).find("[value=cancel]").click(); - }; - - //alert dialog - $.alert=function(settings){ - var settings=$.extend({ - title : $.platform.messages.alert.title, - type : "warning",//alert type - width : 300, - height : 80, - callback : function(){}, - init : null, - closeText : $.platform.messages.alert.closeText//close text - }, settings || {}); - - $.dialog({//open - title : settings.title, - content : settings.content, - width : settings.width, - height : settings.height, - icon : settings.type, - init : settings.init, - lock : true, - background : "eeeeee", - opacity : 0.1, - okValue : null, - cancelValue : null, - button : [{ - value : settings.closeText, - callback : settings.callback, - disabled : false, - focus : true - }] - }); - $(".d-footer").show(); - }; - //conform dialog - $.conform=function(settings){ - var settings=$.extend({ - title : $.platform.messages.alert.title, - content : "", - type : "question",//default type - width : 300, - height : 80, - callback : function (){},//callback function - init : null//init function - }, settings || {}); - - $.dialog({ - title : settings.title, - content : settings.content, - width : settings.width, - height : settings.height, - icon : settings.type, - lock : true, - background : "eeeeee", - opacity : 0.1, - okValue : $.platform.messages.conform.yes,//yes - cancelValue : $.platform.messages.conform.no,//no - ok : settings.callback, - cancel : function (){} - }); - $(".d-footer").show(); - }; - - //window open by element is window style - $(".window").on("click",function(){ - if (typeof(beforeWindow) == "function"){ - beforeWindow();///before open action - } - - var url=$(this).attr("wurl"); - - if($(this).attr("ref")){ - url=url+"/"+$("#"+$(this).attr("ref")).val(); - } - - var settings={ - url : url,//window url - title : $(this).attr("wtitle"),//title - width : $(this).attr("wwidth"),//width - height : $(this).attr("wheight")//height - }; - $.window(settings);//open window - }); - - //forward to url, by forward style - $(".forward").on("click",function(){ - var settings={ - url : $(this).attr("wurl"),//current element url - href : $(this).attr("wurl")//current element href - }; - $.forward(settings); - }); - - //advanced_search toggle - $("#advancedSearchExpandBtn").click(function(){ - $("#advanced_search").toggle(); - if($("#advanced_search").is(":visible")){ - $(this).val($(this).attr("collapseValue")); - }else{ - $(this).val($(this).attr("expandValue")); - $("#advanced_search_form").resetForm(); - } - }); - - //search button - $("#searchBtn").on("click",function(){ - $("#list_pager").show(); - if (typeof(beforeSearch) == "function"){ - beforeSearch();///before Search action - } - - //query for grid list - $('#datagrid').bootstrapTable('refresh', {}); - - if (typeof(afterSearch) == "function"){ - afterSearch();//call back - } - }); - - //close button - $("#closeBtn").click(function(){ - $.closeWindow(); - }); - - //add button - $("#addBtn").click(function(){ - if (typeof(addAction) == "function"){ - document.location.href=addAction(this);//user define forward - }else { - if (typeof(beforeAdd) == "function"){ - beforeAdd(this); - } - if($(this).attr("target")&&$(this).attr("target")=="forward"){ - if($(this).attr("ref")){ - if($("#"+$(this).attr("ref")+"").val()==""){ - $.forward($(this).attr("wurl")); - }else{ - $.forward($(this).attr("wurl")+"/"+$("#"+$(this).attr("ref")+"").val()); - } - - }else{ - $.forward($(this).attr("wurl")); - } - }else{ - var settings={ - url : $(this).attr("wurl"),//window url - title : $(this).attr("wtitle"),//title - width : $(this).attr("wwidth"),//width - height : $(this).attr("wheight")//height - }; - if($(this).attr("ref")){ - if($("#"+$(this).attr("ref")+"").val()==""){ - settings.url=$(this).attr("wurl"); - }else{ - settings.url=$(this).attr("wurl")+"/"+$("#"+$(this).attr("ref")+"").val(); - } - - }else{ - settings.url=$(this).attr("wurl"); - } - $.window(settings);//open window - } - } - }); - - //modify button - $("#modifyBtn").click(function(){ - if (typeof(updateAction) == "function"){ - document.location.href=updateAction(this);//自定义跳转 - }else { - if (typeof(beforeUpdate) == "function"){ - beforeUpdate(this); - } - - var selectId=null; - if($("#list2").length>0){//get grid list selected ids - selectId=$("#list2").jqGrid("getGridParam", "selrow"); - var rowData = $("#list2").jqGrid("getRowData", selectId); - selectId=rowData.id; - }else if($("#list").length>0){//get grid list selected ids - selectId=$("#list").jqGrid("getGridParam", "selrow"); - var rowData = $("#list").jqGrid("getRowData", selectId); - selectId=rowData.id; - } - - if(selectId == null || selectId == "") { - $.alert({content:$.platform.messages.select.alertText}); - return; - } - - - if($(this).attr("target")&&$(this).attr("target")=="forward"){ - $.forward($(this).attr("wurl")+"/"+selectId); - }else{ - var settings={ - url : $(this).attr("wurl")+"/"+selectId,//window url - title : $(this).attr("wtitle"),//title - width : $(this).attr("wwidth"),//width - height : $(this).attr("wheight")//height - }; - $.window(settings);//open window - }; - }; - - }); - - //view button - $("#viewBtn").click(function(){ - if (typeof(viewAction) == "function"){ - document.location.href=viewAction(this);//自定义跳转 - }else { - if (typeof(beforeView) == "function"){ - beforeView(this);//自定义跳转 - } - var selectId=""; - if($("#list2").length>0){//get grid list selected ids - selectId=$("#list2").jqGrid("getGridParam", "selrow"); - if(selectId == null || selectId == ""){ - $.alert({content:$.platform.messages.select.alertText}); - return; - } - var rowData = $("#list2").jqGrid("getRowData", selectId); - selectId=rowData.id; - }else if($("#list").length>0){//get grid list selected ids - selectId=$("#list").jqGrid("getGridParam", "selrow"); - if(selectId == null || selectId == ""){ - $.alert({content:$.platform.messages.select.alertText}); - return; - } - var rowData = $("#list").jqGrid("getRowData", selectId); - selectId=rowData.id; - } - if($(this).attr("target")&&$(this).attr("target")=="forward"){ - $.forward($(this).attr("wurl")+"/"+selectId); - }else{ - var settings={ - url : $(this).attr("wurl")+"/"+selectId,//window url - title : $(this).attr("wtitle"),//title - width : $(this).attr("wwidth"),//width - height : $(this).attr("wheight")//height - }; - $.window(settings);//open window - } - } - }); - - //delete and batch delete button - $("#deleteBtn").click(function(){ - if (typeof(beforeDelete) == "function"){ - beforeDelete(this);//before function - } - var selectIds=null; - if($("#list2").length>0){//get grid list selected ids - if(list2_gridSettings.multiselect==true){ - selectIds = $("#list2").jqGrid("getGridParam", "selarrrow"); - for (var i = 0; i < selectIds.length; i++){ - var rowData = $("#list2").jqGrid("getRowData", selectIds[i]); - selectIds[i]=rowData.id; - } - }else{ - selectIds=$("#list2").jqGrid("getGridParam", "selrow"); - var rowData = $("#list2").jqGrid("getRowData", selectIds); - selectIds=rowData.id; - } - }else if($("#list").length>0){//get grid list selected ids - if(list_gridSettings.multiselect==true){ - selectIds = $("#list").jqGrid("getGridParam", "selarrrow"); - for (var i = 0; i < selectIds.length; i++){ - var rowData = $("#list").jqGrid("getRowData", selectIds[i]); - selectIds[i]=rowData.id; - } - }else{ - selectIds=$("#list").jqGrid("getGridParam", "selrow"); - var rowData = $("#list").jqGrid("getRowData", selectIds); - selectIds=rowData.id; - } - } - - if(selectIds == null || selectIds == "") { - $.alert({content:$.platform.messages.select.alertText}); - return; - } - - var _this=this; - $.conform({//conform action - content : $.platform.messages.del.conformText, - callback : function () { - //delete action post to url with ids - $.post($(_this).attr("wurl")+"?id="+selectIds, {_method:"delete",currTime:(new Date()).getTime()}, function(data) { - if (typeof(afterDelete) == "function"){ - afterDelete(data);//call back action - } - //alert delete result - $.alert({content:data.message,type:$.platform.messages.messageType[data.messageType]}); - //refresh grid list - if($("#list2").length>0){ - $("#list2").jqGrid('setGridParam').trigger("reloadGrid"); - }else if($("#list").length>0){ - $("#list").jqGrid('setGridParam').trigger("reloadGrid"); - } - }); - } - }); - }); - - //back button - $("#backBtn").click(function(){ - //is need auto close - if($("#actionForm").attr("autoclose")) { - // try to refresh parent grid list - if($.dialog.parent) { - try { - $.dialog.parent.$("#list").jqGrid('setGridParam').trigger("reloadGrid"); - }catch(e){} - $.dialog.close(); - return; - } - } - - if($("#actionForm")){//#actionForm attr forward - if($("#actionForm").attr("forward")){ - document.location.href=$("#actionForm").attr("forward"); - return; - } - } - - if($("form")){//#actionForm attr forward - if($("form").attr("forward")){ - document.location.href=$("form").attr("forward"); - return; - } - } - - if (typeof(beforeBack) == "function"){ - document.location.href=beforeBack();//call back - }else { - document.location.href=$(this).attr("wurl");//back #actionForm attr url - } - - }); - - - //submit button - $("#submitBtn").click(function(){ - var canSubmit = true; - if (typeof(beforeAction) == "function"){ - canSubmit = beforeAction();//before submit - } - - if(canSubmit) { - $("#submitButton").click();//submit - } - }); - - // Fetch all the forms we want to apply custom Bootstrap validation styles to - var forms = $(".needs-validation"); - // Loop over them and prevent submission - Array.prototype.filter.call(forms, function (form) { - form.addEventListener('submit', function (event) { - if (form.checkValidity() === false) { - event.preventDefault(); - event.stopPropagation(); - }else{ - if($("#actionForm")[0]){//ajaxSubmit - $("#actionForm").ajaxSubmit({//form ajax submit - dataType : 'json',//json type - success : function(data) { //success return - $.unloading(); - if (typeof(afterSubmit) == "function"){ - afterSubmit(data);//call back - return; - } - - var formErrorType=$("#actionForm").attr("type");//error alert type - - if(data.errors && formErrorType){//have error field return - if(formErrorType=="alert"){//alert dialog - var errorMessage=data.message+"
"; - for (var elem in data.errors){ - errorMessage+=data.errors[elem].message+"
"; - } - $.alert({content:errorMessage,type:"error"}); - }else{//label tip - for (var elem in data.errors){ - $("label[for='"+data.errors[elem].field+"']").html(data.errors[elem].message); - } - if(formErrorType!="label"){ - $("#"+formErrorType).show(); - } - } - return; - } else {//no error,alert result message - $.alert({content:data.message,type:$.platform.messages.messageType[data.messageType], - callback:function(){ - if($("#actionForm").attr("autoclose")) {//auto close button - if($("#backBtn").attr("id")){ - $("#backBtn").click(); - }else{ - $.closeWindow(); - } - return; - } - if($("#actionForm").attr("forward")){//auto forwar to actionForm forward attr - document.location.href=$("#actionForm").attr("forward"); - } - } - }); - } - }, - beforeSubmit: function(arr, $form, options) { //before submit - $.loading();//loading icon - if (typeof(beforeSubmit) == "function"){ - return beforeSubmit();//callback - } - }, - error : function(a, b, c) {//submit error - $.unloading(); - $.alert({content:$.platform.messages.submit.errorText,type:"error"}); - } - }); - event.preventDefault(); - event.stopPropagation(); - } - } - form.classList.add('was-validated'); - }, false); - }); - - //form submit form define - if($("#actionForm")){//actionForm exist - if($("#actionForm").attr("loadaction")){//init form - $("#actionForm").json2form({url : $("#actionForm").attr("loadaction")});//init #actionForm with loadaction url - $("#actionForm").removeAttr('loadaction'); //is need init - } - }; - - var curExpandNode = null; - - $.tree=function (treeSettings){ - - function singlePath(newNode) { - if (newNode === curExpandNode) return; - if (curExpandNode && curExpandNode.open==true) { - var zTree = $.fn.zTree.getZTreeObj(treeSettings.element); - if (newNode.parentTId === curExpandNode.parentTId) { - zTree.expandNode(curExpandNode, false); - } else { - var newParents = []; - while (newNode) { - newNode = newNode.getParentNode(); - if (newNode === curExpandNode) { - newParents = null; - break; - } else if (newNode) { - newParents.push(newNode); - } - } - if (newParents!=null) { - var oldNode = curExpandNode; - var oldParents = []; - while (oldNode) { - oldNode = oldNode.getParentNode(); - if (oldNode) { - oldParents.push(oldNode); - } - } - if (newParents.length>0) { - for (var i = Math.min(newParents.length, oldParents.length)-1; i>=0; i--) { - if (newParents[i] !== oldParents[i]) { - zTree.expandNode(oldParents[i], false); - break; - } - } - } else { - zTree.expandNode(oldParents[oldParents.length-1], false); - } - } - } - } - curExpandNode = newNode; - }; - - - function beforeExpand(treeId, treeNode) { - var pNode = curExpandNode ? curExpandNode.getParentNode():null; - var treeNodeP = treeNode.parentTId ? treeNode.getParentNode():null; - var zTree = $.fn.zTree.getZTreeObj(""+treeSettings.element); - for(var i=0, l=!treeNodeP ? 0:treeNodeP.children.length; id)break;a.currentTarget=f.elem;a.data=f.handleObj.data;a.handleObj=f.handleObj;A=f.handleObj.origHandler.apply(f.elem,arguments);if(A===false||a.isPropagationStopped()){d=f.level;if(A===false)b=false;if(a.isImmediatePropagationStopped())break}}return b}}function Y(a,b){return(a&&a!=="*"?a+".":"")+b.replace(La, -"`").replace(Ma,"&")}function ma(a,b,d){if(c.isFunction(b))return c.grep(a,function(f,h){return!!b.call(f,h,f)===d});else if(b.nodeType)return c.grep(a,function(f){return f===b===d});else if(typeof b==="string"){var e=c.grep(a,function(f){return f.nodeType===1});if(Na.test(b))return c.filter(b,e,!d);else b=c.filter(b,e)}return c.grep(a,function(f){return c.inArray(f,b)>=0===d})}function na(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var e=c.data(a[d++]),f=c.data(this, -e);if(e=e&&e.events){delete f.handle;f.events={};for(var h in e)for(var l in e[h])c.event.add(this,h,e[h][l],e[h][l].data)}}})}function Oa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function oa(a,b,d){var e=b==="width"?a.offsetWidth:a.offsetHeight;if(d==="border")return e;c.each(b==="width"?Pa:Qa,function(){d||(e-=parseFloat(c.css(a,"padding"+this))||0);if(d==="margin")e+=parseFloat(c.css(a, -"margin"+this))||0;else e-=parseFloat(c.css(a,"border"+this+"Width"))||0});return e}function da(a,b,d,e){if(c.isArray(b)&&b.length)c.each(b,function(f,h){d||Ra.test(a)?e(a,h):da(a+"["+(typeof h==="object"||c.isArray(h)?f:"")+"]",h,d,e)});else if(!d&&b!=null&&typeof b==="object")c.isEmptyObject(b)?e(a,""):c.each(b,function(f,h){da(a+"["+f+"]",h,d,e)});else e(a,b)}function S(a,b){var d={};c.each(pa.concat.apply([],pa.slice(0,b)),function(){d[this]=a});return d}function qa(a){if(!ea[a]){var b=c("<"+ -a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d==="")d="block";ea[a]=d}return ea[a]}function fa(a){return c.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var t=E.document,c=function(){function a(){if(!b.isReady){try{t.documentElement.doScroll("left")}catch(j){setTimeout(a,1);return}b.ready()}}var b=function(j,s){return new b.fn.init(j,s)},d=E.jQuery,e=E.$,f,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,l=/\S/,k=/^\s+/,o=/\s+$/,x=/\W/,r=/\d/,A=/^<(\w+)\s*\/?>(?:<\/\1>)?$/, -C=/^[\],:{}\s]*$/,J=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,w=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,I=/(?:^|:|,)(?:\s*\[)+/g,L=/(webkit)[ \/]([\w.]+)/,g=/(opera)(?:.*version)?[ \/]([\w.]+)/,i=/(msie) ([\w.]+)/,n=/(mozilla)(?:.*? rv:([\w.]+))?/,m=navigator.userAgent,p=false,q=[],u,y=Object.prototype.toString,F=Object.prototype.hasOwnProperty,M=Array.prototype.push,N=Array.prototype.slice,O=String.prototype.trim,D=Array.prototype.indexOf,R={};b.fn=b.prototype={init:function(j, -s){var v,z,H;if(!j)return this;if(j.nodeType){this.context=this[0]=j;this.length=1;return this}if(j==="body"&&!s&&t.body){this.context=t;this[0]=t.body;this.selector="body";this.length=1;return this}if(typeof j==="string")if((v=h.exec(j))&&(v[1]||!s))if(v[1]){H=s?s.ownerDocument||s:t;if(z=A.exec(j))if(b.isPlainObject(s)){j=[t.createElement(z[1])];b.fn.attr.call(j,s,true)}else j=[H.createElement(z[1])];else{z=b.buildFragment([v[1]],[H]);j=(z.cacheable?z.fragment.cloneNode(true):z.fragment).childNodes}return b.merge(this, -j)}else{if((z=t.getElementById(v[2]))&&z.parentNode){if(z.id!==v[2])return f.find(j);this.length=1;this[0]=z}this.context=t;this.selector=j;return this}else if(!s&&!x.test(j)){this.selector=j;this.context=t;j=t.getElementsByTagName(j);return b.merge(this,j)}else return!s||s.jquery?(s||f).find(j):b(s).find(j);else if(b.isFunction(j))return f.ready(j);if(j.selector!==B){this.selector=j.selector;this.context=j.context}return b.makeArray(j,this)},selector:"",jquery:"1.4.4",length:0,size:function(){return this.length}, -toArray:function(){return N.call(this,0)},get:function(j){return j==null?this.toArray():j<0?this.slice(j)[0]:this[j]},pushStack:function(j,s,v){var z=b();b.isArray(j)?M.apply(z,j):b.merge(z,j);z.prevObject=this;z.context=this.context;if(s==="find")z.selector=this.selector+(this.selector?" ":"")+v;else if(s)z.selector=this.selector+"."+s+"("+v+")";return z},each:function(j,s){return b.each(this,j,s)},ready:function(j){b.bindReady();if(b.isReady)j.call(t,b);else q&&q.push(j);return this},eq:function(j){return j=== --1?this.slice(j):this.slice(j,+j+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(N.apply(this,arguments),"slice",N.call(arguments).join(","))},map:function(j){return this.pushStack(b.map(this,function(s,v){return j.call(s,v,s)}))},end:function(){return this.prevObject||b(null)},push:M,sort:[].sort,splice:[].splice};b.fn.init.prototype=b.fn;b.extend=b.fn.extend=function(){var j,s,v,z,H,G=arguments[0]||{},K=1,Q=arguments.length,ga=false; -if(typeof G==="boolean"){ga=G;G=arguments[1]||{};K=2}if(typeof G!=="object"&&!b.isFunction(G))G={};if(Q===K){G=this;--K}for(;K0))if(q){var s=0,v=q;for(q=null;j=v[s++];)j.call(t,b);b.fn.trigger&&b(t).trigger("ready").unbind("ready")}}},bindReady:function(){if(!p){p=true;if(t.readyState==="complete")return setTimeout(b.ready,1);if(t.addEventListener){t.addEventListener("DOMContentLoaded",u,false);E.addEventListener("load",b.ready,false)}else if(t.attachEvent){t.attachEvent("onreadystatechange",u);E.attachEvent("onload", -b.ready);var j=false;try{j=E.frameElement==null}catch(s){}t.documentElement.doScroll&&j&&a()}}},isFunction:function(j){return b.type(j)==="function"},isArray:Array.isArray||function(j){return b.type(j)==="array"},isWindow:function(j){return j&&typeof j==="object"&&"setInterval"in j},isNaN:function(j){return j==null||!r.test(j)||isNaN(j)},type:function(j){return j==null?String(j):R[y.call(j)]||"object"},isPlainObject:function(j){if(!j||b.type(j)!=="object"||j.nodeType||b.isWindow(j))return false;if(j.constructor&& -!F.call(j,"constructor")&&!F.call(j.constructor.prototype,"isPrototypeOf"))return false;for(var s in j);return s===B||F.call(j,s)},isEmptyObject:function(j){for(var s in j)return false;return true},error:function(j){throw j;},parseJSON:function(j){if(typeof j!=="string"||!j)return null;j=b.trim(j);if(C.test(j.replace(J,"@").replace(w,"]").replace(I,"")))return E.JSON&&E.JSON.parse?E.JSON.parse(j):(new Function("return "+j))();else b.error("Invalid JSON: "+j)},noop:function(){},globalEval:function(j){if(j&& -l.test(j)){var s=t.getElementsByTagName("head")[0]||t.documentElement,v=t.createElement("script");v.type="text/javascript";if(b.support.scriptEval)v.appendChild(t.createTextNode(j));else v.text=j;s.insertBefore(v,s.firstChild);s.removeChild(v)}},nodeName:function(j,s){return j.nodeName&&j.nodeName.toUpperCase()===s.toUpperCase()},each:function(j,s,v){var z,H=0,G=j.length,K=G===B||b.isFunction(j);if(v)if(K)for(z in j){if(s.apply(j[z],v)===false)break}else for(;H
a";var f=d.getElementsByTagName("*"),h=d.getElementsByTagName("a")[0],l=t.createElement("select"), -k=l.appendChild(t.createElement("option"));if(!(!f||!f.length||!h)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(h.getAttribute("style")),hrefNormalized:h.getAttribute("href")==="/a",opacity:/^0.55$/.test(h.style.opacity),cssFloat:!!h.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:k.selected,deleteExpando:true,optDisabled:false,checkClone:false, -scriptEval:false,noCloneEvent:true,boxModel:null,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableHiddenOffsets:true};l.disabled=true;c.support.optDisabled=!k.disabled;b.type="text/javascript";try{b.appendChild(t.createTextNode("window."+e+"=1;"))}catch(o){}a.insertBefore(b,a.firstChild);if(E[e]){c.support.scriptEval=true;delete E[e]}try{delete b.test}catch(x){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function r(){c.support.noCloneEvent= -false;d.detachEvent("onclick",r)});d.cloneNode(true).fireEvent("onclick")}d=t.createElement("div");d.innerHTML="";a=t.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var r=t.createElement("div");r.style.width=r.style.paddingLeft="1px";t.body.appendChild(r);c.boxModel=c.support.boxModel=r.offsetWidth===2;if("zoom"in r.style){r.style.display="inline";r.style.zoom= -1;c.support.inlineBlockNeedsLayout=r.offsetWidth===2;r.style.display="";r.innerHTML="
";c.support.shrinkWrapBlocks=r.offsetWidth!==2}r.innerHTML="
t
";var A=r.getElementsByTagName("td");c.support.reliableHiddenOffsets=A[0].offsetHeight===0;A[0].style.display="";A[1].style.display="none";c.support.reliableHiddenOffsets=c.support.reliableHiddenOffsets&&A[0].offsetHeight===0;r.innerHTML="";t.body.removeChild(r).style.display= -"none"});a=function(r){var A=t.createElement("div");r="on"+r;var C=r in A;if(!C){A.setAttribute(r,"return;");C=typeof A[r]==="function"}return C};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=f=h=null}})();var ra={},Ja=/^(?:\{.*\}|\[.*\])$/;c.extend({cache:{},uuid:0,expando:"jQuery"+c.now(),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},data:function(a,b,d){if(c.acceptData(a)){a=a==E?ra:a;var e=a.nodeType,f=e?a[c.expando]:null,h= -c.cache;if(!(e&&!f&&typeof b==="string"&&d===B)){if(e)f||(a[c.expando]=f=++c.uuid);else h=a;if(typeof b==="object")if(e)h[f]=c.extend(h[f],b);else c.extend(h,b);else if(e&&!h[f])h[f]={};a=e?h[f]:h;if(d!==B)a[b]=d;return typeof b==="string"?a[b]:a}}},removeData:function(a,b){if(c.acceptData(a)){a=a==E?ra:a;var d=a.nodeType,e=d?a[c.expando]:a,f=c.cache,h=d?f[e]:e;if(b){if(h){delete h[b];d&&c.isEmptyObject(h)&&c.removeData(a)}}else if(d&&c.support.deleteExpando)delete a[c.expando];else if(a.removeAttribute)a.removeAttribute(c.expando); -else if(d)delete f[e];else for(var l in a)delete a[l]}},acceptData:function(a){if(a.nodeName){var b=c.noData[a.nodeName.toLowerCase()];if(b)return!(b===true||a.getAttribute("classid")!==b)}return true}});c.fn.extend({data:function(a,b){var d=null;if(typeof a==="undefined"){if(this.length){var e=this[0].attributes,f;d=c.data(this[0]);for(var h=0,l=e.length;h-1)return true;return false},val:function(a){if(!arguments.length){var b=this[0];if(b){if(c.nodeName(b,"option")){var d=b.attributes.value;return!d||d.specified?b.value:b.text}if(c.nodeName(b,"select")){var e=b.selectedIndex;d=[];var f=b.options;b=b.type==="select-one"; -if(e<0)return null;var h=b?e:0;for(e=b?e+1:f.length;h=0;else if(c.nodeName(this,"select")){var A=c.makeArray(r);c("option",this).each(function(){this.selected=c.inArray(c(this).val(),A)>=0});if(!A.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true}, -attr:function(a,b,d,e){if(!a||a.nodeType===3||a.nodeType===8)return B;if(e&&b in c.attrFn)return c(a)[b](d);e=a.nodeType!==1||!c.isXMLDoc(a);var f=d!==B;b=e&&c.props[b]||b;var h=Ta.test(b);if((b in a||a[b]!==B)&&e&&!h){if(f){b==="type"&&Ua.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");if(d===null)a.nodeType===1&&a.removeAttribute(b);else a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&& -b.specified?b.value:Va.test(a.nodeName)||Wa.test(a.nodeName)&&a.href?0:B;return a[b]}if(!c.support.style&&e&&b==="style"){if(f)a.style.cssText=""+d;return a.style.cssText}f&&a.setAttribute(b,""+d);if(!a.attributes[b]&&a.hasAttribute&&!a.hasAttribute(b))return B;a=!c.support.hrefNormalized&&e&&h?a.getAttribute(b,2):a.getAttribute(b);return a===null?B:a}});var X=/\.(.*)$/,ia=/^(?:textarea|input|select)$/i,La=/\./g,Ma=/ /g,Xa=/[^\w\s.|`]/g,Ya=function(a){return a.replace(Xa,"\\$&")},ua={focusin:0,focusout:0}; -c.event={add:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(c.isWindow(a)&&a!==E&&!a.frameElement)a=E;if(d===false)d=U;else if(!d)return;var f,h;if(d.handler){f=d;d=f.handler}if(!d.guid)d.guid=c.guid++;if(h=c.data(a)){var l=a.nodeType?"events":"__events__",k=h[l],o=h.handle;if(typeof k==="function"){o=k.handle;k=k.events}else if(!k){a.nodeType||(h[l]=h=function(){});h.events=k={}}if(!o)h.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem, -arguments):B};o.elem=a;b=b.split(" ");for(var x=0,r;l=b[x++];){h=f?c.extend({},f):{handler:d,data:e};if(l.indexOf(".")>-1){r=l.split(".");l=r.shift();h.namespace=r.slice(0).sort().join(".")}else{r=[];h.namespace=""}h.type=l;if(!h.guid)h.guid=d.guid;var A=k[l],C=c.event.special[l]||{};if(!A){A=k[l]=[];if(!C.setup||C.setup.call(a,e,r,o)===false)if(a.addEventListener)a.addEventListener(l,o,false);else a.attachEvent&&a.attachEvent("on"+l,o)}if(C.add){C.add.call(a,h);if(!h.handler.guid)h.handler.guid= -d.guid}A.push(h);c.event.global[l]=true}a=null}}},global:{},remove:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(d===false)d=U;var f,h,l=0,k,o,x,r,A,C,J=a.nodeType?"events":"__events__",w=c.data(a),I=w&&w[J];if(w&&I){if(typeof I==="function"){w=I;I=I.events}if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(f in I)c.event.remove(a,f+b)}else{for(b=b.split(" ");f=b[l++];){r=f;k=f.indexOf(".")<0;o=[];if(!k){o=f.split(".");f=o.shift();x=RegExp("(^|\\.)"+ -c.map(o.slice(0).sort(),Ya).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(A=I[f])if(d){r=c.event.special[f]||{};for(h=e||0;h=0){a.type=f=f.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[f]&&c.each(c.cache,function(){this.events&&this.events[f]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType=== -8)return B;a.result=B;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(e=d.nodeType?c.data(d,"handle"):(c.data(d,"__events__")||{}).handle)&&e.apply(d,b);e=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+f]&&d["on"+f].apply(d,b)===false){a.result=false;a.preventDefault()}}catch(h){}if(!a.isPropagationStopped()&&e)c.event.trigger(a,b,e,true);else if(!a.isDefaultPrevented()){var l;e=a.target;var k=f.replace(X,""),o=c.nodeName(e,"a")&&k=== -"click",x=c.event.special[k]||{};if((!x._default||x._default.call(d,a)===false)&&!o&&!(e&&e.nodeName&&c.noData[e.nodeName.toLowerCase()])){try{if(e[k]){if(l=e["on"+k])e["on"+k]=null;c.event.triggered=true;e[k]()}}catch(r){}if(l)e["on"+k]=l;c.event.triggered=false}}},handle:function(a){var b,d,e,f;d=[];var h=c.makeArray(arguments);a=h[0]=c.event.fix(a||E.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;if(!b){e=a.type.split(".");a.type=e.shift();d=e.slice(0).sort();e=RegExp("(^|\\.)"+ -d.join("\\.(?:.*\\.)?")+"(\\.|$)")}a.namespace=a.namespace||d.join(".");f=c.data(this,this.nodeType?"events":"__events__");if(typeof f==="function")f=f.events;d=(f||{})[a.type];if(f&&d){d=d.slice(0);f=0;for(var l=d.length;f-1?c.map(a.options,function(e){return e.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},Z=function(a,b){var d=a.target,e,f;if(!(!ia.test(d.nodeName)||d.readOnly)){e=c.data(d,"_change_data");f=xa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",f);if(!(e===B||f===e))if(e!=null||f){a.type="change";a.liveFired= -B;return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:Z,beforedeactivate:Z,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return Z.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return Z.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,"_change_data",xa(a))}},setup:function(){if(this.type=== -"file")return false;for(var a in V)c.event.add(this,a+".specialChange",V[a]);return ia.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return ia.test(this.nodeName)}};V=c.event.special.change.filters;V.focus=V.beforeactivate}t.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(e){e=c.event.fix(e);e.type=b;return c.event.trigger(e,null,e.target)}c.event.special[b]={setup:function(){ua[b]++===0&&t.addEventListener(a,d,true)},teardown:function(){--ua[b]=== -0&&t.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,e,f){if(typeof d==="object"){for(var h in d)this[b](h,e,d[h],f);return this}if(c.isFunction(e)||e===false){f=e;e=B}var l=b==="one"?c.proxy(f,function(o){c(this).unbind(o,l);return f.apply(this,arguments)}):f;if(d==="unload"&&b!=="one")this.one(d,e,f);else{h=0;for(var k=this.length;h0?this.bind(b,d,e):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});E.attachEvent&&!E.addEventListener&&c(E).bind("unload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}}); -(function(){function a(g,i,n,m,p,q){p=0;for(var u=m.length;p0){F=y;break}}y=y[g]}m[p]=F}}}var d=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,h=false,l=true;[0,0].sort(function(){l=false;return 0});var k=function(g,i,n,m){n=n||[];var p=i=i||t;if(i.nodeType!==1&&i.nodeType!==9)return[];if(!g||typeof g!=="string")return n;var q,u,y,F,M,N=true,O=k.isXML(i),D=[],R=g;do{d.exec("");if(q=d.exec(R)){R=q[3];D.push(q[1]);if(q[2]){F=q[3]; -break}}}while(q);if(D.length>1&&x.exec(g))if(D.length===2&&o.relative[D[0]])u=L(D[0]+D[1],i);else for(u=o.relative[D[0]]?[i]:k(D.shift(),i);D.length;){g=D.shift();if(o.relative[g])g+=D.shift();u=L(g,u)}else{if(!m&&D.length>1&&i.nodeType===9&&!O&&o.match.ID.test(D[0])&&!o.match.ID.test(D[D.length-1])){q=k.find(D.shift(),i,O);i=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]}if(i){q=m?{expr:D.pop(),set:C(m)}:k.find(D.pop(),D.length===1&&(D[0]==="~"||D[0]==="+")&&i.parentNode?i.parentNode:i,O);u=q.expr?k.filter(q.expr, -q.set):q.set;if(D.length>0)y=C(u);else N=false;for(;D.length;){q=M=D.pop();if(o.relative[M])q=D.pop();else M="";if(q==null)q=i;o.relative[M](y,q,O)}}else y=[]}y||(y=u);y||k.error(M||g);if(f.call(y)==="[object Array]")if(N)if(i&&i.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&k.contains(i,y[g])))n.push(u[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&n.push(u[g]);else n.push.apply(n,y);else C(y,n);if(F){k(F,p,n,m);k.uniqueSort(n)}return n};k.uniqueSort=function(g){if(w){h= -l;g.sort(w);if(h)for(var i=1;i0};k.find=function(g,i,n){var m;if(!g)return[];for(var p=0,q=o.order.length;p":function(g,i){var n,m=typeof i==="string",p=0,q=g.length;if(m&&!/\W/.test(i))for(i=i.toLowerCase();p=0))n||m.push(u);else if(n)i[q]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},CHILD:function(g){if(g[1]==="nth"){var i=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=i[1]+(i[2]||1)-0;g[3]=i[3]-0}g[0]=e++;return g},ATTR:function(g,i,n, -m,p,q){i=g[1].replace(/\\/g,"");if(!q&&o.attrMap[i])g[1]=o.attrMap[i];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,i,n,m,p){if(g[1]==="not")if((d.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,i);else{g=k.filter(g[3],i,n,true^p);n||m.push.apply(m,g);return false}else if(o.match.POS.test(g[0])||o.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled=== -true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,i,n){return!!k(n[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"=== -g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},setFilters:{first:function(g,i){return i===0},last:function(g,i,n,m){return i===m.length-1},even:function(g,i){return i%2===0},odd:function(g,i){return i%2===1},lt:function(g,i,n){return in[3]-0},nth:function(g,i,n){return n[3]- -0===i},eq:function(g,i,n){return n[3]-0===i}},filter:{PSEUDO:function(g,i,n,m){var p=i[1],q=o.filters[p];if(q)return q(g,n,i,m);else if(p==="contains")return(g.textContent||g.innerText||k.getText([g])||"").indexOf(i[3])>=0;else if(p==="not"){i=i[3];n=0;for(m=i.length;n=0}},ID:function(g,i){return g.nodeType===1&&g.getAttribute("id")===i},TAG:function(g,i){return i==="*"&&g.nodeType===1||g.nodeName.toLowerCase()=== -i},CLASS:function(g,i){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(i)>-1},ATTR:function(g,i){var n=i[1];n=o.attrHandle[n]?o.attrHandle[n](g):g[n]!=null?g[n]:g.getAttribute(n);var m=n+"",p=i[2],q=i[4];return n==null?p==="!=":p==="="?m===q:p==="*="?m.indexOf(q)>=0:p==="~="?(" "+m+" ").indexOf(q)>=0:!q?m&&n!==false:p==="!="?m!==q:p==="^="?m.indexOf(q)===0:p==="$="?m.substr(m.length-q.length)===q:p==="|="?m===q||m.substr(0,q.length+1)===q+"-":false},POS:function(g,i,n,m){var p=o.setFilters[i[2]]; -if(p)return p(g,n,i,m)}}},x=o.match.POS,r=function(g,i){return"\\"+(i-0+1)},A;for(A in o.match){o.match[A]=RegExp(o.match[A].source+/(?![^\[]*\])(?![^\(]*\))/.source);o.leftMatch[A]=RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[A].source.replace(/\\(\d+)/g,r))}var C=function(g,i){g=Array.prototype.slice.call(g,0);if(i){i.push.apply(i,g);return i}return g};try{Array.prototype.slice.call(t.documentElement.childNodes,0)}catch(J){C=function(g,i){var n=0,m=i||[];if(f.call(g)==="[object Array]")Array.prototype.push.apply(m, -g);else if(typeof g.length==="number")for(var p=g.length;n";n.insertBefore(g,n.firstChild);if(t.getElementById(i)){o.find.ID=function(m,p,q){if(typeof p.getElementById!=="undefined"&&!q)return(p=p.getElementById(m[1]))?p.id===m[1]||typeof p.getAttributeNode!=="undefined"&&p.getAttributeNode("id").nodeValue===m[1]?[p]:B:[]};o.filter.ID=function(m,p){var q=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&q&&q.nodeValue===p}}n.removeChild(g); -n=g=null})();(function(){var g=t.createElement("div");g.appendChild(t.createComment(""));if(g.getElementsByTagName("*").length>0)o.find.TAG=function(i,n){var m=n.getElementsByTagName(i[1]);if(i[1]==="*"){for(var p=[],q=0;m[q];q++)m[q].nodeType===1&&p.push(m[q]);m=p}return m};g.innerHTML="";if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")o.attrHandle.href=function(i){return i.getAttribute("href",2)};g=null})();t.querySelectorAll&& -function(){var g=k,i=t.createElement("div");i.innerHTML="

";if(!(i.querySelectorAll&&i.querySelectorAll(".TEST").length===0)){k=function(m,p,q,u){p=p||t;m=m.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!u&&!k.isXML(p))if(p.nodeType===9)try{return C(p.querySelectorAll(m),q)}catch(y){}else if(p.nodeType===1&&p.nodeName.toLowerCase()!=="object"){var F=p.getAttribute("id"),M=F||"__sizzle__";F||p.setAttribute("id",M);try{return C(p.querySelectorAll("#"+M+" "+m),q)}catch(N){}finally{F|| -p.removeAttribute("id")}}return g(m,p,q,u)};for(var n in g)k[n]=g[n];i=null}}();(function(){var g=t.documentElement,i=g.matchesSelector||g.mozMatchesSelector||g.webkitMatchesSelector||g.msMatchesSelector,n=false;try{i.call(t.documentElement,"[test!='']:sizzle")}catch(m){n=true}if(i)k.matchesSelector=function(p,q){q=q.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(p))try{if(n||!o.match.PSEUDO.test(q)&&!/!=/.test(q))return i.call(p,q)}catch(u){}return k(q,null,null,[p]).length>0}})();(function(){var g= -t.createElement("div");g.innerHTML="
";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){o.order.splice(1,0,"CLASS");o.find.CLASS=function(i,n,m){if(typeof n.getElementsByClassName!=="undefined"&&!m)return n.getElementsByClassName(i[1])};g=null}}})();k.contains=t.documentElement.contains?function(g,i){return g!==i&&(g.contains?g.contains(i):true)}:t.documentElement.compareDocumentPosition? -function(g,i){return!!(g.compareDocumentPosition(i)&16)}:function(){return false};k.isXML=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false};var L=function(g,i){for(var n,m=[],p="",q=i.nodeType?[i]:i;n=o.match.PSEUDO.exec(g);){p+=n[0];g=g.replace(o.match.PSEUDO,"")}g=o.relative[g]?g+"*":g;n=0;for(var u=q.length;n0)for(var h=d;h0},closest:function(a,b){var d=[],e,f,h=this[0];if(c.isArray(a)){var l,k={},o=1;if(h&&a.length){e=0;for(f=a.length;e-1:c(h).is(e))d.push({selector:l,elem:h,level:o})}h= -h.parentNode;o++}}return d}l=cb.test(a)?c(a,b||this.context):null;e=0;for(f=this.length;e-1:c.find.matchesSelector(h,a)){d.push(h);break}else{h=h.parentNode;if(!h||!h.ownerDocument||h===b)break}d=d.length>1?c.unique(d):d;return this.pushStack(d,"closest",a)},index:function(a){if(!a||typeof a==="string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var d=typeof a==="string"?c(a,b||this.context): -c.makeArray(a),e=c.merge(this.get(),d);return this.pushStack(!d[0]||!d[0].parentNode||d[0].parentNode.nodeType===11||!e[0]||!e[0].parentNode||e[0].parentNode.nodeType===11?e:c.unique(e))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a, -2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a, -b){c.fn[a]=function(d,e){var f=c.map(this,b,d);Za.test(a)||(e=d);if(e&&typeof e==="string")f=c.filter(e,f);f=this.length>1?c.unique(f):f;if((this.length>1||ab.test(e))&&$a.test(a))f=f.reverse();return this.pushStack(f,a,bb.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return b.length===1?c.find.matchesSelector(b[0],a)?[b[0]]:[]:c.find.matches(a,b)},dir:function(a,b,d){var e=[];for(a=a[b];a&&a.nodeType!==9&&(d===B||a.nodeType!==1||!c(a).is(d));){a.nodeType===1&& -e.push(a);a=a[b]}return e},nth:function(a,b,d){b=b||1;for(var e=0;a;a=a[d])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var za=/ jQuery\d+="(?:\d+|null)"/g,$=/^\s+/,Aa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Ba=/<([\w:]+)/,db=/\s]+\/)>/g,P={option:[1, -""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]};P.optgroup=P.option;P.tbody=P.tfoot=P.colgroup=P.caption=P.thead;P.th=P.td;if(!c.support.htmlSerialize)P._default=[1,"div
","
"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= -c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==B)return this.empty().append((this[0]&&this[0].ownerDocument||t).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this}, -wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})}, -prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b, -this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,e;(e=this[d])!=null;d++)if(!a||c.filter(a,[e]).length){if(!b&&e.nodeType===1){c.cleanData(e.getElementsByTagName("*"));c.cleanData([e])}e.parentNode&&e.parentNode.removeChild(e)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild); -return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,e=this.ownerDocument;if(!d){d=e.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(za,"").replace(fb,'="$1">').replace($,"")],e)[0]}else return this.cloneNode(true)});if(a===true){na(this,b);na(this.find("*"),b.find("*"))}return b},html:function(a){if(a===B)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(za,""):null; -else if(typeof a==="string"&&!Ca.test(a)&&(c.support.leadingWhitespace||!$.test(a))&&!P[(Ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Aa,"<$1>");try{for(var b=0,d=this.length;b0||e.cacheable||this.length>1?h.cloneNode(true):h)}k.length&&c.each(k,Oa)}return this}});c.buildFragment=function(a,b,d){var e,f,h;b=b&&b[0]?b[0].ownerDocument||b[0]:t;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===t&&!Ca.test(a[0])&&(c.support.checkClone||!Da.test(a[0]))){f=true;if(h=c.fragments[a[0]])if(h!==1)e=h}if(!e){e=b.createDocumentFragment();c.clean(a,b,e,d)}if(f)c.fragments[a[0]]=h?e:1;return{fragment:e,cacheable:f}};c.fragments={};c.each({appendTo:"append", -prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var e=[];d=c(d);var f=this.length===1&&this[0].parentNode;if(f&&f.nodeType===11&&f.childNodes.length===1&&d.length===1){d[b](this[0]);return this}else{f=0;for(var h=d.length;f0?this.clone(true):this).get();c(d[f])[b](l);e=e.concat(l)}return this.pushStack(e,a,d.selector)}}});c.extend({clean:function(a,b,d,e){b=b||t;if(typeof b.createElement==="undefined")b=b.ownerDocument|| -b[0]&&b[0].ownerDocument||t;for(var f=[],h=0,l;(l=a[h])!=null;h++){if(typeof l==="number")l+="";if(l){if(typeof l==="string"&&!eb.test(l))l=b.createTextNode(l);else if(typeof l==="string"){l=l.replace(Aa,"<$1>");var k=(Ba.exec(l)||["",""])[1].toLowerCase(),o=P[k]||P._default,x=o[0],r=b.createElement("div");for(r.innerHTML=o[1]+l+o[2];x--;)r=r.lastChild;if(!c.support.tbody){x=db.test(l);k=k==="table"&&!x?r.firstChild&&r.firstChild.childNodes:o[1]===""&&!x?r.childNodes:[];for(o=k.length- -1;o>=0;--o)c.nodeName(k[o],"tbody")&&!k[o].childNodes.length&&k[o].parentNode.removeChild(k[o])}!c.support.leadingWhitespace&&$.test(l)&&r.insertBefore(b.createTextNode($.exec(l)[0]),r.firstChild);l=r.childNodes}if(l.nodeType)f.push(l);else f=c.merge(f,l)}}if(d)for(h=0;f[h];h++)if(e&&c.nodeName(f[h],"script")&&(!f[h].type||f[h].type.toLowerCase()==="text/javascript"))e.push(f[h].parentNode?f[h].parentNode.removeChild(f[h]):f[h]);else{f[h].nodeType===1&&f.splice.apply(f,[h+1,0].concat(c.makeArray(f[h].getElementsByTagName("script")))); -d.appendChild(f[h])}return f},cleanData:function(a){for(var b,d,e=c.cache,f=c.event.special,h=c.support.deleteExpando,l=0,k;(k=a[l])!=null;l++)if(!(k.nodeName&&c.noData[k.nodeName.toLowerCase()]))if(d=k[c.expando]){if((b=e[d])&&b.events)for(var o in b.events)f[o]?c.event.remove(k,o):c.removeEvent(k,o,b.handle);if(h)delete k[c.expando];else k.removeAttribute&&k.removeAttribute(c.expando);delete e[d]}}});var Ea=/alpha\([^)]*\)/i,gb=/opacity=([^)]*)/,hb=/-([a-z])/ig,ib=/([A-Z])/g,Fa=/^-?\d+(?:px)?$/i, -jb=/^-?\d/,kb={position:"absolute",visibility:"hidden",display:"block"},Pa=["Left","Right"],Qa=["Top","Bottom"],W,Ga,aa,lb=function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){if(arguments.length===2&&b===B)return this;return c.access(this,a,b,true,function(d,e,f){return f!==B?c.style(d,e,f):c.css(d,e)})};c.extend({cssHooks:{opacity:{get:function(a,b){if(b){var d=W(a,"opacity","opacity");return d===""?"1":d}else return a.style.opacity}}},cssNumber:{zIndex:true,fontWeight:true,opacity:true, -zoom:true,lineHeight:true},cssProps:{"float":c.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,d,e){if(!(!a||a.nodeType===3||a.nodeType===8||!a.style)){var f,h=c.camelCase(b),l=a.style,k=c.cssHooks[h];b=c.cssProps[h]||h;if(d!==B){if(!(typeof d==="number"&&isNaN(d)||d==null)){if(typeof d==="number"&&!c.cssNumber[h])d+="px";if(!k||!("set"in k)||(d=k.set(a,d))!==B)try{l[b]=d}catch(o){}}}else{if(k&&"get"in k&&(f=k.get(a,false,e))!==B)return f;return l[b]}}},css:function(a,b,d){var e,f=c.camelCase(b), -h=c.cssHooks[f];b=c.cssProps[f]||f;if(h&&"get"in h&&(e=h.get(a,true,d))!==B)return e;else if(W)return W(a,b,f)},swap:function(a,b,d){var e={},f;for(f in b){e[f]=a.style[f];a.style[f]=b[f]}d.call(a);for(f in b)a.style[f]=e[f]},camelCase:function(a){return a.replace(hb,lb)}});c.curCSS=c.css;c.each(["height","width"],function(a,b){c.cssHooks[b]={get:function(d,e,f){var h;if(e){if(d.offsetWidth!==0)h=oa(d,b,f);else c.swap(d,kb,function(){h=oa(d,b,f)});if(h<=0){h=W(d,b,b);if(h==="0px"&&aa)h=aa(d,b,b); -if(h!=null)return h===""||h==="auto"?"0px":h}if(h<0||h==null){h=d.style[b];return h===""||h==="auto"?"0px":h}return typeof h==="string"?h:h+"px"}},set:function(d,e){if(Fa.test(e)){e=parseFloat(e);if(e>=0)return e+"px"}else return e}}});if(!c.support.opacity)c.cssHooks.opacity={get:function(a,b){return gb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var d=a.style;d.zoom=1;var e=c.isNaN(b)?"":"alpha(opacity="+b*100+")",f= -d.filter||"";d.filter=Ea.test(f)?f.replace(Ea,e):d.filter+" "+e}};if(t.defaultView&&t.defaultView.getComputedStyle)Ga=function(a,b,d){var e;d=d.replace(ib,"-$1").toLowerCase();if(!(b=a.ownerDocument.defaultView))return B;if(b=b.getComputedStyle(a,null)){e=b.getPropertyValue(d);if(e===""&&!c.contains(a.ownerDocument.documentElement,a))e=c.style(a,d)}return e};if(t.documentElement.currentStyle)aa=function(a,b){var d,e,f=a.currentStyle&&a.currentStyle[b],h=a.style;if(!Fa.test(f)&&jb.test(f)){d=h.left; -e=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;h.left=b==="fontSize"?"1em":f||0;f=h.pixelLeft+"px";h.left=d;a.runtimeStyle.left=e}return f===""?"auto":f};W=Ga||aa;if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=a.offsetHeight;return a.offsetWidth===0&&b===0||!c.support.reliableHiddenOffsets&&(a.style.display||c.css(a,"display"))==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var mb=c.now(),nb=/)<[^<]*)*<\/script>/gi, -ob=/^(?:select|textarea)/i,pb=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,qb=/^(?:GET|HEAD)$/,Ra=/\[\]$/,T=/\=\?(&|$)/,ja=/\?/,rb=/([?&])_=[^&]*/,sb=/^(\w+:)?\/\/([^\/?#]+)/,tb=/%20/g,ub=/#.*$/,Ha=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!=="string"&&Ha)return Ha.apply(this,arguments);else if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var f=a.slice(e,a.length);a=a.slice(0,e)}e="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b=== -"object"){b=c.param(b,c.ajaxSettings.traditional);e="POST"}var h=this;c.ajax({url:a,type:e,dataType:"html",data:b,complete:function(l,k){if(k==="success"||k==="notmodified")h.html(f?c("
").append(l.responseText.replace(nb,"")).find(f):l.responseText);d&&h.each(d,[l.responseText,k,l])}});return this},serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&& -!this.disabled&&(this.checked||ob.test(this.nodeName)||pb.test(this.type))}).map(function(a,b){var d=c(this).val();return d==null?null:c.isArray(d)?c.map(d,function(e){return{name:b.name,value:e}}):{name:b.name,value:d}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:e})}, -getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:e})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return new E.XMLHttpRequest},accepts:{xml:"application/xml, text/xml",html:"text/html", -script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},ajax:function(a){var b=c.extend(true,{},c.ajaxSettings,a),d,e,f,h=b.type.toUpperCase(),l=qb.test(h);b.url=b.url.replace(ub,"");b.context=a&&a.context!=null?a.context:b;if(b.data&&b.processData&&typeof b.data!=="string")b.data=c.param(b.data,b.traditional);if(b.dataType==="jsonp"){if(h==="GET")T.test(b.url)||(b.url+=(ja.test(b.url)?"&":"?")+(b.jsonp||"callback")+"=?");else if(!b.data|| -!T.test(b.data))b.data=(b.data?b.data+"&":"")+(b.jsonp||"callback")+"=?";b.dataType="json"}if(b.dataType==="json"&&(b.data&&T.test(b.data)||T.test(b.url))){d=b.jsonpCallback||"jsonp"+mb++;if(b.data)b.data=(b.data+"").replace(T,"="+d+"$1");b.url=b.url.replace(T,"="+d+"$1");b.dataType="script";var k=E[d];E[d]=function(m){if(c.isFunction(k))k(m);else{E[d]=B;try{delete E[d]}catch(p){}}f=m;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);r&&r.removeChild(A)}}if(b.dataType==="script"&&b.cache===null)b.cache= -false;if(b.cache===false&&l){var o=c.now(),x=b.url.replace(rb,"$1_="+o);b.url=x+(x===b.url?(ja.test(b.url)?"&":"?")+"_="+o:"")}if(b.data&&l)b.url+=(ja.test(b.url)?"&":"?")+b.data;b.global&&c.active++===0&&c.event.trigger("ajaxStart");o=(o=sb.exec(b.url))&&(o[1]&&o[1].toLowerCase()!==location.protocol||o[2].toLowerCase()!==location.host);if(b.dataType==="script"&&h==="GET"&&o){var r=t.getElementsByTagName("head")[0]||t.documentElement,A=t.createElement("script");if(b.scriptCharset)A.charset=b.scriptCharset; -A.src=b.url;if(!d){var C=false;A.onload=A.onreadystatechange=function(){if(!C&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){C=true;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);A.onload=A.onreadystatechange=null;r&&A.parentNode&&r.removeChild(A)}}}r.insertBefore(A,r.firstChild);return B}var J=false,w=b.xhr();if(w){b.username?w.open(h,b.url,b.async,b.username,b.password):w.open(h,b.url,b.async);try{if(b.data!=null&&!l||a&&a.contentType)w.setRequestHeader("Content-Type", -b.contentType);if(b.ifModified){c.lastModified[b.url]&&w.setRequestHeader("If-Modified-Since",c.lastModified[b.url]);c.etag[b.url]&&w.setRequestHeader("If-None-Match",c.etag[b.url])}o||w.setRequestHeader("X-Requested-With","XMLHttpRequest");w.setRequestHeader("Accept",b.dataType&&b.accepts[b.dataType]?b.accepts[b.dataType]+", */*; q=0.01":b.accepts._default)}catch(I){}if(b.beforeSend&&b.beforeSend.call(b.context,w,b)===false){b.global&&c.active--===1&&c.event.trigger("ajaxStop");w.abort();return false}b.global&& -c.triggerGlobal(b,"ajaxSend",[w,b]);var L=w.onreadystatechange=function(m){if(!w||w.readyState===0||m==="abort"){J||c.handleComplete(b,w,e,f);J=true;if(w)w.onreadystatechange=c.noop}else if(!J&&w&&(w.readyState===4||m==="timeout")){J=true;w.onreadystatechange=c.noop;e=m==="timeout"?"timeout":!c.httpSuccess(w)?"error":b.ifModified&&c.httpNotModified(w,b.url)?"notmodified":"success";var p;if(e==="success")try{f=c.httpData(w,b.dataType,b)}catch(q){e="parsererror";p=q}if(e==="success"||e==="notmodified")d|| -c.handleSuccess(b,w,e,f);else c.handleError(b,w,e,p);d||c.handleComplete(b,w,e,f);m==="timeout"&&w.abort();if(b.async)w=null}};try{var g=w.abort;w.abort=function(){w&&Function.prototype.call.call(g,w);L("abort")}}catch(i){}b.async&&b.timeout>0&&setTimeout(function(){w&&!J&&L("timeout")},b.timeout);try{w.send(l||b.data==null?null:b.data)}catch(n){c.handleError(b,w,null,n);c.handleComplete(b,w,e,f)}b.async||L();return w}},param:function(a,b){var d=[],e=function(h,l){l=c.isFunction(l)?l():l;d[d.length]= -encodeURIComponent(h)+"="+encodeURIComponent(l)};if(b===B)b=c.ajaxSettings.traditional;if(c.isArray(a)||a.jquery)c.each(a,function(){e(this.name,this.value)});else for(var f in a)da(f,a[f],b,e);return d.join("&").replace(tb,"+")}});c.extend({active:0,lastModified:{},etag:{},handleError:function(a,b,d,e){a.error&&a.error.call(a.context,b,d,e);a.global&&c.triggerGlobal(a,"ajaxError",[b,a,e])},handleSuccess:function(a,b,d,e){a.success&&a.success.call(a.context,e,d,b);a.global&&c.triggerGlobal(a,"ajaxSuccess", -[b,a])},handleComplete:function(a,b,d){a.complete&&a.complete.call(a.context,b,d);a.global&&c.triggerGlobal(a,"ajaxComplete",[b,a]);a.global&&c.active--===1&&c.event.trigger("ajaxStop")},triggerGlobal:function(a,b,d){(a.context&&a.context.url==null?c(a.context):c.event).trigger(b,d)},httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===1223}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"), -e=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(e)c.etag[b]=e;return a.status===304},httpData:function(a,b,d){var e=a.getResponseHeader("content-type")||"",f=b==="xml"||!b&&e.indexOf("xml")>=0;a=f?a.responseXML:a.responseText;f&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b==="json"||!b&&e.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&e.indexOf("javascript")>=0)c.globalEval(a);return a}}); -if(E.ActiveXObject)c.ajaxSettings.xhr=function(){if(E.location.protocol!=="file:")try{return new E.XMLHttpRequest}catch(a){}try{return new E.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}};c.support.ajax=!!c.ajaxSettings.xhr();var ea={},vb=/^(?:toggle|show|hide)$/,wb=/^([+\-]=)?([\d+.\-]+)(.*)$/,ba,pa=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b,d){if(a||a===0)return this.animate(S("show", -3),a,b,d);else{d=0;for(var e=this.length;d=0;e--)if(d[e].elem===this){b&&d[e](true);d.splice(e,1)}});b||this.dequeue();return this}});c.each({slideDown:S("show",1),slideUp:S("hide",1),slideToggle:S("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){c.fn[a]=function(d,e,f){return this.animate(b, -d,e,f)}});c.extend({speed:function(a,b,d){var e=a&&typeof a==="object"?c.extend({},a):{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};e.duration=c.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in c.fx.speeds?c.fx.speeds[e.duration]:c.fx.speeds._default;e.old=e.complete;e.complete=function(){e.queue!==false&&c(this).dequeue();c.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,d,e){return d+e*a},swing:function(a,b,d,e){return(-Math.cos(a* -Math.PI)/2+0.5)*e+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||c.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a=parseFloat(c.css(this.elem,this.prop));return a&&a>-1E4?a:0},custom:function(a,b,d){function e(l){return f.step(l)} -var f=this,h=c.fx;this.startTime=c.now();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;this.pos=this.state=0;e.elem=this.elem;if(e()&&c.timers.push(e)&&!ba)ba=setInterval(h.tick,h.interval)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true; -this.custom(this.cur(),0)},step:function(a){var b=c.now(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var e in this.options.curAnim)if(this.options.curAnim[e]!==true)d=false;if(d){if(this.options.overflow!=null&&!c.support.shrinkWrapBlocks){var f=this.elem,h=this.options;c.each(["","X","Y"],function(k,o){f.style["overflow"+o]=h.overflow[k]})}this.options.hide&&c(this.elem).hide();if(this.options.hide|| -this.options.show)for(var l in this.options.curAnim)c.style(this.elem,l,this.options.orig[l]);this.options.complete.call(this.elem)}return false}else{a=b-this.startTime;this.state=a/this.options.duration;b=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||b](this.state,a,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a= -c.timers,b=0;b-1;e={};var x={};if(o)x=f.position();l=o?x.top:parseInt(l,10)||0;k=o?x.left:parseInt(k,10)||0;if(c.isFunction(b))b=b.call(a,d,h);if(b.top!=null)e.top=b.top-h.top+l;if(b.left!=null)e.left=b.left-h.left+k;"using"in b?b.using.call(a, -e):f.css(e)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),e=Ia.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.css(a,"marginTop"))||0;d.left-=parseFloat(c.css(a,"marginLeft"))||0;e.top+=parseFloat(c.css(b[0],"borderTopWidth"))||0;e.left+=parseFloat(c.css(b[0],"borderLeftWidth"))||0;return{top:d.top-e.top,left:d.left-e.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||t.body;a&&!Ia.test(a.nodeName)&& -c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(e){var f=this[0],h;if(!f)return null;if(e!==B)return this.each(function(){if(h=fa(this))h.scrollTo(!a?e:c(h).scrollLeft(),a?e:c(h).scrollTop());else this[d]=e});else return(h=fa(f))?"pageXOffset"in h?h[a?"pageYOffset":"pageXOffset"]:c.support.boxModel&&h.document.documentElement[d]||h.document.body[d]:f[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase(); -c.fn["inner"+b]=function(){return this[0]?parseFloat(c.css(this[0],d,"padding")):null};c.fn["outer"+b]=function(e){return this[0]?parseFloat(c.css(this[0],d,e?"margin":"border")):null};c.fn[d]=function(e){var f=this[0];if(!f)return e==null?null:this;if(c.isFunction(e))return this.each(function(l){var k=c(this);k[d](e.call(this,l,k[d]()))});if(c.isWindow(f))return f.document.compatMode==="CSS1Compat"&&f.document.documentElement["client"+b]||f.document.body["client"+b];else if(f.nodeType===9)return Math.max(f.documentElement["client"+ -b],f.body["scroll"+b],f.documentElement["scroll"+b],f.body["offset"+b],f.documentElement["offset"+b]);else if(e===B){f=c.css(f,d);var h=parseFloat(f);return c.isNaN(h)?f:h}else return this.css(d,typeof e==="string"?e:e+"px")}})})(window); diff --git a/maxkey-web-maxkey/.gitignore b/maxkey-web-maxkey/.gitignore deleted file mode 100644 index 83ccc54d..00000000 --- a/maxkey-web-maxkey/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/build/ -/bin/ diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/layout/common.cssjs.ftl b/maxkey-web-maxkey/src/main/resources/templates/views/layout/common.cssjs.ftl deleted file mode 100644 index 68c27442..00000000 --- a/maxkey-web-maxkey/src/main/resources/templates/views/layout/common.cssjs.ftl +++ /dev/null @@ -1,48 +0,0 @@ - - - - <#-- jquery base --> - - - <#-- bootstrap-4.4.1 --> - - - - <#-- font-awesome-4.7.0 --> - - <#-- metadata --> - - <#--bootstrap-table-1.16.0--> - - - - <#-- zTreev 3.5--> - - - - <#-- artDialog-5.0.4 --> - - - - <#-- datetimepicker-2.5.20 --> - - - - <#-- form --> - - <#-- blockUI --> - - <#-- serializeObject --> - - <#-- validation --> - - <#-- platform common script --> - - - - - <#-- if browser is not msie 6.0,follow styles over ie 6.0 style --> - - - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-grid.css b/maxkey-web-mgt-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-grid.css deleted file mode 100644 index 259a9e2c..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-grid.css +++ /dev/null @@ -1,3899 +0,0 @@ -/*! - * Bootstrap Grid v4.4.1 (https://getbootstrap.com/) - * Copyright 2011-2019 The Bootstrap Authors - * Copyright 2011-2019 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ -html { - box-sizing: border-box; - -ms-overflow-style: scrollbar; -} - -*, -*::before, -*::after { - box-sizing: inherit; -} - -.container { - width: 100%; - padding-right: 15px; - padding-left: 15px; - margin-right: auto; - margin-left: auto; -} - -@media (min-width: 576px) { - .container { - max-width: 540px; - } -} - -@media (min-width: 768px) { - .container { - max-width: 720px; - } -} - -@media (min-width: 992px) { - .container { - max-width: 960px; - } -} - -@media (min-width: 1200px) { - .container { - max-width: 1140px; - } -} - -.container-fluid, .container-sm, .container-md, .container-lg, .container-xl { - width: 100%; - padding-right: 15px; - padding-left: 15px; - margin-right: auto; - margin-left: auto; -} - -@media (min-width: 576px) { - .container, .container-sm { - max-width: 540px; - } -} - -@media (min-width: 768px) { - .container, .container-sm, .container-md { - max-width: 720px; - } -} - -@media (min-width: 992px) { - .container, .container-sm, .container-md, .container-lg { - max-width: 960px; - } -} - -@media (min-width: 1200px) { - .container, .container-sm, .container-md, .container-lg, .container-xl { - max-width: 1140px; - } -} - -.row { - display: -ms-flexbox; - display: flex; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - margin-right: -15px; - margin-left: -15px; -} - -.no-gutters { - margin-right: 0; - margin-left: 0; -} - -.no-gutters > .col, -.no-gutters > [class*="col-"] { - padding-right: 0; - padding-left: 0; -} - -.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, -.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, -.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, -.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, -.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl, -.col-xl-auto { - position: relative; - width: 100%; - padding-right: 15px; - padding-left: 15px; -} - -.col { - -ms-flex-preferred-size: 0; - flex-basis: 0; - -ms-flex-positive: 1; - flex-grow: 1; - max-width: 100%; -} - -.row-cols-1 > * { - -ms-flex: 0 0 100%; - flex: 0 0 100%; - max-width: 100%; -} - -.row-cols-2 > * { - -ms-flex: 0 0 50%; - flex: 0 0 50%; - max-width: 50%; -} - -.row-cols-3 > * { - -ms-flex: 0 0 33.333333%; - flex: 0 0 33.333333%; - max-width: 33.333333%; -} - -.row-cols-4 > * { - -ms-flex: 0 0 25%; - flex: 0 0 25%; - max-width: 25%; -} - -.row-cols-5 > * { - -ms-flex: 0 0 20%; - flex: 0 0 20%; - max-width: 20%; -} - -.row-cols-6 > * { - -ms-flex: 0 0 16.666667%; - flex: 0 0 16.666667%; - max-width: 16.666667%; -} - -.col-auto { - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: auto; - max-width: 100%; -} - -.col-1 { - -ms-flex: 0 0 8.333333%; - flex: 0 0 8.333333%; - max-width: 8.333333%; -} - -.col-2 { - -ms-flex: 0 0 16.666667%; - flex: 0 0 16.666667%; - max-width: 16.666667%; -} - -.col-3 { - -ms-flex: 0 0 25%; - flex: 0 0 25%; - max-width: 25%; -} - -.col-4 { - -ms-flex: 0 0 33.333333%; - flex: 0 0 33.333333%; - max-width: 33.333333%; -} - -.col-5 { - -ms-flex: 0 0 41.666667%; - flex: 0 0 41.666667%; - max-width: 41.666667%; -} - -.col-6 { - -ms-flex: 0 0 50%; - flex: 0 0 50%; - max-width: 50%; -} - -.col-7 { - -ms-flex: 0 0 58.333333%; - flex: 0 0 58.333333%; - max-width: 58.333333%; -} - -.col-8 { - -ms-flex: 0 0 66.666667%; - flex: 0 0 66.666667%; - max-width: 66.666667%; -} - -.col-9 { - -ms-flex: 0 0 75%; - flex: 0 0 75%; - max-width: 75%; -} - -.col-10 { - -ms-flex: 0 0 83.333333%; - flex: 0 0 83.333333%; - max-width: 83.333333%; -} - -.col-11 { - -ms-flex: 0 0 91.666667%; - flex: 0 0 91.666667%; - max-width: 91.666667%; -} - -.col-12 { - -ms-flex: 0 0 100%; - flex: 0 0 100%; - max-width: 100%; -} - -.order-first { - -ms-flex-order: -1; - order: -1; -} - -.order-last { - -ms-flex-order: 13; - order: 13; -} - -.order-0 { - -ms-flex-order: 0; - order: 0; -} - -.order-1 { - -ms-flex-order: 1; - order: 1; -} - -.order-2 { - -ms-flex-order: 2; - order: 2; -} - -.order-3 { - -ms-flex-order: 3; - order: 3; -} - -.order-4 { - -ms-flex-order: 4; - order: 4; -} - -.order-5 { - -ms-flex-order: 5; - order: 5; -} - -.order-6 { - -ms-flex-order: 6; - order: 6; -} - -.order-7 { - -ms-flex-order: 7; - order: 7; -} - -.order-8 { - -ms-flex-order: 8; - order: 8; -} - -.order-9 { - -ms-flex-order: 9; - order: 9; -} - -.order-10 { - -ms-flex-order: 10; - order: 10; -} - -.order-11 { - -ms-flex-order: 11; - order: 11; -} - -.order-12 { - -ms-flex-order: 12; - order: 12; -} - -.offset-1 { - margin-left: 8.333333%; -} - -.offset-2 { - margin-left: 16.666667%; -} - -.offset-3 { - margin-left: 25%; -} - -.offset-4 { - margin-left: 33.333333%; -} - -.offset-5 { - margin-left: 41.666667%; -} - -.offset-6 { - margin-left: 50%; -} - -.offset-7 { - margin-left: 58.333333%; -} - -.offset-8 { - margin-left: 66.666667%; -} - -.offset-9 { - margin-left: 75%; -} - -.offset-10 { - margin-left: 83.333333%; -} - -.offset-11 { - margin-left: 91.666667%; -} - -@media (min-width: 576px) { - .col-sm { - -ms-flex-preferred-size: 0; - flex-basis: 0; - -ms-flex-positive: 1; - flex-grow: 1; - max-width: 100%; - } - .row-cols-sm-1 > * { - -ms-flex: 0 0 100%; - flex: 0 0 100%; - max-width: 100%; - } - .row-cols-sm-2 > * { - -ms-flex: 0 0 50%; - flex: 0 0 50%; - max-width: 50%; - } - .row-cols-sm-3 > * { - -ms-flex: 0 0 33.333333%; - flex: 0 0 33.333333%; - max-width: 33.333333%; - } - .row-cols-sm-4 > * { - -ms-flex: 0 0 25%; - flex: 0 0 25%; - max-width: 25%; - } - .row-cols-sm-5 > * { - -ms-flex: 0 0 20%; - flex: 0 0 20%; - max-width: 20%; - } - .row-cols-sm-6 > * { - -ms-flex: 0 0 16.666667%; - flex: 0 0 16.666667%; - max-width: 16.666667%; - } - .col-sm-auto { - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: auto; - max-width: 100%; - } - .col-sm-1 { - -ms-flex: 0 0 8.333333%; - flex: 0 0 8.333333%; - max-width: 8.333333%; - } - .col-sm-2 { - -ms-flex: 0 0 16.666667%; - flex: 0 0 16.666667%; - max-width: 16.666667%; - } - .col-sm-3 { - -ms-flex: 0 0 25%; - flex: 0 0 25%; - max-width: 25%; - } - .col-sm-4 { - -ms-flex: 0 0 33.333333%; - flex: 0 0 33.333333%; - max-width: 33.333333%; - } - .col-sm-5 { - -ms-flex: 0 0 41.666667%; - flex: 0 0 41.666667%; - max-width: 41.666667%; - } - .col-sm-6 { - -ms-flex: 0 0 50%; - flex: 0 0 50%; - max-width: 50%; - } - .col-sm-7 { - -ms-flex: 0 0 58.333333%; - flex: 0 0 58.333333%; - max-width: 58.333333%; - } - .col-sm-8 { - -ms-flex: 0 0 66.666667%; - flex: 0 0 66.666667%; - max-width: 66.666667%; - } - .col-sm-9 { - -ms-flex: 0 0 75%; - flex: 0 0 75%; - max-width: 75%; - } - .col-sm-10 { - -ms-flex: 0 0 83.333333%; - flex: 0 0 83.333333%; - max-width: 83.333333%; - } - .col-sm-11 { - -ms-flex: 0 0 91.666667%; - flex: 0 0 91.666667%; - max-width: 91.666667%; - } - .col-sm-12 { - -ms-flex: 0 0 100%; - flex: 0 0 100%; - max-width: 100%; - } - .order-sm-first { - -ms-flex-order: -1; - order: -1; - } - .order-sm-last { - -ms-flex-order: 13; - order: 13; - } - .order-sm-0 { - -ms-flex-order: 0; - order: 0; - } - .order-sm-1 { - -ms-flex-order: 1; - order: 1; - } - .order-sm-2 { - -ms-flex-order: 2; - order: 2; - } - .order-sm-3 { - -ms-flex-order: 3; - order: 3; - } - .order-sm-4 { - -ms-flex-order: 4; - order: 4; - } - .order-sm-5 { - -ms-flex-order: 5; - order: 5; - } - .order-sm-6 { - -ms-flex-order: 6; - order: 6; - } - .order-sm-7 { - -ms-flex-order: 7; - order: 7; - } - .order-sm-8 { - -ms-flex-order: 8; - order: 8; - } - .order-sm-9 { - -ms-flex-order: 9; - order: 9; - } - .order-sm-10 { - -ms-flex-order: 10; - order: 10; - } - .order-sm-11 { - -ms-flex-order: 11; - order: 11; - } - .order-sm-12 { - -ms-flex-order: 12; - order: 12; - } - .offset-sm-0 { - margin-left: 0; - } - .offset-sm-1 { - margin-left: 8.333333%; - } - .offset-sm-2 { - margin-left: 16.666667%; - } - .offset-sm-3 { - margin-left: 25%; - } - .offset-sm-4 { - margin-left: 33.333333%; - } - .offset-sm-5 { - margin-left: 41.666667%; - } - .offset-sm-6 { - margin-left: 50%; - } - .offset-sm-7 { - margin-left: 58.333333%; - } - .offset-sm-8 { - margin-left: 66.666667%; - } - .offset-sm-9 { - margin-left: 75%; - } - .offset-sm-10 { - margin-left: 83.333333%; - } - .offset-sm-11 { - margin-left: 91.666667%; - } -} - -@media (min-width: 768px) { - .col-md { - -ms-flex-preferred-size: 0; - flex-basis: 0; - -ms-flex-positive: 1; - flex-grow: 1; - max-width: 100%; - } - .row-cols-md-1 > * { - -ms-flex: 0 0 100%; - flex: 0 0 100%; - max-width: 100%; - } - .row-cols-md-2 > * { - -ms-flex: 0 0 50%; - flex: 0 0 50%; - max-width: 50%; - } - .row-cols-md-3 > * { - -ms-flex: 0 0 33.333333%; - flex: 0 0 33.333333%; - max-width: 33.333333%; - } - .row-cols-md-4 > * { - -ms-flex: 0 0 25%; - flex: 0 0 25%; - max-width: 25%; - } - .row-cols-md-5 > * { - -ms-flex: 0 0 20%; - flex: 0 0 20%; - max-width: 20%; - } - .row-cols-md-6 > * { - -ms-flex: 0 0 16.666667%; - flex: 0 0 16.666667%; - max-width: 16.666667%; - } - .col-md-auto { - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: auto; - max-width: 100%; - } - .col-md-1 { - -ms-flex: 0 0 8.333333%; - flex: 0 0 8.333333%; - max-width: 8.333333%; - } - .col-md-2 { - -ms-flex: 0 0 16.666667%; - flex: 0 0 16.666667%; - max-width: 16.666667%; - } - .col-md-3 { - -ms-flex: 0 0 25%; - flex: 0 0 25%; - max-width: 25%; - } - .col-md-4 { - -ms-flex: 0 0 33.333333%; - flex: 0 0 33.333333%; - max-width: 33.333333%; - } - .col-md-5 { - -ms-flex: 0 0 41.666667%; - flex: 0 0 41.666667%; - max-width: 41.666667%; - } - .col-md-6 { - -ms-flex: 0 0 50%; - flex: 0 0 50%; - max-width: 50%; - } - .col-md-7 { - -ms-flex: 0 0 58.333333%; - flex: 0 0 58.333333%; - max-width: 58.333333%; - } - .col-md-8 { - -ms-flex: 0 0 66.666667%; - flex: 0 0 66.666667%; - max-width: 66.666667%; - } - .col-md-9 { - -ms-flex: 0 0 75%; - flex: 0 0 75%; - max-width: 75%; - } - .col-md-10 { - -ms-flex: 0 0 83.333333%; - flex: 0 0 83.333333%; - max-width: 83.333333%; - } - .col-md-11 { - -ms-flex: 0 0 91.666667%; - flex: 0 0 91.666667%; - max-width: 91.666667%; - } - .col-md-12 { - -ms-flex: 0 0 100%; - flex: 0 0 100%; - max-width: 100%; - } - .order-md-first { - -ms-flex-order: -1; - order: -1; - } - .order-md-last { - -ms-flex-order: 13; - order: 13; - } - .order-md-0 { - -ms-flex-order: 0; - order: 0; - } - .order-md-1 { - -ms-flex-order: 1; - order: 1; - } - .order-md-2 { - -ms-flex-order: 2; - order: 2; - } - .order-md-3 { - -ms-flex-order: 3; - order: 3; - } - .order-md-4 { - -ms-flex-order: 4; - order: 4; - } - .order-md-5 { - -ms-flex-order: 5; - order: 5; - } - .order-md-6 { - -ms-flex-order: 6; - order: 6; - } - .order-md-7 { - -ms-flex-order: 7; - order: 7; - } - .order-md-8 { - -ms-flex-order: 8; - order: 8; - } - .order-md-9 { - -ms-flex-order: 9; - order: 9; - } - .order-md-10 { - -ms-flex-order: 10; - order: 10; - } - .order-md-11 { - -ms-flex-order: 11; - order: 11; - } - .order-md-12 { - -ms-flex-order: 12; - order: 12; - } - .offset-md-0 { - margin-left: 0; - } - .offset-md-1 { - margin-left: 8.333333%; - } - .offset-md-2 { - margin-left: 16.666667%; - } - .offset-md-3 { - margin-left: 25%; - } - .offset-md-4 { - margin-left: 33.333333%; - } - .offset-md-5 { - margin-left: 41.666667%; - } - .offset-md-6 { - margin-left: 50%; - } - .offset-md-7 { - margin-left: 58.333333%; - } - .offset-md-8 { - margin-left: 66.666667%; - } - .offset-md-9 { - margin-left: 75%; - } - .offset-md-10 { - margin-left: 83.333333%; - } - .offset-md-11 { - margin-left: 91.666667%; - } -} - -@media (min-width: 992px) { - .col-lg { - -ms-flex-preferred-size: 0; - flex-basis: 0; - -ms-flex-positive: 1; - flex-grow: 1; - max-width: 100%; - } - .row-cols-lg-1 > * { - -ms-flex: 0 0 100%; - flex: 0 0 100%; - max-width: 100%; - } - .row-cols-lg-2 > * { - -ms-flex: 0 0 50%; - flex: 0 0 50%; - max-width: 50%; - } - .row-cols-lg-3 > * { - -ms-flex: 0 0 33.333333%; - flex: 0 0 33.333333%; - max-width: 33.333333%; - } - .row-cols-lg-4 > * { - -ms-flex: 0 0 25%; - flex: 0 0 25%; - max-width: 25%; - } - .row-cols-lg-5 > * { - -ms-flex: 0 0 20%; - flex: 0 0 20%; - max-width: 20%; - } - .row-cols-lg-6 > * { - -ms-flex: 0 0 16.666667%; - flex: 0 0 16.666667%; - max-width: 16.666667%; - } - .col-lg-auto { - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: auto; - max-width: 100%; - } - .col-lg-1 { - -ms-flex: 0 0 8.333333%; - flex: 0 0 8.333333%; - max-width: 8.333333%; - } - .col-lg-2 { - -ms-flex: 0 0 16.666667%; - flex: 0 0 16.666667%; - max-width: 16.666667%; - } - .col-lg-3 { - -ms-flex: 0 0 25%; - flex: 0 0 25%; - max-width: 25%; - } - .col-lg-4 { - -ms-flex: 0 0 33.333333%; - flex: 0 0 33.333333%; - max-width: 33.333333%; - } - .col-lg-5 { - -ms-flex: 0 0 41.666667%; - flex: 0 0 41.666667%; - max-width: 41.666667%; - } - .col-lg-6 { - -ms-flex: 0 0 50%; - flex: 0 0 50%; - max-width: 50%; - } - .col-lg-7 { - -ms-flex: 0 0 58.333333%; - flex: 0 0 58.333333%; - max-width: 58.333333%; - } - .col-lg-8 { - -ms-flex: 0 0 66.666667%; - flex: 0 0 66.666667%; - max-width: 66.666667%; - } - .col-lg-9 { - -ms-flex: 0 0 75%; - flex: 0 0 75%; - max-width: 75%; - } - .col-lg-10 { - -ms-flex: 0 0 83.333333%; - flex: 0 0 83.333333%; - max-width: 83.333333%; - } - .col-lg-11 { - -ms-flex: 0 0 91.666667%; - flex: 0 0 91.666667%; - max-width: 91.666667%; - } - .col-lg-12 { - -ms-flex: 0 0 100%; - flex: 0 0 100%; - max-width: 100%; - } - .order-lg-first { - -ms-flex-order: -1; - order: -1; - } - .order-lg-last { - -ms-flex-order: 13; - order: 13; - } - .order-lg-0 { - -ms-flex-order: 0; - order: 0; - } - .order-lg-1 { - -ms-flex-order: 1; - order: 1; - } - .order-lg-2 { - -ms-flex-order: 2; - order: 2; - } - .order-lg-3 { - -ms-flex-order: 3; - order: 3; - } - .order-lg-4 { - -ms-flex-order: 4; - order: 4; - } - .order-lg-5 { - -ms-flex-order: 5; - order: 5; - } - .order-lg-6 { - -ms-flex-order: 6; - order: 6; - } - .order-lg-7 { - -ms-flex-order: 7; - order: 7; - } - .order-lg-8 { - -ms-flex-order: 8; - order: 8; - } - .order-lg-9 { - -ms-flex-order: 9; - order: 9; - } - .order-lg-10 { - -ms-flex-order: 10; - order: 10; - } - .order-lg-11 { - -ms-flex-order: 11; - order: 11; - } - .order-lg-12 { - -ms-flex-order: 12; - order: 12; - } - .offset-lg-0 { - margin-left: 0; - } - .offset-lg-1 { - margin-left: 8.333333%; - } - .offset-lg-2 { - margin-left: 16.666667%; - } - .offset-lg-3 { - margin-left: 25%; - } - .offset-lg-4 { - margin-left: 33.333333%; - } - .offset-lg-5 { - margin-left: 41.666667%; - } - .offset-lg-6 { - margin-left: 50%; - } - .offset-lg-7 { - margin-left: 58.333333%; - } - .offset-lg-8 { - margin-left: 66.666667%; - } - .offset-lg-9 { - margin-left: 75%; - } - .offset-lg-10 { - margin-left: 83.333333%; - } - .offset-lg-11 { - margin-left: 91.666667%; - } -} - -@media (min-width: 1200px) { - .col-xl { - -ms-flex-preferred-size: 0; - flex-basis: 0; - -ms-flex-positive: 1; - flex-grow: 1; - max-width: 100%; - } - .row-cols-xl-1 > * { - -ms-flex: 0 0 100%; - flex: 0 0 100%; - max-width: 100%; - } - .row-cols-xl-2 > * { - -ms-flex: 0 0 50%; - flex: 0 0 50%; - max-width: 50%; - } - .row-cols-xl-3 > * { - -ms-flex: 0 0 33.333333%; - flex: 0 0 33.333333%; - max-width: 33.333333%; - } - .row-cols-xl-4 > * { - -ms-flex: 0 0 25%; - flex: 0 0 25%; - max-width: 25%; - } - .row-cols-xl-5 > * { - -ms-flex: 0 0 20%; - flex: 0 0 20%; - max-width: 20%; - } - .row-cols-xl-6 > * { - -ms-flex: 0 0 16.666667%; - flex: 0 0 16.666667%; - max-width: 16.666667%; - } - .col-xl-auto { - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: auto; - max-width: 100%; - } - .col-xl-1 { - -ms-flex: 0 0 8.333333%; - flex: 0 0 8.333333%; - max-width: 8.333333%; - } - .col-xl-2 { - -ms-flex: 0 0 16.666667%; - flex: 0 0 16.666667%; - max-width: 16.666667%; - } - .col-xl-3 { - -ms-flex: 0 0 25%; - flex: 0 0 25%; - max-width: 25%; - } - .col-xl-4 { - -ms-flex: 0 0 33.333333%; - flex: 0 0 33.333333%; - max-width: 33.333333%; - } - .col-xl-5 { - -ms-flex: 0 0 41.666667%; - flex: 0 0 41.666667%; - max-width: 41.666667%; - } - .col-xl-6 { - -ms-flex: 0 0 50%; - flex: 0 0 50%; - max-width: 50%; - } - .col-xl-7 { - -ms-flex: 0 0 58.333333%; - flex: 0 0 58.333333%; - max-width: 58.333333%; - } - .col-xl-8 { - -ms-flex: 0 0 66.666667%; - flex: 0 0 66.666667%; - max-width: 66.666667%; - } - .col-xl-9 { - -ms-flex: 0 0 75%; - flex: 0 0 75%; - max-width: 75%; - } - .col-xl-10 { - -ms-flex: 0 0 83.333333%; - flex: 0 0 83.333333%; - max-width: 83.333333%; - } - .col-xl-11 { - -ms-flex: 0 0 91.666667%; - flex: 0 0 91.666667%; - max-width: 91.666667%; - } - .col-xl-12 { - -ms-flex: 0 0 100%; - flex: 0 0 100%; - max-width: 100%; - } - .order-xl-first { - -ms-flex-order: -1; - order: -1; - } - .order-xl-last { - -ms-flex-order: 13; - order: 13; - } - .order-xl-0 { - -ms-flex-order: 0; - order: 0; - } - .order-xl-1 { - -ms-flex-order: 1; - order: 1; - } - .order-xl-2 { - -ms-flex-order: 2; - order: 2; - } - .order-xl-3 { - -ms-flex-order: 3; - order: 3; - } - .order-xl-4 { - -ms-flex-order: 4; - order: 4; - } - .order-xl-5 { - -ms-flex-order: 5; - order: 5; - } - .order-xl-6 { - -ms-flex-order: 6; - order: 6; - } - .order-xl-7 { - -ms-flex-order: 7; - order: 7; - } - .order-xl-8 { - -ms-flex-order: 8; - order: 8; - } - .order-xl-9 { - -ms-flex-order: 9; - order: 9; - } - .order-xl-10 { - -ms-flex-order: 10; - order: 10; - } - .order-xl-11 { - -ms-flex-order: 11; - order: 11; - } - .order-xl-12 { - -ms-flex-order: 12; - order: 12; - } - .offset-xl-0 { - margin-left: 0; - } - .offset-xl-1 { - margin-left: 8.333333%; - } - .offset-xl-2 { - margin-left: 16.666667%; - } - .offset-xl-3 { - margin-left: 25%; - } - .offset-xl-4 { - margin-left: 33.333333%; - } - .offset-xl-5 { - margin-left: 41.666667%; - } - .offset-xl-6 { - margin-left: 50%; - } - .offset-xl-7 { - margin-left: 58.333333%; - } - .offset-xl-8 { - margin-left: 66.666667%; - } - .offset-xl-9 { - margin-left: 75%; - } - .offset-xl-10 { - margin-left: 83.333333%; - } - .offset-xl-11 { - margin-left: 91.666667%; - } -} - -.d-none { - display: none !important; -} - -.d-inline { - display: inline !important; -} - -.d-inline-block { - display: inline-block !important; -} - -.d-block { - display: block !important; -} - -.d-table { - display: table !important; -} - -.d-table-row { - display: table-row !important; -} - -.d-table-cell { - display: table-cell !important; -} - -.d-flex { - display: -ms-flexbox !important; - display: flex !important; -} - -.d-inline-flex { - display: -ms-inline-flexbox !important; - display: inline-flex !important; -} - -@media (min-width: 576px) { - .d-sm-none { - display: none !important; - } - .d-sm-inline { - display: inline !important; - } - .d-sm-inline-block { - display: inline-block !important; - } - .d-sm-block { - display: block !important; - } - .d-sm-table { - display: table !important; - } - .d-sm-table-row { - display: table-row !important; - } - .d-sm-table-cell { - display: table-cell !important; - } - .d-sm-flex { - display: -ms-flexbox !important; - display: flex !important; - } - .d-sm-inline-flex { - display: -ms-inline-flexbox !important; - display: inline-flex !important; - } -} - -@media (min-width: 768px) { - .d-md-none { - display: none !important; - } - .d-md-inline { - display: inline !important; - } - .d-md-inline-block { - display: inline-block !important; - } - .d-md-block { - display: block !important; - } - .d-md-table { - display: table !important; - } - .d-md-table-row { - display: table-row !important; - } - .d-md-table-cell { - display: table-cell !important; - } - .d-md-flex { - display: -ms-flexbox !important; - display: flex !important; - } - .d-md-inline-flex { - display: -ms-inline-flexbox !important; - display: inline-flex !important; - } -} - -@media (min-width: 992px) { - .d-lg-none { - display: none !important; - } - .d-lg-inline { - display: inline !important; - } - .d-lg-inline-block { - display: inline-block !important; - } - .d-lg-block { - display: block !important; - } - .d-lg-table { - display: table !important; - } - .d-lg-table-row { - display: table-row !important; - } - .d-lg-table-cell { - display: table-cell !important; - } - .d-lg-flex { - display: -ms-flexbox !important; - display: flex !important; - } - .d-lg-inline-flex { - display: -ms-inline-flexbox !important; - display: inline-flex !important; - } -} - -@media (min-width: 1200px) { - .d-xl-none { - display: none !important; - } - .d-xl-inline { - display: inline !important; - } - .d-xl-inline-block { - display: inline-block !important; - } - .d-xl-block { - display: block !important; - } - .d-xl-table { - display: table !important; - } - .d-xl-table-row { - display: table-row !important; - } - .d-xl-table-cell { - display: table-cell !important; - } - .d-xl-flex { - display: -ms-flexbox !important; - display: flex !important; - } - .d-xl-inline-flex { - display: -ms-inline-flexbox !important; - display: inline-flex !important; - } -} - -@media print { - .d-print-none { - display: none !important; - } - .d-print-inline { - display: inline !important; - } - .d-print-inline-block { - display: inline-block !important; - } - .d-print-block { - display: block !important; - } - .d-print-table { - display: table !important; - } - .d-print-table-row { - display: table-row !important; - } - .d-print-table-cell { - display: table-cell !important; - } - .d-print-flex { - display: -ms-flexbox !important; - display: flex !important; - } - .d-print-inline-flex { - display: -ms-inline-flexbox !important; - display: inline-flex !important; - } -} - -.flex-row { - -ms-flex-direction: row !important; - flex-direction: row !important; -} - -.flex-column { - -ms-flex-direction: column !important; - flex-direction: column !important; -} - -.flex-row-reverse { - -ms-flex-direction: row-reverse !important; - flex-direction: row-reverse !important; -} - -.flex-column-reverse { - -ms-flex-direction: column-reverse !important; - flex-direction: column-reverse !important; -} - -.flex-wrap { - -ms-flex-wrap: wrap !important; - flex-wrap: wrap !important; -} - -.flex-nowrap { - -ms-flex-wrap: nowrap !important; - flex-wrap: nowrap !important; -} - -.flex-wrap-reverse { - -ms-flex-wrap: wrap-reverse !important; - flex-wrap: wrap-reverse !important; -} - -.flex-fill { - -ms-flex: 1 1 auto !important; - flex: 1 1 auto !important; -} - -.flex-grow-0 { - -ms-flex-positive: 0 !important; - flex-grow: 0 !important; -} - -.flex-grow-1 { - -ms-flex-positive: 1 !important; - flex-grow: 1 !important; -} - -.flex-shrink-0 { - -ms-flex-negative: 0 !important; - flex-shrink: 0 !important; -} - -.flex-shrink-1 { - -ms-flex-negative: 1 !important; - flex-shrink: 1 !important; -} - -.justify-content-start { - -ms-flex-pack: start !important; - justify-content: flex-start !important; -} - -.justify-content-end { - -ms-flex-pack: end !important; - justify-content: flex-end !important; -} - -.justify-content-center { - -ms-flex-pack: center !important; - justify-content: center !important; -} - -.justify-content-between { - -ms-flex-pack: justify !important; - justify-content: space-between !important; -} - -.justify-content-around { - -ms-flex-pack: distribute !important; - justify-content: space-around !important; -} - -.align-items-start { - -ms-flex-align: start !important; - align-items: flex-start !important; -} - -.align-items-end { - -ms-flex-align: end !important; - align-items: flex-end !important; -} - -.align-items-center { - -ms-flex-align: center !important; - align-items: center !important; -} - -.align-items-baseline { - -ms-flex-align: baseline !important; - align-items: baseline !important; -} - -.align-items-stretch { - -ms-flex-align: stretch !important; - align-items: stretch !important; -} - -.align-content-start { - -ms-flex-line-pack: start !important; - align-content: flex-start !important; -} - -.align-content-end { - -ms-flex-line-pack: end !important; - align-content: flex-end !important; -} - -.align-content-center { - -ms-flex-line-pack: center !important; - align-content: center !important; -} - -.align-content-between { - -ms-flex-line-pack: justify !important; - align-content: space-between !important; -} - -.align-content-around { - -ms-flex-line-pack: distribute !important; - align-content: space-around !important; -} - -.align-content-stretch { - -ms-flex-line-pack: stretch !important; - align-content: stretch !important; -} - -.align-self-auto { - -ms-flex-item-align: auto !important; - align-self: auto !important; -} - -.align-self-start { - -ms-flex-item-align: start !important; - align-self: flex-start !important; -} - -.align-self-end { - -ms-flex-item-align: end !important; - align-self: flex-end !important; -} - -.align-self-center { - -ms-flex-item-align: center !important; - align-self: center !important; -} - -.align-self-baseline { - -ms-flex-item-align: baseline !important; - align-self: baseline !important; -} - -.align-self-stretch { - -ms-flex-item-align: stretch !important; - align-self: stretch !important; -} - -@media (min-width: 576px) { - .flex-sm-row { - -ms-flex-direction: row !important; - flex-direction: row !important; - } - .flex-sm-column { - -ms-flex-direction: column !important; - flex-direction: column !important; - } - .flex-sm-row-reverse { - -ms-flex-direction: row-reverse !important; - flex-direction: row-reverse !important; - } - .flex-sm-column-reverse { - -ms-flex-direction: column-reverse !important; - flex-direction: column-reverse !important; - } - .flex-sm-wrap { - -ms-flex-wrap: wrap !important; - flex-wrap: wrap !important; - } - .flex-sm-nowrap { - -ms-flex-wrap: nowrap !important; - flex-wrap: nowrap !important; - } - .flex-sm-wrap-reverse { - -ms-flex-wrap: wrap-reverse !important; - flex-wrap: wrap-reverse !important; - } - .flex-sm-fill { - -ms-flex: 1 1 auto !important; - flex: 1 1 auto !important; - } - .flex-sm-grow-0 { - -ms-flex-positive: 0 !important; - flex-grow: 0 !important; - } - .flex-sm-grow-1 { - -ms-flex-positive: 1 !important; - flex-grow: 1 !important; - } - .flex-sm-shrink-0 { - -ms-flex-negative: 0 !important; - flex-shrink: 0 !important; - } - .flex-sm-shrink-1 { - -ms-flex-negative: 1 !important; - flex-shrink: 1 !important; - } - .justify-content-sm-start { - -ms-flex-pack: start !important; - justify-content: flex-start !important; - } - .justify-content-sm-end { - -ms-flex-pack: end !important; - justify-content: flex-end !important; - } - .justify-content-sm-center { - -ms-flex-pack: center !important; - justify-content: center !important; - } - .justify-content-sm-between { - -ms-flex-pack: justify !important; - justify-content: space-between !important; - } - .justify-content-sm-around { - -ms-flex-pack: distribute !important; - justify-content: space-around !important; - } - .align-items-sm-start { - -ms-flex-align: start !important; - align-items: flex-start !important; - } - .align-items-sm-end { - -ms-flex-align: end !important; - align-items: flex-end !important; - } - .align-items-sm-center { - -ms-flex-align: center !important; - align-items: center !important; - } - .align-items-sm-baseline { - -ms-flex-align: baseline !important; - align-items: baseline !important; - } - .align-items-sm-stretch { - -ms-flex-align: stretch !important; - align-items: stretch !important; - } - .align-content-sm-start { - -ms-flex-line-pack: start !important; - align-content: flex-start !important; - } - .align-content-sm-end { - -ms-flex-line-pack: end !important; - align-content: flex-end !important; - } - .align-content-sm-center { - -ms-flex-line-pack: center !important; - align-content: center !important; - } - .align-content-sm-between { - -ms-flex-line-pack: justify !important; - align-content: space-between !important; - } - .align-content-sm-around { - -ms-flex-line-pack: distribute !important; - align-content: space-around !important; - } - .align-content-sm-stretch { - -ms-flex-line-pack: stretch !important; - align-content: stretch !important; - } - .align-self-sm-auto { - -ms-flex-item-align: auto !important; - align-self: auto !important; - } - .align-self-sm-start { - -ms-flex-item-align: start !important; - align-self: flex-start !important; - } - .align-self-sm-end { - -ms-flex-item-align: end !important; - align-self: flex-end !important; - } - .align-self-sm-center { - -ms-flex-item-align: center !important; - align-self: center !important; - } - .align-self-sm-baseline { - -ms-flex-item-align: baseline !important; - align-self: baseline !important; - } - .align-self-sm-stretch { - -ms-flex-item-align: stretch !important; - align-self: stretch !important; - } -} - -@media (min-width: 768px) { - .flex-md-row { - -ms-flex-direction: row !important; - flex-direction: row !important; - } - .flex-md-column { - -ms-flex-direction: column !important; - flex-direction: column !important; - } - .flex-md-row-reverse { - -ms-flex-direction: row-reverse !important; - flex-direction: row-reverse !important; - } - .flex-md-column-reverse { - -ms-flex-direction: column-reverse !important; - flex-direction: column-reverse !important; - } - .flex-md-wrap { - -ms-flex-wrap: wrap !important; - flex-wrap: wrap !important; - } - .flex-md-nowrap { - -ms-flex-wrap: nowrap !important; - flex-wrap: nowrap !important; - } - .flex-md-wrap-reverse { - -ms-flex-wrap: wrap-reverse !important; - flex-wrap: wrap-reverse !important; - } - .flex-md-fill { - -ms-flex: 1 1 auto !important; - flex: 1 1 auto !important; - } - .flex-md-grow-0 { - -ms-flex-positive: 0 !important; - flex-grow: 0 !important; - } - .flex-md-grow-1 { - -ms-flex-positive: 1 !important; - flex-grow: 1 !important; - } - .flex-md-shrink-0 { - -ms-flex-negative: 0 !important; - flex-shrink: 0 !important; - } - .flex-md-shrink-1 { - -ms-flex-negative: 1 !important; - flex-shrink: 1 !important; - } - .justify-content-md-start { - -ms-flex-pack: start !important; - justify-content: flex-start !important; - } - .justify-content-md-end { - -ms-flex-pack: end !important; - justify-content: flex-end !important; - } - .justify-content-md-center { - -ms-flex-pack: center !important; - justify-content: center !important; - } - .justify-content-md-between { - -ms-flex-pack: justify !important; - justify-content: space-between !important; - } - .justify-content-md-around { - -ms-flex-pack: distribute !important; - justify-content: space-around !important; - } - .align-items-md-start { - -ms-flex-align: start !important; - align-items: flex-start !important; - } - .align-items-md-end { - -ms-flex-align: end !important; - align-items: flex-end !important; - } - .align-items-md-center { - -ms-flex-align: center !important; - align-items: center !important; - } - .align-items-md-baseline { - -ms-flex-align: baseline !important; - align-items: baseline !important; - } - .align-items-md-stretch { - -ms-flex-align: stretch !important; - align-items: stretch !important; - } - .align-content-md-start { - -ms-flex-line-pack: start !important; - align-content: flex-start !important; - } - .align-content-md-end { - -ms-flex-line-pack: end !important; - align-content: flex-end !important; - } - .align-content-md-center { - -ms-flex-line-pack: center !important; - align-content: center !important; - } - .align-content-md-between { - -ms-flex-line-pack: justify !important; - align-content: space-between !important; - } - .align-content-md-around { - -ms-flex-line-pack: distribute !important; - align-content: space-around !important; - } - .align-content-md-stretch { - -ms-flex-line-pack: stretch !important; - align-content: stretch !important; - } - .align-self-md-auto { - -ms-flex-item-align: auto !important; - align-self: auto !important; - } - .align-self-md-start { - -ms-flex-item-align: start !important; - align-self: flex-start !important; - } - .align-self-md-end { - -ms-flex-item-align: end !important; - align-self: flex-end !important; - } - .align-self-md-center { - -ms-flex-item-align: center !important; - align-self: center !important; - } - .align-self-md-baseline { - -ms-flex-item-align: baseline !important; - align-self: baseline !important; - } - .align-self-md-stretch { - -ms-flex-item-align: stretch !important; - align-self: stretch !important; - } -} - -@media (min-width: 992px) { - .flex-lg-row { - -ms-flex-direction: row !important; - flex-direction: row !important; - } - .flex-lg-column { - -ms-flex-direction: column !important; - flex-direction: column !important; - } - .flex-lg-row-reverse { - -ms-flex-direction: row-reverse !important; - flex-direction: row-reverse !important; - } - .flex-lg-column-reverse { - -ms-flex-direction: column-reverse !important; - flex-direction: column-reverse !important; - } - .flex-lg-wrap { - -ms-flex-wrap: wrap !important; - flex-wrap: wrap !important; - } - .flex-lg-nowrap { - -ms-flex-wrap: nowrap !important; - flex-wrap: nowrap !important; - } - .flex-lg-wrap-reverse { - -ms-flex-wrap: wrap-reverse !important; - flex-wrap: wrap-reverse !important; - } - .flex-lg-fill { - -ms-flex: 1 1 auto !important; - flex: 1 1 auto !important; - } - .flex-lg-grow-0 { - -ms-flex-positive: 0 !important; - flex-grow: 0 !important; - } - .flex-lg-grow-1 { - -ms-flex-positive: 1 !important; - flex-grow: 1 !important; - } - .flex-lg-shrink-0 { - -ms-flex-negative: 0 !important; - flex-shrink: 0 !important; - } - .flex-lg-shrink-1 { - -ms-flex-negative: 1 !important; - flex-shrink: 1 !important; - } - .justify-content-lg-start { - -ms-flex-pack: start !important; - justify-content: flex-start !important; - } - .justify-content-lg-end { - -ms-flex-pack: end !important; - justify-content: flex-end !important; - } - .justify-content-lg-center { - -ms-flex-pack: center !important; - justify-content: center !important; - } - .justify-content-lg-between { - -ms-flex-pack: justify !important; - justify-content: space-between !important; - } - .justify-content-lg-around { - -ms-flex-pack: distribute !important; - justify-content: space-around !important; - } - .align-items-lg-start { - -ms-flex-align: start !important; - align-items: flex-start !important; - } - .align-items-lg-end { - -ms-flex-align: end !important; - align-items: flex-end !important; - } - .align-items-lg-center { - -ms-flex-align: center !important; - align-items: center !important; - } - .align-items-lg-baseline { - -ms-flex-align: baseline !important; - align-items: baseline !important; - } - .align-items-lg-stretch { - -ms-flex-align: stretch !important; - align-items: stretch !important; - } - .align-content-lg-start { - -ms-flex-line-pack: start !important; - align-content: flex-start !important; - } - .align-content-lg-end { - -ms-flex-line-pack: end !important; - align-content: flex-end !important; - } - .align-content-lg-center { - -ms-flex-line-pack: center !important; - align-content: center !important; - } - .align-content-lg-between { - -ms-flex-line-pack: justify !important; - align-content: space-between !important; - } - .align-content-lg-around { - -ms-flex-line-pack: distribute !important; - align-content: space-around !important; - } - .align-content-lg-stretch { - -ms-flex-line-pack: stretch !important; - align-content: stretch !important; - } - .align-self-lg-auto { - -ms-flex-item-align: auto !important; - align-self: auto !important; - } - .align-self-lg-start { - -ms-flex-item-align: start !important; - align-self: flex-start !important; - } - .align-self-lg-end { - -ms-flex-item-align: end !important; - align-self: flex-end !important; - } - .align-self-lg-center { - -ms-flex-item-align: center !important; - align-self: center !important; - } - .align-self-lg-baseline { - -ms-flex-item-align: baseline !important; - align-self: baseline !important; - } - .align-self-lg-stretch { - -ms-flex-item-align: stretch !important; - align-self: stretch !important; - } -} - -@media (min-width: 1200px) { - .flex-xl-row { - -ms-flex-direction: row !important; - flex-direction: row !important; - } - .flex-xl-column { - -ms-flex-direction: column !important; - flex-direction: column !important; - } - .flex-xl-row-reverse { - -ms-flex-direction: row-reverse !important; - flex-direction: row-reverse !important; - } - .flex-xl-column-reverse { - -ms-flex-direction: column-reverse !important; - flex-direction: column-reverse !important; - } - .flex-xl-wrap { - -ms-flex-wrap: wrap !important; - flex-wrap: wrap !important; - } - .flex-xl-nowrap { - -ms-flex-wrap: nowrap !important; - flex-wrap: nowrap !important; - } - .flex-xl-wrap-reverse { - -ms-flex-wrap: wrap-reverse !important; - flex-wrap: wrap-reverse !important; - } - .flex-xl-fill { - -ms-flex: 1 1 auto !important; - flex: 1 1 auto !important; - } - .flex-xl-grow-0 { - -ms-flex-positive: 0 !important; - flex-grow: 0 !important; - } - .flex-xl-grow-1 { - -ms-flex-positive: 1 !important; - flex-grow: 1 !important; - } - .flex-xl-shrink-0 { - -ms-flex-negative: 0 !important; - flex-shrink: 0 !important; - } - .flex-xl-shrink-1 { - -ms-flex-negative: 1 !important; - flex-shrink: 1 !important; - } - .justify-content-xl-start { - -ms-flex-pack: start !important; - justify-content: flex-start !important; - } - .justify-content-xl-end { - -ms-flex-pack: end !important; - justify-content: flex-end !important; - } - .justify-content-xl-center { - -ms-flex-pack: center !important; - justify-content: center !important; - } - .justify-content-xl-between { - -ms-flex-pack: justify !important; - justify-content: space-between !important; - } - .justify-content-xl-around { - -ms-flex-pack: distribute !important; - justify-content: space-around !important; - } - .align-items-xl-start { - -ms-flex-align: start !important; - align-items: flex-start !important; - } - .align-items-xl-end { - -ms-flex-align: end !important; - align-items: flex-end !important; - } - .align-items-xl-center { - -ms-flex-align: center !important; - align-items: center !important; - } - .align-items-xl-baseline { - -ms-flex-align: baseline !important; - align-items: baseline !important; - } - .align-items-xl-stretch { - -ms-flex-align: stretch !important; - align-items: stretch !important; - } - .align-content-xl-start { - -ms-flex-line-pack: start !important; - align-content: flex-start !important; - } - .align-content-xl-end { - -ms-flex-line-pack: end !important; - align-content: flex-end !important; - } - .align-content-xl-center { - -ms-flex-line-pack: center !important; - align-content: center !important; - } - .align-content-xl-between { - -ms-flex-line-pack: justify !important; - align-content: space-between !important; - } - .align-content-xl-around { - -ms-flex-line-pack: distribute !important; - align-content: space-around !important; - } - .align-content-xl-stretch { - -ms-flex-line-pack: stretch !important; - align-content: stretch !important; - } - .align-self-xl-auto { - -ms-flex-item-align: auto !important; - align-self: auto !important; - } - .align-self-xl-start { - -ms-flex-item-align: start !important; - align-self: flex-start !important; - } - .align-self-xl-end { - -ms-flex-item-align: end !important; - align-self: flex-end !important; - } - .align-self-xl-center { - -ms-flex-item-align: center !important; - align-self: center !important; - } - .align-self-xl-baseline { - -ms-flex-item-align: baseline !important; - align-self: baseline !important; - } - .align-self-xl-stretch { - -ms-flex-item-align: stretch !important; - align-self: stretch !important; - } -} - -.m-0 { - margin: 0 !important; -} - -.mt-0, -.my-0 { - margin-top: 0 !important; -} - -.mr-0, -.mx-0 { - margin-right: 0 !important; -} - -.mb-0, -.my-0 { - margin-bottom: 0 !important; -} - -.ml-0, -.mx-0 { - margin-left: 0 !important; -} - -.m-1 { - margin: 0.25rem !important; -} - -.mt-1, -.my-1 { - margin-top: 0.25rem !important; -} - -.mr-1, -.mx-1 { - margin-right: 0.25rem !important; -} - -.mb-1, -.my-1 { - margin-bottom: 0.25rem !important; -} - -.ml-1, -.mx-1 { - margin-left: 0.25rem !important; -} - -.m-2 { - margin: 0.5rem !important; -} - -.mt-2, -.my-2 { - margin-top: 0.5rem !important; -} - -.mr-2, -.mx-2 { - margin-right: 0.5rem !important; -} - -.mb-2, -.my-2 { - margin-bottom: 0.5rem !important; -} - -.ml-2, -.mx-2 { - margin-left: 0.5rem !important; -} - -.m-3 { - margin: 1rem !important; -} - -.mt-3, -.my-3 { - margin-top: 1rem !important; -} - -.mr-3, -.mx-3 { - margin-right: 1rem !important; -} - -.mb-3, -.my-3 { - margin-bottom: 1rem !important; -} - -.ml-3, -.mx-3 { - margin-left: 1rem !important; -} - -.m-4 { - margin: 1.5rem !important; -} - -.mt-4, -.my-4 { - margin-top: 1.5rem !important; -} - -.mr-4, -.mx-4 { - margin-right: 1.5rem !important; -} - -.mb-4, -.my-4 { - margin-bottom: 1.5rem !important; -} - -.ml-4, -.mx-4 { - margin-left: 1.5rem !important; -} - -.m-5 { - margin: 3rem !important; -} - -.mt-5, -.my-5 { - margin-top: 3rem !important; -} - -.mr-5, -.mx-5 { - margin-right: 3rem !important; -} - -.mb-5, -.my-5 { - margin-bottom: 3rem !important; -} - -.ml-5, -.mx-5 { - margin-left: 3rem !important; -} - -.p-0 { - padding: 0 !important; -} - -.pt-0, -.py-0 { - padding-top: 0 !important; -} - -.pr-0, -.px-0 { - padding-right: 0 !important; -} - -.pb-0, -.py-0 { - padding-bottom: 0 !important; -} - -.pl-0, -.px-0 { - padding-left: 0 !important; -} - -.p-1 { - padding: 0.25rem !important; -} - -.pt-1, -.py-1 { - padding-top: 0.25rem !important; -} - -.pr-1, -.px-1 { - padding-right: 0.25rem !important; -} - -.pb-1, -.py-1 { - padding-bottom: 0.25rem !important; -} - -.pl-1, -.px-1 { - padding-left: 0.25rem !important; -} - -.p-2 { - padding: 0.5rem !important; -} - -.pt-2, -.py-2 { - padding-top: 0.5rem !important; -} - -.pr-2, -.px-2 { - padding-right: 0.5rem !important; -} - -.pb-2, -.py-2 { - padding-bottom: 0.5rem !important; -} - -.pl-2, -.px-2 { - padding-left: 0.5rem !important; -} - -.p-3 { - padding: 1rem !important; -} - -.pt-3, -.py-3 { - padding-top: 1rem !important; -} - -.pr-3, -.px-3 { - padding-right: 1rem !important; -} - -.pb-3, -.py-3 { - padding-bottom: 1rem !important; -} - -.pl-3, -.px-3 { - padding-left: 1rem !important; -} - -.p-4 { - padding: 1.5rem !important; -} - -.pt-4, -.py-4 { - padding-top: 1.5rem !important; -} - -.pr-4, -.px-4 { - padding-right: 1.5rem !important; -} - -.pb-4, -.py-4 { - padding-bottom: 1.5rem !important; -} - -.pl-4, -.px-4 { - padding-left: 1.5rem !important; -} - -.p-5 { - padding: 3rem !important; -} - -.pt-5, -.py-5 { - padding-top: 3rem !important; -} - -.pr-5, -.px-5 { - padding-right: 3rem !important; -} - -.pb-5, -.py-5 { - padding-bottom: 3rem !important; -} - -.pl-5, -.px-5 { - padding-left: 3rem !important; -} - -.m-n1 { - margin: -0.25rem !important; -} - -.mt-n1, -.my-n1 { - margin-top: -0.25rem !important; -} - -.mr-n1, -.mx-n1 { - margin-right: -0.25rem !important; -} - -.mb-n1, -.my-n1 { - margin-bottom: -0.25rem !important; -} - -.ml-n1, -.mx-n1 { - margin-left: -0.25rem !important; -} - -.m-n2 { - margin: -0.5rem !important; -} - -.mt-n2, -.my-n2 { - margin-top: -0.5rem !important; -} - -.mr-n2, -.mx-n2 { - margin-right: -0.5rem !important; -} - -.mb-n2, -.my-n2 { - margin-bottom: -0.5rem !important; -} - -.ml-n2, -.mx-n2 { - margin-left: -0.5rem !important; -} - -.m-n3 { - margin: -1rem !important; -} - -.mt-n3, -.my-n3 { - margin-top: -1rem !important; -} - -.mr-n3, -.mx-n3 { - margin-right: -1rem !important; -} - -.mb-n3, -.my-n3 { - margin-bottom: -1rem !important; -} - -.ml-n3, -.mx-n3 { - margin-left: -1rem !important; -} - -.m-n4 { - margin: -1.5rem !important; -} - -.mt-n4, -.my-n4 { - margin-top: -1.5rem !important; -} - -.mr-n4, -.mx-n4 { - margin-right: -1.5rem !important; -} - -.mb-n4, -.my-n4 { - margin-bottom: -1.5rem !important; -} - -.ml-n4, -.mx-n4 { - margin-left: -1.5rem !important; -} - -.m-n5 { - margin: -3rem !important; -} - -.mt-n5, -.my-n5 { - margin-top: -3rem !important; -} - -.mr-n5, -.mx-n5 { - margin-right: -3rem !important; -} - -.mb-n5, -.my-n5 { - margin-bottom: -3rem !important; -} - -.ml-n5, -.mx-n5 { - margin-left: -3rem !important; -} - -.m-auto { - margin: auto !important; -} - -.mt-auto, -.my-auto { - margin-top: auto !important; -} - -.mr-auto, -.mx-auto { - margin-right: auto !important; -} - -.mb-auto, -.my-auto { - margin-bottom: auto !important; -} - -.ml-auto, -.mx-auto { - margin-left: auto !important; -} - -@media (min-width: 576px) { - .m-sm-0 { - margin: 0 !important; - } - .mt-sm-0, - .my-sm-0 { - margin-top: 0 !important; - } - .mr-sm-0, - .mx-sm-0 { - margin-right: 0 !important; - } - .mb-sm-0, - .my-sm-0 { - margin-bottom: 0 !important; - } - .ml-sm-0, - .mx-sm-0 { - margin-left: 0 !important; - } - .m-sm-1 { - margin: 0.25rem !important; - } - .mt-sm-1, - .my-sm-1 { - margin-top: 0.25rem !important; - } - .mr-sm-1, - .mx-sm-1 { - margin-right: 0.25rem !important; - } - .mb-sm-1, - .my-sm-1 { - margin-bottom: 0.25rem !important; - } - .ml-sm-1, - .mx-sm-1 { - margin-left: 0.25rem !important; - } - .m-sm-2 { - margin: 0.5rem !important; - } - .mt-sm-2, - .my-sm-2 { - margin-top: 0.5rem !important; - } - .mr-sm-2, - .mx-sm-2 { - margin-right: 0.5rem !important; - } - .mb-sm-2, - .my-sm-2 { - margin-bottom: 0.5rem !important; - } - .ml-sm-2, - .mx-sm-2 { - margin-left: 0.5rem !important; - } - .m-sm-3 { - margin: 1rem !important; - } - .mt-sm-3, - .my-sm-3 { - margin-top: 1rem !important; - } - .mr-sm-3, - .mx-sm-3 { - margin-right: 1rem !important; - } - .mb-sm-3, - .my-sm-3 { - margin-bottom: 1rem !important; - } - .ml-sm-3, - .mx-sm-3 { - margin-left: 1rem !important; - } - .m-sm-4 { - margin: 1.5rem !important; - } - .mt-sm-4, - .my-sm-4 { - margin-top: 1.5rem !important; - } - .mr-sm-4, - .mx-sm-4 { - margin-right: 1.5rem !important; - } - .mb-sm-4, - .my-sm-4 { - margin-bottom: 1.5rem !important; - } - .ml-sm-4, - .mx-sm-4 { - margin-left: 1.5rem !important; - } - .m-sm-5 { - margin: 3rem !important; - } - .mt-sm-5, - .my-sm-5 { - margin-top: 3rem !important; - } - .mr-sm-5, - .mx-sm-5 { - margin-right: 3rem !important; - } - .mb-sm-5, - .my-sm-5 { - margin-bottom: 3rem !important; - } - .ml-sm-5, - .mx-sm-5 { - margin-left: 3rem !important; - } - .p-sm-0 { - padding: 0 !important; - } - .pt-sm-0, - .py-sm-0 { - padding-top: 0 !important; - } - .pr-sm-0, - .px-sm-0 { - padding-right: 0 !important; - } - .pb-sm-0, - .py-sm-0 { - padding-bottom: 0 !important; - } - .pl-sm-0, - .px-sm-0 { - padding-left: 0 !important; - } - .p-sm-1 { - padding: 0.25rem !important; - } - .pt-sm-1, - .py-sm-1 { - padding-top: 0.25rem !important; - } - .pr-sm-1, - .px-sm-1 { - padding-right: 0.25rem !important; - } - .pb-sm-1, - .py-sm-1 { - padding-bottom: 0.25rem !important; - } - .pl-sm-1, - .px-sm-1 { - padding-left: 0.25rem !important; - } - .p-sm-2 { - padding: 0.5rem !important; - } - .pt-sm-2, - .py-sm-2 { - padding-top: 0.5rem !important; - } - .pr-sm-2, - .px-sm-2 { - padding-right: 0.5rem !important; - } - .pb-sm-2, - .py-sm-2 { - padding-bottom: 0.5rem !important; - } - .pl-sm-2, - .px-sm-2 { - padding-left: 0.5rem !important; - } - .p-sm-3 { - padding: 1rem !important; - } - .pt-sm-3, - .py-sm-3 { - padding-top: 1rem !important; - } - .pr-sm-3, - .px-sm-3 { - padding-right: 1rem !important; - } - .pb-sm-3, - .py-sm-3 { - padding-bottom: 1rem !important; - } - .pl-sm-3, - .px-sm-3 { - padding-left: 1rem !important; - } - .p-sm-4 { - padding: 1.5rem !important; - } - .pt-sm-4, - .py-sm-4 { - padding-top: 1.5rem !important; - } - .pr-sm-4, - .px-sm-4 { - padding-right: 1.5rem !important; - } - .pb-sm-4, - .py-sm-4 { - padding-bottom: 1.5rem !important; - } - .pl-sm-4, - .px-sm-4 { - padding-left: 1.5rem !important; - } - .p-sm-5 { - padding: 3rem !important; - } - .pt-sm-5, - .py-sm-5 { - padding-top: 3rem !important; - } - .pr-sm-5, - .px-sm-5 { - padding-right: 3rem !important; - } - .pb-sm-5, - .py-sm-5 { - padding-bottom: 3rem !important; - } - .pl-sm-5, - .px-sm-5 { - padding-left: 3rem !important; - } - .m-sm-n1 { - margin: -0.25rem !important; - } - .mt-sm-n1, - .my-sm-n1 { - margin-top: -0.25rem !important; - } - .mr-sm-n1, - .mx-sm-n1 { - margin-right: -0.25rem !important; - } - .mb-sm-n1, - .my-sm-n1 { - margin-bottom: -0.25rem !important; - } - .ml-sm-n1, - .mx-sm-n1 { - margin-left: -0.25rem !important; - } - .m-sm-n2 { - margin: -0.5rem !important; - } - .mt-sm-n2, - .my-sm-n2 { - margin-top: -0.5rem !important; - } - .mr-sm-n2, - .mx-sm-n2 { - margin-right: -0.5rem !important; - } - .mb-sm-n2, - .my-sm-n2 { - margin-bottom: -0.5rem !important; - } - .ml-sm-n2, - .mx-sm-n2 { - margin-left: -0.5rem !important; - } - .m-sm-n3 { - margin: -1rem !important; - } - .mt-sm-n3, - .my-sm-n3 { - margin-top: -1rem !important; - } - .mr-sm-n3, - .mx-sm-n3 { - margin-right: -1rem !important; - } - .mb-sm-n3, - .my-sm-n3 { - margin-bottom: -1rem !important; - } - .ml-sm-n3, - .mx-sm-n3 { - margin-left: -1rem !important; - } - .m-sm-n4 { - margin: -1.5rem !important; - } - .mt-sm-n4, - .my-sm-n4 { - margin-top: -1.5rem !important; - } - .mr-sm-n4, - .mx-sm-n4 { - margin-right: -1.5rem !important; - } - .mb-sm-n4, - .my-sm-n4 { - margin-bottom: -1.5rem !important; - } - .ml-sm-n4, - .mx-sm-n4 { - margin-left: -1.5rem !important; - } - .m-sm-n5 { - margin: -3rem !important; - } - .mt-sm-n5, - .my-sm-n5 { - margin-top: -3rem !important; - } - .mr-sm-n5, - .mx-sm-n5 { - margin-right: -3rem !important; - } - .mb-sm-n5, - .my-sm-n5 { - margin-bottom: -3rem !important; - } - .ml-sm-n5, - .mx-sm-n5 { - margin-left: -3rem !important; - } - .m-sm-auto { - margin: auto !important; - } - .mt-sm-auto, - .my-sm-auto { - margin-top: auto !important; - } - .mr-sm-auto, - .mx-sm-auto { - margin-right: auto !important; - } - .mb-sm-auto, - .my-sm-auto { - margin-bottom: auto !important; - } - .ml-sm-auto, - .mx-sm-auto { - margin-left: auto !important; - } -} - -@media (min-width: 768px) { - .m-md-0 { - margin: 0 !important; - } - .mt-md-0, - .my-md-0 { - margin-top: 0 !important; - } - .mr-md-0, - .mx-md-0 { - margin-right: 0 !important; - } - .mb-md-0, - .my-md-0 { - margin-bottom: 0 !important; - } - .ml-md-0, - .mx-md-0 { - margin-left: 0 !important; - } - .m-md-1 { - margin: 0.25rem !important; - } - .mt-md-1, - .my-md-1 { - margin-top: 0.25rem !important; - } - .mr-md-1, - .mx-md-1 { - margin-right: 0.25rem !important; - } - .mb-md-1, - .my-md-1 { - margin-bottom: 0.25rem !important; - } - .ml-md-1, - .mx-md-1 { - margin-left: 0.25rem !important; - } - .m-md-2 { - margin: 0.5rem !important; - } - .mt-md-2, - .my-md-2 { - margin-top: 0.5rem !important; - } - .mr-md-2, - .mx-md-2 { - margin-right: 0.5rem !important; - } - .mb-md-2, - .my-md-2 { - margin-bottom: 0.5rem !important; - } - .ml-md-2, - .mx-md-2 { - margin-left: 0.5rem !important; - } - .m-md-3 { - margin: 1rem !important; - } - .mt-md-3, - .my-md-3 { - margin-top: 1rem !important; - } - .mr-md-3, - .mx-md-3 { - margin-right: 1rem !important; - } - .mb-md-3, - .my-md-3 { - margin-bottom: 1rem !important; - } - .ml-md-3, - .mx-md-3 { - margin-left: 1rem !important; - } - .m-md-4 { - margin: 1.5rem !important; - } - .mt-md-4, - .my-md-4 { - margin-top: 1.5rem !important; - } - .mr-md-4, - .mx-md-4 { - margin-right: 1.5rem !important; - } - .mb-md-4, - .my-md-4 { - margin-bottom: 1.5rem !important; - } - .ml-md-4, - .mx-md-4 { - margin-left: 1.5rem !important; - } - .m-md-5 { - margin: 3rem !important; - } - .mt-md-5, - .my-md-5 { - margin-top: 3rem !important; - } - .mr-md-5, - .mx-md-5 { - margin-right: 3rem !important; - } - .mb-md-5, - .my-md-5 { - margin-bottom: 3rem !important; - } - .ml-md-5, - .mx-md-5 { - margin-left: 3rem !important; - } - .p-md-0 { - padding: 0 !important; - } - .pt-md-0, - .py-md-0 { - padding-top: 0 !important; - } - .pr-md-0, - .px-md-0 { - padding-right: 0 !important; - } - .pb-md-0, - .py-md-0 { - padding-bottom: 0 !important; - } - .pl-md-0, - .px-md-0 { - padding-left: 0 !important; - } - .p-md-1 { - padding: 0.25rem !important; - } - .pt-md-1, - .py-md-1 { - padding-top: 0.25rem !important; - } - .pr-md-1, - .px-md-1 { - padding-right: 0.25rem !important; - } - .pb-md-1, - .py-md-1 { - padding-bottom: 0.25rem !important; - } - .pl-md-1, - .px-md-1 { - padding-left: 0.25rem !important; - } - .p-md-2 { - padding: 0.5rem !important; - } - .pt-md-2, - .py-md-2 { - padding-top: 0.5rem !important; - } - .pr-md-2, - .px-md-2 { - padding-right: 0.5rem !important; - } - .pb-md-2, - .py-md-2 { - padding-bottom: 0.5rem !important; - } - .pl-md-2, - .px-md-2 { - padding-left: 0.5rem !important; - } - .p-md-3 { - padding: 1rem !important; - } - .pt-md-3, - .py-md-3 { - padding-top: 1rem !important; - } - .pr-md-3, - .px-md-3 { - padding-right: 1rem !important; - } - .pb-md-3, - .py-md-3 { - padding-bottom: 1rem !important; - } - .pl-md-3, - .px-md-3 { - padding-left: 1rem !important; - } - .p-md-4 { - padding: 1.5rem !important; - } - .pt-md-4, - .py-md-4 { - padding-top: 1.5rem !important; - } - .pr-md-4, - .px-md-4 { - padding-right: 1.5rem !important; - } - .pb-md-4, - .py-md-4 { - padding-bottom: 1.5rem !important; - } - .pl-md-4, - .px-md-4 { - padding-left: 1.5rem !important; - } - .p-md-5 { - padding: 3rem !important; - } - .pt-md-5, - .py-md-5 { - padding-top: 3rem !important; - } - .pr-md-5, - .px-md-5 { - padding-right: 3rem !important; - } - .pb-md-5, - .py-md-5 { - padding-bottom: 3rem !important; - } - .pl-md-5, - .px-md-5 { - padding-left: 3rem !important; - } - .m-md-n1 { - margin: -0.25rem !important; - } - .mt-md-n1, - .my-md-n1 { - margin-top: -0.25rem !important; - } - .mr-md-n1, - .mx-md-n1 { - margin-right: -0.25rem !important; - } - .mb-md-n1, - .my-md-n1 { - margin-bottom: -0.25rem !important; - } - .ml-md-n1, - .mx-md-n1 { - margin-left: -0.25rem !important; - } - .m-md-n2 { - margin: -0.5rem !important; - } - .mt-md-n2, - .my-md-n2 { - margin-top: -0.5rem !important; - } - .mr-md-n2, - .mx-md-n2 { - margin-right: -0.5rem !important; - } - .mb-md-n2, - .my-md-n2 { - margin-bottom: -0.5rem !important; - } - .ml-md-n2, - .mx-md-n2 { - margin-left: -0.5rem !important; - } - .m-md-n3 { - margin: -1rem !important; - } - .mt-md-n3, - .my-md-n3 { - margin-top: -1rem !important; - } - .mr-md-n3, - .mx-md-n3 { - margin-right: -1rem !important; - } - .mb-md-n3, - .my-md-n3 { - margin-bottom: -1rem !important; - } - .ml-md-n3, - .mx-md-n3 { - margin-left: -1rem !important; - } - .m-md-n4 { - margin: -1.5rem !important; - } - .mt-md-n4, - .my-md-n4 { - margin-top: -1.5rem !important; - } - .mr-md-n4, - .mx-md-n4 { - margin-right: -1.5rem !important; - } - .mb-md-n4, - .my-md-n4 { - margin-bottom: -1.5rem !important; - } - .ml-md-n4, - .mx-md-n4 { - margin-left: -1.5rem !important; - } - .m-md-n5 { - margin: -3rem !important; - } - .mt-md-n5, - .my-md-n5 { - margin-top: -3rem !important; - } - .mr-md-n5, - .mx-md-n5 { - margin-right: -3rem !important; - } - .mb-md-n5, - .my-md-n5 { - margin-bottom: -3rem !important; - } - .ml-md-n5, - .mx-md-n5 { - margin-left: -3rem !important; - } - .m-md-auto { - margin: auto !important; - } - .mt-md-auto, - .my-md-auto { - margin-top: auto !important; - } - .mr-md-auto, - .mx-md-auto { - margin-right: auto !important; - } - .mb-md-auto, - .my-md-auto { - margin-bottom: auto !important; - } - .ml-md-auto, - .mx-md-auto { - margin-left: auto !important; - } -} - -@media (min-width: 992px) { - .m-lg-0 { - margin: 0 !important; - } - .mt-lg-0, - .my-lg-0 { - margin-top: 0 !important; - } - .mr-lg-0, - .mx-lg-0 { - margin-right: 0 !important; - } - .mb-lg-0, - .my-lg-0 { - margin-bottom: 0 !important; - } - .ml-lg-0, - .mx-lg-0 { - margin-left: 0 !important; - } - .m-lg-1 { - margin: 0.25rem !important; - } - .mt-lg-1, - .my-lg-1 { - margin-top: 0.25rem !important; - } - .mr-lg-1, - .mx-lg-1 { - margin-right: 0.25rem !important; - } - .mb-lg-1, - .my-lg-1 { - margin-bottom: 0.25rem !important; - } - .ml-lg-1, - .mx-lg-1 { - margin-left: 0.25rem !important; - } - .m-lg-2 { - margin: 0.5rem !important; - } - .mt-lg-2, - .my-lg-2 { - margin-top: 0.5rem !important; - } - .mr-lg-2, - .mx-lg-2 { - margin-right: 0.5rem !important; - } - .mb-lg-2, - .my-lg-2 { - margin-bottom: 0.5rem !important; - } - .ml-lg-2, - .mx-lg-2 { - margin-left: 0.5rem !important; - } - .m-lg-3 { - margin: 1rem !important; - } - .mt-lg-3, - .my-lg-3 { - margin-top: 1rem !important; - } - .mr-lg-3, - .mx-lg-3 { - margin-right: 1rem !important; - } - .mb-lg-3, - .my-lg-3 { - margin-bottom: 1rem !important; - } - .ml-lg-3, - .mx-lg-3 { - margin-left: 1rem !important; - } - .m-lg-4 { - margin: 1.5rem !important; - } - .mt-lg-4, - .my-lg-4 { - margin-top: 1.5rem !important; - } - .mr-lg-4, - .mx-lg-4 { - margin-right: 1.5rem !important; - } - .mb-lg-4, - .my-lg-4 { - margin-bottom: 1.5rem !important; - } - .ml-lg-4, - .mx-lg-4 { - margin-left: 1.5rem !important; - } - .m-lg-5 { - margin: 3rem !important; - } - .mt-lg-5, - .my-lg-5 { - margin-top: 3rem !important; - } - .mr-lg-5, - .mx-lg-5 { - margin-right: 3rem !important; - } - .mb-lg-5, - .my-lg-5 { - margin-bottom: 3rem !important; - } - .ml-lg-5, - .mx-lg-5 { - margin-left: 3rem !important; - } - .p-lg-0 { - padding: 0 !important; - } - .pt-lg-0, - .py-lg-0 { - padding-top: 0 !important; - } - .pr-lg-0, - .px-lg-0 { - padding-right: 0 !important; - } - .pb-lg-0, - .py-lg-0 { - padding-bottom: 0 !important; - } - .pl-lg-0, - .px-lg-0 { - padding-left: 0 !important; - } - .p-lg-1 { - padding: 0.25rem !important; - } - .pt-lg-1, - .py-lg-1 { - padding-top: 0.25rem !important; - } - .pr-lg-1, - .px-lg-1 { - padding-right: 0.25rem !important; - } - .pb-lg-1, - .py-lg-1 { - padding-bottom: 0.25rem !important; - } - .pl-lg-1, - .px-lg-1 { - padding-left: 0.25rem !important; - } - .p-lg-2 { - padding: 0.5rem !important; - } - .pt-lg-2, - .py-lg-2 { - padding-top: 0.5rem !important; - } - .pr-lg-2, - .px-lg-2 { - padding-right: 0.5rem !important; - } - .pb-lg-2, - .py-lg-2 { - padding-bottom: 0.5rem !important; - } - .pl-lg-2, - .px-lg-2 { - padding-left: 0.5rem !important; - } - .p-lg-3 { - padding: 1rem !important; - } - .pt-lg-3, - .py-lg-3 { - padding-top: 1rem !important; - } - .pr-lg-3, - .px-lg-3 { - padding-right: 1rem !important; - } - .pb-lg-3, - .py-lg-3 { - padding-bottom: 1rem !important; - } - .pl-lg-3, - .px-lg-3 { - padding-left: 1rem !important; - } - .p-lg-4 { - padding: 1.5rem !important; - } - .pt-lg-4, - .py-lg-4 { - padding-top: 1.5rem !important; - } - .pr-lg-4, - .px-lg-4 { - padding-right: 1.5rem !important; - } - .pb-lg-4, - .py-lg-4 { - padding-bottom: 1.5rem !important; - } - .pl-lg-4, - .px-lg-4 { - padding-left: 1.5rem !important; - } - .p-lg-5 { - padding: 3rem !important; - } - .pt-lg-5, - .py-lg-5 { - padding-top: 3rem !important; - } - .pr-lg-5, - .px-lg-5 { - padding-right: 3rem !important; - } - .pb-lg-5, - .py-lg-5 { - padding-bottom: 3rem !important; - } - .pl-lg-5, - .px-lg-5 { - padding-left: 3rem !important; - } - .m-lg-n1 { - margin: -0.25rem !important; - } - .mt-lg-n1, - .my-lg-n1 { - margin-top: -0.25rem !important; - } - .mr-lg-n1, - .mx-lg-n1 { - margin-right: -0.25rem !important; - } - .mb-lg-n1, - .my-lg-n1 { - margin-bottom: -0.25rem !important; - } - .ml-lg-n1, - .mx-lg-n1 { - margin-left: -0.25rem !important; - } - .m-lg-n2 { - margin: -0.5rem !important; - } - .mt-lg-n2, - .my-lg-n2 { - margin-top: -0.5rem !important; - } - .mr-lg-n2, - .mx-lg-n2 { - margin-right: -0.5rem !important; - } - .mb-lg-n2, - .my-lg-n2 { - margin-bottom: -0.5rem !important; - } - .ml-lg-n2, - .mx-lg-n2 { - margin-left: -0.5rem !important; - } - .m-lg-n3 { - margin: -1rem !important; - } - .mt-lg-n3, - .my-lg-n3 { - margin-top: -1rem !important; - } - .mr-lg-n3, - .mx-lg-n3 { - margin-right: -1rem !important; - } - .mb-lg-n3, - .my-lg-n3 { - margin-bottom: -1rem !important; - } - .ml-lg-n3, - .mx-lg-n3 { - margin-left: -1rem !important; - } - .m-lg-n4 { - margin: -1.5rem !important; - } - .mt-lg-n4, - .my-lg-n4 { - margin-top: -1.5rem !important; - } - .mr-lg-n4, - .mx-lg-n4 { - margin-right: -1.5rem !important; - } - .mb-lg-n4, - .my-lg-n4 { - margin-bottom: -1.5rem !important; - } - .ml-lg-n4, - .mx-lg-n4 { - margin-left: -1.5rem !important; - } - .m-lg-n5 { - margin: -3rem !important; - } - .mt-lg-n5, - .my-lg-n5 { - margin-top: -3rem !important; - } - .mr-lg-n5, - .mx-lg-n5 { - margin-right: -3rem !important; - } - .mb-lg-n5, - .my-lg-n5 { - margin-bottom: -3rem !important; - } - .ml-lg-n5, - .mx-lg-n5 { - margin-left: -3rem !important; - } - .m-lg-auto { - margin: auto !important; - } - .mt-lg-auto, - .my-lg-auto { - margin-top: auto !important; - } - .mr-lg-auto, - .mx-lg-auto { - margin-right: auto !important; - } - .mb-lg-auto, - .my-lg-auto { - margin-bottom: auto !important; - } - .ml-lg-auto, - .mx-lg-auto { - margin-left: auto !important; - } -} - -@media (min-width: 1200px) { - .m-xl-0 { - margin: 0 !important; - } - .mt-xl-0, - .my-xl-0 { - margin-top: 0 !important; - } - .mr-xl-0, - .mx-xl-0 { - margin-right: 0 !important; - } - .mb-xl-0, - .my-xl-0 { - margin-bottom: 0 !important; - } - .ml-xl-0, - .mx-xl-0 { - margin-left: 0 !important; - } - .m-xl-1 { - margin: 0.25rem !important; - } - .mt-xl-1, - .my-xl-1 { - margin-top: 0.25rem !important; - } - .mr-xl-1, - .mx-xl-1 { - margin-right: 0.25rem !important; - } - .mb-xl-1, - .my-xl-1 { - margin-bottom: 0.25rem !important; - } - .ml-xl-1, - .mx-xl-1 { - margin-left: 0.25rem !important; - } - .m-xl-2 { - margin: 0.5rem !important; - } - .mt-xl-2, - .my-xl-2 { - margin-top: 0.5rem !important; - } - .mr-xl-2, - .mx-xl-2 { - margin-right: 0.5rem !important; - } - .mb-xl-2, - .my-xl-2 { - margin-bottom: 0.5rem !important; - } - .ml-xl-2, - .mx-xl-2 { - margin-left: 0.5rem !important; - } - .m-xl-3 { - margin: 1rem !important; - } - .mt-xl-3, - .my-xl-3 { - margin-top: 1rem !important; - } - .mr-xl-3, - .mx-xl-3 { - margin-right: 1rem !important; - } - .mb-xl-3, - .my-xl-3 { - margin-bottom: 1rem !important; - } - .ml-xl-3, - .mx-xl-3 { - margin-left: 1rem !important; - } - .m-xl-4 { - margin: 1.5rem !important; - } - .mt-xl-4, - .my-xl-4 { - margin-top: 1.5rem !important; - } - .mr-xl-4, - .mx-xl-4 { - margin-right: 1.5rem !important; - } - .mb-xl-4, - .my-xl-4 { - margin-bottom: 1.5rem !important; - } - .ml-xl-4, - .mx-xl-4 { - margin-left: 1.5rem !important; - } - .m-xl-5 { - margin: 3rem !important; - } - .mt-xl-5, - .my-xl-5 { - margin-top: 3rem !important; - } - .mr-xl-5, - .mx-xl-5 { - margin-right: 3rem !important; - } - .mb-xl-5, - .my-xl-5 { - margin-bottom: 3rem !important; - } - .ml-xl-5, - .mx-xl-5 { - margin-left: 3rem !important; - } - .p-xl-0 { - padding: 0 !important; - } - .pt-xl-0, - .py-xl-0 { - padding-top: 0 !important; - } - .pr-xl-0, - .px-xl-0 { - padding-right: 0 !important; - } - .pb-xl-0, - .py-xl-0 { - padding-bottom: 0 !important; - } - .pl-xl-0, - .px-xl-0 { - padding-left: 0 !important; - } - .p-xl-1 { - padding: 0.25rem !important; - } - .pt-xl-1, - .py-xl-1 { - padding-top: 0.25rem !important; - } - .pr-xl-1, - .px-xl-1 { - padding-right: 0.25rem !important; - } - .pb-xl-1, - .py-xl-1 { - padding-bottom: 0.25rem !important; - } - .pl-xl-1, - .px-xl-1 { - padding-left: 0.25rem !important; - } - .p-xl-2 { - padding: 0.5rem !important; - } - .pt-xl-2, - .py-xl-2 { - padding-top: 0.5rem !important; - } - .pr-xl-2, - .px-xl-2 { - padding-right: 0.5rem !important; - } - .pb-xl-2, - .py-xl-2 { - padding-bottom: 0.5rem !important; - } - .pl-xl-2, - .px-xl-2 { - padding-left: 0.5rem !important; - } - .p-xl-3 { - padding: 1rem !important; - } - .pt-xl-3, - .py-xl-3 { - padding-top: 1rem !important; - } - .pr-xl-3, - .px-xl-3 { - padding-right: 1rem !important; - } - .pb-xl-3, - .py-xl-3 { - padding-bottom: 1rem !important; - } - .pl-xl-3, - .px-xl-3 { - padding-left: 1rem !important; - } - .p-xl-4 { - padding: 1.5rem !important; - } - .pt-xl-4, - .py-xl-4 { - padding-top: 1.5rem !important; - } - .pr-xl-4, - .px-xl-4 { - padding-right: 1.5rem !important; - } - .pb-xl-4, - .py-xl-4 { - padding-bottom: 1.5rem !important; - } - .pl-xl-4, - .px-xl-4 { - padding-left: 1.5rem !important; - } - .p-xl-5 { - padding: 3rem !important; - } - .pt-xl-5, - .py-xl-5 { - padding-top: 3rem !important; - } - .pr-xl-5, - .px-xl-5 { - padding-right: 3rem !important; - } - .pb-xl-5, - .py-xl-5 { - padding-bottom: 3rem !important; - } - .pl-xl-5, - .px-xl-5 { - padding-left: 3rem !important; - } - .m-xl-n1 { - margin: -0.25rem !important; - } - .mt-xl-n1, - .my-xl-n1 { - margin-top: -0.25rem !important; - } - .mr-xl-n1, - .mx-xl-n1 { - margin-right: -0.25rem !important; - } - .mb-xl-n1, - .my-xl-n1 { - margin-bottom: -0.25rem !important; - } - .ml-xl-n1, - .mx-xl-n1 { - margin-left: -0.25rem !important; - } - .m-xl-n2 { - margin: -0.5rem !important; - } - .mt-xl-n2, - .my-xl-n2 { - margin-top: -0.5rem !important; - } - .mr-xl-n2, - .mx-xl-n2 { - margin-right: -0.5rem !important; - } - .mb-xl-n2, - .my-xl-n2 { - margin-bottom: -0.5rem !important; - } - .ml-xl-n2, - .mx-xl-n2 { - margin-left: -0.5rem !important; - } - .m-xl-n3 { - margin: -1rem !important; - } - .mt-xl-n3, - .my-xl-n3 { - margin-top: -1rem !important; - } - .mr-xl-n3, - .mx-xl-n3 { - margin-right: -1rem !important; - } - .mb-xl-n3, - .my-xl-n3 { - margin-bottom: -1rem !important; - } - .ml-xl-n3, - .mx-xl-n3 { - margin-left: -1rem !important; - } - .m-xl-n4 { - margin: -1.5rem !important; - } - .mt-xl-n4, - .my-xl-n4 { - margin-top: -1.5rem !important; - } - .mr-xl-n4, - .mx-xl-n4 { - margin-right: -1.5rem !important; - } - .mb-xl-n4, - .my-xl-n4 { - margin-bottom: -1.5rem !important; - } - .ml-xl-n4, - .mx-xl-n4 { - margin-left: -1.5rem !important; - } - .m-xl-n5 { - margin: -3rem !important; - } - .mt-xl-n5, - .my-xl-n5 { - margin-top: -3rem !important; - } - .mr-xl-n5, - .mx-xl-n5 { - margin-right: -3rem !important; - } - .mb-xl-n5, - .my-xl-n5 { - margin-bottom: -3rem !important; - } - .ml-xl-n5, - .mx-xl-n5 { - margin-left: -3rem !important; - } - .m-xl-auto { - margin: auto !important; - } - .mt-xl-auto, - .my-xl-auto { - margin-top: auto !important; - } - .mr-xl-auto, - .mx-xl-auto { - margin-right: auto !important; - } - .mb-xl-auto, - .my-xl-auto { - margin-bottom: auto !important; - } - .ml-xl-auto, - .mx-xl-auto { - margin-left: auto !important; - } -} -/*# sourceMappingURL=bootstrap-grid.css.map */ \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-grid.css.map b/maxkey-web-mgt-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-grid.css.map deleted file mode 100644 index 8661e3e3..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-grid.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../scss/bootstrap-grid.scss","bootstrap-grid.css","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/_variables.scss","../../scss/mixins/_grid-framework.scss","../../scss/utilities/_display.scss","../../scss/utilities/_flex.scss","../../scss/utilities/_spacing.scss"],"names":[],"mappings":"AAAA;;;;;ECKE;ADEF;EACE,sBAAsB;EACtB,6BAA6B;ACA/B;;ADGA;;;EAGE,mBAAmB;ACArB;;ACTE;ECDA,WAAW;EACX,mBAA0B;EAC1B,kBAAyB;EACzB,kBAAkB;EAClB,iBAAiB;AFcnB;;AGqCI;EFtDF;ICWI,gBEqMK;EJ1LT;AACF;;AG+BI;EFtDF;ICWI,gBEsMK;EJrLT;AACF;;AGyBI;EFtDF;ICWI,gBEuMK;EJhLT;AACF;;AGmBI;EFtDF;ICWI,iBEwMM;EJ3KV;AACF;;ACnCE;ECPA,WAAW;EACX,mBAA0B;EAC1B,kBAAyB;EACzB,kBAAkB;EAClB,iBAAiB;AF8CnB;;AGKI;EFrCE;IACE,gBG8LG;EJ1JT;AACF;;AGDI;EFrCE;IACE,gBG+LG;EJrJT;AACF;;AGPI;EFrCE;IACE,gBGgMG;EJhJT;AACF;;AGbI;EFrCE;IACE,iBGiMI;EJ3IV;AACF;;ACnCE;ECrBA,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,mBAA0B;EAC1B,kBAAyB;AF4D3B;;ACpCE;EACE,eAAe;EACf,cAAc;ADuClB;;ACzCE;;EAMI,gBAAgB;EAChB,eAAe;ADwCrB;;AK1FE;;;;;;EACE,kBAAkB;EAClB,WAAW;EACX,mBAA0B;EAC1B,kBAAyB;ALkG7B;;AK/EM;EACE,0BAAa;EAAb,aAAa;EACb,oBAAY;EAAZ,YAAY;EACZ,eAAe;ALkFvB;;AK9EQ;EH4BJ,kBAAuB;EAAvB,cAAuB;EACvB,eAAwB;AFsD5B;;AKnFQ;EH4BJ,iBAAuB;EAAvB,aAAuB;EACvB,cAAwB;AF2D5B;;AKxFQ;EH4BJ,wBAAuB;EAAvB,oBAAuB;EACvB,qBAAwB;AFgE5B;;AK7FQ;EH4BJ,iBAAuB;EAAvB,aAAuB;EACvB,cAAwB;AFqE5B;;AKlGQ;EH4BJ,iBAAuB;EAAvB,aAAuB;EACvB,cAAwB;AF0E5B;;AKvGQ;EH4BJ,wBAAuB;EAAvB,oBAAuB;EACvB,qBAAwB;AF+E5B;;AKvGM;EHMJ,kBAAc;EAAd,cAAc;EACd,WAAW;EACX,eAAe;AFqGjB;;AKxGQ;EHPN,uBAAsC;EAAtC,mBAAsC;EAItC,oBAAuC;AFgHzC;;AK7GQ;EHPN,wBAAsC;EAAtC,oBAAsC;EAItC,qBAAuC;AFqHzC;;AKlHQ;EHPN,iBAAsC;EAAtC,aAAsC;EAItC,cAAuC;AF0HzC;;AKvHQ;EHPN,wBAAsC;EAAtC,oBAAsC;EAItC,qBAAuC;AF+HzC;;AK5HQ;EHPN,wBAAsC;EAAtC,oBAAsC;EAItC,qBAAuC;AFoIzC;;AKjIQ;EHPN,iBAAsC;EAAtC,aAAsC;EAItC,cAAuC;AFyIzC;;AKtIQ;EHPN,wBAAsC;EAAtC,oBAAsC;EAItC,qBAAuC;AF8IzC;;AK3IQ;EHPN,wBAAsC;EAAtC,oBAAsC;EAItC,qBAAuC;AFmJzC;;AKhJQ;EHPN,iBAAsC;EAAtC,aAAsC;EAItC,cAAuC;AFwJzC;;AKrJQ;EHPN,wBAAsC;EAAtC,oBAAsC;EAItC,qBAAuC;AF6JzC;;AK1JQ;EHPN,wBAAsC;EAAtC,oBAAsC;EAItC,qBAAuC;AFkKzC;;AK/JQ;EHPN,kBAAsC;EAAtC,cAAsC;EAItC,eAAuC;AFuKzC;;AK/JM;EAAwB,kBAAS;EAAT,SAAS;ALmKvC;;AKjKM;EAAuB,kBD6KG;EC7KH,SD6KG;AJRhC;;AKlKQ;EAAwB,iBADZ;EACY,QADZ;ALuKpB;;AKtKQ;EAAwB,iBADZ;EACY,QADZ;AL2KpB;;AK1KQ;EAAwB,iBADZ;EACY,QADZ;AL+KpB;;AK9KQ;EAAwB,iBADZ;EACY,QADZ;ALmLpB;;AKlLQ;EAAwB,iBADZ;EACY,QADZ;ALuLpB;;AKtLQ;EAAwB,iBADZ;EACY,QADZ;AL2LpB;;AK1LQ;EAAwB,iBADZ;EACY,QADZ;AL+LpB;;AK9LQ;EAAwB,iBADZ;EACY,QADZ;ALmMpB;;AKlMQ;EAAwB,iBADZ;EACY,QADZ;ALuMpB;;AKtMQ;EAAwB,iBADZ;EACY,QADZ;AL2MpB;;AK1MQ;EAAwB,kBADZ;EACY,SADZ;AL+MpB;;AK9MQ;EAAwB,kBADZ;EACY,SADZ;ALmNpB;;AKlNQ;EAAwB,kBADZ;EACY,SADZ;ALuNpB;;AKhNU;EHRR,sBAA8C;AF4NhD;;AKpNU;EHRR,uBAA8C;AFgOhD;;AKxNU;EHRR,gBAA8C;AFoOhD;;AK5NU;EHRR,uBAA8C;AFwOhD;;AKhOU;EHRR,uBAA8C;AF4OhD;;AKpOU;EHRR,gBAA8C;AFgPhD;;AKxOU;EHRR,uBAA8C;AFoPhD;;AK5OU;EHRR,uBAA8C;AFwPhD;;AKhPU;EHRR,gBAA8C;AF4PhD;;AKpPU;EHRR,uBAA8C;AFgQhD;;AKxPU;EHRR,uBAA8C;AFoQhD;;AG/PI;EE9BE;IACE,0BAAa;IAAb,aAAa;IACb,oBAAY;IAAZ,YAAY;IACZ,eAAe;ELiSrB;EK7RM;IH4BJ,kBAAuB;IAAvB,cAAuB;IACvB,eAAwB;EFoQ1B;EKjSM;IH4BJ,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;EFwQ1B;EKrSM;IH4BJ,wBAAuB;IAAvB,oBAAuB;IACvB,qBAAwB;EF4Q1B;EKzSM;IH4BJ,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;EFgR1B;EK7SM;IH4BJ,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;EFoR1B;EKjTM;IH4BJ,wBAAuB;IAAvB,oBAAuB;IACvB,qBAAwB;EFwR1B;EKhTI;IHMJ,kBAAc;IAAd,cAAc;IACd,WAAW;IACX,eAAe;EF6Sf;EKhTM;IHPN,uBAAsC;IAAtC,mBAAsC;IAItC,oBAAuC;EFuTvC;EKpTM;IHPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EF2TvC;EKxTM;IHPN,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;EF+TvC;EK5TM;IHPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EFmUvC;EKhUM;IHPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EFuUvC;EKpUM;IHPN,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;EF2UvC;EKxUM;IHPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EF+UvC;EK5UM;IHPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EFmVvC;EKhVM;IHPN,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;EFuVvC;EKpVM;IHPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EF2VvC;EKxVM;IHPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EF+VvC;EK5VM;IHPN,kBAAsC;IAAtC,cAAsC;IAItC,eAAuC;EFmWvC;EK3VI;IAAwB,kBAAS;IAAT,SAAS;EL8VrC;EK5VI;IAAuB,kBD6KG;IC7KH,SD6KG;EJkL9B;EK5VM;IAAwB,iBADZ;IACY,QADZ;ELgWlB;EK/VM;IAAwB,iBADZ;IACY,QADZ;ELmWlB;EKlWM;IAAwB,iBADZ;IACY,QADZ;ELsWlB;EKrWM;IAAwB,iBADZ;IACY,QADZ;ELyWlB;EKxWM;IAAwB,iBADZ;IACY,QADZ;EL4WlB;EK3WM;IAAwB,iBADZ;IACY,QADZ;EL+WlB;EK9WM;IAAwB,iBADZ;IACY,QADZ;ELkXlB;EKjXM;IAAwB,iBADZ;IACY,QADZ;ELqXlB;EKpXM;IAAwB,iBADZ;IACY,QADZ;ELwXlB;EKvXM;IAAwB,iBADZ;IACY,QADZ;EL2XlB;EK1XM;IAAwB,kBADZ;IACY,SADZ;EL8XlB;EK7XM;IAAwB,kBADZ;IACY,SADZ;ELiYlB;EKhYM;IAAwB,kBADZ;IACY,SADZ;ELoYlB;EK7XQ;IHRR,cAA4B;EFwY5B;EKhYQ;IHRR,sBAA8C;EF2Y9C;EKnYQ;IHRR,uBAA8C;EF8Y9C;EKtYQ;IHRR,gBAA8C;EFiZ9C;EKzYQ;IHRR,uBAA8C;EFoZ9C;EK5YQ;IHRR,uBAA8C;EFuZ9C;EK/YQ;IHRR,gBAA8C;EF0Z9C;EKlZQ;IHRR,uBAA8C;EF6Z9C;EKrZQ;IHRR,uBAA8C;EFga9C;EKxZQ;IHRR,gBAA8C;EFma9C;EK3ZQ;IHRR,uBAA8C;EFsa9C;EK9ZQ;IHRR,uBAA8C;EFya9C;AACF;;AGraI;EE9BE;IACE,0BAAa;IAAb,aAAa;IACb,oBAAY;IAAZ,YAAY;IACZ,eAAe;ELucrB;EKncM;IH4BJ,kBAAuB;IAAvB,cAAuB;IACvB,eAAwB;EF0a1B;EKvcM;IH4BJ,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;EF8a1B;EK3cM;IH4BJ,wBAAuB;IAAvB,oBAAuB;IACvB,qBAAwB;EFkb1B;EK/cM;IH4BJ,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;EFsb1B;EKndM;IH4BJ,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;EF0b1B;EKvdM;IH4BJ,wBAAuB;IAAvB,oBAAuB;IACvB,qBAAwB;EF8b1B;EKtdI;IHMJ,kBAAc;IAAd,cAAc;IACd,WAAW;IACX,eAAe;EFmdf;EKtdM;IHPN,uBAAsC;IAAtC,mBAAsC;IAItC,oBAAuC;EF6dvC;EK1dM;IHPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EFievC;EK9dM;IHPN,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;EFqevC;EKleM;IHPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EFyevC;EKteM;IHPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EF6evC;EK1eM;IHPN,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;EFifvC;EK9eM;IHPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EFqfvC;EKlfM;IHPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EFyfvC;EKtfM;IHPN,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;EF6fvC;EK1fM;IHPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EFigBvC;EK9fM;IHPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EFqgBvC;EKlgBM;IHPN,kBAAsC;IAAtC,cAAsC;IAItC,eAAuC;EFygBvC;EKjgBI;IAAwB,kBAAS;IAAT,SAAS;ELogBrC;EKlgBI;IAAuB,kBD6KG;IC7KH,SD6KG;EJwV9B;EKlgBM;IAAwB,iBADZ;IACY,QADZ;ELsgBlB;EKrgBM;IAAwB,iBADZ;IACY,QADZ;ELygBlB;EKxgBM;IAAwB,iBADZ;IACY,QADZ;EL4gBlB;EK3gBM;IAAwB,iBADZ;IACY,QADZ;EL+gBlB;EK9gBM;IAAwB,iBADZ;IACY,QADZ;ELkhBlB;EKjhBM;IAAwB,iBADZ;IACY,QADZ;ELqhBlB;EKphBM;IAAwB,iBADZ;IACY,QADZ;ELwhBlB;EKvhBM;IAAwB,iBADZ;IACY,QADZ;EL2hBlB;EK1hBM;IAAwB,iBADZ;IACY,QADZ;EL8hBlB;EK7hBM;IAAwB,iBADZ;IACY,QADZ;ELiiBlB;EKhiBM;IAAwB,kBADZ;IACY,SADZ;ELoiBlB;EKniBM;IAAwB,kBADZ;IACY,SADZ;ELuiBlB;EKtiBM;IAAwB,kBADZ;IACY,SADZ;EL0iBlB;EKniBQ;IHRR,cAA4B;EF8iB5B;EKtiBQ;IHRR,sBAA8C;EFijB9C;EKziBQ;IHRR,uBAA8C;EFojB9C;EK5iBQ;IHRR,gBAA8C;EFujB9C;EK/iBQ;IHRR,uBAA8C;EF0jB9C;EKljBQ;IHRR,uBAA8C;EF6jB9C;EKrjBQ;IHRR,gBAA8C;EFgkB9C;EKxjBQ;IHRR,uBAA8C;EFmkB9C;EK3jBQ;IHRR,uBAA8C;EFskB9C;EK9jBQ;IHRR,gBAA8C;EFykB9C;EKjkBQ;IHRR,uBAA8C;EF4kB9C;EKpkBQ;IHRR,uBAA8C;EF+kB9C;AACF;;AG3kBI;EE9BE;IACE,0BAAa;IAAb,aAAa;IACb,oBAAY;IAAZ,YAAY;IACZ,eAAe;EL6mBrB;EKzmBM;IH4BJ,kBAAuB;IAAvB,cAAuB;IACvB,eAAwB;EFglB1B;EK7mBM;IH4BJ,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;EFolB1B;EKjnBM;IH4BJ,wBAAuB;IAAvB,oBAAuB;IACvB,qBAAwB;EFwlB1B;EKrnBM;IH4BJ,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;EF4lB1B;EKznBM;IH4BJ,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;EFgmB1B;EK7nBM;IH4BJ,wBAAuB;IAAvB,oBAAuB;IACvB,qBAAwB;EFomB1B;EK5nBI;IHMJ,kBAAc;IAAd,cAAc;IACd,WAAW;IACX,eAAe;EFynBf;EK5nBM;IHPN,uBAAsC;IAAtC,mBAAsC;IAItC,oBAAuC;EFmoBvC;EKhoBM;IHPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EFuoBvC;EKpoBM;IHPN,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;EF2oBvC;EKxoBM;IHPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EF+oBvC;EK5oBM;IHPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EFmpBvC;EKhpBM;IHPN,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;EFupBvC;EKppBM;IHPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EF2pBvC;EKxpBM;IHPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EF+pBvC;EK5pBM;IHPN,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;EFmqBvC;EKhqBM;IHPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EFuqBvC;EKpqBM;IHPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EF2qBvC;EKxqBM;IHPN,kBAAsC;IAAtC,cAAsC;IAItC,eAAuC;EF+qBvC;EKvqBI;IAAwB,kBAAS;IAAT,SAAS;EL0qBrC;EKxqBI;IAAuB,kBD6KG;IC7KH,SD6KG;EJ8f9B;EKxqBM;IAAwB,iBADZ;IACY,QADZ;EL4qBlB;EK3qBM;IAAwB,iBADZ;IACY,QADZ;EL+qBlB;EK9qBM;IAAwB,iBADZ;IACY,QADZ;ELkrBlB;EKjrBM;IAAwB,iBADZ;IACY,QADZ;ELqrBlB;EKprBM;IAAwB,iBADZ;IACY,QADZ;ELwrBlB;EKvrBM;IAAwB,iBADZ;IACY,QADZ;EL2rBlB;EK1rBM;IAAwB,iBADZ;IACY,QADZ;EL8rBlB;EK7rBM;IAAwB,iBADZ;IACY,QADZ;ELisBlB;EKhsBM;IAAwB,iBADZ;IACY,QADZ;ELosBlB;EKnsBM;IAAwB,iBADZ;IACY,QADZ;ELusBlB;EKtsBM;IAAwB,kBADZ;IACY,SADZ;EL0sBlB;EKzsBM;IAAwB,kBADZ;IACY,SADZ;EL6sBlB;EK5sBM;IAAwB,kBADZ;IACY,SADZ;ELgtBlB;EKzsBQ;IHRR,cAA4B;EFotB5B;EK5sBQ;IHRR,sBAA8C;EFutB9C;EK/sBQ;IHRR,uBAA8C;EF0tB9C;EKltBQ;IHRR,gBAA8C;EF6tB9C;EKrtBQ;IHRR,uBAA8C;EFguB9C;EKxtBQ;IHRR,uBAA8C;EFmuB9C;EK3tBQ;IHRR,gBAA8C;EFsuB9C;EK9tBQ;IHRR,uBAA8C;EFyuB9C;EKjuBQ;IHRR,uBAA8C;EF4uB9C;EKpuBQ;IHRR,gBAA8C;EF+uB9C;EKvuBQ;IHRR,uBAA8C;EFkvB9C;EK1uBQ;IHRR,uBAA8C;EFqvB9C;AACF;;AGjvBI;EE9BE;IACE,0BAAa;IAAb,aAAa;IACb,oBAAY;IAAZ,YAAY;IACZ,eAAe;ELmxBrB;EK/wBM;IH4BJ,kBAAuB;IAAvB,cAAuB;IACvB,eAAwB;EFsvB1B;EKnxBM;IH4BJ,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;EF0vB1B;EKvxBM;IH4BJ,wBAAuB;IAAvB,oBAAuB;IACvB,qBAAwB;EF8vB1B;EK3xBM;IH4BJ,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;EFkwB1B;EK/xBM;IH4BJ,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;EFswB1B;EKnyBM;IH4BJ,wBAAuB;IAAvB,oBAAuB;IACvB,qBAAwB;EF0wB1B;EKlyBI;IHMJ,kBAAc;IAAd,cAAc;IACd,WAAW;IACX,eAAe;EF+xBf;EKlyBM;IHPN,uBAAsC;IAAtC,mBAAsC;IAItC,oBAAuC;EFyyBvC;EKtyBM;IHPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EF6yBvC;EK1yBM;IHPN,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;EFizBvC;EK9yBM;IHPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EFqzBvC;EKlzBM;IHPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EFyzBvC;EKtzBM;IHPN,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;EF6zBvC;EK1zBM;IHPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EFi0BvC;EK9zBM;IHPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EFq0BvC;EKl0BM;IHPN,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;EFy0BvC;EKt0BM;IHPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EF60BvC;EK10BM;IHPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EFi1BvC;EK90BM;IHPN,kBAAsC;IAAtC,cAAsC;IAItC,eAAuC;EFq1BvC;EK70BI;IAAwB,kBAAS;IAAT,SAAS;ELg1BrC;EK90BI;IAAuB,kBD6KG;IC7KH,SD6KG;EJoqB9B;EK90BM;IAAwB,iBADZ;IACY,QADZ;ELk1BlB;EKj1BM;IAAwB,iBADZ;IACY,QADZ;ELq1BlB;EKp1BM;IAAwB,iBADZ;IACY,QADZ;ELw1BlB;EKv1BM;IAAwB,iBADZ;IACY,QADZ;EL21BlB;EK11BM;IAAwB,iBADZ;IACY,QADZ;EL81BlB;EK71BM;IAAwB,iBADZ;IACY,QADZ;ELi2BlB;EKh2BM;IAAwB,iBADZ;IACY,QADZ;ELo2BlB;EKn2BM;IAAwB,iBADZ;IACY,QADZ;ELu2BlB;EKt2BM;IAAwB,iBADZ;IACY,QADZ;EL02BlB;EKz2BM;IAAwB,iBADZ;IACY,QADZ;EL62BlB;EK52BM;IAAwB,kBADZ;IACY,SADZ;ELg3BlB;EK/2BM;IAAwB,kBADZ;IACY,SADZ;ELm3BlB;EKl3BM;IAAwB,kBADZ;IACY,SADZ;ELs3BlB;EK/2BQ;IHRR,cAA4B;EF03B5B;EKl3BQ;IHRR,sBAA8C;EF63B9C;EKr3BQ;IHRR,uBAA8C;EFg4B9C;EKx3BQ;IHRR,gBAA8C;EFm4B9C;EK33BQ;IHRR,uBAA8C;EFs4B9C;EK93BQ;IHRR,uBAA8C;EFy4B9C;EKj4BQ;IHRR,gBAA8C;EF44B9C;EKp4BQ;IHRR,uBAA8C;EF+4B9C;EKv4BQ;IHRR,uBAA8C;EFk5B9C;EK14BQ;IHRR,gBAA8C;EFq5B9C;EK74BQ;IHRR,uBAA8C;EFw5B9C;EKh5BQ;IHRR,uBAA8C;EF25B9C;AACF;;AMx8BM;EAAwB,wBAA0B;AN48BxD;;AM58BM;EAAwB,0BAA0B;ANg9BxD;;AMh9BM;EAAwB,gCAA0B;ANo9BxD;;AMp9BM;EAAwB,yBAA0B;ANw9BxD;;AMx9BM;EAAwB,yBAA0B;AN49BxD;;AM59BM;EAAwB,6BAA0B;ANg+BxD;;AMh+BM;EAAwB,8BAA0B;ANo+BxD;;AMp+BM;EAAwB,+BAA0B;EAA1B,wBAA0B;ANw+BxD;;AMx+BM;EAAwB,sCAA0B;EAA1B,+BAA0B;AN4+BxD;;AG37BI;EGjDE;IAAwB,wBAA0B;ENi/BtD;EMj/BI;IAAwB,0BAA0B;ENo/BtD;EMp/BI;IAAwB,gCAA0B;ENu/BtD;EMv/BI;IAAwB,yBAA0B;EN0/BtD;EM1/BI;IAAwB,yBAA0B;EN6/BtD;EM7/BI;IAAwB,6BAA0B;ENggCtD;EMhgCI;IAAwB,8BAA0B;ENmgCtD;EMngCI;IAAwB,+BAA0B;IAA1B,wBAA0B;ENsgCtD;EMtgCI;IAAwB,sCAA0B;IAA1B,+BAA0B;ENygCtD;AACF;;AGz9BI;EGjDE;IAAwB,wBAA0B;EN+gCtD;EM/gCI;IAAwB,0BAA0B;ENkhCtD;EMlhCI;IAAwB,gCAA0B;ENqhCtD;EMrhCI;IAAwB,yBAA0B;ENwhCtD;EMxhCI;IAAwB,yBAA0B;EN2hCtD;EM3hCI;IAAwB,6BAA0B;EN8hCtD;EM9hCI;IAAwB,8BAA0B;ENiiCtD;EMjiCI;IAAwB,+BAA0B;IAA1B,wBAA0B;ENoiCtD;EMpiCI;IAAwB,sCAA0B;IAA1B,+BAA0B;ENuiCtD;AACF;;AGv/BI;EGjDE;IAAwB,wBAA0B;EN6iCtD;EM7iCI;IAAwB,0BAA0B;ENgjCtD;EMhjCI;IAAwB,gCAA0B;ENmjCtD;EMnjCI;IAAwB,yBAA0B;ENsjCtD;EMtjCI;IAAwB,yBAA0B;ENyjCtD;EMzjCI;IAAwB,6BAA0B;EN4jCtD;EM5jCI;IAAwB,8BAA0B;EN+jCtD;EM/jCI;IAAwB,+BAA0B;IAA1B,wBAA0B;ENkkCtD;EMlkCI;IAAwB,sCAA0B;IAA1B,+BAA0B;ENqkCtD;AACF;;AGrhCI;EGjDE;IAAwB,wBAA0B;EN2kCtD;EM3kCI;IAAwB,0BAA0B;EN8kCtD;EM9kCI;IAAwB,gCAA0B;ENilCtD;EMjlCI;IAAwB,yBAA0B;ENolCtD;EMplCI;IAAwB,yBAA0B;ENulCtD;EMvlCI;IAAwB,6BAA0B;EN0lCtD;EM1lCI;IAAwB,8BAA0B;EN6lCtD;EM7lCI;IAAwB,+BAA0B;IAA1B,wBAA0B;ENgmCtD;EMhmCI;IAAwB,sCAA0B;IAA1B,+BAA0B;ENmmCtD;AACF;;AM1lCA;EAEI;IAAqB,wBAA0B;EN6lCjD;EM7lCE;IAAqB,0BAA0B;ENgmCjD;EMhmCE;IAAqB,gCAA0B;ENmmCjD;EMnmCE;IAAqB,yBAA0B;ENsmCjD;EMtmCE;IAAqB,yBAA0B;ENymCjD;EMzmCE;IAAqB,6BAA0B;EN4mCjD;EM5mCE;IAAqB,8BAA0B;EN+mCjD;EM/mCE;IAAqB,+BAA0B;IAA1B,wBAA0B;ENknCjD;EMlnCE;IAAqB,sCAA0B;IAA1B,+BAA0B;ENqnCjD;AACF;;AOnoCI;EAAgC,kCAA8B;EAA9B,8BAA8B;APuoClE;;AOtoCI;EAAgC,qCAAiC;EAAjC,iCAAiC;AP0oCrE;;AOzoCI;EAAgC,0CAAsC;EAAtC,sCAAsC;AP6oC1E;;AO5oCI;EAAgC,6CAAyC;EAAzC,yCAAyC;APgpC7E;;AO9oCI;EAA8B,8BAA0B;EAA1B,0BAA0B;APkpC5D;;AOjpCI;EAA8B,gCAA4B;EAA5B,4BAA4B;APqpC9D;;AOppCI;EAA8B,sCAAkC;EAAlC,kCAAkC;APwpCpE;;AOvpCI;EAA8B,6BAAyB;EAAzB,yBAAyB;AP2pC3D;;AO1pCI;EAA8B,+BAAuB;EAAvB,uBAAuB;AP8pCzD;;AO7pCI;EAA8B,+BAAuB;EAAvB,uBAAuB;APiqCzD;;AOhqCI;EAA8B,+BAAyB;EAAzB,yBAAyB;APoqC3D;;AOnqCI;EAA8B,+BAAyB;EAAzB,yBAAyB;APuqC3D;;AOrqCI;EAAoC,+BAAsC;EAAtC,sCAAsC;APyqC9E;;AOxqCI;EAAoC,6BAAoC;EAApC,oCAAoC;AP4qC5E;;AO3qCI;EAAoC,gCAAkC;EAAlC,kCAAkC;AP+qC1E;;AO9qCI;EAAoC,iCAAyC;EAAzC,yCAAyC;APkrCjF;;AOjrCI;EAAoC,oCAAwC;EAAxC,wCAAwC;APqrChF;;AOnrCI;EAAiC,gCAAkC;EAAlC,kCAAkC;APurCvE;;AOtrCI;EAAiC,8BAAgC;EAAhC,gCAAgC;AP0rCrE;;AOzrCI;EAAiC,iCAA8B;EAA9B,8BAA8B;AP6rCnE;;AO5rCI;EAAiC,mCAAgC;EAAhC,gCAAgC;APgsCrE;;AO/rCI;EAAiC,kCAA+B;EAA/B,+BAA+B;APmsCpE;;AOjsCI;EAAkC,oCAAoC;EAApC,oCAAoC;APqsC1E;;AOpsCI;EAAkC,kCAAkC;EAAlC,kCAAkC;APwsCxE;;AOvsCI;EAAkC,qCAAgC;EAAhC,gCAAgC;AP2sCtE;;AO1sCI;EAAkC,sCAAuC;EAAvC,uCAAuC;AP8sC7E;;AO7sCI;EAAkC,yCAAsC;EAAtC,sCAAsC;APitC5E;;AOhtCI;EAAkC,sCAAiC;EAAjC,iCAAiC;APotCvE;;AOltCI;EAAgC,oCAA2B;EAA3B,2BAA2B;APstC/D;;AOrtCI;EAAgC,qCAAiC;EAAjC,iCAAiC;APytCrE;;AOxtCI;EAAgC,mCAA+B;EAA/B,+BAA+B;AP4tCnE;;AO3tCI;EAAgC,sCAA6B;EAA7B,6BAA6B;AP+tCjE;;AO9tCI;EAAgC,wCAA+B;EAA/B,+BAA+B;APkuCnE;;AOjuCI;EAAgC,uCAA8B;EAA9B,8BAA8B;APquClE;;AGztCI;EIlDA;IAAgC,kCAA8B;IAA9B,8BAA8B;EPgxChE;EO/wCE;IAAgC,qCAAiC;IAAjC,iCAAiC;EPkxCnE;EOjxCE;IAAgC,0CAAsC;IAAtC,sCAAsC;EPoxCxE;EOnxCE;IAAgC,6CAAyC;IAAzC,yCAAyC;EPsxC3E;EOpxCE;IAA8B,8BAA0B;IAA1B,0BAA0B;EPuxC1D;EOtxCE;IAA8B,gCAA4B;IAA5B,4BAA4B;EPyxC5D;EOxxCE;IAA8B,sCAAkC;IAAlC,kCAAkC;EP2xClE;EO1xCE;IAA8B,6BAAyB;IAAzB,yBAAyB;EP6xCzD;EO5xCE;IAA8B,+BAAuB;IAAvB,uBAAuB;EP+xCvD;EO9xCE;IAA8B,+BAAuB;IAAvB,uBAAuB;EPiyCvD;EOhyCE;IAA8B,+BAAyB;IAAzB,yBAAyB;EPmyCzD;EOlyCE;IAA8B,+BAAyB;IAAzB,yBAAyB;EPqyCzD;EOnyCE;IAAoC,+BAAsC;IAAtC,sCAAsC;EPsyC5E;EOryCE;IAAoC,6BAAoC;IAApC,oCAAoC;EPwyC1E;EOvyCE;IAAoC,gCAAkC;IAAlC,kCAAkC;EP0yCxE;EOzyCE;IAAoC,iCAAyC;IAAzC,yCAAyC;EP4yC/E;EO3yCE;IAAoC,oCAAwC;IAAxC,wCAAwC;EP8yC9E;EO5yCE;IAAiC,gCAAkC;IAAlC,kCAAkC;EP+yCrE;EO9yCE;IAAiC,8BAAgC;IAAhC,gCAAgC;EPizCnE;EOhzCE;IAAiC,iCAA8B;IAA9B,8BAA8B;EPmzCjE;EOlzCE;IAAiC,mCAAgC;IAAhC,gCAAgC;EPqzCnE;EOpzCE;IAAiC,kCAA+B;IAA/B,+BAA+B;EPuzClE;EOrzCE;IAAkC,oCAAoC;IAApC,oCAAoC;EPwzCxE;EOvzCE;IAAkC,kCAAkC;IAAlC,kCAAkC;EP0zCtE;EOzzCE;IAAkC,qCAAgC;IAAhC,gCAAgC;EP4zCpE;EO3zCE;IAAkC,sCAAuC;IAAvC,uCAAuC;EP8zC3E;EO7zCE;IAAkC,yCAAsC;IAAtC,sCAAsC;EPg0C1E;EO/zCE;IAAkC,sCAAiC;IAAjC,iCAAiC;EPk0CrE;EOh0CE;IAAgC,oCAA2B;IAA3B,2BAA2B;EPm0C7D;EOl0CE;IAAgC,qCAAiC;IAAjC,iCAAiC;EPq0CnE;EOp0CE;IAAgC,mCAA+B;IAA/B,+BAA+B;EPu0CjE;EOt0CE;IAAgC,sCAA6B;IAA7B,6BAA6B;EPy0C/D;EOx0CE;IAAgC,wCAA+B;IAA/B,+BAA+B;EP20CjE;EO10CE;IAAgC,uCAA8B;IAA9B,8BAA8B;EP60ChE;AACF;;AGl0CI;EIlDA;IAAgC,kCAA8B;IAA9B,8BAA8B;EPy3ChE;EOx3CE;IAAgC,qCAAiC;IAAjC,iCAAiC;EP23CnE;EO13CE;IAAgC,0CAAsC;IAAtC,sCAAsC;EP63CxE;EO53CE;IAAgC,6CAAyC;IAAzC,yCAAyC;EP+3C3E;EO73CE;IAA8B,8BAA0B;IAA1B,0BAA0B;EPg4C1D;EO/3CE;IAA8B,gCAA4B;IAA5B,4BAA4B;EPk4C5D;EOj4CE;IAA8B,sCAAkC;IAAlC,kCAAkC;EPo4ClE;EOn4CE;IAA8B,6BAAyB;IAAzB,yBAAyB;EPs4CzD;EOr4CE;IAA8B,+BAAuB;IAAvB,uBAAuB;EPw4CvD;EOv4CE;IAA8B,+BAAuB;IAAvB,uBAAuB;EP04CvD;EOz4CE;IAA8B,+BAAyB;IAAzB,yBAAyB;EP44CzD;EO34CE;IAA8B,+BAAyB;IAAzB,yBAAyB;EP84CzD;EO54CE;IAAoC,+BAAsC;IAAtC,sCAAsC;EP+4C5E;EO94CE;IAAoC,6BAAoC;IAApC,oCAAoC;EPi5C1E;EOh5CE;IAAoC,gCAAkC;IAAlC,kCAAkC;EPm5CxE;EOl5CE;IAAoC,iCAAyC;IAAzC,yCAAyC;EPq5C/E;EOp5CE;IAAoC,oCAAwC;IAAxC,wCAAwC;EPu5C9E;EOr5CE;IAAiC,gCAAkC;IAAlC,kCAAkC;EPw5CrE;EOv5CE;IAAiC,8BAAgC;IAAhC,gCAAgC;EP05CnE;EOz5CE;IAAiC,iCAA8B;IAA9B,8BAA8B;EP45CjE;EO35CE;IAAiC,mCAAgC;IAAhC,gCAAgC;EP85CnE;EO75CE;IAAiC,kCAA+B;IAA/B,+BAA+B;EPg6ClE;EO95CE;IAAkC,oCAAoC;IAApC,oCAAoC;EPi6CxE;EOh6CE;IAAkC,kCAAkC;IAAlC,kCAAkC;EPm6CtE;EOl6CE;IAAkC,qCAAgC;IAAhC,gCAAgC;EPq6CpE;EOp6CE;IAAkC,sCAAuC;IAAvC,uCAAuC;EPu6C3E;EOt6CE;IAAkC,yCAAsC;IAAtC,sCAAsC;EPy6C1E;EOx6CE;IAAkC,sCAAiC;IAAjC,iCAAiC;EP26CrE;EOz6CE;IAAgC,oCAA2B;IAA3B,2BAA2B;EP46C7D;EO36CE;IAAgC,qCAAiC;IAAjC,iCAAiC;EP86CnE;EO76CE;IAAgC,mCAA+B;IAA/B,+BAA+B;EPg7CjE;EO/6CE;IAAgC,sCAA6B;IAA7B,6BAA6B;EPk7C/D;EOj7CE;IAAgC,wCAA+B;IAA/B,+BAA+B;EPo7CjE;EOn7CE;IAAgC,uCAA8B;IAA9B,8BAA8B;EPs7ChE;AACF;;AG36CI;EIlDA;IAAgC,kCAA8B;IAA9B,8BAA8B;EPk+ChE;EOj+CE;IAAgC,qCAAiC;IAAjC,iCAAiC;EPo+CnE;EOn+CE;IAAgC,0CAAsC;IAAtC,sCAAsC;EPs+CxE;EOr+CE;IAAgC,6CAAyC;IAAzC,yCAAyC;EPw+C3E;EOt+CE;IAA8B,8BAA0B;IAA1B,0BAA0B;EPy+C1D;EOx+CE;IAA8B,gCAA4B;IAA5B,4BAA4B;EP2+C5D;EO1+CE;IAA8B,sCAAkC;IAAlC,kCAAkC;EP6+ClE;EO5+CE;IAA8B,6BAAyB;IAAzB,yBAAyB;EP++CzD;EO9+CE;IAA8B,+BAAuB;IAAvB,uBAAuB;EPi/CvD;EOh/CE;IAA8B,+BAAuB;IAAvB,uBAAuB;EPm/CvD;EOl/CE;IAA8B,+BAAyB;IAAzB,yBAAyB;EPq/CzD;EOp/CE;IAA8B,+BAAyB;IAAzB,yBAAyB;EPu/CzD;EOr/CE;IAAoC,+BAAsC;IAAtC,sCAAsC;EPw/C5E;EOv/CE;IAAoC,6BAAoC;IAApC,oCAAoC;EP0/C1E;EOz/CE;IAAoC,gCAAkC;IAAlC,kCAAkC;EP4/CxE;EO3/CE;IAAoC,iCAAyC;IAAzC,yCAAyC;EP8/C/E;EO7/CE;IAAoC,oCAAwC;IAAxC,wCAAwC;EPggD9E;EO9/CE;IAAiC,gCAAkC;IAAlC,kCAAkC;EPigDrE;EOhgDE;IAAiC,8BAAgC;IAAhC,gCAAgC;EPmgDnE;EOlgDE;IAAiC,iCAA8B;IAA9B,8BAA8B;EPqgDjE;EOpgDE;IAAiC,mCAAgC;IAAhC,gCAAgC;EPugDnE;EOtgDE;IAAiC,kCAA+B;IAA/B,+BAA+B;EPygDlE;EOvgDE;IAAkC,oCAAoC;IAApC,oCAAoC;EP0gDxE;EOzgDE;IAAkC,kCAAkC;IAAlC,kCAAkC;EP4gDtE;EO3gDE;IAAkC,qCAAgC;IAAhC,gCAAgC;EP8gDpE;EO7gDE;IAAkC,sCAAuC;IAAvC,uCAAuC;EPghD3E;EO/gDE;IAAkC,yCAAsC;IAAtC,sCAAsC;EPkhD1E;EOjhDE;IAAkC,sCAAiC;IAAjC,iCAAiC;EPohDrE;EOlhDE;IAAgC,oCAA2B;IAA3B,2BAA2B;EPqhD7D;EOphDE;IAAgC,qCAAiC;IAAjC,iCAAiC;EPuhDnE;EOthDE;IAAgC,mCAA+B;IAA/B,+BAA+B;EPyhDjE;EOxhDE;IAAgC,sCAA6B;IAA7B,6BAA6B;EP2hD/D;EO1hDE;IAAgC,wCAA+B;IAA/B,+BAA+B;EP6hDjE;EO5hDE;IAAgC,uCAA8B;IAA9B,8BAA8B;EP+hDhE;AACF;;AGphDI;EIlDA;IAAgC,kCAA8B;IAA9B,8BAA8B;EP2kDhE;EO1kDE;IAAgC,qCAAiC;IAAjC,iCAAiC;EP6kDnE;EO5kDE;IAAgC,0CAAsC;IAAtC,sCAAsC;EP+kDxE;EO9kDE;IAAgC,6CAAyC;IAAzC,yCAAyC;EPilD3E;EO/kDE;IAA8B,8BAA0B;IAA1B,0BAA0B;EPklD1D;EOjlDE;IAA8B,gCAA4B;IAA5B,4BAA4B;EPolD5D;EOnlDE;IAA8B,sCAAkC;IAAlC,kCAAkC;EPslDlE;EOrlDE;IAA8B,6BAAyB;IAAzB,yBAAyB;EPwlDzD;EOvlDE;IAA8B,+BAAuB;IAAvB,uBAAuB;EP0lDvD;EOzlDE;IAA8B,+BAAuB;IAAvB,uBAAuB;EP4lDvD;EO3lDE;IAA8B,+BAAyB;IAAzB,yBAAyB;EP8lDzD;EO7lDE;IAA8B,+BAAyB;IAAzB,yBAAyB;EPgmDzD;EO9lDE;IAAoC,+BAAsC;IAAtC,sCAAsC;EPimD5E;EOhmDE;IAAoC,6BAAoC;IAApC,oCAAoC;EPmmD1E;EOlmDE;IAAoC,gCAAkC;IAAlC,kCAAkC;EPqmDxE;EOpmDE;IAAoC,iCAAyC;IAAzC,yCAAyC;EPumD/E;EOtmDE;IAAoC,oCAAwC;IAAxC,wCAAwC;EPymD9E;EOvmDE;IAAiC,gCAAkC;IAAlC,kCAAkC;EP0mDrE;EOzmDE;IAAiC,8BAAgC;IAAhC,gCAAgC;EP4mDnE;EO3mDE;IAAiC,iCAA8B;IAA9B,8BAA8B;EP8mDjE;EO7mDE;IAAiC,mCAAgC;IAAhC,gCAAgC;EPgnDnE;EO/mDE;IAAiC,kCAA+B;IAA/B,+BAA+B;EPknDlE;EOhnDE;IAAkC,oCAAoC;IAApC,oCAAoC;EPmnDxE;EOlnDE;IAAkC,kCAAkC;IAAlC,kCAAkC;EPqnDtE;EOpnDE;IAAkC,qCAAgC;IAAhC,gCAAgC;EPunDpE;EOtnDE;IAAkC,sCAAuC;IAAvC,uCAAuC;EPynD3E;EOxnDE;IAAkC,yCAAsC;IAAtC,sCAAsC;EP2nD1E;EO1nDE;IAAkC,sCAAiC;IAAjC,iCAAiC;EP6nDrE;EO3nDE;IAAgC,oCAA2B;IAA3B,2BAA2B;EP8nD7D;EO7nDE;IAAgC,qCAAiC;IAAjC,iCAAiC;EPgoDnE;EO/nDE;IAAgC,mCAA+B;IAA/B,+BAA+B;EPkoDjE;EOjoDE;IAAgC,sCAA6B;IAA7B,6BAA6B;EPooD/D;EOnoDE;IAAgC,wCAA+B;IAA/B,+BAA+B;EPsoDjE;EOroDE;IAAgC,uCAA8B;IAA9B,8BAA8B;EPwoDhE;AACF;;AQ/qDQ;EAAgC,oBAA4B;ARmrDpE;;AQlrDQ;;EAEE,wBAAoC;ARqrD9C;;AQnrDQ;;EAEE,0BAAwC;ARsrDlD;;AQprDQ;;EAEE,2BAA0C;ARurDpD;;AQrrDQ;;EAEE,yBAAsC;ARwrDhD;;AQvsDQ;EAAgC,0BAA4B;AR2sDpE;;AQ1sDQ;;EAEE,8BAAoC;AR6sD9C;;AQ3sDQ;;EAEE,gCAAwC;AR8sDlD;;AQ5sDQ;;EAEE,iCAA0C;AR+sDpD;;AQ7sDQ;;EAEE,+BAAsC;ARgtDhD;;AQ/tDQ;EAAgC,yBAA4B;ARmuDpE;;AQluDQ;;EAEE,6BAAoC;ARquD9C;;AQnuDQ;;EAEE,+BAAwC;ARsuDlD;;AQpuDQ;;EAEE,gCAA0C;ARuuDpD;;AQruDQ;;EAEE,8BAAsC;ARwuDhD;;AQvvDQ;EAAgC,uBAA4B;AR2vDpE;;AQ1vDQ;;EAEE,2BAAoC;AR6vD9C;;AQ3vDQ;;EAEE,6BAAwC;AR8vDlD;;AQ5vDQ;;EAEE,8BAA0C;AR+vDpD;;AQ7vDQ;;EAEE,4BAAsC;ARgwDhD;;AQ/wDQ;EAAgC,yBAA4B;ARmxDpE;;AQlxDQ;;EAEE,6BAAoC;ARqxD9C;;AQnxDQ;;EAEE,+BAAwC;ARsxDlD;;AQpxDQ;;EAEE,gCAA0C;ARuxDpD;;AQrxDQ;;EAEE,8BAAsC;ARwxDhD;;AQvyDQ;EAAgC,uBAA4B;AR2yDpE;;AQ1yDQ;;EAEE,2BAAoC;AR6yD9C;;AQ3yDQ;;EAEE,6BAAwC;AR8yDlD;;AQ5yDQ;;EAEE,8BAA0C;AR+yDpD;;AQ7yDQ;;EAEE,4BAAsC;ARgzDhD;;AQ/zDQ;EAAgC,qBAA4B;ARm0DpE;;AQl0DQ;;EAEE,yBAAoC;ARq0D9C;;AQn0DQ;;EAEE,2BAAwC;ARs0DlD;;AQp0DQ;;EAEE,4BAA0C;ARu0DpD;;AQr0DQ;;EAEE,0BAAsC;ARw0DhD;;AQv1DQ;EAAgC,2BAA4B;AR21DpE;;AQ11DQ;;EAEE,+BAAoC;AR61D9C;;AQ31DQ;;EAEE,iCAAwC;AR81DlD;;AQ51DQ;;EAEE,kCAA0C;AR+1DpD;;AQ71DQ;;EAEE,gCAAsC;ARg2DhD;;AQ/2DQ;EAAgC,0BAA4B;ARm3DpE;;AQl3DQ;;EAEE,8BAAoC;ARq3D9C;;AQn3DQ;;EAEE,gCAAwC;ARs3DlD;;AQp3DQ;;EAEE,iCAA0C;ARu3DpD;;AQr3DQ;;EAEE,+BAAsC;ARw3DhD;;AQv4DQ;EAAgC,wBAA4B;AR24DpE;;AQ14DQ;;EAEE,4BAAoC;AR64D9C;;AQ34DQ;;EAEE,8BAAwC;AR84DlD;;AQ54DQ;;EAEE,+BAA0C;AR+4DpD;;AQ74DQ;;EAEE,6BAAsC;ARg5DhD;;AQ/5DQ;EAAgC,0BAA4B;ARm6DpE;;AQl6DQ;;EAEE,8BAAoC;ARq6D9C;;AQn6DQ;;EAEE,gCAAwC;ARs6DlD;;AQp6DQ;;EAEE,iCAA0C;ARu6DpD;;AQr6DQ;;EAEE,+BAAsC;ARw6DhD;;AQv7DQ;EAAgC,wBAA4B;AR27DpE;;AQ17DQ;;EAEE,4BAAoC;AR67D9C;;AQ37DQ;;EAEE,8BAAwC;AR87DlD;;AQ57DQ;;EAEE,+BAA0C;AR+7DpD;;AQ77DQ;;EAEE,6BAAsC;ARg8DhD;;AQx7DQ;EAAwB,2BAA2B;AR47D3D;;AQ37DQ;;EAEE,+BAA+B;AR87DzC;;AQ57DQ;;EAEE,iCAAiC;AR+7D3C;;AQ77DQ;;EAEE,kCAAkC;ARg8D5C;;AQ97DQ;;EAEE,gCAAgC;ARi8D1C;;AQh9DQ;EAAwB,0BAA2B;ARo9D3D;;AQn9DQ;;EAEE,8BAA+B;ARs9DzC;;AQp9DQ;;EAEE,gCAAiC;ARu9D3C;;AQr9DQ;;EAEE,iCAAkC;ARw9D5C;;AQt9DQ;;EAEE,+BAAgC;ARy9D1C;;AQx+DQ;EAAwB,wBAA2B;AR4+D3D;;AQ3+DQ;;EAEE,4BAA+B;AR8+DzC;;AQ5+DQ;;EAEE,8BAAiC;AR++D3C;;AQ7+DQ;;EAEE,+BAAkC;ARg/D5C;;AQ9+DQ;;EAEE,6BAAgC;ARi/D1C;;AQhgEQ;EAAwB,0BAA2B;ARogE3D;;AQngEQ;;EAEE,8BAA+B;ARsgEzC;;AQpgEQ;;EAEE,gCAAiC;ARugE3C;;AQrgEQ;;EAEE,iCAAkC;ARwgE5C;;AQtgEQ;;EAEE,+BAAgC;ARygE1C;;AQxhEQ;EAAwB,wBAA2B;AR4hE3D;;AQ3hEQ;;EAEE,4BAA+B;AR8hEzC;;AQ5hEQ;;EAEE,8BAAiC;AR+hE3C;;AQ7hEQ;;EAEE,+BAAkC;ARgiE5C;;AQ9hEQ;;EAEE,6BAAgC;ARiiE1C;;AQ3hEI;EAAmB,uBAAuB;AR+hE9C;;AQ9hEI;;EAEE,2BAA2B;ARiiEjC;;AQ/hEI;;EAEE,6BAA6B;ARkiEnC;;AQhiEI;;EAEE,8BAA8B;ARmiEpC;;AQjiEI;;EAEE,4BAA4B;ARoiElC;;AG7iEI;EKlDI;IAAgC,oBAA4B;ERomElE;EQnmEM;;IAEE,wBAAoC;ERqmE5C;EQnmEM;;IAEE,0BAAwC;ERqmEhD;EQnmEM;;IAEE,2BAA0C;ERqmElD;EQnmEM;;IAEE,yBAAsC;ERqmE9C;EQpnEM;IAAgC,0BAA4B;ERunElE;EQtnEM;;IAEE,8BAAoC;ERwnE5C;EQtnEM;;IAEE,gCAAwC;ERwnEhD;EQtnEM;;IAEE,iCAA0C;ERwnElD;EQtnEM;;IAEE,+BAAsC;ERwnE9C;EQvoEM;IAAgC,yBAA4B;ER0oElE;EQzoEM;;IAEE,6BAAoC;ER2oE5C;EQzoEM;;IAEE,+BAAwC;ER2oEhD;EQzoEM;;IAEE,gCAA0C;ER2oElD;EQzoEM;;IAEE,8BAAsC;ER2oE9C;EQ1pEM;IAAgC,uBAA4B;ER6pElE;EQ5pEM;;IAEE,2BAAoC;ER8pE5C;EQ5pEM;;IAEE,6BAAwC;ER8pEhD;EQ5pEM;;IAEE,8BAA0C;ER8pElD;EQ5pEM;;IAEE,4BAAsC;ER8pE9C;EQ7qEM;IAAgC,yBAA4B;ERgrElE;EQ/qEM;;IAEE,6BAAoC;ERirE5C;EQ/qEM;;IAEE,+BAAwC;ERirEhD;EQ/qEM;;IAEE,gCAA0C;ERirElD;EQ/qEM;;IAEE,8BAAsC;ERirE9C;EQhsEM;IAAgC,uBAA4B;ERmsElE;EQlsEM;;IAEE,2BAAoC;ERosE5C;EQlsEM;;IAEE,6BAAwC;ERosEhD;EQlsEM;;IAEE,8BAA0C;ERosElD;EQlsEM;;IAEE,4BAAsC;ERosE9C;EQntEM;IAAgC,qBAA4B;ERstElE;EQrtEM;;IAEE,yBAAoC;ERutE5C;EQrtEM;;IAEE,2BAAwC;ERutEhD;EQrtEM;;IAEE,4BAA0C;ERutElD;EQrtEM;;IAEE,0BAAsC;ERutE9C;EQtuEM;IAAgC,2BAA4B;ERyuElE;EQxuEM;;IAEE,+BAAoC;ER0uE5C;EQxuEM;;IAEE,iCAAwC;ER0uEhD;EQxuEM;;IAEE,kCAA0C;ER0uElD;EQxuEM;;IAEE,gCAAsC;ER0uE9C;EQzvEM;IAAgC,0BAA4B;ER4vElE;EQ3vEM;;IAEE,8BAAoC;ER6vE5C;EQ3vEM;;IAEE,gCAAwC;ER6vEhD;EQ3vEM;;IAEE,iCAA0C;ER6vElD;EQ3vEM;;IAEE,+BAAsC;ER6vE9C;EQ5wEM;IAAgC,wBAA4B;ER+wElE;EQ9wEM;;IAEE,4BAAoC;ERgxE5C;EQ9wEM;;IAEE,8BAAwC;ERgxEhD;EQ9wEM;;IAEE,+BAA0C;ERgxElD;EQ9wEM;;IAEE,6BAAsC;ERgxE9C;EQ/xEM;IAAgC,0BAA4B;ERkyElE;EQjyEM;;IAEE,8BAAoC;ERmyE5C;EQjyEM;;IAEE,gCAAwC;ERmyEhD;EQjyEM;;IAEE,iCAA0C;ERmyElD;EQjyEM;;IAEE,+BAAsC;ERmyE9C;EQlzEM;IAAgC,wBAA4B;ERqzElE;EQpzEM;;IAEE,4BAAoC;ERszE5C;EQpzEM;;IAEE,8BAAwC;ERszEhD;EQpzEM;;IAEE,+BAA0C;ERszElD;EQpzEM;;IAEE,6BAAsC;ERszE9C;EQ9yEM;IAAwB,2BAA2B;ERizEzD;EQhzEM;;IAEE,+BAA+B;ERkzEvC;EQhzEM;;IAEE,iCAAiC;ERkzEzC;EQhzEM;;IAEE,kCAAkC;ERkzE1C;EQhzEM;;IAEE,gCAAgC;ERkzExC;EQj0EM;IAAwB,0BAA2B;ERo0EzD;EQn0EM;;IAEE,8BAA+B;ERq0EvC;EQn0EM;;IAEE,gCAAiC;ERq0EzC;EQn0EM;;IAEE,iCAAkC;ERq0E1C;EQn0EM;;IAEE,+BAAgC;ERq0ExC;EQp1EM;IAAwB,wBAA2B;ERu1EzD;EQt1EM;;IAEE,4BAA+B;ERw1EvC;EQt1EM;;IAEE,8BAAiC;ERw1EzC;EQt1EM;;IAEE,+BAAkC;ERw1E1C;EQt1EM;;IAEE,6BAAgC;ERw1ExC;EQv2EM;IAAwB,0BAA2B;ER02EzD;EQz2EM;;IAEE,8BAA+B;ER22EvC;EQz2EM;;IAEE,gCAAiC;ER22EzC;EQz2EM;;IAEE,iCAAkC;ER22E1C;EQz2EM;;IAEE,+BAAgC;ER22ExC;EQ13EM;IAAwB,wBAA2B;ER63EzD;EQ53EM;;IAEE,4BAA+B;ER83EvC;EQ53EM;;IAEE,8BAAiC;ER83EzC;EQ53EM;;IAEE,+BAAkC;ER83E1C;EQ53EM;;IAEE,6BAAgC;ER83ExC;EQx3EE;IAAmB,uBAAuB;ER23E5C;EQ13EE;;IAEE,2BAA2B;ER43E/B;EQ13EE;;IAEE,6BAA6B;ER43EjC;EQ13EE;;IAEE,8BAA8B;ER43ElC;EQ13EE;;IAEE,4BAA4B;ER43EhC;AACF;;AGt4EI;EKlDI;IAAgC,oBAA4B;ER67ElE;EQ57EM;;IAEE,wBAAoC;ER87E5C;EQ57EM;;IAEE,0BAAwC;ER87EhD;EQ57EM;;IAEE,2BAA0C;ER87ElD;EQ57EM;;IAEE,yBAAsC;ER87E9C;EQ78EM;IAAgC,0BAA4B;ERg9ElE;EQ/8EM;;IAEE,8BAAoC;ERi9E5C;EQ/8EM;;IAEE,gCAAwC;ERi9EhD;EQ/8EM;;IAEE,iCAA0C;ERi9ElD;EQ/8EM;;IAEE,+BAAsC;ERi9E9C;EQh+EM;IAAgC,yBAA4B;ERm+ElE;EQl+EM;;IAEE,6BAAoC;ERo+E5C;EQl+EM;;IAEE,+BAAwC;ERo+EhD;EQl+EM;;IAEE,gCAA0C;ERo+ElD;EQl+EM;;IAEE,8BAAsC;ERo+E9C;EQn/EM;IAAgC,uBAA4B;ERs/ElE;EQr/EM;;IAEE,2BAAoC;ERu/E5C;EQr/EM;;IAEE,6BAAwC;ERu/EhD;EQr/EM;;IAEE,8BAA0C;ERu/ElD;EQr/EM;;IAEE,4BAAsC;ERu/E9C;EQtgFM;IAAgC,yBAA4B;ERygFlE;EQxgFM;;IAEE,6BAAoC;ER0gF5C;EQxgFM;;IAEE,+BAAwC;ER0gFhD;EQxgFM;;IAEE,gCAA0C;ER0gFlD;EQxgFM;;IAEE,8BAAsC;ER0gF9C;EQzhFM;IAAgC,uBAA4B;ER4hFlE;EQ3hFM;;IAEE,2BAAoC;ER6hF5C;EQ3hFM;;IAEE,6BAAwC;ER6hFhD;EQ3hFM;;IAEE,8BAA0C;ER6hFlD;EQ3hFM;;IAEE,4BAAsC;ER6hF9C;EQ5iFM;IAAgC,qBAA4B;ER+iFlE;EQ9iFM;;IAEE,yBAAoC;ERgjF5C;EQ9iFM;;IAEE,2BAAwC;ERgjFhD;EQ9iFM;;IAEE,4BAA0C;ERgjFlD;EQ9iFM;;IAEE,0BAAsC;ERgjF9C;EQ/jFM;IAAgC,2BAA4B;ERkkFlE;EQjkFM;;IAEE,+BAAoC;ERmkF5C;EQjkFM;;IAEE,iCAAwC;ERmkFhD;EQjkFM;;IAEE,kCAA0C;ERmkFlD;EQjkFM;;IAEE,gCAAsC;ERmkF9C;EQllFM;IAAgC,0BAA4B;ERqlFlE;EQplFM;;IAEE,8BAAoC;ERslF5C;EQplFM;;IAEE,gCAAwC;ERslFhD;EQplFM;;IAEE,iCAA0C;ERslFlD;EQplFM;;IAEE,+BAAsC;ERslF9C;EQrmFM;IAAgC,wBAA4B;ERwmFlE;EQvmFM;;IAEE,4BAAoC;ERymF5C;EQvmFM;;IAEE,8BAAwC;ERymFhD;EQvmFM;;IAEE,+BAA0C;ERymFlD;EQvmFM;;IAEE,6BAAsC;ERymF9C;EQxnFM;IAAgC,0BAA4B;ER2nFlE;EQ1nFM;;IAEE,8BAAoC;ER4nF5C;EQ1nFM;;IAEE,gCAAwC;ER4nFhD;EQ1nFM;;IAEE,iCAA0C;ER4nFlD;EQ1nFM;;IAEE,+BAAsC;ER4nF9C;EQ3oFM;IAAgC,wBAA4B;ER8oFlE;EQ7oFM;;IAEE,4BAAoC;ER+oF5C;EQ7oFM;;IAEE,8BAAwC;ER+oFhD;EQ7oFM;;IAEE,+BAA0C;ER+oFlD;EQ7oFM;;IAEE,6BAAsC;ER+oF9C;EQvoFM;IAAwB,2BAA2B;ER0oFzD;EQzoFM;;IAEE,+BAA+B;ER2oFvC;EQzoFM;;IAEE,iCAAiC;ER2oFzC;EQzoFM;;IAEE,kCAAkC;ER2oF1C;EQzoFM;;IAEE,gCAAgC;ER2oFxC;EQ1pFM;IAAwB,0BAA2B;ER6pFzD;EQ5pFM;;IAEE,8BAA+B;ER8pFvC;EQ5pFM;;IAEE,gCAAiC;ER8pFzC;EQ5pFM;;IAEE,iCAAkC;ER8pF1C;EQ5pFM;;IAEE,+BAAgC;ER8pFxC;EQ7qFM;IAAwB,wBAA2B;ERgrFzD;EQ/qFM;;IAEE,4BAA+B;ERirFvC;EQ/qFM;;IAEE,8BAAiC;ERirFzC;EQ/qFM;;IAEE,+BAAkC;ERirF1C;EQ/qFM;;IAEE,6BAAgC;ERirFxC;EQhsFM;IAAwB,0BAA2B;ERmsFzD;EQlsFM;;IAEE,8BAA+B;ERosFvC;EQlsFM;;IAEE,gCAAiC;ERosFzC;EQlsFM;;IAEE,iCAAkC;ERosF1C;EQlsFM;;IAEE,+BAAgC;ERosFxC;EQntFM;IAAwB,wBAA2B;ERstFzD;EQrtFM;;IAEE,4BAA+B;ERutFvC;EQrtFM;;IAEE,8BAAiC;ERutFzC;EQrtFM;;IAEE,+BAAkC;ERutF1C;EQrtFM;;IAEE,6BAAgC;ERutFxC;EQjtFE;IAAmB,uBAAuB;ERotF5C;EQntFE;;IAEE,2BAA2B;ERqtF/B;EQntFE;;IAEE,6BAA6B;ERqtFjC;EQntFE;;IAEE,8BAA8B;ERqtFlC;EQntFE;;IAEE,4BAA4B;ERqtFhC;AACF;;AG/tFI;EKlDI;IAAgC,oBAA4B;ERsxFlE;EQrxFM;;IAEE,wBAAoC;ERuxF5C;EQrxFM;;IAEE,0BAAwC;ERuxFhD;EQrxFM;;IAEE,2BAA0C;ERuxFlD;EQrxFM;;IAEE,yBAAsC;ERuxF9C;EQtyFM;IAAgC,0BAA4B;ERyyFlE;EQxyFM;;IAEE,8BAAoC;ER0yF5C;EQxyFM;;IAEE,gCAAwC;ER0yFhD;EQxyFM;;IAEE,iCAA0C;ER0yFlD;EQxyFM;;IAEE,+BAAsC;ER0yF9C;EQzzFM;IAAgC,yBAA4B;ER4zFlE;EQ3zFM;;IAEE,6BAAoC;ER6zF5C;EQ3zFM;;IAEE,+BAAwC;ER6zFhD;EQ3zFM;;IAEE,gCAA0C;ER6zFlD;EQ3zFM;;IAEE,8BAAsC;ER6zF9C;EQ50FM;IAAgC,uBAA4B;ER+0FlE;EQ90FM;;IAEE,2BAAoC;ERg1F5C;EQ90FM;;IAEE,6BAAwC;ERg1FhD;EQ90FM;;IAEE,8BAA0C;ERg1FlD;EQ90FM;;IAEE,4BAAsC;ERg1F9C;EQ/1FM;IAAgC,yBAA4B;ERk2FlE;EQj2FM;;IAEE,6BAAoC;ERm2F5C;EQj2FM;;IAEE,+BAAwC;ERm2FhD;EQj2FM;;IAEE,gCAA0C;ERm2FlD;EQj2FM;;IAEE,8BAAsC;ERm2F9C;EQl3FM;IAAgC,uBAA4B;ERq3FlE;EQp3FM;;IAEE,2BAAoC;ERs3F5C;EQp3FM;;IAEE,6BAAwC;ERs3FhD;EQp3FM;;IAEE,8BAA0C;ERs3FlD;EQp3FM;;IAEE,4BAAsC;ERs3F9C;EQr4FM;IAAgC,qBAA4B;ERw4FlE;EQv4FM;;IAEE,yBAAoC;ERy4F5C;EQv4FM;;IAEE,2BAAwC;ERy4FhD;EQv4FM;;IAEE,4BAA0C;ERy4FlD;EQv4FM;;IAEE,0BAAsC;ERy4F9C;EQx5FM;IAAgC,2BAA4B;ER25FlE;EQ15FM;;IAEE,+BAAoC;ER45F5C;EQ15FM;;IAEE,iCAAwC;ER45FhD;EQ15FM;;IAEE,kCAA0C;ER45FlD;EQ15FM;;IAEE,gCAAsC;ER45F9C;EQ36FM;IAAgC,0BAA4B;ER86FlE;EQ76FM;;IAEE,8BAAoC;ER+6F5C;EQ76FM;;IAEE,gCAAwC;ER+6FhD;EQ76FM;;IAEE,iCAA0C;ER+6FlD;EQ76FM;;IAEE,+BAAsC;ER+6F9C;EQ97FM;IAAgC,wBAA4B;ERi8FlE;EQh8FM;;IAEE,4BAAoC;ERk8F5C;EQh8FM;;IAEE,8BAAwC;ERk8FhD;EQh8FM;;IAEE,+BAA0C;ERk8FlD;EQh8FM;;IAEE,6BAAsC;ERk8F9C;EQj9FM;IAAgC,0BAA4B;ERo9FlE;EQn9FM;;IAEE,8BAAoC;ERq9F5C;EQn9FM;;IAEE,gCAAwC;ERq9FhD;EQn9FM;;IAEE,iCAA0C;ERq9FlD;EQn9FM;;IAEE,+BAAsC;ERq9F9C;EQp+FM;IAAgC,wBAA4B;ERu+FlE;EQt+FM;;IAEE,4BAAoC;ERw+F5C;EQt+FM;;IAEE,8BAAwC;ERw+FhD;EQt+FM;;IAEE,+BAA0C;ERw+FlD;EQt+FM;;IAEE,6BAAsC;ERw+F9C;EQh+FM;IAAwB,2BAA2B;ERm+FzD;EQl+FM;;IAEE,+BAA+B;ERo+FvC;EQl+FM;;IAEE,iCAAiC;ERo+FzC;EQl+FM;;IAEE,kCAAkC;ERo+F1C;EQl+FM;;IAEE,gCAAgC;ERo+FxC;EQn/FM;IAAwB,0BAA2B;ERs/FzD;EQr/FM;;IAEE,8BAA+B;ERu/FvC;EQr/FM;;IAEE,gCAAiC;ERu/FzC;EQr/FM;;IAEE,iCAAkC;ERu/F1C;EQr/FM;;IAEE,+BAAgC;ERu/FxC;EQtgGM;IAAwB,wBAA2B;ERygGzD;EQxgGM;;IAEE,4BAA+B;ER0gGvC;EQxgGM;;IAEE,8BAAiC;ER0gGzC;EQxgGM;;IAEE,+BAAkC;ER0gG1C;EQxgGM;;IAEE,6BAAgC;ER0gGxC;EQzhGM;IAAwB,0BAA2B;ER4hGzD;EQ3hGM;;IAEE,8BAA+B;ER6hGvC;EQ3hGM;;IAEE,gCAAiC;ER6hGzC;EQ3hGM;;IAEE,iCAAkC;ER6hG1C;EQ3hGM;;IAEE,+BAAgC;ER6hGxC;EQ5iGM;IAAwB,wBAA2B;ER+iGzD;EQ9iGM;;IAEE,4BAA+B;ERgjGvC;EQ9iGM;;IAEE,8BAAiC;ERgjGzC;EQ9iGM;;IAEE,+BAAkC;ERgjG1C;EQ9iGM;;IAEE,6BAAgC;ERgjGxC;EQ1iGE;IAAmB,uBAAuB;ER6iG5C;EQ5iGE;;IAEE,2BAA2B;ER8iG/B;EQ5iGE;;IAEE,6BAA6B;ER8iGjC;EQ5iGE;;IAEE,8BAA8B;ER8iGlC;EQ5iGE;;IAEE,4BAA4B;ER8iGhC;AACF;;AGxjGI;EKlDI;IAAgC,oBAA4B;ER+mGlE;EQ9mGM;;IAEE,wBAAoC;ERgnG5C;EQ9mGM;;IAEE,0BAAwC;ERgnGhD;EQ9mGM;;IAEE,2BAA0C;ERgnGlD;EQ9mGM;;IAEE,yBAAsC;ERgnG9C;EQ/nGM;IAAgC,0BAA4B;ERkoGlE;EQjoGM;;IAEE,8BAAoC;ERmoG5C;EQjoGM;;IAEE,gCAAwC;ERmoGhD;EQjoGM;;IAEE,iCAA0C;ERmoGlD;EQjoGM;;IAEE,+BAAsC;ERmoG9C;EQlpGM;IAAgC,yBAA4B;ERqpGlE;EQppGM;;IAEE,6BAAoC;ERspG5C;EQppGM;;IAEE,+BAAwC;ERspGhD;EQppGM;;IAEE,gCAA0C;ERspGlD;EQppGM;;IAEE,8BAAsC;ERspG9C;EQrqGM;IAAgC,uBAA4B;ERwqGlE;EQvqGM;;IAEE,2BAAoC;ERyqG5C;EQvqGM;;IAEE,6BAAwC;ERyqGhD;EQvqGM;;IAEE,8BAA0C;ERyqGlD;EQvqGM;;IAEE,4BAAsC;ERyqG9C;EQxrGM;IAAgC,yBAA4B;ER2rGlE;EQ1rGM;;IAEE,6BAAoC;ER4rG5C;EQ1rGM;;IAEE,+BAAwC;ER4rGhD;EQ1rGM;;IAEE,gCAA0C;ER4rGlD;EQ1rGM;;IAEE,8BAAsC;ER4rG9C;EQ3sGM;IAAgC,uBAA4B;ER8sGlE;EQ7sGM;;IAEE,2BAAoC;ER+sG5C;EQ7sGM;;IAEE,6BAAwC;ER+sGhD;EQ7sGM;;IAEE,8BAA0C;ER+sGlD;EQ7sGM;;IAEE,4BAAsC;ER+sG9C;EQ9tGM;IAAgC,qBAA4B;ERiuGlE;EQhuGM;;IAEE,yBAAoC;ERkuG5C;EQhuGM;;IAEE,2BAAwC;ERkuGhD;EQhuGM;;IAEE,4BAA0C;ERkuGlD;EQhuGM;;IAEE,0BAAsC;ERkuG9C;EQjvGM;IAAgC,2BAA4B;ERovGlE;EQnvGM;;IAEE,+BAAoC;ERqvG5C;EQnvGM;;IAEE,iCAAwC;ERqvGhD;EQnvGM;;IAEE,kCAA0C;ERqvGlD;EQnvGM;;IAEE,gCAAsC;ERqvG9C;EQpwGM;IAAgC,0BAA4B;ERuwGlE;EQtwGM;;IAEE,8BAAoC;ERwwG5C;EQtwGM;;IAEE,gCAAwC;ERwwGhD;EQtwGM;;IAEE,iCAA0C;ERwwGlD;EQtwGM;;IAEE,+BAAsC;ERwwG9C;EQvxGM;IAAgC,wBAA4B;ER0xGlE;EQzxGM;;IAEE,4BAAoC;ER2xG5C;EQzxGM;;IAEE,8BAAwC;ER2xGhD;EQzxGM;;IAEE,+BAA0C;ER2xGlD;EQzxGM;;IAEE,6BAAsC;ER2xG9C;EQ1yGM;IAAgC,0BAA4B;ER6yGlE;EQ5yGM;;IAEE,8BAAoC;ER8yG5C;EQ5yGM;;IAEE,gCAAwC;ER8yGhD;EQ5yGM;;IAEE,iCAA0C;ER8yGlD;EQ5yGM;;IAEE,+BAAsC;ER8yG9C;EQ7zGM;IAAgC,wBAA4B;ERg0GlE;EQ/zGM;;IAEE,4BAAoC;ERi0G5C;EQ/zGM;;IAEE,8BAAwC;ERi0GhD;EQ/zGM;;IAEE,+BAA0C;ERi0GlD;EQ/zGM;;IAEE,6BAAsC;ERi0G9C;EQzzGM;IAAwB,2BAA2B;ER4zGzD;EQ3zGM;;IAEE,+BAA+B;ER6zGvC;EQ3zGM;;IAEE,iCAAiC;ER6zGzC;EQ3zGM;;IAEE,kCAAkC;ER6zG1C;EQ3zGM;;IAEE,gCAAgC;ER6zGxC;EQ50GM;IAAwB,0BAA2B;ER+0GzD;EQ90GM;;IAEE,8BAA+B;ERg1GvC;EQ90GM;;IAEE,gCAAiC;ERg1GzC;EQ90GM;;IAEE,iCAAkC;ERg1G1C;EQ90GM;;IAEE,+BAAgC;ERg1GxC;EQ/1GM;IAAwB,wBAA2B;ERk2GzD;EQj2GM;;IAEE,4BAA+B;ERm2GvC;EQj2GM;;IAEE,8BAAiC;ERm2GzC;EQj2GM;;IAEE,+BAAkC;ERm2G1C;EQj2GM;;IAEE,6BAAgC;ERm2GxC;EQl3GM;IAAwB,0BAA2B;ERq3GzD;EQp3GM;;IAEE,8BAA+B;ERs3GvC;EQp3GM;;IAEE,gCAAiC;ERs3GzC;EQp3GM;;IAEE,iCAAkC;ERs3G1C;EQp3GM;;IAEE,+BAAgC;ERs3GxC;EQr4GM;IAAwB,wBAA2B;ERw4GzD;EQv4GM;;IAEE,4BAA+B;ERy4GvC;EQv4GM;;IAEE,8BAAiC;ERy4GzC;EQv4GM;;IAEE,+BAAkC;ERy4G1C;EQv4GM;;IAEE,6BAAgC;ERy4GxC;EQn4GE;IAAmB,uBAAuB;ERs4G5C;EQr4GE;;IAEE,2BAA2B;ERu4G/B;EQr4GE;;IAEE,6BAA6B;ERu4GjC;EQr4GE;;IAEE,8BAA8B;ERu4GlC;EQr4GE;;IAEE,4BAA4B;ERu4GhC;AACF","file":"bootstrap-grid.css","sourcesContent":["/*!\n * Bootstrap Grid v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\nhtml {\n box-sizing: border-box;\n -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n@import \"functions\";\n@import \"variables\";\n\n@import \"mixins/breakpoints\";\n@import \"mixins/grid-framework\";\n@import \"mixins/grid\";\n\n@import \"grid\";\n@import \"utilities/display\";\n@import \"utilities/flex\";\n@import \"utilities/spacing\";\n","/*!\n * Bootstrap Grid v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\nhtml {\n box-sizing: border-box;\n -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n.container {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container {\n max-width: 1140px;\n }\n}\n\n.container-fluid, .container-sm, .container-md, .container-lg, .container-xl {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container, .container-sm {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container, .container-sm, .container-md {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container, .container-sm, .container-md, .container-lg {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container, .container-sm, .container-md, .container-lg, .container-xl {\n max-width: 1140px;\n }\n}\n\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.row-cols-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.row-cols-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.row-cols-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.row-cols-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.row-cols-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n}\n\n.row-cols-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n order: -1;\n}\n\n.order-last {\n order: 13;\n}\n\n.order-0 {\n order: 0;\n}\n\n.order-1 {\n order: 1;\n}\n\n.order-2 {\n order: 2;\n}\n\n.order-3 {\n order: 3;\n}\n\n.order-4 {\n order: 4;\n}\n\n.order-5 {\n order: 5;\n}\n\n.order-6 {\n order: 6;\n}\n\n.order-7 {\n order: 7;\n}\n\n.order-8 {\n order: 8;\n}\n\n.order-9 {\n order: 9;\n}\n\n.order-10 {\n order: 10;\n}\n\n.order-11 {\n order: 11;\n}\n\n.order-12 {\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-sm-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-sm-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-sm-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-sm-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-sm-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-sm-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n order: -1;\n }\n .order-sm-last {\n order: 13;\n }\n .order-sm-0 {\n order: 0;\n }\n .order-sm-1 {\n order: 1;\n }\n .order-sm-2 {\n order: 2;\n }\n .order-sm-3 {\n order: 3;\n }\n .order-sm-4 {\n order: 4;\n }\n .order-sm-5 {\n order: 5;\n }\n .order-sm-6 {\n order: 6;\n }\n .order-sm-7 {\n order: 7;\n }\n .order-sm-8 {\n order: 8;\n }\n .order-sm-9 {\n order: 9;\n }\n .order-sm-10 {\n order: 10;\n }\n .order-sm-11 {\n order: 11;\n }\n .order-sm-12 {\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-md-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-md-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-md-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-md-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-md-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-md-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n order: -1;\n }\n .order-md-last {\n order: 13;\n }\n .order-md-0 {\n order: 0;\n }\n .order-md-1 {\n order: 1;\n }\n .order-md-2 {\n order: 2;\n }\n .order-md-3 {\n order: 3;\n }\n .order-md-4 {\n order: 4;\n }\n .order-md-5 {\n order: 5;\n }\n .order-md-6 {\n order: 6;\n }\n .order-md-7 {\n order: 7;\n }\n .order-md-8 {\n order: 8;\n }\n .order-md-9 {\n order: 9;\n }\n .order-md-10 {\n order: 10;\n }\n .order-md-11 {\n order: 11;\n }\n .order-md-12 {\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-lg-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-lg-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-lg-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-lg-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-lg-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-lg-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n order: -1;\n }\n .order-lg-last {\n order: 13;\n }\n .order-lg-0 {\n order: 0;\n }\n .order-lg-1 {\n order: 1;\n }\n .order-lg-2 {\n order: 2;\n }\n .order-lg-3 {\n order: 3;\n }\n .order-lg-4 {\n order: 4;\n }\n .order-lg-5 {\n order: 5;\n }\n .order-lg-6 {\n order: 6;\n }\n .order-lg-7 {\n order: 7;\n }\n .order-lg-8 {\n order: 8;\n }\n .order-lg-9 {\n order: 9;\n }\n .order-lg-10 {\n order: 10;\n }\n .order-lg-11 {\n order: 11;\n }\n .order-lg-12 {\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-xl-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-xl-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-xl-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-xl-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-xl-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-xl-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n order: -1;\n }\n .order-xl-last {\n order: 13;\n }\n .order-xl-0 {\n order: 0;\n }\n .order-xl-1 {\n order: 1;\n }\n .order-xl-2 {\n order: 2;\n }\n .order-xl-3 {\n order: 3;\n }\n .order-xl-4 {\n order: 4;\n }\n .order-xl-5 {\n order: 5;\n }\n .order-xl-6 {\n order: 6;\n }\n .order-xl-7 {\n order: 7;\n }\n .order-xl-8 {\n order: 8;\n }\n .order-xl-9 {\n order: 9;\n }\n .order-xl-10 {\n order: 10;\n }\n .order-xl-11 {\n order: 11;\n }\n .order-xl-12 {\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-n1 {\n margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n\n.m-n4 {\n margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n .m-sm-n3 {\n margin: -1rem !important;\n }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important;\n }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important;\n }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important;\n }\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n .m-sm-n5 {\n margin: -3rem !important;\n }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important;\n }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important;\n }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n .m-md-n3 {\n margin: -1rem !important;\n }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important;\n }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important;\n }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important;\n }\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n .m-md-n5 {\n margin: -3rem !important;\n }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important;\n }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important;\n }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n .m-lg-n3 {\n margin: -1rem !important;\n }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important;\n }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important;\n }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important;\n }\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n .m-lg-n5 {\n margin: -3rem !important;\n }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important;\n }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important;\n }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n .m-xl-n3 {\n margin: -1rem !important;\n }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important;\n }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important;\n }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important;\n }\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n .m-xl-n5 {\n margin: -3rem !important;\n }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important;\n }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important;\n }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n\n/*# sourceMappingURL=bootstrap-grid.css.map */","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n // Single container class with breakpoint max-widths\n .container {\n @include make-container();\n @include make-container-max-widths();\n }\n\n // 100% wide container at all breakpoints\n .container-fluid {\n @include make-container();\n }\n\n // Responsive containers that are 100% wide until a breakpoint\n @each $breakpoint, $container-max-width in $container-max-widths {\n .container-#{$breakpoint} {\n @extend .container-fluid;\n }\n\n @include media-breakpoint-up($breakpoint, $grid-breakpoints) {\n %responsive-container-#{$breakpoint} {\n max-width: $container-max-width;\n }\n\n @each $name, $width in $grid-breakpoints {\n @if ($container-max-width > $width or $breakpoint == $name) {\n .container#{breakpoint-infix($name, $grid-breakpoints)} {\n @extend %responsive-container-#{$breakpoint};\n }\n }\n }\n }\n }\n}\n\n\n// Row\n//\n// Rows contain your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n }\n\n // Remove the negative margin from default .row, then the horizontal padding\n // from all immediate children columns (to prevent runaway style inheritance).\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container($gutter: $grid-gutter-width) {\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n margin-right: auto;\n margin-left: auto;\n}\n\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n}\n\n@mixin make-row($gutter: $grid-gutter-width) {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$gutter / 2;\n margin-left: -$gutter / 2;\n}\n\n@mixin make-col-ready($gutter: $grid-gutter-width) {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n\n@mixin make-col-auto() {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; // Reset earlier grid tiers\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: $size / $columns;\n margin-left: if($num == 0, 0, percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// numberof columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n & > * {\n flex: 0 0 100% / $count;\n max-width: 100% / $count;\n }\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n","// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n// Color system\n\n$white: #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black: #000 !default;\n\n$grays: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$grays: map-merge(\n (\n \"100\": $gray-100,\n \"200\": $gray-200,\n \"300\": $gray-300,\n \"400\": $gray-400,\n \"500\": $gray-500,\n \"600\": $gray-600,\n \"700\": $gray-700,\n \"800\": $gray-800,\n \"900\": $gray-900\n ),\n $grays\n);\n\n$blue: #007bff !default;\n$indigo: #6610f2 !default;\n$purple: #6f42c1 !default;\n$pink: #e83e8c !default;\n$red: #dc3545 !default;\n$orange: #fd7e14 !default;\n$yellow: #ffc107 !default;\n$green: #28a745 !default;\n$teal: #20c997 !default;\n$cyan: #17a2b8 !default;\n\n$colors: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$colors: map-merge(\n (\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"yellow\": $yellow,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"white\": $white,\n \"gray\": $gray-600,\n \"gray-dark\": $gray-800\n ),\n $colors\n);\n\n$primary: $blue !default;\n$secondary: $gray-600 !default;\n$success: $green !default;\n$info: $cyan !default;\n$warning: $yellow !default;\n$danger: $red !default;\n$light: $gray-100 !default;\n$dark: $gray-800 !default;\n\n$theme-colors: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$theme-colors: map-merge(\n (\n \"primary\": $primary,\n \"secondary\": $secondary,\n \"success\": $success,\n \"info\": $info,\n \"warning\": $warning,\n \"danger\": $danger,\n \"light\": $light,\n \"dark\": $dark\n ),\n $theme-colors\n);\n\n// Set a specific jump point for requesting color jumps\n$theme-color-interval: 8% !default;\n\n// The yiq lightness value that determines when the lightness of color changes from \"dark\" to \"light\". Acceptable values are between 0 and 255.\n$yiq-contrasted-threshold: 150 !default;\n\n// Customize the light and dark text colors for use in our YIQ color contrast function.\n$yiq-text-dark: $gray-900 !default;\n$yiq-text-light: $white !default;\n\n// Characters which are escaped by the escape-svg function\n$escaped-characters: (\n (\"<\",\"%3c\"),\n (\">\",\"%3e\"),\n (\"#\",\"%23\"),\n) !default;\n\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: false !default;\n$enable-gradients: false !default;\n$enable-transitions: true !default;\n$enable-prefers-reduced-motion-media-query: true !default;\n$enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS\n$enable-grid-classes: true !default;\n$enable-pointer-cursor-for-buttons: true !default;\n$enable-print-styles: true !default;\n$enable-responsive-font-sizes: false !default;\n$enable-validation-icons: true !default;\n$enable-deprecation-messages: true !default;\n\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n$spacer: 1rem !default;\n$spacers: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$spacers: map-merge(\n (\n 0: 0,\n 1: ($spacer * .25),\n 2: ($spacer * .5),\n 3: $spacer,\n 4: ($spacer * 1.5),\n 5: ($spacer * 3)\n ),\n $spacers\n);\n\n// This variable affects the `.h-*` and `.w-*` classes.\n$sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$sizes: map-merge(\n (\n 25: 25%,\n 50: 50%,\n 75: 75%,\n 100: 100%,\n auto: auto\n ),\n $sizes\n);\n\n\n// Body\n//\n// Settings for the `` element.\n\n$body-bg: $white !default;\n$body-color: $gray-900 !default;\n\n\n// Links\n//\n// Style anchor elements.\n\n$link-color: theme-color(\"primary\") !default;\n$link-decoration: none !default;\n$link-hover-color: darken($link-color, 15%) !default;\n$link-hover-decoration: underline !default;\n// Darken percentage for links with `.text-*` class (e.g. `.text-success`)\n$emphasized-link-hover-darken-percentage: 15% !default;\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n$grid-breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px\n) !default;\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints, \"$grid-breakpoints\");\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1140px\n) !default;\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-width: 30px !default;\n$grid-row-columns: 6 !default;\n\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n$line-height-lg: 1.5 !default;\n$line-height-sm: 1.5 !default;\n\n$border-width: 1px !default;\n$border-color: $gray-300 !default;\n\n$border-radius: .25rem !default;\n$border-radius-lg: .3rem !default;\n$border-radius-sm: .2rem !default;\n\n$rounded-pill: 50rem !default;\n\n$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default;\n$box-shadow: 0 .5rem 1rem rgba($black, .15) !default;\n$box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default;\n\n$component-active-color: $white !default;\n$component-active-bg: theme-color(\"primary\") !default;\n\n$caret-width: .3em !default;\n$caret-vertical-align: $caret-width * .85 !default;\n$caret-spacing: $caret-width * .85 !default;\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n$transition-collapse: height .35s ease !default;\n\n$embed-responsive-aspect-ratios: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$embed-responsive-aspect-ratios: join(\n (\n (21 9),\n (16 9),\n (4 3),\n (1 1),\n ),\n $embed-responsive-aspect-ratios\n);\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// stylelint-disable value-keyword-case\n$font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\" !default;\n$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n$font-family-base: $font-family-sans-serif !default;\n// stylelint-enable value-keyword-case\n\n$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`\n$font-size-lg: $font-size-base * 1.25 !default;\n$font-size-sm: $font-size-base * .875 !default;\n\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n$line-height-base: 1.5 !default;\n\n$h1-font-size: $font-size-base * 2.5 !default;\n$h2-font-size: $font-size-base * 2 !default;\n$h3-font-size: $font-size-base * 1.75 !default;\n$h4-font-size: $font-size-base * 1.5 !default;\n$h5-font-size: $font-size-base * 1.25 !default;\n$h6-font-size: $font-size-base !default;\n\n$headings-margin-bottom: $spacer / 2 !default;\n$headings-font-family: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: null !default;\n\n$display1-size: 6rem !default;\n$display2-size: 5.5rem !default;\n$display3-size: 4.5rem !default;\n$display4-size: 3.5rem !default;\n\n$display1-weight: 300 !default;\n$display2-weight: 300 !default;\n$display3-weight: 300 !default;\n$display4-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n\n$lead-font-size: $font-size-base * 1.25 !default;\n$lead-font-weight: 300 !default;\n\n$small-font-size: 80% !default;\n\n$text-muted: $gray-600 !default;\n\n$blockquote-small-color: $gray-600 !default;\n$blockquote-small-font-size: $small-font-size !default;\n$blockquote-font-size: $font-size-base * 1.25 !default;\n\n$hr-border-color: rgba($black, .1) !default;\n$hr-border-width: $border-width !default;\n\n$mark-padding: .2em !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n$kbd-box-shadow: inset 0 -.1rem 0 rgba($black, .25) !default;\n$nested-kbd-font-weight: $font-weight-bold !default;\n\n$list-inline-padding: .5rem !default;\n\n$mark-bg: #fcf8e3 !default;\n\n$hr-margin-y: $spacer !default;\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n$table-cell-padding: .75rem !default;\n$table-cell-padding-sm: .3rem !default;\n\n$table-color: $body-color !default;\n$table-bg: null !default;\n$table-accent-bg: rgba($black, .05) !default;\n$table-hover-color: $table-color !default;\n$table-hover-bg: rgba($black, .075) !default;\n$table-active-bg: $table-hover-bg !default;\n\n$table-border-width: $border-width !default;\n$table-border-color: $border-color !default;\n\n$table-head-bg: $gray-200 !default;\n$table-head-color: $gray-700 !default;\n\n$table-dark-color: $white !default;\n$table-dark-bg: $gray-800 !default;\n$table-dark-accent-bg: rgba($white, .05) !default;\n$table-dark-hover-color: $table-dark-color !default;\n$table-dark-hover-bg: rgba($white, .075) !default;\n$table-dark-border-color: lighten($table-dark-bg, 7.5%) !default;\n\n$table-striped-order: odd !default;\n\n$table-caption-color: $text-muted !default;\n\n$table-bg-level: -9 !default;\n$table-border-level: -6 !default;\n\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n$input-btn-padding-y: .375rem !default;\n$input-btn-padding-x: .75rem !default;\n$input-btn-font-family: null !default;\n$input-btn-font-size: $font-size-base !default;\n$input-btn-line-height: $line-height-base !default;\n\n$input-btn-focus-width: .2rem !default;\n$input-btn-focus-color: rgba($component-active-bg, .25) !default;\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color !default;\n\n$input-btn-padding-y-sm: .25rem !default;\n$input-btn-padding-x-sm: .5rem !default;\n$input-btn-font-size-sm: $font-size-sm !default;\n$input-btn-line-height-sm: $line-height-sm !default;\n\n$input-btn-padding-y-lg: .5rem !default;\n$input-btn-padding-x-lg: 1rem !default;\n$input-btn-font-size-lg: $font-size-lg !default;\n$input-btn-line-height-lg: $line-height-lg !default;\n\n$input-btn-border-width: $border-width !default;\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n$btn-padding-y: $input-btn-padding-y !default;\n$btn-padding-x: $input-btn-padding-x !default;\n$btn-font-family: $input-btn-font-family !default;\n$btn-font-size: $input-btn-font-size !default;\n$btn-line-height: $input-btn-line-height !default;\n$btn-white-space: null !default; // Set to `nowrap` to prevent text wrapping\n\n$btn-padding-y-sm: $input-btn-padding-y-sm !default;\n$btn-padding-x-sm: $input-btn-padding-x-sm !default;\n$btn-font-size-sm: $input-btn-font-size-sm !default;\n$btn-line-height-sm: $input-btn-line-height-sm !default;\n\n$btn-padding-y-lg: $input-btn-padding-y-lg !default;\n$btn-padding-x-lg: $input-btn-padding-x-lg !default;\n$btn-font-size-lg: $input-btn-font-size-lg !default;\n$btn-line-height-lg: $input-btn-line-height-lg !default;\n\n$btn-border-width: $input-btn-border-width !default;\n\n$btn-font-weight: $font-weight-normal !default;\n$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width: $input-btn-focus-width !default;\n$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity: .65 !default;\n$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-disabled-color: $gray-600 !default;\n\n$btn-block-spacing-y: .5rem !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius: $border-radius !default;\n$btn-border-radius-lg: $border-radius-lg !default;\n$btn-border-radius-sm: $border-radius-sm !default;\n\n$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n\n// Forms\n\n$label-margin-bottom: .5rem !default;\n\n$input-padding-y: $input-btn-padding-y !default;\n$input-padding-x: $input-btn-padding-x !default;\n$input-font-family: $input-btn-font-family !default;\n$input-font-size: $input-btn-font-size !default;\n$input-font-weight: $font-weight-base !default;\n$input-line-height: $input-btn-line-height !default;\n\n$input-padding-y-sm: $input-btn-padding-y-sm !default;\n$input-padding-x-sm: $input-btn-padding-x-sm !default;\n$input-font-size-sm: $input-btn-font-size-sm !default;\n$input-line-height-sm: $input-btn-line-height-sm !default;\n\n$input-padding-y-lg: $input-btn-padding-y-lg !default;\n$input-padding-x-lg: $input-btn-padding-x-lg !default;\n$input-font-size-lg: $input-btn-font-size-lg !default;\n$input-line-height-lg: $input-btn-line-height-lg !default;\n\n$input-bg: $white !default;\n$input-disabled-bg: $gray-200 !default;\n\n$input-color: $gray-700 !default;\n$input-border-color: $gray-400 !default;\n$input-border-width: $input-btn-border-width !default;\n$input-box-shadow: inset 0 1px 1px rgba($black, .075) !default;\n\n$input-border-radius: $border-radius !default;\n$input-border-radius-lg: $border-radius-lg !default;\n$input-border-radius-sm: $border-radius-sm !default;\n\n$input-focus-bg: $input-bg !default;\n$input-focus-border-color: lighten($component-active-bg, 25%) !default;\n$input-focus-color: $input-color !default;\n$input-focus-width: $input-btn-focus-width !default;\n$input-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color: $gray-600 !default;\n$input-plaintext-color: $body-color !default;\n\n$input-height-border: $input-border-width * 2 !default;\n\n$input-height-inner: add($input-line-height * 1em, $input-padding-y * 2) !default;\n$input-height-inner-half: add($input-line-height * .5em, $input-padding-y) !default;\n$input-height-inner-quarter: add($input-line-height * .25em, $input-padding-y / 2) !default;\n\n$input-height: add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false)) !default;\n$input-height-sm: add($input-line-height-sm * 1em, add($input-padding-y-sm * 2, $input-height-border, false)) !default;\n$input-height-lg: add($input-line-height-lg * 1em, add($input-padding-y-lg * 2, $input-height-border, false)) !default;\n\n$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-text-margin-top: .25rem !default;\n\n$form-check-input-gutter: 1.25rem !default;\n$form-check-input-margin-y: .3rem !default;\n$form-check-input-margin-x: .25rem !default;\n\n$form-check-inline-margin-x: .75rem !default;\n$form-check-inline-input-margin-x: .3125rem !default;\n\n$form-grid-gutter-width: 10px !default;\n$form-group-margin-bottom: 1rem !default;\n\n$input-group-addon-color: $input-color !default;\n$input-group-addon-bg: $gray-200 !default;\n$input-group-addon-border-color: $input-border-color !default;\n\n$custom-forms-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$custom-control-gutter: .5rem !default;\n$custom-control-spacer-x: 1rem !default;\n$custom-control-cursor: null !default;\n\n$custom-control-indicator-size: 1rem !default;\n$custom-control-indicator-bg: $input-bg !default;\n\n$custom-control-indicator-bg-size: 50% 50% !default;\n$custom-control-indicator-box-shadow: $input-box-shadow !default;\n$custom-control-indicator-border-color: $gray-500 !default;\n$custom-control-indicator-border-width: $input-border-width !default;\n\n$custom-control-label-color: null !default;\n\n$custom-control-indicator-disabled-bg: $input-disabled-bg !default;\n$custom-control-label-disabled-color: $gray-600 !default;\n\n$custom-control-indicator-checked-color: $component-active-color !default;\n$custom-control-indicator-checked-bg: $component-active-bg !default;\n$custom-control-indicator-checked-disabled-bg: rgba(theme-color(\"primary\"), .5) !default;\n$custom-control-indicator-checked-box-shadow: none !default;\n$custom-control-indicator-checked-border-color: $custom-control-indicator-checked-bg !default;\n\n$custom-control-indicator-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-control-indicator-focus-border-color: $input-focus-border-color !default;\n\n$custom-control-indicator-active-color: $component-active-color !default;\n$custom-control-indicator-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-control-indicator-active-box-shadow: none !default;\n$custom-control-indicator-active-border-color: $custom-control-indicator-active-bg !default;\n\n$custom-checkbox-indicator-border-radius: $border-radius !default;\n$custom-checkbox-indicator-icon-checked: url(\"data:image/svg+xml,\") !default;\n\n$custom-checkbox-indicator-indeterminate-bg: $component-active-bg !default;\n$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;\n$custom-checkbox-indicator-icon-indeterminate: url(\"data:image/svg+xml,\") !default;\n$custom-checkbox-indicator-indeterminate-box-shadow: none !default;\n$custom-checkbox-indicator-indeterminate-border-color: $custom-checkbox-indicator-indeterminate-bg !default;\n\n$custom-radio-indicator-border-radius: 50% !default;\n$custom-radio-indicator-icon-checked: url(\"data:image/svg+xml,\") !default;\n\n$custom-switch-width: $custom-control-indicator-size * 1.75 !default;\n$custom-switch-indicator-border-radius: $custom-control-indicator-size / 2 !default;\n$custom-switch-indicator-size: subtract($custom-control-indicator-size, $custom-control-indicator-border-width * 4) !default;\n\n$custom-select-padding-y: $input-padding-y !default;\n$custom-select-padding-x: $input-padding-x !default;\n$custom-select-font-family: $input-font-family !default;\n$custom-select-font-size: $input-font-size !default;\n$custom-select-height: $input-height !default;\n$custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator\n$custom-select-font-weight: $input-font-weight !default;\n$custom-select-line-height: $input-line-height !default;\n$custom-select-color: $input-color !default;\n$custom-select-disabled-color: $gray-600 !default;\n$custom-select-bg: $input-bg !default;\n$custom-select-disabled-bg: $gray-200 !default;\n$custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions\n$custom-select-indicator-color: $gray-800 !default;\n$custom-select-indicator: url(\"data:image/svg+xml,\") !default;\n$custom-select-background: escape-svg($custom-select-indicator) no-repeat right $custom-select-padding-x center / $custom-select-bg-size !default; // Used so we can have multiple background elements (e.g., arrow and feedback icon)\n\n$custom-select-feedback-icon-padding-right: add(1em * .75, (2 * $custom-select-padding-y * .75) + $custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-position: center right ($custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default;\n\n$custom-select-border-width: $input-border-width !default;\n$custom-select-border-color: $input-border-color !default;\n$custom-select-border-radius: $border-radius !default;\n$custom-select-box-shadow: inset 0 1px 2px rgba($black, .075) !default;\n\n$custom-select-focus-border-color: $input-focus-border-color !default;\n$custom-select-focus-width: $input-focus-width !default;\n$custom-select-focus-box-shadow: 0 0 0 $custom-select-focus-width $input-btn-focus-color !default;\n\n$custom-select-padding-y-sm: $input-padding-y-sm !default;\n$custom-select-padding-x-sm: $input-padding-x-sm !default;\n$custom-select-font-size-sm: $input-font-size-sm !default;\n$custom-select-height-sm: $input-height-sm !default;\n\n$custom-select-padding-y-lg: $input-padding-y-lg !default;\n$custom-select-padding-x-lg: $input-padding-x-lg !default;\n$custom-select-font-size-lg: $input-font-size-lg !default;\n$custom-select-height-lg: $input-height-lg !default;\n\n$custom-range-track-width: 100% !default;\n$custom-range-track-height: .5rem !default;\n$custom-range-track-cursor: pointer !default;\n$custom-range-track-bg: $gray-300 !default;\n$custom-range-track-border-radius: 1rem !default;\n$custom-range-track-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default;\n\n$custom-range-thumb-width: 1rem !default;\n$custom-range-thumb-height: $custom-range-thumb-width !default;\n$custom-range-thumb-bg: $component-active-bg !default;\n$custom-range-thumb-border: 0 !default;\n$custom-range-thumb-border-radius: 1rem !default;\n$custom-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default;\n$custom-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default;\n$custom-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in IE/Edge\n$custom-range-thumb-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-range-thumb-disabled-bg: $gray-500 !default;\n\n$custom-file-height: $input-height !default;\n$custom-file-height-inner: $input-height-inner !default;\n$custom-file-focus-border-color: $input-focus-border-color !default;\n$custom-file-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-file-disabled-bg: $input-disabled-bg !default;\n\n$custom-file-padding-y: $input-padding-y !default;\n$custom-file-padding-x: $input-padding-x !default;\n$custom-file-line-height: $input-line-height !default;\n$custom-file-font-family: $input-font-family !default;\n$custom-file-font-weight: $input-font-weight !default;\n$custom-file-color: $input-color !default;\n$custom-file-bg: $input-bg !default;\n$custom-file-border-width: $input-border-width !default;\n$custom-file-border-color: $input-border-color !default;\n$custom-file-border-radius: $input-border-radius !default;\n$custom-file-box-shadow: $input-box-shadow !default;\n$custom-file-button-color: $custom-file-color !default;\n$custom-file-button-bg: $input-group-addon-bg !default;\n$custom-file-text: (\n en: \"Browse\"\n) !default;\n\n\n// Form validation\n\n$form-feedback-margin-top: $form-text-margin-top !default;\n$form-feedback-font-size: $small-font-size !default;\n$form-feedback-valid-color: theme-color(\"success\") !default;\n$form-feedback-invalid-color: theme-color(\"danger\") !default;\n\n$form-feedback-icon-valid-color: $form-feedback-valid-color !default;\n$form-feedback-icon-valid: url(\"data:image/svg+xml,\") !default;\n$form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;\n$form-feedback-icon-invalid: url(\"data:image/svg+xml,\") !default;\n\n$form-validation-states: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$form-validation-states: map-merge(\n (\n \"valid\": (\n \"color\": $form-feedback-valid-color,\n \"icon\": $form-feedback-icon-valid\n ),\n \"invalid\": (\n \"color\": $form-feedback-invalid-color,\n \"icon\": $form-feedback-icon-invalid\n ),\n ),\n $form-validation-states\n);\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n$zindex-dropdown: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n$zindex-modal-backdrop: 1040 !default;\n$zindex-modal: 1050 !default;\n$zindex-popover: 1060 !default;\n$zindex-tooltip: 1070 !default;\n\n\n// Navs\n\n$nav-link-padding-y: .5rem !default;\n$nav-link-padding-x: 1rem !default;\n$nav-link-disabled-color: $gray-600 !default;\n\n$nav-tabs-border-color: $gray-300 !default;\n$nav-tabs-border-width: $border-width !default;\n$nav-tabs-border-radius: $border-radius !default;\n$nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color !default;\n$nav-tabs-link-active-color: $gray-700 !default;\n$nav-tabs-link-active-bg: $body-bg !default;\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius: $border-radius !default;\n$nav-pills-link-active-color: $component-active-color !default;\n$nav-pills-link-active-bg: $component-active-bg !default;\n\n$nav-divider-color: $gray-200 !default;\n$nav-divider-margin-y: $spacer / 2 !default;\n\n\n// Navbar\n\n$navbar-padding-y: $spacer / 2 !default;\n$navbar-padding-x: $spacer !default;\n\n$navbar-nav-link-padding-x: .5rem !default;\n\n$navbar-brand-font-size: $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;\n$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) / 2 !default;\n\n$navbar-toggler-padding-y: .25rem !default;\n$navbar-toggler-padding-x: .75rem !default;\n$navbar-toggler-font-size: $font-size-lg !default;\n$navbar-toggler-border-radius: $btn-border-radius !default;\n\n$navbar-dark-color: rgba($white, .5) !default;\n$navbar-dark-hover-color: rgba($white, .75) !default;\n$navbar-dark-active-color: $white !default;\n$navbar-dark-disabled-color: rgba($white, .25) !default;\n$navbar-dark-toggler-icon-bg: url(\"data:image/svg+xml,\") !default;\n$navbar-dark-toggler-border-color: rgba($white, .1) !default;\n\n$navbar-light-color: rgba($black, .5) !default;\n$navbar-light-hover-color: rgba($black, .7) !default;\n$navbar-light-active-color: rgba($black, .9) !default;\n$navbar-light-disabled-color: rgba($black, .3) !default;\n$navbar-light-toggler-icon-bg: url(\"data:image/svg+xml,\") !default;\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\n\n$navbar-light-brand-color: $navbar-light-active-color !default;\n$navbar-light-brand-hover-color: $navbar-light-active-color !default;\n$navbar-dark-brand-color: $navbar-dark-active-color !default;\n$navbar-dark-brand-hover-color: $navbar-dark-active-color !default;\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n$dropdown-min-width: 10rem !default;\n$dropdown-padding-y: .5rem !default;\n$dropdown-spacer: .125rem !default;\n$dropdown-font-size: $font-size-base !default;\n$dropdown-color: $body-color !default;\n$dropdown-bg: $white !default;\n$dropdown-border-color: rgba($black, .15) !default;\n$dropdown-border-radius: $border-radius !default;\n$dropdown-border-width: $border-width !default;\n$dropdown-inner-border-radius: subtract($dropdown-border-radius, $dropdown-border-width) !default;\n$dropdown-divider-bg: $gray-200 !default;\n$dropdown-divider-margin-y: $nav-divider-margin-y !default;\n$dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;\n\n$dropdown-link-color: $gray-900 !default;\n$dropdown-link-hover-color: darken($gray-900, 5%) !default;\n$dropdown-link-hover-bg: $gray-100 !default;\n\n$dropdown-link-active-color: $component-active-color !default;\n$dropdown-link-active-bg: $component-active-bg !default;\n\n$dropdown-link-disabled-color: $gray-600 !default;\n\n$dropdown-item-padding-y: .25rem !default;\n$dropdown-item-padding-x: 1.5rem !default;\n\n$dropdown-header-color: $gray-600 !default;\n\n\n// Pagination\n\n$pagination-padding-y: .5rem !default;\n$pagination-padding-x: .75rem !default;\n$pagination-padding-y-sm: .25rem !default;\n$pagination-padding-x-sm: .5rem !default;\n$pagination-padding-y-lg: .75rem !default;\n$pagination-padding-x-lg: 1.5rem !default;\n$pagination-line-height: 1.25 !default;\n\n$pagination-color: $link-color !default;\n$pagination-bg: $white !default;\n$pagination-border-width: $border-width !default;\n$pagination-border-color: $gray-300 !default;\n\n$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$pagination-focus-outline: 0 !default;\n\n$pagination-hover-color: $link-hover-color !default;\n$pagination-hover-bg: $gray-200 !default;\n$pagination-hover-border-color: $gray-300 !default;\n\n$pagination-active-color: $component-active-color !default;\n$pagination-active-bg: $component-active-bg !default;\n$pagination-active-border-color: $pagination-active-bg !default;\n\n$pagination-disabled-color: $gray-600 !default;\n$pagination-disabled-bg: $white !default;\n$pagination-disabled-border-color: $gray-300 !default;\n\n\n// Jumbotron\n\n$jumbotron-padding: 2rem !default;\n$jumbotron-color: null !default;\n$jumbotron-bg: $gray-200 !default;\n\n\n// Cards\n\n$card-spacer-y: .75rem !default;\n$card-spacer-x: 1.25rem !default;\n$card-border-width: $border-width !default;\n$card-border-radius: $border-radius !default;\n$card-border-color: rgba($black, .125) !default;\n$card-inner-border-radius: subtract($card-border-radius, $card-border-width) !default;\n$card-cap-bg: rgba($black, .03) !default;\n$card-cap-color: null !default;\n$card-height: null !default;\n$card-color: null !default;\n$card-bg: $white !default;\n\n$card-img-overlay-padding: 1.25rem !default;\n\n$card-group-margin: $grid-gutter-width / 2 !default;\n$card-deck-margin: $card-group-margin !default;\n\n$card-columns-count: 3 !default;\n$card-columns-gap: 1.25rem !default;\n$card-columns-margin: $card-spacer-y !default;\n\n\n// Tooltips\n\n$tooltip-font-size: $font-size-sm !default;\n$tooltip-max-width: 200px !default;\n$tooltip-color: $white !default;\n$tooltip-bg: $black !default;\n$tooltip-border-radius: $border-radius !default;\n$tooltip-opacity: .9 !default;\n$tooltip-padding-y: .25rem !default;\n$tooltip-padding-x: .5rem !default;\n$tooltip-margin: 0 !default;\n\n$tooltip-arrow-width: .8rem !default;\n$tooltip-arrow-height: .4rem !default;\n$tooltip-arrow-color: $tooltip-bg !default;\n\n// Form tooltips must come after regular tooltips\n$form-feedback-tooltip-padding-y: $tooltip-padding-y !default;\n$form-feedback-tooltip-padding-x: $tooltip-padding-x !default;\n$form-feedback-tooltip-font-size: $tooltip-font-size !default;\n$form-feedback-tooltip-line-height: $line-height-base !default;\n$form-feedback-tooltip-opacity: $tooltip-opacity !default;\n$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;\n\n\n// Popovers\n\n$popover-font-size: $font-size-sm !default;\n$popover-bg: $white !default;\n$popover-max-width: 276px !default;\n$popover-border-width: $border-width !default;\n$popover-border-color: rgba($black, .2) !default;\n$popover-border-radius: $border-radius-lg !default;\n$popover-inner-border-radius: subtract($popover-border-radius, $popover-border-width) !default;\n$popover-box-shadow: 0 .25rem .5rem rgba($black, .2) !default;\n\n$popover-header-bg: darken($popover-bg, 3%) !default;\n$popover-header-color: $headings-color !default;\n$popover-header-padding-y: .5rem !default;\n$popover-header-padding-x: .75rem !default;\n\n$popover-body-color: $body-color !default;\n$popover-body-padding-y: $popover-header-padding-y !default;\n$popover-body-padding-x: $popover-header-padding-x !default;\n\n$popover-arrow-width: 1rem !default;\n$popover-arrow-height: .5rem !default;\n$popover-arrow-color: $popover-bg !default;\n\n$popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;\n\n\n// Toasts\n\n$toast-max-width: 350px !default;\n$toast-padding-x: .75rem !default;\n$toast-padding-y: .25rem !default;\n$toast-font-size: .875rem !default;\n$toast-color: null !default;\n$toast-background-color: rgba($white, .85) !default;\n$toast-border-width: 1px !default;\n$toast-border-color: rgba(0, 0, 0, .1) !default;\n$toast-border-radius: .25rem !default;\n$toast-box-shadow: 0 .25rem .75rem rgba($black, .1) !default;\n\n$toast-header-color: $gray-600 !default;\n$toast-header-background-color: rgba($white, .85) !default;\n$toast-header-border-color: rgba(0, 0, 0, .05) !default;\n\n\n// Badges\n\n$badge-font-size: 75% !default;\n$badge-font-weight: $font-weight-bold !default;\n$badge-padding-y: .25em !default;\n$badge-padding-x: .4em !default;\n$badge-border-radius: $border-radius !default;\n\n$badge-transition: $btn-transition !default;\n$badge-focus-width: $input-btn-focus-width !default;\n\n$badge-pill-padding-x: .6em !default;\n// Use a higher than normal value to ensure completely rounded edges when\n// customizing padding or font-size on labels.\n$badge-pill-border-radius: 10rem !default;\n\n\n// Modals\n\n// Padding applied to the modal body\n$modal-inner-padding: 1rem !default;\n\n// Margin between elements in footer, must be lower than or equal to 2 * $modal-inner-padding\n$modal-footer-margin-between: .5rem !default;\n\n$modal-dialog-margin: .5rem !default;\n$modal-dialog-margin-y-sm-up: 1.75rem !default;\n\n$modal-title-line-height: $line-height-base !default;\n\n$modal-content-color: null !default;\n$modal-content-bg: $white !default;\n$modal-content-border-color: rgba($black, .2) !default;\n$modal-content-border-width: $border-width !default;\n$modal-content-border-radius: $border-radius-lg !default;\n$modal-content-inner-border-radius: subtract($modal-content-border-radius, $modal-content-border-width) !default;\n$modal-content-box-shadow-xs: 0 .25rem .5rem rgba($black, .5) !default;\n$modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .5) !default;\n\n$modal-backdrop-bg: $black !default;\n$modal-backdrop-opacity: .5 !default;\n$modal-header-border-color: $border-color !default;\n$modal-footer-border-color: $modal-header-border-color !default;\n$modal-header-border-width: $modal-content-border-width !default;\n$modal-footer-border-width: $modal-header-border-width !default;\n$modal-header-padding-y: 1rem !default;\n$modal-header-padding-x: 1rem !default;\n$modal-header-padding: $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility\n\n$modal-xl: 1140px !default;\n$modal-lg: 800px !default;\n$modal-md: 500px !default;\n$modal-sm: 300px !default;\n\n$modal-fade-transform: translate(0, -50px) !default;\n$modal-show-transform: none !default;\n$modal-transition: transform .3s ease-out !default;\n$modal-scale-transform: scale(1.02) !default;\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n$alert-padding-y: .75rem !default;\n$alert-padding-x: 1.25rem !default;\n$alert-margin-bottom: 1rem !default;\n$alert-border-radius: $border-radius !default;\n$alert-link-font-weight: $font-weight-bold !default;\n$alert-border-width: $border-width !default;\n\n$alert-bg-level: -10 !default;\n$alert-border-level: -9 !default;\n$alert-color-level: 6 !default;\n\n\n// Progress bars\n\n$progress-height: 1rem !default;\n$progress-font-size: $font-size-base * .75 !default;\n$progress-bg: $gray-200 !default;\n$progress-border-radius: $border-radius !default;\n$progress-box-shadow: inset 0 .1rem .1rem rgba($black, .1) !default;\n$progress-bar-color: $white !default;\n$progress-bar-bg: theme-color(\"primary\") !default;\n$progress-bar-animation-timing: 1s linear infinite !default;\n$progress-bar-transition: width .6s ease !default;\n\n\n// List group\n\n$list-group-color: null !default;\n$list-group-bg: $white !default;\n$list-group-border-color: rgba($black, .125) !default;\n$list-group-border-width: $border-width !default;\n$list-group-border-radius: $border-radius !default;\n\n$list-group-item-padding-y: .75rem !default;\n$list-group-item-padding-x: 1.25rem !default;\n\n$list-group-hover-bg: $gray-100 !default;\n$list-group-active-color: $component-active-color !default;\n$list-group-active-bg: $component-active-bg !default;\n$list-group-active-border-color: $list-group-active-bg !default;\n\n$list-group-disabled-color: $gray-600 !default;\n$list-group-disabled-bg: $list-group-bg !default;\n\n$list-group-action-color: $gray-700 !default;\n$list-group-action-hover-color: $list-group-action-color !default;\n\n$list-group-action-active-color: $body-color !default;\n$list-group-action-active-bg: $gray-200 !default;\n\n\n// Image thumbnails\n\n$thumbnail-padding: .25rem !default;\n$thumbnail-bg: $body-bg !default;\n$thumbnail-border-width: $border-width !default;\n$thumbnail-border-color: $gray-300 !default;\n$thumbnail-border-radius: $border-radius !default;\n$thumbnail-box-shadow: 0 1px 2px rgba($black, .075) !default;\n\n\n// Figures\n\n$figure-caption-font-size: 90% !default;\n$figure-caption-color: $gray-600 !default;\n\n\n// Breadcrumbs\n\n$breadcrumb-font-size: null !default;\n\n$breadcrumb-padding-y: .75rem !default;\n$breadcrumb-padding-x: 1rem !default;\n$breadcrumb-item-padding: .5rem !default;\n\n$breadcrumb-margin-bottom: 1rem !default;\n\n$breadcrumb-bg: $gray-200 !default;\n$breadcrumb-divider-color: $gray-600 !default;\n$breadcrumb-active-color: $gray-600 !default;\n$breadcrumb-divider: quote(\"/\") !default;\n\n$breadcrumb-border-radius: $border-radius !default;\n\n\n// Carousel\n\n$carousel-control-color: $white !default;\n$carousel-control-width: 15% !default;\n$carousel-control-opacity: .5 !default;\n$carousel-control-hover-opacity: .9 !default;\n$carousel-control-transition: opacity .15s ease !default;\n\n$carousel-indicator-width: 30px !default;\n$carousel-indicator-height: 3px !default;\n$carousel-indicator-hit-area-height: 10px !default;\n$carousel-indicator-spacer: 3px !default;\n$carousel-indicator-active-bg: $white !default;\n$carousel-indicator-transition: opacity .6s ease !default;\n\n$carousel-caption-width: 70% !default;\n$carousel-caption-color: $white !default;\n\n$carousel-control-icon-width: 20px !default;\n\n$carousel-control-prev-icon-bg: url(\"data:image/svg+xml,\") !default;\n$carousel-control-next-icon-bg: url(\"data:image/svg+xml,\") !default;\n\n$carousel-transition-duration: .6s !default;\n$carousel-transition: transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)\n\n\n// Spinners\n\n$spinner-width: 2rem !default;\n$spinner-height: $spinner-width !default;\n$spinner-border-width: .25em !default;\n\n$spinner-width-sm: 1rem !default;\n$spinner-height-sm: $spinner-width-sm !default;\n$spinner-border-width-sm: .2em !default;\n\n\n// Close\n\n$close-font-size: $font-size-base * 1.5 !default;\n$close-font-weight: $font-weight-bold !default;\n$close-color: $black !default;\n$close-text-shadow: 0 1px 0 $white !default;\n\n\n// Code\n\n$code-font-size: 87.5% !default;\n$code-color: $pink !default;\n\n$kbd-padding-y: .2rem !default;\n$kbd-padding-x: .4rem !default;\n$kbd-font-size: $code-font-size !default;\n$kbd-color: $white !default;\n$kbd-bg: $gray-900 !default;\n\n$pre-color: $gray-900 !default;\n$pre-scrollable-max-height: 340px !default;\n\n\n// Utilities\n\n$displays: none, inline, inline-block, block, table, table-row, table-cell, flex, inline-flex !default;\n$overflows: auto, hidden !default;\n$positions: static, relative, absolute, fixed, sticky !default;\n\n\n// Printing\n\n$print-page-size: a3 !default;\n$print-body-min-width: map-get($grid-breakpoints, \"lg\") !default;\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n\n @for $i from 1 through $grid-row-columns {\n .row-cols#{$infix}-#{$i} {\n @include row-cols($i);\n }\n }\n\n .col#{$infix}-auto {\n @include make-col-auto();\n }\n\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n .order#{$infix}-first { order: -1; }\n\n .order#{$infix}-last { order: $columns + 1; }\n\n @for $i from 0 through $columns {\n .order#{$infix}-#{$i} { order: $i; }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Utilities for common `display` values\n//\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $value in $displays {\n .d#{$infix}-#{$value} { display: $value !important; }\n }\n }\n}\n\n\n//\n// Utilities for toggling `display` in print\n//\n\n@media print {\n @each $value in $displays {\n .d-print-#{$value} { display: $value !important; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Flex variation\n//\n// Custom styles for additional flex alignment options.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .flex#{$infix}-row { flex-direction: row !important; }\n .flex#{$infix}-column { flex-direction: column !important; }\n .flex#{$infix}-row-reverse { flex-direction: row-reverse !important; }\n .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }\n\n .flex#{$infix}-wrap { flex-wrap: wrap !important; }\n .flex#{$infix}-nowrap { flex-wrap: nowrap !important; }\n .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }\n .flex#{$infix}-fill { flex: 1 1 auto !important; }\n .flex#{$infix}-grow-0 { flex-grow: 0 !important; }\n .flex#{$infix}-grow-1 { flex-grow: 1 !important; }\n .flex#{$infix}-shrink-0 { flex-shrink: 0 !important; }\n .flex#{$infix}-shrink-1 { flex-shrink: 1 !important; }\n\n .justify-content#{$infix}-start { justify-content: flex-start !important; }\n .justify-content#{$infix}-end { justify-content: flex-end !important; }\n .justify-content#{$infix}-center { justify-content: center !important; }\n .justify-content#{$infix}-between { justify-content: space-between !important; }\n .justify-content#{$infix}-around { justify-content: space-around !important; }\n\n .align-items#{$infix}-start { align-items: flex-start !important; }\n .align-items#{$infix}-end { align-items: flex-end !important; }\n .align-items#{$infix}-center { align-items: center !important; }\n .align-items#{$infix}-baseline { align-items: baseline !important; }\n .align-items#{$infix}-stretch { align-items: stretch !important; }\n\n .align-content#{$infix}-start { align-content: flex-start !important; }\n .align-content#{$infix}-end { align-content: flex-end !important; }\n .align-content#{$infix}-center { align-content: center !important; }\n .align-content#{$infix}-between { align-content: space-between !important; }\n .align-content#{$infix}-around { align-content: space-around !important; }\n .align-content#{$infix}-stretch { align-content: stretch !important; }\n\n .align-self#{$infix}-auto { align-self: auto !important; }\n .align-self#{$infix}-start { align-self: flex-start !important; }\n .align-self#{$infix}-end { align-self: flex-end !important; }\n .align-self#{$infix}-center { align-self: center !important; }\n .align-self#{$infix}-baseline { align-self: baseline !important; }\n .align-self#{$infix}-stretch { align-self: stretch !important; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Margin and Padding\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $prop, $abbrev in (margin: m, padding: p) {\n @each $size, $length in $spacers {\n .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }\n .#{$abbrev}t#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-top: $length !important;\n }\n .#{$abbrev}r#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-right: $length !important;\n }\n .#{$abbrev}b#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-bottom: $length !important;\n }\n .#{$abbrev}l#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-left: $length !important;\n }\n }\n }\n\n // Negative margins (e.g., where `.mb-n1` is negative version of `.mb-1`)\n @each $size, $length in $spacers {\n @if $size != 0 {\n .m#{$infix}-n#{$size} { margin: -$length !important; }\n .mt#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-top: -$length !important;\n }\n .mr#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-right: -$length !important;\n }\n .mb#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-bottom: -$length !important;\n }\n .ml#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-left: -$length !important;\n }\n }\n }\n\n // Some special margin utils\n .m#{$infix}-auto { margin: auto !important; }\n .mt#{$infix}-auto,\n .my#{$infix}-auto {\n margin-top: auto !important;\n }\n .mr#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-right: auto !important;\n }\n .mb#{$infix}-auto,\n .my#{$infix}-auto {\n margin-bottom: auto !important;\n }\n .ml#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-left: auto !important;\n }\n }\n}\n"]} \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-grid.min.css b/maxkey-web-mgt-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-grid.min.css deleted file mode 100644 index 6533f319..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-grid.min.css +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap Grid v4.4.1 (https://getbootstrap.com/) - * Copyright 2011-2019 The Bootstrap Authors - * Copyright 2011-2019 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */html{box-sizing:border-box;-ms-overflow-style:scrollbar}*,::after,::before{box-sizing:inherit}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}} -/*# sourceMappingURL=bootstrap-grid.min.css.map */ \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-grid.min.css.map b/maxkey-web-mgt-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-grid.min.css.map deleted file mode 100644 index 1b393db3..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-grid.min.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../scss/bootstrap-grid.scss","dist/css/bootstrap-grid.css","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixins/_grid-framework.scss","../../scss/utilities/_display.scss","../../scss/utilities/_flex.scss","../../scss/utilities/_spacing.scss"],"names":[],"mappings":"AAAA;;;;;AAOA,KACE,WAAA,WACA,mBAAA,UAGF,ECCA,QADA,SDGE,WAAA,QETA,WCDA,MAAA,KACA,cAAA,KACA,aAAA,KACA,aAAA,KACA,YAAA,KCmDE,yBFtDF,WCWI,UAAA,OC2CF,yBFtDF,WCWI,UAAA,OC2CF,yBFtDF,WCWI,UAAA,OC2CF,0BFtDF,WCWI,UAAA,QDLJ,iBAAA,cAAA,cAAA,cAAA,cCPA,MAAA,KACA,cAAA,KACA,aAAA,KACA,aAAA,KACA,YAAA,KCmDE,yBFrCE,WAAA,cACE,UAAA,OEoCJ,yBFrCE,WAAA,cAAA,cACE,UAAA,OEoCJ,yBFrCE,WAAA,cAAA,cAAA,cACE,UAAA,OEoCJ,0BFrCE,WAAA,cAAA,cAAA,cAAA,cACE,UAAA,QAoBN,KCrBA,QAAA,YAAA,QAAA,KACA,cAAA,KAAA,UAAA,KACA,aAAA,MACA,YAAA,MDwBA,YACE,aAAA,EACA,YAAA,EAFF,iBD8CF,0BCxCM,cAAA,EACA,aAAA,EGlDJ,KAAA,OAAA,QAAA,QAAA,QAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OJ+FF,UAEqJ,QAAvI,UAAmG,WAAY,WAAY,WAAhH,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UACtG,aAFqJ,QAAvI,UAAmG,WAAY,WAAY,WAAhH,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UACtG,aAFkJ,QAAvI,UAAmG,WAAY,WAAY,WAAhH,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UACnG,aAEqJ,QAAvI,UAAmG,WAAY,WAAY,WAAhH,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UACtG,aIlGI,SAAA,SACA,MAAA,KACA,cAAA,KACA,aAAA,KAmBE,KACE,wBAAA,EAAA,WAAA,EACA,kBAAA,EAAA,UAAA,EACA,UAAA,KAIA,cF4BJ,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KACA,UAAA,KE7BI,cF4BJ,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IACA,UAAA,IE7BI,cF4BJ,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WACA,UAAA,WE7BI,cF4BJ,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IACA,UAAA,IE7BI,cF4BJ,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IACA,UAAA,IE7BI,cF4BJ,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WACA,UAAA,WExBE,UFMJ,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KACA,MAAA,KACA,UAAA,KEHM,OFPN,SAAA,EAAA,EAAA,UAAA,KAAA,EAAA,EAAA,UAIA,UAAA,UEGM,OFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,OFPN,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IAIA,UAAA,IEGM,OFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,OFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,OFPN,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IAIA,UAAA,IEGM,OFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,OFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,OFPN,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IAIA,UAAA,IEGM,QFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,QFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,QFPN,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KAIA,UAAA,KEQI,aAAwB,eAAA,GAAA,MAAA,GAExB,YAAuB,eAAA,GAAA,MAAA,GAGrB,SAAwB,eAAA,EAAA,MAAA,EAAxB,SAAwB,eAAA,EAAA,MAAA,EAAxB,SAAwB,eAAA,EAAA,MAAA,EAAxB,SAAwB,eAAA,EAAA,MAAA,EAAxB,SAAwB,eAAA,EAAA,MAAA,EAAxB,SAAwB,eAAA,EAAA,MAAA,EAAxB,SAAwB,eAAA,EAAA,MAAA,EAAxB,SAAwB,eAAA,EAAA,MAAA,EAAxB,SAAwB,eAAA,EAAA,MAAA,EAAxB,SAAwB,eAAA,EAAA,MAAA,EAAxB,UAAwB,eAAA,GAAA,MAAA,GAAxB,UAAwB,eAAA,GAAA,MAAA,GAAxB,UAAwB,eAAA,GAAA,MAAA,GAMtB,UFRR,YAAA,UEQQ,UFRR,YAAA,WEQQ,UFRR,YAAA,IEQQ,UFRR,YAAA,WEQQ,UFRR,YAAA,WEQQ,UFRR,YAAA,IEQQ,UFRR,YAAA,WEQQ,UFRR,YAAA,WEQQ,UFRR,YAAA,IEQQ,WFRR,YAAA,WEQQ,WFRR,YAAA,WCKE,yBC9BE,QACE,wBAAA,EAAA,WAAA,EACA,kBAAA,EAAA,UAAA,EACA,UAAA,KAIA,iBF4BJ,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KACA,UAAA,KE7BI,iBF4BJ,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IACA,UAAA,IE7BI,iBF4BJ,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WACA,UAAA,WE7BI,iBF4BJ,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IACA,UAAA,IE7BI,iBF4BJ,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IACA,UAAA,IE7BI,iBF4BJ,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WACA,UAAA,WExBE,aFMJ,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KACA,MAAA,KACA,UAAA,KEHM,UFPN,SAAA,EAAA,EAAA,UAAA,KAAA,EAAA,EAAA,UAIA,UAAA,UEGM,UFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,UFPN,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IAIA,UAAA,IEGM,UFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,UFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,UFPN,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IAIA,UAAA,IEGM,UFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,UFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,UFPN,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IAIA,UAAA,IEGM,WFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,WFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,WFPN,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KAIA,UAAA,KEQI,gBAAwB,eAAA,GAAA,MAAA,GAExB,eAAuB,eAAA,GAAA,MAAA,GAGrB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,aAAwB,eAAA,GAAA,MAAA,GAAxB,aAAwB,eAAA,GAAA,MAAA,GAAxB,aAAwB,eAAA,GAAA,MAAA,GAMtB,aFRR,YAAA,EEQQ,aFRR,YAAA,UEQQ,aFRR,YAAA,WEQQ,aFRR,YAAA,IEQQ,aFRR,YAAA,WEQQ,aFRR,YAAA,WEQQ,aFRR,YAAA,IEQQ,aFRR,YAAA,WEQQ,aFRR,YAAA,WEQQ,aFRR,YAAA,IEQQ,cFRR,YAAA,WEQQ,cFRR,YAAA,YCKE,yBC9BE,QACE,wBAAA,EAAA,WAAA,EACA,kBAAA,EAAA,UAAA,EACA,UAAA,KAIA,iBF4BJ,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KACA,UAAA,KE7BI,iBF4BJ,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IACA,UAAA,IE7BI,iBF4BJ,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WACA,UAAA,WE7BI,iBF4BJ,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IACA,UAAA,IE7BI,iBF4BJ,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IACA,UAAA,IE7BI,iBF4BJ,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WACA,UAAA,WExBE,aFMJ,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KACA,MAAA,KACA,UAAA,KEHM,UFPN,SAAA,EAAA,EAAA,UAAA,KAAA,EAAA,EAAA,UAIA,UAAA,UEGM,UFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,UFPN,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IAIA,UAAA,IEGM,UFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,UFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,UFPN,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IAIA,UAAA,IEGM,UFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,UFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,UFPN,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IAIA,UAAA,IEGM,WFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,WFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,WFPN,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KAIA,UAAA,KEQI,gBAAwB,eAAA,GAAA,MAAA,GAExB,eAAuB,eAAA,GAAA,MAAA,GAGrB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,aAAwB,eAAA,GAAA,MAAA,GAAxB,aAAwB,eAAA,GAAA,MAAA,GAAxB,aAAwB,eAAA,GAAA,MAAA,GAMtB,aFRR,YAAA,EEQQ,aFRR,YAAA,UEQQ,aFRR,YAAA,WEQQ,aFRR,YAAA,IEQQ,aFRR,YAAA,WEQQ,aFRR,YAAA,WEQQ,aFRR,YAAA,IEQQ,aFRR,YAAA,WEQQ,aFRR,YAAA,WEQQ,aFRR,YAAA,IEQQ,cFRR,YAAA,WEQQ,cFRR,YAAA,YCKE,yBC9BE,QACE,wBAAA,EAAA,WAAA,EACA,kBAAA,EAAA,UAAA,EACA,UAAA,KAIA,iBF4BJ,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KACA,UAAA,KE7BI,iBF4BJ,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IACA,UAAA,IE7BI,iBF4BJ,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WACA,UAAA,WE7BI,iBF4BJ,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IACA,UAAA,IE7BI,iBF4BJ,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IACA,UAAA,IE7BI,iBF4BJ,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WACA,UAAA,WExBE,aFMJ,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KACA,MAAA,KACA,UAAA,KEHM,UFPN,SAAA,EAAA,EAAA,UAAA,KAAA,EAAA,EAAA,UAIA,UAAA,UEGM,UFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,UFPN,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IAIA,UAAA,IEGM,UFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,UFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,UFPN,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IAIA,UAAA,IEGM,UFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,UFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,UFPN,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IAIA,UAAA,IEGM,WFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,WFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,WFPN,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KAIA,UAAA,KEQI,gBAAwB,eAAA,GAAA,MAAA,GAExB,eAAuB,eAAA,GAAA,MAAA,GAGrB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,aAAwB,eAAA,GAAA,MAAA,GAAxB,aAAwB,eAAA,GAAA,MAAA,GAAxB,aAAwB,eAAA,GAAA,MAAA,GAMtB,aFRR,YAAA,EEQQ,aFRR,YAAA,UEQQ,aFRR,YAAA,WEQQ,aFRR,YAAA,IEQQ,aFRR,YAAA,WEQQ,aFRR,YAAA,WEQQ,aFRR,YAAA,IEQQ,aFRR,YAAA,WEQQ,aFRR,YAAA,WEQQ,aFRR,YAAA,IEQQ,cFRR,YAAA,WEQQ,cFRR,YAAA,YCKE,0BC9BE,QACE,wBAAA,EAAA,WAAA,EACA,kBAAA,EAAA,UAAA,EACA,UAAA,KAIA,iBF4BJ,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KACA,UAAA,KE7BI,iBF4BJ,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IACA,UAAA,IE7BI,iBF4BJ,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WACA,UAAA,WE7BI,iBF4BJ,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IACA,UAAA,IE7BI,iBF4BJ,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IACA,UAAA,IE7BI,iBF4BJ,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WACA,UAAA,WExBE,aFMJ,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KACA,MAAA,KACA,UAAA,KEHM,UFPN,SAAA,EAAA,EAAA,UAAA,KAAA,EAAA,EAAA,UAIA,UAAA,UEGM,UFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,UFPN,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IAIA,UAAA,IEGM,UFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,UFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,UFPN,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IAIA,UAAA,IEGM,UFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,UFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,UFPN,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IAIA,UAAA,IEGM,WFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,WFPN,SAAA,EAAA,EAAA,WAAA,KAAA,EAAA,EAAA,WAIA,UAAA,WEGM,WFPN,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KAIA,UAAA,KEQI,gBAAwB,eAAA,GAAA,MAAA,GAExB,eAAuB,eAAA,GAAA,MAAA,GAGrB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,YAAwB,eAAA,EAAA,MAAA,EAAxB,aAAwB,eAAA,GAAA,MAAA,GAAxB,aAAwB,eAAA,GAAA,MAAA,GAAxB,aAAwB,eAAA,GAAA,MAAA,GAMtB,aFRR,YAAA,EEQQ,aFRR,YAAA,UEQQ,aFRR,YAAA,WEQQ,aFRR,YAAA,IEQQ,aFRR,YAAA,WEQQ,aFRR,YAAA,WEQQ,aFRR,YAAA,IEQQ,aFRR,YAAA,WEQQ,aFRR,YAAA,WEQQ,aFRR,YAAA,IEQQ,cFRR,YAAA,WEQQ,cFRR,YAAA,YG5CI,QAAwB,QAAA,eAAxB,UAAwB,QAAA,iBAAxB,gBAAwB,QAAA,uBAAxB,SAAwB,QAAA,gBAAxB,SAAwB,QAAA,gBAAxB,aAAwB,QAAA,oBAAxB,cAAwB,QAAA,qBAAxB,QAAwB,QAAA,sBAAA,QAAA,eAAxB,eAAwB,QAAA,6BAAA,QAAA,sBFiD1B,yBEjDE,WAAwB,QAAA,eAAxB,aAAwB,QAAA,iBAAxB,mBAAwB,QAAA,uBAAxB,YAAwB,QAAA,gBAAxB,YAAwB,QAAA,gBAAxB,gBAAwB,QAAA,oBAAxB,iBAAwB,QAAA,qBAAxB,WAAwB,QAAA,sBAAA,QAAA,eAAxB,kBAAwB,QAAA,6BAAA,QAAA,uBFiD1B,yBEjDE,WAAwB,QAAA,eAAxB,aAAwB,QAAA,iBAAxB,mBAAwB,QAAA,uBAAxB,YAAwB,QAAA,gBAAxB,YAAwB,QAAA,gBAAxB,gBAAwB,QAAA,oBAAxB,iBAAwB,QAAA,qBAAxB,WAAwB,QAAA,sBAAA,QAAA,eAAxB,kBAAwB,QAAA,6BAAA,QAAA,uBFiD1B,yBEjDE,WAAwB,QAAA,eAAxB,aAAwB,QAAA,iBAAxB,mBAAwB,QAAA,uBAAxB,YAAwB,QAAA,gBAAxB,YAAwB,QAAA,gBAAxB,gBAAwB,QAAA,oBAAxB,iBAAwB,QAAA,qBAAxB,WAAwB,QAAA,sBAAA,QAAA,eAAxB,kBAAwB,QAAA,6BAAA,QAAA,uBFiD1B,0BEjDE,WAAwB,QAAA,eAAxB,aAAwB,QAAA,iBAAxB,mBAAwB,QAAA,uBAAxB,YAAwB,QAAA,gBAAxB,YAAwB,QAAA,gBAAxB,gBAAwB,QAAA,oBAAxB,iBAAwB,QAAA,qBAAxB,WAAwB,QAAA,sBAAA,QAAA,eAAxB,kBAAwB,QAAA,6BAAA,QAAA,uBAU9B,aAEI,cAAqB,QAAA,eAArB,gBAAqB,QAAA,iBAArB,sBAAqB,QAAA,uBAArB,eAAqB,QAAA,gBAArB,eAAqB,QAAA,gBAArB,mBAAqB,QAAA,oBAArB,oBAAqB,QAAA,qBAArB,cAAqB,QAAA,sBAAA,QAAA,eAArB,qBAAqB,QAAA,6BAAA,QAAA,uBCbrB,UAAgC,mBAAA,cAAA,eAAA,cAChC,aAAgC,mBAAA,iBAAA,eAAA,iBAChC,kBAAgC,mBAAA,sBAAA,eAAA,sBAChC,qBAAgC,mBAAA,yBAAA,eAAA,yBAEhC,WAA8B,cAAA,eAAA,UAAA,eAC9B,aAA8B,cAAA,iBAAA,UAAA,iBAC9B,mBAA8B,cAAA,uBAAA,UAAA,uBAC9B,WAA8B,SAAA,EAAA,EAAA,eAAA,KAAA,EAAA,EAAA,eAC9B,aAA8B,kBAAA,YAAA,UAAA,YAC9B,aAA8B,kBAAA,YAAA,UAAA,YAC9B,eAA8B,kBAAA,YAAA,YAAA,YAC9B,eAA8B,kBAAA,YAAA,YAAA,YAE9B,uBAAoC,cAAA,gBAAA,gBAAA,qBACpC,qBAAoC,cAAA,cAAA,gBAAA,mBACpC,wBAAoC,cAAA,iBAAA,gBAAA,iBACpC,yBAAoC,cAAA,kBAAA,gBAAA,wBACpC,wBAAoC,cAAA,qBAAA,gBAAA,uBAEpC,mBAAiC,eAAA,gBAAA,YAAA,qBACjC,iBAAiC,eAAA,cAAA,YAAA,mBACjC,oBAAiC,eAAA,iBAAA,YAAA,iBACjC,sBAAiC,eAAA,mBAAA,YAAA,mBACjC,qBAAiC,eAAA,kBAAA,YAAA,kBAEjC,qBAAkC,mBAAA,gBAAA,cAAA,qBAClC,mBAAkC,mBAAA,cAAA,cAAA,mBAClC,sBAAkC,mBAAA,iBAAA,cAAA,iBAClC,uBAAkC,mBAAA,kBAAA,cAAA,wBAClC,sBAAkC,mBAAA,qBAAA,cAAA,uBAClC,uBAAkC,mBAAA,kBAAA,cAAA,kBAElC,iBAAgC,oBAAA,eAAA,WAAA,eAChC,kBAAgC,oBAAA,gBAAA,WAAA,qBAChC,gBAAgC,oBAAA,cAAA,WAAA,mBAChC,mBAAgC,oBAAA,iBAAA,WAAA,iBAChC,qBAAgC,oBAAA,mBAAA,WAAA,mBAChC,oBAAgC,oBAAA,kBAAA,WAAA,kBHYhC,yBGlDA,aAAgC,mBAAA,cAAA,eAAA,cAChC,gBAAgC,mBAAA,iBAAA,eAAA,iBAChC,qBAAgC,mBAAA,sBAAA,eAAA,sBAChC,wBAAgC,mBAAA,yBAAA,eAAA,yBAEhC,cAA8B,cAAA,eAAA,UAAA,eAC9B,gBAA8B,cAAA,iBAAA,UAAA,iBAC9B,sBAA8B,cAAA,uBAAA,UAAA,uBAC9B,cAA8B,SAAA,EAAA,EAAA,eAAA,KAAA,EAAA,EAAA,eAC9B,gBAA8B,kBAAA,YAAA,UAAA,YAC9B,gBAA8B,kBAAA,YAAA,UAAA,YAC9B,kBAA8B,kBAAA,YAAA,YAAA,YAC9B,kBAA8B,kBAAA,YAAA,YAAA,YAE9B,0BAAoC,cAAA,gBAAA,gBAAA,qBACpC,wBAAoC,cAAA,cAAA,gBAAA,mBACpC,2BAAoC,cAAA,iBAAA,gBAAA,iBACpC,4BAAoC,cAAA,kBAAA,gBAAA,wBACpC,2BAAoC,cAAA,qBAAA,gBAAA,uBAEpC,sBAAiC,eAAA,gBAAA,YAAA,qBACjC,oBAAiC,eAAA,cAAA,YAAA,mBACjC,uBAAiC,eAAA,iBAAA,YAAA,iBACjC,yBAAiC,eAAA,mBAAA,YAAA,mBACjC,wBAAiC,eAAA,kBAAA,YAAA,kBAEjC,wBAAkC,mBAAA,gBAAA,cAAA,qBAClC,sBAAkC,mBAAA,cAAA,cAAA,mBAClC,yBAAkC,mBAAA,iBAAA,cAAA,iBAClC,0BAAkC,mBAAA,kBAAA,cAAA,wBAClC,yBAAkC,mBAAA,qBAAA,cAAA,uBAClC,0BAAkC,mBAAA,kBAAA,cAAA,kBAElC,oBAAgC,oBAAA,eAAA,WAAA,eAChC,qBAAgC,oBAAA,gBAAA,WAAA,qBAChC,mBAAgC,oBAAA,cAAA,WAAA,mBAChC,sBAAgC,oBAAA,iBAAA,WAAA,iBAChC,wBAAgC,oBAAA,mBAAA,WAAA,mBAChC,uBAAgC,oBAAA,kBAAA,WAAA,mBHYhC,yBGlDA,aAAgC,mBAAA,cAAA,eAAA,cAChC,gBAAgC,mBAAA,iBAAA,eAAA,iBAChC,qBAAgC,mBAAA,sBAAA,eAAA,sBAChC,wBAAgC,mBAAA,yBAAA,eAAA,yBAEhC,cAA8B,cAAA,eAAA,UAAA,eAC9B,gBAA8B,cAAA,iBAAA,UAAA,iBAC9B,sBAA8B,cAAA,uBAAA,UAAA,uBAC9B,cAA8B,SAAA,EAAA,EAAA,eAAA,KAAA,EAAA,EAAA,eAC9B,gBAA8B,kBAAA,YAAA,UAAA,YAC9B,gBAA8B,kBAAA,YAAA,UAAA,YAC9B,kBAA8B,kBAAA,YAAA,YAAA,YAC9B,kBAA8B,kBAAA,YAAA,YAAA,YAE9B,0BAAoC,cAAA,gBAAA,gBAAA,qBACpC,wBAAoC,cAAA,cAAA,gBAAA,mBACpC,2BAAoC,cAAA,iBAAA,gBAAA,iBACpC,4BAAoC,cAAA,kBAAA,gBAAA,wBACpC,2BAAoC,cAAA,qBAAA,gBAAA,uBAEpC,sBAAiC,eAAA,gBAAA,YAAA,qBACjC,oBAAiC,eAAA,cAAA,YAAA,mBACjC,uBAAiC,eAAA,iBAAA,YAAA,iBACjC,yBAAiC,eAAA,mBAAA,YAAA,mBACjC,wBAAiC,eAAA,kBAAA,YAAA,kBAEjC,wBAAkC,mBAAA,gBAAA,cAAA,qBAClC,sBAAkC,mBAAA,cAAA,cAAA,mBAClC,yBAAkC,mBAAA,iBAAA,cAAA,iBAClC,0BAAkC,mBAAA,kBAAA,cAAA,wBAClC,yBAAkC,mBAAA,qBAAA,cAAA,uBAClC,0BAAkC,mBAAA,kBAAA,cAAA,kBAElC,oBAAgC,oBAAA,eAAA,WAAA,eAChC,qBAAgC,oBAAA,gBAAA,WAAA,qBAChC,mBAAgC,oBAAA,cAAA,WAAA,mBAChC,sBAAgC,oBAAA,iBAAA,WAAA,iBAChC,wBAAgC,oBAAA,mBAAA,WAAA,mBAChC,uBAAgC,oBAAA,kBAAA,WAAA,mBHYhC,yBGlDA,aAAgC,mBAAA,cAAA,eAAA,cAChC,gBAAgC,mBAAA,iBAAA,eAAA,iBAChC,qBAAgC,mBAAA,sBAAA,eAAA,sBAChC,wBAAgC,mBAAA,yBAAA,eAAA,yBAEhC,cAA8B,cAAA,eAAA,UAAA,eAC9B,gBAA8B,cAAA,iBAAA,UAAA,iBAC9B,sBAA8B,cAAA,uBAAA,UAAA,uBAC9B,cAA8B,SAAA,EAAA,EAAA,eAAA,KAAA,EAAA,EAAA,eAC9B,gBAA8B,kBAAA,YAAA,UAAA,YAC9B,gBAA8B,kBAAA,YAAA,UAAA,YAC9B,kBAA8B,kBAAA,YAAA,YAAA,YAC9B,kBAA8B,kBAAA,YAAA,YAAA,YAE9B,0BAAoC,cAAA,gBAAA,gBAAA,qBACpC,wBAAoC,cAAA,cAAA,gBAAA,mBACpC,2BAAoC,cAAA,iBAAA,gBAAA,iBACpC,4BAAoC,cAAA,kBAAA,gBAAA,wBACpC,2BAAoC,cAAA,qBAAA,gBAAA,uBAEpC,sBAAiC,eAAA,gBAAA,YAAA,qBACjC,oBAAiC,eAAA,cAAA,YAAA,mBACjC,uBAAiC,eAAA,iBAAA,YAAA,iBACjC,yBAAiC,eAAA,mBAAA,YAAA,mBACjC,wBAAiC,eAAA,kBAAA,YAAA,kBAEjC,wBAAkC,mBAAA,gBAAA,cAAA,qBAClC,sBAAkC,mBAAA,cAAA,cAAA,mBAClC,yBAAkC,mBAAA,iBAAA,cAAA,iBAClC,0BAAkC,mBAAA,kBAAA,cAAA,wBAClC,yBAAkC,mBAAA,qBAAA,cAAA,uBAClC,0BAAkC,mBAAA,kBAAA,cAAA,kBAElC,oBAAgC,oBAAA,eAAA,WAAA,eAChC,qBAAgC,oBAAA,gBAAA,WAAA,qBAChC,mBAAgC,oBAAA,cAAA,WAAA,mBAChC,sBAAgC,oBAAA,iBAAA,WAAA,iBAChC,wBAAgC,oBAAA,mBAAA,WAAA,mBAChC,uBAAgC,oBAAA,kBAAA,WAAA,mBHYhC,0BGlDA,aAAgC,mBAAA,cAAA,eAAA,cAChC,gBAAgC,mBAAA,iBAAA,eAAA,iBAChC,qBAAgC,mBAAA,sBAAA,eAAA,sBAChC,wBAAgC,mBAAA,yBAAA,eAAA,yBAEhC,cAA8B,cAAA,eAAA,UAAA,eAC9B,gBAA8B,cAAA,iBAAA,UAAA,iBAC9B,sBAA8B,cAAA,uBAAA,UAAA,uBAC9B,cAA8B,SAAA,EAAA,EAAA,eAAA,KAAA,EAAA,EAAA,eAC9B,gBAA8B,kBAAA,YAAA,UAAA,YAC9B,gBAA8B,kBAAA,YAAA,UAAA,YAC9B,kBAA8B,kBAAA,YAAA,YAAA,YAC9B,kBAA8B,kBAAA,YAAA,YAAA,YAE9B,0BAAoC,cAAA,gBAAA,gBAAA,qBACpC,wBAAoC,cAAA,cAAA,gBAAA,mBACpC,2BAAoC,cAAA,iBAAA,gBAAA,iBACpC,4BAAoC,cAAA,kBAAA,gBAAA,wBACpC,2BAAoC,cAAA,qBAAA,gBAAA,uBAEpC,sBAAiC,eAAA,gBAAA,YAAA,qBACjC,oBAAiC,eAAA,cAAA,YAAA,mBACjC,uBAAiC,eAAA,iBAAA,YAAA,iBACjC,yBAAiC,eAAA,mBAAA,YAAA,mBACjC,wBAAiC,eAAA,kBAAA,YAAA,kBAEjC,wBAAkC,mBAAA,gBAAA,cAAA,qBAClC,sBAAkC,mBAAA,cAAA,cAAA,mBAClC,yBAAkC,mBAAA,iBAAA,cAAA,iBAClC,0BAAkC,mBAAA,kBAAA,cAAA,wBAClC,yBAAkC,mBAAA,qBAAA,cAAA,uBAClC,0BAAkC,mBAAA,kBAAA,cAAA,kBAElC,oBAAgC,oBAAA,eAAA,WAAA,eAChC,qBAAgC,oBAAA,gBAAA,WAAA,qBAChC,mBAAgC,oBAAA,cAAA,WAAA,mBAChC,sBAAgC,oBAAA,iBAAA,WAAA,iBAChC,wBAAgC,oBAAA,mBAAA,WAAA,mBAChC,uBAAgC,oBAAA,kBAAA,WAAA,mBCtC5B,KAAgC,OAAA,YAChC,MPiiER,MO/hEU,WAAA,YAEF,MPkiER,MOhiEU,aAAA,YAEF,MPmiER,MOjiEU,cAAA,YAEF,MPoiER,MOliEU,YAAA,YAfF,KAAgC,OAAA,iBAChC,MPyjER,MOvjEU,WAAA,iBAEF,MP0jER,MOxjEU,aAAA,iBAEF,MP2jER,MOzjEU,cAAA,iBAEF,MP4jER,MO1jEU,YAAA,iBAfF,KAAgC,OAAA,gBAChC,MPilER,MO/kEU,WAAA,gBAEF,MPklER,MOhlEU,aAAA,gBAEF,MPmlER,MOjlEU,cAAA,gBAEF,MPolER,MOllEU,YAAA,gBAfF,KAAgC,OAAA,eAChC,MPymER,MOvmEU,WAAA,eAEF,MP0mER,MOxmEU,aAAA,eAEF,MP2mER,MOzmEU,cAAA,eAEF,MP4mER,MO1mEU,YAAA,eAfF,KAAgC,OAAA,iBAChC,MPioER,MO/nEU,WAAA,iBAEF,MPkoER,MOhoEU,aAAA,iBAEF,MPmoER,MOjoEU,cAAA,iBAEF,MPooER,MOloEU,YAAA,iBAfF,KAAgC,OAAA,eAChC,MPypER,MOvpEU,WAAA,eAEF,MP0pER,MOxpEU,aAAA,eAEF,MP2pER,MOzpEU,cAAA,eAEF,MP4pER,MO1pEU,YAAA,eAfF,KAAgC,QAAA,YAChC,MPirER,MO/qEU,YAAA,YAEF,MPkrER,MOhrEU,cAAA,YAEF,MPmrER,MOjrEU,eAAA,YAEF,MPorER,MOlrEU,aAAA,YAfF,KAAgC,QAAA,iBAChC,MPysER,MOvsEU,YAAA,iBAEF,MP0sER,MOxsEU,cAAA,iBAEF,MP2sER,MOzsEU,eAAA,iBAEF,MP4sER,MO1sEU,aAAA,iBAfF,KAAgC,QAAA,gBAChC,MPiuER,MO/tEU,YAAA,gBAEF,MPkuER,MOhuEU,cAAA,gBAEF,MPmuER,MOjuEU,eAAA,gBAEF,MPouER,MOluEU,aAAA,gBAfF,KAAgC,QAAA,eAChC,MPyvER,MOvvEU,YAAA,eAEF,MP0vER,MOxvEU,cAAA,eAEF,MP2vER,MOzvEU,eAAA,eAEF,MP4vER,MO1vEU,aAAA,eAfF,KAAgC,QAAA,iBAChC,MPixER,MO/wEU,YAAA,iBAEF,MPkxER,MOhxEU,cAAA,iBAEF,MPmxER,MOjxEU,eAAA,iBAEF,MPoxER,MOlxEU,aAAA,iBAfF,KAAgC,QAAA,eAChC,MPyyER,MOvyEU,YAAA,eAEF,MP0yER,MOxyEU,cAAA,eAEF,MP2yER,MOzyEU,eAAA,eAEF,MP4yER,MO1yEU,aAAA,eAQF,MAAwB,OAAA,kBACxB,OP0yER,OOxyEU,WAAA,kBAEF,OP2yER,OOzyEU,aAAA,kBAEF,OP4yER,OO1yEU,cAAA,kBAEF,OP6yER,OO3yEU,YAAA,kBAfF,MAAwB,OAAA,iBACxB,OPk0ER,OOh0EU,WAAA,iBAEF,OPm0ER,OOj0EU,aAAA,iBAEF,OPo0ER,OOl0EU,cAAA,iBAEF,OPq0ER,OOn0EU,YAAA,iBAfF,MAAwB,OAAA,gBACxB,OP01ER,OOx1EU,WAAA,gBAEF,OP21ER,OOz1EU,aAAA,gBAEF,OP41ER,OO11EU,cAAA,gBAEF,OP61ER,OO31EU,YAAA,gBAfF,MAAwB,OAAA,kBACxB,OPk3ER,OOh3EU,WAAA,kBAEF,OPm3ER,OOj3EU,aAAA,kBAEF,OPo3ER,OOl3EU,cAAA,kBAEF,OPq3ER,OOn3EU,YAAA,kBAfF,MAAwB,OAAA,gBACxB,OP04ER,OOx4EU,WAAA,gBAEF,OP24ER,OOz4EU,aAAA,gBAEF,OP44ER,OO14EU,cAAA,gBAEF,OP64ER,OO34EU,YAAA,gBAMN,QAAmB,OAAA,eACnB,SP64EJ,SO34EM,WAAA,eAEF,SP84EJ,SO54EM,aAAA,eAEF,SP+4EJ,SO74EM,cAAA,eAEF,SPg5EJ,SO94EM,YAAA,eJTF,yBIlDI,QAAgC,OAAA,YAChC,SPi9EN,SO/8EQ,WAAA,YAEF,SPi9EN,SO/8EQ,aAAA,YAEF,SPi9EN,SO/8EQ,cAAA,YAEF,SPi9EN,SO/8EQ,YAAA,YAfF,QAAgC,OAAA,iBAChC,SPo+EN,SOl+EQ,WAAA,iBAEF,SPo+EN,SOl+EQ,aAAA,iBAEF,SPo+EN,SOl+EQ,cAAA,iBAEF,SPo+EN,SOl+EQ,YAAA,iBAfF,QAAgC,OAAA,gBAChC,SPu/EN,SOr/EQ,WAAA,gBAEF,SPu/EN,SOr/EQ,aAAA,gBAEF,SPu/EN,SOr/EQ,cAAA,gBAEF,SPu/EN,SOr/EQ,YAAA,gBAfF,QAAgC,OAAA,eAChC,SP0gFN,SOxgFQ,WAAA,eAEF,SP0gFN,SOxgFQ,aAAA,eAEF,SP0gFN,SOxgFQ,cAAA,eAEF,SP0gFN,SOxgFQ,YAAA,eAfF,QAAgC,OAAA,iBAChC,SP6hFN,SO3hFQ,WAAA,iBAEF,SP6hFN,SO3hFQ,aAAA,iBAEF,SP6hFN,SO3hFQ,cAAA,iBAEF,SP6hFN,SO3hFQ,YAAA,iBAfF,QAAgC,OAAA,eAChC,SPgjFN,SO9iFQ,WAAA,eAEF,SPgjFN,SO9iFQ,aAAA,eAEF,SPgjFN,SO9iFQ,cAAA,eAEF,SPgjFN,SO9iFQ,YAAA,eAfF,QAAgC,QAAA,YAChC,SPmkFN,SOjkFQ,YAAA,YAEF,SPmkFN,SOjkFQ,cAAA,YAEF,SPmkFN,SOjkFQ,eAAA,YAEF,SPmkFN,SOjkFQ,aAAA,YAfF,QAAgC,QAAA,iBAChC,SPslFN,SOplFQ,YAAA,iBAEF,SPslFN,SOplFQ,cAAA,iBAEF,SPslFN,SOplFQ,eAAA,iBAEF,SPslFN,SOplFQ,aAAA,iBAfF,QAAgC,QAAA,gBAChC,SPymFN,SOvmFQ,YAAA,gBAEF,SPymFN,SOvmFQ,cAAA,gBAEF,SPymFN,SOvmFQ,eAAA,gBAEF,SPymFN,SOvmFQ,aAAA,gBAfF,QAAgC,QAAA,eAChC,SP4nFN,SO1nFQ,YAAA,eAEF,SP4nFN,SO1nFQ,cAAA,eAEF,SP4nFN,SO1nFQ,eAAA,eAEF,SP4nFN,SO1nFQ,aAAA,eAfF,QAAgC,QAAA,iBAChC,SP+oFN,SO7oFQ,YAAA,iBAEF,SP+oFN,SO7oFQ,cAAA,iBAEF,SP+oFN,SO7oFQ,eAAA,iBAEF,SP+oFN,SO7oFQ,aAAA,iBAfF,QAAgC,QAAA,eAChC,SPkqFN,SOhqFQ,YAAA,eAEF,SPkqFN,SOhqFQ,cAAA,eAEF,SPkqFN,SOhqFQ,eAAA,eAEF,SPkqFN,SOhqFQ,aAAA,eAQF,SAAwB,OAAA,kBACxB,UP8pFN,UO5pFQ,WAAA,kBAEF,UP8pFN,UO5pFQ,aAAA,kBAEF,UP8pFN,UO5pFQ,cAAA,kBAEF,UP8pFN,UO5pFQ,YAAA,kBAfF,SAAwB,OAAA,iBACxB,UPirFN,UO/qFQ,WAAA,iBAEF,UPirFN,UO/qFQ,aAAA,iBAEF,UPirFN,UO/qFQ,cAAA,iBAEF,UPirFN,UO/qFQ,YAAA,iBAfF,SAAwB,OAAA,gBACxB,UPosFN,UOlsFQ,WAAA,gBAEF,UPosFN,UOlsFQ,aAAA,gBAEF,UPosFN,UOlsFQ,cAAA,gBAEF,UPosFN,UOlsFQ,YAAA,gBAfF,SAAwB,OAAA,kBACxB,UPutFN,UOrtFQ,WAAA,kBAEF,UPutFN,UOrtFQ,aAAA,kBAEF,UPutFN,UOrtFQ,cAAA,kBAEF,UPutFN,UOrtFQ,YAAA,kBAfF,SAAwB,OAAA,gBACxB,UP0uFN,UOxuFQ,WAAA,gBAEF,UP0uFN,UOxuFQ,aAAA,gBAEF,UP0uFN,UOxuFQ,cAAA,gBAEF,UP0uFN,UOxuFQ,YAAA,gBAMN,WAAmB,OAAA,eACnB,YPwuFF,YOtuFI,WAAA,eAEF,YPwuFF,YOtuFI,aAAA,eAEF,YPwuFF,YOtuFI,cAAA,eAEF,YPwuFF,YOtuFI,YAAA,gBJTF,yBIlDI,QAAgC,OAAA,YAChC,SP0yFN,SOxyFQ,WAAA,YAEF,SP0yFN,SOxyFQ,aAAA,YAEF,SP0yFN,SOxyFQ,cAAA,YAEF,SP0yFN,SOxyFQ,YAAA,YAfF,QAAgC,OAAA,iBAChC,SP6zFN,SO3zFQ,WAAA,iBAEF,SP6zFN,SO3zFQ,aAAA,iBAEF,SP6zFN,SO3zFQ,cAAA,iBAEF,SP6zFN,SO3zFQ,YAAA,iBAfF,QAAgC,OAAA,gBAChC,SPg1FN,SO90FQ,WAAA,gBAEF,SPg1FN,SO90FQ,aAAA,gBAEF,SPg1FN,SO90FQ,cAAA,gBAEF,SPg1FN,SO90FQ,YAAA,gBAfF,QAAgC,OAAA,eAChC,SPm2FN,SOj2FQ,WAAA,eAEF,SPm2FN,SOj2FQ,aAAA,eAEF,SPm2FN,SOj2FQ,cAAA,eAEF,SPm2FN,SOj2FQ,YAAA,eAfF,QAAgC,OAAA,iBAChC,SPs3FN,SOp3FQ,WAAA,iBAEF,SPs3FN,SOp3FQ,aAAA,iBAEF,SPs3FN,SOp3FQ,cAAA,iBAEF,SPs3FN,SOp3FQ,YAAA,iBAfF,QAAgC,OAAA,eAChC,SPy4FN,SOv4FQ,WAAA,eAEF,SPy4FN,SOv4FQ,aAAA,eAEF,SPy4FN,SOv4FQ,cAAA,eAEF,SPy4FN,SOv4FQ,YAAA,eAfF,QAAgC,QAAA,YAChC,SP45FN,SO15FQ,YAAA,YAEF,SP45FN,SO15FQ,cAAA,YAEF,SP45FN,SO15FQ,eAAA,YAEF,SP45FN,SO15FQ,aAAA,YAfF,QAAgC,QAAA,iBAChC,SP+6FN,SO76FQ,YAAA,iBAEF,SP+6FN,SO76FQ,cAAA,iBAEF,SP+6FN,SO76FQ,eAAA,iBAEF,SP+6FN,SO76FQ,aAAA,iBAfF,QAAgC,QAAA,gBAChC,SPk8FN,SOh8FQ,YAAA,gBAEF,SPk8FN,SOh8FQ,cAAA,gBAEF,SPk8FN,SOh8FQ,eAAA,gBAEF,SPk8FN,SOh8FQ,aAAA,gBAfF,QAAgC,QAAA,eAChC,SPq9FN,SOn9FQ,YAAA,eAEF,SPq9FN,SOn9FQ,cAAA,eAEF,SPq9FN,SOn9FQ,eAAA,eAEF,SPq9FN,SOn9FQ,aAAA,eAfF,QAAgC,QAAA,iBAChC,SPw+FN,SOt+FQ,YAAA,iBAEF,SPw+FN,SOt+FQ,cAAA,iBAEF,SPw+FN,SOt+FQ,eAAA,iBAEF,SPw+FN,SOt+FQ,aAAA,iBAfF,QAAgC,QAAA,eAChC,SP2/FN,SOz/FQ,YAAA,eAEF,SP2/FN,SOz/FQ,cAAA,eAEF,SP2/FN,SOz/FQ,eAAA,eAEF,SP2/FN,SOz/FQ,aAAA,eAQF,SAAwB,OAAA,kBACxB,UPu/FN,UOr/FQ,WAAA,kBAEF,UPu/FN,UOr/FQ,aAAA,kBAEF,UPu/FN,UOr/FQ,cAAA,kBAEF,UPu/FN,UOr/FQ,YAAA,kBAfF,SAAwB,OAAA,iBACxB,UP0gGN,UOxgGQ,WAAA,iBAEF,UP0gGN,UOxgGQ,aAAA,iBAEF,UP0gGN,UOxgGQ,cAAA,iBAEF,UP0gGN,UOxgGQ,YAAA,iBAfF,SAAwB,OAAA,gBACxB,UP6hGN,UO3hGQ,WAAA,gBAEF,UP6hGN,UO3hGQ,aAAA,gBAEF,UP6hGN,UO3hGQ,cAAA,gBAEF,UP6hGN,UO3hGQ,YAAA,gBAfF,SAAwB,OAAA,kBACxB,UPgjGN,UO9iGQ,WAAA,kBAEF,UPgjGN,UO9iGQ,aAAA,kBAEF,UPgjGN,UO9iGQ,cAAA,kBAEF,UPgjGN,UO9iGQ,YAAA,kBAfF,SAAwB,OAAA,gBACxB,UPmkGN,UOjkGQ,WAAA,gBAEF,UPmkGN,UOjkGQ,aAAA,gBAEF,UPmkGN,UOjkGQ,cAAA,gBAEF,UPmkGN,UOjkGQ,YAAA,gBAMN,WAAmB,OAAA,eACnB,YPikGF,YO/jGI,WAAA,eAEF,YPikGF,YO/jGI,aAAA,eAEF,YPikGF,YO/jGI,cAAA,eAEF,YPikGF,YO/jGI,YAAA,gBJTF,yBIlDI,QAAgC,OAAA,YAChC,SPmoGN,SOjoGQ,WAAA,YAEF,SPmoGN,SOjoGQ,aAAA,YAEF,SPmoGN,SOjoGQ,cAAA,YAEF,SPmoGN,SOjoGQ,YAAA,YAfF,QAAgC,OAAA,iBAChC,SPspGN,SOppGQ,WAAA,iBAEF,SPspGN,SOppGQ,aAAA,iBAEF,SPspGN,SOppGQ,cAAA,iBAEF,SPspGN,SOppGQ,YAAA,iBAfF,QAAgC,OAAA,gBAChC,SPyqGN,SOvqGQ,WAAA,gBAEF,SPyqGN,SOvqGQ,aAAA,gBAEF,SPyqGN,SOvqGQ,cAAA,gBAEF,SPyqGN,SOvqGQ,YAAA,gBAfF,QAAgC,OAAA,eAChC,SP4rGN,SO1rGQ,WAAA,eAEF,SP4rGN,SO1rGQ,aAAA,eAEF,SP4rGN,SO1rGQ,cAAA,eAEF,SP4rGN,SO1rGQ,YAAA,eAfF,QAAgC,OAAA,iBAChC,SP+sGN,SO7sGQ,WAAA,iBAEF,SP+sGN,SO7sGQ,aAAA,iBAEF,SP+sGN,SO7sGQ,cAAA,iBAEF,SP+sGN,SO7sGQ,YAAA,iBAfF,QAAgC,OAAA,eAChC,SPkuGN,SOhuGQ,WAAA,eAEF,SPkuGN,SOhuGQ,aAAA,eAEF,SPkuGN,SOhuGQ,cAAA,eAEF,SPkuGN,SOhuGQ,YAAA,eAfF,QAAgC,QAAA,YAChC,SPqvGN,SOnvGQ,YAAA,YAEF,SPqvGN,SOnvGQ,cAAA,YAEF,SPqvGN,SOnvGQ,eAAA,YAEF,SPqvGN,SOnvGQ,aAAA,YAfF,QAAgC,QAAA,iBAChC,SPwwGN,SOtwGQ,YAAA,iBAEF,SPwwGN,SOtwGQ,cAAA,iBAEF,SPwwGN,SOtwGQ,eAAA,iBAEF,SPwwGN,SOtwGQ,aAAA,iBAfF,QAAgC,QAAA,gBAChC,SP2xGN,SOzxGQ,YAAA,gBAEF,SP2xGN,SOzxGQ,cAAA,gBAEF,SP2xGN,SOzxGQ,eAAA,gBAEF,SP2xGN,SOzxGQ,aAAA,gBAfF,QAAgC,QAAA,eAChC,SP8yGN,SO5yGQ,YAAA,eAEF,SP8yGN,SO5yGQ,cAAA,eAEF,SP8yGN,SO5yGQ,eAAA,eAEF,SP8yGN,SO5yGQ,aAAA,eAfF,QAAgC,QAAA,iBAChC,SPi0GN,SO/zGQ,YAAA,iBAEF,SPi0GN,SO/zGQ,cAAA,iBAEF,SPi0GN,SO/zGQ,eAAA,iBAEF,SPi0GN,SO/zGQ,aAAA,iBAfF,QAAgC,QAAA,eAChC,SPo1GN,SOl1GQ,YAAA,eAEF,SPo1GN,SOl1GQ,cAAA,eAEF,SPo1GN,SOl1GQ,eAAA,eAEF,SPo1GN,SOl1GQ,aAAA,eAQF,SAAwB,OAAA,kBACxB,UPg1GN,UO90GQ,WAAA,kBAEF,UPg1GN,UO90GQ,aAAA,kBAEF,UPg1GN,UO90GQ,cAAA,kBAEF,UPg1GN,UO90GQ,YAAA,kBAfF,SAAwB,OAAA,iBACxB,UPm2GN,UOj2GQ,WAAA,iBAEF,UPm2GN,UOj2GQ,aAAA,iBAEF,UPm2GN,UOj2GQ,cAAA,iBAEF,UPm2GN,UOj2GQ,YAAA,iBAfF,SAAwB,OAAA,gBACxB,UPs3GN,UOp3GQ,WAAA,gBAEF,UPs3GN,UOp3GQ,aAAA,gBAEF,UPs3GN,UOp3GQ,cAAA,gBAEF,UPs3GN,UOp3GQ,YAAA,gBAfF,SAAwB,OAAA,kBACxB,UPy4GN,UOv4GQ,WAAA,kBAEF,UPy4GN,UOv4GQ,aAAA,kBAEF,UPy4GN,UOv4GQ,cAAA,kBAEF,UPy4GN,UOv4GQ,YAAA,kBAfF,SAAwB,OAAA,gBACxB,UP45GN,UO15GQ,WAAA,gBAEF,UP45GN,UO15GQ,aAAA,gBAEF,UP45GN,UO15GQ,cAAA,gBAEF,UP45GN,UO15GQ,YAAA,gBAMN,WAAmB,OAAA,eACnB,YP05GF,YOx5GI,WAAA,eAEF,YP05GF,YOx5GI,aAAA,eAEF,YP05GF,YOx5GI,cAAA,eAEF,YP05GF,YOx5GI,YAAA,gBJTF,0BIlDI,QAAgC,OAAA,YAChC,SP49GN,SO19GQ,WAAA,YAEF,SP49GN,SO19GQ,aAAA,YAEF,SP49GN,SO19GQ,cAAA,YAEF,SP49GN,SO19GQ,YAAA,YAfF,QAAgC,OAAA,iBAChC,SP++GN,SO7+GQ,WAAA,iBAEF,SP++GN,SO7+GQ,aAAA,iBAEF,SP++GN,SO7+GQ,cAAA,iBAEF,SP++GN,SO7+GQ,YAAA,iBAfF,QAAgC,OAAA,gBAChC,SPkgHN,SOhgHQ,WAAA,gBAEF,SPkgHN,SOhgHQ,aAAA,gBAEF,SPkgHN,SOhgHQ,cAAA,gBAEF,SPkgHN,SOhgHQ,YAAA,gBAfF,QAAgC,OAAA,eAChC,SPqhHN,SOnhHQ,WAAA,eAEF,SPqhHN,SOnhHQ,aAAA,eAEF,SPqhHN,SOnhHQ,cAAA,eAEF,SPqhHN,SOnhHQ,YAAA,eAfF,QAAgC,OAAA,iBAChC,SPwiHN,SOtiHQ,WAAA,iBAEF,SPwiHN,SOtiHQ,aAAA,iBAEF,SPwiHN,SOtiHQ,cAAA,iBAEF,SPwiHN,SOtiHQ,YAAA,iBAfF,QAAgC,OAAA,eAChC,SP2jHN,SOzjHQ,WAAA,eAEF,SP2jHN,SOzjHQ,aAAA,eAEF,SP2jHN,SOzjHQ,cAAA,eAEF,SP2jHN,SOzjHQ,YAAA,eAfF,QAAgC,QAAA,YAChC,SP8kHN,SO5kHQ,YAAA,YAEF,SP8kHN,SO5kHQ,cAAA,YAEF,SP8kHN,SO5kHQ,eAAA,YAEF,SP8kHN,SO5kHQ,aAAA,YAfF,QAAgC,QAAA,iBAChC,SPimHN,SO/lHQ,YAAA,iBAEF,SPimHN,SO/lHQ,cAAA,iBAEF,SPimHN,SO/lHQ,eAAA,iBAEF,SPimHN,SO/lHQ,aAAA,iBAfF,QAAgC,QAAA,gBAChC,SPonHN,SOlnHQ,YAAA,gBAEF,SPonHN,SOlnHQ,cAAA,gBAEF,SPonHN,SOlnHQ,eAAA,gBAEF,SPonHN,SOlnHQ,aAAA,gBAfF,QAAgC,QAAA,eAChC,SPuoHN,SOroHQ,YAAA,eAEF,SPuoHN,SOroHQ,cAAA,eAEF,SPuoHN,SOroHQ,eAAA,eAEF,SPuoHN,SOroHQ,aAAA,eAfF,QAAgC,QAAA,iBAChC,SP0pHN,SOxpHQ,YAAA,iBAEF,SP0pHN,SOxpHQ,cAAA,iBAEF,SP0pHN,SOxpHQ,eAAA,iBAEF,SP0pHN,SOxpHQ,aAAA,iBAfF,QAAgC,QAAA,eAChC,SP6qHN,SO3qHQ,YAAA,eAEF,SP6qHN,SO3qHQ,cAAA,eAEF,SP6qHN,SO3qHQ,eAAA,eAEF,SP6qHN,SO3qHQ,aAAA,eAQF,SAAwB,OAAA,kBACxB,UPyqHN,UOvqHQ,WAAA,kBAEF,UPyqHN,UOvqHQ,aAAA,kBAEF,UPyqHN,UOvqHQ,cAAA,kBAEF,UPyqHN,UOvqHQ,YAAA,kBAfF,SAAwB,OAAA,iBACxB,UP4rHN,UO1rHQ,WAAA,iBAEF,UP4rHN,UO1rHQ,aAAA,iBAEF,UP4rHN,UO1rHQ,cAAA,iBAEF,UP4rHN,UO1rHQ,YAAA,iBAfF,SAAwB,OAAA,gBACxB,UP+sHN,UO7sHQ,WAAA,gBAEF,UP+sHN,UO7sHQ,aAAA,gBAEF,UP+sHN,UO7sHQ,cAAA,gBAEF,UP+sHN,UO7sHQ,YAAA,gBAfF,SAAwB,OAAA,kBACxB,UPkuHN,UOhuHQ,WAAA,kBAEF,UPkuHN,UOhuHQ,aAAA,kBAEF,UPkuHN,UOhuHQ,cAAA,kBAEF,UPkuHN,UOhuHQ,YAAA,kBAfF,SAAwB,OAAA,gBACxB,UPqvHN,UOnvHQ,WAAA,gBAEF,UPqvHN,UOnvHQ,aAAA,gBAEF,UPqvHN,UOnvHQ,cAAA,gBAEF,UPqvHN,UOnvHQ,YAAA,gBAMN,WAAmB,OAAA,eACnB,YPmvHF,YOjvHI,WAAA,eAEF,YPmvHF,YOjvHI,aAAA,eAEF,YPmvHF,YOjvHI,cAAA,eAEF,YPmvHF,YOjvHI,YAAA","sourcesContent":["/*!\n * Bootstrap Grid v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\nhtml {\n box-sizing: border-box;\n -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n@import \"functions\";\n@import \"variables\";\n\n@import \"mixins/breakpoints\";\n@import \"mixins/grid-framework\";\n@import \"mixins/grid\";\n\n@import \"grid\";\n@import \"utilities/display\";\n@import \"utilities/flex\";\n@import \"utilities/spacing\";\n","/*!\n * Bootstrap Grid v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\nhtml {\n box-sizing: border-box;\n -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n.container {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container {\n max-width: 1140px;\n }\n}\n\n.container-fluid, .container-sm, .container-md, .container-lg, .container-xl {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container, .container-sm {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container, .container-sm, .container-md {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container, .container-sm, .container-md, .container-lg {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container, .container-sm, .container-md, .container-lg, .container-xl {\n max-width: 1140px;\n }\n}\n\n.row {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.row-cols-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.row-cols-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.row-cols-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.row-cols-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.row-cols-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n}\n\n.row-cols-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n -ms-flex-order: -1;\n order: -1;\n}\n\n.order-last {\n -ms-flex-order: 13;\n order: 13;\n}\n\n.order-0 {\n -ms-flex-order: 0;\n order: 0;\n}\n\n.order-1 {\n -ms-flex-order: 1;\n order: 1;\n}\n\n.order-2 {\n -ms-flex-order: 2;\n order: 2;\n}\n\n.order-3 {\n -ms-flex-order: 3;\n order: 3;\n}\n\n.order-4 {\n -ms-flex-order: 4;\n order: 4;\n}\n\n.order-5 {\n -ms-flex-order: 5;\n order: 5;\n}\n\n.order-6 {\n -ms-flex-order: 6;\n order: 6;\n}\n\n.order-7 {\n -ms-flex-order: 7;\n order: 7;\n}\n\n.order-8 {\n -ms-flex-order: 8;\n order: 8;\n}\n\n.order-9 {\n -ms-flex-order: 9;\n order: 9;\n}\n\n.order-10 {\n -ms-flex-order: 10;\n order: 10;\n}\n\n.order-11 {\n -ms-flex-order: 11;\n order: 11;\n}\n\n.order-12 {\n -ms-flex-order: 12;\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-sm-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-sm-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-sm-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-sm-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-sm-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-sm-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-sm-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-sm-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-sm-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-sm-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-sm-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-sm-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-sm-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-sm-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-sm-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-sm-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-sm-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-sm-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-sm-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-sm-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-md-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-md-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-md-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-md-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-md-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-md-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-md-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-md-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-md-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-md-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-md-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-md-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-md-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-md-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-md-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-md-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-md-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-md-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-md-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-md-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-lg-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-lg-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-lg-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-lg-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-lg-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-lg-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-lg-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-lg-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-lg-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-lg-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-lg-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-lg-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-lg-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-lg-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-lg-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-lg-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-lg-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-lg-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-lg-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-lg-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-xl-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-xl-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-xl-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-xl-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-xl-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-xl-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-xl-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-xl-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-xl-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-xl-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-xl-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-xl-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-xl-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-xl-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-xl-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-xl-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-xl-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-xl-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-xl-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-xl-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n}\n\n.d-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-md-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-print-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n.flex-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n}\n\n.flex-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n}\n\n.justify-content-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n}\n\n.align-items-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n}\n\n.align-items-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n}\n\n.align-items-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n}\n\n.align-items-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n}\n\n.align-content-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n}\n\n.align-content-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n}\n\n.align-content-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n}\n\n.align-content-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n}\n\n.align-content-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n}\n\n.align-self-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n}\n\n.align-self-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n}\n\n.align-self-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n}\n\n.align-self-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n}\n\n.align-self-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-sm-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-sm-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-sm-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-sm-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-sm-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-sm-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-sm-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-sm-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-md-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-md-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-md-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-md-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-md-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-md-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-md-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-md-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-md-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-md-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-md-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-md-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-md-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-md-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-md-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-md-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-lg-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-lg-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-lg-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-lg-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-lg-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-lg-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-lg-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-lg-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-xl-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-xl-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-xl-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-xl-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-xl-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-xl-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-xl-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-xl-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-n1 {\n margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n\n.m-n4 {\n margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n .m-sm-n3 {\n margin: -1rem !important;\n }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important;\n }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important;\n }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important;\n }\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n .m-sm-n5 {\n margin: -3rem !important;\n }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important;\n }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important;\n }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n .m-md-n3 {\n margin: -1rem !important;\n }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important;\n }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important;\n }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important;\n }\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n .m-md-n5 {\n margin: -3rem !important;\n }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important;\n }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important;\n }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n .m-lg-n3 {\n margin: -1rem !important;\n }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important;\n }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important;\n }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important;\n }\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n .m-lg-n5 {\n margin: -3rem !important;\n }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important;\n }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important;\n }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n .m-xl-n3 {\n margin: -1rem !important;\n }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important;\n }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important;\n }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important;\n }\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n .m-xl-n5 {\n margin: -3rem !important;\n }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important;\n }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important;\n }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n/*# sourceMappingURL=bootstrap-grid.css.map */","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n // Single container class with breakpoint max-widths\n .container {\n @include make-container();\n @include make-container-max-widths();\n }\n\n // 100% wide container at all breakpoints\n .container-fluid {\n @include make-container();\n }\n\n // Responsive containers that are 100% wide until a breakpoint\n @each $breakpoint, $container-max-width in $container-max-widths {\n .container-#{$breakpoint} {\n @extend .container-fluid;\n }\n\n @include media-breakpoint-up($breakpoint, $grid-breakpoints) {\n %responsive-container-#{$breakpoint} {\n max-width: $container-max-width;\n }\n\n @each $name, $width in $grid-breakpoints {\n @if ($container-max-width > $width or $breakpoint == $name) {\n .container#{breakpoint-infix($name, $grid-breakpoints)} {\n @extend %responsive-container-#{$breakpoint};\n }\n }\n }\n }\n }\n}\n\n\n// Row\n//\n// Rows contain your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n }\n\n // Remove the negative margin from default .row, then the horizontal padding\n // from all immediate children columns (to prevent runaway style inheritance).\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container($gutter: $grid-gutter-width) {\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n margin-right: auto;\n margin-left: auto;\n}\n\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n}\n\n@mixin make-row($gutter: $grid-gutter-width) {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$gutter / 2;\n margin-left: -$gutter / 2;\n}\n\n@mixin make-col-ready($gutter: $grid-gutter-width) {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n\n@mixin make-col-auto() {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; // Reset earlier grid tiers\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: $size / $columns;\n margin-left: if($num == 0, 0, percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// numberof columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n & > * {\n flex: 0 0 100% / $count;\n max-width: 100% / $count;\n }\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n\n @for $i from 1 through $grid-row-columns {\n .row-cols#{$infix}-#{$i} {\n @include row-cols($i);\n }\n }\n\n .col#{$infix}-auto {\n @include make-col-auto();\n }\n\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n .order#{$infix}-first { order: -1; }\n\n .order#{$infix}-last { order: $columns + 1; }\n\n @for $i from 0 through $columns {\n .order#{$infix}-#{$i} { order: $i; }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Utilities for common `display` values\n//\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $value in $displays {\n .d#{$infix}-#{$value} { display: $value !important; }\n }\n }\n}\n\n\n//\n// Utilities for toggling `display` in print\n//\n\n@media print {\n @each $value in $displays {\n .d-print-#{$value} { display: $value !important; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Flex variation\n//\n// Custom styles for additional flex alignment options.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .flex#{$infix}-row { flex-direction: row !important; }\n .flex#{$infix}-column { flex-direction: column !important; }\n .flex#{$infix}-row-reverse { flex-direction: row-reverse !important; }\n .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }\n\n .flex#{$infix}-wrap { flex-wrap: wrap !important; }\n .flex#{$infix}-nowrap { flex-wrap: nowrap !important; }\n .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }\n .flex#{$infix}-fill { flex: 1 1 auto !important; }\n .flex#{$infix}-grow-0 { flex-grow: 0 !important; }\n .flex#{$infix}-grow-1 { flex-grow: 1 !important; }\n .flex#{$infix}-shrink-0 { flex-shrink: 0 !important; }\n .flex#{$infix}-shrink-1 { flex-shrink: 1 !important; }\n\n .justify-content#{$infix}-start { justify-content: flex-start !important; }\n .justify-content#{$infix}-end { justify-content: flex-end !important; }\n .justify-content#{$infix}-center { justify-content: center !important; }\n .justify-content#{$infix}-between { justify-content: space-between !important; }\n .justify-content#{$infix}-around { justify-content: space-around !important; }\n\n .align-items#{$infix}-start { align-items: flex-start !important; }\n .align-items#{$infix}-end { align-items: flex-end !important; }\n .align-items#{$infix}-center { align-items: center !important; }\n .align-items#{$infix}-baseline { align-items: baseline !important; }\n .align-items#{$infix}-stretch { align-items: stretch !important; }\n\n .align-content#{$infix}-start { align-content: flex-start !important; }\n .align-content#{$infix}-end { align-content: flex-end !important; }\n .align-content#{$infix}-center { align-content: center !important; }\n .align-content#{$infix}-between { align-content: space-between !important; }\n .align-content#{$infix}-around { align-content: space-around !important; }\n .align-content#{$infix}-stretch { align-content: stretch !important; }\n\n .align-self#{$infix}-auto { align-self: auto !important; }\n .align-self#{$infix}-start { align-self: flex-start !important; }\n .align-self#{$infix}-end { align-self: flex-end !important; }\n .align-self#{$infix}-center { align-self: center !important; }\n .align-self#{$infix}-baseline { align-self: baseline !important; }\n .align-self#{$infix}-stretch { align-self: stretch !important; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Margin and Padding\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $prop, $abbrev in (margin: m, padding: p) {\n @each $size, $length in $spacers {\n .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }\n .#{$abbrev}t#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-top: $length !important;\n }\n .#{$abbrev}r#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-right: $length !important;\n }\n .#{$abbrev}b#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-bottom: $length !important;\n }\n .#{$abbrev}l#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-left: $length !important;\n }\n }\n }\n\n // Negative margins (e.g., where `.mb-n1` is negative version of `.mb-1`)\n @each $size, $length in $spacers {\n @if $size != 0 {\n .m#{$infix}-n#{$size} { margin: -$length !important; }\n .mt#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-top: -$length !important;\n }\n .mr#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-right: -$length !important;\n }\n .mb#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-bottom: -$length !important;\n }\n .ml#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-left: -$length !important;\n }\n }\n }\n\n // Some special margin utils\n .m#{$infix}-auto { margin: auto !important; }\n .mt#{$infix}-auto,\n .my#{$infix}-auto {\n margin-top: auto !important;\n }\n .mr#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-right: auto !important;\n }\n .mb#{$infix}-auto,\n .my#{$infix}-auto {\n margin-bottom: auto !important;\n }\n .ml#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-left: auto !important;\n }\n }\n}\n"]} \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-reboot.css b/maxkey-web-mgt-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-reboot.css deleted file mode 100644 index 91b0fc4c..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-reboot.css +++ /dev/null @@ -1,327 +0,0 @@ -/*! - * Bootstrap Reboot v4.4.1 (https://getbootstrap.com/) - * Copyright 2011-2019 The Bootstrap Authors - * Copyright 2011-2019 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md) - */ -*, -*::before, -*::after { - box-sizing: border-box; -} - -html { - font-family: sans-serif; - line-height: 1.15; - -webkit-text-size-adjust: 100%; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -} - -article, aside, figcaption, figure, footer, header, hgroup, main, nav, section { - display: block; -} - -body { - margin: 0; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; - font-size: 1rem; - font-weight: 400; - line-height: 1.5; - color: #212529; - text-align: left; - background-color: #fff; -} - -[tabindex="-1"]:focus:not(:focus-visible) { - outline: 0 !important; -} - -hr { - box-sizing: content-box; - height: 0; - overflow: visible; -} - -h1, h2, h3, h4, h5, h6 { - margin-top: 0; - margin-bottom: 0.5rem; -} - -p { - margin-top: 0; - margin-bottom: 1rem; -} - -abbr[title], -abbr[data-original-title] { - text-decoration: underline; - -webkit-text-decoration: underline dotted; - text-decoration: underline dotted; - cursor: help; - border-bottom: 0; - -webkit-text-decoration-skip-ink: none; - text-decoration-skip-ink: none; -} - -address { - margin-bottom: 1rem; - font-style: normal; - line-height: inherit; -} - -ol, -ul, -dl { - margin-top: 0; - margin-bottom: 1rem; -} - -ol ol, -ul ul, -ol ul, -ul ol { - margin-bottom: 0; -} - -dt { - font-weight: 700; -} - -dd { - margin-bottom: .5rem; - margin-left: 0; -} - -blockquote { - margin: 0 0 1rem; -} - -b, -strong { - font-weight: bolder; -} - -small { - font-size: 80%; -} - -sub, -sup { - position: relative; - font-size: 75%; - line-height: 0; - vertical-align: baseline; -} - -sub { - bottom: -.25em; -} - -sup { - top: -.5em; -} - -a { - color: #007bff; - text-decoration: none; - background-color: transparent; -} - -a:hover { - color: #0056b3; - text-decoration: underline; -} - -a:not([href]) { - color: inherit; - text-decoration: none; -} - -a:not([href]):hover { - color: inherit; - text-decoration: none; -} - -pre, -code, -kbd, -samp { - font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; - font-size: 1em; -} - -pre { - margin-top: 0; - margin-bottom: 1rem; - overflow: auto; -} - -figure { - margin: 0 0 1rem; -} - -img { - vertical-align: middle; - border-style: none; -} - -svg { - overflow: hidden; - vertical-align: middle; -} - -table { - border-collapse: collapse; -} - -caption { - padding-top: 0.75rem; - padding-bottom: 0.75rem; - color: #6c757d; - text-align: left; - caption-side: bottom; -} - -th { - text-align: inherit; -} - -label { - display: inline-block; - margin-bottom: 0.5rem; -} - -button { - border-radius: 0; -} - -button:focus { - outline: 1px dotted; - outline: 5px auto -webkit-focus-ring-color; -} - -input, -button, -select, -optgroup, -textarea { - margin: 0; - font-family: inherit; - font-size: inherit; - line-height: inherit; -} - -button, -input { - overflow: visible; -} - -button, -select { - text-transform: none; -} - -select { - word-wrap: normal; -} - -button, -[type="button"], -[type="reset"], -[type="submit"] { - -webkit-appearance: button; -} - -button:not(:disabled), -[type="button"]:not(:disabled), -[type="reset"]:not(:disabled), -[type="submit"]:not(:disabled) { - cursor: pointer; -} - -button::-moz-focus-inner, -[type="button"]::-moz-focus-inner, -[type="reset"]::-moz-focus-inner, -[type="submit"]::-moz-focus-inner { - padding: 0; - border-style: none; -} - -input[type="radio"], -input[type="checkbox"] { - box-sizing: border-box; - padding: 0; -} - -input[type="date"], -input[type="time"], -input[type="datetime-local"], -input[type="month"] { - -webkit-appearance: listbox; -} - -textarea { - overflow: auto; - resize: vertical; -} - -fieldset { - min-width: 0; - padding: 0; - margin: 0; - border: 0; -} - -legend { - display: block; - width: 100%; - max-width: 100%; - padding: 0; - margin-bottom: .5rem; - font-size: 1.5rem; - line-height: inherit; - color: inherit; - white-space: normal; -} - -progress { - vertical-align: baseline; -} - -[type="number"]::-webkit-inner-spin-button, -[type="number"]::-webkit-outer-spin-button { - height: auto; -} - -[type="search"] { - outline-offset: -2px; - -webkit-appearance: none; -} - -[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -::-webkit-file-upload-button { - font: inherit; - -webkit-appearance: button; -} - -output { - display: inline-block; -} - -summary { - display: list-item; - cursor: pointer; -} - -template { - display: none; -} - -[hidden] { - display: none !important; -} -/*# sourceMappingURL=bootstrap-reboot.css.map */ \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-reboot.css.map b/maxkey-web-mgt-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-reboot.css.map deleted file mode 100644 index 701f6715..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-reboot.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../scss/bootstrap-reboot.scss","bootstrap-reboot.css","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/vendor/_rfs.scss","../../scss/mixins/_hover.scss"],"names":[],"mappings":"AAAA;;;;;;ECME;ACYF;;;EAGE,sBAAsB;ADVxB;;ACaA;EACE,uBAAuB;EACvB,iBAAiB;EACjB,8BAA8B;EAC9B,6CCXa;AFCf;;ACgBA;EACE,cAAc;ADbhB;;ACuBA;EACE,SAAS;EACT,kMCyOiN;ECzJ7M,eAtCY;EFxChB,gBCkP+B;EDjP/B,gBCsP+B;EDrP/B,cCnCgB;EDoChB,gBAAgB;EAChB,sBC9Ca;AF0Bf;;AAEA;EC+BE,qBAAqB;AD7BvB;;ACsCA;EACE,uBAAuB;EACvB,SAAS;EACT,iBAAiB;ADnCnB;;ACgDA;EACE,aAAa;EACb,qBCoNuC;AFjQzC;;ACoDA;EACE,aAAa;EACb,mBCuF8B;AFxIhC;;AC4DA;;EAEE,0BAA0B;EAC1B,yCAAiC;EAAjC,iCAAiC;EACjC,YAAY;EACZ,gBAAgB;EAChB,sCAA8B;EAA9B,8BAA8B;ADzDhC;;AC4DA;EACE,mBAAmB;EACnB,kBAAkB;EAClB,oBAAoB;ADzDtB;;AC4DA;;;EAGE,aAAa;EACb,mBAAmB;ADzDrB;;AC4DA;;;;EAIE,gBAAgB;ADzDlB;;AC4DA;EACE,gBCqJ+B;AF9MjC;;AC4DA;EACE,oBAAoB;EACpB,cAAc;ADzDhB;;AC4DA;EACE,gBAAgB;ADzDlB;;AC4DA;;EAEE,mBCwIkC;AFjMpC;;AC4DA;EExFI,cAAW;AHgCf;;ACiEA;;EAEE,kBAAkB;EEnGhB,cAAW;EFqGb,cAAc;EACd,wBAAwB;AD9D1B;;ACiEA;EAAM,cAAc;AD7DpB;;AC8DA;EAAM,UAAU;AD1DhB;;ACiEA;EACE,cCtJe;EDuJf,qBCR4C;EDS5C,6BAA6B;AD9D/B;;AIlHE;EHmLE,cCX8D;EDY9D,0BCX+C;AFlDnD;;ACsEA;EACE,cAAc;EACd,qBAAqB;ADnEvB;;AI5HE;EHkME,cAAc;EACd,qBAAqB;ADlEzB;;AC2EA;;;;EAIE,iGC6DgH;ECjN9G,cAAW;AH6Ef;;AC2EA;EAEE,aAAa;EAEb,mBAAmB;EAEnB,cAAc;AD3EhB;;ACmFA;EAEE,gBAAgB;ADjFlB;;ACyFA;EACE,sBAAsB;EACtB,kBAAkB;ADtFpB;;ACyFA;EAGE,gBAAgB;EAChB,sBAAsB;ADxFxB;;ACgGA;EACE,yBAAyB;AD7F3B;;ACgGA;EACE,oBCoFkC;EDnFlC,uBCmFkC;EDlFlC,cCnQgB;EDoQhB,gBAAgB;EAChB,oBAAoB;AD7FtB;;ACgGA;EAGE,mBAAmB;AD/FrB;;ACuGA;EAEE,qBAAqB;EACrB,qBCqK2C;AF1Q7C;;AC2GA;EAEE,gBAAgB;ADzGlB;;ACgHA;EACE,mBAAmB;EACnB,0CAA0C;AD7G5C;;ACgHA;;;;;EAKE,SAAS;EACT,oBAAoB;EErPlB,kBAAW;EFuPb,oBAAoB;AD7GtB;;ACgHA;;EAEE,iBAAiB;AD7GnB;;ACgHA;;EAEE,oBAAoB;AD7GtB;;ACmHA;EACE,iBAAiB;ADhHnB;;ACuHA;;;;EAIE,0BAA0B;ADpH5B;;ACyHE;;;;EAKI,eAAe;ADvHrB;;AC6HA;;;;EAIE,UAAU;EACV,kBAAkB;AD1HpB;;AC6HA;;EAEE,sBAAsB;EACtB,UAAU;AD1HZ;;AC8HA;;;;EASE,2BAA2B;ADhI7B;;ACmIA;EACE,cAAc;EAEd,gBAAgB;ADjIlB;;ACoIA;EAME,YAAY;EAEZ,UAAU;EACV,SAAS;EACT,SAAS;ADvIX;;AC4IA;EACE,cAAc;EACd,WAAW;EACX,eAAe;EACf,UAAU;EACV,oBAAoB;EEjShB,iBAtCY;EFyUhB,oBAAoB;EACpB,cAAc;EACd,mBAAmB;ADzIrB;;AC4IA;EACE,wBAAwB;ADzI1B;;AAEA;;EC6IE,YAAY;AD1Id;;AAEA;ECgJE,oBAAoB;EACpB,wBAAwB;AD9I1B;;AAEA;ECoJE,wBAAwB;ADlJ1B;;AC0JA;EACE,aAAa;EACb,0BAA0B;ADvJ5B;;AC8JA;EACE,qBAAqB;AD3JvB;;AC8JA;EACE,kBAAkB;EAClB,eAAe;AD3JjB;;AC8JA;EACE,aAAa;AD3Jf;;AAEA;EC+JE,wBAAwB;AD7J1B","file":"bootstrap-reboot.css","sourcesContent":["/*!\n * Bootstrap Reboot v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"reboot\";\n","/*!\n * Bootstrap Reboot v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):hover {\n color: inherit;\n text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\n/*# sourceMappingURL=bootstrap-reboot.css.map */","// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\nhtml {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -webkit-tap-highlight-color: rgba($black, 0); // 5\n}\n\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\n// TODO: remove in v5\n// stylelint-disable-next-line selector-list-comma-newline-after\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use\n// the `inherit` value on things like `
",""],legend:[1,"
","
"],thead:[1,"
` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n @include font-size($font-size-base);\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Future-proof rule: in browsers that support :focus-visible, suppress the focus outline\n// on elements that programmatically receive focus but wouldn't normally show a visible\n// focus outline. In general, this would mean that the outline is only applied if the\n// interaction that led to the element receiving programmatic focus was a keyboard interaction,\n// or the browser has somehow determined that the user is primarily a keyboard user and/or\n// wants focus outlines to always be presented.\n//\n// See https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible\n// and https://developer.paciellogroup.com/blog/2018/03/focus-visible-and-backwards-compatibility/\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `

`-`

` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable-next-line selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `

`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Remove the bottom border in Firefox 39-.\n// 5. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-original-title] { // 1\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 4\n text-decoration-skip-ink: none; // 5\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: $font-weight-bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n\nsmall {\n @include font-size(80%); // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n @include font-size(75%);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n\n @include hover() {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]) {\n color: inherit;\n text-decoration: none;\n\n @include hover() {\n color: inherit;\n text-decoration: none;\n }\n}\n\n\n//\n// Code\n//\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-monospace;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg {\n // Workaround for the SVG overflow bug in IE10/11 is still required.\n // See https://github.com/twbs/bootstrap/issues/26878\n overflow: hidden;\n vertical-align: middle;\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $table-caption-color;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n // Matches default `

` alignment by inheriting from the ``, or the\n // closest parent with a set `text-align`.\n text-align: inherit;\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: $label-margin-bottom;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n // stylelint-disable-next-line property-blacklist\n border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// Remove the inheritance of word-wrap in Safari.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24990\nselect {\n word-wrap: normal;\n}\n\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n// controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\n[type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; // 2\n}\n\n// Opinionated: add \"hand\" cursor to non-disabled button elements.\n@if $enable-pointer-cursor-for-buttons {\n button,\n [type=\"button\"],\n [type=\"reset\"],\n [type=\"submit\"] {\n &:not(:disabled) {\n cursor: pointer;\n }\n }\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n // Remove the default appearance of temporal inputs to avoid a Mobile Safari\n // bug where setting a custom line-height prevents text from being vertically\n // centered within the input.\n // See https://bugs.webkit.org/show_bug.cgi?id=139848\n // and https://github.com/twbs/bootstrap/issues/11266\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto; // Remove the default vertical scrollbar in IE.\n // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n resize: vertical;\n}\n\nfieldset {\n // Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `
`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n min-width: 0;\n // Reset the default outline behavior of fieldsets so they don't affect page layout.\n padding: 0;\n margin: 0;\n border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n display: block;\n width: 100%;\n max-width: 100%; // 1\n padding: 0;\n margin-bottom: .5rem;\n @include font-size(1.5rem);\n line-height: inherit;\n color: inherit; // 2\n white-space: normal; // 1\n}\n\nprogress {\n vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n // This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n outline-offset: -2px; // 2. Correct the outline style in Safari.\n -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n font: inherit; // 2\n -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item; // Add the correct display in all browsers\n cursor: pointer;\n}\n\ntemplate {\n display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n display: none !important;\n}\n","// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n// Color system\n\n$white: #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black: #000 !default;\n\n$grays: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$grays: map-merge(\n (\n \"100\": $gray-100,\n \"200\": $gray-200,\n \"300\": $gray-300,\n \"400\": $gray-400,\n \"500\": $gray-500,\n \"600\": $gray-600,\n \"700\": $gray-700,\n \"800\": $gray-800,\n \"900\": $gray-900\n ),\n $grays\n);\n\n$blue: #007bff !default;\n$indigo: #6610f2 !default;\n$purple: #6f42c1 !default;\n$pink: #e83e8c !default;\n$red: #dc3545 !default;\n$orange: #fd7e14 !default;\n$yellow: #ffc107 !default;\n$green: #28a745 !default;\n$teal: #20c997 !default;\n$cyan: #17a2b8 !default;\n\n$colors: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$colors: map-merge(\n (\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"yellow\": $yellow,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"white\": $white,\n \"gray\": $gray-600,\n \"gray-dark\": $gray-800\n ),\n $colors\n);\n\n$primary: $blue !default;\n$secondary: $gray-600 !default;\n$success: $green !default;\n$info: $cyan !default;\n$warning: $yellow !default;\n$danger: $red !default;\n$light: $gray-100 !default;\n$dark: $gray-800 !default;\n\n$theme-colors: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$theme-colors: map-merge(\n (\n \"primary\": $primary,\n \"secondary\": $secondary,\n \"success\": $success,\n \"info\": $info,\n \"warning\": $warning,\n \"danger\": $danger,\n \"light\": $light,\n \"dark\": $dark\n ),\n $theme-colors\n);\n\n// Set a specific jump point for requesting color jumps\n$theme-color-interval: 8% !default;\n\n// The yiq lightness value that determines when the lightness of color changes from \"dark\" to \"light\". Acceptable values are between 0 and 255.\n$yiq-contrasted-threshold: 150 !default;\n\n// Customize the light and dark text colors for use in our YIQ color contrast function.\n$yiq-text-dark: $gray-900 !default;\n$yiq-text-light: $white !default;\n\n// Characters which are escaped by the escape-svg function\n$escaped-characters: (\n (\"<\",\"%3c\"),\n (\">\",\"%3e\"),\n (\"#\",\"%23\"),\n) !default;\n\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: false !default;\n$enable-gradients: false !default;\n$enable-transitions: true !default;\n$enable-prefers-reduced-motion-media-query: true !default;\n$enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS\n$enable-grid-classes: true !default;\n$enable-pointer-cursor-for-buttons: true !default;\n$enable-print-styles: true !default;\n$enable-responsive-font-sizes: false !default;\n$enable-validation-icons: true !default;\n$enable-deprecation-messages: true !default;\n\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n$spacer: 1rem !default;\n$spacers: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$spacers: map-merge(\n (\n 0: 0,\n 1: ($spacer * .25),\n 2: ($spacer * .5),\n 3: $spacer,\n 4: ($spacer * 1.5),\n 5: ($spacer * 3)\n ),\n $spacers\n);\n\n// This variable affects the `.h-*` and `.w-*` classes.\n$sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$sizes: map-merge(\n (\n 25: 25%,\n 50: 50%,\n 75: 75%,\n 100: 100%,\n auto: auto\n ),\n $sizes\n);\n\n\n// Body\n//\n// Settings for the `` element.\n\n$body-bg: $white !default;\n$body-color: $gray-900 !default;\n\n\n// Links\n//\n// Style anchor elements.\n\n$link-color: theme-color(\"primary\") !default;\n$link-decoration: none !default;\n$link-hover-color: darken($link-color, 15%) !default;\n$link-hover-decoration: underline !default;\n// Darken percentage for links with `.text-*` class (e.g. `.text-success`)\n$emphasized-link-hover-darken-percentage: 15% !default;\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n$grid-breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px\n) !default;\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints, \"$grid-breakpoints\");\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1140px\n) !default;\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-width: 30px !default;\n$grid-row-columns: 6 !default;\n\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n$line-height-lg: 1.5 !default;\n$line-height-sm: 1.5 !default;\n\n$border-width: 1px !default;\n$border-color: $gray-300 !default;\n\n$border-radius: .25rem !default;\n$border-radius-lg: .3rem !default;\n$border-radius-sm: .2rem !default;\n\n$rounded-pill: 50rem !default;\n\n$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default;\n$box-shadow: 0 .5rem 1rem rgba($black, .15) !default;\n$box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default;\n\n$component-active-color: $white !default;\n$component-active-bg: theme-color(\"primary\") !default;\n\n$caret-width: .3em !default;\n$caret-vertical-align: $caret-width * .85 !default;\n$caret-spacing: $caret-width * .85 !default;\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n$transition-collapse: height .35s ease !default;\n\n$embed-responsive-aspect-ratios: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$embed-responsive-aspect-ratios: join(\n (\n (21 9),\n (16 9),\n (4 3),\n (1 1),\n ),\n $embed-responsive-aspect-ratios\n);\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// stylelint-disable value-keyword-case\n$font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\" !default;\n$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n$font-family-base: $font-family-sans-serif !default;\n// stylelint-enable value-keyword-case\n\n$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`\n$font-size-lg: $font-size-base * 1.25 !default;\n$font-size-sm: $font-size-base * .875 !default;\n\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n$line-height-base: 1.5 !default;\n\n$h1-font-size: $font-size-base * 2.5 !default;\n$h2-font-size: $font-size-base * 2 !default;\n$h3-font-size: $font-size-base * 1.75 !default;\n$h4-font-size: $font-size-base * 1.5 !default;\n$h5-font-size: $font-size-base * 1.25 !default;\n$h6-font-size: $font-size-base !default;\n\n$headings-margin-bottom: $spacer / 2 !default;\n$headings-font-family: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: null !default;\n\n$display1-size: 6rem !default;\n$display2-size: 5.5rem !default;\n$display3-size: 4.5rem !default;\n$display4-size: 3.5rem !default;\n\n$display1-weight: 300 !default;\n$display2-weight: 300 !default;\n$display3-weight: 300 !default;\n$display4-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n\n$lead-font-size: $font-size-base * 1.25 !default;\n$lead-font-weight: 300 !default;\n\n$small-font-size: 80% !default;\n\n$text-muted: $gray-600 !default;\n\n$blockquote-small-color: $gray-600 !default;\n$blockquote-small-font-size: $small-font-size !default;\n$blockquote-font-size: $font-size-base * 1.25 !default;\n\n$hr-border-color: rgba($black, .1) !default;\n$hr-border-width: $border-width !default;\n\n$mark-padding: .2em !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n$kbd-box-shadow: inset 0 -.1rem 0 rgba($black, .25) !default;\n$nested-kbd-font-weight: $font-weight-bold !default;\n\n$list-inline-padding: .5rem !default;\n\n$mark-bg: #fcf8e3 !default;\n\n$hr-margin-y: $spacer !default;\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n$table-cell-padding: .75rem !default;\n$table-cell-padding-sm: .3rem !default;\n\n$table-color: $body-color !default;\n$table-bg: null !default;\n$table-accent-bg: rgba($black, .05) !default;\n$table-hover-color: $table-color !default;\n$table-hover-bg: rgba($black, .075) !default;\n$table-active-bg: $table-hover-bg !default;\n\n$table-border-width: $border-width !default;\n$table-border-color: $border-color !default;\n\n$table-head-bg: $gray-200 !default;\n$table-head-color: $gray-700 !default;\n\n$table-dark-color: $white !default;\n$table-dark-bg: $gray-800 !default;\n$table-dark-accent-bg: rgba($white, .05) !default;\n$table-dark-hover-color: $table-dark-color !default;\n$table-dark-hover-bg: rgba($white, .075) !default;\n$table-dark-border-color: lighten($table-dark-bg, 7.5%) !default;\n\n$table-striped-order: odd !default;\n\n$table-caption-color: $text-muted !default;\n\n$table-bg-level: -9 !default;\n$table-border-level: -6 !default;\n\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n$input-btn-padding-y: .375rem !default;\n$input-btn-padding-x: .75rem !default;\n$input-btn-font-family: null !default;\n$input-btn-font-size: $font-size-base !default;\n$input-btn-line-height: $line-height-base !default;\n\n$input-btn-focus-width: .2rem !default;\n$input-btn-focus-color: rgba($component-active-bg, .25) !default;\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color !default;\n\n$input-btn-padding-y-sm: .25rem !default;\n$input-btn-padding-x-sm: .5rem !default;\n$input-btn-font-size-sm: $font-size-sm !default;\n$input-btn-line-height-sm: $line-height-sm !default;\n\n$input-btn-padding-y-lg: .5rem !default;\n$input-btn-padding-x-lg: 1rem !default;\n$input-btn-font-size-lg: $font-size-lg !default;\n$input-btn-line-height-lg: $line-height-lg !default;\n\n$input-btn-border-width: $border-width !default;\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n$btn-padding-y: $input-btn-padding-y !default;\n$btn-padding-x: $input-btn-padding-x !default;\n$btn-font-family: $input-btn-font-family !default;\n$btn-font-size: $input-btn-font-size !default;\n$btn-line-height: $input-btn-line-height !default;\n$btn-white-space: null !default; // Set to `nowrap` to prevent text wrapping\n\n$btn-padding-y-sm: $input-btn-padding-y-sm !default;\n$btn-padding-x-sm: $input-btn-padding-x-sm !default;\n$btn-font-size-sm: $input-btn-font-size-sm !default;\n$btn-line-height-sm: $input-btn-line-height-sm !default;\n\n$btn-padding-y-lg: $input-btn-padding-y-lg !default;\n$btn-padding-x-lg: $input-btn-padding-x-lg !default;\n$btn-font-size-lg: $input-btn-font-size-lg !default;\n$btn-line-height-lg: $input-btn-line-height-lg !default;\n\n$btn-border-width: $input-btn-border-width !default;\n\n$btn-font-weight: $font-weight-normal !default;\n$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width: $input-btn-focus-width !default;\n$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity: .65 !default;\n$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-disabled-color: $gray-600 !default;\n\n$btn-block-spacing-y: .5rem !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius: $border-radius !default;\n$btn-border-radius-lg: $border-radius-lg !default;\n$btn-border-radius-sm: $border-radius-sm !default;\n\n$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n\n// Forms\n\n$label-margin-bottom: .5rem !default;\n\n$input-padding-y: $input-btn-padding-y !default;\n$input-padding-x: $input-btn-padding-x !default;\n$input-font-family: $input-btn-font-family !default;\n$input-font-size: $input-btn-font-size !default;\n$input-font-weight: $font-weight-base !default;\n$input-line-height: $input-btn-line-height !default;\n\n$input-padding-y-sm: $input-btn-padding-y-sm !default;\n$input-padding-x-sm: $input-btn-padding-x-sm !default;\n$input-font-size-sm: $input-btn-font-size-sm !default;\n$input-line-height-sm: $input-btn-line-height-sm !default;\n\n$input-padding-y-lg: $input-btn-padding-y-lg !default;\n$input-padding-x-lg: $input-btn-padding-x-lg !default;\n$input-font-size-lg: $input-btn-font-size-lg !default;\n$input-line-height-lg: $input-btn-line-height-lg !default;\n\n$input-bg: $white !default;\n$input-disabled-bg: $gray-200 !default;\n\n$input-color: $gray-700 !default;\n$input-border-color: $gray-400 !default;\n$input-border-width: $input-btn-border-width !default;\n$input-box-shadow: inset 0 1px 1px rgba($black, .075) !default;\n\n$input-border-radius: $border-radius !default;\n$input-border-radius-lg: $border-radius-lg !default;\n$input-border-radius-sm: $border-radius-sm !default;\n\n$input-focus-bg: $input-bg !default;\n$input-focus-border-color: lighten($component-active-bg, 25%) !default;\n$input-focus-color: $input-color !default;\n$input-focus-width: $input-btn-focus-width !default;\n$input-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color: $gray-600 !default;\n$input-plaintext-color: $body-color !default;\n\n$input-height-border: $input-border-width * 2 !default;\n\n$input-height-inner: add($input-line-height * 1em, $input-padding-y * 2) !default;\n$input-height-inner-half: add($input-line-height * .5em, $input-padding-y) !default;\n$input-height-inner-quarter: add($input-line-height * .25em, $input-padding-y / 2) !default;\n\n$input-height: add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false)) !default;\n$input-height-sm: add($input-line-height-sm * 1em, add($input-padding-y-sm * 2, $input-height-border, false)) !default;\n$input-height-lg: add($input-line-height-lg * 1em, add($input-padding-y-lg * 2, $input-height-border, false)) !default;\n\n$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-text-margin-top: .25rem !default;\n\n$form-check-input-gutter: 1.25rem !default;\n$form-check-input-margin-y: .3rem !default;\n$form-check-input-margin-x: .25rem !default;\n\n$form-check-inline-margin-x: .75rem !default;\n$form-check-inline-input-margin-x: .3125rem !default;\n\n$form-grid-gutter-width: 10px !default;\n$form-group-margin-bottom: 1rem !default;\n\n$input-group-addon-color: $input-color !default;\n$input-group-addon-bg: $gray-200 !default;\n$input-group-addon-border-color: $input-border-color !default;\n\n$custom-forms-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$custom-control-gutter: .5rem !default;\n$custom-control-spacer-x: 1rem !default;\n$custom-control-cursor: null !default;\n\n$custom-control-indicator-size: 1rem !default;\n$custom-control-indicator-bg: $input-bg !default;\n\n$custom-control-indicator-bg-size: 50% 50% !default;\n$custom-control-indicator-box-shadow: $input-box-shadow !default;\n$custom-control-indicator-border-color: $gray-500 !default;\n$custom-control-indicator-border-width: $input-border-width !default;\n\n$custom-control-label-color: null !default;\n\n$custom-control-indicator-disabled-bg: $input-disabled-bg !default;\n$custom-control-label-disabled-color: $gray-600 !default;\n\n$custom-control-indicator-checked-color: $component-active-color !default;\n$custom-control-indicator-checked-bg: $component-active-bg !default;\n$custom-control-indicator-checked-disabled-bg: rgba(theme-color(\"primary\"), .5) !default;\n$custom-control-indicator-checked-box-shadow: none !default;\n$custom-control-indicator-checked-border-color: $custom-control-indicator-checked-bg !default;\n\n$custom-control-indicator-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-control-indicator-focus-border-color: $input-focus-border-color !default;\n\n$custom-control-indicator-active-color: $component-active-color !default;\n$custom-control-indicator-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-control-indicator-active-box-shadow: none !default;\n$custom-control-indicator-active-border-color: $custom-control-indicator-active-bg !default;\n\n$custom-checkbox-indicator-border-radius: $border-radius !default;\n$custom-checkbox-indicator-icon-checked: url(\"data:image/svg+xml,\") !default;\n\n$custom-checkbox-indicator-indeterminate-bg: $component-active-bg !default;\n$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;\n$custom-checkbox-indicator-icon-indeterminate: url(\"data:image/svg+xml,\") !default;\n$custom-checkbox-indicator-indeterminate-box-shadow: none !default;\n$custom-checkbox-indicator-indeterminate-border-color: $custom-checkbox-indicator-indeterminate-bg !default;\n\n$custom-radio-indicator-border-radius: 50% !default;\n$custom-radio-indicator-icon-checked: url(\"data:image/svg+xml,\") !default;\n\n$custom-switch-width: $custom-control-indicator-size * 1.75 !default;\n$custom-switch-indicator-border-radius: $custom-control-indicator-size / 2 !default;\n$custom-switch-indicator-size: subtract($custom-control-indicator-size, $custom-control-indicator-border-width * 4) !default;\n\n$custom-select-padding-y: $input-padding-y !default;\n$custom-select-padding-x: $input-padding-x !default;\n$custom-select-font-family: $input-font-family !default;\n$custom-select-font-size: $input-font-size !default;\n$custom-select-height: $input-height !default;\n$custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator\n$custom-select-font-weight: $input-font-weight !default;\n$custom-select-line-height: $input-line-height !default;\n$custom-select-color: $input-color !default;\n$custom-select-disabled-color: $gray-600 !default;\n$custom-select-bg: $input-bg !default;\n$custom-select-disabled-bg: $gray-200 !default;\n$custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions\n$custom-select-indicator-color: $gray-800 !default;\n$custom-select-indicator: url(\"data:image/svg+xml,\") !default;\n$custom-select-background: escape-svg($custom-select-indicator) no-repeat right $custom-select-padding-x center / $custom-select-bg-size !default; // Used so we can have multiple background elements (e.g., arrow and feedback icon)\n\n$custom-select-feedback-icon-padding-right: add(1em * .75, (2 * $custom-select-padding-y * .75) + $custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-position: center right ($custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default;\n\n$custom-select-border-width: $input-border-width !default;\n$custom-select-border-color: $input-border-color !default;\n$custom-select-border-radius: $border-radius !default;\n$custom-select-box-shadow: inset 0 1px 2px rgba($black, .075) !default;\n\n$custom-select-focus-border-color: $input-focus-border-color !default;\n$custom-select-focus-width: $input-focus-width !default;\n$custom-select-focus-box-shadow: 0 0 0 $custom-select-focus-width $input-btn-focus-color !default;\n\n$custom-select-padding-y-sm: $input-padding-y-sm !default;\n$custom-select-padding-x-sm: $input-padding-x-sm !default;\n$custom-select-font-size-sm: $input-font-size-sm !default;\n$custom-select-height-sm: $input-height-sm !default;\n\n$custom-select-padding-y-lg: $input-padding-y-lg !default;\n$custom-select-padding-x-lg: $input-padding-x-lg !default;\n$custom-select-font-size-lg: $input-font-size-lg !default;\n$custom-select-height-lg: $input-height-lg !default;\n\n$custom-range-track-width: 100% !default;\n$custom-range-track-height: .5rem !default;\n$custom-range-track-cursor: pointer !default;\n$custom-range-track-bg: $gray-300 !default;\n$custom-range-track-border-radius: 1rem !default;\n$custom-range-track-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default;\n\n$custom-range-thumb-width: 1rem !default;\n$custom-range-thumb-height: $custom-range-thumb-width !default;\n$custom-range-thumb-bg: $component-active-bg !default;\n$custom-range-thumb-border: 0 !default;\n$custom-range-thumb-border-radius: 1rem !default;\n$custom-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default;\n$custom-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default;\n$custom-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in IE/Edge\n$custom-range-thumb-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-range-thumb-disabled-bg: $gray-500 !default;\n\n$custom-file-height: $input-height !default;\n$custom-file-height-inner: $input-height-inner !default;\n$custom-file-focus-border-color: $input-focus-border-color !default;\n$custom-file-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-file-disabled-bg: $input-disabled-bg !default;\n\n$custom-file-padding-y: $input-padding-y !default;\n$custom-file-padding-x: $input-padding-x !default;\n$custom-file-line-height: $input-line-height !default;\n$custom-file-font-family: $input-font-family !default;\n$custom-file-font-weight: $input-font-weight !default;\n$custom-file-color: $input-color !default;\n$custom-file-bg: $input-bg !default;\n$custom-file-border-width: $input-border-width !default;\n$custom-file-border-color: $input-border-color !default;\n$custom-file-border-radius: $input-border-radius !default;\n$custom-file-box-shadow: $input-box-shadow !default;\n$custom-file-button-color: $custom-file-color !default;\n$custom-file-button-bg: $input-group-addon-bg !default;\n$custom-file-text: (\n en: \"Browse\"\n) !default;\n\n\n// Form validation\n\n$form-feedback-margin-top: $form-text-margin-top !default;\n$form-feedback-font-size: $small-font-size !default;\n$form-feedback-valid-color: theme-color(\"success\") !default;\n$form-feedback-invalid-color: theme-color(\"danger\") !default;\n\n$form-feedback-icon-valid-color: $form-feedback-valid-color !default;\n$form-feedback-icon-valid: url(\"data:image/svg+xml,\") !default;\n$form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;\n$form-feedback-icon-invalid: url(\"data:image/svg+xml,\") !default;\n\n$form-validation-states: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$form-validation-states: map-merge(\n (\n \"valid\": (\n \"color\": $form-feedback-valid-color,\n \"icon\": $form-feedback-icon-valid\n ),\n \"invalid\": (\n \"color\": $form-feedback-invalid-color,\n \"icon\": $form-feedback-icon-invalid\n ),\n ),\n $form-validation-states\n);\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n$zindex-dropdown: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n$zindex-modal-backdrop: 1040 !default;\n$zindex-modal: 1050 !default;\n$zindex-popover: 1060 !default;\n$zindex-tooltip: 1070 !default;\n\n\n// Navs\n\n$nav-link-padding-y: .5rem !default;\n$nav-link-padding-x: 1rem !default;\n$nav-link-disabled-color: $gray-600 !default;\n\n$nav-tabs-border-color: $gray-300 !default;\n$nav-tabs-border-width: $border-width !default;\n$nav-tabs-border-radius: $border-radius !default;\n$nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color !default;\n$nav-tabs-link-active-color: $gray-700 !default;\n$nav-tabs-link-active-bg: $body-bg !default;\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius: $border-radius !default;\n$nav-pills-link-active-color: $component-active-color !default;\n$nav-pills-link-active-bg: $component-active-bg !default;\n\n$nav-divider-color: $gray-200 !default;\n$nav-divider-margin-y: $spacer / 2 !default;\n\n\n// Navbar\n\n$navbar-padding-y: $spacer / 2 !default;\n$navbar-padding-x: $spacer !default;\n\n$navbar-nav-link-padding-x: .5rem !default;\n\n$navbar-brand-font-size: $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;\n$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) / 2 !default;\n\n$navbar-toggler-padding-y: .25rem !default;\n$navbar-toggler-padding-x: .75rem !default;\n$navbar-toggler-font-size: $font-size-lg !default;\n$navbar-toggler-border-radius: $btn-border-radius !default;\n\n$navbar-dark-color: rgba($white, .5) !default;\n$navbar-dark-hover-color: rgba($white, .75) !default;\n$navbar-dark-active-color: $white !default;\n$navbar-dark-disabled-color: rgba($white, .25) !default;\n$navbar-dark-toggler-icon-bg: url(\"data:image/svg+xml,\") !default;\n$navbar-dark-toggler-border-color: rgba($white, .1) !default;\n\n$navbar-light-color: rgba($black, .5) !default;\n$navbar-light-hover-color: rgba($black, .7) !default;\n$navbar-light-active-color: rgba($black, .9) !default;\n$navbar-light-disabled-color: rgba($black, .3) !default;\n$navbar-light-toggler-icon-bg: url(\"data:image/svg+xml,\") !default;\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\n\n$navbar-light-brand-color: $navbar-light-active-color !default;\n$navbar-light-brand-hover-color: $navbar-light-active-color !default;\n$navbar-dark-brand-color: $navbar-dark-active-color !default;\n$navbar-dark-brand-hover-color: $navbar-dark-active-color !default;\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n$dropdown-min-width: 10rem !default;\n$dropdown-padding-y: .5rem !default;\n$dropdown-spacer: .125rem !default;\n$dropdown-font-size: $font-size-base !default;\n$dropdown-color: $body-color !default;\n$dropdown-bg: $white !default;\n$dropdown-border-color: rgba($black, .15) !default;\n$dropdown-border-radius: $border-radius !default;\n$dropdown-border-width: $border-width !default;\n$dropdown-inner-border-radius: subtract($dropdown-border-radius, $dropdown-border-width) !default;\n$dropdown-divider-bg: $gray-200 !default;\n$dropdown-divider-margin-y: $nav-divider-margin-y !default;\n$dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;\n\n$dropdown-link-color: $gray-900 !default;\n$dropdown-link-hover-color: darken($gray-900, 5%) !default;\n$dropdown-link-hover-bg: $gray-100 !default;\n\n$dropdown-link-active-color: $component-active-color !default;\n$dropdown-link-active-bg: $component-active-bg !default;\n\n$dropdown-link-disabled-color: $gray-600 !default;\n\n$dropdown-item-padding-y: .25rem !default;\n$dropdown-item-padding-x: 1.5rem !default;\n\n$dropdown-header-color: $gray-600 !default;\n\n\n// Pagination\n\n$pagination-padding-y: .5rem !default;\n$pagination-padding-x: .75rem !default;\n$pagination-padding-y-sm: .25rem !default;\n$pagination-padding-x-sm: .5rem !default;\n$pagination-padding-y-lg: .75rem !default;\n$pagination-padding-x-lg: 1.5rem !default;\n$pagination-line-height: 1.25 !default;\n\n$pagination-color: $link-color !default;\n$pagination-bg: $white !default;\n$pagination-border-width: $border-width !default;\n$pagination-border-color: $gray-300 !default;\n\n$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$pagination-focus-outline: 0 !default;\n\n$pagination-hover-color: $link-hover-color !default;\n$pagination-hover-bg: $gray-200 !default;\n$pagination-hover-border-color: $gray-300 !default;\n\n$pagination-active-color: $component-active-color !default;\n$pagination-active-bg: $component-active-bg !default;\n$pagination-active-border-color: $pagination-active-bg !default;\n\n$pagination-disabled-color: $gray-600 !default;\n$pagination-disabled-bg: $white !default;\n$pagination-disabled-border-color: $gray-300 !default;\n\n\n// Jumbotron\n\n$jumbotron-padding: 2rem !default;\n$jumbotron-color: null !default;\n$jumbotron-bg: $gray-200 !default;\n\n\n// Cards\n\n$card-spacer-y: .75rem !default;\n$card-spacer-x: 1.25rem !default;\n$card-border-width: $border-width !default;\n$card-border-radius: $border-radius !default;\n$card-border-color: rgba($black, .125) !default;\n$card-inner-border-radius: subtract($card-border-radius, $card-border-width) !default;\n$card-cap-bg: rgba($black, .03) !default;\n$card-cap-color: null !default;\n$card-height: null !default;\n$card-color: null !default;\n$card-bg: $white !default;\n\n$card-img-overlay-padding: 1.25rem !default;\n\n$card-group-margin: $grid-gutter-width / 2 !default;\n$card-deck-margin: $card-group-margin !default;\n\n$card-columns-count: 3 !default;\n$card-columns-gap: 1.25rem !default;\n$card-columns-margin: $card-spacer-y !default;\n\n\n// Tooltips\n\n$tooltip-font-size: $font-size-sm !default;\n$tooltip-max-width: 200px !default;\n$tooltip-color: $white !default;\n$tooltip-bg: $black !default;\n$tooltip-border-radius: $border-radius !default;\n$tooltip-opacity: .9 !default;\n$tooltip-padding-y: .25rem !default;\n$tooltip-padding-x: .5rem !default;\n$tooltip-margin: 0 !default;\n\n$tooltip-arrow-width: .8rem !default;\n$tooltip-arrow-height: .4rem !default;\n$tooltip-arrow-color: $tooltip-bg !default;\n\n// Form tooltips must come after regular tooltips\n$form-feedback-tooltip-padding-y: $tooltip-padding-y !default;\n$form-feedback-tooltip-padding-x: $tooltip-padding-x !default;\n$form-feedback-tooltip-font-size: $tooltip-font-size !default;\n$form-feedback-tooltip-line-height: $line-height-base !default;\n$form-feedback-tooltip-opacity: $tooltip-opacity !default;\n$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;\n\n\n// Popovers\n\n$popover-font-size: $font-size-sm !default;\n$popover-bg: $white !default;\n$popover-max-width: 276px !default;\n$popover-border-width: $border-width !default;\n$popover-border-color: rgba($black, .2) !default;\n$popover-border-radius: $border-radius-lg !default;\n$popover-inner-border-radius: subtract($popover-border-radius, $popover-border-width) !default;\n$popover-box-shadow: 0 .25rem .5rem rgba($black, .2) !default;\n\n$popover-header-bg: darken($popover-bg, 3%) !default;\n$popover-header-color: $headings-color !default;\n$popover-header-padding-y: .5rem !default;\n$popover-header-padding-x: .75rem !default;\n\n$popover-body-color: $body-color !default;\n$popover-body-padding-y: $popover-header-padding-y !default;\n$popover-body-padding-x: $popover-header-padding-x !default;\n\n$popover-arrow-width: 1rem !default;\n$popover-arrow-height: .5rem !default;\n$popover-arrow-color: $popover-bg !default;\n\n$popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;\n\n\n// Toasts\n\n$toast-max-width: 350px !default;\n$toast-padding-x: .75rem !default;\n$toast-padding-y: .25rem !default;\n$toast-font-size: .875rem !default;\n$toast-color: null !default;\n$toast-background-color: rgba($white, .85) !default;\n$toast-border-width: 1px !default;\n$toast-border-color: rgba(0, 0, 0, .1) !default;\n$toast-border-radius: .25rem !default;\n$toast-box-shadow: 0 .25rem .75rem rgba($black, .1) !default;\n\n$toast-header-color: $gray-600 !default;\n$toast-header-background-color: rgba($white, .85) !default;\n$toast-header-border-color: rgba(0, 0, 0, .05) !default;\n\n\n// Badges\n\n$badge-font-size: 75% !default;\n$badge-font-weight: $font-weight-bold !default;\n$badge-padding-y: .25em !default;\n$badge-padding-x: .4em !default;\n$badge-border-radius: $border-radius !default;\n\n$badge-transition: $btn-transition !default;\n$badge-focus-width: $input-btn-focus-width !default;\n\n$badge-pill-padding-x: .6em !default;\n// Use a higher than normal value to ensure completely rounded edges when\n// customizing padding or font-size on labels.\n$badge-pill-border-radius: 10rem !default;\n\n\n// Modals\n\n// Padding applied to the modal body\n$modal-inner-padding: 1rem !default;\n\n// Margin between elements in footer, must be lower than or equal to 2 * $modal-inner-padding\n$modal-footer-margin-between: .5rem !default;\n\n$modal-dialog-margin: .5rem !default;\n$modal-dialog-margin-y-sm-up: 1.75rem !default;\n\n$modal-title-line-height: $line-height-base !default;\n\n$modal-content-color: null !default;\n$modal-content-bg: $white !default;\n$modal-content-border-color: rgba($black, .2) !default;\n$modal-content-border-width: $border-width !default;\n$modal-content-border-radius: $border-radius-lg !default;\n$modal-content-inner-border-radius: subtract($modal-content-border-radius, $modal-content-border-width) !default;\n$modal-content-box-shadow-xs: 0 .25rem .5rem rgba($black, .5) !default;\n$modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .5) !default;\n\n$modal-backdrop-bg: $black !default;\n$modal-backdrop-opacity: .5 !default;\n$modal-header-border-color: $border-color !default;\n$modal-footer-border-color: $modal-header-border-color !default;\n$modal-header-border-width: $modal-content-border-width !default;\n$modal-footer-border-width: $modal-header-border-width !default;\n$modal-header-padding-y: 1rem !default;\n$modal-header-padding-x: 1rem !default;\n$modal-header-padding: $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility\n\n$modal-xl: 1140px !default;\n$modal-lg: 800px !default;\n$modal-md: 500px !default;\n$modal-sm: 300px !default;\n\n$modal-fade-transform: translate(0, -50px) !default;\n$modal-show-transform: none !default;\n$modal-transition: transform .3s ease-out !default;\n$modal-scale-transform: scale(1.02) !default;\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n$alert-padding-y: .75rem !default;\n$alert-padding-x: 1.25rem !default;\n$alert-margin-bottom: 1rem !default;\n$alert-border-radius: $border-radius !default;\n$alert-link-font-weight: $font-weight-bold !default;\n$alert-border-width: $border-width !default;\n\n$alert-bg-level: -10 !default;\n$alert-border-level: -9 !default;\n$alert-color-level: 6 !default;\n\n\n// Progress bars\n\n$progress-height: 1rem !default;\n$progress-font-size: $font-size-base * .75 !default;\n$progress-bg: $gray-200 !default;\n$progress-border-radius: $border-radius !default;\n$progress-box-shadow: inset 0 .1rem .1rem rgba($black, .1) !default;\n$progress-bar-color: $white !default;\n$progress-bar-bg: theme-color(\"primary\") !default;\n$progress-bar-animation-timing: 1s linear infinite !default;\n$progress-bar-transition: width .6s ease !default;\n\n\n// List group\n\n$list-group-color: null !default;\n$list-group-bg: $white !default;\n$list-group-border-color: rgba($black, .125) !default;\n$list-group-border-width: $border-width !default;\n$list-group-border-radius: $border-radius !default;\n\n$list-group-item-padding-y: .75rem !default;\n$list-group-item-padding-x: 1.25rem !default;\n\n$list-group-hover-bg: $gray-100 !default;\n$list-group-active-color: $component-active-color !default;\n$list-group-active-bg: $component-active-bg !default;\n$list-group-active-border-color: $list-group-active-bg !default;\n\n$list-group-disabled-color: $gray-600 !default;\n$list-group-disabled-bg: $list-group-bg !default;\n\n$list-group-action-color: $gray-700 !default;\n$list-group-action-hover-color: $list-group-action-color !default;\n\n$list-group-action-active-color: $body-color !default;\n$list-group-action-active-bg: $gray-200 !default;\n\n\n// Image thumbnails\n\n$thumbnail-padding: .25rem !default;\n$thumbnail-bg: $body-bg !default;\n$thumbnail-border-width: $border-width !default;\n$thumbnail-border-color: $gray-300 !default;\n$thumbnail-border-radius: $border-radius !default;\n$thumbnail-box-shadow: 0 1px 2px rgba($black, .075) !default;\n\n\n// Figures\n\n$figure-caption-font-size: 90% !default;\n$figure-caption-color: $gray-600 !default;\n\n\n// Breadcrumbs\n\n$breadcrumb-font-size: null !default;\n\n$breadcrumb-padding-y: .75rem !default;\n$breadcrumb-padding-x: 1rem !default;\n$breadcrumb-item-padding: .5rem !default;\n\n$breadcrumb-margin-bottom: 1rem !default;\n\n$breadcrumb-bg: $gray-200 !default;\n$breadcrumb-divider-color: $gray-600 !default;\n$breadcrumb-active-color: $gray-600 !default;\n$breadcrumb-divider: quote(\"/\") !default;\n\n$breadcrumb-border-radius: $border-radius !default;\n\n\n// Carousel\n\n$carousel-control-color: $white !default;\n$carousel-control-width: 15% !default;\n$carousel-control-opacity: .5 !default;\n$carousel-control-hover-opacity: .9 !default;\n$carousel-control-transition: opacity .15s ease !default;\n\n$carousel-indicator-width: 30px !default;\n$carousel-indicator-height: 3px !default;\n$carousel-indicator-hit-area-height: 10px !default;\n$carousel-indicator-spacer: 3px !default;\n$carousel-indicator-active-bg: $white !default;\n$carousel-indicator-transition: opacity .6s ease !default;\n\n$carousel-caption-width: 70% !default;\n$carousel-caption-color: $white !default;\n\n$carousel-control-icon-width: 20px !default;\n\n$carousel-control-prev-icon-bg: url(\"data:image/svg+xml,\") !default;\n$carousel-control-next-icon-bg: url(\"data:image/svg+xml,\") !default;\n\n$carousel-transition-duration: .6s !default;\n$carousel-transition: transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)\n\n\n// Spinners\n\n$spinner-width: 2rem !default;\n$spinner-height: $spinner-width !default;\n$spinner-border-width: .25em !default;\n\n$spinner-width-sm: 1rem !default;\n$spinner-height-sm: $spinner-width-sm !default;\n$spinner-border-width-sm: .2em !default;\n\n\n// Close\n\n$close-font-size: $font-size-base * 1.5 !default;\n$close-font-weight: $font-weight-bold !default;\n$close-color: $black !default;\n$close-text-shadow: 0 1px 0 $white !default;\n\n\n// Code\n\n$code-font-size: 87.5% !default;\n$code-color: $pink !default;\n\n$kbd-padding-y: .2rem !default;\n$kbd-padding-x: .4rem !default;\n$kbd-font-size: $code-font-size !default;\n$kbd-color: $white !default;\n$kbd-bg: $gray-900 !default;\n\n$pre-color: $gray-900 !default;\n$pre-scrollable-max-height: 340px !default;\n\n\n// Utilities\n\n$displays: none, inline, inline-block, block, table, table-row, table-cell, flex, inline-flex !default;\n$overflows: auto, hidden !default;\n$positions: static, relative, absolute, fixed, sticky !default;\n\n\n// Printing\n\n$print-page-size: a3 !default;\n$print-body-min-width: map-get($grid-breakpoints, \"lg\") !default;\n","// stylelint-disable property-blacklist, scss/dollar-variable-default\n\n// SCSS RFS mixin\n//\n// Automated font-resizing\n//\n// See https://github.com/twbs/rfs\n\n// Configuration\n\n// Base font size\n$rfs-base-font-size: 1.25rem !default;\n$rfs-font-size-unit: rem !default;\n\n// Breakpoint at where font-size starts decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n// Resize font-size based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != \"number\" or $rfs-factor <= 1 {\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\n}\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-responsive-font-sizes to false\n$enable-responsive-font-sizes: true !default;\n\n// Cache $rfs-base-font-size unit\n$rfs-base-font-size-unit: unit($rfs-base-font-size);\n\n// Remove px-unit from $rfs-base-font-size for calculations\n@if $rfs-base-font-size-unit == \"px\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1);\n}\n@else if $rfs-base-font-size-unit == \"rem\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1 / $rfs-rem-value);\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == \"px\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == \"rem\" or $rfs-breakpoint-unit-cache == \"em\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1 / $rfs-rem-value);\n}\n\n// Responsive font-size mixin\n@mixin rfs($fs, $important: false) {\n // Cache $fs unit\n $fs-unit: if(type-of($fs) == \"number\", unit($fs), false);\n\n // Add !important suffix if needed\n $rfs-suffix: if($important, \" !important\", \"\");\n\n // If $fs isn't a number (like inherit) or $fs has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $fs-unit or $fs-unit != \"\" and $fs-unit != \"px\" and $fs-unit != \"rem\" or $fs == 0 {\n font-size: #{$fs}#{$rfs-suffix};\n }\n @else {\n // Variables for storing static and fluid rescaling\n $rfs-static: null;\n $rfs-fluid: null;\n\n // Remove px-unit from $fs for calculations\n @if $fs-unit == \"px\" {\n $fs: $fs / ($fs * 0 + 1);\n }\n @else if $fs-unit == \"rem\" {\n $fs: $fs / ($fs * 0 + 1 / $rfs-rem-value);\n }\n\n // Set default font-size\n @if $rfs-font-size-unit == rem {\n $rfs-static: #{$fs / $rfs-rem-value}rem#{$rfs-suffix};\n }\n @else if $rfs-font-size-unit == px {\n $rfs-static: #{$fs}px#{$rfs-suffix};\n }\n @else {\n @error \"`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.\";\n }\n\n // Only add media query if font-size is bigger as the minimum font-size\n // If $rfs-factor == 1, no rescaling will take place\n @if $fs > $rfs-base-font-size and $enable-responsive-font-sizes {\n $min-width: null;\n $variable-unit: null;\n\n // Calculate minimum font-size for given font-size\n $fs-min: $rfs-base-font-size + ($fs - $rfs-base-font-size) / $rfs-factor;\n\n // Calculate difference between given font-size and minimum font-size for given font-size\n $fs-diff: $fs - $fs-min;\n\n // Base font-size formatting\n // No need to check if the unit is valid, because we did that before\n $min-width: if($rfs-font-size-unit == rem, #{$fs-min / $rfs-rem-value}rem, #{$fs-min}px);\n\n // If two-dimensional, use smallest of screen width and height\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n // Calculate the variable width between 0 and $rfs-breakpoint\n $variable-width: #{$fs-diff * 100 / $rfs-breakpoint}#{$variable-unit};\n\n // Set the calculated font-size.\n $rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};\n }\n\n // Rendering\n @if $rfs-fluid == null {\n // Only render static font-size if no fluid font-size is available\n font-size: $rfs-static;\n }\n @else {\n $mq-value: null;\n\n // RFS breakpoint formatting\n @if $rfs-breakpoint-unit == em or $rfs-breakpoint-unit == rem {\n $mq-value: #{$rfs-breakpoint / $rfs-rem-value}#{$rfs-breakpoint-unit};\n }\n @else if $rfs-breakpoint-unit == px {\n $mq-value: #{$rfs-breakpoint}px;\n }\n @else {\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n }\n\n @if $rfs-class == \"disable\" {\n // Adding an extra class increases specificity,\n // which prevents the media query to override the font size\n &,\n .disable-responsive-font-size &,\n &.disable-responsive-font-size {\n font-size: $rfs-static;\n }\n }\n @else {\n font-size: $rfs-static;\n }\n\n @if $rfs-two-dimensional {\n @media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n @else {\n @media (max-width: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n }\n }\n}\n\n// The font-size & responsive-font-size mixin uses RFS to rescale font sizes\n@mixin font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n\n@mixin responsive-font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n","// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Originally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS-an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular pseudo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover() {\n &:hover { @content; }\n}\n\n@mixin hover-focus() {\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin plain-hover-focus() {\n &,\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin hover-focus-active() {\n &:hover,\n &:focus,\n &:active {\n @content;\n }\n}\n"]} \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-reboot.min.css b/maxkey-web-mgt-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-reboot.min.css deleted file mode 100644 index 5308df61..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-reboot.min.css +++ /dev/null @@ -1,8 +0,0 @@ -/*! - * Bootstrap Reboot v4.4.1 (https://getbootstrap.com/) - * Copyright 2011-2019 The Bootstrap Authors - * Copyright 2011-2019 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md) - */*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]){color:inherit;text-decoration:none}a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important} -/*# sourceMappingURL=bootstrap-reboot.min.css.map */ \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-reboot.min.css.map b/maxkey-web-mgt-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-reboot.min.css.map deleted file mode 100644 index b8551f7c..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-reboot.min.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../scss/bootstrap-reboot.scss","../../scss/_reboot.scss","dist/css/bootstrap-reboot.css","../../scss/vendor/_rfs.scss","bootstrap-reboot.css","../../scss/mixins/_hover.scss"],"names":[],"mappings":"AAAA;;;;;;ACkBA,ECTA,QADA,SDaE,WAAA,WAGF,KACE,YAAA,WACA,YAAA,KACA,yBAAA,KACA,4BAAA,YAMF,QAAA,MAAA,WAAA,OAAA,OAAA,OAAA,OAAA,KAAA,IAAA,QACE,QAAA,MAUF,KACE,OAAA,EACA,YAAA,aAAA,CAAA,kBAAA,CAAA,UAAA,CAAA,MAAA,CAAA,gBAAA,CAAA,KAAA,CAAA,WAAA,CAAA,UAAA,CAAA,mBAAA,CAAA,gBAAA,CAAA,iBAAA,CAAA,mBEgFI,UAAA,KF9EJ,YAAA,IACA,YAAA,IACA,MAAA,QACA,WAAA,KACA,iBAAA,KGlBF,0CH+BE,QAAA,YASF,GACE,WAAA,YACA,OAAA,EACA,SAAA,QAaF,GAAA,GAAA,GAAA,GAAA,GAAA,GACE,WAAA,EACA,cAAA,MAOF,EACE,WAAA,EACA,cAAA,KC9CF,0BDyDA,YAEE,gBAAA,UACA,wBAAA,UAAA,OAAA,gBAAA,UAAA,OACA,OAAA,KACA,cAAA,EACA,iCAAA,KAAA,yBAAA,KAGF,QACE,cAAA,KACA,WAAA,OACA,YAAA,QCnDF,GDsDA,GCvDA,GD0DE,WAAA,EACA,cAAA,KAGF,MCtDA,MACA,MAFA,MD2DE,cAAA,EAGF,GACE,YAAA,IAGF,GACE,cAAA,MACA,YAAA,EAGF,WACE,OAAA,EAAA,EAAA,KAGF,ECvDA,ODyDE,YAAA,OAGF,MExFI,UAAA,IFiGJ,IC5DA,ID8DE,SAAA,SEnGE,UAAA,IFqGF,YAAA,EACA,eAAA,SAGF,IAAM,OAAA,OACN,IAAM,IAAA,MAON,EACE,MAAA,QACA,gBAAA,KACA,iBAAA,YIhLA,QJmLE,MAAA,QACA,gBAAA,UASJ,cACE,MAAA,QACA,gBAAA,KI/LA,oBJkME,MAAA,QACA,gBAAA,KC7DJ,KACA,IDqEA,ICpEA,KDwEE,YAAA,cAAA,CAAA,KAAA,CAAA,MAAA,CAAA,QAAA,CAAA,iBAAA,CAAA,aAAA,CAAA,UEpJE,UAAA,IFwJJ,IAEE,WAAA,EAEA,cAAA,KAEA,SAAA,KAQF,OAEE,OAAA,EAAA,EAAA,KAQF,IACE,eAAA,OACA,aAAA,KAGF,IAGE,SAAA,OACA,eAAA,OAQF,MACE,gBAAA,SAGF,QACE,YAAA,OACA,eAAA,OACA,MAAA,QACA,WAAA,KACA,aAAA,OAGF,GAGE,WAAA,QAQF,MAEE,QAAA,aACA,cAAA,MAMF,OAEE,cAAA,EAOF,aACE,QAAA,IAAA,OACA,QAAA,IAAA,KAAA,yBCxGF,OD2GA,MCzGA,SADA,OAEA,SD6GE,OAAA,EACA,YAAA,QErPE,UAAA,QFuPF,YAAA,QAGF,OC3GA,MD6GE,SAAA,QAGF,OC3GA,OD6GE,eAAA,KAMF,OACE,UAAA,OC3GF,cACA,aACA,cDgHA,OAIE,mBAAA,OC/GF,6BACA,4BACA,6BDkHE,sBAKI,OAAA,QClHN,gCACA,+BACA,gCDsHA,yBAIE,QAAA,EACA,aAAA,KCrHF,qBDwHA,kBAEE,WAAA,WACA,QAAA,EAIF,iBCxHA,2BACA,kBAFA,iBDkIE,mBAAA,QAGF,SACE,SAAA,KAEA,OAAA,SAGF,SAME,UAAA,EAEA,QAAA,EACA,OAAA,EACA,OAAA,EAKF,OACE,QAAA,MACA,MAAA,KACA,UAAA,KACA,QAAA,EACA,cAAA,MEjSI,UAAA,OFmSJ,YAAA,QACA,MAAA,QACA,YAAA,OAGF,SACE,eAAA,SGvIF,yCFGA,yCD0IE,OAAA,KGxIF,cHgJE,eAAA,KACA,mBAAA,KG5IF,yCHoJE,mBAAA,KAQF,6BACE,KAAA,QACA,mBAAA,OAOF,OACE,QAAA,aAGF,QACE,QAAA,UACA,OAAA,QAGF,SACE,QAAA,KGzJF,SH+JE,QAAA","sourcesContent":["/*!\n * Bootstrap Reboot v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"reboot\";\n","// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\nhtml {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -webkit-tap-highlight-color: rgba($black, 0); // 5\n}\n\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\n// TODO: remove in v5\n// stylelint-disable-next-line selector-list-comma-newline-after\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use\n// the `inherit` value on things like `
` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n @include font-size($font-size-base);\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Future-proof rule: in browsers that support :focus-visible, suppress the focus outline\n// on elements that programmatically receive focus but wouldn't normally show a visible\n// focus outline. In general, this would mean that the outline is only applied if the\n// interaction that led to the element receiving programmatic focus was a keyboard interaction,\n// or the browser has somehow determined that the user is primarily a keyboard user and/or\n// wants focus outlines to always be presented.\n//\n// See https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible\n// and https://developer.paciellogroup.com/blog/2018/03/focus-visible-and-backwards-compatibility/\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `

`-`

` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable-next-line selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `

`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Remove the bottom border in Firefox 39-.\n// 5. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-original-title] { // 1\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 4\n text-decoration-skip-ink: none; // 5\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: $font-weight-bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n\nsmall {\n @include font-size(80%); // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n @include font-size(75%);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n\n @include hover() {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]) {\n color: inherit;\n text-decoration: none;\n\n @include hover() {\n color: inherit;\n text-decoration: none;\n }\n}\n\n\n//\n// Code\n//\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-monospace;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg {\n // Workaround for the SVG overflow bug in IE10/11 is still required.\n // See https://github.com/twbs/bootstrap/issues/26878\n overflow: hidden;\n vertical-align: middle;\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $table-caption-color;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n // Matches default `

` alignment by inheriting from the ``, or the\n // closest parent with a set `text-align`.\n text-align: inherit;\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: $label-margin-bottom;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n // stylelint-disable-next-line property-blacklist\n border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// Remove the inheritance of word-wrap in Safari.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24990\nselect {\n word-wrap: normal;\n}\n\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n// controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\n[type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; // 2\n}\n\n// Opinionated: add \"hand\" cursor to non-disabled button elements.\n@if $enable-pointer-cursor-for-buttons {\n button,\n [type=\"button\"],\n [type=\"reset\"],\n [type=\"submit\"] {\n &:not(:disabled) {\n cursor: pointer;\n }\n }\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n // Remove the default appearance of temporal inputs to avoid a Mobile Safari\n // bug where setting a custom line-height prevents text from being vertically\n // centered within the input.\n // See https://bugs.webkit.org/show_bug.cgi?id=139848\n // and https://github.com/twbs/bootstrap/issues/11266\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto; // Remove the default vertical scrollbar in IE.\n // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n resize: vertical;\n}\n\nfieldset {\n // Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `
`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n min-width: 0;\n // Reset the default outline behavior of fieldsets so they don't affect page layout.\n padding: 0;\n margin: 0;\n border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n display: block;\n width: 100%;\n max-width: 100%; // 1\n padding: 0;\n margin-bottom: .5rem;\n @include font-size(1.5rem);\n line-height: inherit;\n color: inherit; // 2\n white-space: normal; // 1\n}\n\nprogress {\n vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n // This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n outline-offset: -2px; // 2. Correct the outline style in Safari.\n -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n font: inherit; // 2\n -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item; // Add the correct display in all browsers\n cursor: pointer;\n}\n\ntemplate {\n display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n display: none !important;\n}\n","/*!\n * Bootstrap Reboot v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n -webkit-text-decoration-skip-ink: none;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):hover {\n color: inherit;\n text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n/*# sourceMappingURL=bootstrap-reboot.css.map */","// stylelint-disable property-blacklist, scss/dollar-variable-default\n\n// SCSS RFS mixin\n//\n// Automated font-resizing\n//\n// See https://github.com/twbs/rfs\n\n// Configuration\n\n// Base font size\n$rfs-base-font-size: 1.25rem !default;\n$rfs-font-size-unit: rem !default;\n\n// Breakpoint at where font-size starts decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n// Resize font-size based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != \"number\" or $rfs-factor <= 1 {\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\n}\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-responsive-font-sizes to false\n$enable-responsive-font-sizes: true !default;\n\n// Cache $rfs-base-font-size unit\n$rfs-base-font-size-unit: unit($rfs-base-font-size);\n\n// Remove px-unit from $rfs-base-font-size for calculations\n@if $rfs-base-font-size-unit == \"px\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1);\n}\n@else if $rfs-base-font-size-unit == \"rem\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1 / $rfs-rem-value);\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == \"px\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == \"rem\" or $rfs-breakpoint-unit-cache == \"em\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1 / $rfs-rem-value);\n}\n\n// Responsive font-size mixin\n@mixin rfs($fs, $important: false) {\n // Cache $fs unit\n $fs-unit: if(type-of($fs) == \"number\", unit($fs), false);\n\n // Add !important suffix if needed\n $rfs-suffix: if($important, \" !important\", \"\");\n\n // If $fs isn't a number (like inherit) or $fs has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $fs-unit or $fs-unit != \"\" and $fs-unit != \"px\" and $fs-unit != \"rem\" or $fs == 0 {\n font-size: #{$fs}#{$rfs-suffix};\n }\n @else {\n // Variables for storing static and fluid rescaling\n $rfs-static: null;\n $rfs-fluid: null;\n\n // Remove px-unit from $fs for calculations\n @if $fs-unit == \"px\" {\n $fs: $fs / ($fs * 0 + 1);\n }\n @else if $fs-unit == \"rem\" {\n $fs: $fs / ($fs * 0 + 1 / $rfs-rem-value);\n }\n\n // Set default font-size\n @if $rfs-font-size-unit == rem {\n $rfs-static: #{$fs / $rfs-rem-value}rem#{$rfs-suffix};\n }\n @else if $rfs-font-size-unit == px {\n $rfs-static: #{$fs}px#{$rfs-suffix};\n }\n @else {\n @error \"`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.\";\n }\n\n // Only add media query if font-size is bigger as the minimum font-size\n // If $rfs-factor == 1, no rescaling will take place\n @if $fs > $rfs-base-font-size and $enable-responsive-font-sizes {\n $min-width: null;\n $variable-unit: null;\n\n // Calculate minimum font-size for given font-size\n $fs-min: $rfs-base-font-size + ($fs - $rfs-base-font-size) / $rfs-factor;\n\n // Calculate difference between given font-size and minimum font-size for given font-size\n $fs-diff: $fs - $fs-min;\n\n // Base font-size formatting\n // No need to check if the unit is valid, because we did that before\n $min-width: if($rfs-font-size-unit == rem, #{$fs-min / $rfs-rem-value}rem, #{$fs-min}px);\n\n // If two-dimensional, use smallest of screen width and height\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n // Calculate the variable width between 0 and $rfs-breakpoint\n $variable-width: #{$fs-diff * 100 / $rfs-breakpoint}#{$variable-unit};\n\n // Set the calculated font-size.\n $rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};\n }\n\n // Rendering\n @if $rfs-fluid == null {\n // Only render static font-size if no fluid font-size is available\n font-size: $rfs-static;\n }\n @else {\n $mq-value: null;\n\n // RFS breakpoint formatting\n @if $rfs-breakpoint-unit == em or $rfs-breakpoint-unit == rem {\n $mq-value: #{$rfs-breakpoint / $rfs-rem-value}#{$rfs-breakpoint-unit};\n }\n @else if $rfs-breakpoint-unit == px {\n $mq-value: #{$rfs-breakpoint}px;\n }\n @else {\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n }\n\n @if $rfs-class == \"disable\" {\n // Adding an extra class increases specificity,\n // which prevents the media query to override the font size\n &,\n .disable-responsive-font-size &,\n &.disable-responsive-font-size {\n font-size: $rfs-static;\n }\n }\n @else {\n font-size: $rfs-static;\n }\n\n @if $rfs-two-dimensional {\n @media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n @else {\n @media (max-width: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n }\n }\n}\n\n// The font-size & responsive-font-size mixin uses RFS to rescale font sizes\n@mixin font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n\n@mixin responsive-font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n","/*!\n * Bootstrap Reboot v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):hover {\n color: inherit;\n text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\n/*# sourceMappingURL=bootstrap-reboot.css.map */","// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Originally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS-an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular pseudo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover() {\n &:hover { @content; }\n}\n\n@mixin hover-focus() {\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin plain-hover-focus() {\n &,\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin hover-focus-active() {\n &:hover,\n &:focus,\n &:active {\n @content;\n }\n}\n"]} \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap.css b/maxkey-web-mgt-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap.css deleted file mode 100644 index 8eac957a..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap.css +++ /dev/null @@ -1,10224 +0,0 @@ -/*! - * Bootstrap v4.4.1 (https://getbootstrap.com/) - * Copyright 2011-2019 The Bootstrap Authors - * Copyright 2011-2019 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ -:root { - --blue: #007bff; - --indigo: #6610f2; - --purple: #6f42c1; - --pink: #e83e8c; - --red: #dc3545; - --orange: #fd7e14; - --yellow: #ffc107; - --green: #28a745; - --teal: #20c997; - --cyan: #17a2b8; - --white: #fff; - --gray: #6c757d; - --gray-dark: #343a40; - --primary: #007bff; - --secondary: #6c757d; - --success: #28a745; - --info: #17a2b8; - --warning: #ffc107; - --danger: #dc3545; - --light: #f8f9fa; - --dark: #343a40; - --breakpoint-xs: 0; - --breakpoint-sm: 576px; - --breakpoint-md: 768px; - --breakpoint-lg: 992px; - --breakpoint-xl: 1200px; - --font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; - --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; -} - -*, -*::before, -*::after { - box-sizing: border-box; -} - -html { - font-family: sans-serif; - line-height: 1.15; - -webkit-text-size-adjust: 100%; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -} - -article, aside, figcaption, figure, footer, header, hgroup, main, nav, section { - display: block; -} - -body { - margin: 0; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; - font-size: 1rem; - font-weight: 400; - line-height: 1.5; - color: #212529; - text-align: left; - background-color: #fff; -} - -[tabindex="-1"]:focus:not(:focus-visible) { - outline: 0 !important; -} - -hr { - box-sizing: content-box; - height: 0; - overflow: visible; -} - -h1, h2, h3, h4, h5, h6 { - margin-top: 0; - margin-bottom: 0.5rem; -} - -p { - margin-top: 0; - margin-bottom: 1rem; -} - -abbr[title], -abbr[data-original-title] { - text-decoration: underline; - -webkit-text-decoration: underline dotted; - text-decoration: underline dotted; - cursor: help; - border-bottom: 0; - -webkit-text-decoration-skip-ink: none; - text-decoration-skip-ink: none; -} - -address { - margin-bottom: 1rem; - font-style: normal; - line-height: inherit; -} - -ol, -ul, -dl { - margin-top: 0; - margin-bottom: 1rem; -} - -ol ol, -ul ul, -ol ul, -ul ol { - margin-bottom: 0; -} - -dt { - font-weight: 700; -} - -dd { - margin-bottom: .5rem; - margin-left: 0; -} - -blockquote { - margin: 0 0 1rem; -} - -b, -strong { - font-weight: bolder; -} - -small { - font-size: 80%; -} - -sub, -sup { - position: relative; - font-size: 75%; - line-height: 0; - vertical-align: baseline; -} - -sub { - bottom: -.25em; -} - -sup { - top: -.5em; -} - -a { - color: #007bff; - text-decoration: none; - background-color: transparent; -} - -a:hover { - color: #0056b3; - text-decoration: underline; -} - -a:not([href]) { - color: inherit; - text-decoration: none; -} - -a:not([href]):hover { - color: inherit; - text-decoration: none; -} - -pre, -code, -kbd, -samp { - font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; - font-size: 1em; -} - -pre { - margin-top: 0; - margin-bottom: 1rem; - overflow: auto; -} - -figure { - margin: 0 0 1rem; -} - -img { - vertical-align: middle; - border-style: none; -} - -svg { - overflow: hidden; - vertical-align: middle; -} - -table { - border-collapse: collapse; -} - -caption { - padding-top: 0.75rem; - padding-bottom: 0.75rem; - color: #6c757d; - text-align: left; - caption-side: bottom; -} - -th { - text-align: inherit; -} - -label { - display: inline-block; - margin-bottom: 0.5rem; -} - -button { - border-radius: 0; -} - -button:focus { - outline: 1px dotted; - outline: 5px auto -webkit-focus-ring-color; -} - -input, -button, -select, -optgroup, -textarea { - margin: 0; - font-family: inherit; - font-size: inherit; - line-height: inherit; -} - -button, -input { - overflow: visible; -} - -button, -select { - text-transform: none; -} - -select { - word-wrap: normal; -} - -button, -[type="button"], -[type="reset"], -[type="submit"] { - -webkit-appearance: button; -} - -button:not(:disabled), -[type="button"]:not(:disabled), -[type="reset"]:not(:disabled), -[type="submit"]:not(:disabled) { - cursor: pointer; -} - -button::-moz-focus-inner, -[type="button"]::-moz-focus-inner, -[type="reset"]::-moz-focus-inner, -[type="submit"]::-moz-focus-inner { - padding: 0; - border-style: none; -} - -input[type="radio"], -input[type="checkbox"] { - box-sizing: border-box; - padding: 0; -} - -input[type="date"], -input[type="time"], -input[type="datetime-local"], -input[type="month"] { - -webkit-appearance: listbox; -} - -textarea { - overflow: auto; - resize: vertical; -} - -fieldset { - min-width: 0; - padding: 0; - margin: 0; - border: 0; -} - -legend { - display: block; - width: 100%; - max-width: 100%; - padding: 0; - margin-bottom: .5rem; - font-size: 1.5rem; - line-height: inherit; - color: inherit; - white-space: normal; -} - -progress { - vertical-align: baseline; -} - -[type="number"]::-webkit-inner-spin-button, -[type="number"]::-webkit-outer-spin-button { - height: auto; -} - -[type="search"] { - outline-offset: -2px; - -webkit-appearance: none; -} - -[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -::-webkit-file-upload-button { - font: inherit; - -webkit-appearance: button; -} - -output { - display: inline-block; -} - -summary { - display: list-item; - cursor: pointer; -} - -template { - display: none; -} - -[hidden] { - display: none !important; -} - -h1, h2, h3, h4, h5, h6, -.h1, .h2, .h3, .h4, .h5, .h6 { - margin-bottom: 0.5rem; - font-weight: 500; - line-height: 1.2; -} - -h1, .h1 { - font-size: 2.5rem; -} - -h2, .h2 { - font-size: 2rem; -} - -h3, .h3 { - font-size: 1.75rem; -} - -h4, .h4 { - font-size: 1.5rem; -} - -h5, .h5 { - font-size: 1.25rem; -} - -h6, .h6 { - font-size: 1rem; -} - -.lead { - font-size: 1.25rem; - font-weight: 300; -} - -.display-1 { - font-size: 6rem; - font-weight: 300; - line-height: 1.2; -} - -.display-2 { - font-size: 5.5rem; - font-weight: 300; - line-height: 1.2; -} - -.display-3 { - font-size: 4.5rem; - font-weight: 300; - line-height: 1.2; -} - -.display-4 { - font-size: 3.5rem; - font-weight: 300; - line-height: 1.2; -} - -hr { - margin-top: 1rem; - margin-bottom: 1rem; - border: 0; - border-top: 1px solid rgba(0, 0, 0, 0.1); -} - -small, -.small { - font-size: 80%; - font-weight: 400; -} - -mark, -.mark { - padding: 0.2em; - background-color: #fcf8e3; -} - -.list-unstyled { - padding-left: 0; - list-style: none; -} - -.list-inline { - padding-left: 0; - list-style: none; -} - -.list-inline-item { - display: inline-block; -} - -.list-inline-item:not(:last-child) { - margin-right: 0.5rem; -} - -.initialism { - font-size: 90%; - text-transform: uppercase; -} - -.blockquote { - margin-bottom: 1rem; - font-size: 1.25rem; -} - -.blockquote-footer { - display: block; - font-size: 80%; - color: #6c757d; -} - -.blockquote-footer::before { - content: "\2014\00A0"; -} - -.img-fluid { - max-width: 100%; - height: auto; -} - -.img-thumbnail { - padding: 0.25rem; - background-color: #fff; - border: 1px solid #dee2e6; - border-radius: 0.25rem; - max-width: 100%; - height: auto; -} - -.figure { - display: inline-block; -} - -.figure-img { - margin-bottom: 0.5rem; - line-height: 1; -} - -.figure-caption { - font-size: 90%; - color: #6c757d; -} - -code { - font-size: 87.5%; - color: #e83e8c; - word-wrap: break-word; -} - -a > code { - color: inherit; -} - -kbd { - padding: 0.2rem 0.4rem; - font-size: 87.5%; - color: #fff; - background-color: #212529; - border-radius: 0.2rem; -} - -kbd kbd { - padding: 0; - font-size: 100%; - font-weight: 700; -} - -pre { - display: block; - font-size: 87.5%; - color: #212529; -} - -pre code { - font-size: inherit; - color: inherit; - word-break: normal; -} - -.pre-scrollable { - max-height: 340px; - overflow-y: scroll; -} - -.container { - width: 100%; - padding-right: 15px; - padding-left: 15px; - margin-right: auto; - margin-left: auto; -} - -@media (min-width: 576px) { - .container { - max-width: 540px; - } -} - -@media (min-width: 768px) { - .container { - max-width: 720px; - } -} - -@media (min-width: 992px) { - .container { - max-width: 960px; - } -} - -@media (min-width: 1200px) { - .container { - max-width: 1140px; - } -} - -.container-fluid, .container-sm, .container-md, .container-lg, .container-xl { - width: 100%; - padding-right: 15px; - padding-left: 15px; - margin-right: auto; - margin-left: auto; -} - -@media (min-width: 576px) { - .container, .container-sm { - max-width: 540px; - } -} - -@media (min-width: 768px) { - .container, .container-sm, .container-md { - max-width: 720px; - } -} - -@media (min-width: 992px) { - .container, .container-sm, .container-md, .container-lg { - max-width: 960px; - } -} - -@media (min-width: 1200px) { - .container, .container-sm, .container-md, .container-lg, .container-xl { - max-width: 1140px; - } -} - -.row { - display: -ms-flexbox; - display: flex; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - margin-right: -15px; - margin-left: -15px; -} - -.no-gutters { - margin-right: 0; - margin-left: 0; -} - -.no-gutters > .col, -.no-gutters > [class*="col-"] { - padding-right: 0; - padding-left: 0; -} - -.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, -.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, -.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, -.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, -.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl, -.col-xl-auto { - position: relative; - width: 100%; - padding-right: 15px; - padding-left: 15px; -} - -.col { - -ms-flex-preferred-size: 0; - flex-basis: 0; - -ms-flex-positive: 1; - flex-grow: 1; - max-width: 100%; -} - -.row-cols-1 > * { - -ms-flex: 0 0 100%; - flex: 0 0 100%; - max-width: 100%; -} - -.row-cols-2 > * { - -ms-flex: 0 0 50%; - flex: 0 0 50%; - max-width: 50%; -} - -.row-cols-3 > * { - -ms-flex: 0 0 33.333333%; - flex: 0 0 33.333333%; - max-width: 33.333333%; -} - -.row-cols-4 > * { - -ms-flex: 0 0 25%; - flex: 0 0 25%; - max-width: 25%; -} - -.row-cols-5 > * { - -ms-flex: 0 0 20%; - flex: 0 0 20%; - max-width: 20%; -} - -.row-cols-6 > * { - -ms-flex: 0 0 16.666667%; - flex: 0 0 16.666667%; - max-width: 16.666667%; -} - -.col-auto { - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: auto; - max-width: 100%; -} - -.col-1 { - -ms-flex: 0 0 8.333333%; - flex: 0 0 8.333333%; - max-width: 8.333333%; -} - -.col-2 { - -ms-flex: 0 0 16.666667%; - flex: 0 0 16.666667%; - max-width: 16.666667%; -} - -.col-3 { - -ms-flex: 0 0 25%; - flex: 0 0 25%; - max-width: 25%; -} - -.col-4 { - -ms-flex: 0 0 33.333333%; - flex: 0 0 33.333333%; - max-width: 33.333333%; -} - -.col-5 { - -ms-flex: 0 0 41.666667%; - flex: 0 0 41.666667%; - max-width: 41.666667%; -} - -.col-6 { - -ms-flex: 0 0 50%; - flex: 0 0 50%; - max-width: 50%; -} - -.col-7 { - -ms-flex: 0 0 58.333333%; - flex: 0 0 58.333333%; - max-width: 58.333333%; -} - -.col-8 { - -ms-flex: 0 0 66.666667%; - flex: 0 0 66.666667%; - max-width: 66.666667%; -} - -.col-9 { - -ms-flex: 0 0 75%; - flex: 0 0 75%; - max-width: 75%; -} - -.col-10 { - -ms-flex: 0 0 83.333333%; - flex: 0 0 83.333333%; - max-width: 83.333333%; -} - -.col-11 { - -ms-flex: 0 0 91.666667%; - flex: 0 0 91.666667%; - max-width: 91.666667%; -} - -.col-12 { - -ms-flex: 0 0 100%; - flex: 0 0 100%; - max-width: 100%; -} - -.order-first { - -ms-flex-order: -1; - order: -1; -} - -.order-last { - -ms-flex-order: 13; - order: 13; -} - -.order-0 { - -ms-flex-order: 0; - order: 0; -} - -.order-1 { - -ms-flex-order: 1; - order: 1; -} - -.order-2 { - -ms-flex-order: 2; - order: 2; -} - -.order-3 { - -ms-flex-order: 3; - order: 3; -} - -.order-4 { - -ms-flex-order: 4; - order: 4; -} - -.order-5 { - -ms-flex-order: 5; - order: 5; -} - -.order-6 { - -ms-flex-order: 6; - order: 6; -} - -.order-7 { - -ms-flex-order: 7; - order: 7; -} - -.order-8 { - -ms-flex-order: 8; - order: 8; -} - -.order-9 { - -ms-flex-order: 9; - order: 9; -} - -.order-10 { - -ms-flex-order: 10; - order: 10; -} - -.order-11 { - -ms-flex-order: 11; - order: 11; -} - -.order-12 { - -ms-flex-order: 12; - order: 12; -} - -.offset-1 { - margin-left: 8.333333%; -} - -.offset-2 { - margin-left: 16.666667%; -} - -.offset-3 { - margin-left: 25%; -} - -.offset-4 { - margin-left: 33.333333%; -} - -.offset-5 { - margin-left: 41.666667%; -} - -.offset-6 { - margin-left: 50%; -} - -.offset-7 { - margin-left: 58.333333%; -} - -.offset-8 { - margin-left: 66.666667%; -} - -.offset-9 { - margin-left: 75%; -} - -.offset-10 { - margin-left: 83.333333%; -} - -.offset-11 { - margin-left: 91.666667%; -} - -@media (min-width: 576px) { - .col-sm { - -ms-flex-preferred-size: 0; - flex-basis: 0; - -ms-flex-positive: 1; - flex-grow: 1; - max-width: 100%; - } - .row-cols-sm-1 > * { - -ms-flex: 0 0 100%; - flex: 0 0 100%; - max-width: 100%; - } - .row-cols-sm-2 > * { - -ms-flex: 0 0 50%; - flex: 0 0 50%; - max-width: 50%; - } - .row-cols-sm-3 > * { - -ms-flex: 0 0 33.333333%; - flex: 0 0 33.333333%; - max-width: 33.333333%; - } - .row-cols-sm-4 > * { - -ms-flex: 0 0 25%; - flex: 0 0 25%; - max-width: 25%; - } - .row-cols-sm-5 > * { - -ms-flex: 0 0 20%; - flex: 0 0 20%; - max-width: 20%; - } - .row-cols-sm-6 > * { - -ms-flex: 0 0 16.666667%; - flex: 0 0 16.666667%; - max-width: 16.666667%; - } - .col-sm-auto { - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: auto; - max-width: 100%; - } - .col-sm-1 { - -ms-flex: 0 0 8.333333%; - flex: 0 0 8.333333%; - max-width: 8.333333%; - } - .col-sm-2 { - -ms-flex: 0 0 16.666667%; - flex: 0 0 16.666667%; - max-width: 16.666667%; - } - .col-sm-3 { - -ms-flex: 0 0 25%; - flex: 0 0 25%; - max-width: 25%; - } - .col-sm-4 { - -ms-flex: 0 0 33.333333%; - flex: 0 0 33.333333%; - max-width: 33.333333%; - } - .col-sm-5 { - -ms-flex: 0 0 41.666667%; - flex: 0 0 41.666667%; - max-width: 41.666667%; - } - .col-sm-6 { - -ms-flex: 0 0 50%; - flex: 0 0 50%; - max-width: 50%; - } - .col-sm-7 { - -ms-flex: 0 0 58.333333%; - flex: 0 0 58.333333%; - max-width: 58.333333%; - } - .col-sm-8 { - -ms-flex: 0 0 66.666667%; - flex: 0 0 66.666667%; - max-width: 66.666667%; - } - .col-sm-9 { - -ms-flex: 0 0 75%; - flex: 0 0 75%; - max-width: 75%; - } - .col-sm-10 { - -ms-flex: 0 0 83.333333%; - flex: 0 0 83.333333%; - max-width: 83.333333%; - } - .col-sm-11 { - -ms-flex: 0 0 91.666667%; - flex: 0 0 91.666667%; - max-width: 91.666667%; - } - .col-sm-12 { - -ms-flex: 0 0 100%; - flex: 0 0 100%; - max-width: 100%; - } - .order-sm-first { - -ms-flex-order: -1; - order: -1; - } - .order-sm-last { - -ms-flex-order: 13; - order: 13; - } - .order-sm-0 { - -ms-flex-order: 0; - order: 0; - } - .order-sm-1 { - -ms-flex-order: 1; - order: 1; - } - .order-sm-2 { - -ms-flex-order: 2; - order: 2; - } - .order-sm-3 { - -ms-flex-order: 3; - order: 3; - } - .order-sm-4 { - -ms-flex-order: 4; - order: 4; - } - .order-sm-5 { - -ms-flex-order: 5; - order: 5; - } - .order-sm-6 { - -ms-flex-order: 6; - order: 6; - } - .order-sm-7 { - -ms-flex-order: 7; - order: 7; - } - .order-sm-8 { - -ms-flex-order: 8; - order: 8; - } - .order-sm-9 { - -ms-flex-order: 9; - order: 9; - } - .order-sm-10 { - -ms-flex-order: 10; - order: 10; - } - .order-sm-11 { - -ms-flex-order: 11; - order: 11; - } - .order-sm-12 { - -ms-flex-order: 12; - order: 12; - } - .offset-sm-0 { - margin-left: 0; - } - .offset-sm-1 { - margin-left: 8.333333%; - } - .offset-sm-2 { - margin-left: 16.666667%; - } - .offset-sm-3 { - margin-left: 25%; - } - .offset-sm-4 { - margin-left: 33.333333%; - } - .offset-sm-5 { - margin-left: 41.666667%; - } - .offset-sm-6 { - margin-left: 50%; - } - .offset-sm-7 { - margin-left: 58.333333%; - } - .offset-sm-8 { - margin-left: 66.666667%; - } - .offset-sm-9 { - margin-left: 75%; - } - .offset-sm-10 { - margin-left: 83.333333%; - } - .offset-sm-11 { - margin-left: 91.666667%; - } -} - -@media (min-width: 768px) { - .col-md { - -ms-flex-preferred-size: 0; - flex-basis: 0; - -ms-flex-positive: 1; - flex-grow: 1; - max-width: 100%; - } - .row-cols-md-1 > * { - -ms-flex: 0 0 100%; - flex: 0 0 100%; - max-width: 100%; - } - .row-cols-md-2 > * { - -ms-flex: 0 0 50%; - flex: 0 0 50%; - max-width: 50%; - } - .row-cols-md-3 > * { - -ms-flex: 0 0 33.333333%; - flex: 0 0 33.333333%; - max-width: 33.333333%; - } - .row-cols-md-4 > * { - -ms-flex: 0 0 25%; - flex: 0 0 25%; - max-width: 25%; - } - .row-cols-md-5 > * { - -ms-flex: 0 0 20%; - flex: 0 0 20%; - max-width: 20%; - } - .row-cols-md-6 > * { - -ms-flex: 0 0 16.666667%; - flex: 0 0 16.666667%; - max-width: 16.666667%; - } - .col-md-auto { - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: auto; - max-width: 100%; - } - .col-md-1 { - -ms-flex: 0 0 8.333333%; - flex: 0 0 8.333333%; - max-width: 8.333333%; - } - .col-md-2 { - -ms-flex: 0 0 16.666667%; - flex: 0 0 16.666667%; - max-width: 16.666667%; - } - .col-md-3 { - -ms-flex: 0 0 25%; - flex: 0 0 25%; - max-width: 25%; - } - .col-md-4 { - -ms-flex: 0 0 33.333333%; - flex: 0 0 33.333333%; - max-width: 33.333333%; - } - .col-md-5 { - -ms-flex: 0 0 41.666667%; - flex: 0 0 41.666667%; - max-width: 41.666667%; - } - .col-md-6 { - -ms-flex: 0 0 50%; - flex: 0 0 50%; - max-width: 50%; - } - .col-md-7 { - -ms-flex: 0 0 58.333333%; - flex: 0 0 58.333333%; - max-width: 58.333333%; - } - .col-md-8 { - -ms-flex: 0 0 66.666667%; - flex: 0 0 66.666667%; - max-width: 66.666667%; - } - .col-md-9 { - -ms-flex: 0 0 75%; - flex: 0 0 75%; - max-width: 75%; - } - .col-md-10 { - -ms-flex: 0 0 83.333333%; - flex: 0 0 83.333333%; - max-width: 83.333333%; - } - .col-md-11 { - -ms-flex: 0 0 91.666667%; - flex: 0 0 91.666667%; - max-width: 91.666667%; - } - .col-md-12 { - -ms-flex: 0 0 100%; - flex: 0 0 100%; - max-width: 100%; - } - .order-md-first { - -ms-flex-order: -1; - order: -1; - } - .order-md-last { - -ms-flex-order: 13; - order: 13; - } - .order-md-0 { - -ms-flex-order: 0; - order: 0; - } - .order-md-1 { - -ms-flex-order: 1; - order: 1; - } - .order-md-2 { - -ms-flex-order: 2; - order: 2; - } - .order-md-3 { - -ms-flex-order: 3; - order: 3; - } - .order-md-4 { - -ms-flex-order: 4; - order: 4; - } - .order-md-5 { - -ms-flex-order: 5; - order: 5; - } - .order-md-6 { - -ms-flex-order: 6; - order: 6; - } - .order-md-7 { - -ms-flex-order: 7; - order: 7; - } - .order-md-8 { - -ms-flex-order: 8; - order: 8; - } - .order-md-9 { - -ms-flex-order: 9; - order: 9; - } - .order-md-10 { - -ms-flex-order: 10; - order: 10; - } - .order-md-11 { - -ms-flex-order: 11; - order: 11; - } - .order-md-12 { - -ms-flex-order: 12; - order: 12; - } - .offset-md-0 { - margin-left: 0; - } - .offset-md-1 { - margin-left: 8.333333%; - } - .offset-md-2 { - margin-left: 16.666667%; - } - .offset-md-3 { - margin-left: 25%; - } - .offset-md-4 { - margin-left: 33.333333%; - } - .offset-md-5 { - margin-left: 41.666667%; - } - .offset-md-6 { - margin-left: 50%; - } - .offset-md-7 { - margin-left: 58.333333%; - } - .offset-md-8 { - margin-left: 66.666667%; - } - .offset-md-9 { - margin-left: 75%; - } - .offset-md-10 { - margin-left: 83.333333%; - } - .offset-md-11 { - margin-left: 91.666667%; - } -} - -@media (min-width: 992px) { - .col-lg { - -ms-flex-preferred-size: 0; - flex-basis: 0; - -ms-flex-positive: 1; - flex-grow: 1; - max-width: 100%; - } - .row-cols-lg-1 > * { - -ms-flex: 0 0 100%; - flex: 0 0 100%; - max-width: 100%; - } - .row-cols-lg-2 > * { - -ms-flex: 0 0 50%; - flex: 0 0 50%; - max-width: 50%; - } - .row-cols-lg-3 > * { - -ms-flex: 0 0 33.333333%; - flex: 0 0 33.333333%; - max-width: 33.333333%; - } - .row-cols-lg-4 > * { - -ms-flex: 0 0 25%; - flex: 0 0 25%; - max-width: 25%; - } - .row-cols-lg-5 > * { - -ms-flex: 0 0 20%; - flex: 0 0 20%; - max-width: 20%; - } - .row-cols-lg-6 > * { - -ms-flex: 0 0 16.666667%; - flex: 0 0 16.666667%; - max-width: 16.666667%; - } - .col-lg-auto { - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: auto; - max-width: 100%; - } - .col-lg-1 { - -ms-flex: 0 0 8.333333%; - flex: 0 0 8.333333%; - max-width: 8.333333%; - } - .col-lg-2 { - -ms-flex: 0 0 16.666667%; - flex: 0 0 16.666667%; - max-width: 16.666667%; - } - .col-lg-3 { - -ms-flex: 0 0 25%; - flex: 0 0 25%; - max-width: 25%; - } - .col-lg-4 { - -ms-flex: 0 0 33.333333%; - flex: 0 0 33.333333%; - max-width: 33.333333%; - } - .col-lg-5 { - -ms-flex: 0 0 41.666667%; - flex: 0 0 41.666667%; - max-width: 41.666667%; - } - .col-lg-6 { - -ms-flex: 0 0 50%; - flex: 0 0 50%; - max-width: 50%; - } - .col-lg-7 { - -ms-flex: 0 0 58.333333%; - flex: 0 0 58.333333%; - max-width: 58.333333%; - } - .col-lg-8 { - -ms-flex: 0 0 66.666667%; - flex: 0 0 66.666667%; - max-width: 66.666667%; - } - .col-lg-9 { - -ms-flex: 0 0 75%; - flex: 0 0 75%; - max-width: 75%; - } - .col-lg-10 { - -ms-flex: 0 0 83.333333%; - flex: 0 0 83.333333%; - max-width: 83.333333%; - } - .col-lg-11 { - -ms-flex: 0 0 91.666667%; - flex: 0 0 91.666667%; - max-width: 91.666667%; - } - .col-lg-12 { - -ms-flex: 0 0 100%; - flex: 0 0 100%; - max-width: 100%; - } - .order-lg-first { - -ms-flex-order: -1; - order: -1; - } - .order-lg-last { - -ms-flex-order: 13; - order: 13; - } - .order-lg-0 { - -ms-flex-order: 0; - order: 0; - } - .order-lg-1 { - -ms-flex-order: 1; - order: 1; - } - .order-lg-2 { - -ms-flex-order: 2; - order: 2; - } - .order-lg-3 { - -ms-flex-order: 3; - order: 3; - } - .order-lg-4 { - -ms-flex-order: 4; - order: 4; - } - .order-lg-5 { - -ms-flex-order: 5; - order: 5; - } - .order-lg-6 { - -ms-flex-order: 6; - order: 6; - } - .order-lg-7 { - -ms-flex-order: 7; - order: 7; - } - .order-lg-8 { - -ms-flex-order: 8; - order: 8; - } - .order-lg-9 { - -ms-flex-order: 9; - order: 9; - } - .order-lg-10 { - -ms-flex-order: 10; - order: 10; - } - .order-lg-11 { - -ms-flex-order: 11; - order: 11; - } - .order-lg-12 { - -ms-flex-order: 12; - order: 12; - } - .offset-lg-0 { - margin-left: 0; - } - .offset-lg-1 { - margin-left: 8.333333%; - } - .offset-lg-2 { - margin-left: 16.666667%; - } - .offset-lg-3 { - margin-left: 25%; - } - .offset-lg-4 { - margin-left: 33.333333%; - } - .offset-lg-5 { - margin-left: 41.666667%; - } - .offset-lg-6 { - margin-left: 50%; - } - .offset-lg-7 { - margin-left: 58.333333%; - } - .offset-lg-8 { - margin-left: 66.666667%; - } - .offset-lg-9 { - margin-left: 75%; - } - .offset-lg-10 { - margin-left: 83.333333%; - } - .offset-lg-11 { - margin-left: 91.666667%; - } -} - -@media (min-width: 1200px) { - .col-xl { - -ms-flex-preferred-size: 0; - flex-basis: 0; - -ms-flex-positive: 1; - flex-grow: 1; - max-width: 100%; - } - .row-cols-xl-1 > * { - -ms-flex: 0 0 100%; - flex: 0 0 100%; - max-width: 100%; - } - .row-cols-xl-2 > * { - -ms-flex: 0 0 50%; - flex: 0 0 50%; - max-width: 50%; - } - .row-cols-xl-3 > * { - -ms-flex: 0 0 33.333333%; - flex: 0 0 33.333333%; - max-width: 33.333333%; - } - .row-cols-xl-4 > * { - -ms-flex: 0 0 25%; - flex: 0 0 25%; - max-width: 25%; - } - .row-cols-xl-5 > * { - -ms-flex: 0 0 20%; - flex: 0 0 20%; - max-width: 20%; - } - .row-cols-xl-6 > * { - -ms-flex: 0 0 16.666667%; - flex: 0 0 16.666667%; - max-width: 16.666667%; - } - .col-xl-auto { - -ms-flex: 0 0 auto; - flex: 0 0 auto; - width: auto; - max-width: 100%; - } - .col-xl-1 { - -ms-flex: 0 0 8.333333%; - flex: 0 0 8.333333%; - max-width: 8.333333%; - } - .col-xl-2 { - -ms-flex: 0 0 16.666667%; - flex: 0 0 16.666667%; - max-width: 16.666667%; - } - .col-xl-3 { - -ms-flex: 0 0 25%; - flex: 0 0 25%; - max-width: 25%; - } - .col-xl-4 { - -ms-flex: 0 0 33.333333%; - flex: 0 0 33.333333%; - max-width: 33.333333%; - } - .col-xl-5 { - -ms-flex: 0 0 41.666667%; - flex: 0 0 41.666667%; - max-width: 41.666667%; - } - .col-xl-6 { - -ms-flex: 0 0 50%; - flex: 0 0 50%; - max-width: 50%; - } - .col-xl-7 { - -ms-flex: 0 0 58.333333%; - flex: 0 0 58.333333%; - max-width: 58.333333%; - } - .col-xl-8 { - -ms-flex: 0 0 66.666667%; - flex: 0 0 66.666667%; - max-width: 66.666667%; - } - .col-xl-9 { - -ms-flex: 0 0 75%; - flex: 0 0 75%; - max-width: 75%; - } - .col-xl-10 { - -ms-flex: 0 0 83.333333%; - flex: 0 0 83.333333%; - max-width: 83.333333%; - } - .col-xl-11 { - -ms-flex: 0 0 91.666667%; - flex: 0 0 91.666667%; - max-width: 91.666667%; - } - .col-xl-12 { - -ms-flex: 0 0 100%; - flex: 0 0 100%; - max-width: 100%; - } - .order-xl-first { - -ms-flex-order: -1; - order: -1; - } - .order-xl-last { - -ms-flex-order: 13; - order: 13; - } - .order-xl-0 { - -ms-flex-order: 0; - order: 0; - } - .order-xl-1 { - -ms-flex-order: 1; - order: 1; - } - .order-xl-2 { - -ms-flex-order: 2; - order: 2; - } - .order-xl-3 { - -ms-flex-order: 3; - order: 3; - } - .order-xl-4 { - -ms-flex-order: 4; - order: 4; - } - .order-xl-5 { - -ms-flex-order: 5; - order: 5; - } - .order-xl-6 { - -ms-flex-order: 6; - order: 6; - } - .order-xl-7 { - -ms-flex-order: 7; - order: 7; - } - .order-xl-8 { - -ms-flex-order: 8; - order: 8; - } - .order-xl-9 { - -ms-flex-order: 9; - order: 9; - } - .order-xl-10 { - -ms-flex-order: 10; - order: 10; - } - .order-xl-11 { - -ms-flex-order: 11; - order: 11; - } - .order-xl-12 { - -ms-flex-order: 12; - order: 12; - } - .offset-xl-0 { - margin-left: 0; - } - .offset-xl-1 { - margin-left: 8.333333%; - } - .offset-xl-2 { - margin-left: 16.666667%; - } - .offset-xl-3 { - margin-left: 25%; - } - .offset-xl-4 { - margin-left: 33.333333%; - } - .offset-xl-5 { - margin-left: 41.666667%; - } - .offset-xl-6 { - margin-left: 50%; - } - .offset-xl-7 { - margin-left: 58.333333%; - } - .offset-xl-8 { - margin-left: 66.666667%; - } - .offset-xl-9 { - margin-left: 75%; - } - .offset-xl-10 { - margin-left: 83.333333%; - } - .offset-xl-11 { - margin-left: 91.666667%; - } -} - -.table { - width: 100%; - margin-bottom: 1rem; - color: #212529; -} - -.table th, -.table td { - padding: 0.75rem; - vertical-align: top; - border-top: 1px solid #dee2e6; -} - -.table thead th { - vertical-align: bottom; - border-bottom: 2px solid #dee2e6; -} - -.table tbody + tbody { - border-top: 2px solid #dee2e6; -} - -.table-sm th, -.table-sm td { - padding: 0.3rem; -} - -.table-bordered { - border: 1px solid #dee2e6; -} - -.table-bordered th, -.table-bordered td { - border: 1px solid #dee2e6; -} - -.table-bordered thead th, -.table-bordered thead td { - border-bottom-width: 2px; -} - -.table-borderless th, -.table-borderless td, -.table-borderless thead th, -.table-borderless tbody + tbody { - border: 0; -} - -.table-striped tbody tr:nth-of-type(odd) { - background-color: rgba(0, 0, 0, 0.05); -} - -.table-hover tbody tr:hover { - color: #212529; - background-color: rgba(0, 0, 0, 0.075); -} - -.table-primary, -.table-primary > th, -.table-primary > td { - background-color: #b8daff; -} - -.table-primary th, -.table-primary td, -.table-primary thead th, -.table-primary tbody + tbody { - border-color: #7abaff; -} - -.table-hover .table-primary:hover { - background-color: #9fcdff; -} - -.table-hover .table-primary:hover > td, -.table-hover .table-primary:hover > th { - background-color: #9fcdff; -} - -.table-secondary, -.table-secondary > th, -.table-secondary > td { - background-color: #d6d8db; -} - -.table-secondary th, -.table-secondary td, -.table-secondary thead th, -.table-secondary tbody + tbody { - border-color: #b3b7bb; -} - -.table-hover .table-secondary:hover { - background-color: #c8cbcf; -} - -.table-hover .table-secondary:hover > td, -.table-hover .table-secondary:hover > th { - background-color: #c8cbcf; -} - -.table-success, -.table-success > th, -.table-success > td { - background-color: #c3e6cb; -} - -.table-success th, -.table-success td, -.table-success thead th, -.table-success tbody + tbody { - border-color: #8fd19e; -} - -.table-hover .table-success:hover { - background-color: #b1dfbb; -} - -.table-hover .table-success:hover > td, -.table-hover .table-success:hover > th { - background-color: #b1dfbb; -} - -.table-info, -.table-info > th, -.table-info > td { - background-color: #bee5eb; -} - -.table-info th, -.table-info td, -.table-info thead th, -.table-info tbody + tbody { - border-color: #86cfda; -} - -.table-hover .table-info:hover { - background-color: #abdde5; -} - -.table-hover .table-info:hover > td, -.table-hover .table-info:hover > th { - background-color: #abdde5; -} - -.table-warning, -.table-warning > th, -.table-warning > td { - background-color: #ffeeba; -} - -.table-warning th, -.table-warning td, -.table-warning thead th, -.table-warning tbody + tbody { - border-color: #ffdf7e; -} - -.table-hover .table-warning:hover { - background-color: #ffe8a1; -} - -.table-hover .table-warning:hover > td, -.table-hover .table-warning:hover > th { - background-color: #ffe8a1; -} - -.table-danger, -.table-danger > th, -.table-danger > td { - background-color: #f5c6cb; -} - -.table-danger th, -.table-danger td, -.table-danger thead th, -.table-danger tbody + tbody { - border-color: #ed969e; -} - -.table-hover .table-danger:hover { - background-color: #f1b0b7; -} - -.table-hover .table-danger:hover > td, -.table-hover .table-danger:hover > th { - background-color: #f1b0b7; -} - -.table-light, -.table-light > th, -.table-light > td { - background-color: #fdfdfe; -} - -.table-light th, -.table-light td, -.table-light thead th, -.table-light tbody + tbody { - border-color: #fbfcfc; -} - -.table-hover .table-light:hover { - background-color: #ececf6; -} - -.table-hover .table-light:hover > td, -.table-hover .table-light:hover > th { - background-color: #ececf6; -} - -.table-dark, -.table-dark > th, -.table-dark > td { - background-color: #c6c8ca; -} - -.table-dark th, -.table-dark td, -.table-dark thead th, -.table-dark tbody + tbody { - border-color: #95999c; -} - -.table-hover .table-dark:hover { - background-color: #b9bbbe; -} - -.table-hover .table-dark:hover > td, -.table-hover .table-dark:hover > th { - background-color: #b9bbbe; -} - -.table-active, -.table-active > th, -.table-active > td { - background-color: rgba(0, 0, 0, 0.075); -} - -.table-hover .table-active:hover { - background-color: rgba(0, 0, 0, 0.075); -} - -.table-hover .table-active:hover > td, -.table-hover .table-active:hover > th { - background-color: rgba(0, 0, 0, 0.075); -} - -.table .thead-dark th { - color: #fff; - background-color: #343a40; - border-color: #454d55; -} - -.table .thead-light th { - color: #495057; - background-color: #e9ecef; - border-color: #dee2e6; -} - -.table-dark { - color: #fff; - background-color: #343a40; -} - -.table-dark th, -.table-dark td, -.table-dark thead th { - border-color: #454d55; -} - -.table-dark.table-bordered { - border: 0; -} - -.table-dark.table-striped tbody tr:nth-of-type(odd) { - background-color: rgba(255, 255, 255, 0.05); -} - -.table-dark.table-hover tbody tr:hover { - color: #fff; - background-color: rgba(255, 255, 255, 0.075); -} - -@media (max-width: 575.98px) { - .table-responsive-sm { - display: block; - width: 100%; - overflow-x: auto; - -webkit-overflow-scrolling: touch; - } - .table-responsive-sm > .table-bordered { - border: 0; - } -} - -@media (max-width: 767.98px) { - .table-responsive-md { - display: block; - width: 100%; - overflow-x: auto; - -webkit-overflow-scrolling: touch; - } - .table-responsive-md > .table-bordered { - border: 0; - } -} - -@media (max-width: 991.98px) { - .table-responsive-lg { - display: block; - width: 100%; - overflow-x: auto; - -webkit-overflow-scrolling: touch; - } - .table-responsive-lg > .table-bordered { - border: 0; - } -} - -@media (max-width: 1199.98px) { - .table-responsive-xl { - display: block; - width: 100%; - overflow-x: auto; - -webkit-overflow-scrolling: touch; - } - .table-responsive-xl > .table-bordered { - border: 0; - } -} - -.table-responsive { - display: block; - width: 100%; - overflow-x: auto; - -webkit-overflow-scrolling: touch; -} - -.table-responsive > .table-bordered { - border: 0; -} - -.form-control { - display: block; - width: 100%; - height: calc(1.5em + 0.75rem + 2px); - padding: 0.375rem 0.75rem; - font-size: 1rem; - font-weight: 400; - line-height: 1.5; - color: #495057; - background-color: #fff; - background-clip: padding-box; - border: 1px solid #ced4da; - border-radius: 0.25rem; - transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; -} - -@media (prefers-reduced-motion: reduce) { - .form-control { - transition: none; - } -} - -.form-control::-ms-expand { - background-color: transparent; - border: 0; -} - -.form-control:-moz-focusring { - color: transparent; - text-shadow: 0 0 0 #495057; -} - -.form-control:focus { - color: #495057; - background-color: #fff; - border-color: #80bdff; - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); -} - -.form-control::-webkit-input-placeholder { - color: #6c757d; - opacity: 1; -} - -.form-control::-moz-placeholder { - color: #6c757d; - opacity: 1; -} - -.form-control:-ms-input-placeholder { - color: #6c757d; - opacity: 1; -} - -.form-control::-ms-input-placeholder { - color: #6c757d; - opacity: 1; -} - -.form-control::placeholder { - color: #6c757d; - opacity: 1; -} - -.form-control:disabled, .form-control[readonly] { - background-color: #e9ecef; - opacity: 1; -} - -select.form-control:focus::-ms-value { - color: #495057; - background-color: #fff; -} - -.form-control-file, -.form-control-range { - display: block; - width: 100%; -} - -.col-form-label { - padding-top: calc(0.375rem + 1px); - padding-bottom: calc(0.375rem + 1px); - margin-bottom: 0; - font-size: inherit; - line-height: 1.5; -} - -.col-form-label-lg { - padding-top: calc(0.5rem + 1px); - padding-bottom: calc(0.5rem + 1px); - font-size: 1.25rem; - line-height: 1.5; -} - -.col-form-label-sm { - padding-top: calc(0.25rem + 1px); - padding-bottom: calc(0.25rem + 1px); - font-size: 0.875rem; - line-height: 1.5; -} - -.form-control-plaintext { - display: block; - width: 100%; - padding: 0.375rem 0; - margin-bottom: 0; - font-size: 1rem; - line-height: 1.5; - color: #212529; - background-color: transparent; - border: solid transparent; - border-width: 1px 0; -} - -.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg { - padding-right: 0; - padding-left: 0; -} - -.form-control-sm { - height: calc(1.5em + 0.5rem + 2px); - padding: 0.25rem 0.5rem; - font-size: 0.875rem; - line-height: 1.5; - border-radius: 0.2rem; -} - -.form-control-lg { - height: calc(1.5em + 1rem + 2px); - padding: 0.5rem 1rem; - font-size: 1.25rem; - line-height: 1.5; - border-radius: 0.3rem; -} - -select.form-control[size], select.form-control[multiple] { - height: auto; -} - -textarea.form-control { - height: auto; -} - -.form-group { - margin-bottom: 1rem; -} - -.form-text { - display: block; - margin-top: 0.25rem; -} - -.form-row { - display: -ms-flexbox; - display: flex; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - margin-right: -5px; - margin-left: -5px; -} - -.form-row > .col, -.form-row > [class*="col-"] { - padding-right: 5px; - padding-left: 5px; -} - -.form-check { - position: relative; - display: block; - padding-left: 1.25rem; -} - -.form-check-input { - position: absolute; - margin-top: 0.3rem; - margin-left: -1.25rem; -} - -.form-check-input[disabled] ~ .form-check-label, -.form-check-input:disabled ~ .form-check-label { - color: #6c757d; -} - -.form-check-label { - margin-bottom: 0; -} - -.form-check-inline { - display: -ms-inline-flexbox; - display: inline-flex; - -ms-flex-align: center; - align-items: center; - padding-left: 0; - margin-right: 0.75rem; -} - -.form-check-inline .form-check-input { - position: static; - margin-top: 0; - margin-right: 0.3125rem; - margin-left: 0; -} - -.valid-feedback { - display: none; - width: 100%; - margin-top: 0.25rem; - font-size: 80%; - color: #28a745; -} - -.valid-tooltip { - position: absolute; - top: 100%; - z-index: 5; - display: none; - max-width: 100%; - padding: 0.25rem 0.5rem; - margin-top: .1rem; - font-size: 0.875rem; - line-height: 1.5; - color: #fff; - background-color: rgba(40, 167, 69, 0.9); - border-radius: 0.25rem; -} - -.was-validated :valid ~ .valid-feedback, -.was-validated :valid ~ .valid-tooltip, -.is-valid ~ .valid-feedback, -.is-valid ~ .valid-tooltip { - display: block; -} - -.was-validated .form-control:valid, .form-control.is-valid { - border-color: #28a745; - padding-right: calc(1.5em + 0.75rem); - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); - background-repeat: no-repeat; - background-position: right calc(0.375em + 0.1875rem) center; - background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); -} - -.was-validated .form-control:valid:focus, .form-control.is-valid:focus { - border-color: #28a745; - box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); -} - -.was-validated textarea.form-control:valid, textarea.form-control.is-valid { - padding-right: calc(1.5em + 0.75rem); - background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); -} - -.was-validated .custom-select:valid, .custom-select.is-valid { - border-color: #28a745; - padding-right: calc(0.75em + 2.3125rem); - background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); -} - -.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus { - border-color: #28a745; - box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); -} - -.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label { - color: #28a745; -} - -.was-validated .form-check-input:valid ~ .valid-feedback, -.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback, -.form-check-input.is-valid ~ .valid-tooltip { - display: block; -} - -.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label { - color: #28a745; -} - -.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before { - border-color: #28a745; -} - -.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before { - border-color: #34ce57; - background-color: #34ce57; -} - -.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before { - box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); -} - -.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before { - border-color: #28a745; -} - -.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label { - border-color: #28a745; -} - -.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label { - border-color: #28a745; - box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); -} - -.invalid-feedback { - display: none; - width: 100%; - margin-top: 0.25rem; - font-size: 80%; - color: #dc3545; -} - -.invalid-tooltip { - position: absolute; - top: 100%; - z-index: 5; - display: none; - max-width: 100%; - padding: 0.25rem 0.5rem; - margin-top: .1rem; - font-size: 0.875rem; - line-height: 1.5; - color: #fff; - background-color: rgba(220, 53, 69, 0.9); - border-radius: 0.25rem; -} - -.was-validated :invalid ~ .invalid-feedback, -.was-validated :invalid ~ .invalid-tooltip, -.is-invalid ~ .invalid-feedback, -.is-invalid ~ .invalid-tooltip { - display: block; -} - -.was-validated .form-control:invalid, .form-control.is-invalid { - border-color: #dc3545; - padding-right: calc(1.5em + 0.75rem); - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e"); - background-repeat: no-repeat; - background-position: right calc(0.375em + 0.1875rem) center; - background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); -} - -.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus { - border-color: #dc3545; - box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); -} - -.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid { - padding-right: calc(1.5em + 0.75rem); - background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); -} - -.was-validated .custom-select:invalid, .custom-select.is-invalid { - border-color: #dc3545; - padding-right: calc(0.75em + 2.3125rem); - background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); -} - -.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus { - border-color: #dc3545; - box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); -} - -.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label { - color: #dc3545; -} - -.was-validated .form-check-input:invalid ~ .invalid-feedback, -.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback, -.form-check-input.is-invalid ~ .invalid-tooltip { - display: block; -} - -.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label { - color: #dc3545; -} - -.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before { - border-color: #dc3545; -} - -.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before { - border-color: #e4606d; - background-color: #e4606d; -} - -.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before { - box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); -} - -.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before { - border-color: #dc3545; -} - -.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label { - border-color: #dc3545; -} - -.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label { - border-color: #dc3545; - box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); -} - -.form-inline { - display: -ms-flexbox; - display: flex; - -ms-flex-flow: row wrap; - flex-flow: row wrap; - -ms-flex-align: center; - align-items: center; -} - -.form-inline .form-check { - width: 100%; -} - -@media (min-width: 576px) { - .form-inline label { - display: -ms-flexbox; - display: flex; - -ms-flex-align: center; - align-items: center; - -ms-flex-pack: center; - justify-content: center; - margin-bottom: 0; - } - .form-inline .form-group { - display: -ms-flexbox; - display: flex; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - -ms-flex-flow: row wrap; - flex-flow: row wrap; - -ms-flex-align: center; - align-items: center; - margin-bottom: 0; - } - .form-inline .form-control { - display: inline-block; - width: auto; - vertical-align: middle; - } - .form-inline .form-control-plaintext { - display: inline-block; - } - .form-inline .input-group, - .form-inline .custom-select { - width: auto; - } - .form-inline .form-check { - display: -ms-flexbox; - display: flex; - -ms-flex-align: center; - align-items: center; - -ms-flex-pack: center; - justify-content: center; - width: auto; - padding-left: 0; - } - .form-inline .form-check-input { - position: relative; - -ms-flex-negative: 0; - flex-shrink: 0; - margin-top: 0; - margin-right: 0.25rem; - margin-left: 0; - } - .form-inline .custom-control { - -ms-flex-align: center; - align-items: center; - -ms-flex-pack: center; - justify-content: center; - } - .form-inline .custom-control-label { - margin-bottom: 0; - } -} - -.btn { - display: inline-block; - font-weight: 400; - color: #212529; - text-align: center; - vertical-align: middle; - cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - background-color: transparent; - border: 1px solid transparent; - padding: 0.375rem 0.75rem; - font-size: 1rem; - line-height: 1.5; - border-radius: 0.25rem; - transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; -} - -@media (prefers-reduced-motion: reduce) { - .btn { - transition: none; - } -} - -.btn:hover { - color: #212529; - text-decoration: none; -} - -.btn:focus, .btn.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); -} - -.btn.disabled, .btn:disabled { - opacity: 0.65; -} - -a.btn.disabled, -fieldset:disabled a.btn { - pointer-events: none; -} - -.btn-primary { - color: #fff; - background-color: #007bff; - border-color: #007bff; -} - -.btn-primary:hover { - color: #fff; - background-color: #0069d9; - border-color: #0062cc; -} - -.btn-primary:focus, .btn-primary.focus { - color: #fff; - background-color: #0069d9; - border-color: #0062cc; - box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5); -} - -.btn-primary.disabled, .btn-primary:disabled { - color: #fff; - background-color: #007bff; - border-color: #007bff; -} - -.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active, -.show > .btn-primary.dropdown-toggle { - color: #fff; - background-color: #0062cc; - border-color: #005cbf; -} - -.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus, -.show > .btn-primary.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5); -} - -.btn-secondary { - color: #fff; - background-color: #6c757d; - border-color: #6c757d; -} - -.btn-secondary:hover { - color: #fff; - background-color: #5a6268; - border-color: #545b62; -} - -.btn-secondary:focus, .btn-secondary.focus { - color: #fff; - background-color: #5a6268; - border-color: #545b62; - box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5); -} - -.btn-secondary.disabled, .btn-secondary:disabled { - color: #fff; - background-color: #6c757d; - border-color: #6c757d; -} - -.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active, -.show > .btn-secondary.dropdown-toggle { - color: #fff; - background-color: #545b62; - border-color: #4e555b; -} - -.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus, -.show > .btn-secondary.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5); -} - -.btn-success { - color: #fff; - background-color: #28a745; - border-color: #28a745; -} - -.btn-success:hover { - color: #fff; - background-color: #218838; - border-color: #1e7e34; -} - -.btn-success:focus, .btn-success.focus { - color: #fff; - background-color: #218838; - border-color: #1e7e34; - box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5); -} - -.btn-success.disabled, .btn-success:disabled { - color: #fff; - background-color: #28a745; - border-color: #28a745; -} - -.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active, -.show > .btn-success.dropdown-toggle { - color: #fff; - background-color: #1e7e34; - border-color: #1c7430; -} - -.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus, -.show > .btn-success.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5); -} - -.btn-info { - color: #fff; - background-color: #17a2b8; - border-color: #17a2b8; -} - -.btn-info:hover { - color: #fff; - background-color: #138496; - border-color: #117a8b; -} - -.btn-info:focus, .btn-info.focus { - color: #fff; - background-color: #138496; - border-color: #117a8b; - box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5); -} - -.btn-info.disabled, .btn-info:disabled { - color: #fff; - background-color: #17a2b8; - border-color: #17a2b8; -} - -.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active, -.show > .btn-info.dropdown-toggle { - color: #fff; - background-color: #117a8b; - border-color: #10707f; -} - -.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus, -.show > .btn-info.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5); -} - -.btn-warning { - color: #212529; - background-color: #ffc107; - border-color: #ffc107; -} - -.btn-warning:hover { - color: #212529; - background-color: #e0a800; - border-color: #d39e00; -} - -.btn-warning:focus, .btn-warning.focus { - color: #212529; - background-color: #e0a800; - border-color: #d39e00; - box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5); -} - -.btn-warning.disabled, .btn-warning:disabled { - color: #212529; - background-color: #ffc107; - border-color: #ffc107; -} - -.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active, -.show > .btn-warning.dropdown-toggle { - color: #212529; - background-color: #d39e00; - border-color: #c69500; -} - -.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus, -.show > .btn-warning.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5); -} - -.btn-danger { - color: #fff; - background-color: #dc3545; - border-color: #dc3545; -} - -.btn-danger:hover { - color: #fff; - background-color: #c82333; - border-color: #bd2130; -} - -.btn-danger:focus, .btn-danger.focus { - color: #fff; - background-color: #c82333; - border-color: #bd2130; - box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5); -} - -.btn-danger.disabled, .btn-danger:disabled { - color: #fff; - background-color: #dc3545; - border-color: #dc3545; -} - -.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active, -.show > .btn-danger.dropdown-toggle { - color: #fff; - background-color: #bd2130; - border-color: #b21f2d; -} - -.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus, -.show > .btn-danger.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5); -} - -.btn-light { - color: #212529; - background-color: #f8f9fa; - border-color: #f8f9fa; -} - -.btn-light:hover { - color: #212529; - background-color: #e2e6ea; - border-color: #dae0e5; -} - -.btn-light:focus, .btn-light.focus { - color: #212529; - background-color: #e2e6ea; - border-color: #dae0e5; - box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5); -} - -.btn-light.disabled, .btn-light:disabled { - color: #212529; - background-color: #f8f9fa; - border-color: #f8f9fa; -} - -.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active, -.show > .btn-light.dropdown-toggle { - color: #212529; - background-color: #dae0e5; - border-color: #d3d9df; -} - -.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus, -.show > .btn-light.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5); -} - -.btn-dark { - color: #fff; - background-color: #343a40; - border-color: #343a40; -} - -.btn-dark:hover { - color: #fff; - background-color: #23272b; - border-color: #1d2124; -} - -.btn-dark:focus, .btn-dark.focus { - color: #fff; - background-color: #23272b; - border-color: #1d2124; - box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5); -} - -.btn-dark.disabled, .btn-dark:disabled { - color: #fff; - background-color: #343a40; - border-color: #343a40; -} - -.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active, -.show > .btn-dark.dropdown-toggle { - color: #fff; - background-color: #1d2124; - border-color: #171a1d; -} - -.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus, -.show > .btn-dark.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5); -} - -.btn-outline-primary { - color: #007bff; - border-color: #007bff; -} - -.btn-outline-primary:hover { - color: #fff; - background-color: #007bff; - border-color: #007bff; -} - -.btn-outline-primary:focus, .btn-outline-primary.focus { - box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); -} - -.btn-outline-primary.disabled, .btn-outline-primary:disabled { - color: #007bff; - background-color: transparent; -} - -.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active, -.show > .btn-outline-primary.dropdown-toggle { - color: #fff; - background-color: #007bff; - border-color: #007bff; -} - -.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus, -.show > .btn-outline-primary.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); -} - -.btn-outline-secondary { - color: #6c757d; - border-color: #6c757d; -} - -.btn-outline-secondary:hover { - color: #fff; - background-color: #6c757d; - border-color: #6c757d; -} - -.btn-outline-secondary:focus, .btn-outline-secondary.focus { - box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); -} - -.btn-outline-secondary.disabled, .btn-outline-secondary:disabled { - color: #6c757d; - background-color: transparent; -} - -.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active, -.show > .btn-outline-secondary.dropdown-toggle { - color: #fff; - background-color: #6c757d; - border-color: #6c757d; -} - -.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus, -.show > .btn-outline-secondary.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); -} - -.btn-outline-success { - color: #28a745; - border-color: #28a745; -} - -.btn-outline-success:hover { - color: #fff; - background-color: #28a745; - border-color: #28a745; -} - -.btn-outline-success:focus, .btn-outline-success.focus { - box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); -} - -.btn-outline-success.disabled, .btn-outline-success:disabled { - color: #28a745; - background-color: transparent; -} - -.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active, -.show > .btn-outline-success.dropdown-toggle { - color: #fff; - background-color: #28a745; - border-color: #28a745; -} - -.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus, -.show > .btn-outline-success.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); -} - -.btn-outline-info { - color: #17a2b8; - border-color: #17a2b8; -} - -.btn-outline-info:hover { - color: #fff; - background-color: #17a2b8; - border-color: #17a2b8; -} - -.btn-outline-info:focus, .btn-outline-info.focus { - box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); -} - -.btn-outline-info.disabled, .btn-outline-info:disabled { - color: #17a2b8; - background-color: transparent; -} - -.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active, -.show > .btn-outline-info.dropdown-toggle { - color: #fff; - background-color: #17a2b8; - border-color: #17a2b8; -} - -.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus, -.show > .btn-outline-info.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); -} - -.btn-outline-warning { - color: #ffc107; - border-color: #ffc107; -} - -.btn-outline-warning:hover { - color: #212529; - background-color: #ffc107; - border-color: #ffc107; -} - -.btn-outline-warning:focus, .btn-outline-warning.focus { - box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); -} - -.btn-outline-warning.disabled, .btn-outline-warning:disabled { - color: #ffc107; - background-color: transparent; -} - -.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active, -.show > .btn-outline-warning.dropdown-toggle { - color: #212529; - background-color: #ffc107; - border-color: #ffc107; -} - -.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus, -.show > .btn-outline-warning.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); -} - -.btn-outline-danger { - color: #dc3545; - border-color: #dc3545; -} - -.btn-outline-danger:hover { - color: #fff; - background-color: #dc3545; - border-color: #dc3545; -} - -.btn-outline-danger:focus, .btn-outline-danger.focus { - box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); -} - -.btn-outline-danger.disabled, .btn-outline-danger:disabled { - color: #dc3545; - background-color: transparent; -} - -.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active, -.show > .btn-outline-danger.dropdown-toggle { - color: #fff; - background-color: #dc3545; - border-color: #dc3545; -} - -.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus, -.show > .btn-outline-danger.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); -} - -.btn-outline-light { - color: #f8f9fa; - border-color: #f8f9fa; -} - -.btn-outline-light:hover { - color: #212529; - background-color: #f8f9fa; - border-color: #f8f9fa; -} - -.btn-outline-light:focus, .btn-outline-light.focus { - box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); -} - -.btn-outline-light.disabled, .btn-outline-light:disabled { - color: #f8f9fa; - background-color: transparent; -} - -.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active, -.show > .btn-outline-light.dropdown-toggle { - color: #212529; - background-color: #f8f9fa; - border-color: #f8f9fa; -} - -.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus, -.show > .btn-outline-light.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); -} - -.btn-outline-dark { - color: #343a40; - border-color: #343a40; -} - -.btn-outline-dark:hover { - color: #fff; - background-color: #343a40; - border-color: #343a40; -} - -.btn-outline-dark:focus, .btn-outline-dark.focus { - box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); -} - -.btn-outline-dark.disabled, .btn-outline-dark:disabled { - color: #343a40; - background-color: transparent; -} - -.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active, -.show > .btn-outline-dark.dropdown-toggle { - color: #fff; - background-color: #343a40; - border-color: #343a40; -} - -.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus, -.show > .btn-outline-dark.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); -} - -.btn-link { - font-weight: 400; - color: #007bff; - text-decoration: none; -} - -.btn-link:hover { - color: #0056b3; - text-decoration: underline; -} - -.btn-link:focus, .btn-link.focus { - text-decoration: underline; - box-shadow: none; -} - -.btn-link:disabled, .btn-link.disabled { - color: #6c757d; - pointer-events: none; -} - -.btn-lg, .btn-group-lg > .btn { - padding: 0.5rem 1rem; - font-size: 1.25rem; - line-height: 1.5; - border-radius: 0.3rem; -} - -.btn-sm, .btn-group-sm > .btn { - padding: 0.25rem 0.5rem; - font-size: 0.875rem; - line-height: 1.5; - border-radius: 0.2rem; -} - -.btn-block { - display: block; - width: 100%; -} - -.btn-block + .btn-block { - margin-top: 0.5rem; -} - -input[type="submit"].btn-block, -input[type="reset"].btn-block, -input[type="button"].btn-block { - width: 100%; -} - -.fade { - transition: opacity 0.15s linear; -} - -@media (prefers-reduced-motion: reduce) { - .fade { - transition: none; - } -} - -.fade:not(.show) { - opacity: 0; -} - -.collapse:not(.show) { - display: none; -} - -.collapsing { - position: relative; - height: 0; - overflow: hidden; - transition: height 0.35s ease; -} - -@media (prefers-reduced-motion: reduce) { - .collapsing { - transition: none; - } -} - -.dropup, -.dropright, -.dropdown, -.dropleft { - position: relative; -} - -.dropdown-toggle { - white-space: nowrap; -} - -.dropdown-toggle::after { - display: inline-block; - margin-left: 0.255em; - vertical-align: 0.255em; - content: ""; - border-top: 0.3em solid; - border-right: 0.3em solid transparent; - border-bottom: 0; - border-left: 0.3em solid transparent; -} - -.dropdown-toggle:empty::after { - margin-left: 0; -} - -.dropdown-menu { - position: absolute; - top: 100%; - left: 0; - z-index: 1000; - display: none; - float: left; - min-width: 10rem; - padding: 0.5rem 0; - margin: 0.125rem 0 0; - font-size: 1rem; - color: #212529; - text-align: left; - list-style: none; - background-color: #fff; - background-clip: padding-box; - border: 1px solid rgba(0, 0, 0, 0.15); - border-radius: 0.25rem; -} - -.dropdown-menu-left { - right: auto; - left: 0; -} - -.dropdown-menu-right { - right: 0; - left: auto; -} - -@media (min-width: 576px) { - .dropdown-menu-sm-left { - right: auto; - left: 0; - } - .dropdown-menu-sm-right { - right: 0; - left: auto; - } -} - -@media (min-width: 768px) { - .dropdown-menu-md-left { - right: auto; - left: 0; - } - .dropdown-menu-md-right { - right: 0; - left: auto; - } -} - -@media (min-width: 992px) { - .dropdown-menu-lg-left { - right: auto; - left: 0; - } - .dropdown-menu-lg-right { - right: 0; - left: auto; - } -} - -@media (min-width: 1200px) { - .dropdown-menu-xl-left { - right: auto; - left: 0; - } - .dropdown-menu-xl-right { - right: 0; - left: auto; - } -} - -.dropup .dropdown-menu { - top: auto; - bottom: 100%; - margin-top: 0; - margin-bottom: 0.125rem; -} - -.dropup .dropdown-toggle::after { - display: inline-block; - margin-left: 0.255em; - vertical-align: 0.255em; - content: ""; - border-top: 0; - border-right: 0.3em solid transparent; - border-bottom: 0.3em solid; - border-left: 0.3em solid transparent; -} - -.dropup .dropdown-toggle:empty::after { - margin-left: 0; -} - -.dropright .dropdown-menu { - top: 0; - right: auto; - left: 100%; - margin-top: 0; - margin-left: 0.125rem; -} - -.dropright .dropdown-toggle::after { - display: inline-block; - margin-left: 0.255em; - vertical-align: 0.255em; - content: ""; - border-top: 0.3em solid transparent; - border-right: 0; - border-bottom: 0.3em solid transparent; - border-left: 0.3em solid; -} - -.dropright .dropdown-toggle:empty::after { - margin-left: 0; -} - -.dropright .dropdown-toggle::after { - vertical-align: 0; -} - -.dropleft .dropdown-menu { - top: 0; - right: 100%; - left: auto; - margin-top: 0; - margin-right: 0.125rem; -} - -.dropleft .dropdown-toggle::after { - display: inline-block; - margin-left: 0.255em; - vertical-align: 0.255em; - content: ""; -} - -.dropleft .dropdown-toggle::after { - display: none; -} - -.dropleft .dropdown-toggle::before { - display: inline-block; - margin-right: 0.255em; - vertical-align: 0.255em; - content: ""; - border-top: 0.3em solid transparent; - border-right: 0.3em solid; - border-bottom: 0.3em solid transparent; -} - -.dropleft .dropdown-toggle:empty::after { - margin-left: 0; -} - -.dropleft .dropdown-toggle::before { - vertical-align: 0; -} - -.dropdown-menu[x-placement^="top"], .dropdown-menu[x-placement^="right"], .dropdown-menu[x-placement^="bottom"], .dropdown-menu[x-placement^="left"] { - right: auto; - bottom: auto; -} - -.dropdown-divider { - height: 0; - margin: 0.5rem 0; - overflow: hidden; - border-top: 1px solid #e9ecef; -} - -.dropdown-item { - display: block; - width: 100%; - padding: 0.25rem 1.5rem; - clear: both; - font-weight: 400; - color: #212529; - text-align: inherit; - white-space: nowrap; - background-color: transparent; - border: 0; -} - -.dropdown-item:hover, .dropdown-item:focus { - color: #16181b; - text-decoration: none; - background-color: #f8f9fa; -} - -.dropdown-item.active, .dropdown-item:active { - color: #fff; - text-decoration: none; - background-color: #007bff; -} - -.dropdown-item.disabled, .dropdown-item:disabled { - color: #6c757d; - pointer-events: none; - background-color: transparent; -} - -.dropdown-menu.show { - display: block; -} - -.dropdown-header { - display: block; - padding: 0.5rem 1.5rem; - margin-bottom: 0; - font-size: 0.875rem; - color: #6c757d; - white-space: nowrap; -} - -.dropdown-item-text { - display: block; - padding: 0.25rem 1.5rem; - color: #212529; -} - -.btn-group, -.btn-group-vertical { - position: relative; - display: -ms-inline-flexbox; - display: inline-flex; - vertical-align: middle; -} - -.btn-group > .btn, -.btn-group-vertical > .btn { - position: relative; - -ms-flex: 1 1 auto; - flex: 1 1 auto; -} - -.btn-group > .btn:hover, -.btn-group-vertical > .btn:hover { - z-index: 1; -} - -.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active, -.btn-group-vertical > .btn:focus, -.btn-group-vertical > .btn:active, -.btn-group-vertical > .btn.active { - z-index: 1; -} - -.btn-toolbar { - display: -ms-flexbox; - display: flex; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - -ms-flex-pack: start; - justify-content: flex-start; -} - -.btn-toolbar .input-group { - width: auto; -} - -.btn-group > .btn:not(:first-child), -.btn-group > .btn-group:not(:first-child) { - margin-left: -1px; -} - -.btn-group > .btn:not(:last-child):not(.dropdown-toggle), -.btn-group > .btn-group:not(:last-child) > .btn { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} - -.btn-group > .btn:not(:first-child), -.btn-group > .btn-group:not(:first-child) > .btn { - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} - -.dropdown-toggle-split { - padding-right: 0.5625rem; - padding-left: 0.5625rem; -} - -.dropdown-toggle-split::after, -.dropup .dropdown-toggle-split::after, -.dropright .dropdown-toggle-split::after { - margin-left: 0; -} - -.dropleft .dropdown-toggle-split::before { - margin-right: 0; -} - -.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split { - padding-right: 0.375rem; - padding-left: 0.375rem; -} - -.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split { - padding-right: 0.75rem; - padding-left: 0.75rem; -} - -.btn-group-vertical { - -ms-flex-direction: column; - flex-direction: column; - -ms-flex-align: start; - align-items: flex-start; - -ms-flex-pack: center; - justify-content: center; -} - -.btn-group-vertical > .btn, -.btn-group-vertical > .btn-group { - width: 100%; -} - -.btn-group-vertical > .btn:not(:first-child), -.btn-group-vertical > .btn-group:not(:first-child) { - margin-top: -1px; -} - -.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle), -.btn-group-vertical > .btn-group:not(:last-child) > .btn { - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} - -.btn-group-vertical > .btn:not(:first-child), -.btn-group-vertical > .btn-group:not(:first-child) > .btn { - border-top-left-radius: 0; - border-top-right-radius: 0; -} - -.btn-group-toggle > .btn, -.btn-group-toggle > .btn-group > .btn { - margin-bottom: 0; -} - -.btn-group-toggle > .btn input[type="radio"], -.btn-group-toggle > .btn input[type="checkbox"], -.btn-group-toggle > .btn-group > .btn input[type="radio"], -.btn-group-toggle > .btn-group > .btn input[type="checkbox"] { - position: absolute; - clip: rect(0, 0, 0, 0); - pointer-events: none; -} - -.input-group { - position: relative; - display: -ms-flexbox; - display: flex; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - -ms-flex-align: stretch; - align-items: stretch; - width: 100%; -} - -.input-group > .form-control, -.input-group > .form-control-plaintext, -.input-group > .custom-select, -.input-group > .custom-file { - position: relative; - -ms-flex: 1 1 0%; - flex: 1 1 0%; - min-width: 0; - margin-bottom: 0; -} - -.input-group > .form-control + .form-control, -.input-group > .form-control + .custom-select, -.input-group > .form-control + .custom-file, -.input-group > .form-control-plaintext + .form-control, -.input-group > .form-control-plaintext + .custom-select, -.input-group > .form-control-plaintext + .custom-file, -.input-group > .custom-select + .form-control, -.input-group > .custom-select + .custom-select, -.input-group > .custom-select + .custom-file, -.input-group > .custom-file + .form-control, -.input-group > .custom-file + .custom-select, -.input-group > .custom-file + .custom-file { - margin-left: -1px; -} - -.input-group > .form-control:focus, -.input-group > .custom-select:focus, -.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label { - z-index: 3; -} - -.input-group > .custom-file .custom-file-input:focus { - z-index: 4; -} - -.input-group > .form-control:not(:last-child), -.input-group > .custom-select:not(:last-child) { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} - -.input-group > .form-control:not(:first-child), -.input-group > .custom-select:not(:first-child) { - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} - -.input-group > .custom-file { - display: -ms-flexbox; - display: flex; - -ms-flex-align: center; - align-items: center; -} - -.input-group > .custom-file:not(:last-child) .custom-file-label, -.input-group > .custom-file:not(:last-child) .custom-file-label::after { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} - -.input-group > .custom-file:not(:first-child) .custom-file-label { - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} - -.input-group-prepend, -.input-group-append { - display: -ms-flexbox; - display: flex; -} - -.input-group-prepend .btn, -.input-group-append .btn { - position: relative; - z-index: 2; -} - -.input-group-prepend .btn:focus, -.input-group-append .btn:focus { - z-index: 3; -} - -.input-group-prepend .btn + .btn, -.input-group-prepend .btn + .input-group-text, -.input-group-prepend .input-group-text + .input-group-text, -.input-group-prepend .input-group-text + .btn, -.input-group-append .btn + .btn, -.input-group-append .btn + .input-group-text, -.input-group-append .input-group-text + .input-group-text, -.input-group-append .input-group-text + .btn { - margin-left: -1px; -} - -.input-group-prepend { - margin-right: -1px; -} - -.input-group-append { - margin-left: -1px; -} - -.input-group-text { - display: -ms-flexbox; - display: flex; - -ms-flex-align: center; - align-items: center; - padding: 0.375rem 0.75rem; - margin-bottom: 0; - font-size: 1rem; - font-weight: 400; - line-height: 1.5; - color: #495057; - text-align: center; - white-space: nowrap; - background-color: #e9ecef; - border: 1px solid #ced4da; - border-radius: 0.25rem; -} - -.input-group-text input[type="radio"], -.input-group-text input[type="checkbox"] { - margin-top: 0; -} - -.input-group-lg > .form-control:not(textarea), -.input-group-lg > .custom-select { - height: calc(1.5em + 1rem + 2px); -} - -.input-group-lg > .form-control, -.input-group-lg > .custom-select, -.input-group-lg > .input-group-prepend > .input-group-text, -.input-group-lg > .input-group-append > .input-group-text, -.input-group-lg > .input-group-prepend > .btn, -.input-group-lg > .input-group-append > .btn { - padding: 0.5rem 1rem; - font-size: 1.25rem; - line-height: 1.5; - border-radius: 0.3rem; -} - -.input-group-sm > .form-control:not(textarea), -.input-group-sm > .custom-select { - height: calc(1.5em + 0.5rem + 2px); -} - -.input-group-sm > .form-control, -.input-group-sm > .custom-select, -.input-group-sm > .input-group-prepend > .input-group-text, -.input-group-sm > .input-group-append > .input-group-text, -.input-group-sm > .input-group-prepend > .btn, -.input-group-sm > .input-group-append > .btn { - padding: 0.25rem 0.5rem; - font-size: 0.875rem; - line-height: 1.5; - border-radius: 0.2rem; -} - -.input-group-lg > .custom-select, -.input-group-sm > .custom-select { - padding-right: 1.75rem; -} - -.input-group > .input-group-prepend > .btn, -.input-group > .input-group-prepend > .input-group-text, -.input-group > .input-group-append:not(:last-child) > .btn, -.input-group > .input-group-append:not(:last-child) > .input-group-text, -.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle), -.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} - -.input-group > .input-group-append > .btn, -.input-group > .input-group-append > .input-group-text, -.input-group > .input-group-prepend:not(:first-child) > .btn, -.input-group > .input-group-prepend:not(:first-child) > .input-group-text, -.input-group > .input-group-prepend:first-child > .btn:not(:first-child), -.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) { - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} - -.custom-control { - position: relative; - display: block; - min-height: 1.5rem; - padding-left: 1.5rem; -} - -.custom-control-inline { - display: -ms-inline-flexbox; - display: inline-flex; - margin-right: 1rem; -} - -.custom-control-input { - position: absolute; - left: 0; - z-index: -1; - width: 1rem; - height: 1.25rem; - opacity: 0; -} - -.custom-control-input:checked ~ .custom-control-label::before { - color: #fff; - border-color: #007bff; - background-color: #007bff; -} - -.custom-control-input:focus ~ .custom-control-label::before { - box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); -} - -.custom-control-input:focus:not(:checked) ~ .custom-control-label::before { - border-color: #80bdff; -} - -.custom-control-input:not(:disabled):active ~ .custom-control-label::before { - color: #fff; - background-color: #b3d7ff; - border-color: #b3d7ff; -} - -.custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label { - color: #6c757d; -} - -.custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before { - background-color: #e9ecef; -} - -.custom-control-label { - position: relative; - margin-bottom: 0; - vertical-align: top; -} - -.custom-control-label::before { - position: absolute; - top: 0.25rem; - left: -1.5rem; - display: block; - width: 1rem; - height: 1rem; - pointer-events: none; - content: ""; - background-color: #fff; - border: #adb5bd solid 1px; -} - -.custom-control-label::after { - position: absolute; - top: 0.25rem; - left: -1.5rem; - display: block; - width: 1rem; - height: 1rem; - content: ""; - background: no-repeat 50% / 50% 50%; -} - -.custom-checkbox .custom-control-label::before { - border-radius: 0.25rem; -} - -.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after { - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e"); -} - -.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before { - border-color: #007bff; - background-color: #007bff; -} - -.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after { - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e"); -} - -.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before { - background-color: rgba(0, 123, 255, 0.5); -} - -.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before { - background-color: rgba(0, 123, 255, 0.5); -} - -.custom-radio .custom-control-label::before { - border-radius: 50%; -} - -.custom-radio .custom-control-input:checked ~ .custom-control-label::after { - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e"); -} - -.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before { - background-color: rgba(0, 123, 255, 0.5); -} - -.custom-switch { - padding-left: 2.25rem; -} - -.custom-switch .custom-control-label::before { - left: -2.25rem; - width: 1.75rem; - pointer-events: all; - border-radius: 0.5rem; -} - -.custom-switch .custom-control-label::after { - top: calc(0.25rem + 2px); - left: calc(-2.25rem + 2px); - width: calc(1rem - 4px); - height: calc(1rem - 4px); - background-color: #adb5bd; - border-radius: 0.5rem; - transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out; - transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; - transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out; -} - -@media (prefers-reduced-motion: reduce) { - .custom-switch .custom-control-label::after { - transition: none; - } -} - -.custom-switch .custom-control-input:checked ~ .custom-control-label::after { - background-color: #fff; - -webkit-transform: translateX(0.75rem); - transform: translateX(0.75rem); -} - -.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before { - background-color: rgba(0, 123, 255, 0.5); -} - -.custom-select { - display: inline-block; - width: 100%; - height: calc(1.5em + 0.75rem + 2px); - padding: 0.375rem 1.75rem 0.375rem 0.75rem; - font-size: 1rem; - font-weight: 400; - line-height: 1.5; - color: #495057; - vertical-align: middle; - background: #fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px; - border: 1px solid #ced4da; - border-radius: 0.25rem; - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; -} - -.custom-select:focus { - border-color: #80bdff; - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); -} - -.custom-select:focus::-ms-value { - color: #495057; - background-color: #fff; -} - -.custom-select[multiple], .custom-select[size]:not([size="1"]) { - height: auto; - padding-right: 0.75rem; - background-image: none; -} - -.custom-select:disabled { - color: #6c757d; - background-color: #e9ecef; -} - -.custom-select::-ms-expand { - display: none; -} - -.custom-select:-moz-focusring { - color: transparent; - text-shadow: 0 0 0 #495057; -} - -.custom-select-sm { - height: calc(1.5em + 0.5rem + 2px); - padding-top: 0.25rem; - padding-bottom: 0.25rem; - padding-left: 0.5rem; - font-size: 0.875rem; -} - -.custom-select-lg { - height: calc(1.5em + 1rem + 2px); - padding-top: 0.5rem; - padding-bottom: 0.5rem; - padding-left: 1rem; - font-size: 1.25rem; -} - -.custom-file { - position: relative; - display: inline-block; - width: 100%; - height: calc(1.5em + 0.75rem + 2px); - margin-bottom: 0; -} - -.custom-file-input { - position: relative; - z-index: 2; - width: 100%; - height: calc(1.5em + 0.75rem + 2px); - margin: 0; - opacity: 0; -} - -.custom-file-input:focus ~ .custom-file-label { - border-color: #80bdff; - box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); -} - -.custom-file-input[disabled] ~ .custom-file-label, -.custom-file-input:disabled ~ .custom-file-label { - background-color: #e9ecef; -} - -.custom-file-input:lang(en) ~ .custom-file-label::after { - content: "Browse"; -} - -.custom-file-input ~ .custom-file-label[data-browse]::after { - content: attr(data-browse); -} - -.custom-file-label { - position: absolute; - top: 0; - right: 0; - left: 0; - z-index: 1; - height: calc(1.5em + 0.75rem + 2px); - padding: 0.375rem 0.75rem; - font-weight: 400; - line-height: 1.5; - color: #495057; - background-color: #fff; - border: 1px solid #ced4da; - border-radius: 0.25rem; -} - -.custom-file-label::after { - position: absolute; - top: 0; - right: 0; - bottom: 0; - z-index: 3; - display: block; - height: calc(1.5em + 0.75rem); - padding: 0.375rem 0.75rem; - line-height: 1.5; - color: #495057; - content: "Browse"; - background-color: #e9ecef; - border-left: inherit; - border-radius: 0 0.25rem 0.25rem 0; -} - -.custom-range { - width: 100%; - height: 1.4rem; - padding: 0; - background-color: transparent; - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; -} - -.custom-range:focus { - outline: none; -} - -.custom-range:focus::-webkit-slider-thumb { - box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25); -} - -.custom-range:focus::-moz-range-thumb { - box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25); -} - -.custom-range:focus::-ms-thumb { - box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25); -} - -.custom-range::-moz-focus-outer { - border: 0; -} - -.custom-range::-webkit-slider-thumb { - width: 1rem; - height: 1rem; - margin-top: -0.25rem; - background-color: #007bff; - border: 0; - border-radius: 1rem; - -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; - transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; - -webkit-appearance: none; - appearance: none; -} - -@media (prefers-reduced-motion: reduce) { - .custom-range::-webkit-slider-thumb { - -webkit-transition: none; - transition: none; - } -} - -.custom-range::-webkit-slider-thumb:active { - background-color: #b3d7ff; -} - -.custom-range::-webkit-slider-runnable-track { - width: 100%; - height: 0.5rem; - color: transparent; - cursor: pointer; - background-color: #dee2e6; - border-color: transparent; - border-radius: 1rem; -} - -.custom-range::-moz-range-thumb { - width: 1rem; - height: 1rem; - background-color: #007bff; - border: 0; - border-radius: 1rem; - -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; - transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; - -moz-appearance: none; - appearance: none; -} - -@media (prefers-reduced-motion: reduce) { - .custom-range::-moz-range-thumb { - -moz-transition: none; - transition: none; - } -} - -.custom-range::-moz-range-thumb:active { - background-color: #b3d7ff; -} - -.custom-range::-moz-range-track { - width: 100%; - height: 0.5rem; - color: transparent; - cursor: pointer; - background-color: #dee2e6; - border-color: transparent; - border-radius: 1rem; -} - -.custom-range::-ms-thumb { - width: 1rem; - height: 1rem; - margin-top: 0; - margin-right: 0.2rem; - margin-left: 0.2rem; - background-color: #007bff; - border: 0; - border-radius: 1rem; - -ms-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; - transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; - appearance: none; -} - -@media (prefers-reduced-motion: reduce) { - .custom-range::-ms-thumb { - -ms-transition: none; - transition: none; - } -} - -.custom-range::-ms-thumb:active { - background-color: #b3d7ff; -} - -.custom-range::-ms-track { - width: 100%; - height: 0.5rem; - color: transparent; - cursor: pointer; - background-color: transparent; - border-color: transparent; - border-width: 0.5rem; -} - -.custom-range::-ms-fill-lower { - background-color: #dee2e6; - border-radius: 1rem; -} - -.custom-range::-ms-fill-upper { - margin-right: 15px; - background-color: #dee2e6; - border-radius: 1rem; -} - -.custom-range:disabled::-webkit-slider-thumb { - background-color: #adb5bd; -} - -.custom-range:disabled::-webkit-slider-runnable-track { - cursor: default; -} - -.custom-range:disabled::-moz-range-thumb { - background-color: #adb5bd; -} - -.custom-range:disabled::-moz-range-track { - cursor: default; -} - -.custom-range:disabled::-ms-thumb { - background-color: #adb5bd; -} - -.custom-control-label::before, -.custom-file-label, -.custom-select { - transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; -} - -@media (prefers-reduced-motion: reduce) { - .custom-control-label::before, - .custom-file-label, - .custom-select { - transition: none; - } -} - -.nav { - display: -ms-flexbox; - display: flex; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - padding-left: 0; - margin-bottom: 0; - list-style: none; -} - -.nav-link { - display: block; - padding: 0.5rem 1rem; -} - -.nav-link:hover, .nav-link:focus { - text-decoration: none; -} - -.nav-link.disabled { - color: #6c757d; - pointer-events: none; - cursor: default; -} - -.nav-tabs { - border-bottom: 1px solid #dee2e6; -} - -.nav-tabs .nav-item { - margin-bottom: -1px; -} - -.nav-tabs .nav-link { - border: 1px solid transparent; - border-top-left-radius: 0.25rem; - border-top-right-radius: 0.25rem; -} - -.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus { - border-color: #e9ecef #e9ecef #dee2e6; -} - -.nav-tabs .nav-link.disabled { - color: #6c757d; - background-color: transparent; - border-color: transparent; -} - -.nav-tabs .nav-link.active, -.nav-tabs .nav-item.show .nav-link { - color: #495057; - background-color: #fff; - border-color: #dee2e6 #dee2e6 #fff; -} - -.nav-tabs .dropdown-menu { - margin-top: -1px; - border-top-left-radius: 0; - border-top-right-radius: 0; -} - -.nav-pills .nav-link { - border-radius: 0.25rem; -} - -.nav-pills .nav-link.active, -.nav-pills .show > .nav-link { - color: #fff; - background-color: #007bff; -} - -.nav-fill .nav-item { - -ms-flex: 1 1 auto; - flex: 1 1 auto; - text-align: center; -} - -.nav-justified .nav-item { - -ms-flex-preferred-size: 0; - flex-basis: 0; - -ms-flex-positive: 1; - flex-grow: 1; - text-align: center; -} - -.tab-content > .tab-pane { - display: none; -} - -.tab-content > .active { - display: block; -} - -.navbar { - position: relative; - display: -ms-flexbox; - display: flex; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - -ms-flex-align: center; - align-items: center; - -ms-flex-pack: justify; - justify-content: space-between; - padding: 0.5rem 1rem; -} - -.navbar .container, -.navbar .container-fluid, .navbar .container-sm, .navbar .container-md, .navbar .container-lg, .navbar .container-xl { - display: -ms-flexbox; - display: flex; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - -ms-flex-align: center; - align-items: center; - -ms-flex-pack: justify; - justify-content: space-between; -} - -.navbar-brand { - display: inline-block; - padding-top: 0.3125rem; - padding-bottom: 0.3125rem; - margin-right: 1rem; - font-size: 1.25rem; - line-height: inherit; - white-space: nowrap; -} - -.navbar-brand:hover, .navbar-brand:focus { - text-decoration: none; -} - -.navbar-nav { - display: -ms-flexbox; - display: flex; - -ms-flex-direction: column; - flex-direction: column; - padding-left: 0; - margin-bottom: 0; - list-style: none; -} - -.navbar-nav .nav-link { - padding-right: 0; - padding-left: 0; -} - -.navbar-nav .dropdown-menu { - position: static; - float: none; -} - -.navbar-text { - display: inline-block; - padding-top: 0.5rem; - padding-bottom: 0.5rem; -} - -.navbar-collapse { - -ms-flex-preferred-size: 100%; - flex-basis: 100%; - -ms-flex-positive: 1; - flex-grow: 1; - -ms-flex-align: center; - align-items: center; -} - -.navbar-toggler { - padding: 0.25rem 0.75rem; - font-size: 1.25rem; - line-height: 1; - background-color: transparent; - border: 1px solid transparent; - border-radius: 0.25rem; -} - -.navbar-toggler:hover, .navbar-toggler:focus { - text-decoration: none; -} - -.navbar-toggler-icon { - display: inline-block; - width: 1.5em; - height: 1.5em; - vertical-align: middle; - content: ""; - background: no-repeat center center; - background-size: 100% 100%; -} - -@media (max-width: 575.98px) { - .navbar-expand-sm > .container, - .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl { - padding-right: 0; - padding-left: 0; - } -} - -@media (min-width: 576px) { - .navbar-expand-sm { - -ms-flex-flow: row nowrap; - flex-flow: row nowrap; - -ms-flex-pack: start; - justify-content: flex-start; - } - .navbar-expand-sm .navbar-nav { - -ms-flex-direction: row; - flex-direction: row; - } - .navbar-expand-sm .navbar-nav .dropdown-menu { - position: absolute; - } - .navbar-expand-sm .navbar-nav .nav-link { - padding-right: 0.5rem; - padding-left: 0.5rem; - } - .navbar-expand-sm > .container, - .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl { - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; - } - .navbar-expand-sm .navbar-collapse { - display: -ms-flexbox !important; - display: flex !important; - -ms-flex-preferred-size: auto; - flex-basis: auto; - } - .navbar-expand-sm .navbar-toggler { - display: none; - } -} - -@media (max-width: 767.98px) { - .navbar-expand-md > .container, - .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl { - padding-right: 0; - padding-left: 0; - } -} - -@media (min-width: 768px) { - .navbar-expand-md { - -ms-flex-flow: row nowrap; - flex-flow: row nowrap; - -ms-flex-pack: start; - justify-content: flex-start; - } - .navbar-expand-md .navbar-nav { - -ms-flex-direction: row; - flex-direction: row; - } - .navbar-expand-md .navbar-nav .dropdown-menu { - position: absolute; - } - .navbar-expand-md .navbar-nav .nav-link { - padding-right: 0.5rem; - padding-left: 0.5rem; - } - .navbar-expand-md > .container, - .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl { - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; - } - .navbar-expand-md .navbar-collapse { - display: -ms-flexbox !important; - display: flex !important; - -ms-flex-preferred-size: auto; - flex-basis: auto; - } - .navbar-expand-md .navbar-toggler { - display: none; - } -} - -@media (max-width: 991.98px) { - .navbar-expand-lg > .container, - .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl { - padding-right: 0; - padding-left: 0; - } -} - -@media (min-width: 992px) { - .navbar-expand-lg { - -ms-flex-flow: row nowrap; - flex-flow: row nowrap; - -ms-flex-pack: start; - justify-content: flex-start; - } - .navbar-expand-lg .navbar-nav { - -ms-flex-direction: row; - flex-direction: row; - } - .navbar-expand-lg .navbar-nav .dropdown-menu { - position: absolute; - } - .navbar-expand-lg .navbar-nav .nav-link { - padding-right: 0.5rem; - padding-left: 0.5rem; - } - .navbar-expand-lg > .container, - .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl { - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; - } - .navbar-expand-lg .navbar-collapse { - display: -ms-flexbox !important; - display: flex !important; - -ms-flex-preferred-size: auto; - flex-basis: auto; - } - .navbar-expand-lg .navbar-toggler { - display: none; - } -} - -@media (max-width: 1199.98px) { - .navbar-expand-xl > .container, - .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl { - padding-right: 0; - padding-left: 0; - } -} - -@media (min-width: 1200px) { - .navbar-expand-xl { - -ms-flex-flow: row nowrap; - flex-flow: row nowrap; - -ms-flex-pack: start; - justify-content: flex-start; - } - .navbar-expand-xl .navbar-nav { - -ms-flex-direction: row; - flex-direction: row; - } - .navbar-expand-xl .navbar-nav .dropdown-menu { - position: absolute; - } - .navbar-expand-xl .navbar-nav .nav-link { - padding-right: 0.5rem; - padding-left: 0.5rem; - } - .navbar-expand-xl > .container, - .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl { - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; - } - .navbar-expand-xl .navbar-collapse { - display: -ms-flexbox !important; - display: flex !important; - -ms-flex-preferred-size: auto; - flex-basis: auto; - } - .navbar-expand-xl .navbar-toggler { - display: none; - } -} - -.navbar-expand { - -ms-flex-flow: row nowrap; - flex-flow: row nowrap; - -ms-flex-pack: start; - justify-content: flex-start; -} - -.navbar-expand > .container, -.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl { - padding-right: 0; - padding-left: 0; -} - -.navbar-expand .navbar-nav { - -ms-flex-direction: row; - flex-direction: row; -} - -.navbar-expand .navbar-nav .dropdown-menu { - position: absolute; -} - -.navbar-expand .navbar-nav .nav-link { - padding-right: 0.5rem; - padding-left: 0.5rem; -} - -.navbar-expand > .container, -.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl { - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; -} - -.navbar-expand .navbar-collapse { - display: -ms-flexbox !important; - display: flex !important; - -ms-flex-preferred-size: auto; - flex-basis: auto; -} - -.navbar-expand .navbar-toggler { - display: none; -} - -.navbar-light .navbar-brand { - color: rgba(0, 0, 0, 0.9); -} - -.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus { - color: rgba(0, 0, 0, 0.9); -} - -.navbar-light .navbar-nav .nav-link { - color: rgba(0, 0, 0, 0.5); -} - -.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus { - color: rgba(0, 0, 0, 0.7); -} - -.navbar-light .navbar-nav .nav-link.disabled { - color: rgba(0, 0, 0, 0.3); -} - -.navbar-light .navbar-nav .show > .nav-link, -.navbar-light .navbar-nav .active > .nav-link, -.navbar-light .navbar-nav .nav-link.show, -.navbar-light .navbar-nav .nav-link.active { - color: rgba(0, 0, 0, 0.9); -} - -.navbar-light .navbar-toggler { - color: rgba(0, 0, 0, 0.5); - border-color: rgba(0, 0, 0, 0.1); -} - -.navbar-light .navbar-toggler-icon { - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); -} - -.navbar-light .navbar-text { - color: rgba(0, 0, 0, 0.5); -} - -.navbar-light .navbar-text a { - color: rgba(0, 0, 0, 0.9); -} - -.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus { - color: rgba(0, 0, 0, 0.9); -} - -.navbar-dark .navbar-brand { - color: #fff; -} - -.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus { - color: #fff; -} - -.navbar-dark .navbar-nav .nav-link { - color: rgba(255, 255, 255, 0.5); -} - -.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus { - color: rgba(255, 255, 255, 0.75); -} - -.navbar-dark .navbar-nav .nav-link.disabled { - color: rgba(255, 255, 255, 0.25); -} - -.navbar-dark .navbar-nav .show > .nav-link, -.navbar-dark .navbar-nav .active > .nav-link, -.navbar-dark .navbar-nav .nav-link.show, -.navbar-dark .navbar-nav .nav-link.active { - color: #fff; -} - -.navbar-dark .navbar-toggler { - color: rgba(255, 255, 255, 0.5); - border-color: rgba(255, 255, 255, 0.1); -} - -.navbar-dark .navbar-toggler-icon { - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); -} - -.navbar-dark .navbar-text { - color: rgba(255, 255, 255, 0.5); -} - -.navbar-dark .navbar-text a { - color: #fff; -} - -.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus { - color: #fff; -} - -.card { - position: relative; - display: -ms-flexbox; - display: flex; - -ms-flex-direction: column; - flex-direction: column; - min-width: 0; - word-wrap: break-word; - background-color: #fff; - background-clip: border-box; - border: 1px solid rgba(0, 0, 0, 0.125); - border-radius: 0.25rem; -} - -.card > hr { - margin-right: 0; - margin-left: 0; -} - -.card > .list-group:first-child .list-group-item:first-child { - border-top-left-radius: 0.25rem; - border-top-right-radius: 0.25rem; -} - -.card > .list-group:last-child .list-group-item:last-child { - border-bottom-right-radius: 0.25rem; - border-bottom-left-radius: 0.25rem; -} - -.card-body { - -ms-flex: 1 1 auto; - flex: 1 1 auto; - min-height: 1px; - padding: 1.25rem; -} - -.card-title { - margin-bottom: 0.75rem; -} - -.card-subtitle { - margin-top: -0.375rem; - margin-bottom: 0; -} - -.card-text:last-child { - margin-bottom: 0; -} - -.card-link:hover { - text-decoration: none; -} - -.card-link + .card-link { - margin-left: 1.25rem; -} - -.card-header { - padding: 0.75rem 1.25rem; - margin-bottom: 0; - background-color: rgba(0, 0, 0, 0.03); - border-bottom: 1px solid rgba(0, 0, 0, 0.125); -} - -.card-header:first-child { - border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0; -} - -.card-header + .list-group .list-group-item:first-child { - border-top: 0; -} - -.card-footer { - padding: 0.75rem 1.25rem; - background-color: rgba(0, 0, 0, 0.03); - border-top: 1px solid rgba(0, 0, 0, 0.125); -} - -.card-footer:last-child { - border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px); -} - -.card-header-tabs { - margin-right: -0.625rem; - margin-bottom: -0.75rem; - margin-left: -0.625rem; - border-bottom: 0; -} - -.card-header-pills { - margin-right: -0.625rem; - margin-left: -0.625rem; -} - -.card-img-overlay { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - padding: 1.25rem; -} - -.card-img, -.card-img-top, -.card-img-bottom { - -ms-flex-negative: 0; - flex-shrink: 0; - width: 100%; -} - -.card-img, -.card-img-top { - border-top-left-radius: calc(0.25rem - 1px); - border-top-right-radius: calc(0.25rem - 1px); -} - -.card-img, -.card-img-bottom { - border-bottom-right-radius: calc(0.25rem - 1px); - border-bottom-left-radius: calc(0.25rem - 1px); -} - -.card-deck .card { - margin-bottom: 15px; -} - -@media (min-width: 576px) { - .card-deck { - display: -ms-flexbox; - display: flex; - -ms-flex-flow: row wrap; - flex-flow: row wrap; - margin-right: -15px; - margin-left: -15px; - } - .card-deck .card { - -ms-flex: 1 0 0%; - flex: 1 0 0%; - margin-right: 15px; - margin-bottom: 0; - margin-left: 15px; - } -} - -.card-group > .card { - margin-bottom: 15px; -} - -@media (min-width: 576px) { - .card-group { - display: -ms-flexbox; - display: flex; - -ms-flex-flow: row wrap; - flex-flow: row wrap; - } - .card-group > .card { - -ms-flex: 1 0 0%; - flex: 1 0 0%; - margin-bottom: 0; - } - .card-group > .card + .card { - margin-left: 0; - border-left: 0; - } - .card-group > .card:not(:last-child) { - border-top-right-radius: 0; - border-bottom-right-radius: 0; - } - .card-group > .card:not(:last-child) .card-img-top, - .card-group > .card:not(:last-child) .card-header { - border-top-right-radius: 0; - } - .card-group > .card:not(:last-child) .card-img-bottom, - .card-group > .card:not(:last-child) .card-footer { - border-bottom-right-radius: 0; - } - .card-group > .card:not(:first-child) { - border-top-left-radius: 0; - border-bottom-left-radius: 0; - } - .card-group > .card:not(:first-child) .card-img-top, - .card-group > .card:not(:first-child) .card-header { - border-top-left-radius: 0; - } - .card-group > .card:not(:first-child) .card-img-bottom, - .card-group > .card:not(:first-child) .card-footer { - border-bottom-left-radius: 0; - } -} - -.card-columns .card { - margin-bottom: 0.75rem; -} - -@media (min-width: 576px) { - .card-columns { - -webkit-column-count: 3; - -moz-column-count: 3; - column-count: 3; - -webkit-column-gap: 1.25rem; - -moz-column-gap: 1.25rem; - column-gap: 1.25rem; - orphans: 1; - widows: 1; - } - .card-columns .card { - display: inline-block; - width: 100%; - } -} - -.accordion > .card { - overflow: hidden; -} - -.accordion > .card:not(:last-of-type) { - border-bottom: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} - -.accordion > .card:not(:first-of-type) { - border-top-left-radius: 0; - border-top-right-radius: 0; -} - -.accordion > .card > .card-header { - border-radius: 0; - margin-bottom: -1px; -} - -.breadcrumb { - display: -ms-flexbox; - display: flex; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - padding: 0.75rem 1rem; - margin-bottom: 1rem; - list-style: none; - background-color: #e9ecef; - border-radius: 0.25rem; -} - -.breadcrumb-item + .breadcrumb-item { - padding-left: 0.5rem; -} - -.breadcrumb-item + .breadcrumb-item::before { - display: inline-block; - padding-right: 0.5rem; - color: #6c757d; - content: "/"; -} - -.breadcrumb-item + .breadcrumb-item:hover::before { - text-decoration: underline; -} - -.breadcrumb-item + .breadcrumb-item:hover::before { - text-decoration: none; -} - -.breadcrumb-item.active { - color: #6c757d; -} - -.pagination { - display: -ms-flexbox; - display: flex; - padding-left: 0; - list-style: none; - border-radius: 0.25rem; -} - -.page-link { - position: relative; - display: block; - padding: 0.5rem 0.75rem; - margin-left: -1px; - line-height: 1.25; - color: #007bff; - background-color: #fff; - border: 1px solid #dee2e6; -} - -.page-link:hover { - z-index: 2; - color: #0056b3; - text-decoration: none; - background-color: #e9ecef; - border-color: #dee2e6; -} - -.page-link:focus { - z-index: 3; - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); -} - -.page-item:first-child .page-link { - margin-left: 0; - border-top-left-radius: 0.25rem; - border-bottom-left-radius: 0.25rem; -} - -.page-item:last-child .page-link { - border-top-right-radius: 0.25rem; - border-bottom-right-radius: 0.25rem; -} - -.page-item.active .page-link { - z-index: 3; - color: #fff; - background-color: #007bff; - border-color: #007bff; -} - -.page-item.disabled .page-link { - color: #6c757d; - pointer-events: none; - cursor: auto; - background-color: #fff; - border-color: #dee2e6; -} - -.pagination-lg .page-link { - padding: 0.75rem 1.5rem; - font-size: 1.25rem; - line-height: 1.5; -} - -.pagination-lg .page-item:first-child .page-link { - border-top-left-radius: 0.3rem; - border-bottom-left-radius: 0.3rem; -} - -.pagination-lg .page-item:last-child .page-link { - border-top-right-radius: 0.3rem; - border-bottom-right-radius: 0.3rem; -} - -.pagination-sm .page-link { - padding: 0.25rem 0.5rem; - font-size: 0.875rem; - line-height: 1.5; -} - -.pagination-sm .page-item:first-child .page-link { - border-top-left-radius: 0.2rem; - border-bottom-left-radius: 0.2rem; -} - -.pagination-sm .page-item:last-child .page-link { - border-top-right-radius: 0.2rem; - border-bottom-right-radius: 0.2rem; -} - -.badge { - display: inline-block; - padding: 0.25em 0.4em; - font-size: 75%; - font-weight: 700; - line-height: 1; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - border-radius: 0.25rem; - transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; -} - -@media (prefers-reduced-motion: reduce) { - .badge { - transition: none; - } -} - -a.badge:hover, a.badge:focus { - text-decoration: none; -} - -.badge:empty { - display: none; -} - -.btn .badge { - position: relative; - top: -1px; -} - -.badge-pill { - padding-right: 0.6em; - padding-left: 0.6em; - border-radius: 10rem; -} - -.badge-primary { - color: #fff; - background-color: #007bff; -} - -a.badge-primary:hover, a.badge-primary:focus { - color: #fff; - background-color: #0062cc; -} - -a.badge-primary:focus, a.badge-primary.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); -} - -.badge-secondary { - color: #fff; - background-color: #6c757d; -} - -a.badge-secondary:hover, a.badge-secondary:focus { - color: #fff; - background-color: #545b62; -} - -a.badge-secondary:focus, a.badge-secondary.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); -} - -.badge-success { - color: #fff; - background-color: #28a745; -} - -a.badge-success:hover, a.badge-success:focus { - color: #fff; - background-color: #1e7e34; -} - -a.badge-success:focus, a.badge-success.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); -} - -.badge-info { - color: #fff; - background-color: #17a2b8; -} - -a.badge-info:hover, a.badge-info:focus { - color: #fff; - background-color: #117a8b; -} - -a.badge-info:focus, a.badge-info.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); -} - -.badge-warning { - color: #212529; - background-color: #ffc107; -} - -a.badge-warning:hover, a.badge-warning:focus { - color: #212529; - background-color: #d39e00; -} - -a.badge-warning:focus, a.badge-warning.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); -} - -.badge-danger { - color: #fff; - background-color: #dc3545; -} - -a.badge-danger:hover, a.badge-danger:focus { - color: #fff; - background-color: #bd2130; -} - -a.badge-danger:focus, a.badge-danger.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); -} - -.badge-light { - color: #212529; - background-color: #f8f9fa; -} - -a.badge-light:hover, a.badge-light:focus { - color: #212529; - background-color: #dae0e5; -} - -a.badge-light:focus, a.badge-light.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); -} - -.badge-dark { - color: #fff; - background-color: #343a40; -} - -a.badge-dark:hover, a.badge-dark:focus { - color: #fff; - background-color: #1d2124; -} - -a.badge-dark:focus, a.badge-dark.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); -} - -.jumbotron { - padding: 2rem 1rem; - margin-bottom: 2rem; - background-color: #e9ecef; - border-radius: 0.3rem; -} - -@media (min-width: 576px) { - .jumbotron { - padding: 4rem 2rem; - } -} - -.jumbotron-fluid { - padding-right: 0; - padding-left: 0; - border-radius: 0; -} - -.alert { - position: relative; - padding: 0.75rem 1.25rem; - margin-bottom: 1rem; - border: 1px solid transparent; - border-radius: 0.25rem; -} - -.alert-heading { - color: inherit; -} - -.alert-link { - font-weight: 700; -} - -.alert-dismissible { - padding-right: 4rem; -} - -.alert-dismissible .close { - position: absolute; - top: 0; - right: 0; - padding: 0.75rem 1.25rem; - color: inherit; -} - -.alert-primary { - color: #004085; - background-color: #cce5ff; - border-color: #b8daff; -} - -.alert-primary hr { - border-top-color: #9fcdff; -} - -.alert-primary .alert-link { - color: #002752; -} - -.alert-secondary { - color: #383d41; - background-color: #e2e3e5; - border-color: #d6d8db; -} - -.alert-secondary hr { - border-top-color: #c8cbcf; -} - -.alert-secondary .alert-link { - color: #202326; -} - -.alert-success { - color: #155724; - background-color: #d4edda; - border-color: #c3e6cb; -} - -.alert-success hr { - border-top-color: #b1dfbb; -} - -.alert-success .alert-link { - color: #0b2e13; -} - -.alert-info { - color: #0c5460; - background-color: #d1ecf1; - border-color: #bee5eb; -} - -.alert-info hr { - border-top-color: #abdde5; -} - -.alert-info .alert-link { - color: #062c33; -} - -.alert-warning { - color: #856404; - background-color: #fff3cd; - border-color: #ffeeba; -} - -.alert-warning hr { - border-top-color: #ffe8a1; -} - -.alert-warning .alert-link { - color: #533f03; -} - -.alert-danger { - color: #721c24; - background-color: #f8d7da; - border-color: #f5c6cb; -} - -.alert-danger hr { - border-top-color: #f1b0b7; -} - -.alert-danger .alert-link { - color: #491217; -} - -.alert-light { - color: #818182; - background-color: #fefefe; - border-color: #fdfdfe; -} - -.alert-light hr { - border-top-color: #ececf6; -} - -.alert-light .alert-link { - color: #686868; -} - -.alert-dark { - color: #1b1e21; - background-color: #d6d8d9; - border-color: #c6c8ca; -} - -.alert-dark hr { - border-top-color: #b9bbbe; -} - -.alert-dark .alert-link { - color: #040505; -} - -@-webkit-keyframes progress-bar-stripes { - from { - background-position: 1rem 0; - } - to { - background-position: 0 0; - } -} - -@keyframes progress-bar-stripes { - from { - background-position: 1rem 0; - } - to { - background-position: 0 0; - } -} - -.progress { - display: -ms-flexbox; - display: flex; - height: 1rem; - overflow: hidden; - font-size: 0.75rem; - background-color: #e9ecef; - border-radius: 0.25rem; -} - -.progress-bar { - display: -ms-flexbox; - display: flex; - -ms-flex-direction: column; - flex-direction: column; - -ms-flex-pack: center; - justify-content: center; - overflow: hidden; - color: #fff; - text-align: center; - white-space: nowrap; - background-color: #007bff; - transition: width 0.6s ease; -} - -@media (prefers-reduced-motion: reduce) { - .progress-bar { - transition: none; - } -} - -.progress-bar-striped { - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-size: 1rem 1rem; -} - -.progress-bar-animated { - -webkit-animation: progress-bar-stripes 1s linear infinite; - animation: progress-bar-stripes 1s linear infinite; -} - -@media (prefers-reduced-motion: reduce) { - .progress-bar-animated { - -webkit-animation: none; - animation: none; - } -} - -.media { - display: -ms-flexbox; - display: flex; - -ms-flex-align: start; - align-items: flex-start; -} - -.media-body { - -ms-flex: 1; - flex: 1; -} - -.list-group { - display: -ms-flexbox; - display: flex; - -ms-flex-direction: column; - flex-direction: column; - padding-left: 0; - margin-bottom: 0; -} - -.list-group-item-action { - width: 100%; - color: #495057; - text-align: inherit; -} - -.list-group-item-action:hover, .list-group-item-action:focus { - z-index: 1; - color: #495057; - text-decoration: none; - background-color: #f8f9fa; -} - -.list-group-item-action:active { - color: #212529; - background-color: #e9ecef; -} - -.list-group-item { - position: relative; - display: block; - padding: 0.75rem 1.25rem; - background-color: #fff; - border: 1px solid rgba(0, 0, 0, 0.125); -} - -.list-group-item:first-child { - border-top-left-radius: 0.25rem; - border-top-right-radius: 0.25rem; -} - -.list-group-item:last-child { - border-bottom-right-radius: 0.25rem; - border-bottom-left-radius: 0.25rem; -} - -.list-group-item.disabled, .list-group-item:disabled { - color: #6c757d; - pointer-events: none; - background-color: #fff; -} - -.list-group-item.active { - z-index: 2; - color: #fff; - background-color: #007bff; - border-color: #007bff; -} - -.list-group-item + .list-group-item { - border-top-width: 0; -} - -.list-group-item + .list-group-item.active { - margin-top: -1px; - border-top-width: 1px; -} - -.list-group-horizontal { - -ms-flex-direction: row; - flex-direction: row; -} - -.list-group-horizontal .list-group-item:first-child { - border-bottom-left-radius: 0.25rem; - border-top-right-radius: 0; -} - -.list-group-horizontal .list-group-item:last-child { - border-top-right-radius: 0.25rem; - border-bottom-left-radius: 0; -} - -.list-group-horizontal .list-group-item.active { - margin-top: 0; -} - -.list-group-horizontal .list-group-item + .list-group-item { - border-top-width: 1px; - border-left-width: 0; -} - -.list-group-horizontal .list-group-item + .list-group-item.active { - margin-left: -1px; - border-left-width: 1px; -} - -@media (min-width: 576px) { - .list-group-horizontal-sm { - -ms-flex-direction: row; - flex-direction: row; - } - .list-group-horizontal-sm .list-group-item:first-child { - border-bottom-left-radius: 0.25rem; - border-top-right-radius: 0; - } - .list-group-horizontal-sm .list-group-item:last-child { - border-top-right-radius: 0.25rem; - border-bottom-left-radius: 0; - } - .list-group-horizontal-sm .list-group-item.active { - margin-top: 0; - } - .list-group-horizontal-sm .list-group-item + .list-group-item { - border-top-width: 1px; - border-left-width: 0; - } - .list-group-horizontal-sm .list-group-item + .list-group-item.active { - margin-left: -1px; - border-left-width: 1px; - } -} - -@media (min-width: 768px) { - .list-group-horizontal-md { - -ms-flex-direction: row; - flex-direction: row; - } - .list-group-horizontal-md .list-group-item:first-child { - border-bottom-left-radius: 0.25rem; - border-top-right-radius: 0; - } - .list-group-horizontal-md .list-group-item:last-child { - border-top-right-radius: 0.25rem; - border-bottom-left-radius: 0; - } - .list-group-horizontal-md .list-group-item.active { - margin-top: 0; - } - .list-group-horizontal-md .list-group-item + .list-group-item { - border-top-width: 1px; - border-left-width: 0; - } - .list-group-horizontal-md .list-group-item + .list-group-item.active { - margin-left: -1px; - border-left-width: 1px; - } -} - -@media (min-width: 992px) { - .list-group-horizontal-lg { - -ms-flex-direction: row; - flex-direction: row; - } - .list-group-horizontal-lg .list-group-item:first-child { - border-bottom-left-radius: 0.25rem; - border-top-right-radius: 0; - } - .list-group-horizontal-lg .list-group-item:last-child { - border-top-right-radius: 0.25rem; - border-bottom-left-radius: 0; - } - .list-group-horizontal-lg .list-group-item.active { - margin-top: 0; - } - .list-group-horizontal-lg .list-group-item + .list-group-item { - border-top-width: 1px; - border-left-width: 0; - } - .list-group-horizontal-lg .list-group-item + .list-group-item.active { - margin-left: -1px; - border-left-width: 1px; - } -} - -@media (min-width: 1200px) { - .list-group-horizontal-xl { - -ms-flex-direction: row; - flex-direction: row; - } - .list-group-horizontal-xl .list-group-item:first-child { - border-bottom-left-radius: 0.25rem; - border-top-right-radius: 0; - } - .list-group-horizontal-xl .list-group-item:last-child { - border-top-right-radius: 0.25rem; - border-bottom-left-radius: 0; - } - .list-group-horizontal-xl .list-group-item.active { - margin-top: 0; - } - .list-group-horizontal-xl .list-group-item + .list-group-item { - border-top-width: 1px; - border-left-width: 0; - } - .list-group-horizontal-xl .list-group-item + .list-group-item.active { - margin-left: -1px; - border-left-width: 1px; - } -} - -.list-group-flush .list-group-item { - border-right-width: 0; - border-left-width: 0; - border-radius: 0; -} - -.list-group-flush .list-group-item:first-child { - border-top-width: 0; -} - -.list-group-flush:last-child .list-group-item:last-child { - border-bottom-width: 0; -} - -.list-group-item-primary { - color: #004085; - background-color: #b8daff; -} - -.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus { - color: #004085; - background-color: #9fcdff; -} - -.list-group-item-primary.list-group-item-action.active { - color: #fff; - background-color: #004085; - border-color: #004085; -} - -.list-group-item-secondary { - color: #383d41; - background-color: #d6d8db; -} - -.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus { - color: #383d41; - background-color: #c8cbcf; -} - -.list-group-item-secondary.list-group-item-action.active { - color: #fff; - background-color: #383d41; - border-color: #383d41; -} - -.list-group-item-success { - color: #155724; - background-color: #c3e6cb; -} - -.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus { - color: #155724; - background-color: #b1dfbb; -} - -.list-group-item-success.list-group-item-action.active { - color: #fff; - background-color: #155724; - border-color: #155724; -} - -.list-group-item-info { - color: #0c5460; - background-color: #bee5eb; -} - -.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus { - color: #0c5460; - background-color: #abdde5; -} - -.list-group-item-info.list-group-item-action.active { - color: #fff; - background-color: #0c5460; - border-color: #0c5460; -} - -.list-group-item-warning { - color: #856404; - background-color: #ffeeba; -} - -.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus { - color: #856404; - background-color: #ffe8a1; -} - -.list-group-item-warning.list-group-item-action.active { - color: #fff; - background-color: #856404; - border-color: #856404; -} - -.list-group-item-danger { - color: #721c24; - background-color: #f5c6cb; -} - -.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus { - color: #721c24; - background-color: #f1b0b7; -} - -.list-group-item-danger.list-group-item-action.active { - color: #fff; - background-color: #721c24; - border-color: #721c24; -} - -.list-group-item-light { - color: #818182; - background-color: #fdfdfe; -} - -.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus { - color: #818182; - background-color: #ececf6; -} - -.list-group-item-light.list-group-item-action.active { - color: #fff; - background-color: #818182; - border-color: #818182; -} - -.list-group-item-dark { - color: #1b1e21; - background-color: #c6c8ca; -} - -.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus { - color: #1b1e21; - background-color: #b9bbbe; -} - -.list-group-item-dark.list-group-item-action.active { - color: #fff; - background-color: #1b1e21; - border-color: #1b1e21; -} - -.close { - float: right; - font-size: 1.5rem; - font-weight: 700; - line-height: 1; - color: #000; - text-shadow: 0 1px 0 #fff; - opacity: .5; -} - -.close:hover { - color: #000; - text-decoration: none; -} - -.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus { - opacity: .75; -} - -button.close { - padding: 0; - background-color: transparent; - border: 0; - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; -} - -a.close.disabled { - pointer-events: none; -} - -.toast { - max-width: 350px; - overflow: hidden; - font-size: 0.875rem; - background-color: rgba(255, 255, 255, 0.85); - background-clip: padding-box; - border: 1px solid rgba(0, 0, 0, 0.1); - box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1); - -webkit-backdrop-filter: blur(10px); - backdrop-filter: blur(10px); - opacity: 0; - border-radius: 0.25rem; -} - -.toast:not(:last-child) { - margin-bottom: 0.75rem; -} - -.toast.showing { - opacity: 1; -} - -.toast.show { - display: block; - opacity: 1; -} - -.toast.hide { - display: none; -} - -.toast-header { - display: -ms-flexbox; - display: flex; - -ms-flex-align: center; - align-items: center; - padding: 0.25rem 0.75rem; - color: #6c757d; - background-color: rgba(255, 255, 255, 0.85); - background-clip: padding-box; - border-bottom: 1px solid rgba(0, 0, 0, 0.05); -} - -.toast-body { - padding: 0.75rem; -} - -.modal-open { - overflow: hidden; -} - -.modal-open .modal { - overflow-x: hidden; - overflow-y: auto; -} - -.modal { - position: fixed; - top: 0; - left: 0; - z-index: 1050; - display: none; - width: 100%; - height: 100%; - overflow: hidden; - outline: 0; -} - -.modal-dialog { - position: relative; - width: auto; - margin: 0.5rem; - pointer-events: none; -} - -.modal.fade .modal-dialog { - transition: -webkit-transform 0.3s ease-out; - transition: transform 0.3s ease-out; - transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out; - -webkit-transform: translate(0, -50px); - transform: translate(0, -50px); -} - -@media (prefers-reduced-motion: reduce) { - .modal.fade .modal-dialog { - transition: none; - } -} - -.modal.show .modal-dialog { - -webkit-transform: none; - transform: none; -} - -.modal.modal-static .modal-dialog { - -webkit-transform: scale(1.02); - transform: scale(1.02); -} - -.modal-dialog-scrollable { - display: -ms-flexbox; - display: flex; - max-height: calc(100% - 1rem); -} - -.modal-dialog-scrollable .modal-content { - max-height: calc(100vh - 1rem); - overflow: hidden; -} - -.modal-dialog-scrollable .modal-header, -.modal-dialog-scrollable .modal-footer { - -ms-flex-negative: 0; - flex-shrink: 0; -} - -.modal-dialog-scrollable .modal-body { - overflow-y: auto; -} - -.modal-dialog-centered { - display: -ms-flexbox; - display: flex; - -ms-flex-align: center; - align-items: center; - min-height: calc(100% - 1rem); -} - -.modal-dialog-centered::before { - display: block; - height: calc(100vh - 1rem); - content: ""; -} - -.modal-dialog-centered.modal-dialog-scrollable { - -ms-flex-direction: column; - flex-direction: column; - -ms-flex-pack: center; - justify-content: center; - height: 100%; -} - -.modal-dialog-centered.modal-dialog-scrollable .modal-content { - max-height: none; -} - -.modal-dialog-centered.modal-dialog-scrollable::before { - content: none; -} - -.modal-content { - position: relative; - display: -ms-flexbox; - display: flex; - -ms-flex-direction: column; - flex-direction: column; - width: 100%; - pointer-events: auto; - background-color: #fff; - background-clip: padding-box; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 0.3rem; - outline: 0; -} - -.modal-backdrop { - position: fixed; - top: 0; - left: 0; - z-index: 1040; - width: 100vw; - height: 100vh; - background-color: #000; -} - -.modal-backdrop.fade { - opacity: 0; -} - -.modal-backdrop.show { - opacity: 0.5; -} - -.modal-header { - display: -ms-flexbox; - display: flex; - -ms-flex-align: start; - align-items: flex-start; - -ms-flex-pack: justify; - justify-content: space-between; - padding: 1rem 1rem; - border-bottom: 1px solid #dee2e6; - border-top-left-radius: calc(0.3rem - 1px); - border-top-right-radius: calc(0.3rem - 1px); -} - -.modal-header .close { - padding: 1rem 1rem; - margin: -1rem -1rem -1rem auto; -} - -.modal-title { - margin-bottom: 0; - line-height: 1.5; -} - -.modal-body { - position: relative; - -ms-flex: 1 1 auto; - flex: 1 1 auto; - padding: 1rem; -} - -.modal-footer { - display: -ms-flexbox; - display: flex; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - -ms-flex-align: center; - align-items: center; - -ms-flex-pack: end; - justify-content: flex-end; - padding: 0.75rem; - border-top: 1px solid #dee2e6; - border-bottom-right-radius: calc(0.3rem - 1px); - border-bottom-left-radius: calc(0.3rem - 1px); -} - -.modal-footer > * { - margin: 0.25rem; -} - -.modal-scrollbar-measure { - position: absolute; - top: -9999px; - width: 50px; - height: 50px; - overflow: scroll; -} - -@media (min-width: 576px) { - .modal-dialog { - max-width: 500px; - margin: 1.75rem auto; - } - .modal-dialog-scrollable { - max-height: calc(100% - 3.5rem); - } - .modal-dialog-scrollable .modal-content { - max-height: calc(100vh - 3.5rem); - } - .modal-dialog-centered { - min-height: calc(100% - 3.5rem); - } - .modal-dialog-centered::before { - height: calc(100vh - 3.5rem); - } - .modal-sm { - max-width: 300px; - } -} - -@media (min-width: 992px) { - .modal-lg, - .modal-xl { - max-width: 800px; - } -} - -@media (min-width: 1200px) { - .modal-xl { - max-width: 1140px; - } -} - -.tooltip { - position: absolute; - z-index: 1070; - display: block; - margin: 0; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; - font-style: normal; - font-weight: 400; - line-height: 1.5; - text-align: left; - text-align: start; - text-decoration: none; - text-shadow: none; - text-transform: none; - letter-spacing: normal; - word-break: normal; - word-spacing: normal; - white-space: normal; - line-break: auto; - font-size: 0.875rem; - word-wrap: break-word; - opacity: 0; -} - -.tooltip.show { - opacity: 0.9; -} - -.tooltip .arrow { - position: absolute; - display: block; - width: 0.8rem; - height: 0.4rem; -} - -.tooltip .arrow::before { - position: absolute; - content: ""; - border-color: transparent; - border-style: solid; -} - -.bs-tooltip-top, .bs-tooltip-auto[x-placement^="top"] { - padding: 0.4rem 0; -} - -.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^="top"] .arrow { - bottom: 0; -} - -.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^="top"] .arrow::before { - top: 0; - border-width: 0.4rem 0.4rem 0; - border-top-color: #000; -} - -.bs-tooltip-right, .bs-tooltip-auto[x-placement^="right"] { - padding: 0 0.4rem; -} - -.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^="right"] .arrow { - left: 0; - width: 0.4rem; - height: 0.8rem; -} - -.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^="right"] .arrow::before { - right: 0; - border-width: 0.4rem 0.4rem 0.4rem 0; - border-right-color: #000; -} - -.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^="bottom"] { - padding: 0.4rem 0; -} - -.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^="bottom"] .arrow { - top: 0; -} - -.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^="bottom"] .arrow::before { - bottom: 0; - border-width: 0 0.4rem 0.4rem; - border-bottom-color: #000; -} - -.bs-tooltip-left, .bs-tooltip-auto[x-placement^="left"] { - padding: 0 0.4rem; -} - -.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^="left"] .arrow { - right: 0; - width: 0.4rem; - height: 0.8rem; -} - -.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^="left"] .arrow::before { - left: 0; - border-width: 0.4rem 0 0.4rem 0.4rem; - border-left-color: #000; -} - -.tooltip-inner { - max-width: 200px; - padding: 0.25rem 0.5rem; - color: #fff; - text-align: center; - background-color: #000; - border-radius: 0.25rem; -} - -.popover { - position: absolute; - top: 0; - left: 0; - z-index: 1060; - display: block; - max-width: 276px; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; - font-style: normal; - font-weight: 400; - line-height: 1.5; - text-align: left; - text-align: start; - text-decoration: none; - text-shadow: none; - text-transform: none; - letter-spacing: normal; - word-break: normal; - word-spacing: normal; - white-space: normal; - line-break: auto; - font-size: 0.875rem; - word-wrap: break-word; - background-color: #fff; - background-clip: padding-box; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 0.3rem; -} - -.popover .arrow { - position: absolute; - display: block; - width: 1rem; - height: 0.5rem; - margin: 0 0.3rem; -} - -.popover .arrow::before, .popover .arrow::after { - position: absolute; - display: block; - content: ""; - border-color: transparent; - border-style: solid; -} - -.bs-popover-top, .bs-popover-auto[x-placement^="top"] { - margin-bottom: 0.5rem; -} - -.bs-popover-top > .arrow, .bs-popover-auto[x-placement^="top"] > .arrow { - bottom: calc(-0.5rem - 1px); -} - -.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^="top"] > .arrow::before { - bottom: 0; - border-width: 0.5rem 0.5rem 0; - border-top-color: rgba(0, 0, 0, 0.25); -} - -.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^="top"] > .arrow::after { - bottom: 1px; - border-width: 0.5rem 0.5rem 0; - border-top-color: #fff; -} - -.bs-popover-right, .bs-popover-auto[x-placement^="right"] { - margin-left: 0.5rem; -} - -.bs-popover-right > .arrow, .bs-popover-auto[x-placement^="right"] > .arrow { - left: calc(-0.5rem - 1px); - width: 0.5rem; - height: 1rem; - margin: 0.3rem 0; -} - -.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^="right"] > .arrow::before { - left: 0; - border-width: 0.5rem 0.5rem 0.5rem 0; - border-right-color: rgba(0, 0, 0, 0.25); -} - -.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^="right"] > .arrow::after { - left: 1px; - border-width: 0.5rem 0.5rem 0.5rem 0; - border-right-color: #fff; -} - -.bs-popover-bottom, .bs-popover-auto[x-placement^="bottom"] { - margin-top: 0.5rem; -} - -.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^="bottom"] > .arrow { - top: calc(-0.5rem - 1px); -} - -.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^="bottom"] > .arrow::before { - top: 0; - border-width: 0 0.5rem 0.5rem 0.5rem; - border-bottom-color: rgba(0, 0, 0, 0.25); -} - -.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^="bottom"] > .arrow::after { - top: 1px; - border-width: 0 0.5rem 0.5rem 0.5rem; - border-bottom-color: #fff; -} - -.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^="bottom"] .popover-header::before { - position: absolute; - top: 0; - left: 50%; - display: block; - width: 1rem; - margin-left: -0.5rem; - content: ""; - border-bottom: 1px solid #f7f7f7; -} - -.bs-popover-left, .bs-popover-auto[x-placement^="left"] { - margin-right: 0.5rem; -} - -.bs-popover-left > .arrow, .bs-popover-auto[x-placement^="left"] > .arrow { - right: calc(-0.5rem - 1px); - width: 0.5rem; - height: 1rem; - margin: 0.3rem 0; -} - -.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^="left"] > .arrow::before { - right: 0; - border-width: 0.5rem 0 0.5rem 0.5rem; - border-left-color: rgba(0, 0, 0, 0.25); -} - -.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^="left"] > .arrow::after { - right: 1px; - border-width: 0.5rem 0 0.5rem 0.5rem; - border-left-color: #fff; -} - -.popover-header { - padding: 0.5rem 0.75rem; - margin-bottom: 0; - font-size: 1rem; - background-color: #f7f7f7; - border-bottom: 1px solid #ebebeb; - border-top-left-radius: calc(0.3rem - 1px); - border-top-right-radius: calc(0.3rem - 1px); -} - -.popover-header:empty { - display: none; -} - -.popover-body { - padding: 0.5rem 0.75rem; - color: #212529; -} - -.carousel { - position: relative; -} - -.carousel.pointer-event { - -ms-touch-action: pan-y; - touch-action: pan-y; -} - -.carousel-inner { - position: relative; - width: 100%; - overflow: hidden; -} - -.carousel-inner::after { - display: block; - clear: both; - content: ""; -} - -.carousel-item { - position: relative; - display: none; - float: left; - width: 100%; - margin-right: -100%; - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - transition: -webkit-transform 0.6s ease-in-out; - transition: transform 0.6s ease-in-out; - transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out; -} - -@media (prefers-reduced-motion: reduce) { - .carousel-item { - transition: none; - } -} - -.carousel-item.active, -.carousel-item-next, -.carousel-item-prev { - display: block; -} - -.carousel-item-next:not(.carousel-item-left), -.active.carousel-item-right { - -webkit-transform: translateX(100%); - transform: translateX(100%); -} - -.carousel-item-prev:not(.carousel-item-right), -.active.carousel-item-left { - -webkit-transform: translateX(-100%); - transform: translateX(-100%); -} - -.carousel-fade .carousel-item { - opacity: 0; - transition-property: opacity; - -webkit-transform: none; - transform: none; -} - -.carousel-fade .carousel-item.active, -.carousel-fade .carousel-item-next.carousel-item-left, -.carousel-fade .carousel-item-prev.carousel-item-right { - z-index: 1; - opacity: 1; -} - -.carousel-fade .active.carousel-item-left, -.carousel-fade .active.carousel-item-right { - z-index: 0; - opacity: 0; - transition: opacity 0s 0.6s; -} - -@media (prefers-reduced-motion: reduce) { - .carousel-fade .active.carousel-item-left, - .carousel-fade .active.carousel-item-right { - transition: none; - } -} - -.carousel-control-prev, -.carousel-control-next { - position: absolute; - top: 0; - bottom: 0; - z-index: 1; - display: -ms-flexbox; - display: flex; - -ms-flex-align: center; - align-items: center; - -ms-flex-pack: center; - justify-content: center; - width: 15%; - color: #fff; - text-align: center; - opacity: 0.5; - transition: opacity 0.15s ease; -} - -@media (prefers-reduced-motion: reduce) { - .carousel-control-prev, - .carousel-control-next { - transition: none; - } -} - -.carousel-control-prev:hover, .carousel-control-prev:focus, -.carousel-control-next:hover, -.carousel-control-next:focus { - color: #fff; - text-decoration: none; - outline: 0; - opacity: 0.9; -} - -.carousel-control-prev { - left: 0; -} - -.carousel-control-next { - right: 0; -} - -.carousel-control-prev-icon, -.carousel-control-next-icon { - display: inline-block; - width: 20px; - height: 20px; - background: no-repeat 50% / 100% 100%; -} - -.carousel-control-prev-icon { - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e"); -} - -.carousel-control-next-icon { - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e"); -} - -.carousel-indicators { - position: absolute; - right: 0; - bottom: 0; - left: 0; - z-index: 15; - display: -ms-flexbox; - display: flex; - -ms-flex-pack: center; - justify-content: center; - padding-left: 0; - margin-right: 15%; - margin-left: 15%; - list-style: none; -} - -.carousel-indicators li { - box-sizing: content-box; - -ms-flex: 0 1 auto; - flex: 0 1 auto; - width: 30px; - height: 3px; - margin-right: 3px; - margin-left: 3px; - text-indent: -999px; - cursor: pointer; - background-color: #fff; - background-clip: padding-box; - border-top: 10px solid transparent; - border-bottom: 10px solid transparent; - opacity: .5; - transition: opacity 0.6s ease; -} - -@media (prefers-reduced-motion: reduce) { - .carousel-indicators li { - transition: none; - } -} - -.carousel-indicators .active { - opacity: 1; -} - -.carousel-caption { - position: absolute; - right: 15%; - bottom: 20px; - left: 15%; - z-index: 10; - padding-top: 20px; - padding-bottom: 20px; - color: #fff; - text-align: center; -} - -@-webkit-keyframes spinner-border { - to { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } -} - -@keyframes spinner-border { - to { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } -} - -.spinner-border { - display: inline-block; - width: 2rem; - height: 2rem; - vertical-align: text-bottom; - border: 0.25em solid currentColor; - border-right-color: transparent; - border-radius: 50%; - -webkit-animation: spinner-border .75s linear infinite; - animation: spinner-border .75s linear infinite; -} - -.spinner-border-sm { - width: 1rem; - height: 1rem; - border-width: 0.2em; -} - -@-webkit-keyframes spinner-grow { - 0% { - -webkit-transform: scale(0); - transform: scale(0); - } - 50% { - opacity: 1; - } -} - -@keyframes spinner-grow { - 0% { - -webkit-transform: scale(0); - transform: scale(0); - } - 50% { - opacity: 1; - } -} - -.spinner-grow { - display: inline-block; - width: 2rem; - height: 2rem; - vertical-align: text-bottom; - background-color: currentColor; - border-radius: 50%; - opacity: 0; - -webkit-animation: spinner-grow .75s linear infinite; - animation: spinner-grow .75s linear infinite; -} - -.spinner-grow-sm { - width: 1rem; - height: 1rem; -} - -.align-baseline { - vertical-align: baseline !important; -} - -.align-top { - vertical-align: top !important; -} - -.align-middle { - vertical-align: middle !important; -} - -.align-bottom { - vertical-align: bottom !important; -} - -.align-text-bottom { - vertical-align: text-bottom !important; -} - -.align-text-top { - vertical-align: text-top !important; -} - -.bg-primary { - background-color: #007bff !important; -} - -a.bg-primary:hover, a.bg-primary:focus, -button.bg-primary:hover, -button.bg-primary:focus { - background-color: #0062cc !important; -} - -.bg-secondary { - background-color: #6c757d !important; -} - -a.bg-secondary:hover, a.bg-secondary:focus, -button.bg-secondary:hover, -button.bg-secondary:focus { - background-color: #545b62 !important; -} - -.bg-success { - background-color: #28a745 !important; -} - -a.bg-success:hover, a.bg-success:focus, -button.bg-success:hover, -button.bg-success:focus { - background-color: #1e7e34 !important; -} - -.bg-info { - background-color: #17a2b8 !important; -} - -a.bg-info:hover, a.bg-info:focus, -button.bg-info:hover, -button.bg-info:focus { - background-color: #117a8b !important; -} - -.bg-warning { - background-color: #ffc107 !important; -} - -a.bg-warning:hover, a.bg-warning:focus, -button.bg-warning:hover, -button.bg-warning:focus { - background-color: #d39e00 !important; -} - -.bg-danger { - background-color: #dc3545 !important; -} - -a.bg-danger:hover, a.bg-danger:focus, -button.bg-danger:hover, -button.bg-danger:focus { - background-color: #bd2130 !important; -} - -.bg-light { - background-color: #f8f9fa !important; -} - -a.bg-light:hover, a.bg-light:focus, -button.bg-light:hover, -button.bg-light:focus { - background-color: #dae0e5 !important; -} - -.bg-dark { - background-color: #343a40 !important; -} - -a.bg-dark:hover, a.bg-dark:focus, -button.bg-dark:hover, -button.bg-dark:focus { - background-color: #1d2124 !important; -} - -.bg-white { - background-color: #fff !important; -} - -.bg-transparent { - background-color: transparent !important; -} - -.border { - border: 1px solid #dee2e6 !important; -} - -.border-top { - border-top: 1px solid #dee2e6 !important; -} - -.border-right { - border-right: 1px solid #dee2e6 !important; -} - -.border-bottom { - border-bottom: 1px solid #dee2e6 !important; -} - -.border-left { - border-left: 1px solid #dee2e6 !important; -} - -.border-0 { - border: 0 !important; -} - -.border-top-0 { - border-top: 0 !important; -} - -.border-right-0 { - border-right: 0 !important; -} - -.border-bottom-0 { - border-bottom: 0 !important; -} - -.border-left-0 { - border-left: 0 !important; -} - -.border-primary { - border-color: #007bff !important; -} - -.border-secondary { - border-color: #6c757d !important; -} - -.border-success { - border-color: #28a745 !important; -} - -.border-info { - border-color: #17a2b8 !important; -} - -.border-warning { - border-color: #ffc107 !important; -} - -.border-danger { - border-color: #dc3545 !important; -} - -.border-light { - border-color: #f8f9fa !important; -} - -.border-dark { - border-color: #343a40 !important; -} - -.border-white { - border-color: #fff !important; -} - -.rounded-sm { - border-radius: 0.2rem !important; -} - -.rounded { - border-radius: 0.25rem !important; -} - -.rounded-top { - border-top-left-radius: 0.25rem !important; - border-top-right-radius: 0.25rem !important; -} - -.rounded-right { - border-top-right-radius: 0.25rem !important; - border-bottom-right-radius: 0.25rem !important; -} - -.rounded-bottom { - border-bottom-right-radius: 0.25rem !important; - border-bottom-left-radius: 0.25rem !important; -} - -.rounded-left { - border-top-left-radius: 0.25rem !important; - border-bottom-left-radius: 0.25rem !important; -} - -.rounded-lg { - border-radius: 0.3rem !important; -} - -.rounded-circle { - border-radius: 50% !important; -} - -.rounded-pill { - border-radius: 50rem !important; -} - -.rounded-0 { - border-radius: 0 !important; -} - -.clearfix::after { - display: block; - clear: both; - content: ""; -} - -.d-none { - display: none !important; -} - -.d-inline { - display: inline !important; -} - -.d-inline-block { - display: inline-block !important; -} - -.d-block { - display: block !important; -} - -.d-table { - display: table !important; -} - -.d-table-row { - display: table-row !important; -} - -.d-table-cell { - display: table-cell !important; -} - -.d-flex { - display: -ms-flexbox !important; - display: flex !important; -} - -.d-inline-flex { - display: -ms-inline-flexbox !important; - display: inline-flex !important; -} - -@media (min-width: 576px) { - .d-sm-none { - display: none !important; - } - .d-sm-inline { - display: inline !important; - } - .d-sm-inline-block { - display: inline-block !important; - } - .d-sm-block { - display: block !important; - } - .d-sm-table { - display: table !important; - } - .d-sm-table-row { - display: table-row !important; - } - .d-sm-table-cell { - display: table-cell !important; - } - .d-sm-flex { - display: -ms-flexbox !important; - display: flex !important; - } - .d-sm-inline-flex { - display: -ms-inline-flexbox !important; - display: inline-flex !important; - } -} - -@media (min-width: 768px) { - .d-md-none { - display: none !important; - } - .d-md-inline { - display: inline !important; - } - .d-md-inline-block { - display: inline-block !important; - } - .d-md-block { - display: block !important; - } - .d-md-table { - display: table !important; - } - .d-md-table-row { - display: table-row !important; - } - .d-md-table-cell { - display: table-cell !important; - } - .d-md-flex { - display: -ms-flexbox !important; - display: flex !important; - } - .d-md-inline-flex { - display: -ms-inline-flexbox !important; - display: inline-flex !important; - } -} - -@media (min-width: 992px) { - .d-lg-none { - display: none !important; - } - .d-lg-inline { - display: inline !important; - } - .d-lg-inline-block { - display: inline-block !important; - } - .d-lg-block { - display: block !important; - } - .d-lg-table { - display: table !important; - } - .d-lg-table-row { - display: table-row !important; - } - .d-lg-table-cell { - display: table-cell !important; - } - .d-lg-flex { - display: -ms-flexbox !important; - display: flex !important; - } - .d-lg-inline-flex { - display: -ms-inline-flexbox !important; - display: inline-flex !important; - } -} - -@media (min-width: 1200px) { - .d-xl-none { - display: none !important; - } - .d-xl-inline { - display: inline !important; - } - .d-xl-inline-block { - display: inline-block !important; - } - .d-xl-block { - display: block !important; - } - .d-xl-table { - display: table !important; - } - .d-xl-table-row { - display: table-row !important; - } - .d-xl-table-cell { - display: table-cell !important; - } - .d-xl-flex { - display: -ms-flexbox !important; - display: flex !important; - } - .d-xl-inline-flex { - display: -ms-inline-flexbox !important; - display: inline-flex !important; - } -} - -@media print { - .d-print-none { - display: none !important; - } - .d-print-inline { - display: inline !important; - } - .d-print-inline-block { - display: inline-block !important; - } - .d-print-block { - display: block !important; - } - .d-print-table { - display: table !important; - } - .d-print-table-row { - display: table-row !important; - } - .d-print-table-cell { - display: table-cell !important; - } - .d-print-flex { - display: -ms-flexbox !important; - display: flex !important; - } - .d-print-inline-flex { - display: -ms-inline-flexbox !important; - display: inline-flex !important; - } -} - -.embed-responsive { - position: relative; - display: block; - width: 100%; - padding: 0; - overflow: hidden; -} - -.embed-responsive::before { - display: block; - content: ""; -} - -.embed-responsive .embed-responsive-item, -.embed-responsive iframe, -.embed-responsive embed, -.embed-responsive object, -.embed-responsive video { - position: absolute; - top: 0; - bottom: 0; - left: 0; - width: 100%; - height: 100%; - border: 0; -} - -.embed-responsive-21by9::before { - padding-top: 42.857143%; -} - -.embed-responsive-16by9::before { - padding-top: 56.25%; -} - -.embed-responsive-4by3::before { - padding-top: 75%; -} - -.embed-responsive-1by1::before { - padding-top: 100%; -} - -.flex-row { - -ms-flex-direction: row !important; - flex-direction: row !important; -} - -.flex-column { - -ms-flex-direction: column !important; - flex-direction: column !important; -} - -.flex-row-reverse { - -ms-flex-direction: row-reverse !important; - flex-direction: row-reverse !important; -} - -.flex-column-reverse { - -ms-flex-direction: column-reverse !important; - flex-direction: column-reverse !important; -} - -.flex-wrap { - -ms-flex-wrap: wrap !important; - flex-wrap: wrap !important; -} - -.flex-nowrap { - -ms-flex-wrap: nowrap !important; - flex-wrap: nowrap !important; -} - -.flex-wrap-reverse { - -ms-flex-wrap: wrap-reverse !important; - flex-wrap: wrap-reverse !important; -} - -.flex-fill { - -ms-flex: 1 1 auto !important; - flex: 1 1 auto !important; -} - -.flex-grow-0 { - -ms-flex-positive: 0 !important; - flex-grow: 0 !important; -} - -.flex-grow-1 { - -ms-flex-positive: 1 !important; - flex-grow: 1 !important; -} - -.flex-shrink-0 { - -ms-flex-negative: 0 !important; - flex-shrink: 0 !important; -} - -.flex-shrink-1 { - -ms-flex-negative: 1 !important; - flex-shrink: 1 !important; -} - -.justify-content-start { - -ms-flex-pack: start !important; - justify-content: flex-start !important; -} - -.justify-content-end { - -ms-flex-pack: end !important; - justify-content: flex-end !important; -} - -.justify-content-center { - -ms-flex-pack: center !important; - justify-content: center !important; -} - -.justify-content-between { - -ms-flex-pack: justify !important; - justify-content: space-between !important; -} - -.justify-content-around { - -ms-flex-pack: distribute !important; - justify-content: space-around !important; -} - -.align-items-start { - -ms-flex-align: start !important; - align-items: flex-start !important; -} - -.align-items-end { - -ms-flex-align: end !important; - align-items: flex-end !important; -} - -.align-items-center { - -ms-flex-align: center !important; - align-items: center !important; -} - -.align-items-baseline { - -ms-flex-align: baseline !important; - align-items: baseline !important; -} - -.align-items-stretch { - -ms-flex-align: stretch !important; - align-items: stretch !important; -} - -.align-content-start { - -ms-flex-line-pack: start !important; - align-content: flex-start !important; -} - -.align-content-end { - -ms-flex-line-pack: end !important; - align-content: flex-end !important; -} - -.align-content-center { - -ms-flex-line-pack: center !important; - align-content: center !important; -} - -.align-content-between { - -ms-flex-line-pack: justify !important; - align-content: space-between !important; -} - -.align-content-around { - -ms-flex-line-pack: distribute !important; - align-content: space-around !important; -} - -.align-content-stretch { - -ms-flex-line-pack: stretch !important; - align-content: stretch !important; -} - -.align-self-auto { - -ms-flex-item-align: auto !important; - align-self: auto !important; -} - -.align-self-start { - -ms-flex-item-align: start !important; - align-self: flex-start !important; -} - -.align-self-end { - -ms-flex-item-align: end !important; - align-self: flex-end !important; -} - -.align-self-center { - -ms-flex-item-align: center !important; - align-self: center !important; -} - -.align-self-baseline { - -ms-flex-item-align: baseline !important; - align-self: baseline !important; -} - -.align-self-stretch { - -ms-flex-item-align: stretch !important; - align-self: stretch !important; -} - -@media (min-width: 576px) { - .flex-sm-row { - -ms-flex-direction: row !important; - flex-direction: row !important; - } - .flex-sm-column { - -ms-flex-direction: column !important; - flex-direction: column !important; - } - .flex-sm-row-reverse { - -ms-flex-direction: row-reverse !important; - flex-direction: row-reverse !important; - } - .flex-sm-column-reverse { - -ms-flex-direction: column-reverse !important; - flex-direction: column-reverse !important; - } - .flex-sm-wrap { - -ms-flex-wrap: wrap !important; - flex-wrap: wrap !important; - } - .flex-sm-nowrap { - -ms-flex-wrap: nowrap !important; - flex-wrap: nowrap !important; - } - .flex-sm-wrap-reverse { - -ms-flex-wrap: wrap-reverse !important; - flex-wrap: wrap-reverse !important; - } - .flex-sm-fill { - -ms-flex: 1 1 auto !important; - flex: 1 1 auto !important; - } - .flex-sm-grow-0 { - -ms-flex-positive: 0 !important; - flex-grow: 0 !important; - } - .flex-sm-grow-1 { - -ms-flex-positive: 1 !important; - flex-grow: 1 !important; - } - .flex-sm-shrink-0 { - -ms-flex-negative: 0 !important; - flex-shrink: 0 !important; - } - .flex-sm-shrink-1 { - -ms-flex-negative: 1 !important; - flex-shrink: 1 !important; - } - .justify-content-sm-start { - -ms-flex-pack: start !important; - justify-content: flex-start !important; - } - .justify-content-sm-end { - -ms-flex-pack: end !important; - justify-content: flex-end !important; - } - .justify-content-sm-center { - -ms-flex-pack: center !important; - justify-content: center !important; - } - .justify-content-sm-between { - -ms-flex-pack: justify !important; - justify-content: space-between !important; - } - .justify-content-sm-around { - -ms-flex-pack: distribute !important; - justify-content: space-around !important; - } - .align-items-sm-start { - -ms-flex-align: start !important; - align-items: flex-start !important; - } - .align-items-sm-end { - -ms-flex-align: end !important; - align-items: flex-end !important; - } - .align-items-sm-center { - -ms-flex-align: center !important; - align-items: center !important; - } - .align-items-sm-baseline { - -ms-flex-align: baseline !important; - align-items: baseline !important; - } - .align-items-sm-stretch { - -ms-flex-align: stretch !important; - align-items: stretch !important; - } - .align-content-sm-start { - -ms-flex-line-pack: start !important; - align-content: flex-start !important; - } - .align-content-sm-end { - -ms-flex-line-pack: end !important; - align-content: flex-end !important; - } - .align-content-sm-center { - -ms-flex-line-pack: center !important; - align-content: center !important; - } - .align-content-sm-between { - -ms-flex-line-pack: justify !important; - align-content: space-between !important; - } - .align-content-sm-around { - -ms-flex-line-pack: distribute !important; - align-content: space-around !important; - } - .align-content-sm-stretch { - -ms-flex-line-pack: stretch !important; - align-content: stretch !important; - } - .align-self-sm-auto { - -ms-flex-item-align: auto !important; - align-self: auto !important; - } - .align-self-sm-start { - -ms-flex-item-align: start !important; - align-self: flex-start !important; - } - .align-self-sm-end { - -ms-flex-item-align: end !important; - align-self: flex-end !important; - } - .align-self-sm-center { - -ms-flex-item-align: center !important; - align-self: center !important; - } - .align-self-sm-baseline { - -ms-flex-item-align: baseline !important; - align-self: baseline !important; - } - .align-self-sm-stretch { - -ms-flex-item-align: stretch !important; - align-self: stretch !important; - } -} - -@media (min-width: 768px) { - .flex-md-row { - -ms-flex-direction: row !important; - flex-direction: row !important; - } - .flex-md-column { - -ms-flex-direction: column !important; - flex-direction: column !important; - } - .flex-md-row-reverse { - -ms-flex-direction: row-reverse !important; - flex-direction: row-reverse !important; - } - .flex-md-column-reverse { - -ms-flex-direction: column-reverse !important; - flex-direction: column-reverse !important; - } - .flex-md-wrap { - -ms-flex-wrap: wrap !important; - flex-wrap: wrap !important; - } - .flex-md-nowrap { - -ms-flex-wrap: nowrap !important; - flex-wrap: nowrap !important; - } - .flex-md-wrap-reverse { - -ms-flex-wrap: wrap-reverse !important; - flex-wrap: wrap-reverse !important; - } - .flex-md-fill { - -ms-flex: 1 1 auto !important; - flex: 1 1 auto !important; - } - .flex-md-grow-0 { - -ms-flex-positive: 0 !important; - flex-grow: 0 !important; - } - .flex-md-grow-1 { - -ms-flex-positive: 1 !important; - flex-grow: 1 !important; - } - .flex-md-shrink-0 { - -ms-flex-negative: 0 !important; - flex-shrink: 0 !important; - } - .flex-md-shrink-1 { - -ms-flex-negative: 1 !important; - flex-shrink: 1 !important; - } - .justify-content-md-start { - -ms-flex-pack: start !important; - justify-content: flex-start !important; - } - .justify-content-md-end { - -ms-flex-pack: end !important; - justify-content: flex-end !important; - } - .justify-content-md-center { - -ms-flex-pack: center !important; - justify-content: center !important; - } - .justify-content-md-between { - -ms-flex-pack: justify !important; - justify-content: space-between !important; - } - .justify-content-md-around { - -ms-flex-pack: distribute !important; - justify-content: space-around !important; - } - .align-items-md-start { - -ms-flex-align: start !important; - align-items: flex-start !important; - } - .align-items-md-end { - -ms-flex-align: end !important; - align-items: flex-end !important; - } - .align-items-md-center { - -ms-flex-align: center !important; - align-items: center !important; - } - .align-items-md-baseline { - -ms-flex-align: baseline !important; - align-items: baseline !important; - } - .align-items-md-stretch { - -ms-flex-align: stretch !important; - align-items: stretch !important; - } - .align-content-md-start { - -ms-flex-line-pack: start !important; - align-content: flex-start !important; - } - .align-content-md-end { - -ms-flex-line-pack: end !important; - align-content: flex-end !important; - } - .align-content-md-center { - -ms-flex-line-pack: center !important; - align-content: center !important; - } - .align-content-md-between { - -ms-flex-line-pack: justify !important; - align-content: space-between !important; - } - .align-content-md-around { - -ms-flex-line-pack: distribute !important; - align-content: space-around !important; - } - .align-content-md-stretch { - -ms-flex-line-pack: stretch !important; - align-content: stretch !important; - } - .align-self-md-auto { - -ms-flex-item-align: auto !important; - align-self: auto !important; - } - .align-self-md-start { - -ms-flex-item-align: start !important; - align-self: flex-start !important; - } - .align-self-md-end { - -ms-flex-item-align: end !important; - align-self: flex-end !important; - } - .align-self-md-center { - -ms-flex-item-align: center !important; - align-self: center !important; - } - .align-self-md-baseline { - -ms-flex-item-align: baseline !important; - align-self: baseline !important; - } - .align-self-md-stretch { - -ms-flex-item-align: stretch !important; - align-self: stretch !important; - } -} - -@media (min-width: 992px) { - .flex-lg-row { - -ms-flex-direction: row !important; - flex-direction: row !important; - } - .flex-lg-column { - -ms-flex-direction: column !important; - flex-direction: column !important; - } - .flex-lg-row-reverse { - -ms-flex-direction: row-reverse !important; - flex-direction: row-reverse !important; - } - .flex-lg-column-reverse { - -ms-flex-direction: column-reverse !important; - flex-direction: column-reverse !important; - } - .flex-lg-wrap { - -ms-flex-wrap: wrap !important; - flex-wrap: wrap !important; - } - .flex-lg-nowrap { - -ms-flex-wrap: nowrap !important; - flex-wrap: nowrap !important; - } - .flex-lg-wrap-reverse { - -ms-flex-wrap: wrap-reverse !important; - flex-wrap: wrap-reverse !important; - } - .flex-lg-fill { - -ms-flex: 1 1 auto !important; - flex: 1 1 auto !important; - } - .flex-lg-grow-0 { - -ms-flex-positive: 0 !important; - flex-grow: 0 !important; - } - .flex-lg-grow-1 { - -ms-flex-positive: 1 !important; - flex-grow: 1 !important; - } - .flex-lg-shrink-0 { - -ms-flex-negative: 0 !important; - flex-shrink: 0 !important; - } - .flex-lg-shrink-1 { - -ms-flex-negative: 1 !important; - flex-shrink: 1 !important; - } - .justify-content-lg-start { - -ms-flex-pack: start !important; - justify-content: flex-start !important; - } - .justify-content-lg-end { - -ms-flex-pack: end !important; - justify-content: flex-end !important; - } - .justify-content-lg-center { - -ms-flex-pack: center !important; - justify-content: center !important; - } - .justify-content-lg-between { - -ms-flex-pack: justify !important; - justify-content: space-between !important; - } - .justify-content-lg-around { - -ms-flex-pack: distribute !important; - justify-content: space-around !important; - } - .align-items-lg-start { - -ms-flex-align: start !important; - align-items: flex-start !important; - } - .align-items-lg-end { - -ms-flex-align: end !important; - align-items: flex-end !important; - } - .align-items-lg-center { - -ms-flex-align: center !important; - align-items: center !important; - } - .align-items-lg-baseline { - -ms-flex-align: baseline !important; - align-items: baseline !important; - } - .align-items-lg-stretch { - -ms-flex-align: stretch !important; - align-items: stretch !important; - } - .align-content-lg-start { - -ms-flex-line-pack: start !important; - align-content: flex-start !important; - } - .align-content-lg-end { - -ms-flex-line-pack: end !important; - align-content: flex-end !important; - } - .align-content-lg-center { - -ms-flex-line-pack: center !important; - align-content: center !important; - } - .align-content-lg-between { - -ms-flex-line-pack: justify !important; - align-content: space-between !important; - } - .align-content-lg-around { - -ms-flex-line-pack: distribute !important; - align-content: space-around !important; - } - .align-content-lg-stretch { - -ms-flex-line-pack: stretch !important; - align-content: stretch !important; - } - .align-self-lg-auto { - -ms-flex-item-align: auto !important; - align-self: auto !important; - } - .align-self-lg-start { - -ms-flex-item-align: start !important; - align-self: flex-start !important; - } - .align-self-lg-end { - -ms-flex-item-align: end !important; - align-self: flex-end !important; - } - .align-self-lg-center { - -ms-flex-item-align: center !important; - align-self: center !important; - } - .align-self-lg-baseline { - -ms-flex-item-align: baseline !important; - align-self: baseline !important; - } - .align-self-lg-stretch { - -ms-flex-item-align: stretch !important; - align-self: stretch !important; - } -} - -@media (min-width: 1200px) { - .flex-xl-row { - -ms-flex-direction: row !important; - flex-direction: row !important; - } - .flex-xl-column { - -ms-flex-direction: column !important; - flex-direction: column !important; - } - .flex-xl-row-reverse { - -ms-flex-direction: row-reverse !important; - flex-direction: row-reverse !important; - } - .flex-xl-column-reverse { - -ms-flex-direction: column-reverse !important; - flex-direction: column-reverse !important; - } - .flex-xl-wrap { - -ms-flex-wrap: wrap !important; - flex-wrap: wrap !important; - } - .flex-xl-nowrap { - -ms-flex-wrap: nowrap !important; - flex-wrap: nowrap !important; - } - .flex-xl-wrap-reverse { - -ms-flex-wrap: wrap-reverse !important; - flex-wrap: wrap-reverse !important; - } - .flex-xl-fill { - -ms-flex: 1 1 auto !important; - flex: 1 1 auto !important; - } - .flex-xl-grow-0 { - -ms-flex-positive: 0 !important; - flex-grow: 0 !important; - } - .flex-xl-grow-1 { - -ms-flex-positive: 1 !important; - flex-grow: 1 !important; - } - .flex-xl-shrink-0 { - -ms-flex-negative: 0 !important; - flex-shrink: 0 !important; - } - .flex-xl-shrink-1 { - -ms-flex-negative: 1 !important; - flex-shrink: 1 !important; - } - .justify-content-xl-start { - -ms-flex-pack: start !important; - justify-content: flex-start !important; - } - .justify-content-xl-end { - -ms-flex-pack: end !important; - justify-content: flex-end !important; - } - .justify-content-xl-center { - -ms-flex-pack: center !important; - justify-content: center !important; - } - .justify-content-xl-between { - -ms-flex-pack: justify !important; - justify-content: space-between !important; - } - .justify-content-xl-around { - -ms-flex-pack: distribute !important; - justify-content: space-around !important; - } - .align-items-xl-start { - -ms-flex-align: start !important; - align-items: flex-start !important; - } - .align-items-xl-end { - -ms-flex-align: end !important; - align-items: flex-end !important; - } - .align-items-xl-center { - -ms-flex-align: center !important; - align-items: center !important; - } - .align-items-xl-baseline { - -ms-flex-align: baseline !important; - align-items: baseline !important; - } - .align-items-xl-stretch { - -ms-flex-align: stretch !important; - align-items: stretch !important; - } - .align-content-xl-start { - -ms-flex-line-pack: start !important; - align-content: flex-start !important; - } - .align-content-xl-end { - -ms-flex-line-pack: end !important; - align-content: flex-end !important; - } - .align-content-xl-center { - -ms-flex-line-pack: center !important; - align-content: center !important; - } - .align-content-xl-between { - -ms-flex-line-pack: justify !important; - align-content: space-between !important; - } - .align-content-xl-around { - -ms-flex-line-pack: distribute !important; - align-content: space-around !important; - } - .align-content-xl-stretch { - -ms-flex-line-pack: stretch !important; - align-content: stretch !important; - } - .align-self-xl-auto { - -ms-flex-item-align: auto !important; - align-self: auto !important; - } - .align-self-xl-start { - -ms-flex-item-align: start !important; - align-self: flex-start !important; - } - .align-self-xl-end { - -ms-flex-item-align: end !important; - align-self: flex-end !important; - } - .align-self-xl-center { - -ms-flex-item-align: center !important; - align-self: center !important; - } - .align-self-xl-baseline { - -ms-flex-item-align: baseline !important; - align-self: baseline !important; - } - .align-self-xl-stretch { - -ms-flex-item-align: stretch !important; - align-self: stretch !important; - } -} - -.float-left { - float: left !important; -} - -.float-right { - float: right !important; -} - -.float-none { - float: none !important; -} - -@media (min-width: 576px) { - .float-sm-left { - float: left !important; - } - .float-sm-right { - float: right !important; - } - .float-sm-none { - float: none !important; - } -} - -@media (min-width: 768px) { - .float-md-left { - float: left !important; - } - .float-md-right { - float: right !important; - } - .float-md-none { - float: none !important; - } -} - -@media (min-width: 992px) { - .float-lg-left { - float: left !important; - } - .float-lg-right { - float: right !important; - } - .float-lg-none { - float: none !important; - } -} - -@media (min-width: 1200px) { - .float-xl-left { - float: left !important; - } - .float-xl-right { - float: right !important; - } - .float-xl-none { - float: none !important; - } -} - -.overflow-auto { - overflow: auto !important; -} - -.overflow-hidden { - overflow: hidden !important; -} - -.position-static { - position: static !important; -} - -.position-relative { - position: relative !important; -} - -.position-absolute { - position: absolute !important; -} - -.position-fixed { - position: fixed !important; -} - -.position-sticky { - position: -webkit-sticky !important; - position: sticky !important; -} - -.fixed-top { - position: fixed; - top: 0; - right: 0; - left: 0; - z-index: 1030; -} - -.fixed-bottom { - position: fixed; - right: 0; - bottom: 0; - left: 0; - z-index: 1030; -} - -@supports ((position: -webkit-sticky) or (position: sticky)) { - .sticky-top { - position: -webkit-sticky; - position: sticky; - top: 0; - z-index: 1020; - } -} - -.sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - white-space: nowrap; - border: 0; -} - -.sr-only-focusable:active, .sr-only-focusable:focus { - position: static; - width: auto; - height: auto; - overflow: visible; - clip: auto; - white-space: normal; -} - -.shadow-sm { - box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; -} - -.shadow { - box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; -} - -.shadow-lg { - box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; -} - -.shadow-none { - box-shadow: none !important; -} - -.w-25 { - width: 25% !important; -} - -.w-50 { - width: 50% !important; -} - -.w-75 { - width: 75% !important; -} - -.w-100 { - width: 100% !important; -} - -.w-auto { - width: auto !important; -} - -.h-25 { - height: 25% !important; -} - -.h-50 { - height: 50% !important; -} - -.h-75 { - height: 75% !important; -} - -.h-100 { - height: 100% !important; -} - -.h-auto { - height: auto !important; -} - -.mw-100 { - max-width: 100% !important; -} - -.mh-100 { - max-height: 100% !important; -} - -.min-vw-100 { - min-width: 100vw !important; -} - -.min-vh-100 { - min-height: 100vh !important; -} - -.vw-100 { - width: 100vw !important; -} - -.vh-100 { - height: 100vh !important; -} - -.stretched-link::after { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1; - pointer-events: auto; - content: ""; - background-color: rgba(0, 0, 0, 0); -} - -.m-0 { - margin: 0 !important; -} - -.mt-0, -.my-0 { - margin-top: 0 !important; -} - -.mr-0, -.mx-0 { - margin-right: 0 !important; -} - -.mb-0, -.my-0 { - margin-bottom: 0 !important; -} - -.ml-0, -.mx-0 { - margin-left: 0 !important; -} - -.m-1 { - margin: 0.25rem !important; -} - -.mt-1, -.my-1 { - margin-top: 0.25rem !important; -} - -.mr-1, -.mx-1 { - margin-right: 0.25rem !important; -} - -.mb-1, -.my-1 { - margin-bottom: 0.25rem !important; -} - -.ml-1, -.mx-1 { - margin-left: 0.25rem !important; -} - -.m-2 { - margin: 0.5rem !important; -} - -.mt-2, -.my-2 { - margin-top: 0.5rem !important; -} - -.mr-2, -.mx-2 { - margin-right: 0.5rem !important; -} - -.mb-2, -.my-2 { - margin-bottom: 0.5rem !important; -} - -.ml-2, -.mx-2 { - margin-left: 0.5rem !important; -} - -.m-3 { - margin: 1rem !important; -} - -.mt-3, -.my-3 { - margin-top: 1rem !important; -} - -.mr-3, -.mx-3 { - margin-right: 1rem !important; -} - -.mb-3, -.my-3 { - margin-bottom: 1rem !important; -} - -.ml-3, -.mx-3 { - margin-left: 1rem !important; -} - -.m-4 { - margin: 1.5rem !important; -} - -.mt-4, -.my-4 { - margin-top: 1.5rem !important; -} - -.mr-4, -.mx-4 { - margin-right: 1.5rem !important; -} - -.mb-4, -.my-4 { - margin-bottom: 1.5rem !important; -} - -.ml-4, -.mx-4 { - margin-left: 1.5rem !important; -} - -.m-5 { - margin: 3rem !important; -} - -.mt-5, -.my-5 { - margin-top: 3rem !important; -} - -.mr-5, -.mx-5 { - margin-right: 3rem !important; -} - -.mb-5, -.my-5 { - margin-bottom: 3rem !important; -} - -.ml-5, -.mx-5 { - margin-left: 3rem !important; -} - -.p-0 { - padding: 0 !important; -} - -.pt-0, -.py-0 { - padding-top: 0 !important; -} - -.pr-0, -.px-0 { - padding-right: 0 !important; -} - -.pb-0, -.py-0 { - padding-bottom: 0 !important; -} - -.pl-0, -.px-0 { - padding-left: 0 !important; -} - -.p-1 { - padding: 0.25rem !important; -} - -.pt-1, -.py-1 { - padding-top: 0.25rem !important; -} - -.pr-1, -.px-1 { - padding-right: 0.25rem !important; -} - -.pb-1, -.py-1 { - padding-bottom: 0.25rem !important; -} - -.pl-1, -.px-1 { - padding-left: 0.25rem !important; -} - -.p-2 { - padding: 0.5rem !important; -} - -.pt-2, -.py-2 { - padding-top: 0.5rem !important; -} - -.pr-2, -.px-2 { - padding-right: 0.5rem !important; -} - -.pb-2, -.py-2 { - padding-bottom: 0.5rem !important; -} - -.pl-2, -.px-2 { - padding-left: 0.5rem !important; -} - -.p-3 { - padding: 1rem !important; -} - -.pt-3, -.py-3 { - padding-top: 1rem !important; -} - -.pr-3, -.px-3 { - padding-right: 1rem !important; -} - -.pb-3, -.py-3 { - padding-bottom: 1rem !important; -} - -.pl-3, -.px-3 { - padding-left: 1rem !important; -} - -.p-4 { - padding: 1.5rem !important; -} - -.pt-4, -.py-4 { - padding-top: 1.5rem !important; -} - -.pr-4, -.px-4 { - padding-right: 1.5rem !important; -} - -.pb-4, -.py-4 { - padding-bottom: 1.5rem !important; -} - -.pl-4, -.px-4 { - padding-left: 1.5rem !important; -} - -.p-5 { - padding: 3rem !important; -} - -.pt-5, -.py-5 { - padding-top: 3rem !important; -} - -.pr-5, -.px-5 { - padding-right: 3rem !important; -} - -.pb-5, -.py-5 { - padding-bottom: 3rem !important; -} - -.pl-5, -.px-5 { - padding-left: 3rem !important; -} - -.m-n1 { - margin: -0.25rem !important; -} - -.mt-n1, -.my-n1 { - margin-top: -0.25rem !important; -} - -.mr-n1, -.mx-n1 { - margin-right: -0.25rem !important; -} - -.mb-n1, -.my-n1 { - margin-bottom: -0.25rem !important; -} - -.ml-n1, -.mx-n1 { - margin-left: -0.25rem !important; -} - -.m-n2 { - margin: -0.5rem !important; -} - -.mt-n2, -.my-n2 { - margin-top: -0.5rem !important; -} - -.mr-n2, -.mx-n2 { - margin-right: -0.5rem !important; -} - -.mb-n2, -.my-n2 { - margin-bottom: -0.5rem !important; -} - -.ml-n2, -.mx-n2 { - margin-left: -0.5rem !important; -} - -.m-n3 { - margin: -1rem !important; -} - -.mt-n3, -.my-n3 { - margin-top: -1rem !important; -} - -.mr-n3, -.mx-n3 { - margin-right: -1rem !important; -} - -.mb-n3, -.my-n3 { - margin-bottom: -1rem !important; -} - -.ml-n3, -.mx-n3 { - margin-left: -1rem !important; -} - -.m-n4 { - margin: -1.5rem !important; -} - -.mt-n4, -.my-n4 { - margin-top: -1.5rem !important; -} - -.mr-n4, -.mx-n4 { - margin-right: -1.5rem !important; -} - -.mb-n4, -.my-n4 { - margin-bottom: -1.5rem !important; -} - -.ml-n4, -.mx-n4 { - margin-left: -1.5rem !important; -} - -.m-n5 { - margin: -3rem !important; -} - -.mt-n5, -.my-n5 { - margin-top: -3rem !important; -} - -.mr-n5, -.mx-n5 { - margin-right: -3rem !important; -} - -.mb-n5, -.my-n5 { - margin-bottom: -3rem !important; -} - -.ml-n5, -.mx-n5 { - margin-left: -3rem !important; -} - -.m-auto { - margin: auto !important; -} - -.mt-auto, -.my-auto { - margin-top: auto !important; -} - -.mr-auto, -.mx-auto { - margin-right: auto !important; -} - -.mb-auto, -.my-auto { - margin-bottom: auto !important; -} - -.ml-auto, -.mx-auto { - margin-left: auto !important; -} - -@media (min-width: 576px) { - .m-sm-0 { - margin: 0 !important; - } - .mt-sm-0, - .my-sm-0 { - margin-top: 0 !important; - } - .mr-sm-0, - .mx-sm-0 { - margin-right: 0 !important; - } - .mb-sm-0, - .my-sm-0 { - margin-bottom: 0 !important; - } - .ml-sm-0, - .mx-sm-0 { - margin-left: 0 !important; - } - .m-sm-1 { - margin: 0.25rem !important; - } - .mt-sm-1, - .my-sm-1 { - margin-top: 0.25rem !important; - } - .mr-sm-1, - .mx-sm-1 { - margin-right: 0.25rem !important; - } - .mb-sm-1, - .my-sm-1 { - margin-bottom: 0.25rem !important; - } - .ml-sm-1, - .mx-sm-1 { - margin-left: 0.25rem !important; - } - .m-sm-2 { - margin: 0.5rem !important; - } - .mt-sm-2, - .my-sm-2 { - margin-top: 0.5rem !important; - } - .mr-sm-2, - .mx-sm-2 { - margin-right: 0.5rem !important; - } - .mb-sm-2, - .my-sm-2 { - margin-bottom: 0.5rem !important; - } - .ml-sm-2, - .mx-sm-2 { - margin-left: 0.5rem !important; - } - .m-sm-3 { - margin: 1rem !important; - } - .mt-sm-3, - .my-sm-3 { - margin-top: 1rem !important; - } - .mr-sm-3, - .mx-sm-3 { - margin-right: 1rem !important; - } - .mb-sm-3, - .my-sm-3 { - margin-bottom: 1rem !important; - } - .ml-sm-3, - .mx-sm-3 { - margin-left: 1rem !important; - } - .m-sm-4 { - margin: 1.5rem !important; - } - .mt-sm-4, - .my-sm-4 { - margin-top: 1.5rem !important; - } - .mr-sm-4, - .mx-sm-4 { - margin-right: 1.5rem !important; - } - .mb-sm-4, - .my-sm-4 { - margin-bottom: 1.5rem !important; - } - .ml-sm-4, - .mx-sm-4 { - margin-left: 1.5rem !important; - } - .m-sm-5 { - margin: 3rem !important; - } - .mt-sm-5, - .my-sm-5 { - margin-top: 3rem !important; - } - .mr-sm-5, - .mx-sm-5 { - margin-right: 3rem !important; - } - .mb-sm-5, - .my-sm-5 { - margin-bottom: 3rem !important; - } - .ml-sm-5, - .mx-sm-5 { - margin-left: 3rem !important; - } - .p-sm-0 { - padding: 0 !important; - } - .pt-sm-0, - .py-sm-0 { - padding-top: 0 !important; - } - .pr-sm-0, - .px-sm-0 { - padding-right: 0 !important; - } - .pb-sm-0, - .py-sm-0 { - padding-bottom: 0 !important; - } - .pl-sm-0, - .px-sm-0 { - padding-left: 0 !important; - } - .p-sm-1 { - padding: 0.25rem !important; - } - .pt-sm-1, - .py-sm-1 { - padding-top: 0.25rem !important; - } - .pr-sm-1, - .px-sm-1 { - padding-right: 0.25rem !important; - } - .pb-sm-1, - .py-sm-1 { - padding-bottom: 0.25rem !important; - } - .pl-sm-1, - .px-sm-1 { - padding-left: 0.25rem !important; - } - .p-sm-2 { - padding: 0.5rem !important; - } - .pt-sm-2, - .py-sm-2 { - padding-top: 0.5rem !important; - } - .pr-sm-2, - .px-sm-2 { - padding-right: 0.5rem !important; - } - .pb-sm-2, - .py-sm-2 { - padding-bottom: 0.5rem !important; - } - .pl-sm-2, - .px-sm-2 { - padding-left: 0.5rem !important; - } - .p-sm-3 { - padding: 1rem !important; - } - .pt-sm-3, - .py-sm-3 { - padding-top: 1rem !important; - } - .pr-sm-3, - .px-sm-3 { - padding-right: 1rem !important; - } - .pb-sm-3, - .py-sm-3 { - padding-bottom: 1rem !important; - } - .pl-sm-3, - .px-sm-3 { - padding-left: 1rem !important; - } - .p-sm-4 { - padding: 1.5rem !important; - } - .pt-sm-4, - .py-sm-4 { - padding-top: 1.5rem !important; - } - .pr-sm-4, - .px-sm-4 { - padding-right: 1.5rem !important; - } - .pb-sm-4, - .py-sm-4 { - padding-bottom: 1.5rem !important; - } - .pl-sm-4, - .px-sm-4 { - padding-left: 1.5rem !important; - } - .p-sm-5 { - padding: 3rem !important; - } - .pt-sm-5, - .py-sm-5 { - padding-top: 3rem !important; - } - .pr-sm-5, - .px-sm-5 { - padding-right: 3rem !important; - } - .pb-sm-5, - .py-sm-5 { - padding-bottom: 3rem !important; - } - .pl-sm-5, - .px-sm-5 { - padding-left: 3rem !important; - } - .m-sm-n1 { - margin: -0.25rem !important; - } - .mt-sm-n1, - .my-sm-n1 { - margin-top: -0.25rem !important; - } - .mr-sm-n1, - .mx-sm-n1 { - margin-right: -0.25rem !important; - } - .mb-sm-n1, - .my-sm-n1 { - margin-bottom: -0.25rem !important; - } - .ml-sm-n1, - .mx-sm-n1 { - margin-left: -0.25rem !important; - } - .m-sm-n2 { - margin: -0.5rem !important; - } - .mt-sm-n2, - .my-sm-n2 { - margin-top: -0.5rem !important; - } - .mr-sm-n2, - .mx-sm-n2 { - margin-right: -0.5rem !important; - } - .mb-sm-n2, - .my-sm-n2 { - margin-bottom: -0.5rem !important; - } - .ml-sm-n2, - .mx-sm-n2 { - margin-left: -0.5rem !important; - } - .m-sm-n3 { - margin: -1rem !important; - } - .mt-sm-n3, - .my-sm-n3 { - margin-top: -1rem !important; - } - .mr-sm-n3, - .mx-sm-n3 { - margin-right: -1rem !important; - } - .mb-sm-n3, - .my-sm-n3 { - margin-bottom: -1rem !important; - } - .ml-sm-n3, - .mx-sm-n3 { - margin-left: -1rem !important; - } - .m-sm-n4 { - margin: -1.5rem !important; - } - .mt-sm-n4, - .my-sm-n4 { - margin-top: -1.5rem !important; - } - .mr-sm-n4, - .mx-sm-n4 { - margin-right: -1.5rem !important; - } - .mb-sm-n4, - .my-sm-n4 { - margin-bottom: -1.5rem !important; - } - .ml-sm-n4, - .mx-sm-n4 { - margin-left: -1.5rem !important; - } - .m-sm-n5 { - margin: -3rem !important; - } - .mt-sm-n5, - .my-sm-n5 { - margin-top: -3rem !important; - } - .mr-sm-n5, - .mx-sm-n5 { - margin-right: -3rem !important; - } - .mb-sm-n5, - .my-sm-n5 { - margin-bottom: -3rem !important; - } - .ml-sm-n5, - .mx-sm-n5 { - margin-left: -3rem !important; - } - .m-sm-auto { - margin: auto !important; - } - .mt-sm-auto, - .my-sm-auto { - margin-top: auto !important; - } - .mr-sm-auto, - .mx-sm-auto { - margin-right: auto !important; - } - .mb-sm-auto, - .my-sm-auto { - margin-bottom: auto !important; - } - .ml-sm-auto, - .mx-sm-auto { - margin-left: auto !important; - } -} - -@media (min-width: 768px) { - .m-md-0 { - margin: 0 !important; - } - .mt-md-0, - .my-md-0 { - margin-top: 0 !important; - } - .mr-md-0, - .mx-md-0 { - margin-right: 0 !important; - } - .mb-md-0, - .my-md-0 { - margin-bottom: 0 !important; - } - .ml-md-0, - .mx-md-0 { - margin-left: 0 !important; - } - .m-md-1 { - margin: 0.25rem !important; - } - .mt-md-1, - .my-md-1 { - margin-top: 0.25rem !important; - } - .mr-md-1, - .mx-md-1 { - margin-right: 0.25rem !important; - } - .mb-md-1, - .my-md-1 { - margin-bottom: 0.25rem !important; - } - .ml-md-1, - .mx-md-1 { - margin-left: 0.25rem !important; - } - .m-md-2 { - margin: 0.5rem !important; - } - .mt-md-2, - .my-md-2 { - margin-top: 0.5rem !important; - } - .mr-md-2, - .mx-md-2 { - margin-right: 0.5rem !important; - } - .mb-md-2, - .my-md-2 { - margin-bottom: 0.5rem !important; - } - .ml-md-2, - .mx-md-2 { - margin-left: 0.5rem !important; - } - .m-md-3 { - margin: 1rem !important; - } - .mt-md-3, - .my-md-3 { - margin-top: 1rem !important; - } - .mr-md-3, - .mx-md-3 { - margin-right: 1rem !important; - } - .mb-md-3, - .my-md-3 { - margin-bottom: 1rem !important; - } - .ml-md-3, - .mx-md-3 { - margin-left: 1rem !important; - } - .m-md-4 { - margin: 1.5rem !important; - } - .mt-md-4, - .my-md-4 { - margin-top: 1.5rem !important; - } - .mr-md-4, - .mx-md-4 { - margin-right: 1.5rem !important; - } - .mb-md-4, - .my-md-4 { - margin-bottom: 1.5rem !important; - } - .ml-md-4, - .mx-md-4 { - margin-left: 1.5rem !important; - } - .m-md-5 { - margin: 3rem !important; - } - .mt-md-5, - .my-md-5 { - margin-top: 3rem !important; - } - .mr-md-5, - .mx-md-5 { - margin-right: 3rem !important; - } - .mb-md-5, - .my-md-5 { - margin-bottom: 3rem !important; - } - .ml-md-5, - .mx-md-5 { - margin-left: 3rem !important; - } - .p-md-0 { - padding: 0 !important; - } - .pt-md-0, - .py-md-0 { - padding-top: 0 !important; - } - .pr-md-0, - .px-md-0 { - padding-right: 0 !important; - } - .pb-md-0, - .py-md-0 { - padding-bottom: 0 !important; - } - .pl-md-0, - .px-md-0 { - padding-left: 0 !important; - } - .p-md-1 { - padding: 0.25rem !important; - } - .pt-md-1, - .py-md-1 { - padding-top: 0.25rem !important; - } - .pr-md-1, - .px-md-1 { - padding-right: 0.25rem !important; - } - .pb-md-1, - .py-md-1 { - padding-bottom: 0.25rem !important; - } - .pl-md-1, - .px-md-1 { - padding-left: 0.25rem !important; - } - .p-md-2 { - padding: 0.5rem !important; - } - .pt-md-2, - .py-md-2 { - padding-top: 0.5rem !important; - } - .pr-md-2, - .px-md-2 { - padding-right: 0.5rem !important; - } - .pb-md-2, - .py-md-2 { - padding-bottom: 0.5rem !important; - } - .pl-md-2, - .px-md-2 { - padding-left: 0.5rem !important; - } - .p-md-3 { - padding: 1rem !important; - } - .pt-md-3, - .py-md-3 { - padding-top: 1rem !important; - } - .pr-md-3, - .px-md-3 { - padding-right: 1rem !important; - } - .pb-md-3, - .py-md-3 { - padding-bottom: 1rem !important; - } - .pl-md-3, - .px-md-3 { - padding-left: 1rem !important; - } - .p-md-4 { - padding: 1.5rem !important; - } - .pt-md-4, - .py-md-4 { - padding-top: 1.5rem !important; - } - .pr-md-4, - .px-md-4 { - padding-right: 1.5rem !important; - } - .pb-md-4, - .py-md-4 { - padding-bottom: 1.5rem !important; - } - .pl-md-4, - .px-md-4 { - padding-left: 1.5rem !important; - } - .p-md-5 { - padding: 3rem !important; - } - .pt-md-5, - .py-md-5 { - padding-top: 3rem !important; - } - .pr-md-5, - .px-md-5 { - padding-right: 3rem !important; - } - .pb-md-5, - .py-md-5 { - padding-bottom: 3rem !important; - } - .pl-md-5, - .px-md-5 { - padding-left: 3rem !important; - } - .m-md-n1 { - margin: -0.25rem !important; - } - .mt-md-n1, - .my-md-n1 { - margin-top: -0.25rem !important; - } - .mr-md-n1, - .mx-md-n1 { - margin-right: -0.25rem !important; - } - .mb-md-n1, - .my-md-n1 { - margin-bottom: -0.25rem !important; - } - .ml-md-n1, - .mx-md-n1 { - margin-left: -0.25rem !important; - } - .m-md-n2 { - margin: -0.5rem !important; - } - .mt-md-n2, - .my-md-n2 { - margin-top: -0.5rem !important; - } - .mr-md-n2, - .mx-md-n2 { - margin-right: -0.5rem !important; - } - .mb-md-n2, - .my-md-n2 { - margin-bottom: -0.5rem !important; - } - .ml-md-n2, - .mx-md-n2 { - margin-left: -0.5rem !important; - } - .m-md-n3 { - margin: -1rem !important; - } - .mt-md-n3, - .my-md-n3 { - margin-top: -1rem !important; - } - .mr-md-n3, - .mx-md-n3 { - margin-right: -1rem !important; - } - .mb-md-n3, - .my-md-n3 { - margin-bottom: -1rem !important; - } - .ml-md-n3, - .mx-md-n3 { - margin-left: -1rem !important; - } - .m-md-n4 { - margin: -1.5rem !important; - } - .mt-md-n4, - .my-md-n4 { - margin-top: -1.5rem !important; - } - .mr-md-n4, - .mx-md-n4 { - margin-right: -1.5rem !important; - } - .mb-md-n4, - .my-md-n4 { - margin-bottom: -1.5rem !important; - } - .ml-md-n4, - .mx-md-n4 { - margin-left: -1.5rem !important; - } - .m-md-n5 { - margin: -3rem !important; - } - .mt-md-n5, - .my-md-n5 { - margin-top: -3rem !important; - } - .mr-md-n5, - .mx-md-n5 { - margin-right: -3rem !important; - } - .mb-md-n5, - .my-md-n5 { - margin-bottom: -3rem !important; - } - .ml-md-n5, - .mx-md-n5 { - margin-left: -3rem !important; - } - .m-md-auto { - margin: auto !important; - } - .mt-md-auto, - .my-md-auto { - margin-top: auto !important; - } - .mr-md-auto, - .mx-md-auto { - margin-right: auto !important; - } - .mb-md-auto, - .my-md-auto { - margin-bottom: auto !important; - } - .ml-md-auto, - .mx-md-auto { - margin-left: auto !important; - } -} - -@media (min-width: 992px) { - .m-lg-0 { - margin: 0 !important; - } - .mt-lg-0, - .my-lg-0 { - margin-top: 0 !important; - } - .mr-lg-0, - .mx-lg-0 { - margin-right: 0 !important; - } - .mb-lg-0, - .my-lg-0 { - margin-bottom: 0 !important; - } - .ml-lg-0, - .mx-lg-0 { - margin-left: 0 !important; - } - .m-lg-1 { - margin: 0.25rem !important; - } - .mt-lg-1, - .my-lg-1 { - margin-top: 0.25rem !important; - } - .mr-lg-1, - .mx-lg-1 { - margin-right: 0.25rem !important; - } - .mb-lg-1, - .my-lg-1 { - margin-bottom: 0.25rem !important; - } - .ml-lg-1, - .mx-lg-1 { - margin-left: 0.25rem !important; - } - .m-lg-2 { - margin: 0.5rem !important; - } - .mt-lg-2, - .my-lg-2 { - margin-top: 0.5rem !important; - } - .mr-lg-2, - .mx-lg-2 { - margin-right: 0.5rem !important; - } - .mb-lg-2, - .my-lg-2 { - margin-bottom: 0.5rem !important; - } - .ml-lg-2, - .mx-lg-2 { - margin-left: 0.5rem !important; - } - .m-lg-3 { - margin: 1rem !important; - } - .mt-lg-3, - .my-lg-3 { - margin-top: 1rem !important; - } - .mr-lg-3, - .mx-lg-3 { - margin-right: 1rem !important; - } - .mb-lg-3, - .my-lg-3 { - margin-bottom: 1rem !important; - } - .ml-lg-3, - .mx-lg-3 { - margin-left: 1rem !important; - } - .m-lg-4 { - margin: 1.5rem !important; - } - .mt-lg-4, - .my-lg-4 { - margin-top: 1.5rem !important; - } - .mr-lg-4, - .mx-lg-4 { - margin-right: 1.5rem !important; - } - .mb-lg-4, - .my-lg-4 { - margin-bottom: 1.5rem !important; - } - .ml-lg-4, - .mx-lg-4 { - margin-left: 1.5rem !important; - } - .m-lg-5 { - margin: 3rem !important; - } - .mt-lg-5, - .my-lg-5 { - margin-top: 3rem !important; - } - .mr-lg-5, - .mx-lg-5 { - margin-right: 3rem !important; - } - .mb-lg-5, - .my-lg-5 { - margin-bottom: 3rem !important; - } - .ml-lg-5, - .mx-lg-5 { - margin-left: 3rem !important; - } - .p-lg-0 { - padding: 0 !important; - } - .pt-lg-0, - .py-lg-0 { - padding-top: 0 !important; - } - .pr-lg-0, - .px-lg-0 { - padding-right: 0 !important; - } - .pb-lg-0, - .py-lg-0 { - padding-bottom: 0 !important; - } - .pl-lg-0, - .px-lg-0 { - padding-left: 0 !important; - } - .p-lg-1 { - padding: 0.25rem !important; - } - .pt-lg-1, - .py-lg-1 { - padding-top: 0.25rem !important; - } - .pr-lg-1, - .px-lg-1 { - padding-right: 0.25rem !important; - } - .pb-lg-1, - .py-lg-1 { - padding-bottom: 0.25rem !important; - } - .pl-lg-1, - .px-lg-1 { - padding-left: 0.25rem !important; - } - .p-lg-2 { - padding: 0.5rem !important; - } - .pt-lg-2, - .py-lg-2 { - padding-top: 0.5rem !important; - } - .pr-lg-2, - .px-lg-2 { - padding-right: 0.5rem !important; - } - .pb-lg-2, - .py-lg-2 { - padding-bottom: 0.5rem !important; - } - .pl-lg-2, - .px-lg-2 { - padding-left: 0.5rem !important; - } - .p-lg-3 { - padding: 1rem !important; - } - .pt-lg-3, - .py-lg-3 { - padding-top: 1rem !important; - } - .pr-lg-3, - .px-lg-3 { - padding-right: 1rem !important; - } - .pb-lg-3, - .py-lg-3 { - padding-bottom: 1rem !important; - } - .pl-lg-3, - .px-lg-3 { - padding-left: 1rem !important; - } - .p-lg-4 { - padding: 1.5rem !important; - } - .pt-lg-4, - .py-lg-4 { - padding-top: 1.5rem !important; - } - .pr-lg-4, - .px-lg-4 { - padding-right: 1.5rem !important; - } - .pb-lg-4, - .py-lg-4 { - padding-bottom: 1.5rem !important; - } - .pl-lg-4, - .px-lg-4 { - padding-left: 1.5rem !important; - } - .p-lg-5 { - padding: 3rem !important; - } - .pt-lg-5, - .py-lg-5 { - padding-top: 3rem !important; - } - .pr-lg-5, - .px-lg-5 { - padding-right: 3rem !important; - } - .pb-lg-5, - .py-lg-5 { - padding-bottom: 3rem !important; - } - .pl-lg-5, - .px-lg-5 { - padding-left: 3rem !important; - } - .m-lg-n1 { - margin: -0.25rem !important; - } - .mt-lg-n1, - .my-lg-n1 { - margin-top: -0.25rem !important; - } - .mr-lg-n1, - .mx-lg-n1 { - margin-right: -0.25rem !important; - } - .mb-lg-n1, - .my-lg-n1 { - margin-bottom: -0.25rem !important; - } - .ml-lg-n1, - .mx-lg-n1 { - margin-left: -0.25rem !important; - } - .m-lg-n2 { - margin: -0.5rem !important; - } - .mt-lg-n2, - .my-lg-n2 { - margin-top: -0.5rem !important; - } - .mr-lg-n2, - .mx-lg-n2 { - margin-right: -0.5rem !important; - } - .mb-lg-n2, - .my-lg-n2 { - margin-bottom: -0.5rem !important; - } - .ml-lg-n2, - .mx-lg-n2 { - margin-left: -0.5rem !important; - } - .m-lg-n3 { - margin: -1rem !important; - } - .mt-lg-n3, - .my-lg-n3 { - margin-top: -1rem !important; - } - .mr-lg-n3, - .mx-lg-n3 { - margin-right: -1rem !important; - } - .mb-lg-n3, - .my-lg-n3 { - margin-bottom: -1rem !important; - } - .ml-lg-n3, - .mx-lg-n3 { - margin-left: -1rem !important; - } - .m-lg-n4 { - margin: -1.5rem !important; - } - .mt-lg-n4, - .my-lg-n4 { - margin-top: -1.5rem !important; - } - .mr-lg-n4, - .mx-lg-n4 { - margin-right: -1.5rem !important; - } - .mb-lg-n4, - .my-lg-n4 { - margin-bottom: -1.5rem !important; - } - .ml-lg-n4, - .mx-lg-n4 { - margin-left: -1.5rem !important; - } - .m-lg-n5 { - margin: -3rem !important; - } - .mt-lg-n5, - .my-lg-n5 { - margin-top: -3rem !important; - } - .mr-lg-n5, - .mx-lg-n5 { - margin-right: -3rem !important; - } - .mb-lg-n5, - .my-lg-n5 { - margin-bottom: -3rem !important; - } - .ml-lg-n5, - .mx-lg-n5 { - margin-left: -3rem !important; - } - .m-lg-auto { - margin: auto !important; - } - .mt-lg-auto, - .my-lg-auto { - margin-top: auto !important; - } - .mr-lg-auto, - .mx-lg-auto { - margin-right: auto !important; - } - .mb-lg-auto, - .my-lg-auto { - margin-bottom: auto !important; - } - .ml-lg-auto, - .mx-lg-auto { - margin-left: auto !important; - } -} - -@media (min-width: 1200px) { - .m-xl-0 { - margin: 0 !important; - } - .mt-xl-0, - .my-xl-0 { - margin-top: 0 !important; - } - .mr-xl-0, - .mx-xl-0 { - margin-right: 0 !important; - } - .mb-xl-0, - .my-xl-0 { - margin-bottom: 0 !important; - } - .ml-xl-0, - .mx-xl-0 { - margin-left: 0 !important; - } - .m-xl-1 { - margin: 0.25rem !important; - } - .mt-xl-1, - .my-xl-1 { - margin-top: 0.25rem !important; - } - .mr-xl-1, - .mx-xl-1 { - margin-right: 0.25rem !important; - } - .mb-xl-1, - .my-xl-1 { - margin-bottom: 0.25rem !important; - } - .ml-xl-1, - .mx-xl-1 { - margin-left: 0.25rem !important; - } - .m-xl-2 { - margin: 0.5rem !important; - } - .mt-xl-2, - .my-xl-2 { - margin-top: 0.5rem !important; - } - .mr-xl-2, - .mx-xl-2 { - margin-right: 0.5rem !important; - } - .mb-xl-2, - .my-xl-2 { - margin-bottom: 0.5rem !important; - } - .ml-xl-2, - .mx-xl-2 { - margin-left: 0.5rem !important; - } - .m-xl-3 { - margin: 1rem !important; - } - .mt-xl-3, - .my-xl-3 { - margin-top: 1rem !important; - } - .mr-xl-3, - .mx-xl-3 { - margin-right: 1rem !important; - } - .mb-xl-3, - .my-xl-3 { - margin-bottom: 1rem !important; - } - .ml-xl-3, - .mx-xl-3 { - margin-left: 1rem !important; - } - .m-xl-4 { - margin: 1.5rem !important; - } - .mt-xl-4, - .my-xl-4 { - margin-top: 1.5rem !important; - } - .mr-xl-4, - .mx-xl-4 { - margin-right: 1.5rem !important; - } - .mb-xl-4, - .my-xl-4 { - margin-bottom: 1.5rem !important; - } - .ml-xl-4, - .mx-xl-4 { - margin-left: 1.5rem !important; - } - .m-xl-5 { - margin: 3rem !important; - } - .mt-xl-5, - .my-xl-5 { - margin-top: 3rem !important; - } - .mr-xl-5, - .mx-xl-5 { - margin-right: 3rem !important; - } - .mb-xl-5, - .my-xl-5 { - margin-bottom: 3rem !important; - } - .ml-xl-5, - .mx-xl-5 { - margin-left: 3rem !important; - } - .p-xl-0 { - padding: 0 !important; - } - .pt-xl-0, - .py-xl-0 { - padding-top: 0 !important; - } - .pr-xl-0, - .px-xl-0 { - padding-right: 0 !important; - } - .pb-xl-0, - .py-xl-0 { - padding-bottom: 0 !important; - } - .pl-xl-0, - .px-xl-0 { - padding-left: 0 !important; - } - .p-xl-1 { - padding: 0.25rem !important; - } - .pt-xl-1, - .py-xl-1 { - padding-top: 0.25rem !important; - } - .pr-xl-1, - .px-xl-1 { - padding-right: 0.25rem !important; - } - .pb-xl-1, - .py-xl-1 { - padding-bottom: 0.25rem !important; - } - .pl-xl-1, - .px-xl-1 { - padding-left: 0.25rem !important; - } - .p-xl-2 { - padding: 0.5rem !important; - } - .pt-xl-2, - .py-xl-2 { - padding-top: 0.5rem !important; - } - .pr-xl-2, - .px-xl-2 { - padding-right: 0.5rem !important; - } - .pb-xl-2, - .py-xl-2 { - padding-bottom: 0.5rem !important; - } - .pl-xl-2, - .px-xl-2 { - padding-left: 0.5rem !important; - } - .p-xl-3 { - padding: 1rem !important; - } - .pt-xl-3, - .py-xl-3 { - padding-top: 1rem !important; - } - .pr-xl-3, - .px-xl-3 { - padding-right: 1rem !important; - } - .pb-xl-3, - .py-xl-3 { - padding-bottom: 1rem !important; - } - .pl-xl-3, - .px-xl-3 { - padding-left: 1rem !important; - } - .p-xl-4 { - padding: 1.5rem !important; - } - .pt-xl-4, - .py-xl-4 { - padding-top: 1.5rem !important; - } - .pr-xl-4, - .px-xl-4 { - padding-right: 1.5rem !important; - } - .pb-xl-4, - .py-xl-4 { - padding-bottom: 1.5rem !important; - } - .pl-xl-4, - .px-xl-4 { - padding-left: 1.5rem !important; - } - .p-xl-5 { - padding: 3rem !important; - } - .pt-xl-5, - .py-xl-5 { - padding-top: 3rem !important; - } - .pr-xl-5, - .px-xl-5 { - padding-right: 3rem !important; - } - .pb-xl-5, - .py-xl-5 { - padding-bottom: 3rem !important; - } - .pl-xl-5, - .px-xl-5 { - padding-left: 3rem !important; - } - .m-xl-n1 { - margin: -0.25rem !important; - } - .mt-xl-n1, - .my-xl-n1 { - margin-top: -0.25rem !important; - } - .mr-xl-n1, - .mx-xl-n1 { - margin-right: -0.25rem !important; - } - .mb-xl-n1, - .my-xl-n1 { - margin-bottom: -0.25rem !important; - } - .ml-xl-n1, - .mx-xl-n1 { - margin-left: -0.25rem !important; - } - .m-xl-n2 { - margin: -0.5rem !important; - } - .mt-xl-n2, - .my-xl-n2 { - margin-top: -0.5rem !important; - } - .mr-xl-n2, - .mx-xl-n2 { - margin-right: -0.5rem !important; - } - .mb-xl-n2, - .my-xl-n2 { - margin-bottom: -0.5rem !important; - } - .ml-xl-n2, - .mx-xl-n2 { - margin-left: -0.5rem !important; - } - .m-xl-n3 { - margin: -1rem !important; - } - .mt-xl-n3, - .my-xl-n3 { - margin-top: -1rem !important; - } - .mr-xl-n3, - .mx-xl-n3 { - margin-right: -1rem !important; - } - .mb-xl-n3, - .my-xl-n3 { - margin-bottom: -1rem !important; - } - .ml-xl-n3, - .mx-xl-n3 { - margin-left: -1rem !important; - } - .m-xl-n4 { - margin: -1.5rem !important; - } - .mt-xl-n4, - .my-xl-n4 { - margin-top: -1.5rem !important; - } - .mr-xl-n4, - .mx-xl-n4 { - margin-right: -1.5rem !important; - } - .mb-xl-n4, - .my-xl-n4 { - margin-bottom: -1.5rem !important; - } - .ml-xl-n4, - .mx-xl-n4 { - margin-left: -1.5rem !important; - } - .m-xl-n5 { - margin: -3rem !important; - } - .mt-xl-n5, - .my-xl-n5 { - margin-top: -3rem !important; - } - .mr-xl-n5, - .mx-xl-n5 { - margin-right: -3rem !important; - } - .mb-xl-n5, - .my-xl-n5 { - margin-bottom: -3rem !important; - } - .ml-xl-n5, - .mx-xl-n5 { - margin-left: -3rem !important; - } - .m-xl-auto { - margin: auto !important; - } - .mt-xl-auto, - .my-xl-auto { - margin-top: auto !important; - } - .mr-xl-auto, - .mx-xl-auto { - margin-right: auto !important; - } - .mb-xl-auto, - .my-xl-auto { - margin-bottom: auto !important; - } - .ml-xl-auto, - .mx-xl-auto { - margin-left: auto !important; - } -} - -.text-monospace { - font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !important; -} - -.text-justify { - text-align: justify !important; -} - -.text-wrap { - white-space: normal !important; -} - -.text-nowrap { - white-space: nowrap !important; -} - -.text-truncate { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} - -.text-left { - text-align: left !important; -} - -.text-right { - text-align: right !important; -} - -.text-center { - text-align: center !important; -} - -@media (min-width: 576px) { - .text-sm-left { - text-align: left !important; - } - .text-sm-right { - text-align: right !important; - } - .text-sm-center { - text-align: center !important; - } -} - -@media (min-width: 768px) { - .text-md-left { - text-align: left !important; - } - .text-md-right { - text-align: right !important; - } - .text-md-center { - text-align: center !important; - } -} - -@media (min-width: 992px) { - .text-lg-left { - text-align: left !important; - } - .text-lg-right { - text-align: right !important; - } - .text-lg-center { - text-align: center !important; - } -} - -@media (min-width: 1200px) { - .text-xl-left { - text-align: left !important; - } - .text-xl-right { - text-align: right !important; - } - .text-xl-center { - text-align: center !important; - } -} - -.text-lowercase { - text-transform: lowercase !important; -} - -.text-uppercase { - text-transform: uppercase !important; -} - -.text-capitalize { - text-transform: capitalize !important; -} - -.font-weight-light { - font-weight: 300 !important; -} - -.font-weight-lighter { - font-weight: lighter !important; -} - -.font-weight-normal { - font-weight: 400 !important; -} - -.font-weight-bold { - font-weight: 700 !important; -} - -.font-weight-bolder { - font-weight: bolder !important; -} - -.font-italic { - font-style: italic !important; -} - -.text-white { - color: #fff !important; -} - -.text-primary { - color: #007bff !important; -} - -a.text-primary:hover, a.text-primary:focus { - color: #0056b3 !important; -} - -.text-secondary { - color: #6c757d !important; -} - -a.text-secondary:hover, a.text-secondary:focus { - color: #494f54 !important; -} - -.text-success { - color: #28a745 !important; -} - -a.text-success:hover, a.text-success:focus { - color: #19692c !important; -} - -.text-info { - color: #17a2b8 !important; -} - -a.text-info:hover, a.text-info:focus { - color: #0f6674 !important; -} - -.text-warning { - color: #ffc107 !important; -} - -a.text-warning:hover, a.text-warning:focus { - color: #ba8b00 !important; -} - -.text-danger { - color: #dc3545 !important; -} - -a.text-danger:hover, a.text-danger:focus { - color: #a71d2a !important; -} - -.text-light { - color: #f8f9fa !important; -} - -a.text-light:hover, a.text-light:focus { - color: #cbd3da !important; -} - -.text-dark { - color: #343a40 !important; -} - -a.text-dark:hover, a.text-dark:focus { - color: #121416 !important; -} - -.text-body { - color: #212529 !important; -} - -.text-muted { - color: #6c757d !important; -} - -.text-black-50 { - color: rgba(0, 0, 0, 0.5) !important; -} - -.text-white-50 { - color: rgba(255, 255, 255, 0.5) !important; -} - -.text-hide { - font: 0/0 a; - color: transparent; - text-shadow: none; - background-color: transparent; - border: 0; -} - -.text-decoration-none { - text-decoration: none !important; -} - -.text-break { - word-break: break-word !important; - overflow-wrap: break-word !important; -} - -.text-reset { - color: inherit !important; -} - -.visible { - visibility: visible !important; -} - -.invisible { - visibility: hidden !important; -} - -@media print { - *, - *::before, - *::after { - text-shadow: none !important; - box-shadow: none !important; - } - a:not(.btn) { - text-decoration: underline; - } - abbr[title]::after { - content: " (" attr(title) ")"; - } - pre { - white-space: pre-wrap !important; - } - pre, - blockquote { - border: 1px solid #adb5bd; - page-break-inside: avoid; - } - thead { - display: table-header-group; - } - tr, - img { - page-break-inside: avoid; - } - p, - h2, - h3 { - orphans: 3; - widows: 3; - } - h2, - h3 { - page-break-after: avoid; - } - @page { - size: a3; - } - body { - min-width: 992px !important; - } - .container { - min-width: 992px !important; - } - .navbar { - display: none; - } - .badge { - border: 1px solid #000; - } - .table { - border-collapse: collapse !important; - } - .table td, - .table th { - background-color: #fff !important; - } - .table-bordered th, - .table-bordered td { - border: 1px solid #dee2e6 !important; - } - .table-dark { - color: inherit; - } - .table-dark th, - .table-dark td, - .table-dark thead th, - .table-dark tbody + tbody { - border-color: #dee2e6; - } - .table .thead-dark th { - color: inherit; - border-color: #dee2e6; - } -} -/*# sourceMappingURL=bootstrap.css.map */ \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap.css.map b/maxkey-web-mgt-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap.css.map deleted file mode 100644 index 521afc5b..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../scss/bootstrap.scss","bootstrap.css","../../scss/_root.scss","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/vendor/_rfs.scss","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixins/_grid-framework.scss","../../scss/_tables.scss","../../scss/mixins/_table-row.scss","../../scss/_functions.scss","../../scss/_forms.scss","../../scss/mixins/_transition.scss","../../scss/mixins/_forms.scss","../../scss/mixins/_gradients.scss","../../scss/_buttons.scss","../../scss/mixins/_buttons.scss","../../scss/_transitions.scss","../../scss/_dropdown.scss","../../scss/mixins/_caret.scss","../../scss/mixins/_nav-divider.scss","../../scss/_button-group.scss","../../scss/_input-group.scss","../../scss/_custom-forms.scss","../../scss/_nav.scss","../../scss/_navbar.scss","../../scss/_card.scss","../../scss/_breadcrumb.scss","../../scss/_pagination.scss","../../scss/mixins/_pagination.scss","../../scss/_badge.scss","../../scss/mixins/_badge.scss","../../scss/_jumbotron.scss","../../scss/_alert.scss","../../scss/mixins/_alert.scss","../../scss/_progress.scss","../../scss/_media.scss","../../scss/_list-group.scss","../../scss/mixins/_list-group.scss","../../scss/_close.scss","../../scss/_toasts.scss","../../scss/_modal.scss","../../scss/_tooltip.scss","../../scss/mixins/_reset-text.scss","../../scss/_popover.scss","../../scss/_carousel.scss","../../scss/mixins/_clearfix.scss","../../scss/_spinners.scss","../../scss/utilities/_align.scss","../../scss/mixins/_background-variant.scss","../../scss/utilities/_background.scss","../../scss/utilities/_borders.scss","../../scss/utilities/_display.scss","../../scss/utilities/_embed.scss","../../scss/utilities/_flex.scss","../../scss/utilities/_float.scss","../../scss/utilities/_overflow.scss","../../scss/utilities/_position.scss","../../scss/utilities/_screenreaders.scss","../../scss/mixins/_screen-reader.scss","../../scss/utilities/_shadows.scss","../../scss/utilities/_sizing.scss","../../scss/utilities/_stretched-link.scss","../../scss/utilities/_spacing.scss","../../scss/utilities/_text.scss","../../scss/mixins/_text-truncate.scss","../../scss/mixins/_text-emphasis.scss","../../scss/mixins/_text-hide.scss","../../scss/utilities/_visibility.scss","../../scss/_print.scss"],"names":[],"mappings":"AAAA;;;;;ECKE;ACJF;EAGI,eAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,eAAc;EAAd,cAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,gBAAc;EAAd,eAAc;EAAd,eAAc;EAAd,aAAc;EAAd,eAAc;EAAd,oBAAc;EAId,kBAAc;EAAd,oBAAc;EAAd,kBAAc;EAAd,eAAc;EAAd,kBAAc;EAAd,iBAAc;EAAd,gBAAc;EAAd,eAAc;EAId,kBAAiC;EAAjC,sBAAiC;EAAjC,sBAAiC;EAAjC,sBAAiC;EAAjC,uBAAiC;EAKnC,+MAAyB;EACzB,6GAAwB;ADiB1B;;AEjBA;;;EAGE,sBAAsB;AFoBxB;;AEjBA;EACE,uBAAuB;EACvB,iBAAiB;EACjB,8BAA8B;EAC9B,6CCXa;AH+Bf;;AEdA;EACE,cAAc;AFiBhB;;AEPA;EACE,SAAS;EACT,kMCyOiN;ECzJ7M,eAtCY;EFxChB,gBCkP+B;EDjP/B,gBCsP+B;EDrP/B,cCnCgB;EDoChB,gBAAgB;EAChB,sBC9Ca;AHwDf;;AAEA;EECE,qBAAqB;AFCvB;;AEQA;EACE,uBAAuB;EACvB,SAAS;EACT,iBAAiB;AFLnB;;AEkBA;EACE,aAAa;EACb,qBCoNuC;AHnOzC;;AEsBA;EACE,aAAa;EACb,mBCuF8B;AH1GhC;;AE8BA;;EAEE,0BAA0B;EAC1B,yCAAiC;EAAjC,iCAAiC;EACjC,YAAY;EACZ,gBAAgB;EAChB,sCAA8B;EAA9B,8BAA8B;AF3BhC;;AE8BA;EACE,mBAAmB;EACnB,kBAAkB;EAClB,oBAAoB;AF3BtB;;AE8BA;;;EAGE,aAAa;EACb,mBAAmB;AF3BrB;;AE8BA;;;;EAIE,gBAAgB;AF3BlB;;AE8BA;EACE,gBCqJ+B;AHhLjC;;AE8BA;EACE,oBAAoB;EACpB,cAAc;AF3BhB;;AE8BA;EACE,gBAAgB;AF3BlB;;AE8BA;;EAEE,mBCwIkC;AHnKpC;;AE8BA;EExFI,cAAW;AJ8Df;;AEmCA;;EAEE,kBAAkB;EEnGhB,cAAW;EFqGb,cAAc;EACd,wBAAwB;AFhC1B;;AEmCA;EAAM,cAAc;AF/BpB;;AEgCA;EAAM,UAAU;AF5BhB;;AEmCA;EACE,cCtJe;EDuJf,qBCR4C;EDS5C,6BAA6B;AFhC/B;;AKhJE;EHmLE,cCX8D;EDY9D,0BCX+C;AHpBnD;;AEwCA;EACE,cAAc;EACd,qBAAqB;AFrCvB;;AK1JE;EHkME,cAAc;EACd,qBAAqB;AFpCzB;;AE6CA;;;;EAIE,iGC6DgH;ECjN9G,cAAW;AJ2Gf;;AE6CA;EAEE,aAAa;EAEb,mBAAmB;EAEnB,cAAc;AF7ChB;;AEqDA;EAEE,gBAAgB;AFnDlB;;AE2DA;EACE,sBAAsB;EACtB,kBAAkB;AFxDpB;;AE2DA;EAGE,gBAAgB;EAChB,sBAAsB;AF1DxB;;AEkEA;EACE,yBAAyB;AF/D3B;;AEkEA;EACE,oBCoFkC;EDnFlC,uBCmFkC;EDlFlC,cCnQgB;EDoQhB,gBAAgB;EAChB,oBAAoB;AF/DtB;;AEkEA;EAGE,mBAAmB;AFjErB;;AEyEA;EAEE,qBAAqB;EACrB,qBCqK2C;AH5O7C;;AE6EA;EAEE,gBAAgB;AF3ElB;;AEkFA;EACE,mBAAmB;EACnB,0CAA0C;AF/E5C;;AEkFA;;;;;EAKE,SAAS;EACT,oBAAoB;EErPlB,kBAAW;EFuPb,oBAAoB;AF/EtB;;AEkFA;;EAEE,iBAAiB;AF/EnB;;AEkFA;;EAEE,oBAAoB;AF/EtB;;AEqFA;EACE,iBAAiB;AFlFnB;;AEyFA;;;;EAIE,0BAA0B;AFtF5B;;AE2FE;;;;EAKI,eAAe;AFzFrB;;AE+FA;;;;EAIE,UAAU;EACV,kBAAkB;AF5FpB;;AE+FA;;EAEE,sBAAsB;EACtB,UAAU;AF5FZ;;AEgGA;;;;EASE,2BAA2B;AFlG7B;;AEqGA;EACE,cAAc;EAEd,gBAAgB;AFnGlB;;AEsGA;EAME,YAAY;EAEZ,UAAU;EACV,SAAS;EACT,SAAS;AFzGX;;AE8GA;EACE,cAAc;EACd,WAAW;EACX,eAAe;EACf,UAAU;EACV,oBAAoB;EEjShB,iBAtCY;EFyUhB,oBAAoB;EACpB,cAAc;EACd,mBAAmB;AF3GrB;;AE8GA;EACE,wBAAwB;AF3G1B;;AAEA;;EE+GE,YAAY;AF5Gd;;AAEA;EEkHE,oBAAoB;EACpB,wBAAwB;AFhH1B;;AAEA;EEsHE,wBAAwB;AFpH1B;;AE4HA;EACE,aAAa;EACb,0BAA0B;AFzH5B;;AEgIA;EACE,qBAAqB;AF7HvB;;AEgIA;EACE,kBAAkB;EAClB,eAAe;AF7HjB;;AEgIA;EACE,aAAa;AF7Hf;;AAEA;EEiIE,wBAAwB;AF/H1B;;AM3VA;;EAEE,qBHySuC;EGvSvC,gBHyS+B;EGxS/B,gBHyS+B;AHoDjC;;AMzVA;EFgHM,iBAtCY;AJmRlB;;AM5VA;EF+GM,eAtCY;AJuRlB;;AM/VA;EF8GM,kBAtCY;AJ2RlB;;AMlWA;EF6GM,iBAtCY;AJ+RlB;;AMrWA;EF4GM,kBAtCY;AJmSlB;;AMxWA;EF2GM,eAtCY;AJuSlB;;AM1WA;EFyGM,kBAtCY;EEjEhB,gBH2S+B;AHkEjC;;AMzWA;EFmGM,eAtCY;EE3DhB,gBH8R+B;EG7R/B,gBHqR+B;AHuFjC;;AM1WA;EF8FM,iBAtCY;EEtDhB,gBH0R+B;EGzR/B,gBHgR+B;AH6FjC;;AM3WA;EFyFM,iBAtCY;EEjDhB,gBHsR+B;EGrR/B,gBH2Q+B;AHmGjC;;AM5WA;EFoFM,iBAtCY;EE5ChB,gBHkR+B;EGjR/B,gBHsQ+B;AHyGjC;;AElVA;EIpBE,gBHiFW;EGhFX,mBHgFW;EG/EX,SAAS;EACT,wCHzCa;AHmZf;;AMlWA;;EFMI,cAAW;EEHb,gBH8N+B;AHuIjC;;AMlWA;;EAEE,cHsQgC;EGrQhC,yBH8QmC;AHuFrC;;AM7VA;EC/EE,eAAe;EACf,gBAAgB;APgblB;;AM7VA;ECpFE,eAAe;EACf,gBAAgB;APqblB;;AM/VA;EACE,qBAAqB;ANkWvB;;AMnWA;EAII,oBHwP+B;AH2GnC;;AMzVA;EFjCI,cAAW;EEmCb,yBAAyB;AN4V3B;;AMxVA;EACE,mBHwBW;ECTP,kBAtCY;AJmXlB;;AMxVA;EACE,cAAc;EF7CZ,cAAW;EE+Cb,cH1GgB;AHqclB;;AM9VA;EAMI,qBAAqB;AN4VzB;;AQ/cA;ECIE,eAAe;EAGf,YAAY;AT6cd;;AQ9cA;EACE,gBLigCwC;EKhgCxC,sBLRa;EKSb,yBLNgB;EOLd,sBP6OgC;EMvOlC,eAAe;EAGf,YAAY;ATsdd;;AQxcA;EAEE,qBAAqB;AR0cvB;;AQvcA;EACE,qBAA0B;EAC1B,cAAc;AR0chB;;AQvcA;EJkCI,cAAW;EIhCb,cL3BgB;AHqelB;;AWjfA;EPuEI,gBAAW;EOrEb,cRoCe;EQnCf,qBAAqB;AXofvB;;AWjfE;EACE,cAAc;AXoflB;;AW/eA;EACE,sBRqlCuC;EC3hCrC,gBAAW;EOxDb,WRTa;EQUb,yBRDgB;EOXd,qBP+O+B;AHgRnC;;AWvfA;EASI,UAAU;EPkDV,eAAW;EOhDX,gBR4Q6B;AHsOjC;;AE1SA;ESjME,cAAc;EPyCZ,gBAAW;EOvCb,cRjBgB;AHggBlB;;AWlfA;EP0CI,kBAAW;EOlCX,cAAc;EACd,kBAAkB;AX+etB;;AW1eA;EACE,iBR4jCuC;EQ3jCvC,kBAAkB;AX6epB;;AYrhBE;ECDA,WAAW;EACX,mBAA0B;EAC1B,kBAAyB;EACzB,kBAAkB;EAClB,iBAAiB;Ab0hBnB;;AcveI;EFtDF;ICWI,gBVqMK;EHkVT;AACF;;Ac7eI;EFtDF;ICWI,gBVsMK;EHuVT;AACF;;AcnfI;EFtDF;ICWI,gBVuMK;EH4VT;AACF;;AczfI;EFtDF;ICWI,iBVwMM;EHiWV;AACF;;AY/iBE;ECPA,WAAW;EACX,mBAA0B;EAC1B,kBAAyB;EACzB,kBAAkB;EAClB,iBAAiB;Ab0jBnB;;AcvgBI;EFrCE;IACE,gBT8LG;EHkXT;AACF;;Ac7gBI;EFrCE;IACE,gBT+LG;EHuXT;AACF;;AcnhBI;EFrCE;IACE,gBTgMG;EH4XT;AACF;;AczhBI;EFrCE;IACE,iBTiMI;EHiYV;AACF;;AY/iBE;ECrBA,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,mBAA0B;EAC1B,kBAAyB;AbwkB3B;;AYhjBE;EACE,eAAe;EACf,cAAc;AZmjBlB;;AYrjBE;;EAMI,gBAAgB;EAChB,eAAe;AZojBrB;;AetmBE;;;;;;EACE,kBAAkB;EAClB,WAAW;EACX,mBAA0B;EAC1B,kBAAyB;Af8mB7B;;Ae3lBM;EACE,0BAAa;EAAb,aAAa;EACb,oBAAY;EAAZ,YAAY;EACZ,eAAe;Af8lBvB;;Ae1lBQ;EF4BJ,kBAAuB;EAAvB,cAAuB;EACvB,eAAwB;AbkkB5B;;Ae/lBQ;EF4BJ,iBAAuB;EAAvB,aAAuB;EACvB,cAAwB;AbukB5B;;AepmBQ;EF4BJ,wBAAuB;EAAvB,oBAAuB;EACvB,qBAAwB;Ab4kB5B;;AezmBQ;EF4BJ,iBAAuB;EAAvB,aAAuB;EACvB,cAAwB;AbilB5B;;Ae9mBQ;EF4BJ,iBAAuB;EAAvB,aAAuB;EACvB,cAAwB;AbslB5B;;AennBQ;EF4BJ,wBAAuB;EAAvB,oBAAuB;EACvB,qBAAwB;Ab2lB5B;;AennBM;EFMJ,kBAAc;EAAd,cAAc;EACd,WAAW;EACX,eAAe;AbinBjB;;AepnBQ;EFPN,uBAAsC;EAAtC,mBAAsC;EAItC,oBAAuC;Ab4nBzC;;AeznBQ;EFPN,wBAAsC;EAAtC,oBAAsC;EAItC,qBAAuC;AbioBzC;;Ae9nBQ;EFPN,iBAAsC;EAAtC,aAAsC;EAItC,cAAuC;AbsoBzC;;AenoBQ;EFPN,wBAAsC;EAAtC,oBAAsC;EAItC,qBAAuC;Ab2oBzC;;AexoBQ;EFPN,wBAAsC;EAAtC,oBAAsC;EAItC,qBAAuC;AbgpBzC;;Ae7oBQ;EFPN,iBAAsC;EAAtC,aAAsC;EAItC,cAAuC;AbqpBzC;;AelpBQ;EFPN,wBAAsC;EAAtC,oBAAsC;EAItC,qBAAuC;Ab0pBzC;;AevpBQ;EFPN,wBAAsC;EAAtC,oBAAsC;EAItC,qBAAuC;Ab+pBzC;;Ae5pBQ;EFPN,iBAAsC;EAAtC,aAAsC;EAItC,cAAuC;AboqBzC;;AejqBQ;EFPN,wBAAsC;EAAtC,oBAAsC;EAItC,qBAAuC;AbyqBzC;;AetqBQ;EFPN,wBAAsC;EAAtC,oBAAsC;EAItC,qBAAuC;Ab8qBzC;;Ae3qBQ;EFPN,kBAAsC;EAAtC,cAAsC;EAItC,eAAuC;AbmrBzC;;Ae3qBM;EAAwB,kBAAS;EAAT,SAAS;Af+qBvC;;Ae7qBM;EAAuB,kBZ6KG;EY7KH,SZ6KG;AHogBhC;;Ae9qBQ;EAAwB,iBADZ;EACY,QADZ;AfmrBpB;;AelrBQ;EAAwB,iBADZ;EACY,QADZ;AfurBpB;;AetrBQ;EAAwB,iBADZ;EACY,QADZ;Af2rBpB;;Ae1rBQ;EAAwB,iBADZ;EACY,QADZ;Af+rBpB;;Ae9rBQ;EAAwB,iBADZ;EACY,QADZ;AfmsBpB;;AelsBQ;EAAwB,iBADZ;EACY,QADZ;AfusBpB;;AetsBQ;EAAwB,iBADZ;EACY,QADZ;Af2sBpB;;Ae1sBQ;EAAwB,iBADZ;EACY,QADZ;Af+sBpB;;Ae9sBQ;EAAwB,iBADZ;EACY,QADZ;AfmtBpB;;AeltBQ;EAAwB,iBADZ;EACY,QADZ;AfutBpB;;AettBQ;EAAwB,kBADZ;EACY,SADZ;Af2tBpB;;Ae1tBQ;EAAwB,kBADZ;EACY,SADZ;Af+tBpB;;Ae9tBQ;EAAwB,kBADZ;EACY,SADZ;AfmuBpB;;Ae5tBU;EFRR,sBAA8C;AbwuBhD;;AehuBU;EFRR,uBAA8C;Ab4uBhD;;AepuBU;EFRR,gBAA8C;AbgvBhD;;AexuBU;EFRR,uBAA8C;AbovBhD;;Ae5uBU;EFRR,uBAA8C;AbwvBhD;;AehvBU;EFRR,gBAA8C;Ab4vBhD;;AepvBU;EFRR,uBAA8C;AbgwBhD;;AexvBU;EFRR,uBAA8C;AbowBhD;;Ae5vBU;EFRR,gBAA8C;AbwwBhD;;AehwBU;EFRR,uBAA8C;Ab4wBhD;;AepwBU;EFRR,uBAA8C;AbgxBhD;;Ac3wBI;EC9BE;IACE,0BAAa;IAAb,aAAa;IACb,oBAAY;IAAZ,YAAY;IACZ,eAAe;Ef6yBrB;EezyBM;IF4BJ,kBAAuB;IAAvB,cAAuB;IACvB,eAAwB;EbgxB1B;Ee7yBM;IF4BJ,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;EboxB1B;EejzBM;IF4BJ,wBAAuB;IAAvB,oBAAuB;IACvB,qBAAwB;EbwxB1B;EerzBM;IF4BJ,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;Eb4xB1B;EezzBM;IF4BJ,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;EbgyB1B;Ee7zBM;IF4BJ,wBAAuB;IAAvB,oBAAuB;IACvB,qBAAwB;EboyB1B;Ee5zBI;IFMJ,kBAAc;IAAd,cAAc;IACd,WAAW;IACX,eAAe;EbyzBf;Ee5zBM;IFPN,uBAAsC;IAAtC,mBAAsC;IAItC,oBAAuC;Ebm0BvC;Eeh0BM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Ebu0BvC;Eep0BM;IFPN,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;Eb20BvC;Eex0BM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Eb+0BvC;Ee50BM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Ebm1BvC;Eeh1BM;IFPN,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;Ebu1BvC;Eep1BM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Eb21BvC;Eex1BM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Eb+1BvC;Ee51BM;IFPN,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;Ebm2BvC;Eeh2BM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Ebu2BvC;Eep2BM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Eb22BvC;Eex2BM;IFPN,kBAAsC;IAAtC,cAAsC;IAItC,eAAuC;Eb+2BvC;Eev2BI;IAAwB,kBAAS;IAAT,SAAS;Ef02BrC;Eex2BI;IAAuB,kBZ6KG;IY7KH,SZ6KG;EH8rB9B;Eex2BM;IAAwB,iBADZ;IACY,QADZ;Ef42BlB;Ee32BM;IAAwB,iBADZ;IACY,QADZ;Ef+2BlB;Ee92BM;IAAwB,iBADZ;IACY,QADZ;Efk3BlB;Eej3BM;IAAwB,iBADZ;IACY,QADZ;Efq3BlB;Eep3BM;IAAwB,iBADZ;IACY,QADZ;Efw3BlB;Eev3BM;IAAwB,iBADZ;IACY,QADZ;Ef23BlB;Ee13BM;IAAwB,iBADZ;IACY,QADZ;Ef83BlB;Ee73BM;IAAwB,iBADZ;IACY,QADZ;Efi4BlB;Eeh4BM;IAAwB,iBADZ;IACY,QADZ;Efo4BlB;Een4BM;IAAwB,iBADZ;IACY,QADZ;Efu4BlB;Eet4BM;IAAwB,kBADZ;IACY,SADZ;Ef04BlB;Eez4BM;IAAwB,kBADZ;IACY,SADZ;Ef64BlB;Ee54BM;IAAwB,kBADZ;IACY,SADZ;Efg5BlB;Eez4BQ;IFRR,cAA4B;Ebo5B5B;Ee54BQ;IFRR,sBAA8C;Ebu5B9C;Ee/4BQ;IFRR,uBAA8C;Eb05B9C;Eel5BQ;IFRR,gBAA8C;Eb65B9C;Eer5BQ;IFRR,uBAA8C;Ebg6B9C;Eex5BQ;IFRR,uBAA8C;Ebm6B9C;Ee35BQ;IFRR,gBAA8C;Ebs6B9C;Ee95BQ;IFRR,uBAA8C;Eby6B9C;Eej6BQ;IFRR,uBAA8C;Eb46B9C;Eep6BQ;IFRR,gBAA8C;Eb+6B9C;Eev6BQ;IFRR,uBAA8C;Ebk7B9C;Ee16BQ;IFRR,uBAA8C;Ebq7B9C;AACF;;Acj7BI;EC9BE;IACE,0BAAa;IAAb,aAAa;IACb,oBAAY;IAAZ,YAAY;IACZ,eAAe;Efm9BrB;Ee/8BM;IF4BJ,kBAAuB;IAAvB,cAAuB;IACvB,eAAwB;Ebs7B1B;Een9BM;IF4BJ,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;Eb07B1B;Eev9BM;IF4BJ,wBAAuB;IAAvB,oBAAuB;IACvB,qBAAwB;Eb87B1B;Ee39BM;IF4BJ,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;Ebk8B1B;Ee/9BM;IF4BJ,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;Ebs8B1B;Een+BM;IF4BJ,wBAAuB;IAAvB,oBAAuB;IACvB,qBAAwB;Eb08B1B;Eel+BI;IFMJ,kBAAc;IAAd,cAAc;IACd,WAAW;IACX,eAAe;Eb+9Bf;Eel+BM;IFPN,uBAAsC;IAAtC,mBAAsC;IAItC,oBAAuC;Eby+BvC;Eet+BM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Eb6+BvC;Ee1+BM;IFPN,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;Ebi/BvC;Ee9+BM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Ebq/BvC;Eel/BM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Eby/BvC;Eet/BM;IFPN,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;Eb6/BvC;Ee1/BM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EbigCvC;Ee9/BM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EbqgCvC;EelgCM;IFPN,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;EbygCvC;EetgCM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Eb6gCvC;Ee1gCM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EbihCvC;Ee9gCM;IFPN,kBAAsC;IAAtC,cAAsC;IAItC,eAAuC;EbqhCvC;Ee7gCI;IAAwB,kBAAS;IAAT,SAAS;EfghCrC;Ee9gCI;IAAuB,kBZ6KG;IY7KH,SZ6KG;EHo2B9B;Ee9gCM;IAAwB,iBADZ;IACY,QADZ;EfkhClB;EejhCM;IAAwB,iBADZ;IACY,QADZ;EfqhClB;EephCM;IAAwB,iBADZ;IACY,QADZ;EfwhClB;EevhCM;IAAwB,iBADZ;IACY,QADZ;Ef2hClB;Ee1hCM;IAAwB,iBADZ;IACY,QADZ;Ef8hClB;Ee7hCM;IAAwB,iBADZ;IACY,QADZ;EfiiClB;EehiCM;IAAwB,iBADZ;IACY,QADZ;EfoiClB;EeniCM;IAAwB,iBADZ;IACY,QADZ;EfuiClB;EetiCM;IAAwB,iBADZ;IACY,QADZ;Ef0iClB;EeziCM;IAAwB,iBADZ;IACY,QADZ;Ef6iClB;Ee5iCM;IAAwB,kBADZ;IACY,SADZ;EfgjClB;Ee/iCM;IAAwB,kBADZ;IACY,SADZ;EfmjClB;EeljCM;IAAwB,kBADZ;IACY,SADZ;EfsjClB;Ee/iCQ;IFRR,cAA4B;Eb0jC5B;EeljCQ;IFRR,sBAA8C;Eb6jC9C;EerjCQ;IFRR,uBAA8C;EbgkC9C;EexjCQ;IFRR,gBAA8C;EbmkC9C;Ee3jCQ;IFRR,uBAA8C;EbskC9C;Ee9jCQ;IFRR,uBAA8C;EbykC9C;EejkCQ;IFRR,gBAA8C;Eb4kC9C;EepkCQ;IFRR,uBAA8C;Eb+kC9C;EevkCQ;IFRR,uBAA8C;EbklC9C;Ee1kCQ;IFRR,gBAA8C;EbqlC9C;Ee7kCQ;IFRR,uBAA8C;EbwlC9C;EehlCQ;IFRR,uBAA8C;Eb2lC9C;AACF;;AcvlCI;EC9BE;IACE,0BAAa;IAAb,aAAa;IACb,oBAAY;IAAZ,YAAY;IACZ,eAAe;EfynCrB;EernCM;IF4BJ,kBAAuB;IAAvB,cAAuB;IACvB,eAAwB;Eb4lC1B;EeznCM;IF4BJ,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;EbgmC1B;Ee7nCM;IF4BJ,wBAAuB;IAAvB,oBAAuB;IACvB,qBAAwB;EbomC1B;EejoCM;IF4BJ,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;EbwmC1B;EeroCM;IF4BJ,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;Eb4mC1B;EezoCM;IF4BJ,wBAAuB;IAAvB,oBAAuB;IACvB,qBAAwB;EbgnC1B;EexoCI;IFMJ,kBAAc;IAAd,cAAc;IACd,WAAW;IACX,eAAe;EbqoCf;EexoCM;IFPN,uBAAsC;IAAtC,mBAAsC;IAItC,oBAAuC;Eb+oCvC;Ee5oCM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EbmpCvC;EehpCM;IFPN,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;EbupCvC;EeppCM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Eb2pCvC;EexpCM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Eb+pCvC;Ee5pCM;IFPN,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;EbmqCvC;EehqCM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EbuqCvC;EepqCM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Eb2qCvC;EexqCM;IFPN,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;Eb+qCvC;Ee5qCM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EbmrCvC;EehrCM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EburCvC;EeprCM;IFPN,kBAAsC;IAAtC,cAAsC;IAItC,eAAuC;Eb2rCvC;EenrCI;IAAwB,kBAAS;IAAT,SAAS;EfsrCrC;EeprCI;IAAuB,kBZ6KG;IY7KH,SZ6KG;EH0gC9B;EeprCM;IAAwB,iBADZ;IACY,QADZ;EfwrClB;EevrCM;IAAwB,iBADZ;IACY,QADZ;Ef2rClB;Ee1rCM;IAAwB,iBADZ;IACY,QADZ;Ef8rClB;Ee7rCM;IAAwB,iBADZ;IACY,QADZ;EfisClB;EehsCM;IAAwB,iBADZ;IACY,QADZ;EfosClB;EensCM;IAAwB,iBADZ;IACY,QADZ;EfusClB;EetsCM;IAAwB,iBADZ;IACY,QADZ;Ef0sClB;EezsCM;IAAwB,iBADZ;IACY,QADZ;Ef6sClB;Ee5sCM;IAAwB,iBADZ;IACY,QADZ;EfgtClB;Ee/sCM;IAAwB,iBADZ;IACY,QADZ;EfmtClB;EeltCM;IAAwB,kBADZ;IACY,SADZ;EfstClB;EertCM;IAAwB,kBADZ;IACY,SADZ;EfytClB;EextCM;IAAwB,kBADZ;IACY,SADZ;Ef4tClB;EertCQ;IFRR,cAA4B;EbguC5B;EextCQ;IFRR,sBAA8C;EbmuC9C;Ee3tCQ;IFRR,uBAA8C;EbsuC9C;Ee9tCQ;IFRR,gBAA8C;EbyuC9C;EejuCQ;IFRR,uBAA8C;Eb4uC9C;EepuCQ;IFRR,uBAA8C;Eb+uC9C;EevuCQ;IFRR,gBAA8C;EbkvC9C;Ee1uCQ;IFRR,uBAA8C;EbqvC9C;Ee7uCQ;IFRR,uBAA8C;EbwvC9C;EehvCQ;IFRR,gBAA8C;Eb2vC9C;EenvCQ;IFRR,uBAA8C;Eb8vC9C;EetvCQ;IFRR,uBAA8C;EbiwC9C;AACF;;Ac7vCI;EC9BE;IACE,0BAAa;IAAb,aAAa;IACb,oBAAY;IAAZ,YAAY;IACZ,eAAe;Ef+xCrB;Ee3xCM;IF4BJ,kBAAuB;IAAvB,cAAuB;IACvB,eAAwB;EbkwC1B;Ee/xCM;IF4BJ,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;EbswC1B;EenyCM;IF4BJ,wBAAuB;IAAvB,oBAAuB;IACvB,qBAAwB;Eb0wC1B;EevyCM;IF4BJ,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;Eb8wC1B;Ee3yCM;IF4BJ,iBAAuB;IAAvB,aAAuB;IACvB,cAAwB;EbkxC1B;Ee/yCM;IF4BJ,wBAAuB;IAAvB,oBAAuB;IACvB,qBAAwB;EbsxC1B;Ee9yCI;IFMJ,kBAAc;IAAd,cAAc;IACd,WAAW;IACX,eAAe;Eb2yCf;Ee9yCM;IFPN,uBAAsC;IAAtC,mBAAsC;IAItC,oBAAuC;EbqzCvC;EelzCM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;EbyzCvC;EetzCM;IFPN,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;Eb6zCvC;Ee1zCM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Ebi0CvC;Ee9zCM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Ebq0CvC;Eel0CM;IFPN,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;Eby0CvC;Eet0CM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Eb60CvC;Ee10CM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Ebi1CvC;Ee90CM;IFPN,iBAAsC;IAAtC,aAAsC;IAItC,cAAuC;Ebq1CvC;Eel1CM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Eby1CvC;Eet1CM;IFPN,wBAAsC;IAAtC,oBAAsC;IAItC,qBAAuC;Eb61CvC;Ee11CM;IFPN,kBAAsC;IAAtC,cAAsC;IAItC,eAAuC;Ebi2CvC;Eez1CI;IAAwB,kBAAS;IAAT,SAAS;Ef41CrC;Ee11CI;IAAuB,kBZ6KG;IY7KH,SZ6KG;EHgrC9B;Ee11CM;IAAwB,iBADZ;IACY,QADZ;Ef81ClB;Ee71CM;IAAwB,iBADZ;IACY,QADZ;Efi2ClB;Eeh2CM;IAAwB,iBADZ;IACY,QADZ;Efo2ClB;Een2CM;IAAwB,iBADZ;IACY,QADZ;Efu2ClB;Eet2CM;IAAwB,iBADZ;IACY,QADZ;Ef02ClB;Eez2CM;IAAwB,iBADZ;IACY,QADZ;Ef62ClB;Ee52CM;IAAwB,iBADZ;IACY,QADZ;Efg3ClB;Ee/2CM;IAAwB,iBADZ;IACY,QADZ;Efm3ClB;Eel3CM;IAAwB,iBADZ;IACY,QADZ;Efs3ClB;Eer3CM;IAAwB,iBADZ;IACY,QADZ;Efy3ClB;Eex3CM;IAAwB,kBADZ;IACY,SADZ;Ef43ClB;Ee33CM;IAAwB,kBADZ;IACY,SADZ;Ef+3ClB;Ee93CM;IAAwB,kBADZ;IACY,SADZ;Efk4ClB;Ee33CQ;IFRR,cAA4B;Ebs4C5B;Ee93CQ;IFRR,sBAA8C;Eby4C9C;Eej4CQ;IFRR,uBAA8C;Eb44C9C;Eep4CQ;IFRR,gBAA8C;Eb+4C9C;Eev4CQ;IFRR,uBAA8C;Ebk5C9C;Ee14CQ;IFRR,uBAA8C;Ebq5C9C;Ee74CQ;IFRR,gBAA8C;Ebw5C9C;Eeh5CQ;IFRR,uBAA8C;Eb25C9C;Een5CQ;IFRR,uBAA8C;Eb85C9C;Eet5CQ;IFRR,gBAA8C;Ebi6C9C;Eez5CQ;IFRR,uBAA8C;Ebo6C9C;Ee55CQ;IFRR,uBAA8C;Ebu6C9C;AACF;;AgB39CA;EACE,WAAW;EACX,mBbkIW;EajIX,cbSgB;AHq9ClB;;AgBj+CA;;EAQI,gBbsVgC;EarVhC,mBAAmB;EACnB,6BbJc;AHk+ClB;;AgBx+CA;EAcI,sBAAsB;EACtB,gCbTc;AHu+ClB;;AgB7+CA;EAmBI,6Bbbc;AH2+ClB;;AgBr9CA;;EAGI,ebgU+B;AHupCnC;;AgB98CA;EACE,yBbnCgB;AHo/ClB;;AgBl9CA;;EAKI,yBbvCc;AHy/ClB;;AgBv9CA;;EAWM,wBAA4C;AhBi9ClD;;AgB58CA;;;;EAKI,SAAS;AhB88Cb;;AgBt8CA;EAEI,qCb1DW;AHkgDf;;AKvgDE;EW2EI,cbvEY;EawEZ,sCbvES;AHugDf;;AiBnhDE;;;EAII,yBCsF4D;AlB+7ClE;;AiBzhDE;;;;EAYM,qBC8E0D;AlBs8ClE;;AKzhDE;EYiBM,yBAJsC;AjBghD9C;;AiBjhDE;;EASQ,yBARoC;AjBqhD9C;;AiBziDE;;;EAII,yBCsF4D;AlBq9ClE;;AiB/iDE;;;;EAYM,qBC8E0D;AlB49ClE;;AK/iDE;EYiBM,yBAJsC;AjBsiD9C;;AiBviDE;;EASQ,yBARoC;AjB2iD9C;;AiB/jDE;;;EAII,yBCsF4D;AlB2+ClE;;AiBrkDE;;;;EAYM,qBC8E0D;AlBk/ClE;;AKrkDE;EYiBM,yBAJsC;AjB4jD9C;;AiB7jDE;;EASQ,yBARoC;AjBikD9C;;AiBrlDE;;;EAII,yBCsF4D;AlBigDlE;;AiB3lDE;;;;EAYM,qBC8E0D;AlBwgDlE;;AK3lDE;EYiBM,yBAJsC;AjBklD9C;;AiBnlDE;;EASQ,yBARoC;AjBulD9C;;AiB3mDE;;;EAII,yBCsF4D;AlBuhDlE;;AiBjnDE;;;;EAYM,qBC8E0D;AlB8hDlE;;AKjnDE;EYiBM,yBAJsC;AjBwmD9C;;AiBzmDE;;EASQ,yBARoC;AjB6mD9C;;AiBjoDE;;;EAII,yBCsF4D;AlB6iDlE;;AiBvoDE;;;;EAYM,qBC8E0D;AlBojDlE;;AKvoDE;EYiBM,yBAJsC;AjB8nD9C;;AiB/nDE;;EASQ,yBARoC;AjBmoD9C;;AiBvpDE;;;EAII,yBCsF4D;AlBmkDlE;;AiB7pDE;;;;EAYM,qBC8E0D;AlB0kDlE;;AK7pDE;EYiBM,yBAJsC;AjBopD9C;;AiBrpDE;;EASQ,yBARoC;AjBypD9C;;AiB7qDE;;;EAII,yBCsF4D;AlBylDlE;;AiBnrDE;;;;EAYM,qBC8E0D;AlBgmDlE;;AKnrDE;EYiBM,yBAJsC;AjB0qD9C;;AiB3qDE;;EASQ,yBARoC;AjB+qD9C;;AiBnsDE;;;EAII,sCdQS;AH6rDf;;AKlsDE;EYiBM,sCAJsC;AjByrD9C;;AiB1rDE;;EASQ,sCARoC;AjB8rD9C;;AgBxmDA;EAGM,Wb3GS;Ea4GT,yBbpGY;EaqGZ,qBbmQqD;AHs2C3D;;AgB9mDA;EAWM,cb5GY;Ea6GZ,yBblHY;EamHZ,qBblHY;AHytDlB;;AgBlmDA;EACE,Wb3Ha;Ea4Hb,yBbpHgB;AHytDlB;;AgBvmDA;;;EAOI,qBb+OuD;AHu3C3D;;AgB7mDA;EAWI,SAAS;AhBsmDb;;AgBjnDA;EAgBM,2Cb1IS;AH+uDf;;AK1uDE;EW4IM,WbjJO;EakJP,4CblJO;AHovDf;;AclrDI;EEiGA;IAEI,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,iCAAiC;EhBolDvC;EgBzlDG;IASK,SAAS;EhBmlDjB;AACF;;Ac9rDI;EEiGA;IAEI,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,iCAAiC;EhBgmDvC;EgBrmDG;IASK,SAAS;EhB+lDjB;AACF;;Ac1sDI;EEiGA;IAEI,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,iCAAiC;EhB4mDvC;EgBjnDG;IASK,SAAS;EhB2mDjB;AACF;;ActtDI;EEiGA;IAEI,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,iCAAiC;EhBwnDvC;EgB7nDG;IASK,SAAS;EhBunDjB;AACF;;AgBtoDA;EAOQ,cAAc;EACd,WAAW;EACX,gBAAgB;EAChB,iCAAiC;AhBmoDzC;;AgB7oDA;EAcU,SAAS;AhBmoDnB;;AmBhzDA;EACE,cAAc;EACd,WAAW;EACX,mCDuG8D;ECtG9D,yBhB4XkC;ECvQ9B,eAtCY;Ee5EhB,gBhBsR+B;EgBrR/B,gBhB0R+B;EgBzR/B,chBDgB;EgBEhB,sBhBTa;EgBUb,4BAA4B;EAC5B,yBhBPgB;EONd,sBP6OgC;EiB5O9B,wEjBof4F;AH40ClG;;AoB3zDI;EDLJ;ICMM,gBAAgB;EpB+zDpB;AACF;;AmBt0DA;EAsBI,6BAA6B;EAC7B,SAAS;AnBozDb;;AmB30DA;EA4BI,kBAAkB;EAClB,0BhBrBc;AHw0DlB;;AqBz0DE;EACE,clBAc;EkBCd,sBlBRW;EkBSX,qBlBwdsE;EkBvdtE,UAAU;EAKR,gDlBcW;AH0zDjB;;AmBx1DA;EAqCI,chB9Bc;EgBgCd,UAAU;AnBszDd;;AmB71DA;EAqCI,chB9Bc;EgBgCd,UAAU;AnBszDd;;AmB71DA;EAqCI,chB9Bc;EgBgCd,UAAU;AnBszDd;;AmB71DA;EAqCI,chB9Bc;EgBgCd,UAAU;AnBszDd;;AmB71DA;EAqCI,chB9Bc;EgBgCd,UAAU;AnBszDd;;AmB71DA;EAiDI,yBhB9Cc;EgBgDd,UAAU;AnB+yDd;;AmB3yDA;EAOI,chBtDc;EgBuDd,sBhB9DW;AHs2Df;;AmBnyDA;;EAEE,cAAc;EACd,WAAW;AnBsyDb;;AmB5xDA;EACE,iCDwB8D;ECvB9D,oCDuB8D;ECtB9D,gBAAgB;EflBd,kBAAW;EeoBb,gBhB4M+B;AHmlDjC;;AmB5xDA;EACE,+BDgB8D;ECf9D,kCDe8D;Ede1D,kBAtCY;EeUhB,gBhByI+B;AHspDjC;;AmB5xDA;EACE,gCDS8D;ECR9D,mCDQ8D;Ede1D,mBAtCY;EeiBhB,gBhBmI+B;AH4pDjC;;AmBtxDA;EACE,cAAc;EACd,WAAW;EACX,mBAA2B;EAC3B,gBAAgB;EfQZ,eAtCY;EegChB,gBhB+K+B;EgB9K/B,chB1GgB;EgB2GhB,6BAA6B;EAC7B,yBAAyB;EACzB,mBAAmC;AnByxDrC;;AmBnyDA;EAcI,gBAAgB;EAChB,eAAe;AnByxDnB;;AmB7wDA;EACE,kCD/B8D;ECgC9D,uBhBgQiC;ECjR7B,mBAtCY;EeyDhB,gBhB2F+B;EOxO7B,qBP+O+B;AH+qDnC;;AmB7wDA;EACE,gCDvC8D;ECwC9D,oBhB6PgC;ECtR5B,kBAtCY;EeiEhB,gBhBkF+B;EOvO7B,qBP8O+B;AHwrDnC;;AmB5wDA;EAGI,YAAY;AnB6wDhB;;AmBzwDA;EACE,YAAY;AnB4wDd;;AmBpwDA;EACE,mBhBsV0C;AHi7C5C;;AmBpwDA;EACE,cAAc;EACd,mBhBuU4C;AHg8C9C;;AmB/vDA;EACE,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,kBAA0C;EAC1C,iBAAyC;AnBkwD3C;;AmBtwDA;;EAQI,kBAA0C;EAC1C,iBAAyC;AnBmwD7C;;AmB1vDA;EACE,kBAAkB;EAClB,cAAc;EACd,qBhB4S6C;AHi9C/C;;AmB1vDA;EACE,kBAAkB;EAClB,kBhBwS2C;EgBvS3C,qBhBsS6C;AHu9C/C;;AmBhwDA;;EAQI,chBhNc;AH68DlB;;AmBzvDA;EACE,gBAAgB;AnB4vDlB;;AmBzvDA;EACE,2BAAoB;EAApB,oBAAoB;EACpB,sBAAmB;EAAnB,mBAAmB;EACnB,eAAe;EACf,qBhByR4C;AHm+C9C;;AmBhwDA;EAQI,gBAAgB;EAChB,aAAa;EACb,uBhBoR4C;EgBnR5C,cAAc;AnB4vDlB;;AqBh8DE;EACE,aAAa;EACb,WAAW;EACX,mBlB6c0C;ECpb1C,cAAW;EiBvBX,clBNa;AHy8DjB;;AqBh8DE;EACE,kBAAkB;EAClB,SAAS;EACT,UAAU;EACV,aAAa;EACb,eAAe;EACf,uBlBmyBqC;EkBlyBrC,iBAAiB;EjBoEf,mBAtCY;EiB5Bd,gBlB2O6B;EkB1O7B,WlBvDW;EkBwDX,wClBpBa;EOtCb,sBP6OgC;AHixDpC;;AqBn+DI;;;;EAsCE,cAAc;ArBo8DpB;;AqB1+DI;EA4CE,qBlBjCW;EkBoCT,oCHiCwD;EGhCxD,iRHpCmI;EGqCnI,4BAA4B;EAC5B,2DAA6D;EAC7D,gEH6BwD;AlBm6DhE;;AqBn/DI;EAuDI,qBlB5CS;EkB6CT,gDlB7CS;AH6+DjB;;AqBx/DI;EAiEI,oCHewD;EGdxD,kFHcwD;AlB66DhE;;AqB7/DI;EAyEE,qBlB9DW;EkBiET,uCHIwD;EGHxD,ujBAA8J;ArBs7DtK;;AqBngEI;EAiFI,qBlBtES;EkBuET,gDlBvES;AH6/DjB;;AqBxgEI;EA0FI,clB/ES;AHigEjB;;AqB5gEI;;;EA+FI,cAAc;ArBm7DtB;;AqBlhEI;EAuGI,clB5FS;AH2gEjB;;AqBthEI;EA0GM,qBlB/FO;AH+gEjB;;AqB1hEI;EAgHM,qBAAkC;EC1IxC,yBD2I+C;ArB86DnD;;AqB/hEI;EAuHM,gDlB5GO;AHwhEjB;;AqBniEI;EA2HM,qBlBhHO;AH4hEjB;;AqBviEI;EAqII,qBlB1HS;AHgiEjB;;AqB3iEI;EA0IM,qBlB/HO;EkBgIP,gDlBhIO;AHqiEjB;;AqBpiEE;EACE,aAAa;EACb,WAAW;EACX,mBlB6c0C;ECpb1C,cAAW;EiBvBX,clBTa;AHgjEjB;;AqBpiEE;EACE,kBAAkB;EAClB,SAAS;EACT,UAAU;EACV,aAAa;EACb,eAAe;EACf,uBlBmyBqC;EkBlyBrC,iBAAiB;EjBoEf,mBAtCY;EiB5Bd,gBlB2O6B;EkB1O7B,WlBvDW;EkBwDX,wClBvBa;EOnCb,sBP6OgC;AHq3DpC;;AqBvkEI;;;;EAsCE,cAAc;ArBwiEpB;;AqB9kEI;EA4CE,qBlBpCW;EkBuCT,oCHiCwD;EGhCxD,4UHpCmI;EGqCnI,4BAA4B;EAC5B,2DAA6D;EAC7D,gEH6BwD;AlBugEhE;;AqBvlEI;EAuDI,qBlB/CS;EkBgDT,gDlBhDS;AHolEjB;;AqB5lEI;EAiEI,oCHewD;EGdxD,kFHcwD;AlBihEhE;;AqBjmEI;EAyEE,qBlBjEW;EkBoET,uCHIwD;EGHxD,knBAA8J;ArB0hEtK;;AqBvmEI;EAiFI,qBlBzES;EkB0ET,gDlB1ES;AHomEjB;;AqB5mEI;EA0FI,clBlFS;AHwmEjB;;AqBhnEI;;;EA+FI,cAAc;ArBuhEtB;;AqBtnEI;EAuGI,clB/FS;AHknEjB;;AqB1nEI;EA0GM,qBlBlGO;AHsnEjB;;AqB9nEI;EAgHM,qBAAkC;EC1IxC,yBD2I+C;ArBkhEnD;;AqBnoEI;EAuHM,gDlB/GO;AH+nEjB;;AqBvoEI;EA2HM,qBlBnHO;AHmoEjB;;AqB3oEI;EAqII,qBlB7HS;AHuoEjB;;AqB/oEI;EA0IM,qBlBlIO;EkBmIP,gDlBnIO;AH4oEjB;;AmB36DA;EACE,oBAAa;EAAb,aAAa;EACb,uBAAmB;EAAnB,mBAAmB;EACnB,sBAAmB;EAAnB,mBAAmB;AnB86DrB;;AmBj7DA;EASI,WAAW;AnB46Df;;AcloEI;EK6MJ;IAeM,oBAAa;IAAb,aAAa;IACb,sBAAmB;IAAnB,mBAAmB;IACnB,qBAAuB;IAAvB,uBAAuB;IACvB,gBAAgB;EnB26DpB;EmB77DF;IAuBM,oBAAa;IAAb,aAAa;IACb,kBAAc;IAAd,cAAc;IACd,uBAAmB;IAAnB,mBAAmB;IACnB,sBAAmB;IAAnB,mBAAmB;IACnB,gBAAgB;EnBy6DpB;EmBp8DF;IAgCM,qBAAqB;IACrB,WAAW;IACX,sBAAsB;EnBu6D1B;EmBz8DF;IAuCM,qBAAqB;EnBq6DzB;EmB58DF;;IA4CM,WAAW;EnBo6Df;EmBh9DF;IAkDM,oBAAa;IAAb,aAAa;IACb,sBAAmB;IAAnB,mBAAmB;IACnB,qBAAuB;IAAvB,uBAAuB;IACvB,WAAW;IACX,eAAe;EnBi6DnB;EmBv9DF;IAyDM,kBAAkB;IAClB,oBAAc;IAAd,cAAc;IACd,aAAa;IACb,qBhB2LwC;IgB1LxC,cAAc;EnBi6DlB;EmB99DF;IAiEM,sBAAmB;IAAnB,mBAAmB;IACnB,qBAAuB;IAAvB,uBAAuB;EnBg6D3B;EmBl+DF;IAqEM,gBAAgB;EnBg6DpB;AACF;;AuBzuEA;EACE,qBAAqB;EAErB,gBpB0R+B;EoBzR/B,cpBMgB;EoBLhB,kBAAkB;EAElB,sBAAsB;EACtB,eAAsD;EACtD,yBAAiB;EAAjB,sBAAiB;EAAjB,qBAAiB;EAAjB,iBAAiB;EACjB,6BAA6B;EAC7B,6BAA2C;ECuF3C,yBrB8RkC;ECvQ9B,eAtCY;EoBiBhB,gBrB8L+B;EOnS7B,sBP6OgC;EiB5O9B,qIjB6b6I;AH6zDnJ;;AoBrvEI;EGLJ;IHMM,gBAAgB;EpByvEpB;AACF;;AK1vEE;EkBUE,cpBNc;EoBOd,qBAAqB;AvBovEzB;;AuBrwEA;EAsBI,UAAU;EACV,gDpBOa;AH4uEjB;;AuB1wEA;EA6BI,apBoZ6B;AH61DjC;;AuBluEA;;EAEE,oBAAoB;AvBquEtB;;AuB5tEE;ECvDA,WrBCa;EmBDX,yBnB8Ba;EqB5Bf,qBrB4Be;AH2vEjB;;AKnxEE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxBgyE7H;;AwBpxEE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,gDAAiF;AxBkxEvF;;AwB7wEE;EAEE,WrB1BW;EqB2BX,yBrBEa;EqBDb,qBrBCa;AH8wEjB;;AwBxwEE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxBozEnN;;AwBrwEI;;EAKI,gDAAiF;AxBqwEzF;;AuBjwEE;ECvDA,WrBCa;EmBDX,yBnBOc;EqBLhB,qBrBKgB;AHuzElB;;AKxzEE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxBq0E7H;;AwBzzEE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,iDAAiF;AxBuzEvF;;AwBlzEE;EAEE,WrB1BW;EqB2BX,yBrBrBc;EqBsBd,qBrBtBc;AH00ElB;;AwB7yEE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxBy1EnN;;AwB1yEI;;EAKI,iDAAiF;AxB0yEzF;;AuBtyEE;ECvDA,WrBCa;EmBDX,yBnBqCa;EqBnCf,qBrBmCe;AH8zEjB;;AK71EE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxB02E7H;;AwB91EE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,+CAAiF;AxB41EvF;;AwBv1EE;EAEE,WrB1BW;EqB2BX,yBrBSa;EqBRb,qBrBQa;AHi1EjB;;AwBl1EE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxB83EnN;;AwB/0EI;;EAKI,+CAAiF;AxB+0EzF;;AuB30EE;ECvDA,WrBCa;EmBDX,yBnBuCa;EqBrCf,qBrBqCe;AHi2EjB;;AKl4EE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxB+4E7H;;AwBn4EE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,gDAAiF;AxBi4EvF;;AwB53EE;EAEE,WrB1BW;EqB2BX,yBrBWa;EqBVb,qBrBUa;AHo3EjB;;AwBv3EE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxBm6EnN;;AwBp3EI;;EAKI,gDAAiF;AxBo3EzF;;AuBh3EE;ECvDA,crBUgB;EmBVd,yBnBoCa;EqBlCf,qBrBkCe;AHy4EjB;;AKv6EE;EmBAE,crBIc;EmBVd,yBEDoF;EASpF,qBATyH;AxBo7E7H;;AwBx6EE;EAEE,crBHc;EmBVd,yBEDoF;EAgBpF,qBAhByH;EAqBvH,gDAAiF;AxBs6EvF;;AwBj6EE;EAEE,crBjBc;EqBkBd,yBrBQa;EqBPb,qBrBOa;AH45EjB;;AwB55EE;;EAGE,crB7Bc;EqB8Bd,yBAzCuK;EA6CvK,qBA7C+M;AxBw8EnN;;AwBz5EI;;EAKI,gDAAiF;AxBy5EzF;;AuBr5EE;ECvDA,WrBCa;EmBDX,yBnBkCa;EqBhCf,qBrBgCe;AHg7EjB;;AK58EE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxBy9E7H;;AwB78EE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,+CAAiF;AxB28EvF;;AwBt8EE;EAEE,WrB1BW;EqB2BX,yBrBMa;EqBLb,qBrBKa;AHm8EjB;;AwBj8EE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxB6+EnN;;AwB97EI;;EAKI,+CAAiF;AxB87EzF;;AuB17EE;ECvDA,crBUgB;EmBVd,yBnBEc;EqBAhB,qBrBAgB;AHq/ElB;;AKj/EE;EmBAE,crBIc;EmBVd,yBEDoF;EASpF,qBATyH;AxB8/E7H;;AwBl/EE;EAEE,crBHc;EmBVd,yBEDoF;EAgBpF,qBAhByH;EAqBvH,iDAAiF;AxBg/EvF;;AwB3+EE;EAEE,crBjBc;EqBkBd,yBrB1Bc;EqB2Bd,qBrB3Bc;AHwgFlB;;AwBt+EE;;EAGE,crB7Bc;EqB8Bd,yBAzCuK;EA6CvK,qBA7C+M;AxBkhFnN;;AwBn+EI;;EAKI,iDAAiF;AxBm+EzF;;AuB/9EE;ECvDA,WrBCa;EmBDX,yBnBSc;EqBPhB,qBrBOgB;AHmhFlB;;AKthFE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxBmiF7H;;AwBvhFE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,8CAAiF;AxBqhFvF;;AwBhhFE;EAEE,WrB1BW;EqB2BX,yBrBnBc;EqBoBd,qBrBpBc;AHsiFlB;;AwB3gFE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxBujFnN;;AwBxgFI;;EAKI,8CAAiF;AxBwgFzF;;AuB9/EE;ECHA,crB5Be;EqB6Bf,qBrB7Be;AHkiFjB;;AK1jFE;EmBwDE,WrB7DW;EqB8DX,yBrBjCa;EqBkCb,qBrBlCa;AHwiFjB;;AwBngFE;EAEE,+CrBvCa;AH4iFjB;;AwBlgFE;EAEE,crB5Ca;EqB6Cb,6BAA6B;AxBogFjC;;AwBjgFE;;EAGE,WrBhFW;EqBiFX,yBrBpDa;EqBqDb,qBrBrDa;AHwjFjB;;AwBjgFI;;EAKI,+CrB5DS;AH6jFjB;;AuB9hFE;ECHA,crBnDgB;EqBoDhB,qBrBpDgB;AHylFlB;;AK1lFE;EmBwDE,WrB7DW;EqB8DX,yBrBxDc;EqByDd,qBrBzDc;AH+lFlB;;AwBniFE;EAEE,iDrB9Dc;AHmmFlB;;AwBliFE;EAEE,crBnEc;EqBoEd,6BAA6B;AxBoiFjC;;AwBjiFE;;EAGE,WrBhFW;EqBiFX,yBrB3Ec;EqB4Ed,qBrB5Ec;AH+mFlB;;AwBjiFI;;EAKI,iDrBnFU;AHonFlB;;AuB9jFE;ECHA,crBrBe;EqBsBf,qBrBtBe;AH2lFjB;;AK1nFE;EmBwDE,WrB7DW;EqB8DX,yBrB1Ba;EqB2Bb,qBrB3Ba;AHimFjB;;AwBnkFE;EAEE,+CrBhCa;AHqmFjB;;AwBlkFE;EAEE,crBrCa;EqBsCb,6BAA6B;AxBokFjC;;AwBjkFE;;EAGE,WrBhFW;EqBiFX,yBrB7Ca;EqB8Cb,qBrB9Ca;AHinFjB;;AwBjkFI;;EAKI,+CrBrDS;AHsnFjB;;AuB9lFE;ECHA,crBnBe;EqBoBf,qBrBpBe;AHynFjB;;AK1pFE;EmBwDE,WrB7DW;EqB8DX,yBrBxBa;EqByBb,qBrBzBa;AH+nFjB;;AwBnmFE;EAEE,gDrB9Ba;AHmoFjB;;AwBlmFE;EAEE,crBnCa;EqBoCb,6BAA6B;AxBomFjC;;AwBjmFE;;EAGE,WrBhFW;EqBiFX,yBrB3Ca;EqB4Cb,qBrB5Ca;AH+oFjB;;AwBjmFI;;EAKI,gDrBnDS;AHopFjB;;AuB9nFE;ECHA,crBtBe;EqBuBf,qBrBvBe;AH4pFjB;;AK1rFE;EmBwDE,crBpDc;EqBqDd,yBrB3Ba;EqB4Bb,qBrB5Ba;AHkqFjB;;AwBnoFE;EAEE,+CrBjCa;AHsqFjB;;AwBloFE;EAEE,crBtCa;EqBuCb,6BAA6B;AxBooFjC;;AwBjoFE;;EAGE,crBvEc;EqBwEd,yBrB9Ca;EqB+Cb,qBrB/Ca;AHkrFjB;;AwBjoFI;;EAKI,+CrBtDS;AHurFjB;;AuB9pFE;ECHA,crBxBe;EqByBf,qBrBzBe;AH8rFjB;;AK1tFE;EmBwDE,WrB7DW;EqB8DX,yBrB7Ba;EqB8Bb,qBrB9Ba;AHosFjB;;AwBnqFE;EAEE,+CrBnCa;AHwsFjB;;AwBlqFE;EAEE,crBxCa;EqByCb,6BAA6B;AxBoqFjC;;AwBjqFE;;EAGE,WrBhFW;EqBiFX,yBrBhDa;EqBiDb,qBrBjDa;AHotFjB;;AwBjqFI;;EAKI,+CrBxDS;AHytFjB;;AuB9rFE;ECHA,crBxDgB;EqByDhB,qBrBzDgB;AH8vFlB;;AK1vFE;EmBwDE,crBpDc;EqBqDd,yBrB7Dc;EqB8Dd,qBrB9Dc;AHowFlB;;AwBnsFE;EAEE,iDrBnEc;AHwwFlB;;AwBlsFE;EAEE,crBxEc;EqByEd,6BAA6B;AxBosFjC;;AwBjsFE;;EAGE,crBvEc;EqBwEd,yBrBhFc;EqBiFd,qBrBjFc;AHoxFlB;;AwBjsFI;;EAKI,iDrBxFU;AHyxFlB;;AuB9tFE;ECHA,crBjDgB;EqBkDhB,qBrBlDgB;AHuxFlB;;AK1xFE;EmBwDE,WrB7DW;EqB8DX,yBrBtDc;EqBuDd,qBrBvDc;AH6xFlB;;AwBnuFE;EAEE,8CrB5Dc;AHiyFlB;;AwBluFE;EAEE,crBjEc;EqBkEd,6BAA6B;AxBouFjC;;AwBjuFE;;EAGE,WrBhFW;EqBiFX,yBrBzEc;EqB0Ed,qBrB1Ec;AH6yFlB;;AwBjuFI;;EAKI,8CrBjFU;AHkzFlB;;AuBnvFA;EACE,gBpBoN+B;EoBnN/B,cpB5Ce;EoB6Cf,qBpBkG4C;AHopF9C;;AK3zFE;EkBwEE,cpBgG8D;EoB/F9D,0BpBgG+C;AHupFnD;;AuB9vFA;EAYI,0BpB2F+C;EoB1F/C,gBAAgB;AvBsvFpB;;AuBnwFA;EAkBI,cpBnFc;EoBoFd,oBAAoB;AvBqvFxB;;AuB1uFA;ECJE,oBrB6SgC;ECtR5B,kBAtCY;EoBiBhB,gBrBkI+B;EOvO7B,qBP8O+B;AH0mFnC;;AuB7uFA;ECRE,uBrBwSiC;ECjR7B,mBAtCY;EoBiBhB,gBrBmI+B;EOxO7B,qBP+O+B;AHgnFnC;;AuB3uFA;EACE,cAAc;EACd,WAAW;AvB8uFb;;AuBhvFA;EAMI,kBpB6T+B;AHi7EnC;;AuBzuFA;;;EAII,WAAW;AvB2uFf;;AyBn3FA;ELMM,gCjB8P2C;AHmnFjD;;AoB52FI;EKXJ;ILYM,gBAAgB;EpBg3FpB;AACF;;AyB73FA;EAII,UAAU;AzB63Fd;;AyBz3FA;EAEI,aAAa;AzB23FjB;;AyBv3FA;EACE,kBAAkB;EAClB,SAAS;EACT,gBAAgB;ELXZ,6BjB+PwC;AHuoF9C;;AoBj4FI;EKGJ;ILFM,gBAAgB;EpBq4FpB;AACF;;A0Bj5FA;;;;EAIE,kBAAkB;A1Bo5FpB;;A0Bj5FA;EACE,mBAAmB;A1Bo5FrB;;A2Bh4FI;EACE,qBAAqB;EACrB,oBxBkO0C;EwBjO1C,uBxBgO0C;EwB/N1C,WAAW;EAhCf,uBAA8B;EAC9B,qCAA4C;EAC5C,gBAAgB;EAChB,oCAA2C;A3Bo6F7C;;A2B/2FI;EACE,cAAc;A3Bk3FpB;;A0B55FA;EACE,kBAAkB;EAClB,SAAS;EACT,OAAO;EACP,avB4pBsC;EuB3pBtC,aAAa;EACb,WAAW;EACX,gBvBkuBuC;EuBjuBvC,iBAA8B;EAC9B,oBAA4B;EtBsGxB,eAtCY;EsB9DhB,cvBXgB;EuBYhB,gBAAgB;EAChB,gBAAgB;EAChB,sBvBvBa;EuBwBb,4BAA4B;EAC5B,qCvBfa;EOZX,sBP6OgC;AH8sFpC;;A0Bv5FI;EACE,WAAW;EACX,OAAO;A1B05Fb;;A0Bv5FI;EACE,QAAQ;EACR,UAAU;A1B05FhB;;Ac94FI;EYnBA;IACE,WAAW;IACX,OAAO;E1Bq6FX;E0Bl6FE;IACE,QAAQ;IACR,UAAU;E1Bo6Fd;AACF;;Acz5FI;EYnBA;IACE,WAAW;IACX,OAAO;E1Bg7FX;E0B76FE;IACE,QAAQ;IACR,UAAU;E1B+6Fd;AACF;;Acp6FI;EYnBA;IACE,WAAW;IACX,OAAO;E1B27FX;E0Bx7FE;IACE,QAAQ;IACR,UAAU;E1B07Fd;AACF;;Ac/6FI;EYnBA;IACE,WAAW;IACX,OAAO;E1Bs8FX;E0Bn8FE;IACE,QAAQ;IACR,UAAU;E1Bq8Fd;AACF;;A0B/7FA;EAEI,SAAS;EACT,YAAY;EACZ,aAAa;EACb,uBvB+rBuC;AHkwE3C;;A2Bh+FI;EACE,qBAAqB;EACrB,oBxBkO0C;EwBjO1C,uBxBgO0C;EwB/N1C,WAAW;EAzBf,aAAa;EACb,qCAA4C;EAC5C,0BAAiC;EACjC,oCAA2C;A3B6/F7C;;A2B/8FI;EACE,cAAc;A3Bk9FpB;;A0Bx8FA;EAEI,MAAM;EACN,WAAW;EACX,UAAU;EACV,aAAa;EACb,qBvBirBuC;AHyxE3C;;A2Bv/FI;EACE,qBAAqB;EACrB,oBxBkO0C;EwBjO1C,uBxBgO0C;EwB/N1C,WAAW;EAlBf,mCAA0C;EAC1C,eAAe;EACf,sCAA6C;EAC7C,wBAA+B;A3B6gGjC;;A2Bt+FI;EACE,cAAc;A3By+FpB;;A2BtgGI;EDmDE,iBAAiB;A1Bu9FvB;;A0Bl9FA;EAEI,MAAM;EACN,WAAW;EACX,UAAU;EACV,aAAa;EACb,sBvBgqBuC;AHozE3C;;A2BlhGI;EACE,qBAAqB;EACrB,oBxBkO0C;EwBjO1C,uBxBgO0C;EwB/N1C,WAAW;A3BqhGjB;;A2BzhGI;EAgBI,aAAa;A3B6gGrB;;A2B1gGM;EACE,qBAAqB;EACrB,qBxB+MwC;EwB9MxC,uBxB6MwC;EwB5MxC,WAAW;EA9BjB,mCAA0C;EAC1C,yBAAgC;EAChC,sCAA6C;A3B4iG/C;;A2B3gGI;EACE,cAAc;A3B8gGpB;;A2BxhGM;EDiDA,iBAAiB;A1B2+FvB;;A0Bp+FA;EAKI,WAAW;EACX,YAAY;A1Bm+FhB;;A0B99FA;EE9GE,SAAS;EACT,gBAAmB;EACnB,gBAAgB;EAChB,6BzBCgB;AH+kGlB;;A0B99FA;EACE,cAAc;EACd,WAAW;EACX,uBvBopBwC;EuBnpBxC,WAAW;EACX,gBvBoK+B;EuBnK/B,cvBhHgB;EuBiHhB,mBAAmB;EACnB,mBAAmB;EACnB,6BAA6B;EAC7B,SAAS;A1Bi+FX;;AKrlGE;EqBmIE,cvBqnBqD;EuBpnBrD,qBAAqB;EJ9IrB,yBnBEc;AHmmGlB;;A0Bj/FA;EAgCI,WvBnJW;EuBoJX,qBAAqB;EJrJrB,yBnB8Ba;AH6kGjB;;A0Bv/FA;EAuCI,cvBpJc;EuBqJd,oBAAoB;EACpB,6BAA6B;A1Bo9FjC;;A0B58FA;EACE,cAAc;A1B+8FhB;;A0B38FA;EACE,cAAc;EACd,sBvB+lBwC;EuB9lBxC,gBAAgB;EtBpDZ,mBAtCY;EsB4FhB,cvBxKgB;EuByKhB,mBAAmB;A1B88FrB;;A0B18FA;EACE,cAAc;EACd,uBvBqlBwC;EuBplBxC,cvB7KgB;AH0nGlB;;A6BvoGA;;EAEE,kBAAkB;EAClB,2BAAoB;EAApB,oBAAoB;EACpB,sBAAsB;A7B0oGxB;;A6B9oGA;;EAOI,kBAAkB;EAClB,kBAAc;EAAd,cAAc;A7B4oGlB;;AK3oGE;;EwBII,UAAU;A7B4oGhB;;A6BzpGA;;;;EAkBM,UAAU;A7B8oGhB;;A6BxoGA;EACE,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,oBAA2B;EAA3B,2BAA2B;A7B2oG7B;;A6B9oGA;EAMI,WAAW;A7B4oGf;;A6BxoGA;;EAII,iB1BsM6B;AHm8FjC;;A6B7oGA;;EnBhBI,0BmB0B8B;EnBzB9B,6BmByB8B;A7ByoGlC;;A6BnpGA;;EnBFI,yBmBiB6B;EnBhB7B,4BmBgB6B;A7B0oGjC;;A6B1nGA;EACE,wBAAmC;EACnC,uBAAkC;A7B6nGpC;;A6B/nGA;;;EAOI,cAAc;A7B8nGlB;;A6B3nGE;EACE,eAAe;A7B8nGnB;;A6B1nGA;EACE,uBAAsC;EACtC,sBAAqC;A7B6nGvC;;A6B1nGA;EACE,sBAAsC;EACtC,qBAAqC;A7B6nGvC;;A6BzmGA;EACE,0BAAsB;EAAtB,sBAAsB;EACtB,qBAAuB;EAAvB,uBAAuB;EACvB,qBAAuB;EAAvB,uBAAuB;A7B4mGzB;;A6B/mGA;;EAOI,WAAW;A7B6mGf;;A6BpnGA;;EAYI,gB1BqH6B;AHw/FjC;;A6BznGA;;EnBlFI,6BmBoG+B;EnBnG/B,4BmBmG+B;A7B6mGnC;;A6B/nGA;;EnBhGI,yBmBuH4B;EnBtH5B,0BmBsH4B;A7B8mGhC;;A6B7lGA;;EAGI,gBAAgB;A7B+lGpB;;A6BlmGA;;;;EAOM,kBAAkB;EAClB,sBAAsB;EACtB,oBAAoB;A7BkmG1B;;A8B3vGA;EACE,kBAAkB;EAClB,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,uBAAoB;EAApB,oBAAoB;EACpB,WAAW;A9B8vGb;;A8BnwGA;;;;EAWI,kBAAkB;EAClB,gBAAY;EAAZ,YAAY;EACZ,YAAY;EACZ,gBAAgB;A9B+vGpB;;A8B7wGA;;;;;;;;;;;;EAmBM,iB3BsN2B;AHmjGjC;;A8B5xGA;;;EA2BI,UAAU;A9BuwGd;;A8BlyGA;EAgCI,UAAU;A9BswGd;;A8BtyGA;;EpBeI,0BoBsBmD;EpBrBnD,6BoBqBmD;A9BuwGvD;;A8B5yGA;;EpB6BI,yBoBSmD;EpBRnD,4BoBQmD;A9B4wGvD;;A8BlzGA;EA4CI,oBAAa;EAAb,aAAa;EACb,sBAAmB;EAAnB,mBAAmB;A9B0wGvB;;A8BvzGA;;EpBeI,0BoBiC6E;EpBhC7E,6BoBgC6E;A9B6wGjF;;A8B7zGA;EpB6BI,yBoBoBsE;EpBnBtE,4BoBmBsE;A9BixG1E;;A8BtwGA;;EAEE,oBAAa;EAAb,aAAa;A9BywGf;;A8B3wGA;;EAQI,kBAAkB;EAClB,UAAU;A9BwwGd;;A8BjxGA;;EAYM,UAAU;A9B0wGhB;;A8BtxGA;;;;;;;;EAoBI,iB3ByJ6B;AHonGjC;;A8BzwGA;EAAuB,kB3BqJU;AHwnGjC;;A8B5wGA;EAAsB,iB3BoJW;AH4nGjC;;A8BxwGA;EACE,oBAAa;EAAb,aAAa;EACb,sBAAmB;EAAnB,mBAAmB;EACnB,yB3BgSkC;E2B/RlC,gBAAgB;E1BwBZ,eAtCY;E0BgBhB,gB3B0L+B;E2BzL/B,gB3B8L+B;E2B7L/B,c3B7FgB;E2B8FhB,kBAAkB;EAClB,mBAAmB;EACnB,yB3BrGgB;E2BsGhB,yB3BpGgB;EONd,sBP6OgC;AHyoGpC;;A8BxxGA;;EAkBI,aAAa;A9B2wGjB;;A8BjwGA;;EAEE,gCZjB8D;AlBqxGhE;;A8BjwGA;;;;;;EAME,oB3B2QgC;ECtR5B,kBAtCY;E0BmDhB,gB3BgG+B;EOvO7B,qBP8O+B;AH8pGnC;;A8BjwGA;;EAEE,kCZlC8D;AlBsyGhE;;A8BjwGA;;;;;;EAME,uB3BqPiC;ECjR7B,mBAtCY;E0BoEhB,gB3BgF+B;EOxO7B,qBP+O+B;AH8qGnC;;A8BjwGA;;EAEE,sBAA0E;A9BowG5E;;A8BzvGA;;;;;;EpBzJI,0BoB+J4B;EpB9J5B,6BoB8J4B;A9B6vGhC;;A8B1vGA;;;;;;EpBpJI,yBoB0J2B;EpBzJ3B,4BoByJ2B;A9B8vG/B;;A+Bl7GA;EACE,kBAAkB;EAClB,cAAc;EACd,kBAA+C;EAC/C,oBAAqE;A/Bq7GvE;;A+Bl7GA;EACE,2BAAoB;EAApB,oBAAoB;EACpB,kB5B6f0C;AHw7F5C;;A+Bl7GA;EACE,kBAAkB;EAClB,OAAO;EACP,WAAW;EACX,W5Byf0C;E4Bxf1C,eAAkF;EAClF,UAAU;A/Bq7GZ;;A+B37GA;EASI,W5BvBW;E4BwBX,qB5BKa;EmB9Bb,yBnB8Ba;AHk7GjB;;A+Bj8GA;EAoBM,gD5BLW;AHs7GjB;;A+Br8GA;EAyBI,qB5B0bsE;AHs/F1E;;A+Bz8GA;EA6BI,W5B3CW;E4B4CX,yB5Bsf8E;E4Brf9E,qB5Bqf8E;AH27FlF;;A+B/8GA;EAuCM,c5B/CY;AH29GlB;;A+Bn9GA;EA0CQ,yB5BtDU;AHm+GlB;;A+Bn6GA;EACE,kBAAkB;EAClB,gBAAgB;EAEhB,mBAAmB;A/Bq6GrB;;A+Bz6GA;EASI,kBAAkB;EAClB,YAA+E;EAC/E,aAA+D;EAC/D,cAAc;EACd,W5B4bwC;E4B3bxC,Y5B2bwC;E4B1bxC,oBAAoB;EACpB,WAAW;EACX,sB5BnFW;E4BoFX,yB5BoJ6B;AHgxGjC;;A+Bt7GA;EAwBI,kBAAkB;EAClB,YAA+E;EAC/E,aAA+D;EAC/D,cAAc;EACd,W5B6awC;E4B5axC,Y5B4awC;E4B3axC,WAAW;EACX,mCAAgE;A/Bk6GpE;;A+Bz5GA;ErB5GI,sBP6OgC;AH4xGpC;;A+B75GA;EAOM,kOb5EqI;AlBs+G3I;;A+Bj6GA;EAaM,qB5B1FW;EmB9Bb,yBnB8Ba;AHm/GjB;;A+Bt6GA;EAkBM,+KbvFqI;AlB++G3I;;A+B16GA;EAwBM,wC5BrGW;AH2/GjB;;A+B96GA;EA2BM,wC5BxGW;AH+/GjB;;A+B94GA;EAGI,kB5B8Z+C;AHi/FnD;;A+Bl5GA;EAQM,8KbjHqI;AlB+/G3I;;A+Bt5GA;EAcM,wC5B/HW;AH2gHjB;;A+Bl4GA;EACE,qBAA2D;A/Bq4G7D;;A+Bt4GA;EAKM,cAAqD;EACrD,c5BsY+E;E4BrY/E,mBAAmB;EAEnB,qB5BoY4E;AHggGlF;;A+B74GA;EAaM,wBb1E0D;Ea2E1D,0Bb3E0D;Ea4E1D,uBbxD0D;EayD1D,wBbzD0D;Ea0D1D,yB5BlLY;E4BoLZ,qB5B0X4E;EiBpjB5E,iJjBsgB+H;EiBtgB/H,yIjBsgB+H;EiBtgB/H,8KjBsgB+H;AHwjGrI;;AoBzjHI;EWkKJ;IXjKM,gBAAgB;EpB6jHpB;AACF;;A+B75GA;EA0BM,sB5BhMS;E4BiMT,sCAA4E;EAA5E,8BAA4E;A/Bu4GlF;;A+Bl6GA;EAiCM,wC5B1KW;AH+iHjB;;A+Bz3GA;EACE,qBAAqB;EACrB,WAAW;EACX,mCb7G8D;Ea8G9D,0C5BwKkC;ECvQ9B,eAtCY;E2BwIhB,gB5BkE+B;E4BjE/B,gB5BsE+B;E4BrE/B,c5BrNgB;E4BsNhB,sBAAsB;EACtB,uO5BuW+I;E4BtW/I,yB5B3NgB;EONd,sBP6OgC;E4BTlC,wBAAgB;EAAhB,qBAAgB;EAAhB,gBAAgB;A/B03GlB;;A+Bz4GA;EAkBI,qB5B4PsE;E4B3PtE,UAAU;EAIR,gD5B7MW;AHqkHjB;;A+B/4GA;EAgCM,c5B5OY;E4B6OZ,sB5BpPS;AHumHf;;A+Bp5GA;EAuCI,YAAY;EACZ,sB5BoIgC;E4BnIhC,sBAAsB;A/Bi3G1B;;A+B15GA;EA6CI,c5B1Pc;E4B2Pd,yB5B/Pc;AHgnHlB;;A+B/5GA;EAmDI,aAAa;A/Bg3GjB;;A+Bn6GA;EAwDI,kBAAkB;EAClB,0B5BrQc;AHonHlB;;A+B32GA;EACE,kCbxK8D;EayK9D,oB5BsHkC;E4BrHlC,uB5BqHkC;E4BpHlC,oB5BqHiC;ECjR7B,mBAtCY;AJijHlB;;A+B32GA;EACE,gCbhL8D;EaiL9D,mB5BmHiC;E4BlHjC,sB5BkHiC;E4BjHjC,kB5BkHgC;ECtR5B,kBAtCY;AJyjHlB;;A+Bt2GA;EACE,kBAAkB;EAClB,qBAAqB;EACrB,WAAW;EACX,mCbhM8D;EaiM9D,gBAAgB;A/By2GlB;;A+Bt2GA;EACE,kBAAkB;EAClB,UAAU;EACV,WAAW;EACX,mCbxM8D;EayM9D,SAAS;EACT,UAAU;A/By2GZ;;A+B/2GA;EASI,qB5B2KsE;E4B1KtE,gD5B1Ra;AHooHjB;;A+Bp3GA;;EAgBI,yB5B3Tc;AHoqHlB;;A+Bz3GA;EAqBM,iB5BkUQ;AHsiGd;;A+B73GA;EA0BI,0BAA0B;A/Bu2G9B;;A+Bn2GA;EACE,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,OAAO;EACP,UAAU;EACV,mCbxO8D;EayO9D,yB5B6CkC;E4B3ClC,gB5BxD+B;E4ByD/B,gB5BpD+B;E4BqD/B,c5B/UgB;E4BgVhB,sB5BvVa;E4BwVb,yB5BpVgB;EONd,sBP6OgC;AHm9GpC;;A+Bn3GA;EAkBI,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,SAAS;EACT,UAAU;EACV,cAAc;EACd,6Bb1P4D;Ea2P5D,yB5B2BgC;E4B1BhC,gB5BpE6B;E4BqE7B,c5B/Vc;E4BgWd,iBAAiB;ETxWjB,yBnBGc;E4BuWd,oBAAoB;ErB3WpB,kCqB4WgF;A/Bq2GpF;;A+B31GA;EACE,WAAW;EACX,cbhR2B;EaiR3B,UAAU;EACV,6BAA6B;EAC7B,wBAAgB;EAAhB,qBAAgB;EAAhB,gBAAgB;A/B81GlB;;A+Bn2GA;EAQI,aAAa;A/B+1GjB;;A+Bv2GA;EAY8B,gE5BnWb;AHksHjB;;A+B32GA;EAa8B,gE5BpWb;AHssHjB;;A+B/2GA;EAc8B,gE5BrWb;AH0sHjB;;A+Bn3GA;EAkBI,SAAS;A/Bq2Gb;;A+Bv3GA;EAsBI,W5B2N6C;E4B1N7C,Y5B0N6C;E4BzN7C,oBAAyE;ET7YzE,yBnB8Ba;E4BiXb,S5B0N0C;EO1mB1C,mBP2mB6C;EiB1mB3C,oHjBsgB+H;EiBtgB/H,4GjBsgB+H;E4BnHjI,wBAAgB;EAAhB,gBAAgB;A/Bo2GpB;;AoBlvHI;EWgXJ;IX/WM,wBAAgB;IAAhB,gBAAgB;EpBsvHpB;AACF;;A+Bx4GA;ETrXI,yBnB8mB2E;AHmpG/E;;A+B54GA;EAsCI,W5BoMoC;E4BnMpC,c5BoMqC;E4BnMrC,kBAAkB;EAClB,e5BmMuC;E4BlMvC,yB5B3Zc;E4B4Zd,yBAAyB;ErBjazB,mBPomBoC;AHwqGxC;;A+Bt5GA;EAiDI,W5BgM6C;E4B/L7C,Y5B+L6C;EmBtmB7C,yBnB8Ba;E4B2Yb,S5BgM0C;EO1mB1C,mBP2mB6C;EiB1mB3C,iHjBsgB+H;EiBtgB/H,4GjBsgB+H;E4BzFjI,qBAAgB;EAAhB,gBAAgB;A/Bw2GpB;;AoBhxHI;EWgXJ;IX/WM,qBAAgB;IAAhB,gBAAgB;EpBoxHpB;AACF;;A+Bt6GA;ETrXI,yBnB8mB2E;AHirG/E;;A+B16GA;EAgEI,W5B0KoC;E4BzKpC,c5B0KqC;E4BzKrC,kBAAkB;EAClB,e5ByKuC;E4BxKvC,yB5Brbc;E4Bsbd,yBAAyB;ErB3bzB,mBPomBoC;AHssGxC;;A+Bp7GA;EA2EI,W5BsK6C;E4BrK7C,Y5BqK6C;E4BpK7C,aAAa;EACb,oB5B9D+B;E4B+D/B,mB5B/D+B;EmBrY/B,yBnB8Ba;E4Bwab,S5BmK0C;EO1mB1C,mBP2mB6C;EiB1mB3C,gHjBsgB+H;EiBtgB/H,4GjBsgB+H;E4B5DjI,gBAAgB;A/B42GpB;;AoBjzHI;EWgXJ;IX/WM,oBAAgB;IAAhB,gBAAgB;EpBqzHpB;AACF;;A+Bv8GA;ETrXI,yBnB8mB2E;AHktG/E;;A+B38GA;EA6FI,W5B6IoC;E4B5IpC,c5B6IqC;E4B5IrC,kBAAkB;EAClB,e5B4IuC;E4B3IvC,6BAA6B;EAC7B,yBAAyB;EACzB,oBAA4C;A/Bk3GhD;;A+Br9GA;EAwGI,yB5Bzdc;EOLd,mBPomBoC;AH4uGxC;;A+B19GA;EA6GI,kBAAkB;EAClB,yB5B/dc;EOLd,mBPomBoC;AHkvGxC;;A+Bh+GA;EAoHM,yB5BneY;AHm1HlB;;A+Bp+GA;EAwHM,eAAe;A/Bg3GrB;;A+Bx+GA;EA4HM,yB5B3eY;AH21HlB;;A+B5+GA;EAgIM,eAAe;A/Bg3GrB;;A+Bh/GA;EAoIM,yB5BnfY;AHm2HlB;;A+B32GA;;;EX9fM,4GjBsgB+H;AHy2GrI;;AoB12HI;EWyfJ;;;IXxfM,gBAAgB;EpBg3HpB;AACF;;AgCx3HA;EACE,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,eAAe;EACf,gBAAgB;EAChB,gBAAgB;AhC23HlB;;AgCx3HA;EACE,cAAc;EACd,oB7B6qBsC;AH8sGxC;;AK13HE;E2BEE,qBAAqB;AhC43HzB;;AgCj4HA;EAUI,c7BVc;E6BWd,oBAAoB;EACpB,eAAe;AhC23HnB;;AgCn3HA;EACE,gC7BxBgB;AH84HlB;;AgCv3HA;EAII,mB7B0M6B;AH6qHjC;;AgC33HA;EAQI,6BAAgD;EtB3BhD,+BPoOgC;EOnOhC,gCPmOgC;AHgrHpC;;AKl5HE;E2B6BI,qC7BnCY;AH45HlB;;AgCr4HA;EAgBM,c7BpCY;E6BqCZ,6BAA6B;EAC7B,yBAAyB;AhCy3H/B;;AgC34HA;;EAwBI,c7B3Cc;E6B4Cd,sB7BnDW;E6BoDX,kC7BpDW;AH46Hf;;AgCl5HA;EA+BI,gB7B+K6B;EOjO7B,yBsBoD4B;EtBnD5B,0BsBmD4B;AhCu3HhC;;AgC92HA;EtBtEI,sBP6OgC;AH2sHpC;;AgCl3HA;;EAOI,W7B3EW;E6B4EX,yB7B/Ca;AH+5HjB;;AgCv2HA;EAEI,kBAAc;EAAd,cAAc;EACd,kBAAkB;AhCy2HtB;;AgCr2HA;EAEI,0BAAa;EAAb,aAAa;EACb,oBAAY;EAAZ,YAAY;EACZ,kBAAkB;AhCu2HtB;;AgC91HA;EAEI,aAAa;AhCg2HjB;;AgCl2HA;EAKI,cAAc;AhCi2HlB;;AiCr8HA;EACE,kBAAkB;EAClB,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,sBAAmB;EAAnB,mBAAmB;EACnB,sBAA8B;EAA9B,8BAA8B;EAC9B,oB9BiHW;AHu1Hb;;AiC98HA;;EAWI,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,sBAAmB;EAAnB,mBAAmB;EACnB,sBAA8B;EAA9B,8BAA8B;AjCw8HlC;;AiCp7HA;EACE,qBAAqB;EACrB,sB9BqqB+E;E8BpqB/E,yB9BoqB+E;E8BnqB/E,kB9BiFW;ECTP,kBAtCY;E6BhChB,oBAAoB;EACpB,mBAAmB;AjCu7HrB;;AKj+HE;E4B6CE,qBAAqB;AjCw7HzB;;AiC/6HA;EACE,oBAAa;EAAb,aAAa;EACb,0BAAsB;EAAtB,sBAAsB;EACtB,eAAe;EACf,gBAAgB;EAChB,gBAAgB;AjCk7HlB;;AiCv7HA;EAQI,gBAAgB;EAChB,eAAe;AjCm7HnB;;AiC57HA;EAaI,gBAAgB;EAChB,WAAW;AjCm7Hf;;AiC16HA;EACE,qBAAqB;EACrB,mB9B4lBuC;E8B3lBvC,sB9B2lBuC;AHk1GzC;;AiCj6HA;EACE,6BAAgB;EAAhB,gBAAgB;EAChB,oBAAY;EAAZ,YAAY;EAGZ,sBAAmB;EAAnB,mBAAmB;AjCk6HrB;;AiC95HA;EACE,wB9BumBwC;EC9lBpC,kBAtCY;E6B+BhB,cAAc;EACd,6BAA6B;EAC7B,6BAAuC;EvBrHrC,sBP6OgC;AH0yHpC;;AK5gIE;E4B8GE,qBAAqB;AjCk6HzB;;AiC55HA;EACE,qBAAqB;EACrB,YAAY;EACZ,aAAa;EACb,sBAAsB;EACtB,WAAW;EACX,mCAAmC;EACnC,0BAA0B;AjC+5H5B;;Acj+HI;EmB4EC;;IAGK,gBAAgB;IAChB,eAAe;EjCw5HvB;AACF;;Act/HI;EmByFA;IAoBI,yBAAqB;IAArB,qBAAqB;IACrB,oBAA2B;IAA3B,2BAA2B;EjC84HjC;EiCn6HG;IAwBK,uBAAmB;IAAnB,mBAAmB;EjC84H3B;EiCt6HG;IA2BO,kBAAkB;EjC84H5B;EiCz6HG;IA+BO,qB9BgiB6B;I8B/hB7B,oB9B+hB6B;EH82GvC;EiC76HG;;IAsCK,qBAAiB;IAAjB,iBAAiB;EjC24HzB;EiCj7HG;IAqDK,+BAAwB;IAAxB,wBAAwB;IAGxB,6BAAgB;IAAhB,gBAAgB;EjC63HxB;EiCr7HG;IA4DK,aAAa;EjC43HrB;AACF;;AcrgII;EmB4EC;;IAGK,gBAAgB;IAChB,eAAe;EjC47HvB;AACF;;Ac1hII;EmByFA;IAoBI,yBAAqB;IAArB,qBAAqB;IACrB,oBAA2B;IAA3B,2BAA2B;EjCk7HjC;EiCv8HG;IAwBK,uBAAmB;IAAnB,mBAAmB;EjCk7H3B;EiC18HG;IA2BO,kBAAkB;EjCk7H5B;EiC78HG;IA+BO,qB9BgiB6B;I8B/hB7B,oB9B+hB6B;EHk5GvC;EiCj9HG;;IAsCK,qBAAiB;IAAjB,iBAAiB;EjC+6HzB;EiCr9HG;IAqDK,+BAAwB;IAAxB,wBAAwB;IAGxB,6BAAgB;IAAhB,gBAAgB;EjCi6HxB;EiCz9HG;IA4DK,aAAa;EjCg6HrB;AACF;;AcziII;EmB4EC;;IAGK,gBAAgB;IAChB,eAAe;EjCg+HvB;AACF;;Ac9jII;EmByFA;IAoBI,yBAAqB;IAArB,qBAAqB;IACrB,oBAA2B;IAA3B,2BAA2B;EjCs9HjC;EiC3+HG;IAwBK,uBAAmB;IAAnB,mBAAmB;EjCs9H3B;EiC9+HG;IA2BO,kBAAkB;EjCs9H5B;EiCj/HG;IA+BO,qB9BgiB6B;I8B/hB7B,oB9B+hB6B;EHs7GvC;EiCr/HG;;IAsCK,qBAAiB;IAAjB,iBAAiB;EjCm9HzB;EiCz/HG;IAqDK,+BAAwB;IAAxB,wBAAwB;IAGxB,6BAAgB;IAAhB,gBAAgB;EjCq8HxB;EiC7/HG;IA4DK,aAAa;EjCo8HrB;AACF;;Ac7kII;EmB4EC;;IAGK,gBAAgB;IAChB,eAAe;EjCogIvB;AACF;;AclmII;EmByFA;IAoBI,yBAAqB;IAArB,qBAAqB;IACrB,oBAA2B;IAA3B,2BAA2B;EjC0/HjC;EiC/gIG;IAwBK,uBAAmB;IAAnB,mBAAmB;EjC0/H3B;EiClhIG;IA2BO,kBAAkB;EjC0/H5B;EiCrhIG;IA+BO,qB9BgiB6B;I8B/hB7B,oB9B+hB6B;EH09GvC;EiCzhIG;;IAsCK,qBAAiB;IAAjB,iBAAiB;EjCu/HzB;EiC7hIG;IAqDK,+BAAwB;IAAxB,wBAAwB;IAGxB,6BAAgB;IAAhB,gBAAgB;EjCy+HxB;EiCjiIG;IA4DK,aAAa;EjCw+HrB;AACF;;AiC1iIA;EAyBQ,yBAAqB;EAArB,qBAAqB;EACrB,oBAA2B;EAA3B,2BAA2B;AjCqhInC;;AiC/iIA;;EAQU,gBAAgB;EAChB,eAAe;AjC4iIzB;;AiCrjIA;EA6BU,uBAAmB;EAAnB,mBAAmB;AjC4hI7B;;AiCzjIA;EAgCY,kBAAkB;AjC6hI9B;;AiC7jIA;EAoCY,qB9BgiB6B;E8B/hB7B,oB9B+hB6B;AH8/GzC;;AiClkIA;;EA2CU,qBAAiB;EAAjB,iBAAiB;AjC4hI3B;;AiCvkIA;EA0DU,+BAAwB;EAAxB,wBAAwB;EAGxB,6BAAgB;EAAhB,gBAAgB;AjC+gI1B;;AiC5kIA;EAiEU,aAAa;AjC+gIvB;;AiClgIA;EAEI,yB9B/MW;AHmtIf;;AKptIE;E4BmNI,yB9BlNS;AHutIf;;AiC1gIA;EAWM,yB9BxNS;AH2tIf;;AK5tIE;E4B4NM,yB9B3NO;AH+tIf;;AiClhIA;EAkBQ,yB9B/NO;AHmuIf;;AiCthIA;;;;EA0BM,yB9BvOS;AH0uIf;;AiC7hIA;EA+BI,yB9B5OW;E8B6OX,gC9B7OW;AH+uIf;;AiCliIA;EAoCI,+QftNuI;AlBwtI3I;;AiCtiIA;EAwCI,yB9BrPW;AHuvIf;;AiC1iIA;EA0CM,yB9BvPS;AH2vIf;;AK5vIE;E4B2PM,yB9B1PO;AH+vIf;;AiC9/HA;EAEI,W9B7QW;AH6wIf;;AKpwIE;E4BuQI,W9BhRS;AHixIf;;AiCtgIA;EAWM,+B9BtRS;AHqxIf;;AK5wIE;E4BgRM,gC9BzRO;AHyxIf;;AiC9gIA;EAkBQ,gC9B7RO;AH6xIf;;AiClhIA;;;;EA0BM,W9BrSS;AHoyIf;;AiCzhIA;EA+BI,+B9B1SW;E8B2SX,sC9B3SW;AHyyIf;;AiC9hIA;EAoCI,qRf1QuI;AlBwwI3I;;AiCliIA;EAwCI,+B9BnTW;AHizIf;;AiCtiIA;EA0CM,W9BrTS;AHqzIf;;AK5yIE;E4B+SM,W9BxTO;AHyzIf;;AkC5zIA;EACE,kBAAkB;EAClB,oBAAa;EAAb,aAAa;EACb,0BAAsB;EAAtB,sBAAsB;EACtB,YAAY;EAEZ,qBAAqB;EACrB,sB/BJa;E+BKb,2BAA2B;EAC3B,sC/BIa;EOZX,sBP6OgC;AH0lIpC;;AkCx0IA;EAaI,eAAe;EACf,cAAc;AlC+zIlB;;AkC70IA;ExBUI,+BPoOgC;EOnOhC,gCPmOgC;AHomIpC;;AkCl1IA;ExBwBI,mCPsNgC;EOrNhC,kCPqNgC;AHymIpC;;AkCzzIA;EAGE,kBAAc;EAAd,cAAc;EAGd,eAAe;EACf,gB/BsxByC;AHkiH3C;;AkCpzIA;EACE,sB/BgxBwC;AHuiH1C;;AkCpzIA;EACE,qBAA+B;EAC/B,gBAAgB;AlCuzIlB;;AkCpzIA;EACE,gBAAgB;AlCuzIlB;;AKl2IE;E6BgDE,qBAAqB;AlCszIzB;;AkCxzIA;EAMI,oB/B+vBuC;AHujH3C;;AkC9yIA;EACE,wB/BsvByC;E+BrvBzC,gBAAgB;EAEhB,qC/B3Da;E+B4Db,6C/B5Da;AH42If;;AkCrzIA;ExBnEI,0DwB2E8E;AlCizIlF;;AkCzzIA;EAaM,aAAa;AlCgzInB;;AkC3yIA;EACE,wB/BouByC;E+BnuBzC,qC/B3Ea;E+B4Eb,0C/B5Ea;AH03If;;AkCjzIA;ExBrFI,0DQ+H4D;AlB2wIhE;;AkCtyIA;EACE,uBAAiC;EACjC,uB/BmtBwC;E+BltBxC,sBAAgC;EAChC,gBAAgB;AlCyyIlB;;AkCtyIA;EACE,uBAAiC;EACjC,sBAAgC;AlCyyIlC;;AkCryIA;EACE,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,SAAS;EACT,OAAO;EACP,gB/B8sByC;AH0lH3C;;AkCryIA;;;EAGE,oBAAc;EAAd,cAAc;EACd,WAAW;AlCwyIb;;AkCryIA;;ExBxHI,2CQsH4D;ERrH5D,4CQqH4D;AlB6yIhE;;AkCtyIA;;ExB/GI,+CQwG4D;ERvG5D,8CQuG4D;AlBmzIhE;;AkCpyIA;EAEI,mB/BurBsD;AH+mH1D;;Ac/3II;EoBuFJ;IAMI,oBAAa;IAAb,aAAa;IACb,uBAAmB;IAAnB,mBAAmB;IACnB,mB/BirBsD;I+BhrBtD,kB/BgrBsD;EHunHxD;EkChzIF;IAaM,gBAAY;IAAZ,YAAY;IACZ,kB/B2qBoD;I+B1qBpD,gBAAgB;IAChB,iB/ByqBoD;EH6nHxD;AACF;;AkC7xIA;EAII,mB/B2pBsD;AHkoH1D;;Acl5II;EoBiHJ;IAQI,oBAAa;IAAb,aAAa;IACb,uBAAmB;IAAnB,mBAAmB;ElC8xIrB;EkCvyIF;IAcM,gBAAY;IAAZ,YAAY;IACZ,gBAAgB;ElC4xIpB;EkC3yIF;IAkBQ,cAAc;IACd,cAAc;ElC4xIpB;EkC/yIF;IxBxJI,0BwBiLoC;IxBhLpC,6BwBgLoC;ElC0xItC;EkCnzIF;;IA8BY,0BAA0B;ElCyxIpC;EkCvzIF;;IAmCY,6BAA6B;ElCwxIvC;EkC3zIF;IxB1II,yBwBkLmC;IxBjLnC,4BwBiLmC;ElCuxIrC;EkC/zIF;;IA6CY,yBAAyB;ElCsxInC;EkCn0IF;;IAkDY,4BAA4B;ElCqxItC;AACF;;AkCzwIA;EAEI,sB/BglBsC;AH2rH1C;;Ac77II;EoBgLJ;IAMI,uB/B6lBiC;I+B7lBjC,oB/B6lBiC;I+B7lBjC,e/B6lBiC;I+B5lBjC,2B/B6lBuC;I+B7lBvC,wB/B6lBuC;I+B7lBvC,mB/B6lBuC;I+B5lBvC,UAAU;IACV,SAAS;ElC4wIX;EkCrxIF;IAYM,qBAAqB;IACrB,WAAW;ElC4wIf;AACF;;AkCnwIA;EAEI,gBAAgB;AlCqwIpB;;AkCvwIA;EAKM,gBAAgB;ExB5OlB,6BwB6OiC;ExB5OjC,4BwB4OiC;AlCuwIrC;;AkC7wIA;ExBrPI,yBwB+P8B;ExB9P9B,0BwB8P8B;AlCwwIlC;;AkClxIA;ExB9PI,gBwB4Q0B;EACxB,mB/BnC2B;AH2yIjC;;AmC1hJA;EACE,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,qBhC+hCsC;EgC9hCtC,mBhCiiCsC;EgC/hCtC,gBAAgB;EAChB,yBhCEgB;EOJd,sBP6OgC;AHkzIpC;;AmCzhJA;EAGI,oBhCqhCqC;AHqgHzC;;AmC7hJA;EAMM,qBAAqB;EACrB,qBhCihCmC;EgChhCnC,chCNY;EgCOZ,YhCshCuC;AHqgH7C;;AmCpiJA;EAoBI,0BAA0B;AnCohJ9B;;AmCxiJA;EAwBI,qBAAqB;AnCohJzB;;AmC5iJA;EA4BI,chC1Bc;AH8iJlB;;AoC3jJA;EACE,oBAAa;EAAb,aAAa;E7BGb,eAAe;EACf,gBAAgB;EGAd,sBP6OgC;AHg1IpC;;AoC5jJA;EACE,kBAAkB;EAClB,cAAc;EACd,uBjCgxBwC;EiC/wBxC,iBjCqO+B;EiCpO/B,iBjCmxBsC;EiClxBtC,cjCwBe;EiCvBf,sBjCNa;EiCOb,yBjCJgB;AHmkJlB;;AoCvkJA;EAWI,UAAU;EACV,cjCkK8D;EiCjK9D,qBAAqB;EACrB,yBjCXc;EiCYd,qBjCXc;AH2kJlB;;AoC/kJA;EAmBI,UAAU;EACV,UjC4wBiC;EiC3wBjC,gDjCSa;AHujJjB;;AoC5jJA;EAGM,cAAc;E1BChB,+BP+MgC;EO9MhC,kCP8MgC;AH+2IpC;;AoClkJA;E1BVI,gCP6NgC;EO5NhC,mCP4NgC;AHo3IpC;;AoCvkJA;EAcI,UAAU;EACV,WjCvCW;EiCwCX,yBjCXa;EiCYb,qBjCZa;AHykJjB;;AoC9kJA;EAqBI,cjCvCc;EiCwCd,oBAAoB;EAEpB,YAAY;EACZ,sBjCjDW;EiCkDX,qBjC/Cc;AH2mJlB;;AqClnJE;EACE,uBlCyxBsC;EC9pBpC,kBAtCY;EiCnFd,gBlCsO6B;AH+4IjC;;AqChnJM;E3BwBF,8BPgN+B;EO/M/B,iCP+M+B;AH64InC;;AqChnJM;E3BKF,+BP8N+B;EO7N/B,kCP6N+B;AHk5InC;;AqCloJE;EACE,uBlCuxBqC;EC5pBnC,mBAtCY;EiCnFd,gBlCuO6B;AH85IjC;;AqChoJM;E3BwBF,8BPiN+B;EOhN/B,iCPgN+B;AH45InC;;AqChoJM;E3BKF,+BP+N+B;EO9N/B,kCP8N+B;AHi6InC;;AsChpJA;EACE,qBAAqB;EACrB,qBnCw5BsC;ECv1BpC,cAAW;EkC/Db,gBnC2R+B;EmC1R/B,cAAc;EACd,kBAAkB;EAClB,mBAAmB;EACnB,wBAAwB;E5BRtB,sBP6OgC;EiB5O9B,qIjB6b6I;AH+tInJ;;AoBvpJI;EkBNJ;IlBOM,gBAAgB;EpB2pJpB;AACF;;AKxpJE;EiCGI,qBAAqB;AtCypJ3B;;AsCvqJA;EAoBI,aAAa;AtCupJjB;;AsClpJA;EACE,kBAAkB;EAClB,SAAS;AtCqpJX;;AsC9oJA;EACE,oBnC63BsC;EmC53BtC,mBnC43BsC;EOh6BpC,oBPm6BqC;AHmxHzC;;AsCzoJE;ECjDA,WpCMa;EoCLb,yBpCkCe;AH4pJjB;;AKhrJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvC8rJxC;;AuCjsJU;EAQJ,UAAU;EACV,+CpCuBW;AHsqJjB;;AsCxpJE;ECjDA,WpCMa;EoCLb,yBpCWgB;AHksJlB;;AK/rJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvC6sJxC;;AuChtJU;EAQJ,UAAU;EACV,iDpCAY;AH4sJlB;;AsCvqJE;ECjDA,WpCMa;EoCLb,yBpCyCe;AHmrJjB;;AK9sJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvC4tJxC;;AuC/tJU;EAQJ,UAAU;EACV,+CpC8BW;AH6rJjB;;AsCtrJE;ECjDA,WpCMa;EoCLb,yBpC2Ce;AHgsJjB;;AK7tJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvC2uJxC;;AuC9uJU;EAQJ,UAAU;EACV,gDpCgCW;AH0sJjB;;AsCrsJE;ECjDA,cpCegB;EoCdhB,yBpCwCe;AHktJjB;;AK5uJE;EkCVI,cpCUY;EoCTZ,yBAAkC;AvC0vJxC;;AuC7vJU;EAQJ,UAAU;EACV,+CpC6BW;AH4tJjB;;AsCptJE;ECjDA,WpCMa;EoCLb,yBpCsCe;AHmuJjB;;AK3vJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvCywJxC;;AuC5wJU;EAQJ,UAAU;EACV,+CpC2BW;AH6uJjB;;AsCnuJE;ECjDA,cpCegB;EoCdhB,yBpCMgB;AHkxJlB;;AK1wJE;EkCVI,cpCUY;EoCTZ,yBAAkC;AvCwxJxC;;AuC3xJU;EAQJ,UAAU;EACV,iDpCLY;AH4xJlB;;AsClvJE;ECjDA,WpCMa;EoCLb,yBpCagB;AH0xJlB;;AKzxJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvCuyJxC;;AuC1yJU;EAQJ,UAAU;EACV,8CpCEY;AHoyJlB;;AwCnzJA;EACE,kBAAoD;EACpD,mBrCqzBsC;EqCnzBtC,yBrCKgB;EOJd,qBP8O+B;AHukJnC;;Ac9vJI;E0B5DJ;IAQI,kBrC+yBoC;EHwgItC;AACF;;AwCpzJA;EACE,gBAAgB;EAChB,eAAe;E9BTb,gB8BUsB;AxCuzJ1B;;AyCl0JA;EACE,kBAAkB;EAClB,wBtCq9ByC;EsCp9BzC,mBtCq9BsC;EsCp9BtC,6BAA6C;E/BH3C,sBP6OgC;AH4lJpC;;AyCj0JA;EAEE,cAAc;AzCm0JhB;;AyC/zJA;EACE,gBtCgR+B;AHkjJjC;;AyC1zJA;EACE,mBAAsD;AzC6zJxD;;AyC9zJA;EAKI,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,wBtCu7BuC;EsCt7BvC,cAAc;AzC6zJlB;;AyCnzJE;EC9CA,cxB8FgE;EIzF9D,yBJyF8D;EwB5FhE,qBxB4FgE;AlBywJlE;;A0Cn2JE;EACE,yBAAqC;A1Cs2JzC;;A0Cn2JE;EACE,cAA0B;A1Cs2J9B;;AyCj0JE;EC9CA,cxB8FgE;EIzF9D,yBJyF8D;EwB5FhE,qBxB4FgE;AlBuxJlE;;A0Cj3JE;EACE,yBAAqC;A1Co3JzC;;A0Cj3JE;EACE,cAA0B;A1Co3J9B;;AyC/0JE;EC9CA,cxB8FgE;EIzF9D,yBJyF8D;EwB5FhE,qBxB4FgE;AlBqyJlE;;A0C/3JE;EACE,yBAAqC;A1Ck4JzC;;A0C/3JE;EACE,cAA0B;A1Ck4J9B;;AyC71JE;EC9CA,cxB8FgE;EIzF9D,yBJyF8D;EwB5FhE,qBxB4FgE;AlBmzJlE;;A0C74JE;EACE,yBAAqC;A1Cg5JzC;;A0C74JE;EACE,cAA0B;A1Cg5J9B;;AyC32JE;EC9CA,cxB8FgE;EIzF9D,yBJyF8D;EwB5FhE,qBxB4FgE;AlBi0JlE;;A0C35JE;EACE,yBAAqC;A1C85JzC;;A0C35JE;EACE,cAA0B;A1C85J9B;;AyCz3JE;EC9CA,cxB8FgE;EIzF9D,yBJyF8D;EwB5FhE,qBxB4FgE;AlB+0JlE;;A0Cz6JE;EACE,yBAAqC;A1C46JzC;;A0Cz6JE;EACE,cAA0B;A1C46J9B;;AyCv4JE;EC9CA,cxB8FgE;EIzF9D,yBJyF8D;EwB5FhE,qBxB4FgE;AlB61JlE;;A0Cv7JE;EACE,yBAAqC;A1C07JzC;;A0Cv7JE;EACE,cAA0B;A1C07J9B;;AyCr5JE;EC9CA,cxB8FgE;EIzF9D,yBJyF8D;EwB5FhE,qBxB4FgE;AlB22JlE;;A0Cr8JE;EACE,yBAAqC;A1Cw8JzC;;A0Cr8JE;EACE,cAA0B;A1Cw8J9B;;A2Ch9JE;EACE;IAAO,2BAAuC;E3Co9JhD;E2Cn9JE;IAAK,wBAAwB;E3Cs9J/B;AACF;;A2Cz9JE;EACE;IAAO,2BAAuC;E3Co9JhD;E2Cn9JE;IAAK,wBAAwB;E3Cs9J/B;AACF;;A2Cn9JA;EACE,oBAAa;EAAb,aAAa;EACb,YxC89BsC;EwC79BtC,gBAAgB;EvCoHZ,kBAtCY;EuC5EhB,yBxCJgB;EOJd,sBP6OgC;AHkvJpC;;A2Cl9JA;EACE,oBAAa;EAAb,aAAa;EACb,0BAAsB;EAAtB,sBAAsB;EACtB,qBAAuB;EAAvB,uBAAuB;EACvB,gBAAgB;EAChB,WxChBa;EwCiBb,kBAAkB;EAClB,mBAAmB;EACnB,yBxCUe;EiB9BX,2BjB0+B4C;AHggIlD;;AoBr+JI;EuBOJ;IvBNM,gBAAgB;EpBy+JpB;AACF;;A2Cx9JA;ErBaE,qMAA6I;EqBX7I,0BxCw8BsC;AHmhIxC;;A2Cv9JE;EACE,0DxC08BkD;EwC18BlD,kDxC08BkD;AHghItD;;A2Cv9JM;EAJJ;IAKM,uBAAe;IAAf,eAAe;E3C29JrB;AACF;;A4CrgKA;EACE,oBAAa;EAAb,aAAa;EACb,qBAAuB;EAAvB,uBAAuB;A5CwgKzB;;A4CrgKA;EACE,WAAO;EAAP,OAAO;A5CwgKT;;A6C1gKA;EACE,oBAAa;EAAb,aAAa;EACb,0BAAsB;EAAtB,sBAAsB;EAGtB,eAAe;EACf,gBAAgB;A7C2gKlB;;A6ClgKA;EACE,WAAW;EACX,c1CPgB;E0CQhB,mBAAmB;A7CqgKrB;;AK3gKE;EwCUE,UAAU;EACV,c1Cbc;E0Ccd,qBAAqB;EACrB,yB1CrBc;AH0hKlB;;A6C/gKA;EAcI,c1CjBc;E0CkBd,yB1CzBc;AH8hKlB;;A6C5/JA;EACE,kBAAkB;EAClB,cAAc;EACd,wB1C88ByC;E0C58BzC,sB1CzCa;E0C0Cb,sC1ChCa;AH8hKf;;A6CpgKA;EnC7BI,+BPoOgC;EOnOhC,gCPmOgC;AHk0JpC;;A6CzgKA;EnCfI,mCPsNgC;EOrNhC,kCPqNgC;AHu0JpC;;A6C9gKA;EAkBI,c1ChDc;E0CiDd,oBAAoB;EACpB,sB1CxDW;AHwjKf;;A6CphKA;EAyBI,UAAU;EACV,W1C9DW;E0C+DX,yB1ClCa;E0CmCb,qB1CnCa;AHkiKjB;;A6C3hKA;EAgCI,mBAAmB;A7C+/JvB;;A6C/hKA;EAmCM,gB1CiK2B;E0ChK3B,qB1CgK2B;AHg2JjC;;A6Cl/JI;EACE,uBAAmB;EAAnB,mBAAmB;A7Cq/JzB;;A6Ct/JI;EnCjCA,kCPsLgC;EOlMhC,0BmCmDwC;A7Cq/J5C;;A6C3/JI;EnC7CA,gCPkMgC;EOtLhC,4BmC4C0C;A7Cq/J9C;;A6ChgKI;EAeM,aAAa;A7Cq/JvB;;A6CpgKI;EAmBM,qB1C+HuB;E0C9HvB,oBAAoB;A7Cq/J9B;;A6CzgKI;EAuBQ,iB1C2HqB;E0C1HrB,sB1C0HqB;AH43JjC;;Ac/iKI;E+BiCA;IACE,uBAAmB;IAAnB,mBAAmB;E7CkhKvB;E6CnhKE;InCjCA,kCPsLgC;IOlMhC,0BmCmDwC;E7CihK1C;E6CvhKE;InC7CA,gCPkMgC;IOtLhC,4BmC4C0C;E7CghK5C;E6C3hKE;IAeM,aAAa;E7C+gKrB;E6C9hKE;IAmBM,qB1C+HuB;I0C9HvB,oBAAoB;E7C8gK5B;E6CliKE;IAuBQ,iB1C2HqB;I0C1HrB,sB1C0HqB;EHo5J/B;AACF;;AcxkKI;E+BiCA;IACE,uBAAmB;IAAnB,mBAAmB;E7C2iKvB;E6C5iKE;InCjCA,kCPsLgC;IOlMhC,0BmCmDwC;E7C0iK1C;E6ChjKE;InC7CA,gCPkMgC;IOtLhC,4BmC4C0C;E7CyiK5C;E6CpjKE;IAeM,aAAa;E7CwiKrB;E6CvjKE;IAmBM,qB1C+HuB;I0C9HvB,oBAAoB;E7CuiK5B;E6C3jKE;IAuBQ,iB1C2HqB;I0C1HrB,sB1C0HqB;EH66J/B;AACF;;AcjmKI;E+BiCA;IACE,uBAAmB;IAAnB,mBAAmB;E7CokKvB;E6CrkKE;InCjCA,kCPsLgC;IOlMhC,0BmCmDwC;E7CmkK1C;E6CzkKE;InC7CA,gCPkMgC;IOtLhC,4BmC4C0C;E7CkkK5C;E6C7kKE;IAeM,aAAa;E7CikKrB;E6ChlKE;IAmBM,qB1C+HuB;I0C9HvB,oBAAoB;E7CgkK5B;E6CplKE;IAuBQ,iB1C2HqB;I0C1HrB,sB1C0HqB;EHs8J/B;AACF;;Ac1nKI;E+BiCA;IACE,uBAAmB;IAAnB,mBAAmB;E7C6lKvB;E6C9lKE;InCjCA,kCPsLgC;IOlMhC,0BmCmDwC;E7C4lK1C;E6ClmKE;InC7CA,gCPkMgC;IOtLhC,4BmC4C0C;E7C2lK5C;E6CtmKE;IAeM,aAAa;E7C0lKrB;E6CzmKE;IAmBM,qB1C+HuB;I0C9HvB,oBAAoB;E7CylK5B;E6C7mKE;IAuBQ,iB1C2HqB;I0C1HrB,sB1C0HqB;EH+9J/B;AACF;;A6C5kKA;EAEI,qBAAqB;EACrB,oBAAoB;EnCjIpB,gBmCkIwB;A7C8kK5B;;A6CllKA;EAOM,mBAAmB;A7C+kKzB;;A6CtlKA;EAaM,sBAAsB;A7C6kK5B;;A8C1tKE;EACE,c5B2F8D;E4B1F9D,yB5B0F8D;AlBmoKlE;;AKltKE;EyCPM,c5BsF0D;E4BrF1D,yBAAyC;A9C6tKjD;;A8CpuKE;EAWM,W3CPO;E2CQP,yB5BgF0D;E4B/E1D,qB5B+E0D;AlB8oKlE;;A8C1uKE;EACE,c5B2F8D;E4B1F9D,yB5B0F8D;AlBmpKlE;;AKluKE;EyCPM,c5BsF0D;E4BrF1D,yBAAyC;A9C6uKjD;;A8CpvKE;EAWM,W3CPO;E2CQP,yB5BgF0D;E4B/E1D,qB5B+E0D;AlB8pKlE;;A8C1vKE;EACE,c5B2F8D;E4B1F9D,yB5B0F8D;AlBmqKlE;;AKlvKE;EyCPM,c5BsF0D;E4BrF1D,yBAAyC;A9C6vKjD;;A8CpwKE;EAWM,W3CPO;E2CQP,yB5BgF0D;E4B/E1D,qB5B+E0D;AlB8qKlE;;A8C1wKE;EACE,c5B2F8D;E4B1F9D,yB5B0F8D;AlBmrKlE;;AKlwKE;EyCPM,c5BsF0D;E4BrF1D,yBAAyC;A9C6wKjD;;A8CpxKE;EAWM,W3CPO;E2CQP,yB5BgF0D;E4B/E1D,qB5B+E0D;AlB8rKlE;;A8C1xKE;EACE,c5B2F8D;E4B1F9D,yB5B0F8D;AlBmsKlE;;AKlxKE;EyCPM,c5BsF0D;E4BrF1D,yBAAyC;A9C6xKjD;;A8CpyKE;EAWM,W3CPO;E2CQP,yB5BgF0D;E4B/E1D,qB5B+E0D;AlB8sKlE;;A8C1yKE;EACE,c5B2F8D;E4B1F9D,yB5B0F8D;AlBmtKlE;;AKlyKE;EyCPM,c5BsF0D;E4BrF1D,yBAAyC;A9C6yKjD;;A8CpzKE;EAWM,W3CPO;E2CQP,yB5BgF0D;E4B/E1D,qB5B+E0D;AlB8tKlE;;A8C1zKE;EACE,c5B2F8D;E4B1F9D,yB5B0F8D;AlBmuKlE;;AKlzKE;EyCPM,c5BsF0D;E4BrF1D,yBAAyC;A9C6zKjD;;A8Cp0KE;EAWM,W3CPO;E2CQP,yB5BgF0D;E4B/E1D,qB5B+E0D;AlB8uKlE;;A8C10KE;EACE,c5B2F8D;E4B1F9D,yB5B0F8D;AlBmvKlE;;AKl0KE;EyCPM,c5BsF0D;E4BrF1D,yBAAyC;A9C60KjD;;A8Cp1KE;EAWM,W3CPO;E2CQP,yB5BgF0D;E4B/E1D,qB5B+E0D;AlB8vKlE;;A+C71KA;EACE,YAAY;E3C8HR,iBAtCY;E2CtFhB,gB5CiS+B;E4ChS/B,cAAc;EACd,W5CYa;E4CXb,yB5CCa;E4CAb,WAAW;A/Cg2Kb;;AK31KE;E0CDE,W5CMW;E4CLX,qBAAqB;A/Cg2KzB;;AK51KE;E0CCI,YAAY;A/C+1KlB;;A+Cp1KA;EACE,UAAU;EACV,6BAA6B;EAC7B,SAAS;EACT,wBAAgB;EAAhB,qBAAgB;EAAhB,gBAAgB;A/Cu1KlB;;A+Cj1KA;EACE,oBAAoB;A/Co1KtB;;AgD33KA;EACE,gB7Cy4BuC;E6Cx4BvC,gBAAgB;E5C6HZ,mBAtCY;E4CpFhB,2C7CEa;E6CDb,4BAA4B;EAC5B,oC7C04BmD;E6Cz4BnD,gD7CSa;E6CRb,mCAA2B;EAA3B,2BAA2B;EAC3B,UAAU;EtCLR,sBP64BsC;AHs/I1C;;AgDx4KA;EAcI,sB7C63BsC;AHigJ1C;;AgD54KA;EAkBI,UAAU;AhD83Kd;;AgDh5KA;EAsBI,cAAc;EACd,UAAU;AhD83Kd;;AgDr5KA;EA2BI,aAAa;AhD83KjB;;AgD13KA;EACE,oBAAa;EAAb,aAAa;EACb,sBAAmB;EAAnB,mBAAmB;EACnB,wB7Cy2BwC;E6Cx2BxC,c7CtBgB;E6CuBhB,2C7C7Ba;E6C8Bb,4BAA4B;EAC5B,4C7Ci3BoD;AH4gJtD;;AgD13KA;EACE,gB7Ci2BwC;AH4hJ1C;;AiDj6KA;EAEE,gBAAgB;AjDm6KlB;;AiDr6KA;EAKI,kBAAkB;EAClB,gBAAgB;AjDo6KpB;;AiD/5KA;EACE,eAAe;EACf,MAAM;EACN,OAAO;EACP,a9C+pBsC;E8C9pBtC,aAAa;EACb,WAAW;EACX,YAAY;EACZ,gBAAgB;EAGhB,UAAU;AjDg6KZ;;AiDz5KA;EACE,kBAAkB;EAClB,WAAW;EACX,c9C64BuC;E8C34BvC,oBAAoB;AjD25KtB;;AiDx5KE;E7BrCI,2CjB48BoD;EiB58BpD,mCjB48BoD;EiB58BpD,oEjB48BoD;E8Cr6BtD,sC9Cm6BmD;E8Cn6BnD,8B9Cm6BmD;AHw/IvD;;AoB77KI;E6BgCF;I7B/BI,gBAAgB;EpBi8KpB;AACF;;AiD/5KE;EACE,uB9Ci6BoC;E8Cj6BpC,e9Ci6BoC;AHigJxC;;AiD95KE;EACE,8B9C85B2C;E8C95B3C,sB9C85B2C;AHmgJ/C;;AiD75KA;EACE,oBAAa;EAAb,aAAa;EACb,6B/ByE8D;AlBu1KhE;;AiDl6KA;EAKI,8B/BsE4D;E+BrE5D,gBAAgB;AjDi6KpB;;AiDv6KA;;EAWI,oBAAc;EAAd,cAAc;AjDi6KlB;;AiD56KA;EAeI,gBAAgB;AjDi6KpB;;AiD75KA;EACE,oBAAa;EAAb,aAAa;EACb,sBAAmB;EAAnB,mBAAmB;EACnB,6B/BqD8D;AlB22KhE;;AiDn6KA;EAOI,cAAc;EACd,0B/BgD4D;E+B/C5D,WAAW;AjDg6Kf;;AiDz6KA;EAcI,0BAAsB;EAAtB,sBAAsB;EACtB,qBAAuB;EAAvB,uBAAuB;EACvB,YAAY;AjD+5KhB;;AiD/6KA;EAmBM,gBAAgB;AjDg6KtB;;AiDn7KA;EAuBM,aAAa;AjDg6KnB;;AiD15KA;EACE,kBAAkB;EAClB,oBAAa;EAAb,aAAa;EACb,0BAAsB;EAAtB,sBAAsB;EACtB,WAAW;EAGX,oBAAoB;EACpB,sB9C1Ga;E8C2Gb,4BAA4B;EAC5B,oC9ClGa;EOZX,qBP8O+B;E8C5HjC,UAAU;AjDy5KZ;;AiDr5KA;EACE,eAAe;EACf,MAAM;EACN,OAAO;EACP,a9CojBsC;E8CnjBtC,YAAY;EACZ,aAAa;EACb,sB9CjHa;AHygLf;;AiD/5KA;EAUW,UAAU;AjDy5KrB;;AiDn6KA;EAWW,Y9C4zB2B;AHgmJtC;;AiDv5KA;EACE,oBAAa;EAAb,aAAa;EACb,qBAAuB;EAAvB,uBAAuB;EACvB,sBAA8B;EAA9B,8BAA8B;EAC9B,kB9CyzBsC;E8CxzBtC,gC9CtIgB;EOId,0CQsH4D;ERrH5D,2CQqH4D;AlBw6KhE;;AiDj6KA;EASI,kB9CozBoC;E8ClzBpC,8BAA6F;AjD25KjG;;AiDt5KA;EACE,gBAAgB;EAChB,gB9C2I+B;AH8wKjC;;AiDp5KA;EACE,kBAAkB;EAGlB,kBAAc;EAAd,cAAc;EACd,a9CuwBsC;AH8oJxC;;AiDj5KA;EACE,oBAAa;EAAb,aAAa;EACb,mBAAe;EAAf,eAAe;EACf,sBAAmB;EAAnB,mBAAmB;EACnB,kBAAyB;EAAzB,yBAAyB;EACzB,gBAAgE;EAChE,6B9CvKgB;EOkBd,8CQwG4D;ERvG5D,6CQuG4D;AlBm8KhE;;AiD55KA;EAcI,eAAwC;AjDk5K5C;;AiD74KA;EACE,kBAAkB;EAClB,YAAY;EACZ,WAAW;EACX,YAAY;EACZ,gBAAgB;AjDg5KlB;;AcvhLI;EmCzBJ;IAuKI,gB9CmwBqC;I8ClwBrC,oBAAyC;EjD84K3C;EiDhiLF;IAsJI,+B/B3E4D;ElBw9K9D;EiDniLF;IAyJM,gC/B9E0D;ElB29K9D;EiDnhLF;IA2II,+B/BnF4D;ElB89K9D;EiDthLF;IA8IM,4B/BtF0D;ElBi+K9D;EiDn4KA;IAAY,gB9C4uB2B;EH0pJvC;AACF;;Ac7iLI;EmC0KF;;IAEE,gB9CouBqC;EHmqJvC;AACF;;AcpjLI;EmCiLF;IAAY,iB9C8tB4B;EH0qJxC;AACF;;AkDrnLA;EACE,kBAAkB;EAClB,a/CmrBsC;E+ClrBtC,cAAc;EACd,S/Cy1BmC;EgD71BnC,kMhDuRiN;EgDrRjN,kBAAkB;EAClB,gBhD+R+B;EgD9R/B,gBhDmS+B;EgDlS/B,gBAAgB;EAChB,iBAAiB;EACjB,qBAAqB;EACrB,iBAAiB;EACjB,oBAAoB;EACpB,sBAAsB;EACtB,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,gBAAgB;E/CgHZ,mBAtCY;E8C9EhB,qBAAqB;EACrB,UAAU;AlDkoLZ;;AkD7oLA;EAaW,Y/C60B2B;AHuzJtC;;AkDjpLA;EAgBI,kBAAkB;EAClB,cAAc;EACd,a/C60BqC;E+C50BrC,c/C60BqC;AHwzJzC;;AkDxpLA;EAsBM,kBAAkB;EAClB,WAAW;EACX,yBAAyB;EACzB,mBAAmB;AlDsoLzB;;AkDjoLA;EACE,iBAAgC;AlDooLlC;;AkDroLA;EAII,SAAS;AlDqoLb;;AkDzoLA;EAOM,MAAM;EACN,6BAAgE;EAChE,sB/CvBS;AH6pLf;;AkDjoLA;EACE,iB/CmzBuC;AHi1JzC;;AkDroLA;EAII,OAAO;EACP,a/C+yBqC;E+C9yBrC,c/C6yBqC;AHw1JzC;;AkD3oLA;EASM,QAAQ;EACR,oCAA2F;EAC3F,wB/CvCS;AH6qLf;;AkDjoLA;EACE,iBAAgC;AlDooLlC;;AkDroLA;EAII,MAAM;AlDqoLV;;AkDzoLA;EAOM,SAAS;EACT,6B/C4xBmC;E+C3xBnC,yB/CrDS;AH2rLf;;AkDjoLA;EACE,iB/CqxBuC;AH+2JzC;;AkDroLA;EAII,QAAQ;EACR,a/CixBqC;E+ChxBrC,c/C+wBqC;AHs3JzC;;AkD3oLA;EASM,OAAO;EACP,oC/C4wBmC;E+C3wBnC,uB/CrES;AH2sLf;;AkDjnLA;EACE,gB/C2uBuC;E+C1uBvC,uB/CgvBuC;E+C/uBvC,W/CvGa;E+CwGb,kBAAkB;EAClB,sB/C/Fa;EOZX,sBP6OgC;AHm/KpC;;AoDruLA;EACE,kBAAkB;EAClB,MAAM;EACN,OAAO;EACP,ajDirBsC;EiDhrBtC,cAAc;EACd,gBjD22BuC;EgDh3BvC,kMhDuRiN;EgDrRjN,kBAAkB;EAClB,gBhD+R+B;EgD9R/B,gBhDmS+B;EgDlS/B,gBAAgB;EAChB,iBAAiB;EACjB,qBAAqB;EACrB,iBAAiB;EACjB,oBAAoB;EACpB,sBAAsB;EACtB,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,gBAAgB;E/CgHZ,mBAtCY;EgD7EhB,qBAAqB;EACrB,sBjDNa;EiDOb,4BAA4B;EAC5B,oCjDEa;EOZX,qBP8O+B;AH+gLnC;;AoDlwLA;EAoBI,kBAAkB;EAClB,cAAc;EACd,WjD22BoC;EiD12BpC,cjD22BqC;EiD12BrC,gBjD2N+B;AHuhLnC;;AoD1wLA;EA4BM,kBAAkB;EAClB,cAAc;EACd,WAAW;EACX,yBAAyB;EACzB,mBAAmB;ApDkvLzB;;AoD7uLA;EACE,qBjD41BuC;AHo5JzC;;AoDjvLA;EAII,2BlC2F4D;AlBspLhE;;AoDrvLA;EAOM,SAAS;EACT,6BAAgE;EAChE,qCjDu1BiE;AH25JvE;;AoD3vLA;EAaM,WjD6L2B;EiD5L3B,6BAAgE;EAChE,sBjD7CS;AH+xLf;;AoD7uLA;EACE,mBjDw0BuC;AHw6JzC;;AoDjvLA;EAII,yBlCuE4D;EkCtE5D,ajDo0BqC;EiDn0BrC,YjDk0BoC;EiDj0BpC,gBAAgC;ApDivLpC;;AoDxvLA;EAUM,OAAO;EACP,oCAA2F;EAC3F,uCjDg0BiE;AHk7JvE;;AoD9vLA;EAgBM,SjDsK2B;EiDrK3B,oCAA2F;EAC3F,wBjDpES;AHszLf;;AoD7uLA;EACE,kBjDizBuC;AH+7JzC;;AoDjvLA;EAII,wBlCgD4D;AlBisLhE;;AoDrvLA;EAOM,MAAM;EACN,oCAA2F;EAC3F,wCjD4yBiE;AHs8JvE;;AoD3vLA;EAaM,QjDkJ2B;EiDjJ3B,oCAA2F;EAC3F,yBjDxFS;AH00Lf;;AoDjwLA;EAqBI,kBAAkB;EAClB,MAAM;EACN,SAAS;EACT,cAAc;EACd,WjDwxBoC;EiDvxBpC,oBAAsC;EACtC,WAAW;EACX,gCjD4wBuD;AHo+J3D;;AoD5uLA;EACE,oBjDixBuC;AH89JzC;;AoDhvLA;EAII,0BlCgB4D;EkCf5D,ajD6wBqC;EiD5wBrC,YjD2wBoC;EiD1wBpC,gBAAgC;ApDgvLpC;;AoDvvLA;EAUM,QAAQ;EACR,oCjDuwBmC;EiDtwBnC,sCjDywBiE;AHw+JvE;;AoD7vLA;EAgBM,UjD+G2B;EiD9G3B,oCjDiwBmC;EiDhwBnC,uBjD3HS;AH42Lf;;AoD3tLA;EACE,uBjDkuBwC;EiDjuBxC,gBAAgB;EhD3BZ,eAtCY;EgDoEhB,yBjD2tByD;EiD1tBzD,gCAAyE;E1ChJvE,0CQsH4D;ERrH5D,2CQqH4D;AlByvLhE;;AoDruLA;EAUI,aAAa;ApD+tLjB;;AoD3tLA;EACE,uBjDotBwC;EiDntBxC,cjDxJgB;AHs3LlB;;AqDz3LA;EACE,kBAAkB;ArD43LpB;;AqDz3LA;EACE,uBAAmB;EAAnB,mBAAmB;ArD43LrB;;AqDz3LA;EACE,kBAAkB;EAClB,WAAW;EACX,gBAAgB;ArD43LlB;;AsDn5LE;EACE,cAAc;EACd,WAAW;EACX,WAAW;AtDs5Lf;;AqD93LA;EACE,kBAAkB;EAClB,aAAa;EACb,WAAW;EACX,WAAW;EACX,mBAAmB;EACnB,mCAA2B;EAA3B,2BAA2B;EjC5BvB,8CjBikCkF;EiBjkClF,sCjBikCkF;EiBjkClF,0EjBikCkF;AH61JxF;;AoBz5LI;EiCiBJ;IjChBM,gBAAgB;EpB65LpB;AACF;;AqDp4LA;;;EAGE,cAAc;ArDu4LhB;;AqDp4LA;;EAEE,mCAA2B;EAA3B,2BAA2B;ArDu4L7B;;AqDp4LA;;EAEE,oCAA4B;EAA5B,4BAA4B;ArDu4L9B;;AqD/3LA;EAEI,UAAU;EACV,4BAA4B;EAC5B,uBAAe;EAAf,eAAe;ArDi4LnB;;AqDr4LA;;;EAUI,UAAU;EACV,UAAU;ArDi4Ld;;AqD54LA;;EAgBI,UAAU;EACV,UAAU;EjCtER,2BjBgkCkC;AHw4JxC;;AoBn8LI;EiCgDJ;;IjC/CM,gBAAgB;EpBw8LpB;AACF;;AqD/3LA;;EAEE,kBAAkB;EAClB,MAAM;EACN,SAAS;EACT,UAAU;EAEV,oBAAa;EAAb,aAAa;EACb,sBAAmB;EAAnB,mBAAmB;EACnB,qBAAuB;EAAvB,uBAAuB;EACvB,UlDk9BsC;EkDj9BtC,WlD1Fa;EkD2Fb,kBAAkB;EAClB,YlDg9BqC;EiB7iCjC,8BjB+iCgD;AHg7JtD;;AoB19LI;EiC2EJ;;IjC1EM,gBAAgB;EpB+9LpB;AACF;;AK59LE;;;EgDwFE,WlDjGW;EkDkGX,qBAAqB;EACrB,UAAU;EACV,YlDy8BmC;AHi8JvC;;AqDv4LA;EACE,OAAO;ArD04LT;;AqDr4LA;EACE,QAAQ;ArDw4LV;;AqDj4LA;;EAEE,qBAAqB;EACrB,WlDk8BuC;EkDj8BvC,YlDi8BuC;EkDh8BvC,qCAAqC;ArDo4LvC;;AqDl4LA;EACE,sNnCxFyI;AlB69L3I;;AqDn4LA;EACE,uNnC3FyI;AlBi+L3I;;AqD73LA;EACE,kBAAkB;EAClB,QAAQ;EACR,SAAS;EACT,OAAO;EACP,WAAW;EACX,oBAAa;EAAb,aAAa;EACb,qBAAuB;EAAvB,uBAAuB;EACvB,eAAe;EAEf,iBlDw5BsC;EkDv5BtC,gBlDu5BsC;EkDt5BtC,gBAAgB;ArD+3LlB;;AqD34LA;EAeI,uBAAuB;EACvB,kBAAc;EAAd,cAAc;EACd,WlDs5BqC;EkDr5BrC,WlDs5BoC;EkDr5BpC,iBlDu5BoC;EkDt5BpC,gBlDs5BoC;EkDr5BpC,mBAAmB;EACnB,eAAe;EACf,sBlDhKW;EkDiKX,4BAA4B;EAE5B,kCAAiE;EACjE,qCAAoE;EACpE,WAAW;EjCtKT,6BjBsjC+C;AHg/JrD;;AoBjiMI;EiCqIJ;IjCpIM,gBAAgB;EpBqiMpB;AACF;;AqDl6LA;EAiCI,UAAU;ArDq4Ld;;AqD53LA;EACE,kBAAkB;EAClB,UAA2C;EAC3C,YAAY;EACZ,SAA0C;EAC1C,WAAW;EACX,iBAAiB;EACjB,oBAAoB;EACpB,WlD3La;EkD4Lb,kBAAkB;ArD+3LpB;;AuD9jMA;EACE;IAAK,iCAAyB;IAAzB,yBAAyB;EvDkkM9B;AACF;;AuDpkMA;EACE;IAAK,iCAAyB;IAAzB,yBAAyB;EvDkkM9B;AACF;;AuDhkMA;EACE,qBAAqB;EACrB,WpDkkC0B;EoDjkC1B,YpDikC0B;EoDhkC1B,2BAA2B;EAC3B,iCAAgD;EAChD,+BAA+B;EAE/B,kBAAkB;EAClB,sDAA8C;EAA9C,8CAA8C;AvDkkMhD;;AuD/jMA;EACE,WpD2jC4B;EoD1jC5B,YpD0jC4B;EoDzjC5B,mBpD2jC4B;AHugK9B;;AuD3jMA;EACE;IACE,2BAAmB;IAAnB,mBAAmB;EvD8jMrB;EuD5jMA;IACE,UAAU;EvD8jMZ;AACF;;AuDpkMA;EACE;IACE,2BAAmB;IAAnB,mBAAmB;EvD8jMrB;EuD5jMA;IACE,UAAU;EvD8jMZ;AACF;;AuD3jMA;EACE,qBAAqB;EACrB,WpDmiC0B;EoDliC1B,YpDkiC0B;EoDjiC1B,2BAA2B;EAC3B,8BAA8B;EAE9B,kBAAkB;EAClB,UAAU;EACV,oDAA4C;EAA5C,4CAA4C;AvD6jM9C;;AuD1jMA;EACE,WpD4hC4B;EoD3hC5B,YpD2hC4B;AHkiK9B;;AwDhnMA;EAAqB,mCAAmC;AxDonMxD;;AwDnnMA;EAAqB,8BAA8B;AxDunMnD;;AwDtnMA;EAAqB,iCAAiC;AxD0nMtD;;AwDznMA;EAAqB,iCAAiC;AxD6nMtD;;AwD5nMA;EAAqB,sCAAsC;AxDgoM3D;;AwD/nMA;EAAqB,mCAAmC;AxDmoMxD;;AyDroME;EACE,oCAAmC;AzDwoMvC;;AK9nME;;;EoDLI,oCAAgD;AzDyoMtD;;AyD/oME;EACE,oCAAmC;AzDkpMvC;;AKxoME;;;EoDLI,oCAAgD;AzDmpMtD;;AyDzpME;EACE,oCAAmC;AzD4pMvC;;AKlpME;;;EoDLI,oCAAgD;AzD6pMtD;;AyDnqME;EACE,oCAAmC;AzDsqMvC;;AK5pME;;;EoDLI,oCAAgD;AzDuqMtD;;AyD7qME;EACE,oCAAmC;AzDgrMvC;;AKtqME;;;EoDLI,oCAAgD;AzDirMtD;;AyDvrME;EACE,oCAAmC;AzD0rMvC;;AKhrME;;;EoDLI,oCAAgD;AzD2rMtD;;AyDjsME;EACE,oCAAmC;AzDosMvC;;AK1rME;;;EoDLI,oCAAgD;AzDqsMtD;;AyD3sME;EACE,oCAAmC;AzD8sMvC;;AKpsME;;;EoDLI,oCAAgD;AzD+sMtD;;A0D9sMA;EACE,iCAAmC;A1DitMrC;;A0D9sMA;EACE,wCAAwC;A1DitM1C;;A2D5tMA;EAAkB,oCAAoD;A3DguMtE;;A2D/tMA;EAAkB,wCAAwD;A3DmuM1E;;A2DluMA;EAAkB,0CAA0D;A3DsuM5E;;A2DruMA;EAAkB,2CAA2D;A3DyuM7E;;A2DxuMA;EAAkB,yCAAyD;A3D4uM3E;;A2D1uMA;EAAmB,oBAAoB;A3D8uMvC;;A2D7uMA;EAAmB,wBAAwB;A3DivM3C;;A2DhvMA;EAAmB,0BAA0B;A3DovM7C;;A2DnvMA;EAAmB,2BAA2B;A3DuvM9C;;A2DtvMA;EAAmB,yBAAyB;A3D0vM5C;;A2DvvME;EACE,gCAA+B;A3D0vMnC;;A2D3vME;EACE,gCAA+B;A3D8vMnC;;A2D/vME;EACE,gCAA+B;A3DkwMnC;;A2DnwME;EACE,gCAA+B;A3DswMnC;;A2DvwME;EACE,gCAA+B;A3D0wMnC;;A2D3wME;EACE,gCAA+B;A3D8wMnC;;A2D/wME;EACE,gCAA+B;A3DkxMnC;;A2DnxME;EACE,gCAA+B;A3DsxMnC;;A2DlxMA;EACE,6BAA+B;A3DqxMjC;;A2D9wMA;EACE,gCAA2C;A3DixM7C;;A2D9wMA;EACE,iCAAwC;A3DixM1C;;A2D9wMA;EACE,0CAAiD;EACjD,2CAAkD;A3DixMpD;;A2D9wMA;EACE,2CAAkD;EAClD,8CAAqD;A3DixMvD;;A2D9wMA;EACE,8CAAqD;EACrD,6CAAoD;A3DixMtD;;A2D9wMA;EACE,0CAAiD;EACjD,6CAAoD;A3DixMtD;;A2D9wMA;EACE,gCAA2C;A3DixM7C;;A2D9wMA;EACE,6BAA6B;A3DixM/B;;A2D9wMA;EACE,+BAAuC;A3DixMzC;;A2D9wMA;EACE,2BAA2B;A3DixM7B;;AsDz1ME;EACE,cAAc;EACd,WAAW;EACX,WAAW;AtD41Mf;;A4Dr1MM;EAAwB,wBAA0B;A5Dy1MxD;;A4Dz1MM;EAAwB,0BAA0B;A5D61MxD;;A4D71MM;EAAwB,gCAA0B;A5Di2MxD;;A4Dj2MM;EAAwB,yBAA0B;A5Dq2MxD;;A4Dr2MM;EAAwB,yBAA0B;A5Dy2MxD;;A4Dz2MM;EAAwB,6BAA0B;A5D62MxD;;A4D72MM;EAAwB,8BAA0B;A5Di3MxD;;A4Dj3MM;EAAwB,+BAA0B;EAA1B,wBAA0B;A5Dq3MxD;;A4Dr3MM;EAAwB,sCAA0B;EAA1B,+BAA0B;A5Dy3MxD;;Acx0MI;E8CjDE;IAAwB,wBAA0B;E5D83MtD;E4D93MI;IAAwB,0BAA0B;E5Di4MtD;E4Dj4MI;IAAwB,gCAA0B;E5Do4MtD;E4Dp4MI;IAAwB,yBAA0B;E5Du4MtD;E4Dv4MI;IAAwB,yBAA0B;E5D04MtD;E4D14MI;IAAwB,6BAA0B;E5D64MtD;E4D74MI;IAAwB,8BAA0B;E5Dg5MtD;E4Dh5MI;IAAwB,+BAA0B;IAA1B,wBAA0B;E5Dm5MtD;E4Dn5MI;IAAwB,sCAA0B;IAA1B,+BAA0B;E5Ds5MtD;AACF;;Act2MI;E8CjDE;IAAwB,wBAA0B;E5D45MtD;E4D55MI;IAAwB,0BAA0B;E5D+5MtD;E4D/5MI;IAAwB,gCAA0B;E5Dk6MtD;E4Dl6MI;IAAwB,yBAA0B;E5Dq6MtD;E4Dr6MI;IAAwB,yBAA0B;E5Dw6MtD;E4Dx6MI;IAAwB,6BAA0B;E5D26MtD;E4D36MI;IAAwB,8BAA0B;E5D86MtD;E4D96MI;IAAwB,+BAA0B;IAA1B,wBAA0B;E5Di7MtD;E4Dj7MI;IAAwB,sCAA0B;IAA1B,+BAA0B;E5Do7MtD;AACF;;Acp4MI;E8CjDE;IAAwB,wBAA0B;E5D07MtD;E4D17MI;IAAwB,0BAA0B;E5D67MtD;E4D77MI;IAAwB,gCAA0B;E5Dg8MtD;E4Dh8MI;IAAwB,yBAA0B;E5Dm8MtD;E4Dn8MI;IAAwB,yBAA0B;E5Ds8MtD;E4Dt8MI;IAAwB,6BAA0B;E5Dy8MtD;E4Dz8MI;IAAwB,8BAA0B;E5D48MtD;E4D58MI;IAAwB,+BAA0B;IAA1B,wBAA0B;E5D+8MtD;E4D/8MI;IAAwB,sCAA0B;IAA1B,+BAA0B;E5Dk9MtD;AACF;;Acl6MI;E8CjDE;IAAwB,wBAA0B;E5Dw9MtD;E4Dx9MI;IAAwB,0BAA0B;E5D29MtD;E4D39MI;IAAwB,gCAA0B;E5D89MtD;E4D99MI;IAAwB,yBAA0B;E5Di+MtD;E4Dj+MI;IAAwB,yBAA0B;E5Do+MtD;E4Dp+MI;IAAwB,6BAA0B;E5Du+MtD;E4Dv+MI;IAAwB,8BAA0B;E5D0+MtD;E4D1+MI;IAAwB,+BAA0B;IAA1B,wBAA0B;E5D6+MtD;E4D7+MI;IAAwB,sCAA0B;IAA1B,+BAA0B;E5Dg/MtD;AACF;;A4Dv+MA;EAEI;IAAqB,wBAA0B;E5D0+MjD;E4D1+ME;IAAqB,0BAA0B;E5D6+MjD;E4D7+ME;IAAqB,gCAA0B;E5Dg/MjD;E4Dh/ME;IAAqB,yBAA0B;E5Dm/MjD;E4Dn/ME;IAAqB,yBAA0B;E5Ds/MjD;E4Dt/ME;IAAqB,6BAA0B;E5Dy/MjD;E4Dz/ME;IAAqB,8BAA0B;E5D4/MjD;E4D5/ME;IAAqB,+BAA0B;IAA1B,wBAA0B;E5D+/MjD;E4D//ME;IAAqB,sCAA0B;IAA1B,+BAA0B;E5DkgNjD;AACF;;A6DxhNA;EACE,kBAAkB;EAClB,cAAc;EACd,WAAW;EACX,UAAU;EACV,gBAAgB;A7D2hNlB;;A6DhiNA;EAQI,cAAc;EACd,WAAW;A7D4hNf;;A6DriNA;;;;;EAiBI,kBAAkB;EAClB,MAAM;EACN,SAAS;EACT,OAAO;EACP,WAAW;EACX,YAAY;EACZ,SAAS;A7D4hNb;;A6DphNE;EAEI,uBAA4F;A7DshNlG;;A6DxhNE;EAEI,mBAA4F;A7D0hNlG;;A6D5hNE;EAEI,gBAA4F;A7D8hNlG;;A6DhiNE;EAEI,iBAA4F;A7DkiNlG;;A8D3jNI;EAAgC,kCAA8B;EAA9B,8BAA8B;A9D+jNlE;;A8D9jNI;EAAgC,qCAAiC;EAAjC,iCAAiC;A9DkkNrE;;A8DjkNI;EAAgC,0CAAsC;EAAtC,sCAAsC;A9DqkN1E;;A8DpkNI;EAAgC,6CAAyC;EAAzC,yCAAyC;A9DwkN7E;;A8DtkNI;EAA8B,8BAA0B;EAA1B,0BAA0B;A9D0kN5D;;A8DzkNI;EAA8B,gCAA4B;EAA5B,4BAA4B;A9D6kN9D;;A8D5kNI;EAA8B,sCAAkC;EAAlC,kCAAkC;A9DglNpE;;A8D/kNI;EAA8B,6BAAyB;EAAzB,yBAAyB;A9DmlN3D;;A8DllNI;EAA8B,+BAAuB;EAAvB,uBAAuB;A9DslNzD;;A8DrlNI;EAA8B,+BAAuB;EAAvB,uBAAuB;A9DylNzD;;A8DxlNI;EAA8B,+BAAyB;EAAzB,yBAAyB;A9D4lN3D;;A8D3lNI;EAA8B,+BAAyB;EAAzB,yBAAyB;A9D+lN3D;;A8D7lNI;EAAoC,+BAAsC;EAAtC,sCAAsC;A9DimN9E;;A8DhmNI;EAAoC,6BAAoC;EAApC,oCAAoC;A9DomN5E;;A8DnmNI;EAAoC,gCAAkC;EAAlC,kCAAkC;A9DumN1E;;A8DtmNI;EAAoC,iCAAyC;EAAzC,yCAAyC;A9D0mNjF;;A8DzmNI;EAAoC,oCAAwC;EAAxC,wCAAwC;A9D6mNhF;;A8D3mNI;EAAiC,gCAAkC;EAAlC,kCAAkC;A9D+mNvE;;A8D9mNI;EAAiC,8BAAgC;EAAhC,gCAAgC;A9DknNrE;;A8DjnNI;EAAiC,iCAA8B;EAA9B,8BAA8B;A9DqnNnE;;A8DpnNI;EAAiC,mCAAgC;EAAhC,gCAAgC;A9DwnNrE;;A8DvnNI;EAAiC,kCAA+B;EAA/B,+BAA+B;A9D2nNpE;;A8DznNI;EAAkC,oCAAoC;EAApC,oCAAoC;A9D6nN1E;;A8D5nNI;EAAkC,kCAAkC;EAAlC,kCAAkC;A9DgoNxE;;A8D/nNI;EAAkC,qCAAgC;EAAhC,gCAAgC;A9DmoNtE;;A8DloNI;EAAkC,sCAAuC;EAAvC,uCAAuC;A9DsoN7E;;A8DroNI;EAAkC,yCAAsC;EAAtC,sCAAsC;A9DyoN5E;;A8DxoNI;EAAkC,sCAAiC;EAAjC,iCAAiC;A9D4oNvE;;A8D1oNI;EAAgC,oCAA2B;EAA3B,2BAA2B;A9D8oN/D;;A8D7oNI;EAAgC,qCAAiC;EAAjC,iCAAiC;A9DipNrE;;A8DhpNI;EAAgC,mCAA+B;EAA/B,+BAA+B;A9DopNnE;;A8DnpNI;EAAgC,sCAA6B;EAA7B,6BAA6B;A9DupNjE;;A8DtpNI;EAAgC,wCAA+B;EAA/B,+BAA+B;A9D0pNnE;;A8DzpNI;EAAgC,uCAA8B;EAA9B,8BAA8B;A9D6pNlE;;AcjpNI;EgDlDA;IAAgC,kCAA8B;IAA9B,8BAA8B;E9DwsNhE;E8DvsNE;IAAgC,qCAAiC;IAAjC,iCAAiC;E9D0sNnE;E8DzsNE;IAAgC,0CAAsC;IAAtC,sCAAsC;E9D4sNxE;E8D3sNE;IAAgC,6CAAyC;IAAzC,yCAAyC;E9D8sN3E;E8D5sNE;IAA8B,8BAA0B;IAA1B,0BAA0B;E9D+sN1D;E8D9sNE;IAA8B,gCAA4B;IAA5B,4BAA4B;E9DitN5D;E8DhtNE;IAA8B,sCAAkC;IAAlC,kCAAkC;E9DmtNlE;E8DltNE;IAA8B,6BAAyB;IAAzB,yBAAyB;E9DqtNzD;E8DptNE;IAA8B,+BAAuB;IAAvB,uBAAuB;E9DutNvD;E8DttNE;IAA8B,+BAAuB;IAAvB,uBAAuB;E9DytNvD;E8DxtNE;IAA8B,+BAAyB;IAAzB,yBAAyB;E9D2tNzD;E8D1tNE;IAA8B,+BAAyB;IAAzB,yBAAyB;E9D6tNzD;E8D3tNE;IAAoC,+BAAsC;IAAtC,sCAAsC;E9D8tN5E;E8D7tNE;IAAoC,6BAAoC;IAApC,oCAAoC;E9DguN1E;E8D/tNE;IAAoC,gCAAkC;IAAlC,kCAAkC;E9DkuNxE;E8DjuNE;IAAoC,iCAAyC;IAAzC,yCAAyC;E9DouN/E;E8DnuNE;IAAoC,oCAAwC;IAAxC,wCAAwC;E9DsuN9E;E8DpuNE;IAAiC,gCAAkC;IAAlC,kCAAkC;E9DuuNrE;E8DtuNE;IAAiC,8BAAgC;IAAhC,gCAAgC;E9DyuNnE;E8DxuNE;IAAiC,iCAA8B;IAA9B,8BAA8B;E9D2uNjE;E8D1uNE;IAAiC,mCAAgC;IAAhC,gCAAgC;E9D6uNnE;E8D5uNE;IAAiC,kCAA+B;IAA/B,+BAA+B;E9D+uNlE;E8D7uNE;IAAkC,oCAAoC;IAApC,oCAAoC;E9DgvNxE;E8D/uNE;IAAkC,kCAAkC;IAAlC,kCAAkC;E9DkvNtE;E8DjvNE;IAAkC,qCAAgC;IAAhC,gCAAgC;E9DovNpE;E8DnvNE;IAAkC,sCAAuC;IAAvC,uCAAuC;E9DsvN3E;E8DrvNE;IAAkC,yCAAsC;IAAtC,sCAAsC;E9DwvN1E;E8DvvNE;IAAkC,sCAAiC;IAAjC,iCAAiC;E9D0vNrE;E8DxvNE;IAAgC,oCAA2B;IAA3B,2BAA2B;E9D2vN7D;E8D1vNE;IAAgC,qCAAiC;IAAjC,iCAAiC;E9D6vNnE;E8D5vNE;IAAgC,mCAA+B;IAA/B,+BAA+B;E9D+vNjE;E8D9vNE;IAAgC,sCAA6B;IAA7B,6BAA6B;E9DiwN/D;E8DhwNE;IAAgC,wCAA+B;IAA/B,+BAA+B;E9DmwNjE;E8DlwNE;IAAgC,uCAA8B;IAA9B,8BAA8B;E9DqwNhE;AACF;;Ac1vNI;EgDlDA;IAAgC,kCAA8B;IAA9B,8BAA8B;E9DizNhE;E8DhzNE;IAAgC,qCAAiC;IAAjC,iCAAiC;E9DmzNnE;E8DlzNE;IAAgC,0CAAsC;IAAtC,sCAAsC;E9DqzNxE;E8DpzNE;IAAgC,6CAAyC;IAAzC,yCAAyC;E9DuzN3E;E8DrzNE;IAA8B,8BAA0B;IAA1B,0BAA0B;E9DwzN1D;E8DvzNE;IAA8B,gCAA4B;IAA5B,4BAA4B;E9D0zN5D;E8DzzNE;IAA8B,sCAAkC;IAAlC,kCAAkC;E9D4zNlE;E8D3zNE;IAA8B,6BAAyB;IAAzB,yBAAyB;E9D8zNzD;E8D7zNE;IAA8B,+BAAuB;IAAvB,uBAAuB;E9Dg0NvD;E8D/zNE;IAA8B,+BAAuB;IAAvB,uBAAuB;E9Dk0NvD;E8Dj0NE;IAA8B,+BAAyB;IAAzB,yBAAyB;E9Do0NzD;E8Dn0NE;IAA8B,+BAAyB;IAAzB,yBAAyB;E9Ds0NzD;E8Dp0NE;IAAoC,+BAAsC;IAAtC,sCAAsC;E9Du0N5E;E8Dt0NE;IAAoC,6BAAoC;IAApC,oCAAoC;E9Dy0N1E;E8Dx0NE;IAAoC,gCAAkC;IAAlC,kCAAkC;E9D20NxE;E8D10NE;IAAoC,iCAAyC;IAAzC,yCAAyC;E9D60N/E;E8D50NE;IAAoC,oCAAwC;IAAxC,wCAAwC;E9D+0N9E;E8D70NE;IAAiC,gCAAkC;IAAlC,kCAAkC;E9Dg1NrE;E8D/0NE;IAAiC,8BAAgC;IAAhC,gCAAgC;E9Dk1NnE;E8Dj1NE;IAAiC,iCAA8B;IAA9B,8BAA8B;E9Do1NjE;E8Dn1NE;IAAiC,mCAAgC;IAAhC,gCAAgC;E9Ds1NnE;E8Dr1NE;IAAiC,kCAA+B;IAA/B,+BAA+B;E9Dw1NlE;E8Dt1NE;IAAkC,oCAAoC;IAApC,oCAAoC;E9Dy1NxE;E8Dx1NE;IAAkC,kCAAkC;IAAlC,kCAAkC;E9D21NtE;E8D11NE;IAAkC,qCAAgC;IAAhC,gCAAgC;E9D61NpE;E8D51NE;IAAkC,sCAAuC;IAAvC,uCAAuC;E9D+1N3E;E8D91NE;IAAkC,yCAAsC;IAAtC,sCAAsC;E9Di2N1E;E8Dh2NE;IAAkC,sCAAiC;IAAjC,iCAAiC;E9Dm2NrE;E8Dj2NE;IAAgC,oCAA2B;IAA3B,2BAA2B;E9Do2N7D;E8Dn2NE;IAAgC,qCAAiC;IAAjC,iCAAiC;E9Ds2NnE;E8Dr2NE;IAAgC,mCAA+B;IAA/B,+BAA+B;E9Dw2NjE;E8Dv2NE;IAAgC,sCAA6B;IAA7B,6BAA6B;E9D02N/D;E8Dz2NE;IAAgC,wCAA+B;IAA/B,+BAA+B;E9D42NjE;E8D32NE;IAAgC,uCAA8B;IAA9B,8BAA8B;E9D82NhE;AACF;;Acn2NI;EgDlDA;IAAgC,kCAA8B;IAA9B,8BAA8B;E9D05NhE;E8Dz5NE;IAAgC,qCAAiC;IAAjC,iCAAiC;E9D45NnE;E8D35NE;IAAgC,0CAAsC;IAAtC,sCAAsC;E9D85NxE;E8D75NE;IAAgC,6CAAyC;IAAzC,yCAAyC;E9Dg6N3E;E8D95NE;IAA8B,8BAA0B;IAA1B,0BAA0B;E9Di6N1D;E8Dh6NE;IAA8B,gCAA4B;IAA5B,4BAA4B;E9Dm6N5D;E8Dl6NE;IAA8B,sCAAkC;IAAlC,kCAAkC;E9Dq6NlE;E8Dp6NE;IAA8B,6BAAyB;IAAzB,yBAAyB;E9Du6NzD;E8Dt6NE;IAA8B,+BAAuB;IAAvB,uBAAuB;E9Dy6NvD;E8Dx6NE;IAA8B,+BAAuB;IAAvB,uBAAuB;E9D26NvD;E8D16NE;IAA8B,+BAAyB;IAAzB,yBAAyB;E9D66NzD;E8D56NE;IAA8B,+BAAyB;IAAzB,yBAAyB;E9D+6NzD;E8D76NE;IAAoC,+BAAsC;IAAtC,sCAAsC;E9Dg7N5E;E8D/6NE;IAAoC,6BAAoC;IAApC,oCAAoC;E9Dk7N1E;E8Dj7NE;IAAoC,gCAAkC;IAAlC,kCAAkC;E9Do7NxE;E8Dn7NE;IAAoC,iCAAyC;IAAzC,yCAAyC;E9Ds7N/E;E8Dr7NE;IAAoC,oCAAwC;IAAxC,wCAAwC;E9Dw7N9E;E8Dt7NE;IAAiC,gCAAkC;IAAlC,kCAAkC;E9Dy7NrE;E8Dx7NE;IAAiC,8BAAgC;IAAhC,gCAAgC;E9D27NnE;E8D17NE;IAAiC,iCAA8B;IAA9B,8BAA8B;E9D67NjE;E8D57NE;IAAiC,mCAAgC;IAAhC,gCAAgC;E9D+7NnE;E8D97NE;IAAiC,kCAA+B;IAA/B,+BAA+B;E9Di8NlE;E8D/7NE;IAAkC,oCAAoC;IAApC,oCAAoC;E9Dk8NxE;E8Dj8NE;IAAkC,kCAAkC;IAAlC,kCAAkC;E9Do8NtE;E8Dn8NE;IAAkC,qCAAgC;IAAhC,gCAAgC;E9Ds8NpE;E8Dr8NE;IAAkC,sCAAuC;IAAvC,uCAAuC;E9Dw8N3E;E8Dv8NE;IAAkC,yCAAsC;IAAtC,sCAAsC;E9D08N1E;E8Dz8NE;IAAkC,sCAAiC;IAAjC,iCAAiC;E9D48NrE;E8D18NE;IAAgC,oCAA2B;IAA3B,2BAA2B;E9D68N7D;E8D58NE;IAAgC,qCAAiC;IAAjC,iCAAiC;E9D+8NnE;E8D98NE;IAAgC,mCAA+B;IAA/B,+BAA+B;E9Di9NjE;E8Dh9NE;IAAgC,sCAA6B;IAA7B,6BAA6B;E9Dm9N/D;E8Dl9NE;IAAgC,wCAA+B;IAA/B,+BAA+B;E9Dq9NjE;E8Dp9NE;IAAgC,uCAA8B;IAA9B,8BAA8B;E9Du9NhE;AACF;;Ac58NI;EgDlDA;IAAgC,kCAA8B;IAA9B,8BAA8B;E9DmgOhE;E8DlgOE;IAAgC,qCAAiC;IAAjC,iCAAiC;E9DqgOnE;E8DpgOE;IAAgC,0CAAsC;IAAtC,sCAAsC;E9DugOxE;E8DtgOE;IAAgC,6CAAyC;IAAzC,yCAAyC;E9DygO3E;E8DvgOE;IAA8B,8BAA0B;IAA1B,0BAA0B;E9D0gO1D;E8DzgOE;IAA8B,gCAA4B;IAA5B,4BAA4B;E9D4gO5D;E8D3gOE;IAA8B,sCAAkC;IAAlC,kCAAkC;E9D8gOlE;E8D7gOE;IAA8B,6BAAyB;IAAzB,yBAAyB;E9DghOzD;E8D/gOE;IAA8B,+BAAuB;IAAvB,uBAAuB;E9DkhOvD;E8DjhOE;IAA8B,+BAAuB;IAAvB,uBAAuB;E9DohOvD;E8DnhOE;IAA8B,+BAAyB;IAAzB,yBAAyB;E9DshOzD;E8DrhOE;IAA8B,+BAAyB;IAAzB,yBAAyB;E9DwhOzD;E8DthOE;IAAoC,+BAAsC;IAAtC,sCAAsC;E9DyhO5E;E8DxhOE;IAAoC,6BAAoC;IAApC,oCAAoC;E9D2hO1E;E8D1hOE;IAAoC,gCAAkC;IAAlC,kCAAkC;E9D6hOxE;E8D5hOE;IAAoC,iCAAyC;IAAzC,yCAAyC;E9D+hO/E;E8D9hOE;IAAoC,oCAAwC;IAAxC,wCAAwC;E9DiiO9E;E8D/hOE;IAAiC,gCAAkC;IAAlC,kCAAkC;E9DkiOrE;E8DjiOE;IAAiC,8BAAgC;IAAhC,gCAAgC;E9DoiOnE;E8DniOE;IAAiC,iCAA8B;IAA9B,8BAA8B;E9DsiOjE;E8DriOE;IAAiC,mCAAgC;IAAhC,gCAAgC;E9DwiOnE;E8DviOE;IAAiC,kCAA+B;IAA/B,+BAA+B;E9D0iOlE;E8DxiOE;IAAkC,oCAAoC;IAApC,oCAAoC;E9D2iOxE;E8D1iOE;IAAkC,kCAAkC;IAAlC,kCAAkC;E9D6iOtE;E8D5iOE;IAAkC,qCAAgC;IAAhC,gCAAgC;E9D+iOpE;E8D9iOE;IAAkC,sCAAuC;IAAvC,uCAAuC;E9DijO3E;E8DhjOE;IAAkC,yCAAsC;IAAtC,sCAAsC;E9DmjO1E;E8DljOE;IAAkC,sCAAiC;IAAjC,iCAAiC;E9DqjOrE;E8DnjOE;IAAgC,oCAA2B;IAA3B,2BAA2B;E9DsjO7D;E8DrjOE;IAAgC,qCAAiC;IAAjC,iCAAiC;E9DwjOnE;E8DvjOE;IAAgC,mCAA+B;IAA/B,+BAA+B;E9D0jOjE;E8DzjOE;IAAgC,sCAA6B;IAA7B,6BAA6B;E9D4jO/D;E8D3jOE;IAAgC,wCAA+B;IAA/B,+BAA+B;E9D8jOjE;E8D7jOE;IAAgC,uCAA8B;IAA9B,8BAA8B;E9DgkOhE;AACF;;A+D3mOI;EAAwB,sBAAsB;A/D+mOlD;;A+D9mOI;EAAwB,uBAAuB;A/DknOnD;;A+DjnOI;EAAwB,sBAAsB;A/DqnOlD;;AcjkOI;EiDtDA;IAAwB,sBAAsB;E/D4nOhD;E+D3nOE;IAAwB,uBAAuB;E/D8nOjD;E+D7nOE;IAAwB,sBAAsB;E/DgoOhD;AACF;;Ac7kOI;EiDtDA;IAAwB,sBAAsB;E/DwoOhD;E+DvoOE;IAAwB,uBAAuB;E/D0oOjD;E+DzoOE;IAAwB,sBAAsB;E/D4oOhD;AACF;;AczlOI;EiDtDA;IAAwB,sBAAsB;E/DopOhD;E+DnpOE;IAAwB,uBAAuB;E/DspOjD;E+DrpOE;IAAwB,sBAAsB;E/DwpOhD;AACF;;AcrmOI;EiDtDA;IAAwB,sBAAsB;E/DgqOhD;E+D/pOE;IAAwB,uBAAuB;E/DkqOjD;E+DjqOE;IAAwB,sBAAsB;E/DoqOhD;AACF;;AgE1qOE;EAAsB,yBAA2B;AhE8qOnD;;AgE9qOE;EAAsB,2BAA2B;AhEkrOnD;;AiEjrOE;EAAyB,2BAA8B;AjEqrOzD;;AiErrOE;EAAyB,6BAA8B;AjEyrOzD;;AiEzrOE;EAAyB,6BAA8B;AjE6rOzD;;AiE7rOE;EAAyB,0BAA8B;AjEisOzD;;AiEjsOE;EAAyB,mCAA8B;EAA9B,2BAA8B;AjEqsOzD;;AiEhsOA;EACE,eAAe;EACf,MAAM;EACN,QAAQ;EACR,OAAO;EACP,a9DoqBsC;AH+hNxC;;AiEhsOA;EACE,eAAe;EACf,QAAQ;EACR,SAAS;EACT,OAAO;EACP,a9D4pBsC;AHuiNxC;;AiE/rO8B;EAD9B;IAEI,wBAAgB;IAAhB,gBAAgB;IAChB,MAAM;IACN,a9DopBoC;EH+iNtC;AACF;;AkE7tOA;ECEE,kBAAkB;EAClB,UAAU;EACV,WAAW;EACX,UAAU;EACV,YAAY;EACZ,gBAAgB;EAChB,sBAAsB;EACtB,mBAAmB;EACnB,SAAS;AnE+tOX;;AmErtOE;EAEE,gBAAgB;EAChB,WAAW;EACX,YAAY;EACZ,iBAAiB;EACjB,UAAU;EACV,mBAAmB;AnEutOvB;;AoEpvOA;EAAa,8DAAqC;ApEwvOlD;;AoEvvOA;EAAU,wDAAkC;ApE2vO5C;;AoE1vOA;EAAa,uDAAqC;ApE8vOlD;;AoE7vOA;EAAe,2BAA2B;ApEiwO1C;;AqEhwOI;EAAuB,qBAA4B;ArEowOvD;;AqEpwOI;EAAuB,qBAA4B;ArEwwOvD;;AqExwOI;EAAuB,qBAA4B;ArE4wOvD;;AqE5wOI;EAAuB,sBAA4B;ArEgxOvD;;AqEhxOI;EAAuB,sBAA4B;ArEoxOvD;;AqEpxOI;EAAuB,sBAA4B;ArEwxOvD;;AqExxOI;EAAuB,sBAA4B;ArE4xOvD;;AqE5xOI;EAAuB,sBAA4B;ArEgyOvD;;AqEhyOI;EAAuB,uBAA4B;ArEoyOvD;;AqEpyOI;EAAuB,uBAA4B;ArEwyOvD;;AqEpyOA;EAAU,0BAA0B;ArEwyOpC;;AqEvyOA;EAAU,2BAA2B;ArE2yOrC;;AqEvyOA;EAAc,2BAA2B;ArE2yOzC;;AqE1yOA;EAAc,4BAA4B;ArE8yO1C;;AqE5yOA;EAAU,uBAAuB;ArEgzOjC;;AqE/yOA;EAAU,wBAAwB;ArEmzOlC;;AsEl0OA;EAEI,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,SAAS;EACT,OAAO;EACP,UAAU;EAEV,oBAAoB;EACpB,WAAW;EAEX,kCAAkC;AtEk0OtC;;AuEx0OQ;EAAgC,oBAA4B;AvE40OpE;;AuE30OQ;;EAEE,wBAAoC;AvE80O9C;;AuE50OQ;;EAEE,0BAAwC;AvE+0OlD;;AuE70OQ;;EAEE,2BAA0C;AvEg1OpD;;AuE90OQ;;EAEE,yBAAsC;AvEi1OhD;;AuEh2OQ;EAAgC,0BAA4B;AvEo2OpE;;AuEn2OQ;;EAEE,8BAAoC;AvEs2O9C;;AuEp2OQ;;EAEE,gCAAwC;AvEu2OlD;;AuEr2OQ;;EAEE,iCAA0C;AvEw2OpD;;AuEt2OQ;;EAEE,+BAAsC;AvEy2OhD;;AuEx3OQ;EAAgC,yBAA4B;AvE43OpE;;AuE33OQ;;EAEE,6BAAoC;AvE83O9C;;AuE53OQ;;EAEE,+BAAwC;AvE+3OlD;;AuE73OQ;;EAEE,gCAA0C;AvEg4OpD;;AuE93OQ;;EAEE,8BAAsC;AvEi4OhD;;AuEh5OQ;EAAgC,uBAA4B;AvEo5OpE;;AuEn5OQ;;EAEE,2BAAoC;AvEs5O9C;;AuEp5OQ;;EAEE,6BAAwC;AvEu5OlD;;AuEr5OQ;;EAEE,8BAA0C;AvEw5OpD;;AuEt5OQ;;EAEE,4BAAsC;AvEy5OhD;;AuEx6OQ;EAAgC,yBAA4B;AvE46OpE;;AuE36OQ;;EAEE,6BAAoC;AvE86O9C;;AuE56OQ;;EAEE,+BAAwC;AvE+6OlD;;AuE76OQ;;EAEE,gCAA0C;AvEg7OpD;;AuE96OQ;;EAEE,8BAAsC;AvEi7OhD;;AuEh8OQ;EAAgC,uBAA4B;AvEo8OpE;;AuEn8OQ;;EAEE,2BAAoC;AvEs8O9C;;AuEp8OQ;;EAEE,6BAAwC;AvEu8OlD;;AuEr8OQ;;EAEE,8BAA0C;AvEw8OpD;;AuEt8OQ;;EAEE,4BAAsC;AvEy8OhD;;AuEx9OQ;EAAgC,qBAA4B;AvE49OpE;;AuE39OQ;;EAEE,yBAAoC;AvE89O9C;;AuE59OQ;;EAEE,2BAAwC;AvE+9OlD;;AuE79OQ;;EAEE,4BAA0C;AvEg+OpD;;AuE99OQ;;EAEE,0BAAsC;AvEi+OhD;;AuEh/OQ;EAAgC,2BAA4B;AvEo/OpE;;AuEn/OQ;;EAEE,+BAAoC;AvEs/O9C;;AuEp/OQ;;EAEE,iCAAwC;AvEu/OlD;;AuEr/OQ;;EAEE,kCAA0C;AvEw/OpD;;AuEt/OQ;;EAEE,gCAAsC;AvEy/OhD;;AuExgPQ;EAAgC,0BAA4B;AvE4gPpE;;AuE3gPQ;;EAEE,8BAAoC;AvE8gP9C;;AuE5gPQ;;EAEE,gCAAwC;AvE+gPlD;;AuE7gPQ;;EAEE,iCAA0C;AvEghPpD;;AuE9gPQ;;EAEE,+BAAsC;AvEihPhD;;AuEhiPQ;EAAgC,wBAA4B;AvEoiPpE;;AuEniPQ;;EAEE,4BAAoC;AvEsiP9C;;AuEpiPQ;;EAEE,8BAAwC;AvEuiPlD;;AuEriPQ;;EAEE,+BAA0C;AvEwiPpD;;AuEtiPQ;;EAEE,6BAAsC;AvEyiPhD;;AuExjPQ;EAAgC,0BAA4B;AvE4jPpE;;AuE3jPQ;;EAEE,8BAAoC;AvE8jP9C;;AuE5jPQ;;EAEE,gCAAwC;AvE+jPlD;;AuE7jPQ;;EAEE,iCAA0C;AvEgkPpD;;AuE9jPQ;;EAEE,+BAAsC;AvEikPhD;;AuEhlPQ;EAAgC,wBAA4B;AvEolPpE;;AuEnlPQ;;EAEE,4BAAoC;AvEslP9C;;AuEplPQ;;EAEE,8BAAwC;AvEulPlD;;AuErlPQ;;EAEE,+BAA0C;AvEwlPpD;;AuEtlPQ;;EAEE,6BAAsC;AvEylPhD;;AuEjlPQ;EAAwB,2BAA2B;AvEqlP3D;;AuEplPQ;;EAEE,+BAA+B;AvEulPzC;;AuErlPQ;;EAEE,iCAAiC;AvEwlP3C;;AuEtlPQ;;EAEE,kCAAkC;AvEylP5C;;AuEvlPQ;;EAEE,gCAAgC;AvE0lP1C;;AuEzmPQ;EAAwB,0BAA2B;AvE6mP3D;;AuE5mPQ;;EAEE,8BAA+B;AvE+mPzC;;AuE7mPQ;;EAEE,gCAAiC;AvEgnP3C;;AuE9mPQ;;EAEE,iCAAkC;AvEinP5C;;AuE/mPQ;;EAEE,+BAAgC;AvEknP1C;;AuEjoPQ;EAAwB,wBAA2B;AvEqoP3D;;AuEpoPQ;;EAEE,4BAA+B;AvEuoPzC;;AuEroPQ;;EAEE,8BAAiC;AvEwoP3C;;AuEtoPQ;;EAEE,+BAAkC;AvEyoP5C;;AuEvoPQ;;EAEE,6BAAgC;AvE0oP1C;;AuEzpPQ;EAAwB,0BAA2B;AvE6pP3D;;AuE5pPQ;;EAEE,8BAA+B;AvE+pPzC;;AuE7pPQ;;EAEE,gCAAiC;AvEgqP3C;;AuE9pPQ;;EAEE,iCAAkC;AvEiqP5C;;AuE/pPQ;;EAEE,+BAAgC;AvEkqP1C;;AuEjrPQ;EAAwB,wBAA2B;AvEqrP3D;;AuEprPQ;;EAEE,4BAA+B;AvEurPzC;;AuErrPQ;;EAEE,8BAAiC;AvEwrP3C;;AuEtrPQ;;EAEE,+BAAkC;AvEyrP5C;;AuEvrPQ;;EAEE,6BAAgC;AvE0rP1C;;AuEprPI;EAAmB,uBAAuB;AvEwrP9C;;AuEvrPI;;EAEE,2BAA2B;AvE0rPjC;;AuExrPI;;EAEE,6BAA6B;AvE2rPnC;;AuEzrPI;;EAEE,8BAA8B;AvE4rPpC;;AuE1rPI;;EAEE,4BAA4B;AvE6rPlC;;ActsPI;EyDlDI;IAAgC,oBAA4B;EvE6vPlE;EuE5vPM;;IAEE,wBAAoC;EvE8vP5C;EuE5vPM;;IAEE,0BAAwC;EvE8vPhD;EuE5vPM;;IAEE,2BAA0C;EvE8vPlD;EuE5vPM;;IAEE,yBAAsC;EvE8vP9C;EuE7wPM;IAAgC,0BAA4B;EvEgxPlE;EuE/wPM;;IAEE,8BAAoC;EvEixP5C;EuE/wPM;;IAEE,gCAAwC;EvEixPhD;EuE/wPM;;IAEE,iCAA0C;EvEixPlD;EuE/wPM;;IAEE,+BAAsC;EvEixP9C;EuEhyPM;IAAgC,yBAA4B;EvEmyPlE;EuElyPM;;IAEE,6BAAoC;EvEoyP5C;EuElyPM;;IAEE,+BAAwC;EvEoyPhD;EuElyPM;;IAEE,gCAA0C;EvEoyPlD;EuElyPM;;IAEE,8BAAsC;EvEoyP9C;EuEnzPM;IAAgC,uBAA4B;EvEszPlE;EuErzPM;;IAEE,2BAAoC;EvEuzP5C;EuErzPM;;IAEE,6BAAwC;EvEuzPhD;EuErzPM;;IAEE,8BAA0C;EvEuzPlD;EuErzPM;;IAEE,4BAAsC;EvEuzP9C;EuEt0PM;IAAgC,yBAA4B;EvEy0PlE;EuEx0PM;;IAEE,6BAAoC;EvE00P5C;EuEx0PM;;IAEE,+BAAwC;EvE00PhD;EuEx0PM;;IAEE,gCAA0C;EvE00PlD;EuEx0PM;;IAEE,8BAAsC;EvE00P9C;EuEz1PM;IAAgC,uBAA4B;EvE41PlE;EuE31PM;;IAEE,2BAAoC;EvE61P5C;EuE31PM;;IAEE,6BAAwC;EvE61PhD;EuE31PM;;IAEE,8BAA0C;EvE61PlD;EuE31PM;;IAEE,4BAAsC;EvE61P9C;EuE52PM;IAAgC,qBAA4B;EvE+2PlE;EuE92PM;;IAEE,yBAAoC;EvEg3P5C;EuE92PM;;IAEE,2BAAwC;EvEg3PhD;EuE92PM;;IAEE,4BAA0C;EvEg3PlD;EuE92PM;;IAEE,0BAAsC;EvEg3P9C;EuE/3PM;IAAgC,2BAA4B;EvEk4PlE;EuEj4PM;;IAEE,+BAAoC;EvEm4P5C;EuEj4PM;;IAEE,iCAAwC;EvEm4PhD;EuEj4PM;;IAEE,kCAA0C;EvEm4PlD;EuEj4PM;;IAEE,gCAAsC;EvEm4P9C;EuEl5PM;IAAgC,0BAA4B;EvEq5PlE;EuEp5PM;;IAEE,8BAAoC;EvEs5P5C;EuEp5PM;;IAEE,gCAAwC;EvEs5PhD;EuEp5PM;;IAEE,iCAA0C;EvEs5PlD;EuEp5PM;;IAEE,+BAAsC;EvEs5P9C;EuEr6PM;IAAgC,wBAA4B;EvEw6PlE;EuEv6PM;;IAEE,4BAAoC;EvEy6P5C;EuEv6PM;;IAEE,8BAAwC;EvEy6PhD;EuEv6PM;;IAEE,+BAA0C;EvEy6PlD;EuEv6PM;;IAEE,6BAAsC;EvEy6P9C;EuEx7PM;IAAgC,0BAA4B;EvE27PlE;EuE17PM;;IAEE,8BAAoC;EvE47P5C;EuE17PM;;IAEE,gCAAwC;EvE47PhD;EuE17PM;;IAEE,iCAA0C;EvE47PlD;EuE17PM;;IAEE,+BAAsC;EvE47P9C;EuE38PM;IAAgC,wBAA4B;EvE88PlE;EuE78PM;;IAEE,4BAAoC;EvE+8P5C;EuE78PM;;IAEE,8BAAwC;EvE+8PhD;EuE78PM;;IAEE,+BAA0C;EvE+8PlD;EuE78PM;;IAEE,6BAAsC;EvE+8P9C;EuEv8PM;IAAwB,2BAA2B;EvE08PzD;EuEz8PM;;IAEE,+BAA+B;EvE28PvC;EuEz8PM;;IAEE,iCAAiC;EvE28PzC;EuEz8PM;;IAEE,kCAAkC;EvE28P1C;EuEz8PM;;IAEE,gCAAgC;EvE28PxC;EuE19PM;IAAwB,0BAA2B;EvE69PzD;EuE59PM;;IAEE,8BAA+B;EvE89PvC;EuE59PM;;IAEE,gCAAiC;EvE89PzC;EuE59PM;;IAEE,iCAAkC;EvE89P1C;EuE59PM;;IAEE,+BAAgC;EvE89PxC;EuE7+PM;IAAwB,wBAA2B;EvEg/PzD;EuE/+PM;;IAEE,4BAA+B;EvEi/PvC;EuE/+PM;;IAEE,8BAAiC;EvEi/PzC;EuE/+PM;;IAEE,+BAAkC;EvEi/P1C;EuE/+PM;;IAEE,6BAAgC;EvEi/PxC;EuEhgQM;IAAwB,0BAA2B;EvEmgQzD;EuElgQM;;IAEE,8BAA+B;EvEogQvC;EuElgQM;;IAEE,gCAAiC;EvEogQzC;EuElgQM;;IAEE,iCAAkC;EvEogQ1C;EuElgQM;;IAEE,+BAAgC;EvEogQxC;EuEnhQM;IAAwB,wBAA2B;EvEshQzD;EuErhQM;;IAEE,4BAA+B;EvEuhQvC;EuErhQM;;IAEE,8BAAiC;EvEuhQzC;EuErhQM;;IAEE,+BAAkC;EvEuhQ1C;EuErhQM;;IAEE,6BAAgC;EvEuhQxC;EuEjhQE;IAAmB,uBAAuB;EvEohQ5C;EuEnhQE;;IAEE,2BAA2B;EvEqhQ/B;EuEnhQE;;IAEE,6BAA6B;EvEqhQjC;EuEnhQE;;IAEE,8BAA8B;EvEqhQlC;EuEnhQE;;IAEE,4BAA4B;EvEqhQhC;AACF;;Ac/hQI;EyDlDI;IAAgC,oBAA4B;EvEslQlE;EuErlQM;;IAEE,wBAAoC;EvEulQ5C;EuErlQM;;IAEE,0BAAwC;EvEulQhD;EuErlQM;;IAEE,2BAA0C;EvEulQlD;EuErlQM;;IAEE,yBAAsC;EvEulQ9C;EuEtmQM;IAAgC,0BAA4B;EvEymQlE;EuExmQM;;IAEE,8BAAoC;EvE0mQ5C;EuExmQM;;IAEE,gCAAwC;EvE0mQhD;EuExmQM;;IAEE,iCAA0C;EvE0mQlD;EuExmQM;;IAEE,+BAAsC;EvE0mQ9C;EuEznQM;IAAgC,yBAA4B;EvE4nQlE;EuE3nQM;;IAEE,6BAAoC;EvE6nQ5C;EuE3nQM;;IAEE,+BAAwC;EvE6nQhD;EuE3nQM;;IAEE,gCAA0C;EvE6nQlD;EuE3nQM;;IAEE,8BAAsC;EvE6nQ9C;EuE5oQM;IAAgC,uBAA4B;EvE+oQlE;EuE9oQM;;IAEE,2BAAoC;EvEgpQ5C;EuE9oQM;;IAEE,6BAAwC;EvEgpQhD;EuE9oQM;;IAEE,8BAA0C;EvEgpQlD;EuE9oQM;;IAEE,4BAAsC;EvEgpQ9C;EuE/pQM;IAAgC,yBAA4B;EvEkqQlE;EuEjqQM;;IAEE,6BAAoC;EvEmqQ5C;EuEjqQM;;IAEE,+BAAwC;EvEmqQhD;EuEjqQM;;IAEE,gCAA0C;EvEmqQlD;EuEjqQM;;IAEE,8BAAsC;EvEmqQ9C;EuElrQM;IAAgC,uBAA4B;EvEqrQlE;EuEprQM;;IAEE,2BAAoC;EvEsrQ5C;EuEprQM;;IAEE,6BAAwC;EvEsrQhD;EuEprQM;;IAEE,8BAA0C;EvEsrQlD;EuEprQM;;IAEE,4BAAsC;EvEsrQ9C;EuErsQM;IAAgC,qBAA4B;EvEwsQlE;EuEvsQM;;IAEE,yBAAoC;EvEysQ5C;EuEvsQM;;IAEE,2BAAwC;EvEysQhD;EuEvsQM;;IAEE,4BAA0C;EvEysQlD;EuEvsQM;;IAEE,0BAAsC;EvEysQ9C;EuExtQM;IAAgC,2BAA4B;EvE2tQlE;EuE1tQM;;IAEE,+BAAoC;EvE4tQ5C;EuE1tQM;;IAEE,iCAAwC;EvE4tQhD;EuE1tQM;;IAEE,kCAA0C;EvE4tQlD;EuE1tQM;;IAEE,gCAAsC;EvE4tQ9C;EuE3uQM;IAAgC,0BAA4B;EvE8uQlE;EuE7uQM;;IAEE,8BAAoC;EvE+uQ5C;EuE7uQM;;IAEE,gCAAwC;EvE+uQhD;EuE7uQM;;IAEE,iCAA0C;EvE+uQlD;EuE7uQM;;IAEE,+BAAsC;EvE+uQ9C;EuE9vQM;IAAgC,wBAA4B;EvEiwQlE;EuEhwQM;;IAEE,4BAAoC;EvEkwQ5C;EuEhwQM;;IAEE,8BAAwC;EvEkwQhD;EuEhwQM;;IAEE,+BAA0C;EvEkwQlD;EuEhwQM;;IAEE,6BAAsC;EvEkwQ9C;EuEjxQM;IAAgC,0BAA4B;EvEoxQlE;EuEnxQM;;IAEE,8BAAoC;EvEqxQ5C;EuEnxQM;;IAEE,gCAAwC;EvEqxQhD;EuEnxQM;;IAEE,iCAA0C;EvEqxQlD;EuEnxQM;;IAEE,+BAAsC;EvEqxQ9C;EuEpyQM;IAAgC,wBAA4B;EvEuyQlE;EuEtyQM;;IAEE,4BAAoC;EvEwyQ5C;EuEtyQM;;IAEE,8BAAwC;EvEwyQhD;EuEtyQM;;IAEE,+BAA0C;EvEwyQlD;EuEtyQM;;IAEE,6BAAsC;EvEwyQ9C;EuEhyQM;IAAwB,2BAA2B;EvEmyQzD;EuElyQM;;IAEE,+BAA+B;EvEoyQvC;EuElyQM;;IAEE,iCAAiC;EvEoyQzC;EuElyQM;;IAEE,kCAAkC;EvEoyQ1C;EuElyQM;;IAEE,gCAAgC;EvEoyQxC;EuEnzQM;IAAwB,0BAA2B;EvEszQzD;EuErzQM;;IAEE,8BAA+B;EvEuzQvC;EuErzQM;;IAEE,gCAAiC;EvEuzQzC;EuErzQM;;IAEE,iCAAkC;EvEuzQ1C;EuErzQM;;IAEE,+BAAgC;EvEuzQxC;EuEt0QM;IAAwB,wBAA2B;EvEy0QzD;EuEx0QM;;IAEE,4BAA+B;EvE00QvC;EuEx0QM;;IAEE,8BAAiC;EvE00QzC;EuEx0QM;;IAEE,+BAAkC;EvE00Q1C;EuEx0QM;;IAEE,6BAAgC;EvE00QxC;EuEz1QM;IAAwB,0BAA2B;EvE41QzD;EuE31QM;;IAEE,8BAA+B;EvE61QvC;EuE31QM;;IAEE,gCAAiC;EvE61QzC;EuE31QM;;IAEE,iCAAkC;EvE61Q1C;EuE31QM;;IAEE,+BAAgC;EvE61QxC;EuE52QM;IAAwB,wBAA2B;EvE+2QzD;EuE92QM;;IAEE,4BAA+B;EvEg3QvC;EuE92QM;;IAEE,8BAAiC;EvEg3QzC;EuE92QM;;IAEE,+BAAkC;EvEg3Q1C;EuE92QM;;IAEE,6BAAgC;EvEg3QxC;EuE12QE;IAAmB,uBAAuB;EvE62Q5C;EuE52QE;;IAEE,2BAA2B;EvE82Q/B;EuE52QE;;IAEE,6BAA6B;EvE82QjC;EuE52QE;;IAEE,8BAA8B;EvE82QlC;EuE52QE;;IAEE,4BAA4B;EvE82QhC;AACF;;Acx3QI;EyDlDI;IAAgC,oBAA4B;EvE+6QlE;EuE96QM;;IAEE,wBAAoC;EvEg7Q5C;EuE96QM;;IAEE,0BAAwC;EvEg7QhD;EuE96QM;;IAEE,2BAA0C;EvEg7QlD;EuE96QM;;IAEE,yBAAsC;EvEg7Q9C;EuE/7QM;IAAgC,0BAA4B;EvEk8QlE;EuEj8QM;;IAEE,8BAAoC;EvEm8Q5C;EuEj8QM;;IAEE,gCAAwC;EvEm8QhD;EuEj8QM;;IAEE,iCAA0C;EvEm8QlD;EuEj8QM;;IAEE,+BAAsC;EvEm8Q9C;EuEl9QM;IAAgC,yBAA4B;EvEq9QlE;EuEp9QM;;IAEE,6BAAoC;EvEs9Q5C;EuEp9QM;;IAEE,+BAAwC;EvEs9QhD;EuEp9QM;;IAEE,gCAA0C;EvEs9QlD;EuEp9QM;;IAEE,8BAAsC;EvEs9Q9C;EuEr+QM;IAAgC,uBAA4B;EvEw+QlE;EuEv+QM;;IAEE,2BAAoC;EvEy+Q5C;EuEv+QM;;IAEE,6BAAwC;EvEy+QhD;EuEv+QM;;IAEE,8BAA0C;EvEy+QlD;EuEv+QM;;IAEE,4BAAsC;EvEy+Q9C;EuEx/QM;IAAgC,yBAA4B;EvE2/QlE;EuE1/QM;;IAEE,6BAAoC;EvE4/Q5C;EuE1/QM;;IAEE,+BAAwC;EvE4/QhD;EuE1/QM;;IAEE,gCAA0C;EvE4/QlD;EuE1/QM;;IAEE,8BAAsC;EvE4/Q9C;EuE3gRM;IAAgC,uBAA4B;EvE8gRlE;EuE7gRM;;IAEE,2BAAoC;EvE+gR5C;EuE7gRM;;IAEE,6BAAwC;EvE+gRhD;EuE7gRM;;IAEE,8BAA0C;EvE+gRlD;EuE7gRM;;IAEE,4BAAsC;EvE+gR9C;EuE9hRM;IAAgC,qBAA4B;EvEiiRlE;EuEhiRM;;IAEE,yBAAoC;EvEkiR5C;EuEhiRM;;IAEE,2BAAwC;EvEkiRhD;EuEhiRM;;IAEE,4BAA0C;EvEkiRlD;EuEhiRM;;IAEE,0BAAsC;EvEkiR9C;EuEjjRM;IAAgC,2BAA4B;EvEojRlE;EuEnjRM;;IAEE,+BAAoC;EvEqjR5C;EuEnjRM;;IAEE,iCAAwC;EvEqjRhD;EuEnjRM;;IAEE,kCAA0C;EvEqjRlD;EuEnjRM;;IAEE,gCAAsC;EvEqjR9C;EuEpkRM;IAAgC,0BAA4B;EvEukRlE;EuEtkRM;;IAEE,8BAAoC;EvEwkR5C;EuEtkRM;;IAEE,gCAAwC;EvEwkRhD;EuEtkRM;;IAEE,iCAA0C;EvEwkRlD;EuEtkRM;;IAEE,+BAAsC;EvEwkR9C;EuEvlRM;IAAgC,wBAA4B;EvE0lRlE;EuEzlRM;;IAEE,4BAAoC;EvE2lR5C;EuEzlRM;;IAEE,8BAAwC;EvE2lRhD;EuEzlRM;;IAEE,+BAA0C;EvE2lRlD;EuEzlRM;;IAEE,6BAAsC;EvE2lR9C;EuE1mRM;IAAgC,0BAA4B;EvE6mRlE;EuE5mRM;;IAEE,8BAAoC;EvE8mR5C;EuE5mRM;;IAEE,gCAAwC;EvE8mRhD;EuE5mRM;;IAEE,iCAA0C;EvE8mRlD;EuE5mRM;;IAEE,+BAAsC;EvE8mR9C;EuE7nRM;IAAgC,wBAA4B;EvEgoRlE;EuE/nRM;;IAEE,4BAAoC;EvEioR5C;EuE/nRM;;IAEE,8BAAwC;EvEioRhD;EuE/nRM;;IAEE,+BAA0C;EvEioRlD;EuE/nRM;;IAEE,6BAAsC;EvEioR9C;EuEznRM;IAAwB,2BAA2B;EvE4nRzD;EuE3nRM;;IAEE,+BAA+B;EvE6nRvC;EuE3nRM;;IAEE,iCAAiC;EvE6nRzC;EuE3nRM;;IAEE,kCAAkC;EvE6nR1C;EuE3nRM;;IAEE,gCAAgC;EvE6nRxC;EuE5oRM;IAAwB,0BAA2B;EvE+oRzD;EuE9oRM;;IAEE,8BAA+B;EvEgpRvC;EuE9oRM;;IAEE,gCAAiC;EvEgpRzC;EuE9oRM;;IAEE,iCAAkC;EvEgpR1C;EuE9oRM;;IAEE,+BAAgC;EvEgpRxC;EuE/pRM;IAAwB,wBAA2B;EvEkqRzD;EuEjqRM;;IAEE,4BAA+B;EvEmqRvC;EuEjqRM;;IAEE,8BAAiC;EvEmqRzC;EuEjqRM;;IAEE,+BAAkC;EvEmqR1C;EuEjqRM;;IAEE,6BAAgC;EvEmqRxC;EuElrRM;IAAwB,0BAA2B;EvEqrRzD;EuEprRM;;IAEE,8BAA+B;EvEsrRvC;EuEprRM;;IAEE,gCAAiC;EvEsrRzC;EuEprRM;;IAEE,iCAAkC;EvEsrR1C;EuEprRM;;IAEE,+BAAgC;EvEsrRxC;EuErsRM;IAAwB,wBAA2B;EvEwsRzD;EuEvsRM;;IAEE,4BAA+B;EvEysRvC;EuEvsRM;;IAEE,8BAAiC;EvEysRzC;EuEvsRM;;IAEE,+BAAkC;EvEysR1C;EuEvsRM;;IAEE,6BAAgC;EvEysRxC;EuEnsRE;IAAmB,uBAAuB;EvEssR5C;EuErsRE;;IAEE,2BAA2B;EvEusR/B;EuErsRE;;IAEE,6BAA6B;EvEusRjC;EuErsRE;;IAEE,8BAA8B;EvEusRlC;EuErsRE;;IAEE,4BAA4B;EvEusRhC;AACF;;AcjtRI;EyDlDI;IAAgC,oBAA4B;EvEwwRlE;EuEvwRM;;IAEE,wBAAoC;EvEywR5C;EuEvwRM;;IAEE,0BAAwC;EvEywRhD;EuEvwRM;;IAEE,2BAA0C;EvEywRlD;EuEvwRM;;IAEE,yBAAsC;EvEywR9C;EuExxRM;IAAgC,0BAA4B;EvE2xRlE;EuE1xRM;;IAEE,8BAAoC;EvE4xR5C;EuE1xRM;;IAEE,gCAAwC;EvE4xRhD;EuE1xRM;;IAEE,iCAA0C;EvE4xRlD;EuE1xRM;;IAEE,+BAAsC;EvE4xR9C;EuE3yRM;IAAgC,yBAA4B;EvE8yRlE;EuE7yRM;;IAEE,6BAAoC;EvE+yR5C;EuE7yRM;;IAEE,+BAAwC;EvE+yRhD;EuE7yRM;;IAEE,gCAA0C;EvE+yRlD;EuE7yRM;;IAEE,8BAAsC;EvE+yR9C;EuE9zRM;IAAgC,uBAA4B;EvEi0RlE;EuEh0RM;;IAEE,2BAAoC;EvEk0R5C;EuEh0RM;;IAEE,6BAAwC;EvEk0RhD;EuEh0RM;;IAEE,8BAA0C;EvEk0RlD;EuEh0RM;;IAEE,4BAAsC;EvEk0R9C;EuEj1RM;IAAgC,yBAA4B;EvEo1RlE;EuEn1RM;;IAEE,6BAAoC;EvEq1R5C;EuEn1RM;;IAEE,+BAAwC;EvEq1RhD;EuEn1RM;;IAEE,gCAA0C;EvEq1RlD;EuEn1RM;;IAEE,8BAAsC;EvEq1R9C;EuEp2RM;IAAgC,uBAA4B;EvEu2RlE;EuEt2RM;;IAEE,2BAAoC;EvEw2R5C;EuEt2RM;;IAEE,6BAAwC;EvEw2RhD;EuEt2RM;;IAEE,8BAA0C;EvEw2RlD;EuEt2RM;;IAEE,4BAAsC;EvEw2R9C;EuEv3RM;IAAgC,qBAA4B;EvE03RlE;EuEz3RM;;IAEE,yBAAoC;EvE23R5C;EuEz3RM;;IAEE,2BAAwC;EvE23RhD;EuEz3RM;;IAEE,4BAA0C;EvE23RlD;EuEz3RM;;IAEE,0BAAsC;EvE23R9C;EuE14RM;IAAgC,2BAA4B;EvE64RlE;EuE54RM;;IAEE,+BAAoC;EvE84R5C;EuE54RM;;IAEE,iCAAwC;EvE84RhD;EuE54RM;;IAEE,kCAA0C;EvE84RlD;EuE54RM;;IAEE,gCAAsC;EvE84R9C;EuE75RM;IAAgC,0BAA4B;EvEg6RlE;EuE/5RM;;IAEE,8BAAoC;EvEi6R5C;EuE/5RM;;IAEE,gCAAwC;EvEi6RhD;EuE/5RM;;IAEE,iCAA0C;EvEi6RlD;EuE/5RM;;IAEE,+BAAsC;EvEi6R9C;EuEh7RM;IAAgC,wBAA4B;EvEm7RlE;EuEl7RM;;IAEE,4BAAoC;EvEo7R5C;EuEl7RM;;IAEE,8BAAwC;EvEo7RhD;EuEl7RM;;IAEE,+BAA0C;EvEo7RlD;EuEl7RM;;IAEE,6BAAsC;EvEo7R9C;EuEn8RM;IAAgC,0BAA4B;EvEs8RlE;EuEr8RM;;IAEE,8BAAoC;EvEu8R5C;EuEr8RM;;IAEE,gCAAwC;EvEu8RhD;EuEr8RM;;IAEE,iCAA0C;EvEu8RlD;EuEr8RM;;IAEE,+BAAsC;EvEu8R9C;EuEt9RM;IAAgC,wBAA4B;EvEy9RlE;EuEx9RM;;IAEE,4BAAoC;EvE09R5C;EuEx9RM;;IAEE,8BAAwC;EvE09RhD;EuEx9RM;;IAEE,+BAA0C;EvE09RlD;EuEx9RM;;IAEE,6BAAsC;EvE09R9C;EuEl9RM;IAAwB,2BAA2B;EvEq9RzD;EuEp9RM;;IAEE,+BAA+B;EvEs9RvC;EuEp9RM;;IAEE,iCAAiC;EvEs9RzC;EuEp9RM;;IAEE,kCAAkC;EvEs9R1C;EuEp9RM;;IAEE,gCAAgC;EvEs9RxC;EuEr+RM;IAAwB,0BAA2B;EvEw+RzD;EuEv+RM;;IAEE,8BAA+B;EvEy+RvC;EuEv+RM;;IAEE,gCAAiC;EvEy+RzC;EuEv+RM;;IAEE,iCAAkC;EvEy+R1C;EuEv+RM;;IAEE,+BAAgC;EvEy+RxC;EuEx/RM;IAAwB,wBAA2B;EvE2/RzD;EuE1/RM;;IAEE,4BAA+B;EvE4/RvC;EuE1/RM;;IAEE,8BAAiC;EvE4/RzC;EuE1/RM;;IAEE,+BAAkC;EvE4/R1C;EuE1/RM;;IAEE,6BAAgC;EvE4/RxC;EuE3gSM;IAAwB,0BAA2B;EvE8gSzD;EuE7gSM;;IAEE,8BAA+B;EvE+gSvC;EuE7gSM;;IAEE,gCAAiC;EvE+gSzC;EuE7gSM;;IAEE,iCAAkC;EvE+gS1C;EuE7gSM;;IAEE,+BAAgC;EvE+gSxC;EuE9hSM;IAAwB,wBAA2B;EvEiiSzD;EuEhiSM;;IAEE,4BAA+B;EvEkiSvC;EuEhiSM;;IAEE,8BAAiC;EvEkiSzC;EuEhiSM;;IAEE,+BAAkC;EvEkiS1C;EuEhiSM;;IAEE,6BAAgC;EvEkiSxC;EuE5hSE;IAAmB,uBAAuB;EvE+hS5C;EuE9hSE;;IAEE,2BAA2B;EvEgiS/B;EuE9hSE;;IAEE,6BAA6B;EvEgiSjC;EuE9hSE;;IAEE,8BAA8B;EvEgiSlC;EuE9hSE;;IAEE,4BAA4B;EvEgiShC;AACF;;AwEhmSA;EAAkB,4GAA8C;AxEomShE;;AwEhmSA;EAAiB,8BAA8B;AxEomS/C;;AwEnmSA;EAAiB,8BAA8B;AxEumS/C;;AwEtmSA;EAAiB,8BAA8B;AxE0mS/C;;AwEzmSA;ECTE,gBAAgB;EAChB,uBAAuB;EACvB,mBAAmB;AzEsnSrB;;AwEvmSI;EAAwB,2BAA2B;AxE2mSvD;;AwE1mSI;EAAwB,4BAA4B;AxE8mSxD;;AwE7mSI;EAAwB,6BAA6B;AxEinSzD;;Ac5kSI;E0DvCA;IAAwB,2BAA2B;ExEwnSrD;EwEvnSE;IAAwB,4BAA4B;ExE0nStD;EwEznSE;IAAwB,6BAA6B;ExE4nSvD;AACF;;AcxlSI;E0DvCA;IAAwB,2BAA2B;ExEooSrD;EwEnoSE;IAAwB,4BAA4B;ExEsoStD;EwEroSE;IAAwB,6BAA6B;ExEwoSvD;AACF;;AcpmSI;E0DvCA;IAAwB,2BAA2B;ExEgpSrD;EwE/oSE;IAAwB,4BAA4B;ExEkpStD;EwEjpSE;IAAwB,6BAA6B;ExEopSvD;AACF;;AchnSI;E0DvCA;IAAwB,2BAA2B;ExE4pSrD;EwE3pSE;IAAwB,4BAA4B;ExE8pStD;EwE7pSE;IAAwB,6BAA6B;ExEgqSvD;AACF;;AwE3pSA;EAAmB,oCAAoC;AxE+pSvD;;AwE9pSA;EAAmB,oCAAoC;AxEkqSvD;;AwEjqSA;EAAmB,qCAAqC;AxEqqSxD;;AwEjqSA;EAAuB,2BAA0C;AxEqqSjE;;AwEpqSA;EAAuB,+BAA4C;AxEwqSnE;;AwEvqSA;EAAuB,2BAA2C;AxE2qSlE;;AwE1qSA;EAAuB,2BAAyC;AxE8qShE;;AwE7qSA;EAAuB,8BAA2C;AxEirSlE;;AwEhrSA;EAAuB,6BAA6B;AxEorSpD;;AwEhrSA;EAAc,sBAAwB;AxEorStC;;A0E3tSE;EACE,yBAAwB;A1E8tS5B;;AKptSE;EqELM,yBAA0E;A1E6tSlF;;A0EnuSE;EACE,yBAAwB;A1EsuS5B;;AK5tSE;EqELM,yBAA0E;A1EquSlF;;A0E3uSE;EACE,yBAAwB;A1E8uS5B;;AKpuSE;EqELM,yBAA0E;A1E6uSlF;;A0EnvSE;EACE,yBAAwB;A1EsvS5B;;AK5uSE;EqELM,yBAA0E;A1EqvSlF;;A0E3vSE;EACE,yBAAwB;A1E8vS5B;;AKpvSE;EqELM,yBAA0E;A1E6vSlF;;A0EnwSE;EACE,yBAAwB;A1EswS5B;;AK5vSE;EqELM,yBAA0E;A1EqwSlF;;A0E3wSE;EACE,yBAAwB;A1E8wS5B;;AKpwSE;EqELM,yBAA0E;A1E6wSlF;;A0EnxSE;EACE,yBAAwB;A1EsxS5B;;AK5wSE;EqELM,yBAA0E;A1EqxSlF;;AwE9uSA;EAAa,yBAA6B;AxEkvS1C;;AwEjvSA;EAAc,yBAA6B;AxEqvS3C;;AwEnvSA;EAAiB,oCAAkC;AxEuvSnD;;AwEtvSA;EAAiB,0CAAkC;AxE0vSnD;;AwEtvSA;EGvDE,WAAW;EACX,kBAAkB;EAClB,iBAAiB;EACjB,6BAA6B;EAC7B,SAAS;A3EizSX;;AwE1vSA;EAAwB,gCAAgC;AxE8vSxD;;AwE5vSA;EACE,iCAAiC;EACjC,oCAAoC;AxE+vStC;;AwE1vSA;EAAc,yBAAyB;AxE8vSvC;;A4E/zSA;EACE,8BAA8B;A5Ek0ShC;;A4E/zSA;EACE,6BAA6B;A5Ek0S/B;;A6El0SE;E3EOF;;;I2EDM,4BAA4B;IAE5B,2BAA2B;E7Ek0S/B;E6E/zSE;IAEI,0BAA0B;E7Eg0ShC;E6EvzSE;IACE,6BAA6B;E7EyzSjC;EE3nSF;I2E/KM,gCAAgC;E7E6ySpC;E6E3ySE;;IAEE,yB1EzCY;I0E0CZ,wBAAwB;E7E6yS5B;E6ErySE;IACE,2BAA2B;E7EuyS/B;E6EpySE;;IAEE,wBAAwB;E7EsyS5B;E6EnySE;;;IAGE,UAAU;IACV,SAAS;E7EqySb;E6ElySE;;IAEE,uBAAuB;E7EoyS3B;E6E5xSE;IACE,Q1E4hCgC;EHkwQpC;EE10SF;I2E+CM,2BAA2C;E7E8xS/C;EYp3SA;IiEyFI,2BAA2C;E7E8xS/C;EiC52SF;I4CmFM,aAAa;E7E4xSjB;EsC33SF;IuCkGM,sB1EtFS;EHk3Sb;EgB/3SF;I6DuGM,oCAAoC;E7E2xSxC;E6E5xSE;;IAKI,iCAAmC;E7E2xSzC;EgB91SF;;I6D0EQ,oCAAsC;E7EwxS5C;EgB7wSF;I6DNM,cAAc;E7EsxSlB;EiB54SA;;;;I4D4HM,qB1EvHU;EH64ShB;EgBxySF;I6DuBM,cAAc;IACd,qB1E7HY;EHi5ShB;AACF","file":"bootstrap.css","sourcesContent":["/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"root\";\n@import \"reboot\";\n@import \"type\";\n@import \"images\";\n@import \"code\";\n@import \"grid\";\n@import \"tables\";\n@import \"forms\";\n@import \"buttons\";\n@import \"transitions\";\n@import \"dropdown\";\n@import \"button-group\";\n@import \"input-group\";\n@import \"custom-forms\";\n@import \"nav\";\n@import \"navbar\";\n@import \"card\";\n@import \"breadcrumb\";\n@import \"pagination\";\n@import \"badge\";\n@import \"jumbotron\";\n@import \"alert\";\n@import \"progress\";\n@import \"media\";\n@import \"list-group\";\n@import \"close\";\n@import \"toasts\";\n@import \"modal\";\n@import \"tooltip\";\n@import \"popover\";\n@import \"carousel\";\n@import \"spinners\";\n@import \"utilities\";\n@import \"print\";\n","/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n:root {\n --blue: #007bff;\n --indigo: #6610f2;\n --purple: #6f42c1;\n --pink: #e83e8c;\n --red: #dc3545;\n --orange: #fd7e14;\n --yellow: #ffc107;\n --green: #28a745;\n --teal: #20c997;\n --cyan: #17a2b8;\n --white: #fff;\n --gray: #6c757d;\n --gray-dark: #343a40;\n --primary: #007bff;\n --secondary: #6c757d;\n --success: #28a745;\n --info: #17a2b8;\n --warning: #ffc107;\n --danger: #dc3545;\n --light: #f8f9fa;\n --dark: #343a40;\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 992px;\n --breakpoint-xl: 1200px;\n --font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):hover {\n color: inherit;\n text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2;\n}\n\nh1, .h1 {\n font-size: 2.5rem;\n}\n\nh2, .h2 {\n font-size: 2rem;\n}\n\nh3, .h3 {\n font-size: 1.75rem;\n}\n\nh4, .h4 {\n font-size: 1.5rem;\n}\n\nh5, .h5 {\n font-size: 1.25rem;\n}\n\nh6, .h6 {\n font-size: 1rem;\n}\n\n.lead {\n font-size: 1.25rem;\n font-weight: 300;\n}\n\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n font-size: 80%;\n font-weight: 400;\n}\n\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline-item {\n display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n margin-right: 0.5rem;\n}\n\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n}\n\n.blockquote-footer {\n display: block;\n font-size: 80%;\n color: #6c757d;\n}\n\n.blockquote-footer::before {\n content: \"\\2014\\00A0\";\n}\n\n.img-fluid {\n max-width: 100%;\n height: auto;\n}\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #fff;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n max-width: 100%;\n height: auto;\n}\n\n.figure {\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1;\n}\n\n.figure-caption {\n font-size: 90%;\n color: #6c757d;\n}\n\ncode {\n font-size: 87.5%;\n color: #e83e8c;\n word-wrap: break-word;\n}\n\na > code {\n color: inherit;\n}\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 87.5%;\n color: #fff;\n background-color: #212529;\n border-radius: 0.2rem;\n}\n\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700;\n}\n\npre {\n display: block;\n font-size: 87.5%;\n color: #212529;\n}\n\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n\n.container {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container {\n max-width: 1140px;\n }\n}\n\n.container-fluid, .container-sm, .container-md, .container-lg, .container-xl {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container, .container-sm {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container, .container-sm, .container-md {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container, .container-sm, .container-md, .container-lg {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container, .container-sm, .container-md, .container-lg, .container-xl {\n max-width: 1140px;\n }\n}\n\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.row-cols-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.row-cols-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.row-cols-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.row-cols-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.row-cols-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n}\n\n.row-cols-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n order: -1;\n}\n\n.order-last {\n order: 13;\n}\n\n.order-0 {\n order: 0;\n}\n\n.order-1 {\n order: 1;\n}\n\n.order-2 {\n order: 2;\n}\n\n.order-3 {\n order: 3;\n}\n\n.order-4 {\n order: 4;\n}\n\n.order-5 {\n order: 5;\n}\n\n.order-6 {\n order: 6;\n}\n\n.order-7 {\n order: 7;\n}\n\n.order-8 {\n order: 8;\n}\n\n.order-9 {\n order: 9;\n}\n\n.order-10 {\n order: 10;\n}\n\n.order-11 {\n order: 11;\n}\n\n.order-12 {\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-sm-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-sm-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-sm-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-sm-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-sm-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-sm-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n order: -1;\n }\n .order-sm-last {\n order: 13;\n }\n .order-sm-0 {\n order: 0;\n }\n .order-sm-1 {\n order: 1;\n }\n .order-sm-2 {\n order: 2;\n }\n .order-sm-3 {\n order: 3;\n }\n .order-sm-4 {\n order: 4;\n }\n .order-sm-5 {\n order: 5;\n }\n .order-sm-6 {\n order: 6;\n }\n .order-sm-7 {\n order: 7;\n }\n .order-sm-8 {\n order: 8;\n }\n .order-sm-9 {\n order: 9;\n }\n .order-sm-10 {\n order: 10;\n }\n .order-sm-11 {\n order: 11;\n }\n .order-sm-12 {\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-md-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-md-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-md-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-md-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-md-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-md-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n order: -1;\n }\n .order-md-last {\n order: 13;\n }\n .order-md-0 {\n order: 0;\n }\n .order-md-1 {\n order: 1;\n }\n .order-md-2 {\n order: 2;\n }\n .order-md-3 {\n order: 3;\n }\n .order-md-4 {\n order: 4;\n }\n .order-md-5 {\n order: 5;\n }\n .order-md-6 {\n order: 6;\n }\n .order-md-7 {\n order: 7;\n }\n .order-md-8 {\n order: 8;\n }\n .order-md-9 {\n order: 9;\n }\n .order-md-10 {\n order: 10;\n }\n .order-md-11 {\n order: 11;\n }\n .order-md-12 {\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-lg-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-lg-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-lg-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-lg-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-lg-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-lg-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n order: -1;\n }\n .order-lg-last {\n order: 13;\n }\n .order-lg-0 {\n order: 0;\n }\n .order-lg-1 {\n order: 1;\n }\n .order-lg-2 {\n order: 2;\n }\n .order-lg-3 {\n order: 3;\n }\n .order-lg-4 {\n order: 4;\n }\n .order-lg-5 {\n order: 5;\n }\n .order-lg-6 {\n order: 6;\n }\n .order-lg-7 {\n order: 7;\n }\n .order-lg-8 {\n order: 8;\n }\n .order-lg-9 {\n order: 9;\n }\n .order-lg-10 {\n order: 10;\n }\n .order-lg-11 {\n order: 11;\n }\n .order-lg-12 {\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-xl-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-xl-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-xl-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-xl-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-xl-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-xl-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n order: -1;\n }\n .order-xl-last {\n order: 13;\n }\n .order-xl-0 {\n order: 0;\n }\n .order-xl-1 {\n order: 1;\n }\n .order-xl-2 {\n order: 2;\n }\n .order-xl-3 {\n order: 3;\n }\n .order-xl-4 {\n order: 4;\n }\n .order-xl-5 {\n order: 5;\n }\n .order-xl-6 {\n order: 6;\n }\n .order-xl-7 {\n order: 7;\n }\n .order-xl-8 {\n order: 8;\n }\n .order-xl-9 {\n order: 9;\n }\n .order-xl-10 {\n order: 10;\n }\n .order-xl-11 {\n order: 11;\n }\n .order-xl-12 {\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.table {\n width: 100%;\n margin-bottom: 1rem;\n color: #212529;\n}\n\n.table th,\n.table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n border-top: 2px solid #dee2e6;\n}\n\n.table-sm th,\n.table-sm td {\n padding: 0.3rem;\n}\n\n.table-bordered {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n border-bottom-width: 2px;\n}\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n border: 0;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n color: #212529;\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #b8daff;\n}\n\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n border-color: #7abaff;\n}\n\n.table-hover .table-primary:hover {\n background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #d6d8db;\n}\n\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n border-color: #b3b7bb;\n}\n\n.table-hover .table-secondary:hover {\n background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #c3e6cb;\n}\n\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n border-color: #8fd19e;\n}\n\n.table-hover .table-success:hover {\n background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #bee5eb;\n}\n\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n border-color: #86cfda;\n}\n\n.table-hover .table-info:hover {\n background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #ffeeba;\n}\n\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n border-color: #ffdf7e;\n}\n\n.table-hover .table-warning:hover {\n background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #f5c6cb;\n}\n\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n border-color: #ed969e;\n}\n\n.table-hover .table-danger:hover {\n background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #fdfdfe;\n}\n\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n border-color: #fbfcfc;\n}\n\n.table-hover .table-light:hover {\n background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #c6c8ca;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n border-color: #95999c;\n}\n\n.table-hover .table-dark:hover {\n background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n color: #fff;\n background-color: #343a40;\n border-color: #454d55;\n}\n\n.table .thead-light th {\n color: #495057;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.table-dark {\n color: #fff;\n background-color: #343a40;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n border-color: #454d55;\n}\n\n.table-dark.table-bordered {\n border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n color: #fff;\n background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-sm > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 767.98px) {\n .table-responsive-md {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-md > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-lg > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-xl > .table-bordered {\n border: 0;\n }\n}\n\n.table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.table-responsive > .table-bordered {\n border: 0;\n}\n\n.form-control {\n display: block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none;\n }\n}\n\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n}\n\n.form-control:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #495057;\n}\n\n.form-control:focus {\n color: #495057;\n background-color: #fff;\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.form-control::placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n background-color: #e9ecef;\n opacity: 1;\n}\n\nselect.form-control:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5;\n}\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding: 0.375rem 0;\n margin-bottom: 0;\n font-size: 1rem;\n line-height: 1.5;\n color: #212529;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n}\n\n.form-control-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.form-control-lg {\n height: calc(1.5em + 1rem + 2px);\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\nselect.form-control[size], select.form-control[multiple] {\n height: auto;\n}\n\ntextarea.form-control {\n height: auto;\n}\n\n.form-group {\n margin-bottom: 1rem;\n}\n\n.form-text {\n display: block;\n margin-top: 0.25rem;\n}\n\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n padding-right: 5px;\n padding-left: 5px;\n}\n\n.form-check {\n position: relative;\n display: block;\n padding-left: 1.25rem;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: 0.3rem;\n margin-left: -1.25rem;\n}\n\n.form-check-input[disabled] ~ .form-check-label,\n.form-check-input:disabled ~ .form-check-label {\n color: #6c757d;\n}\n\n.form-check-label {\n margin-bottom: 0;\n}\n\n.form-check-inline {\n display: inline-flex;\n align-items: center;\n padding-left: 0;\n margin-right: 0.75rem;\n}\n\n.form-check-inline .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: 0.3125rem;\n margin-left: 0;\n}\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #28a745;\n}\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(40, 167, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated :valid ~ .valid-feedback,\n.was-validated :valid ~ .valid-tooltip,\n.is-valid ~ .valid-feedback,\n.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid {\n border-color: #28a745;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:valid, .custom-select.is-valid {\n border-color: #28a745;\n padding-right: calc(0.75em + 2.3125rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #28a745;\n}\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n border-color: #34ce57;\n background-color: #34ce57;\n}\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #dc3545;\n}\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(220, 53, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated :invalid ~ .invalid-feedback,\n.was-validated :invalid ~ .invalid-tooltip,\n.is-invalid ~ .invalid-feedback,\n.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n border-color: #dc3545;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n border-color: #dc3545;\n padding-right: calc(0.75em + 2.3125rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #dc3545;\n}\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n border-color: #e4606d;\n background-color: #e4606d;\n}\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center;\n}\n\n.form-inline .form-check {\n width: 100%;\n}\n\n@media (min-width: 576px) {\n .form-inline label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0;\n }\n .form-inline .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-plaintext {\n display: inline-block;\n }\n .form-inline .input-group,\n .form-inline .custom-select {\n width: auto;\n }\n .form-inline .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-inline .form-check-input {\n position: relative;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0;\n }\n .form-inline .custom-control {\n align-items: center;\n justify-content: center;\n }\n .form-inline .custom-control-label {\n margin-bottom: 0;\n }\n}\n\n.btn {\n display: inline-block;\n font-weight: 400;\n color: #212529;\n text-align: center;\n vertical-align: middle;\n cursor: pointer;\n user-select: none;\n background-color: transparent;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .btn {\n transition: none;\n }\n}\n\n.btn:hover {\n color: #212529;\n text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.btn.disabled, .btn:disabled {\n opacity: 0.65;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n.btn-primary {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:hover {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n.show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #0062cc;\n border-color: #005cbf;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-secondary {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:hover {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-secondary.dropdown-toggle {\n color: #fff;\n background-color: #545b62;\n border-color: #4e555b;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-success {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:hover {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n.show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #1e7e34;\n border-color: #1c7430;\n}\n\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-info {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:hover {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n.show > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: #117a8b;\n border-color: #10707f;\n}\n\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-warning {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:hover {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n color: #212529;\n background-color: #d39e00;\n border-color: #c69500;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-danger {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:hover {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n.show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #bd2130;\n border-color: #b21f2d;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-light {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:hover {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n color: #212529;\n background-color: #dae0e5;\n border-color: #d3d9df;\n}\n\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-dark {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:hover {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n.show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: #1d2124;\n border-color: #171a1d;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-outline-primary {\n color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #007bff;\n background-color: transparent;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n color: #6c757d;\n background-color: transparent;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-secondary.dropdown-toggle {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #28a745;\n background-color: transparent;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #17a2b8;\n background-color: transparent;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #ffc107;\n background-color: transparent;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .btn-outline-warning.dropdown-toggle {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #dc3545;\n background-color: transparent;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n color: #f8f9fa;\n background-color: transparent;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .btn-outline-light.dropdown-toggle {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n color: #343a40;\n background-color: transparent;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .btn-outline-dark.dropdown-toggle {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n font-weight: 400;\n color: #007bff;\n text-decoration: none;\n}\n\n.btn-link:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\n.btn-link:focus, .btn-link.focus {\n text-decoration: underline;\n box-shadow: none;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n color: #6c757d;\n pointer-events: none;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n.btn-block + .btn-block {\n margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n\n.fade {\n transition: opacity 0.15s linear;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none;\n }\n}\n\n.fade:not(.show) {\n opacity: 0;\n}\n\n.collapse:not(.show) {\n display: none;\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none;\n }\n}\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n}\n\n.dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 1rem;\n color: #212529;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n}\n\n.dropdown-menu-left {\n right: auto;\n left: 0;\n}\n\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n\n@media (min-width: 576px) {\n .dropdown-menu-sm-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-sm-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 768px) {\n .dropdown-menu-md-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-md-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 992px) {\n .dropdown-menu-lg-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-lg-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 1200px) {\n .dropdown-menu-xl-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-xl-right {\n right: 0;\n left: auto;\n }\n}\n\n.dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent;\n}\n\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: 0.125rem;\n}\n\n.dropright .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid;\n}\n\n.dropright .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: 0.125rem;\n}\n\n.dropleft .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n display: none;\n}\n\n.dropleft .dropdown-toggle::before {\n display: inline-block;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent;\n}\n\n.dropleft .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n vertical-align: 0;\n}\n\n.dropdown-menu[x-placement^=\"top\"], .dropdown-menu[x-placement^=\"right\"], .dropdown-menu[x-placement^=\"bottom\"], .dropdown-menu[x-placement^=\"left\"] {\n right: auto;\n bottom: auto;\n}\n\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1.5rem;\n clear: both;\n font-weight: 400;\n color: #212529;\n text-align: inherit;\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n color: #16181b;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: transparent;\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n.dropdown-header {\n display: block;\n padding: 0.5rem 1.5rem;\n margin-bottom: 0;\n font-size: 0.875rem;\n color: #6c757d;\n white-space: nowrap;\n}\n\n.dropdown-item-text {\n display: block;\n padding: 0.25rem 1.5rem;\n color: #212529;\n}\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n flex: 1 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n z-index: 1;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n z-index: 1;\n}\n\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n width: auto;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n margin-left: -1px;\n}\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after,\n.dropup .dropdown-toggle-split::after,\n.dropright .dropdown-toggle-split::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle-split::before {\n margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n}\n\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n width: 100%;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: -1px;\n}\n\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n margin-bottom: 0;\n}\n\n.btn-group-toggle > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn input[type=\"checkbox\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n width: 100%;\n}\n\n.input-group > .form-control,\n.input-group > .form-control-plaintext,\n.input-group > .custom-select,\n.input-group > .custom-file {\n position: relative;\n flex: 1 1 0%;\n min-width: 0;\n margin-bottom: 0;\n}\n\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .form-control-plaintext + .form-control,\n.input-group > .form-control-plaintext + .custom-select,\n.input-group > .form-control-plaintext + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n margin-left: -1px;\n}\n\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3;\n}\n\n.input-group > .custom-file .custom-file-input:focus {\n z-index: 4;\n}\n\n.input-group > .form-control:not(:last-child),\n.input-group > .custom-select:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-file {\n display: flex;\n align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:last-child) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .custom-file:not(:first-child) .custom-file-label {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n position: relative;\n z-index: 2;\n}\n\n.input-group-prepend .btn:focus,\n.input-group-append .btn:focus {\n z-index: 3;\n}\n\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n margin-left: -1px;\n}\n\n.input-group-prepend {\n margin-right: -1px;\n}\n\n.input-group-append {\n margin-left: -1px;\n}\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: 0.375rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n text-align: center;\n white-space: nowrap;\n background-color: #e9ecef;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n margin-top: 0;\n}\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: calc(1.5em + 1rem + 2px);\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: calc(1.5em + 0.5rem + 2px);\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: 1.75rem;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.custom-control {\n position: relative;\n display: block;\n min-height: 1.5rem;\n padding-left: 1.5rem;\n}\n\n.custom-control-inline {\n display: inline-flex;\n margin-right: 1rem;\n}\n\n.custom-control-input {\n position: absolute;\n left: 0;\n z-index: -1;\n width: 1rem;\n height: 1.25rem;\n opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n color: #fff;\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #80bdff;\n}\n\n.custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n color: #fff;\n background-color: #b3d7ff;\n border-color: #b3d7ff;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label {\n color: #6c757d;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before {\n background-color: #e9ecef;\n}\n\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n vertical-align: top;\n}\n\n.custom-control-label::before {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n content: \"\";\n background-color: #fff;\n border: #adb5bd solid 1px;\n}\n\n.custom-control-label::after {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n content: \"\";\n background: no-repeat 50% / 50% 50%;\n}\n\n.custom-checkbox .custom-control-label::before {\n border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\");\n}\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-switch {\n padding-left: 2.25rem;\n}\n\n.custom-switch .custom-control-label::before {\n left: -2.25rem;\n width: 1.75rem;\n pointer-events: all;\n border-radius: 0.5rem;\n}\n\n.custom-switch .custom-control-label::after {\n top: calc(0.25rem + 2px);\n left: calc(-2.25rem + 2px);\n width: calc(1rem - 4px);\n height: calc(1rem - 4px);\n background-color: #adb5bd;\n border-radius: 0.5rem;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-switch .custom-control-label::after {\n transition: none;\n }\n}\n\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n background-color: #fff;\n transform: translateX(0.75rem);\n}\n\n.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n vertical-align: middle;\n background: #fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n appearance: none;\n}\n\n.custom-select:focus {\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-select:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: 0.75rem;\n background-image: none;\n}\n\n.custom-select:disabled {\n color: #6c757d;\n background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n display: none;\n}\n\n.custom-select:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #495057;\n}\n\n.custom-select-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n padding-left: 0.5rem;\n font-size: 0.875rem;\n}\n\n.custom-select-lg {\n height: calc(1.5em + 1rem + 2px);\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-left: 1rem;\n font-size: 1.25rem;\n}\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin: 0;\n opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-label {\n border-color: #80bdff;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-file-input[disabled] ~ .custom-file-label,\n.custom-file-input:disabled ~ .custom-file-label {\n background-color: #e9ecef;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n content: \"Browse\";\n}\n\n.custom-file-input ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse);\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.custom-file-label::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(1.5em + 0.75rem);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n content: \"Browse\";\n background-color: #e9ecef;\n border-left: inherit;\n border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-range {\n width: 100%;\n height: 1.4rem;\n padding: 0;\n background-color: transparent;\n appearance: none;\n}\n\n.custom-range:focus {\n outline: none;\n}\n\n.custom-range:focus::-webkit-slider-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-moz-range-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-ms-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-moz-focus-outer {\n border: 0;\n}\n\n.custom-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-webkit-slider-thumb {\n transition: none;\n }\n}\n\n.custom-range::-webkit-slider-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-moz-range-thumb {\n transition: none;\n }\n}\n\n.custom-range::-moz-range-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: 0;\n margin-right: 0.2rem;\n margin-left: 0.2rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-ms-thumb {\n transition: none;\n }\n}\n\n.custom-range::-ms-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-ms-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: transparent;\n border-color: transparent;\n border-width: 0.5rem;\n}\n\n.custom-range::-ms-fill-lower {\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-fill-upper {\n margin-right: 15px;\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range:disabled::-webkit-slider-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-webkit-slider-runnable-track {\n cursor: default;\n}\n\n.custom-range:disabled::-moz-range-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-moz-range-track {\n cursor: default;\n}\n\n.custom-range:disabled::-ms-thumb {\n background-color: #adb5bd;\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-control-label::before,\n .custom-file-label,\n .custom-select {\n transition: none;\n }\n}\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: 0.5rem 1rem;\n}\n\n.nav-link:hover, .nav-link:focus {\n text-decoration: none;\n}\n\n.nav-link.disabled {\n color: #6c757d;\n pointer-events: none;\n cursor: default;\n}\n\n.nav-tabs {\n border-bottom: 1px solid #dee2e6;\n}\n\n.nav-tabs .nav-item {\n margin-bottom: -1px;\n}\n\n.nav-tabs .nav-link {\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n border-color: #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs .nav-link.disabled {\n color: #6c757d;\n background-color: transparent;\n border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n color: #495057;\n background-color: #fff;\n border-color: #dee2e6 #dee2e6 #fff;\n}\n\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #007bff;\n}\n\n.nav-fill .nav-item {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.nav-justified .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n}\n\n.tab-content > .tab-pane {\n display: none;\n}\n\n.tab-content > .active {\n display: block;\n}\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: 0.5rem 1rem;\n}\n\n.navbar .container,\n.navbar .container-fluid, .navbar .container-sm, .navbar .container-md, .navbar .container-lg, .navbar .container-xl {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n}\n\n.navbar-brand {\n display: inline-block;\n padding-top: 0.3125rem;\n padding-bottom: 0.3125rem;\n margin-right: 1rem;\n font-size: 1.25rem;\n line-height: inherit;\n white-space: nowrap;\n}\n\n.navbar-brand:hover, .navbar-brand:focus {\n text-decoration: none;\n}\n\n.navbar-nav {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n position: static;\n float: none;\n}\n\n.navbar-text {\n display: inline-block;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n align-items: center;\n}\n\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.25rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.navbar-toggler:hover, .navbar-toggler:focus {\n text-decoration: none;\n}\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n\n@media (max-width: 575.98px) {\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 576px) {\n .navbar-expand-sm {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-sm .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-sm .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-sm .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 767.98px) {\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 768px) {\n .navbar-expand-md {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-md .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-md .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-md .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 991.98px) {\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 992px) {\n .navbar-expand-lg {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-lg .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-lg .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-lg .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 1199.98px) {\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-xl .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-xl .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-xl .navbar-toggler {\n display: none;\n }\n}\n\n.navbar-expand {\n flex-flow: row nowrap;\n justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n position: absolute;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n}\n\n.navbar-expand .navbar-toggler {\n display: none;\n}\n\n.navbar-light .navbar-brand {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n color: rgba(0, 0, 0, 0.5);\n border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-light .navbar-text {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-text a {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n color: #fff;\n}\n\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff;\n}\n\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.5);\n border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-text a {\n color: #fff;\n}\n\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n color: #fff;\n}\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem;\n}\n\n.card > hr {\n margin-right: 0;\n margin-left: 0;\n}\n\n.card > .list-group:first-child .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.card > .list-group:last-child .list-group-item:last-child {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.card-body {\n flex: 1 1 auto;\n min-height: 1px;\n padding: 1.25rem;\n}\n\n.card-title {\n margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link:hover {\n text-decoration: none;\n}\n\n.card-link + .card-link {\n margin-left: 1.25rem;\n}\n\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n background-color: rgba(0, 0, 0, 0.03);\n border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-header + .list-group .list-group-item:first-child {\n border-top: 0;\n}\n\n.card-footer {\n padding: 0.75rem 1.25rem;\n background-color: rgba(0, 0, 0, 0.03);\n border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem;\n}\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n flex-shrink: 0;\n width: 100%;\n}\n\n.card-img,\n.card-img-top {\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img,\n.card-img-bottom {\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card-deck .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-deck {\n display: flex;\n flex-flow: row wrap;\n margin-right: -15px;\n margin-left: -15px;\n }\n .card-deck .card {\n flex: 1 0 0%;\n margin-right: 15px;\n margin-bottom: 0;\n margin-left: 15px;\n }\n}\n\n.card-group > .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-group {\n display: flex;\n flex-flow: row wrap;\n }\n .card-group > .card {\n flex: 1 0 0%;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group > .card:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-top,\n .card-group > .card:not(:last-child) .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-bottom,\n .card-group > .card:not(:last-child) .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-top,\n .card-group > .card:not(:first-child) .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-bottom,\n .card-group > .card:not(:first-child) .card-footer {\n border-bottom-left-radius: 0;\n }\n}\n\n.card-columns .card {\n margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n .card-columns {\n column-count: 3;\n column-gap: 1.25rem;\n orphans: 1;\n widows: 1;\n }\n .card-columns .card {\n display: inline-block;\n width: 100%;\n }\n}\n\n.accordion > .card {\n overflow: hidden;\n}\n\n.accordion > .card:not(:last-of-type) {\n border-bottom: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.accordion > .card:not(:first-of-type) {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.accordion > .card > .card-header {\n border-radius: 0;\n margin-bottom: -1px;\n}\n\n.breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: 0.75rem 1rem;\n margin-bottom: 1rem;\n list-style: none;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.breadcrumb-item + .breadcrumb-item {\n padding-left: 0.5rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n display: inline-block;\n padding-right: 0.5rem;\n color: #6c757d;\n content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: underline;\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: none;\n}\n\n.breadcrumb-item.active {\n color: #6c757d;\n}\n\n.pagination {\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem;\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: -1px;\n line-height: 1.25;\n color: #007bff;\n background-color: #fff;\n border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n z-index: 2;\n color: #0056b3;\n text-decoration: none;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.page-link:focus {\n z-index: 3;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-item:first-child .page-link {\n margin-left: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n z-index: 3;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n color: #6c757d;\n pointer-events: none;\n cursor: auto;\n background-color: #fff;\n border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .badge {\n transition: none;\n }\n}\n\na.badge:hover, a.badge:focus {\n text-decoration: none;\n}\n\n.badge:empty {\n display: none;\n}\n\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n.badge-pill {\n padding-right: 0.6em;\n padding-left: 0.6em;\n border-radius: 10rem;\n}\n\n.badge-primary {\n color: #fff;\n background-color: #007bff;\n}\n\na.badge-primary:hover, a.badge-primary:focus {\n color: #fff;\n background-color: #0062cc;\n}\n\na.badge-primary:focus, a.badge-primary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.badge-secondary {\n color: #fff;\n background-color: #6c757d;\n}\n\na.badge-secondary:hover, a.badge-secondary:focus {\n color: #fff;\n background-color: #545b62;\n}\n\na.badge-secondary:focus, a.badge-secondary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.badge-success {\n color: #fff;\n background-color: #28a745;\n}\n\na.badge-success:hover, a.badge-success:focus {\n color: #fff;\n background-color: #1e7e34;\n}\n\na.badge-success:focus, a.badge-success.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.badge-info {\n color: #fff;\n background-color: #17a2b8;\n}\n\na.badge-info:hover, a.badge-info:focus {\n color: #fff;\n background-color: #117a8b;\n}\n\na.badge-info:focus, a.badge-info.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.badge-warning {\n color: #212529;\n background-color: #ffc107;\n}\n\na.badge-warning:hover, a.badge-warning:focus {\n color: #212529;\n background-color: #d39e00;\n}\n\na.badge-warning:focus, a.badge-warning.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.badge-danger {\n color: #fff;\n background-color: #dc3545;\n}\n\na.badge-danger:hover, a.badge-danger:focus {\n color: #fff;\n background-color: #bd2130;\n}\n\na.badge-danger:focus, a.badge-danger.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.badge-light {\n color: #212529;\n background-color: #f8f9fa;\n}\n\na.badge-light:hover, a.badge-light:focus {\n color: #212529;\n background-color: #dae0e5;\n}\n\na.badge-light:focus, a.badge-light.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.badge-dark {\n color: #fff;\n background-color: #343a40;\n}\n\na.badge-dark:hover, a.badge-dark:focus {\n color: #fff;\n background-color: #1d2124;\n}\n\na.badge-dark:focus, a.badge-dark.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #e9ecef;\n border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n .jumbotron {\n padding: 4rem 2rem;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0;\n}\n\n.alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.alert-heading {\n color: inherit;\n}\n\n.alert-link {\n font-weight: 700;\n}\n\n.alert-dismissible {\n padding-right: 4rem;\n}\n\n.alert-dismissible .close {\n position: absolute;\n top: 0;\n right: 0;\n padding: 0.75rem 1.25rem;\n color: inherit;\n}\n\n.alert-primary {\n color: #004085;\n background-color: #cce5ff;\n border-color: #b8daff;\n}\n\n.alert-primary hr {\n border-top-color: #9fcdff;\n}\n\n.alert-primary .alert-link {\n color: #002752;\n}\n\n.alert-secondary {\n color: #383d41;\n background-color: #e2e3e5;\n border-color: #d6d8db;\n}\n\n.alert-secondary hr {\n border-top-color: #c8cbcf;\n}\n\n.alert-secondary .alert-link {\n color: #202326;\n}\n\n.alert-success {\n color: #155724;\n background-color: #d4edda;\n border-color: #c3e6cb;\n}\n\n.alert-success hr {\n border-top-color: #b1dfbb;\n}\n\n.alert-success .alert-link {\n color: #0b2e13;\n}\n\n.alert-info {\n color: #0c5460;\n background-color: #d1ecf1;\n border-color: #bee5eb;\n}\n\n.alert-info hr {\n border-top-color: #abdde5;\n}\n\n.alert-info .alert-link {\n color: #062c33;\n}\n\n.alert-warning {\n color: #856404;\n background-color: #fff3cd;\n border-color: #ffeeba;\n}\n\n.alert-warning hr {\n border-top-color: #ffe8a1;\n}\n\n.alert-warning .alert-link {\n color: #533f03;\n}\n\n.alert-danger {\n color: #721c24;\n background-color: #f8d7da;\n border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n border-top-color: #f1b0b7;\n}\n\n.alert-danger .alert-link {\n color: #491217;\n}\n\n.alert-light {\n color: #818182;\n background-color: #fefefe;\n border-color: #fdfdfe;\n}\n\n.alert-light hr {\n border-top-color: #ececf6;\n}\n\n.alert-light .alert-link {\n color: #686868;\n}\n\n.alert-dark {\n color: #1b1e21;\n background-color: #d6d8d9;\n border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n border-top-color: #b9bbbe;\n}\n\n.alert-dark .alert-link {\n color: #040505;\n}\n\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n.progress {\n display: flex;\n height: 1rem;\n overflow: hidden;\n font-size: 0.75rem;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n background-color: #007bff;\n transition: width 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none;\n }\n}\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n animation: progress-bar-stripes 1s linear infinite;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n animation: none;\n }\n}\n\n.media {\n display: flex;\n align-items: flex-start;\n}\n\n.media-body {\n flex: 1;\n}\n\n.list-group {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n}\n\n.list-group-item-action {\n width: 100%;\n color: #495057;\n text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n z-index: 1;\n color: #495057;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n color: #212529;\n background-color: #e9ecef;\n}\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.75rem 1.25rem;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.list-group-item:last-child {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: #fff;\n}\n\n.list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.list-group-item + .list-group-item {\n border-top-width: 0;\n}\n\n.list-group-item + .list-group-item.active {\n margin-top: -1px;\n border-top-width: 1px;\n}\n\n.list-group-horizontal {\n flex-direction: row;\n}\n\n.list-group-horizontal .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n}\n\n.list-group-horizontal .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n}\n\n.list-group-horizontal .list-group-item.active {\n margin-top: 0;\n}\n\n.list-group-horizontal .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n}\n\n.list-group-horizontal .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n}\n\n@media (min-width: 576px) {\n .list-group-horizontal-sm {\n flex-direction: row;\n }\n .list-group-horizontal-sm .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-sm .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-sm .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-sm .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-sm .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 768px) {\n .list-group-horizontal-md {\n flex-direction: row;\n }\n .list-group-horizontal-md .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-md .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-md .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-md .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-md .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 992px) {\n .list-group-horizontal-lg {\n flex-direction: row;\n }\n .list-group-horizontal-lg .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-lg .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-lg .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-lg .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-lg .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 1200px) {\n .list-group-horizontal-xl {\n flex-direction: row;\n }\n .list-group-horizontal-xl .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-xl .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-xl .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-xl .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-xl .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n.list-group-flush .list-group-item {\n border-right-width: 0;\n border-left-width: 0;\n border-radius: 0;\n}\n\n.list-group-flush .list-group-item:first-child {\n border-top-width: 0;\n}\n\n.list-group-flush:last-child .list-group-item:last-child {\n border-bottom-width: 0;\n}\n\n.list-group-item-primary {\n color: #004085;\n background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n color: #004085;\n background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n color: #fff;\n background-color: #004085;\n border-color: #004085;\n}\n\n.list-group-item-secondary {\n color: #383d41;\n background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n color: #383d41;\n background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n color: #fff;\n background-color: #383d41;\n border-color: #383d41;\n}\n\n.list-group-item-success {\n color: #155724;\n background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n color: #155724;\n background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n color: #fff;\n background-color: #155724;\n border-color: #155724;\n}\n\n.list-group-item-info {\n color: #0c5460;\n background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n color: #0c5460;\n background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n color: #fff;\n background-color: #0c5460;\n border-color: #0c5460;\n}\n\n.list-group-item-warning {\n color: #856404;\n background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n color: #856404;\n background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n color: #fff;\n background-color: #856404;\n border-color: #856404;\n}\n\n.list-group-item-danger {\n color: #721c24;\n background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n color: #721c24;\n background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n color: #fff;\n background-color: #721c24;\n border-color: #721c24;\n}\n\n.list-group-item-light {\n color: #818182;\n background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n color: #818182;\n background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n color: #fff;\n background-color: #818182;\n border-color: #818182;\n}\n\n.list-group-item-dark {\n color: #1b1e21;\n background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n color: #1b1e21;\n background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n color: #fff;\n background-color: #1b1e21;\n border-color: #1b1e21;\n}\n\n.close {\n float: right;\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: .5;\n}\n\n.close:hover {\n color: #000;\n text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\n opacity: .75;\n}\n\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n appearance: none;\n}\n\na.close.disabled {\n pointer-events: none;\n}\n\n.toast {\n max-width: 350px;\n overflow: hidden;\n font-size: 0.875rem;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\n backdrop-filter: blur(10px);\n opacity: 0;\n border-radius: 0.25rem;\n}\n\n.toast:not(:last-child) {\n margin-bottom: 0.75rem;\n}\n\n.toast.showing {\n opacity: 1;\n}\n\n.toast.show {\n display: block;\n opacity: 1;\n}\n\n.toast.hide {\n display: none;\n}\n\n.toast-header {\n display: flex;\n align-items: center;\n padding: 0.25rem 0.75rem;\n color: #6c757d;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n\n.toast-body {\n padding: 0.75rem;\n}\n\n.modal-open {\n overflow: hidden;\n}\n\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1050;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n outline: 0;\n}\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n transition: transform 0.3s ease-out;\n transform: translate(0, -50px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none;\n }\n}\n\n.modal.show .modal-dialog {\n transform: none;\n}\n\n.modal.modal-static .modal-dialog {\n transform: scale(1.02);\n}\n\n.modal-dialog-scrollable {\n display: flex;\n max-height: calc(100% - 1rem);\n}\n\n.modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 1rem);\n overflow: hidden;\n}\n\n.modal-dialog-scrollable .modal-header,\n.modal-dialog-scrollable .modal-footer {\n flex-shrink: 0;\n}\n\n.modal-dialog-scrollable .modal-body {\n overflow-y: auto;\n}\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - 1rem);\n}\n\n.modal-dialog-centered::before {\n display: block;\n height: calc(100vh - 1rem);\n content: \"\";\n}\n\n.modal-dialog-centered.modal-dialog-scrollable {\n flex-direction: column;\n justify-content: center;\n height: 100%;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable .modal-content {\n max-height: none;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable::before {\n content: none;\n}\n\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n outline: 0;\n}\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100vw;\n height: 100vh;\n background-color: #000;\n}\n\n.modal-backdrop.fade {\n opacity: 0;\n}\n\n.modal-backdrop.show {\n opacity: 0.5;\n}\n\n.modal-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n padding: 1rem 1rem;\n border-bottom: 1px solid #dee2e6;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.modal-header .close {\n padding: 1rem 1rem;\n margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5;\n}\n\n.modal-body {\n position: relative;\n flex: 1 1 auto;\n padding: 1rem;\n}\n\n.modal-footer {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: flex-end;\n padding: 0.75rem;\n border-top: 1px solid #dee2e6;\n border-bottom-right-radius: calc(0.3rem - 1px);\n border-bottom-left-radius: calc(0.3rem - 1px);\n}\n\n.modal-footer > * {\n margin: 0.25rem;\n}\n\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto;\n }\n .modal-dialog-scrollable {\n max-height: calc(100% - 3.5rem);\n }\n .modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 3.5rem);\n }\n .modal-dialog-centered {\n min-height: calc(100% - 3.5rem);\n }\n .modal-dialog-centered::before {\n height: calc(100vh - 3.5rem);\n }\n .modal-sm {\n max-width: 300px;\n }\n}\n\n@media (min-width: 992px) {\n .modal-lg,\n .modal-xl {\n max-width: 800px;\n }\n}\n\n@media (min-width: 1200px) {\n .modal-xl {\n max-width: 1140px;\n }\n}\n\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n opacity: 0;\n}\n\n.tooltip.show {\n opacity: 0.9;\n}\n\n.tooltip .arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem;\n}\n\n.tooltip .arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=\"top\"] .arrow {\n bottom: 0;\n}\n\n.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n top: 0;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=\"right\"] .arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n right: 0;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\n top: 0;\n}\n\n.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n bottom: 0;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=\"left\"] .arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n left: 0;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000;\n}\n\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem;\n}\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n}\n\n.popover .arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem;\n margin: 0 0.3rem;\n}\n\n.popover .arrow::before, .popover .arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n margin-bottom: 0.5rem;\n}\n\n.bs-popover-top > .arrow, .bs-popover-auto[x-placement^=\"top\"] > .arrow {\n bottom: calc(-0.5rem - 1px);\n}\n\n.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n bottom: 0;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n bottom: 1px;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: #fff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n margin-left: 0.5rem;\n}\n\n.bs-popover-right > .arrow, .bs-popover-auto[x-placement^=\"right\"] > .arrow {\n left: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n left: 0;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n left: 1px;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: #fff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n margin-top: 0.5rem;\n}\n\n.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow {\n top: calc(-0.5rem - 1px);\n}\n\n.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n top: 0;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n top: 1px;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: #fff;\n}\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: \"\";\n border-bottom: 1px solid #f7f7f7;\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n margin-right: 0.5rem;\n}\n\n.bs-popover-left > .arrow, .bs-popover-auto[x-placement^=\"left\"] > .arrow {\n right: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n right: 0;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n right: 1px;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: #fff;\n}\n\n.popover-header {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n display: none;\n}\n\n.popover-body {\n padding: 0.5rem 0.75rem;\n color: #212529;\n}\n\n.carousel {\n position: relative;\n}\n\n.carousel.pointer-event {\n touch-action: pan-y;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel-inner::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n backface-visibility: hidden;\n transition: transform 0.6s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none;\n }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n transform: translateX(-100%);\n}\n\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none;\n}\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n z-index: 1;\n opacity: 1;\n}\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n z-index: 0;\n opacity: 0;\n transition: opacity 0s 0.6s;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-fade .active.carousel-item-left,\n .carousel-fade .active.carousel-item-right {\n transition: none;\n }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 15%;\n color: #fff;\n text-align: center;\n opacity: 0.5;\n transition: opacity 0.15s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-control-prev,\n .carousel-control-next {\n transition: none;\n }\n}\n\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: 0.9;\n}\n\n.carousel-control-prev {\n left: 0;\n}\n\n.carousel-control-next {\n right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background: no-repeat 50% / 100% 100%;\n}\n\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\");\n}\n\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\");\n}\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: flex;\n justify-content: center;\n padding-left: 0;\n margin-right: 15%;\n margin-left: 15%;\n list-style: none;\n}\n\n.carousel-indicators li {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #fff;\n background-clip: padding-box;\n border-top: 10px solid transparent;\n border-bottom: 10px solid transparent;\n opacity: .5;\n transition: opacity 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-indicators li {\n transition: none;\n }\n}\n\n.carousel-indicators .active {\n opacity: 1;\n}\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n}\n\n@keyframes spinner-border {\n to {\n transform: rotate(360deg);\n }\n}\n\n.spinner-border {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n border: 0.25em solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n animation: spinner-border .75s linear infinite;\n}\n\n.spinner-border-sm {\n width: 1rem;\n height: 1rem;\n border-width: 0.2em;\n}\n\n@keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n }\n}\n\n.spinner-grow {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n background-color: currentColor;\n border-radius: 50%;\n opacity: 0;\n animation: spinner-grow .75s linear infinite;\n}\n\n.spinner-grow-sm {\n width: 1rem;\n height: 1rem;\n}\n\n.align-baseline {\n vertical-align: baseline !important;\n}\n\n.align-top {\n vertical-align: top !important;\n}\n\n.align-middle {\n vertical-align: middle !important;\n}\n\n.align-bottom {\n vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n vertical-align: text-top !important;\n}\n\n.bg-primary {\n background-color: #007bff !important;\n}\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n background-color: #0062cc !important;\n}\n\n.bg-secondary {\n background-color: #6c757d !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n background-color: #545b62 !important;\n}\n\n.bg-success {\n background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n background-color: #1e7e34 !important;\n}\n\n.bg-info {\n background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n background-color: #117a8b !important;\n}\n\n.bg-warning {\n background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n background-color: #d39e00 !important;\n}\n\n.bg-danger {\n background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n background-color: #bd2130 !important;\n}\n\n.bg-light {\n background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n background-color: #1d2124 !important;\n}\n\n.bg-white {\n background-color: #fff !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n\n.border {\n border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n border: 0 !important;\n}\n\n.border-top-0 {\n border-top: 0 !important;\n}\n\n.border-right-0 {\n border-right: 0 !important;\n}\n\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n\n.border-left-0 {\n border-left: 0 !important;\n}\n\n.border-primary {\n border-color: #007bff !important;\n}\n\n.border-secondary {\n border-color: #6c757d !important;\n}\n\n.border-success {\n border-color: #28a745 !important;\n}\n\n.border-info {\n border-color: #17a2b8 !important;\n}\n\n.border-warning {\n border-color: #ffc107 !important;\n}\n\n.border-danger {\n border-color: #dc3545 !important;\n}\n\n.border-light {\n border-color: #f8f9fa !important;\n}\n\n.border-dark {\n border-color: #343a40 !important;\n}\n\n.border-white {\n border-color: #fff !important;\n}\n\n.rounded-sm {\n border-radius: 0.2rem !important;\n}\n\n.rounded {\n border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-lg {\n border-radius: 0.3rem !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-pill {\n border-radius: 50rem !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n}\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n}\n\n.embed-responsive::before {\n display: block;\n content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n\n.embed-responsive-21by9::before {\n padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n padding-top: 100%;\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n}\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.float-none {\n float: none !important;\n}\n\n@media (min-width: 576px) {\n .float-sm-left {\n float: left !important;\n }\n .float-sm-right {\n float: right !important;\n }\n .float-sm-none {\n float: none !important;\n }\n}\n\n@media (min-width: 768px) {\n .float-md-left {\n float: left !important;\n }\n .float-md-right {\n float: right !important;\n }\n .float-md-none {\n float: none !important;\n }\n}\n\n@media (min-width: 992px) {\n .float-lg-left {\n float: left !important;\n }\n .float-lg-right {\n float: right !important;\n }\n .float-lg-none {\n float: none !important;\n }\n}\n\n@media (min-width: 1200px) {\n .float-xl-left {\n float: left !important;\n }\n .float-xl-right {\n float: right !important;\n }\n .float-xl-none {\n float: none !important;\n }\n}\n\n.overflow-auto {\n overflow: auto !important;\n}\n\n.overflow-hidden {\n overflow: hidden !important;\n}\n\n.position-static {\n position: static !important;\n}\n\n.position-relative {\n position: relative !important;\n}\n\n.position-absolute {\n position: absolute !important;\n}\n\n.position-fixed {\n position: fixed !important;\n}\n\n.position-sticky {\n position: sticky !important;\n}\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n}\n\n@supports (position: sticky) {\n .sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n}\n\n.shadow-sm {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n box-shadow: none !important;\n}\n\n.w-25 {\n width: 25% !important;\n}\n\n.w-50 {\n width: 50% !important;\n}\n\n.w-75 {\n width: 75% !important;\n}\n\n.w-100 {\n width: 100% !important;\n}\n\n.w-auto {\n width: auto !important;\n}\n\n.h-25 {\n height: 25% !important;\n}\n\n.h-50 {\n height: 50% !important;\n}\n\n.h-75 {\n height: 75% !important;\n}\n\n.h-100 {\n height: 100% !important;\n}\n\n.h-auto {\n height: auto !important;\n}\n\n.mw-100 {\n max-width: 100% !important;\n}\n\n.mh-100 {\n max-height: 100% !important;\n}\n\n.min-vw-100 {\n min-width: 100vw !important;\n}\n\n.min-vh-100 {\n min-height: 100vh !important;\n}\n\n.vw-100 {\n width: 100vw !important;\n}\n\n.vh-100 {\n height: 100vh !important;\n}\n\n.stretched-link::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n pointer-events: auto;\n content: \"\";\n background-color: rgba(0, 0, 0, 0);\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-n1 {\n margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n\n.m-n4 {\n margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n .m-sm-n3 {\n margin: -1rem !important;\n }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important;\n }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important;\n }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important;\n }\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n .m-sm-n5 {\n margin: -3rem !important;\n }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important;\n }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important;\n }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n .m-md-n3 {\n margin: -1rem !important;\n }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important;\n }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important;\n }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important;\n }\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n .m-md-n5 {\n margin: -3rem !important;\n }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important;\n }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important;\n }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n .m-lg-n3 {\n margin: -1rem !important;\n }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important;\n }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important;\n }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important;\n }\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n .m-lg-n5 {\n margin: -3rem !important;\n }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important;\n }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important;\n }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n .m-xl-n3 {\n margin: -1rem !important;\n }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important;\n }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important;\n }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important;\n }\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n .m-xl-n5 {\n margin: -3rem !important;\n }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important;\n }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important;\n }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n\n.text-monospace {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !important;\n}\n\n.text-justify {\n text-align: justify !important;\n}\n\n.text-wrap {\n white-space: normal !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n@media (min-width: 576px) {\n .text-sm-left {\n text-align: left !important;\n }\n .text-sm-right {\n text-align: right !important;\n }\n .text-sm-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 768px) {\n .text-md-left {\n text-align: left !important;\n }\n .text-md-right {\n text-align: right !important;\n }\n .text-md-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 992px) {\n .text-lg-left {\n text-align: left !important;\n }\n .text-lg-right {\n text-align: right !important;\n }\n .text-lg-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 1200px) {\n .text-xl-left {\n text-align: left !important;\n }\n .text-xl-right {\n text-align: right !important;\n }\n .text-xl-center {\n text-align: center !important;\n }\n}\n\n.text-lowercase {\n text-transform: lowercase !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n.font-weight-light {\n font-weight: 300 !important;\n}\n\n.font-weight-lighter {\n font-weight: lighter !important;\n}\n\n.font-weight-normal {\n font-weight: 400 !important;\n}\n\n.font-weight-bold {\n font-weight: 700 !important;\n}\n\n.font-weight-bolder {\n font-weight: bolder !important;\n}\n\n.font-italic {\n font-style: italic !important;\n}\n\n.text-white {\n color: #fff !important;\n}\n\n.text-primary {\n color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n color: #0056b3 !important;\n}\n\n.text-secondary {\n color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n color: #494f54 !important;\n}\n\n.text-success {\n color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n color: #19692c !important;\n}\n\n.text-info {\n color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n color: #0f6674 !important;\n}\n\n.text-warning {\n color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n color: #ba8b00 !important;\n}\n\n.text-danger {\n color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n color: #a71d2a !important;\n}\n\n.text-light {\n color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n color: #cbd3da !important;\n}\n\n.text-dark {\n color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n color: #121416 !important;\n}\n\n.text-body {\n color: #212529 !important;\n}\n\n.text-muted {\n color: #6c757d !important;\n}\n\n.text-black-50 {\n color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n\n.text-decoration-none {\n text-decoration: none !important;\n}\n\n.text-break {\n word-break: break-word !important;\n overflow-wrap: break-word !important;\n}\n\n.text-reset {\n color: inherit !important;\n}\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n\n@media print {\n *,\n *::before,\n *::after {\n text-shadow: none !important;\n box-shadow: none !important;\n }\n a:not(.btn) {\n text-decoration: underline;\n }\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: 1px solid #adb5bd;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n @page {\n size: a3;\n }\n body {\n min-width: 992px !important;\n }\n .container {\n min-width: 992px !important;\n }\n .navbar {\n display: none;\n }\n .badge {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #dee2e6 !important;\n }\n .table-dark {\n color: inherit;\n }\n .table-dark th,\n .table-dark td,\n .table-dark thead th,\n .table-dark tbody + tbody {\n border-color: #dee2e6;\n }\n .table .thead-dark th {\n color: inherit;\n border-color: #dee2e6;\n }\n}\n\n/*# sourceMappingURL=bootstrap.css.map */","// Do not forget to update getting-started/theming.md!\n:root {\n // Custom variable values only support SassScript inside `#{}`.\n @each $color, $value in $colors {\n --#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$color}: #{$value};\n }\n\n @each $bp, $value in $grid-breakpoints {\n --breakpoint-#{$bp}: #{$value};\n }\n\n // Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --font-family-sans-serif: #{inspect($font-family-sans-serif)};\n --font-family-monospace: #{inspect($font-family-monospace)};\n}\n","// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\nhtml {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -webkit-tap-highlight-color: rgba($black, 0); // 5\n}\n\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\n// TODO: remove in v5\n// stylelint-disable-next-line selector-list-comma-newline-after\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use\n// the `inherit` value on things like `
` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n @include font-size($font-size-base);\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Future-proof rule: in browsers that support :focus-visible, suppress the focus outline\n// on elements that programmatically receive focus but wouldn't normally show a visible\n// focus outline. In general, this would mean that the outline is only applied if the\n// interaction that led to the element receiving programmatic focus was a keyboard interaction,\n// or the browser has somehow determined that the user is primarily a keyboard user and/or\n// wants focus outlines to always be presented.\n//\n// See https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible\n// and https://developer.paciellogroup.com/blog/2018/03/focus-visible-and-backwards-compatibility/\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `

`-`

` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable-next-line selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `

`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Remove the bottom border in Firefox 39-.\n// 5. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-original-title] { // 1\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 4\n text-decoration-skip-ink: none; // 5\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: $font-weight-bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n\nsmall {\n @include font-size(80%); // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n @include font-size(75%);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n\n @include hover() {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]) {\n color: inherit;\n text-decoration: none;\n\n @include hover() {\n color: inherit;\n text-decoration: none;\n }\n}\n\n\n//\n// Code\n//\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-monospace;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg {\n // Workaround for the SVG overflow bug in IE10/11 is still required.\n // See https://github.com/twbs/bootstrap/issues/26878\n overflow: hidden;\n vertical-align: middle;\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $table-caption-color;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n // Matches default `

` alignment by inheriting from the ``, or the\n // closest parent with a set `text-align`.\n text-align: inherit;\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: $label-margin-bottom;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n // stylelint-disable-next-line property-blacklist\n border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// Remove the inheritance of word-wrap in Safari.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24990\nselect {\n word-wrap: normal;\n}\n\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n// controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\n[type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; // 2\n}\n\n// Opinionated: add \"hand\" cursor to non-disabled button elements.\n@if $enable-pointer-cursor-for-buttons {\n button,\n [type=\"button\"],\n [type=\"reset\"],\n [type=\"submit\"] {\n &:not(:disabled) {\n cursor: pointer;\n }\n }\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n // Remove the default appearance of temporal inputs to avoid a Mobile Safari\n // bug where setting a custom line-height prevents text from being vertically\n // centered within the input.\n // See https://bugs.webkit.org/show_bug.cgi?id=139848\n // and https://github.com/twbs/bootstrap/issues/11266\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto; // Remove the default vertical scrollbar in IE.\n // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n resize: vertical;\n}\n\nfieldset {\n // Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `
`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n min-width: 0;\n // Reset the default outline behavior of fieldsets so they don't affect page layout.\n padding: 0;\n margin: 0;\n border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n display: block;\n width: 100%;\n max-width: 100%; // 1\n padding: 0;\n margin-bottom: .5rem;\n @include font-size(1.5rem);\n line-height: inherit;\n color: inherit; // 2\n white-space: normal; // 1\n}\n\nprogress {\n vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n // This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n outline-offset: -2px; // 2. Correct the outline style in Safari.\n -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n font: inherit; // 2\n -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item; // Add the correct display in all browsers\n cursor: pointer;\n}\n\ntemplate {\n display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n display: none !important;\n}\n","// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n// Color system\n\n$white: #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black: #000 !default;\n\n$grays: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$grays: map-merge(\n (\n \"100\": $gray-100,\n \"200\": $gray-200,\n \"300\": $gray-300,\n \"400\": $gray-400,\n \"500\": $gray-500,\n \"600\": $gray-600,\n \"700\": $gray-700,\n \"800\": $gray-800,\n \"900\": $gray-900\n ),\n $grays\n);\n\n$blue: #007bff !default;\n$indigo: #6610f2 !default;\n$purple: #6f42c1 !default;\n$pink: #e83e8c !default;\n$red: #dc3545 !default;\n$orange: #fd7e14 !default;\n$yellow: #ffc107 !default;\n$green: #28a745 !default;\n$teal: #20c997 !default;\n$cyan: #17a2b8 !default;\n\n$colors: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$colors: map-merge(\n (\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"yellow\": $yellow,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"white\": $white,\n \"gray\": $gray-600,\n \"gray-dark\": $gray-800\n ),\n $colors\n);\n\n$primary: $blue !default;\n$secondary: $gray-600 !default;\n$success: $green !default;\n$info: $cyan !default;\n$warning: $yellow !default;\n$danger: $red !default;\n$light: $gray-100 !default;\n$dark: $gray-800 !default;\n\n$theme-colors: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$theme-colors: map-merge(\n (\n \"primary\": $primary,\n \"secondary\": $secondary,\n \"success\": $success,\n \"info\": $info,\n \"warning\": $warning,\n \"danger\": $danger,\n \"light\": $light,\n \"dark\": $dark\n ),\n $theme-colors\n);\n\n// Set a specific jump point for requesting color jumps\n$theme-color-interval: 8% !default;\n\n// The yiq lightness value that determines when the lightness of color changes from \"dark\" to \"light\". Acceptable values are between 0 and 255.\n$yiq-contrasted-threshold: 150 !default;\n\n// Customize the light and dark text colors for use in our YIQ color contrast function.\n$yiq-text-dark: $gray-900 !default;\n$yiq-text-light: $white !default;\n\n// Characters which are escaped by the escape-svg function\n$escaped-characters: (\n (\"<\",\"%3c\"),\n (\">\",\"%3e\"),\n (\"#\",\"%23\"),\n) !default;\n\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: false !default;\n$enable-gradients: false !default;\n$enable-transitions: true !default;\n$enable-prefers-reduced-motion-media-query: true !default;\n$enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS\n$enable-grid-classes: true !default;\n$enable-pointer-cursor-for-buttons: true !default;\n$enable-print-styles: true !default;\n$enable-responsive-font-sizes: false !default;\n$enable-validation-icons: true !default;\n$enable-deprecation-messages: true !default;\n\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n$spacer: 1rem !default;\n$spacers: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$spacers: map-merge(\n (\n 0: 0,\n 1: ($spacer * .25),\n 2: ($spacer * .5),\n 3: $spacer,\n 4: ($spacer * 1.5),\n 5: ($spacer * 3)\n ),\n $spacers\n);\n\n// This variable affects the `.h-*` and `.w-*` classes.\n$sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$sizes: map-merge(\n (\n 25: 25%,\n 50: 50%,\n 75: 75%,\n 100: 100%,\n auto: auto\n ),\n $sizes\n);\n\n\n// Body\n//\n// Settings for the `` element.\n\n$body-bg: $white !default;\n$body-color: $gray-900 !default;\n\n\n// Links\n//\n// Style anchor elements.\n\n$link-color: theme-color(\"primary\") !default;\n$link-decoration: none !default;\n$link-hover-color: darken($link-color, 15%) !default;\n$link-hover-decoration: underline !default;\n// Darken percentage for links with `.text-*` class (e.g. `.text-success`)\n$emphasized-link-hover-darken-percentage: 15% !default;\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n$grid-breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px\n) !default;\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints, \"$grid-breakpoints\");\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1140px\n) !default;\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-width: 30px !default;\n$grid-row-columns: 6 !default;\n\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n$line-height-lg: 1.5 !default;\n$line-height-sm: 1.5 !default;\n\n$border-width: 1px !default;\n$border-color: $gray-300 !default;\n\n$border-radius: .25rem !default;\n$border-radius-lg: .3rem !default;\n$border-radius-sm: .2rem !default;\n\n$rounded-pill: 50rem !default;\n\n$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default;\n$box-shadow: 0 .5rem 1rem rgba($black, .15) !default;\n$box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default;\n\n$component-active-color: $white !default;\n$component-active-bg: theme-color(\"primary\") !default;\n\n$caret-width: .3em !default;\n$caret-vertical-align: $caret-width * .85 !default;\n$caret-spacing: $caret-width * .85 !default;\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n$transition-collapse: height .35s ease !default;\n\n$embed-responsive-aspect-ratios: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$embed-responsive-aspect-ratios: join(\n (\n (21 9),\n (16 9),\n (4 3),\n (1 1),\n ),\n $embed-responsive-aspect-ratios\n);\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// stylelint-disable value-keyword-case\n$font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\" !default;\n$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n$font-family-base: $font-family-sans-serif !default;\n// stylelint-enable value-keyword-case\n\n$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`\n$font-size-lg: $font-size-base * 1.25 !default;\n$font-size-sm: $font-size-base * .875 !default;\n\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n$line-height-base: 1.5 !default;\n\n$h1-font-size: $font-size-base * 2.5 !default;\n$h2-font-size: $font-size-base * 2 !default;\n$h3-font-size: $font-size-base * 1.75 !default;\n$h4-font-size: $font-size-base * 1.5 !default;\n$h5-font-size: $font-size-base * 1.25 !default;\n$h6-font-size: $font-size-base !default;\n\n$headings-margin-bottom: $spacer / 2 !default;\n$headings-font-family: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: null !default;\n\n$display1-size: 6rem !default;\n$display2-size: 5.5rem !default;\n$display3-size: 4.5rem !default;\n$display4-size: 3.5rem !default;\n\n$display1-weight: 300 !default;\n$display2-weight: 300 !default;\n$display3-weight: 300 !default;\n$display4-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n\n$lead-font-size: $font-size-base * 1.25 !default;\n$lead-font-weight: 300 !default;\n\n$small-font-size: 80% !default;\n\n$text-muted: $gray-600 !default;\n\n$blockquote-small-color: $gray-600 !default;\n$blockquote-small-font-size: $small-font-size !default;\n$blockquote-font-size: $font-size-base * 1.25 !default;\n\n$hr-border-color: rgba($black, .1) !default;\n$hr-border-width: $border-width !default;\n\n$mark-padding: .2em !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n$kbd-box-shadow: inset 0 -.1rem 0 rgba($black, .25) !default;\n$nested-kbd-font-weight: $font-weight-bold !default;\n\n$list-inline-padding: .5rem !default;\n\n$mark-bg: #fcf8e3 !default;\n\n$hr-margin-y: $spacer !default;\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n$table-cell-padding: .75rem !default;\n$table-cell-padding-sm: .3rem !default;\n\n$table-color: $body-color !default;\n$table-bg: null !default;\n$table-accent-bg: rgba($black, .05) !default;\n$table-hover-color: $table-color !default;\n$table-hover-bg: rgba($black, .075) !default;\n$table-active-bg: $table-hover-bg !default;\n\n$table-border-width: $border-width !default;\n$table-border-color: $border-color !default;\n\n$table-head-bg: $gray-200 !default;\n$table-head-color: $gray-700 !default;\n\n$table-dark-color: $white !default;\n$table-dark-bg: $gray-800 !default;\n$table-dark-accent-bg: rgba($white, .05) !default;\n$table-dark-hover-color: $table-dark-color !default;\n$table-dark-hover-bg: rgba($white, .075) !default;\n$table-dark-border-color: lighten($table-dark-bg, 7.5%) !default;\n\n$table-striped-order: odd !default;\n\n$table-caption-color: $text-muted !default;\n\n$table-bg-level: -9 !default;\n$table-border-level: -6 !default;\n\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n$input-btn-padding-y: .375rem !default;\n$input-btn-padding-x: .75rem !default;\n$input-btn-font-family: null !default;\n$input-btn-font-size: $font-size-base !default;\n$input-btn-line-height: $line-height-base !default;\n\n$input-btn-focus-width: .2rem !default;\n$input-btn-focus-color: rgba($component-active-bg, .25) !default;\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color !default;\n\n$input-btn-padding-y-sm: .25rem !default;\n$input-btn-padding-x-sm: .5rem !default;\n$input-btn-font-size-sm: $font-size-sm !default;\n$input-btn-line-height-sm: $line-height-sm !default;\n\n$input-btn-padding-y-lg: .5rem !default;\n$input-btn-padding-x-lg: 1rem !default;\n$input-btn-font-size-lg: $font-size-lg !default;\n$input-btn-line-height-lg: $line-height-lg !default;\n\n$input-btn-border-width: $border-width !default;\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n$btn-padding-y: $input-btn-padding-y !default;\n$btn-padding-x: $input-btn-padding-x !default;\n$btn-font-family: $input-btn-font-family !default;\n$btn-font-size: $input-btn-font-size !default;\n$btn-line-height: $input-btn-line-height !default;\n$btn-white-space: null !default; // Set to `nowrap` to prevent text wrapping\n\n$btn-padding-y-sm: $input-btn-padding-y-sm !default;\n$btn-padding-x-sm: $input-btn-padding-x-sm !default;\n$btn-font-size-sm: $input-btn-font-size-sm !default;\n$btn-line-height-sm: $input-btn-line-height-sm !default;\n\n$btn-padding-y-lg: $input-btn-padding-y-lg !default;\n$btn-padding-x-lg: $input-btn-padding-x-lg !default;\n$btn-font-size-lg: $input-btn-font-size-lg !default;\n$btn-line-height-lg: $input-btn-line-height-lg !default;\n\n$btn-border-width: $input-btn-border-width !default;\n\n$btn-font-weight: $font-weight-normal !default;\n$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width: $input-btn-focus-width !default;\n$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity: .65 !default;\n$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-disabled-color: $gray-600 !default;\n\n$btn-block-spacing-y: .5rem !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius: $border-radius !default;\n$btn-border-radius-lg: $border-radius-lg !default;\n$btn-border-radius-sm: $border-radius-sm !default;\n\n$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n\n// Forms\n\n$label-margin-bottom: .5rem !default;\n\n$input-padding-y: $input-btn-padding-y !default;\n$input-padding-x: $input-btn-padding-x !default;\n$input-font-family: $input-btn-font-family !default;\n$input-font-size: $input-btn-font-size !default;\n$input-font-weight: $font-weight-base !default;\n$input-line-height: $input-btn-line-height !default;\n\n$input-padding-y-sm: $input-btn-padding-y-sm !default;\n$input-padding-x-sm: $input-btn-padding-x-sm !default;\n$input-font-size-sm: $input-btn-font-size-sm !default;\n$input-line-height-sm: $input-btn-line-height-sm !default;\n\n$input-padding-y-lg: $input-btn-padding-y-lg !default;\n$input-padding-x-lg: $input-btn-padding-x-lg !default;\n$input-font-size-lg: $input-btn-font-size-lg !default;\n$input-line-height-lg: $input-btn-line-height-lg !default;\n\n$input-bg: $white !default;\n$input-disabled-bg: $gray-200 !default;\n\n$input-color: $gray-700 !default;\n$input-border-color: $gray-400 !default;\n$input-border-width: $input-btn-border-width !default;\n$input-box-shadow: inset 0 1px 1px rgba($black, .075) !default;\n\n$input-border-radius: $border-radius !default;\n$input-border-radius-lg: $border-radius-lg !default;\n$input-border-radius-sm: $border-radius-sm !default;\n\n$input-focus-bg: $input-bg !default;\n$input-focus-border-color: lighten($component-active-bg, 25%) !default;\n$input-focus-color: $input-color !default;\n$input-focus-width: $input-btn-focus-width !default;\n$input-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color: $gray-600 !default;\n$input-plaintext-color: $body-color !default;\n\n$input-height-border: $input-border-width * 2 !default;\n\n$input-height-inner: add($input-line-height * 1em, $input-padding-y * 2) !default;\n$input-height-inner-half: add($input-line-height * .5em, $input-padding-y) !default;\n$input-height-inner-quarter: add($input-line-height * .25em, $input-padding-y / 2) !default;\n\n$input-height: add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false)) !default;\n$input-height-sm: add($input-line-height-sm * 1em, add($input-padding-y-sm * 2, $input-height-border, false)) !default;\n$input-height-lg: add($input-line-height-lg * 1em, add($input-padding-y-lg * 2, $input-height-border, false)) !default;\n\n$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-text-margin-top: .25rem !default;\n\n$form-check-input-gutter: 1.25rem !default;\n$form-check-input-margin-y: .3rem !default;\n$form-check-input-margin-x: .25rem !default;\n\n$form-check-inline-margin-x: .75rem !default;\n$form-check-inline-input-margin-x: .3125rem !default;\n\n$form-grid-gutter-width: 10px !default;\n$form-group-margin-bottom: 1rem !default;\n\n$input-group-addon-color: $input-color !default;\n$input-group-addon-bg: $gray-200 !default;\n$input-group-addon-border-color: $input-border-color !default;\n\n$custom-forms-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$custom-control-gutter: .5rem !default;\n$custom-control-spacer-x: 1rem !default;\n$custom-control-cursor: null !default;\n\n$custom-control-indicator-size: 1rem !default;\n$custom-control-indicator-bg: $input-bg !default;\n\n$custom-control-indicator-bg-size: 50% 50% !default;\n$custom-control-indicator-box-shadow: $input-box-shadow !default;\n$custom-control-indicator-border-color: $gray-500 !default;\n$custom-control-indicator-border-width: $input-border-width !default;\n\n$custom-control-label-color: null !default;\n\n$custom-control-indicator-disabled-bg: $input-disabled-bg !default;\n$custom-control-label-disabled-color: $gray-600 !default;\n\n$custom-control-indicator-checked-color: $component-active-color !default;\n$custom-control-indicator-checked-bg: $component-active-bg !default;\n$custom-control-indicator-checked-disabled-bg: rgba(theme-color(\"primary\"), .5) !default;\n$custom-control-indicator-checked-box-shadow: none !default;\n$custom-control-indicator-checked-border-color: $custom-control-indicator-checked-bg !default;\n\n$custom-control-indicator-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-control-indicator-focus-border-color: $input-focus-border-color !default;\n\n$custom-control-indicator-active-color: $component-active-color !default;\n$custom-control-indicator-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-control-indicator-active-box-shadow: none !default;\n$custom-control-indicator-active-border-color: $custom-control-indicator-active-bg !default;\n\n$custom-checkbox-indicator-border-radius: $border-radius !default;\n$custom-checkbox-indicator-icon-checked: url(\"data:image/svg+xml,\") !default;\n\n$custom-checkbox-indicator-indeterminate-bg: $component-active-bg !default;\n$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;\n$custom-checkbox-indicator-icon-indeterminate: url(\"data:image/svg+xml,\") !default;\n$custom-checkbox-indicator-indeterminate-box-shadow: none !default;\n$custom-checkbox-indicator-indeterminate-border-color: $custom-checkbox-indicator-indeterminate-bg !default;\n\n$custom-radio-indicator-border-radius: 50% !default;\n$custom-radio-indicator-icon-checked: url(\"data:image/svg+xml,\") !default;\n\n$custom-switch-width: $custom-control-indicator-size * 1.75 !default;\n$custom-switch-indicator-border-radius: $custom-control-indicator-size / 2 !default;\n$custom-switch-indicator-size: subtract($custom-control-indicator-size, $custom-control-indicator-border-width * 4) !default;\n\n$custom-select-padding-y: $input-padding-y !default;\n$custom-select-padding-x: $input-padding-x !default;\n$custom-select-font-family: $input-font-family !default;\n$custom-select-font-size: $input-font-size !default;\n$custom-select-height: $input-height !default;\n$custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator\n$custom-select-font-weight: $input-font-weight !default;\n$custom-select-line-height: $input-line-height !default;\n$custom-select-color: $input-color !default;\n$custom-select-disabled-color: $gray-600 !default;\n$custom-select-bg: $input-bg !default;\n$custom-select-disabled-bg: $gray-200 !default;\n$custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions\n$custom-select-indicator-color: $gray-800 !default;\n$custom-select-indicator: url(\"data:image/svg+xml,\") !default;\n$custom-select-background: escape-svg($custom-select-indicator) no-repeat right $custom-select-padding-x center / $custom-select-bg-size !default; // Used so we can have multiple background elements (e.g., arrow and feedback icon)\n\n$custom-select-feedback-icon-padding-right: add(1em * .75, (2 * $custom-select-padding-y * .75) + $custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-position: center right ($custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default;\n\n$custom-select-border-width: $input-border-width !default;\n$custom-select-border-color: $input-border-color !default;\n$custom-select-border-radius: $border-radius !default;\n$custom-select-box-shadow: inset 0 1px 2px rgba($black, .075) !default;\n\n$custom-select-focus-border-color: $input-focus-border-color !default;\n$custom-select-focus-width: $input-focus-width !default;\n$custom-select-focus-box-shadow: 0 0 0 $custom-select-focus-width $input-btn-focus-color !default;\n\n$custom-select-padding-y-sm: $input-padding-y-sm !default;\n$custom-select-padding-x-sm: $input-padding-x-sm !default;\n$custom-select-font-size-sm: $input-font-size-sm !default;\n$custom-select-height-sm: $input-height-sm !default;\n\n$custom-select-padding-y-lg: $input-padding-y-lg !default;\n$custom-select-padding-x-lg: $input-padding-x-lg !default;\n$custom-select-font-size-lg: $input-font-size-lg !default;\n$custom-select-height-lg: $input-height-lg !default;\n\n$custom-range-track-width: 100% !default;\n$custom-range-track-height: .5rem !default;\n$custom-range-track-cursor: pointer !default;\n$custom-range-track-bg: $gray-300 !default;\n$custom-range-track-border-radius: 1rem !default;\n$custom-range-track-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default;\n\n$custom-range-thumb-width: 1rem !default;\n$custom-range-thumb-height: $custom-range-thumb-width !default;\n$custom-range-thumb-bg: $component-active-bg !default;\n$custom-range-thumb-border: 0 !default;\n$custom-range-thumb-border-radius: 1rem !default;\n$custom-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default;\n$custom-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default;\n$custom-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in IE/Edge\n$custom-range-thumb-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-range-thumb-disabled-bg: $gray-500 !default;\n\n$custom-file-height: $input-height !default;\n$custom-file-height-inner: $input-height-inner !default;\n$custom-file-focus-border-color: $input-focus-border-color !default;\n$custom-file-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-file-disabled-bg: $input-disabled-bg !default;\n\n$custom-file-padding-y: $input-padding-y !default;\n$custom-file-padding-x: $input-padding-x !default;\n$custom-file-line-height: $input-line-height !default;\n$custom-file-font-family: $input-font-family !default;\n$custom-file-font-weight: $input-font-weight !default;\n$custom-file-color: $input-color !default;\n$custom-file-bg: $input-bg !default;\n$custom-file-border-width: $input-border-width !default;\n$custom-file-border-color: $input-border-color !default;\n$custom-file-border-radius: $input-border-radius !default;\n$custom-file-box-shadow: $input-box-shadow !default;\n$custom-file-button-color: $custom-file-color !default;\n$custom-file-button-bg: $input-group-addon-bg !default;\n$custom-file-text: (\n en: \"Browse\"\n) !default;\n\n\n// Form validation\n\n$form-feedback-margin-top: $form-text-margin-top !default;\n$form-feedback-font-size: $small-font-size !default;\n$form-feedback-valid-color: theme-color(\"success\") !default;\n$form-feedback-invalid-color: theme-color(\"danger\") !default;\n\n$form-feedback-icon-valid-color: $form-feedback-valid-color !default;\n$form-feedback-icon-valid: url(\"data:image/svg+xml,\") !default;\n$form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;\n$form-feedback-icon-invalid: url(\"data:image/svg+xml,\") !default;\n\n$form-validation-states: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$form-validation-states: map-merge(\n (\n \"valid\": (\n \"color\": $form-feedback-valid-color,\n \"icon\": $form-feedback-icon-valid\n ),\n \"invalid\": (\n \"color\": $form-feedback-invalid-color,\n \"icon\": $form-feedback-icon-invalid\n ),\n ),\n $form-validation-states\n);\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n$zindex-dropdown: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n$zindex-modal-backdrop: 1040 !default;\n$zindex-modal: 1050 !default;\n$zindex-popover: 1060 !default;\n$zindex-tooltip: 1070 !default;\n\n\n// Navs\n\n$nav-link-padding-y: .5rem !default;\n$nav-link-padding-x: 1rem !default;\n$nav-link-disabled-color: $gray-600 !default;\n\n$nav-tabs-border-color: $gray-300 !default;\n$nav-tabs-border-width: $border-width !default;\n$nav-tabs-border-radius: $border-radius !default;\n$nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color !default;\n$nav-tabs-link-active-color: $gray-700 !default;\n$nav-tabs-link-active-bg: $body-bg !default;\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius: $border-radius !default;\n$nav-pills-link-active-color: $component-active-color !default;\n$nav-pills-link-active-bg: $component-active-bg !default;\n\n$nav-divider-color: $gray-200 !default;\n$nav-divider-margin-y: $spacer / 2 !default;\n\n\n// Navbar\n\n$navbar-padding-y: $spacer / 2 !default;\n$navbar-padding-x: $spacer !default;\n\n$navbar-nav-link-padding-x: .5rem !default;\n\n$navbar-brand-font-size: $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;\n$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) / 2 !default;\n\n$navbar-toggler-padding-y: .25rem !default;\n$navbar-toggler-padding-x: .75rem !default;\n$navbar-toggler-font-size: $font-size-lg !default;\n$navbar-toggler-border-radius: $btn-border-radius !default;\n\n$navbar-dark-color: rgba($white, .5) !default;\n$navbar-dark-hover-color: rgba($white, .75) !default;\n$navbar-dark-active-color: $white !default;\n$navbar-dark-disabled-color: rgba($white, .25) !default;\n$navbar-dark-toggler-icon-bg: url(\"data:image/svg+xml,\") !default;\n$navbar-dark-toggler-border-color: rgba($white, .1) !default;\n\n$navbar-light-color: rgba($black, .5) !default;\n$navbar-light-hover-color: rgba($black, .7) !default;\n$navbar-light-active-color: rgba($black, .9) !default;\n$navbar-light-disabled-color: rgba($black, .3) !default;\n$navbar-light-toggler-icon-bg: url(\"data:image/svg+xml,\") !default;\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\n\n$navbar-light-brand-color: $navbar-light-active-color !default;\n$navbar-light-brand-hover-color: $navbar-light-active-color !default;\n$navbar-dark-brand-color: $navbar-dark-active-color !default;\n$navbar-dark-brand-hover-color: $navbar-dark-active-color !default;\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n$dropdown-min-width: 10rem !default;\n$dropdown-padding-y: .5rem !default;\n$dropdown-spacer: .125rem !default;\n$dropdown-font-size: $font-size-base !default;\n$dropdown-color: $body-color !default;\n$dropdown-bg: $white !default;\n$dropdown-border-color: rgba($black, .15) !default;\n$dropdown-border-radius: $border-radius !default;\n$dropdown-border-width: $border-width !default;\n$dropdown-inner-border-radius: subtract($dropdown-border-radius, $dropdown-border-width) !default;\n$dropdown-divider-bg: $gray-200 !default;\n$dropdown-divider-margin-y: $nav-divider-margin-y !default;\n$dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;\n\n$dropdown-link-color: $gray-900 !default;\n$dropdown-link-hover-color: darken($gray-900, 5%) !default;\n$dropdown-link-hover-bg: $gray-100 !default;\n\n$dropdown-link-active-color: $component-active-color !default;\n$dropdown-link-active-bg: $component-active-bg !default;\n\n$dropdown-link-disabled-color: $gray-600 !default;\n\n$dropdown-item-padding-y: .25rem !default;\n$dropdown-item-padding-x: 1.5rem !default;\n\n$dropdown-header-color: $gray-600 !default;\n\n\n// Pagination\n\n$pagination-padding-y: .5rem !default;\n$pagination-padding-x: .75rem !default;\n$pagination-padding-y-sm: .25rem !default;\n$pagination-padding-x-sm: .5rem !default;\n$pagination-padding-y-lg: .75rem !default;\n$pagination-padding-x-lg: 1.5rem !default;\n$pagination-line-height: 1.25 !default;\n\n$pagination-color: $link-color !default;\n$pagination-bg: $white !default;\n$pagination-border-width: $border-width !default;\n$pagination-border-color: $gray-300 !default;\n\n$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$pagination-focus-outline: 0 !default;\n\n$pagination-hover-color: $link-hover-color !default;\n$pagination-hover-bg: $gray-200 !default;\n$pagination-hover-border-color: $gray-300 !default;\n\n$pagination-active-color: $component-active-color !default;\n$pagination-active-bg: $component-active-bg !default;\n$pagination-active-border-color: $pagination-active-bg !default;\n\n$pagination-disabled-color: $gray-600 !default;\n$pagination-disabled-bg: $white !default;\n$pagination-disabled-border-color: $gray-300 !default;\n\n\n// Jumbotron\n\n$jumbotron-padding: 2rem !default;\n$jumbotron-color: null !default;\n$jumbotron-bg: $gray-200 !default;\n\n\n// Cards\n\n$card-spacer-y: .75rem !default;\n$card-spacer-x: 1.25rem !default;\n$card-border-width: $border-width !default;\n$card-border-radius: $border-radius !default;\n$card-border-color: rgba($black, .125) !default;\n$card-inner-border-radius: subtract($card-border-radius, $card-border-width) !default;\n$card-cap-bg: rgba($black, .03) !default;\n$card-cap-color: null !default;\n$card-height: null !default;\n$card-color: null !default;\n$card-bg: $white !default;\n\n$card-img-overlay-padding: 1.25rem !default;\n\n$card-group-margin: $grid-gutter-width / 2 !default;\n$card-deck-margin: $card-group-margin !default;\n\n$card-columns-count: 3 !default;\n$card-columns-gap: 1.25rem !default;\n$card-columns-margin: $card-spacer-y !default;\n\n\n// Tooltips\n\n$tooltip-font-size: $font-size-sm !default;\n$tooltip-max-width: 200px !default;\n$tooltip-color: $white !default;\n$tooltip-bg: $black !default;\n$tooltip-border-radius: $border-radius !default;\n$tooltip-opacity: .9 !default;\n$tooltip-padding-y: .25rem !default;\n$tooltip-padding-x: .5rem !default;\n$tooltip-margin: 0 !default;\n\n$tooltip-arrow-width: .8rem !default;\n$tooltip-arrow-height: .4rem !default;\n$tooltip-arrow-color: $tooltip-bg !default;\n\n// Form tooltips must come after regular tooltips\n$form-feedback-tooltip-padding-y: $tooltip-padding-y !default;\n$form-feedback-tooltip-padding-x: $tooltip-padding-x !default;\n$form-feedback-tooltip-font-size: $tooltip-font-size !default;\n$form-feedback-tooltip-line-height: $line-height-base !default;\n$form-feedback-tooltip-opacity: $tooltip-opacity !default;\n$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;\n\n\n// Popovers\n\n$popover-font-size: $font-size-sm !default;\n$popover-bg: $white !default;\n$popover-max-width: 276px !default;\n$popover-border-width: $border-width !default;\n$popover-border-color: rgba($black, .2) !default;\n$popover-border-radius: $border-radius-lg !default;\n$popover-inner-border-radius: subtract($popover-border-radius, $popover-border-width) !default;\n$popover-box-shadow: 0 .25rem .5rem rgba($black, .2) !default;\n\n$popover-header-bg: darken($popover-bg, 3%) !default;\n$popover-header-color: $headings-color !default;\n$popover-header-padding-y: .5rem !default;\n$popover-header-padding-x: .75rem !default;\n\n$popover-body-color: $body-color !default;\n$popover-body-padding-y: $popover-header-padding-y !default;\n$popover-body-padding-x: $popover-header-padding-x !default;\n\n$popover-arrow-width: 1rem !default;\n$popover-arrow-height: .5rem !default;\n$popover-arrow-color: $popover-bg !default;\n\n$popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;\n\n\n// Toasts\n\n$toast-max-width: 350px !default;\n$toast-padding-x: .75rem !default;\n$toast-padding-y: .25rem !default;\n$toast-font-size: .875rem !default;\n$toast-color: null !default;\n$toast-background-color: rgba($white, .85) !default;\n$toast-border-width: 1px !default;\n$toast-border-color: rgba(0, 0, 0, .1) !default;\n$toast-border-radius: .25rem !default;\n$toast-box-shadow: 0 .25rem .75rem rgba($black, .1) !default;\n\n$toast-header-color: $gray-600 !default;\n$toast-header-background-color: rgba($white, .85) !default;\n$toast-header-border-color: rgba(0, 0, 0, .05) !default;\n\n\n// Badges\n\n$badge-font-size: 75% !default;\n$badge-font-weight: $font-weight-bold !default;\n$badge-padding-y: .25em !default;\n$badge-padding-x: .4em !default;\n$badge-border-radius: $border-radius !default;\n\n$badge-transition: $btn-transition !default;\n$badge-focus-width: $input-btn-focus-width !default;\n\n$badge-pill-padding-x: .6em !default;\n// Use a higher than normal value to ensure completely rounded edges when\n// customizing padding or font-size on labels.\n$badge-pill-border-radius: 10rem !default;\n\n\n// Modals\n\n// Padding applied to the modal body\n$modal-inner-padding: 1rem !default;\n\n// Margin between elements in footer, must be lower than or equal to 2 * $modal-inner-padding\n$modal-footer-margin-between: .5rem !default;\n\n$modal-dialog-margin: .5rem !default;\n$modal-dialog-margin-y-sm-up: 1.75rem !default;\n\n$modal-title-line-height: $line-height-base !default;\n\n$modal-content-color: null !default;\n$modal-content-bg: $white !default;\n$modal-content-border-color: rgba($black, .2) !default;\n$modal-content-border-width: $border-width !default;\n$modal-content-border-radius: $border-radius-lg !default;\n$modal-content-inner-border-radius: subtract($modal-content-border-radius, $modal-content-border-width) !default;\n$modal-content-box-shadow-xs: 0 .25rem .5rem rgba($black, .5) !default;\n$modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .5) !default;\n\n$modal-backdrop-bg: $black !default;\n$modal-backdrop-opacity: .5 !default;\n$modal-header-border-color: $border-color !default;\n$modal-footer-border-color: $modal-header-border-color !default;\n$modal-header-border-width: $modal-content-border-width !default;\n$modal-footer-border-width: $modal-header-border-width !default;\n$modal-header-padding-y: 1rem !default;\n$modal-header-padding-x: 1rem !default;\n$modal-header-padding: $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility\n\n$modal-xl: 1140px !default;\n$modal-lg: 800px !default;\n$modal-md: 500px !default;\n$modal-sm: 300px !default;\n\n$modal-fade-transform: translate(0, -50px) !default;\n$modal-show-transform: none !default;\n$modal-transition: transform .3s ease-out !default;\n$modal-scale-transform: scale(1.02) !default;\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n$alert-padding-y: .75rem !default;\n$alert-padding-x: 1.25rem !default;\n$alert-margin-bottom: 1rem !default;\n$alert-border-radius: $border-radius !default;\n$alert-link-font-weight: $font-weight-bold !default;\n$alert-border-width: $border-width !default;\n\n$alert-bg-level: -10 !default;\n$alert-border-level: -9 !default;\n$alert-color-level: 6 !default;\n\n\n// Progress bars\n\n$progress-height: 1rem !default;\n$progress-font-size: $font-size-base * .75 !default;\n$progress-bg: $gray-200 !default;\n$progress-border-radius: $border-radius !default;\n$progress-box-shadow: inset 0 .1rem .1rem rgba($black, .1) !default;\n$progress-bar-color: $white !default;\n$progress-bar-bg: theme-color(\"primary\") !default;\n$progress-bar-animation-timing: 1s linear infinite !default;\n$progress-bar-transition: width .6s ease !default;\n\n\n// List group\n\n$list-group-color: null !default;\n$list-group-bg: $white !default;\n$list-group-border-color: rgba($black, .125) !default;\n$list-group-border-width: $border-width !default;\n$list-group-border-radius: $border-radius !default;\n\n$list-group-item-padding-y: .75rem !default;\n$list-group-item-padding-x: 1.25rem !default;\n\n$list-group-hover-bg: $gray-100 !default;\n$list-group-active-color: $component-active-color !default;\n$list-group-active-bg: $component-active-bg !default;\n$list-group-active-border-color: $list-group-active-bg !default;\n\n$list-group-disabled-color: $gray-600 !default;\n$list-group-disabled-bg: $list-group-bg !default;\n\n$list-group-action-color: $gray-700 !default;\n$list-group-action-hover-color: $list-group-action-color !default;\n\n$list-group-action-active-color: $body-color !default;\n$list-group-action-active-bg: $gray-200 !default;\n\n\n// Image thumbnails\n\n$thumbnail-padding: .25rem !default;\n$thumbnail-bg: $body-bg !default;\n$thumbnail-border-width: $border-width !default;\n$thumbnail-border-color: $gray-300 !default;\n$thumbnail-border-radius: $border-radius !default;\n$thumbnail-box-shadow: 0 1px 2px rgba($black, .075) !default;\n\n\n// Figures\n\n$figure-caption-font-size: 90% !default;\n$figure-caption-color: $gray-600 !default;\n\n\n// Breadcrumbs\n\n$breadcrumb-font-size: null !default;\n\n$breadcrumb-padding-y: .75rem !default;\n$breadcrumb-padding-x: 1rem !default;\n$breadcrumb-item-padding: .5rem !default;\n\n$breadcrumb-margin-bottom: 1rem !default;\n\n$breadcrumb-bg: $gray-200 !default;\n$breadcrumb-divider-color: $gray-600 !default;\n$breadcrumb-active-color: $gray-600 !default;\n$breadcrumb-divider: quote(\"/\") !default;\n\n$breadcrumb-border-radius: $border-radius !default;\n\n\n// Carousel\n\n$carousel-control-color: $white !default;\n$carousel-control-width: 15% !default;\n$carousel-control-opacity: .5 !default;\n$carousel-control-hover-opacity: .9 !default;\n$carousel-control-transition: opacity .15s ease !default;\n\n$carousel-indicator-width: 30px !default;\n$carousel-indicator-height: 3px !default;\n$carousel-indicator-hit-area-height: 10px !default;\n$carousel-indicator-spacer: 3px !default;\n$carousel-indicator-active-bg: $white !default;\n$carousel-indicator-transition: opacity .6s ease !default;\n\n$carousel-caption-width: 70% !default;\n$carousel-caption-color: $white !default;\n\n$carousel-control-icon-width: 20px !default;\n\n$carousel-control-prev-icon-bg: url(\"data:image/svg+xml,\") !default;\n$carousel-control-next-icon-bg: url(\"data:image/svg+xml,\") !default;\n\n$carousel-transition-duration: .6s !default;\n$carousel-transition: transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)\n\n\n// Spinners\n\n$spinner-width: 2rem !default;\n$spinner-height: $spinner-width !default;\n$spinner-border-width: .25em !default;\n\n$spinner-width-sm: 1rem !default;\n$spinner-height-sm: $spinner-width-sm !default;\n$spinner-border-width-sm: .2em !default;\n\n\n// Close\n\n$close-font-size: $font-size-base * 1.5 !default;\n$close-font-weight: $font-weight-bold !default;\n$close-color: $black !default;\n$close-text-shadow: 0 1px 0 $white !default;\n\n\n// Code\n\n$code-font-size: 87.5% !default;\n$code-color: $pink !default;\n\n$kbd-padding-y: .2rem !default;\n$kbd-padding-x: .4rem !default;\n$kbd-font-size: $code-font-size !default;\n$kbd-color: $white !default;\n$kbd-bg: $gray-900 !default;\n\n$pre-color: $gray-900 !default;\n$pre-scrollable-max-height: 340px !default;\n\n\n// Utilities\n\n$displays: none, inline, inline-block, block, table, table-row, table-cell, flex, inline-flex !default;\n$overflows: auto, hidden !default;\n$positions: static, relative, absolute, fixed, sticky !default;\n\n\n// Printing\n\n$print-page-size: a3 !default;\n$print-body-min-width: map-get($grid-breakpoints, \"lg\") !default;\n","// stylelint-disable property-blacklist, scss/dollar-variable-default\n\n// SCSS RFS mixin\n//\n// Automated font-resizing\n//\n// See https://github.com/twbs/rfs\n\n// Configuration\n\n// Base font size\n$rfs-base-font-size: 1.25rem !default;\n$rfs-font-size-unit: rem !default;\n\n// Breakpoint at where font-size starts decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n// Resize font-size based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != \"number\" or $rfs-factor <= 1 {\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\n}\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-responsive-font-sizes to false\n$enable-responsive-font-sizes: true !default;\n\n// Cache $rfs-base-font-size unit\n$rfs-base-font-size-unit: unit($rfs-base-font-size);\n\n// Remove px-unit from $rfs-base-font-size for calculations\n@if $rfs-base-font-size-unit == \"px\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1);\n}\n@else if $rfs-base-font-size-unit == \"rem\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1 / $rfs-rem-value);\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == \"px\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == \"rem\" or $rfs-breakpoint-unit-cache == \"em\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1 / $rfs-rem-value);\n}\n\n// Responsive font-size mixin\n@mixin rfs($fs, $important: false) {\n // Cache $fs unit\n $fs-unit: if(type-of($fs) == \"number\", unit($fs), false);\n\n // Add !important suffix if needed\n $rfs-suffix: if($important, \" !important\", \"\");\n\n // If $fs isn't a number (like inherit) or $fs has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $fs-unit or $fs-unit != \"\" and $fs-unit != \"px\" and $fs-unit != \"rem\" or $fs == 0 {\n font-size: #{$fs}#{$rfs-suffix};\n }\n @else {\n // Variables for storing static and fluid rescaling\n $rfs-static: null;\n $rfs-fluid: null;\n\n // Remove px-unit from $fs for calculations\n @if $fs-unit == \"px\" {\n $fs: $fs / ($fs * 0 + 1);\n }\n @else if $fs-unit == \"rem\" {\n $fs: $fs / ($fs * 0 + 1 / $rfs-rem-value);\n }\n\n // Set default font-size\n @if $rfs-font-size-unit == rem {\n $rfs-static: #{$fs / $rfs-rem-value}rem#{$rfs-suffix};\n }\n @else if $rfs-font-size-unit == px {\n $rfs-static: #{$fs}px#{$rfs-suffix};\n }\n @else {\n @error \"`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.\";\n }\n\n // Only add media query if font-size is bigger as the minimum font-size\n // If $rfs-factor == 1, no rescaling will take place\n @if $fs > $rfs-base-font-size and $enable-responsive-font-sizes {\n $min-width: null;\n $variable-unit: null;\n\n // Calculate minimum font-size for given font-size\n $fs-min: $rfs-base-font-size + ($fs - $rfs-base-font-size) / $rfs-factor;\n\n // Calculate difference between given font-size and minimum font-size for given font-size\n $fs-diff: $fs - $fs-min;\n\n // Base font-size formatting\n // No need to check if the unit is valid, because we did that before\n $min-width: if($rfs-font-size-unit == rem, #{$fs-min / $rfs-rem-value}rem, #{$fs-min}px);\n\n // If two-dimensional, use smallest of screen width and height\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n // Calculate the variable width between 0 and $rfs-breakpoint\n $variable-width: #{$fs-diff * 100 / $rfs-breakpoint}#{$variable-unit};\n\n // Set the calculated font-size.\n $rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};\n }\n\n // Rendering\n @if $rfs-fluid == null {\n // Only render static font-size if no fluid font-size is available\n font-size: $rfs-static;\n }\n @else {\n $mq-value: null;\n\n // RFS breakpoint formatting\n @if $rfs-breakpoint-unit == em or $rfs-breakpoint-unit == rem {\n $mq-value: #{$rfs-breakpoint / $rfs-rem-value}#{$rfs-breakpoint-unit};\n }\n @else if $rfs-breakpoint-unit == px {\n $mq-value: #{$rfs-breakpoint}px;\n }\n @else {\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n }\n\n @if $rfs-class == \"disable\" {\n // Adding an extra class increases specificity,\n // which prevents the media query to override the font size\n &,\n .disable-responsive-font-size &,\n &.disable-responsive-font-size {\n font-size: $rfs-static;\n }\n }\n @else {\n font-size: $rfs-static;\n }\n\n @if $rfs-two-dimensional {\n @media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n @else {\n @media (max-width: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n }\n }\n}\n\n// The font-size & responsive-font-size mixin uses RFS to rescale font sizes\n@mixin font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n\n@mixin responsive-font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n","// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Originally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS-an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular pseudo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover() {\n &:hover { @content; }\n}\n\n@mixin hover-focus() {\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin plain-hover-focus() {\n &,\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin hover-focus-active() {\n &:hover,\n &:focus,\n &:active {\n @content;\n }\n}\n","// stylelint-disable declaration-no-important, selector-list-comma-newline-after\n\n//\n// Headings\n//\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: $headings-color;\n}\n\nh1, .h1 { @include font-size($h1-font-size); }\nh2, .h2 { @include font-size($h2-font-size); }\nh3, .h3 { @include font-size($h3-font-size); }\nh4, .h4 { @include font-size($h4-font-size); }\nh5, .h5 { @include font-size($h5-font-size); }\nh6, .h6 { @include font-size($h6-font-size); }\n\n.lead {\n @include font-size($lead-font-size);\n font-weight: $lead-font-weight;\n}\n\n// Type display classes\n.display-1 {\n @include font-size($display1-size);\n font-weight: $display1-weight;\n line-height: $display-line-height;\n}\n.display-2 {\n @include font-size($display2-size);\n font-weight: $display2-weight;\n line-height: $display-line-height;\n}\n.display-3 {\n @include font-size($display3-size);\n font-weight: $display3-weight;\n line-height: $display-line-height;\n}\n.display-4 {\n @include font-size($display4-size);\n font-weight: $display4-weight;\n line-height: $display-line-height;\n}\n\n\n//\n// Horizontal rules\n//\n\nhr {\n margin-top: $hr-margin-y;\n margin-bottom: $hr-margin-y;\n border: 0;\n border-top: $hr-border-width solid $hr-border-color;\n}\n\n\n//\n// Emphasis\n//\n\nsmall,\n.small {\n @include font-size($small-font-size);\n font-weight: $font-weight-normal;\n}\n\nmark,\n.mark {\n padding: $mark-padding;\n background-color: $mark-bg;\n}\n\n\n//\n// Lists\n//\n\n.list-unstyled {\n @include list-unstyled();\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n @include list-unstyled();\n}\n.list-inline-item {\n display: inline-block;\n\n &:not(:last-child) {\n margin-right: $list-inline-padding;\n }\n}\n\n\n//\n// Misc\n//\n\n// Builds on `abbr`\n.initialism {\n @include font-size(90%);\n text-transform: uppercase;\n}\n\n// Blockquotes\n.blockquote {\n margin-bottom: $spacer;\n @include font-size($blockquote-font-size);\n}\n\n.blockquote-footer {\n display: block;\n @include font-size($blockquote-small-font-size);\n color: $blockquote-small-color;\n\n &::before {\n content: \"\\2014\\00A0\"; // em dash, nbsp\n }\n}\n","// Lists\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n@mixin list-unstyled() {\n padding-left: 0;\n list-style: none;\n}\n","// Responsive images (ensure images don't scale beyond their parents)\n//\n// This is purposefully opt-in via an explicit class rather than being the default for all ``s.\n// We previously tried the \"images are responsive by default\" approach in Bootstrap v2,\n// and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)\n// which weren't expecting the images within themselves to be involuntarily resized.\n// See also https://github.com/twbs/bootstrap/issues/18178\n.img-fluid {\n @include img-fluid();\n}\n\n\n// Image thumbnails\n.img-thumbnail {\n padding: $thumbnail-padding;\n background-color: $thumbnail-bg;\n border: $thumbnail-border-width solid $thumbnail-border-color;\n @include border-radius($thumbnail-border-radius);\n @include box-shadow($thumbnail-box-shadow);\n\n // Keep them at most 100% wide\n @include img-fluid();\n}\n\n//\n// Figures\n//\n\n.figure {\n // Ensures the caption's text aligns with the image.\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: $spacer / 2;\n line-height: 1;\n}\n\n.figure-caption {\n @include font-size($figure-caption-font-size);\n color: $figure-caption-color;\n}\n","// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n\n@mixin img-fluid() {\n // Part 1: Set a maximum relative to the parent\n max-width: 100%;\n // Part 2: Override the height to auto, otherwise images will be stretched\n // when setting a width and height attribute on the img element.\n height: auto;\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size.\n\n@mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {\n background-image: url($file-1x);\n\n // Autoprefixer takes care of adding -webkit-min-device-pixel-ratio and -o-min-device-pixel-ratio,\n // but doesn't convert dppx=>dpi.\n // There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard.\n // Compatibility info: https://caniuse.com/#feat=css-media-resolution\n @media only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx\n only screen and (min-resolution: 2dppx) { // Standardized\n background-image: url($file-2x);\n background-size: $width-1x $height-1x;\n }\n @include deprecate(\"`img-retina()`\", \"v4.3.0\", \"v5\");\n}\n","// stylelint-disable property-blacklist\n// Single side border-radius\n\n@mixin border-radius($radius: $border-radius, $fallback-border-radius: false) {\n @if $enable-rounded {\n border-radius: $radius;\n }\n @else if $fallback-border-radius != false {\n border-radius: $fallback-border-radius;\n }\n}\n\n@mixin border-top-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n border-top-right-radius: $radius;\n }\n}\n\n@mixin border-right-radius($radius) {\n @if $enable-rounded {\n border-top-right-radius: $radius;\n border-bottom-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-radius($radius) {\n @if $enable-rounded {\n border-bottom-right-radius: $radius;\n border-bottom-left-radius: $radius;\n }\n}\n\n@mixin border-left-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n border-bottom-left-radius: $radius;\n }\n}\n\n@mixin border-top-left-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n }\n}\n\n@mixin border-top-right-radius($radius) {\n @if $enable-rounded {\n border-top-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-right-radius($radius) {\n @if $enable-rounded {\n border-bottom-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-left-radius($radius) {\n @if $enable-rounded {\n border-bottom-left-radius: $radius;\n }\n}\n","// Inline code\ncode {\n @include font-size($code-font-size);\n color: $code-color;\n word-wrap: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n}\n\n// User input typically entered via keyboard\nkbd {\n padding: $kbd-padding-y $kbd-padding-x;\n @include font-size($kbd-font-size);\n color: $kbd-color;\n background-color: $kbd-bg;\n @include border-radius($border-radius-sm);\n @include box-shadow($kbd-box-shadow);\n\n kbd {\n padding: 0;\n @include font-size(100%);\n font-weight: $nested-kbd-font-weight;\n @include box-shadow(none);\n }\n}\n\n// Blocks of code\npre {\n display: block;\n @include font-size($code-font-size);\n color: $pre-color;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n @include font-size(inherit);\n color: inherit;\n word-break: normal;\n }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n max-height: $pre-scrollable-max-height;\n overflow-y: scroll;\n}\n","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n // Single container class with breakpoint max-widths\n .container {\n @include make-container();\n @include make-container-max-widths();\n }\n\n // 100% wide container at all breakpoints\n .container-fluid {\n @include make-container();\n }\n\n // Responsive containers that are 100% wide until a breakpoint\n @each $breakpoint, $container-max-width in $container-max-widths {\n .container-#{$breakpoint} {\n @extend .container-fluid;\n }\n\n @include media-breakpoint-up($breakpoint, $grid-breakpoints) {\n %responsive-container-#{$breakpoint} {\n max-width: $container-max-width;\n }\n\n @each $name, $width in $grid-breakpoints {\n @if ($container-max-width > $width or $breakpoint == $name) {\n .container#{breakpoint-infix($name, $grid-breakpoints)} {\n @extend %responsive-container-#{$breakpoint};\n }\n }\n }\n }\n }\n}\n\n\n// Row\n//\n// Rows contain your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n }\n\n // Remove the negative margin from default .row, then the horizontal padding\n // from all immediate children columns (to prevent runaway style inheritance).\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container($gutter: $grid-gutter-width) {\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n margin-right: auto;\n margin-left: auto;\n}\n\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n}\n\n@mixin make-row($gutter: $grid-gutter-width) {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$gutter / 2;\n margin-left: -$gutter / 2;\n}\n\n@mixin make-col-ready($gutter: $grid-gutter-width) {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n\n@mixin make-col-auto() {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; // Reset earlier grid tiers\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: $size / $columns;\n margin-left: if($num == 0, 0, percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// numberof columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n & > * {\n flex: 0 0 100% / $count;\n max-width: 100% / $count;\n }\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n\n @for $i from 1 through $grid-row-columns {\n .row-cols#{$infix}-#{$i} {\n @include row-cols($i);\n }\n }\n\n .col#{$infix}-auto {\n @include make-col-auto();\n }\n\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n .order#{$infix}-first { order: -1; }\n\n .order#{$infix}-last { order: $columns + 1; }\n\n @for $i from 0 through $columns {\n .order#{$infix}-#{$i} { order: $i; }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n }\n}\n","//\n// Basic Bootstrap table\n//\n\n.table {\n width: 100%;\n margin-bottom: $spacer;\n color: $table-color;\n background-color: $table-bg; // Reset for nesting within parents with `background-color`.\n\n th,\n td {\n padding: $table-cell-padding;\n vertical-align: top;\n border-top: $table-border-width solid $table-border-color;\n }\n\n thead th {\n vertical-align: bottom;\n border-bottom: (2 * $table-border-width) solid $table-border-color;\n }\n\n tbody + tbody {\n border-top: (2 * $table-border-width) solid $table-border-color;\n }\n}\n\n\n//\n// Condensed table w/ half padding\n//\n\n.table-sm {\n th,\n td {\n padding: $table-cell-padding-sm;\n }\n}\n\n\n// Border versions\n//\n// Add or remove borders all around the table and between all the columns.\n\n.table-bordered {\n border: $table-border-width solid $table-border-color;\n\n th,\n td {\n border: $table-border-width solid $table-border-color;\n }\n\n thead {\n th,\n td {\n border-bottom-width: 2 * $table-border-width;\n }\n }\n}\n\n.table-borderless {\n th,\n td,\n thead th,\n tbody + tbody {\n border: 0;\n }\n}\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n tbody tr:nth-of-type(#{$table-striped-order}) {\n background-color: $table-accent-bg;\n }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n tbody tr {\n @include hover() {\n color: $table-hover-color;\n background-color: $table-hover-bg;\n }\n }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n@each $color, $value in $theme-colors {\n @include table-row-variant($color, theme-color-level($color, $table-bg-level), theme-color-level($color, $table-border-level));\n}\n\n@include table-row-variant(active, $table-active-bg);\n\n\n// Dark styles\n//\n// Same table markup, but inverted color scheme: dark background and light text.\n\n// stylelint-disable-next-line no-duplicate-selectors\n.table {\n .thead-dark {\n th {\n color: $table-dark-color;\n background-color: $table-dark-bg;\n border-color: $table-dark-border-color;\n }\n }\n\n .thead-light {\n th {\n color: $table-head-color;\n background-color: $table-head-bg;\n border-color: $table-border-color;\n }\n }\n}\n\n.table-dark {\n color: $table-dark-color;\n background-color: $table-dark-bg;\n\n th,\n td,\n thead th {\n border-color: $table-dark-border-color;\n }\n\n &.table-bordered {\n border: 0;\n }\n\n &.table-striped {\n tbody tr:nth-of-type(#{$table-striped-order}) {\n background-color: $table-dark-accent-bg;\n }\n }\n\n &.table-hover {\n tbody tr {\n @include hover() {\n color: $table-dark-hover-color;\n background-color: $table-dark-hover-bg;\n }\n }\n }\n}\n\n\n// Responsive tables\n//\n// Generate series of `.table-responsive-*` classes for configuring the screen\n// size of where your table will overflow.\n\n.table-responsive {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $next: breakpoint-next($breakpoint, $grid-breakpoints);\n $infix: breakpoint-infix($next, $grid-breakpoints);\n\n &#{$infix} {\n @include media-breakpoint-down($breakpoint) {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n\n // Prevent double border on horizontal scroll due to use of `display: block;`\n > .table-bordered {\n border: 0;\n }\n }\n }\n }\n}\n","// Tables\n\n@mixin table-row-variant($state, $background, $border: null) {\n // Exact selectors below required to override `.table-striped` and prevent\n // inheritance to nested tables.\n .table-#{$state} {\n &,\n > th,\n > td {\n background-color: $background;\n }\n\n @if $border != null {\n th,\n td,\n thead th,\n tbody + tbody {\n border-color: $border;\n }\n }\n }\n\n // Hover states for `.table-hover`\n // Note: this is not available for cells or rows within `thead` or `tfoot`.\n .table-hover {\n $hover-background: darken($background, 5%);\n\n .table-#{$state} {\n @include hover() {\n background-color: $hover-background;\n\n > td,\n > th {\n background-color: $hover-background;\n }\n }\n }\n }\n}\n","// Bootstrap functions\n//\n// Utility mixins and functions for evaluating source code across our variables, maps, and mixins.\n\n// Ascending\n// Used to evaluate Sass maps like our grid breakpoints.\n@mixin _assert-ascending($map, $map-name) {\n $prev-key: null;\n $prev-num: null;\n @each $key, $num in $map {\n @if $prev-num == null or unit($num) == \"%\" or unit($prev-num) == \"%\" {\n // Do nothing\n } @else if not comparable($prev-num, $num) {\n @warn \"Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n } @else if $prev-num >= $num {\n @warn \"Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n }\n $prev-key: $key;\n $prev-num: $num;\n }\n}\n\n// Starts at zero\n// Used to ensure the min-width of the lowest breakpoint starts at 0.\n@mixin _assert-starts-at-zero($map, $map-name: \"$grid-breakpoints\") {\n $values: map-values($map);\n $first-value: nth($values, 1);\n @if $first-value != 0 {\n @warn \"First breakpoint in #{$map-name} must start at 0, but starts at #{$first-value}.\";\n }\n}\n\n// Replace `$search` with `$replace` in `$string`\n// Used on our SVG icon backgrounds for custom forms.\n//\n// @author Hugo Giraudel\n// @param {String} $string - Initial string\n// @param {String} $search - Substring to replace\n// @param {String} $replace ('') - New value\n// @return {String} - Updated string\n@function str-replace($string, $search, $replace: \"\") {\n $index: str-index($string, $search);\n\n @if $index {\n @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);\n }\n\n @return $string;\n}\n\n// See https://codepen.io/kevinweber/pen/dXWoRw\n@function escape-svg($string) {\n @if str-index($string, \"data:image/svg+xml\") {\n @each $char, $encoded in $escaped-characters {\n $string: str-replace($string, $char, $encoded);\n }\n }\n\n @return $string;\n}\n\n// Color contrast\n@function color-yiq($color, $dark: $yiq-text-dark, $light: $yiq-text-light) {\n $r: red($color);\n $g: green($color);\n $b: blue($color);\n\n $yiq: (($r * 299) + ($g * 587) + ($b * 114)) / 1000;\n\n @if ($yiq >= $yiq-contrasted-threshold) {\n @return $dark;\n } @else {\n @return $light;\n }\n}\n\n// Retrieve color Sass maps\n@function color($key: \"blue\") {\n @return map-get($colors, $key);\n}\n\n@function theme-color($key: \"primary\") {\n @return map-get($theme-colors, $key);\n}\n\n@function gray($key: \"100\") {\n @return map-get($grays, $key);\n}\n\n// Request a theme color level\n@function theme-color-level($color-name: \"primary\", $level: 0) {\n $color: theme-color($color-name);\n $color-base: if($level > 0, $black, $white);\n $level: abs($level);\n\n @return mix($color-base, $color, $level * $theme-color-interval);\n}\n\n// Return valid calc\n@function add($value1, $value2, $return-calc: true) {\n @if $value1 == null {\n @return $value2;\n }\n\n @if $value2 == null {\n @return $value1;\n }\n\n @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {\n @return $value1 + $value2;\n }\n\n @return if($return-calc == true, calc(#{$value1} + #{$value2}), $value1 + unquote(\" + \") + $value2);\n}\n\n@function subtract($value1, $value2, $return-calc: true) {\n @if $value1 == null and $value2 == null {\n @return null;\n }\n\n @if $value1 == null {\n @return -$value2;\n }\n\n @if $value2 == null {\n @return $value1;\n }\n\n @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {\n @return $value1 - $value2;\n }\n\n @return if($return-calc == true, calc(#{$value1} - #{$value2}), $value1 + unquote(\" - \") + $value2);\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Textual form controls\n//\n\n.form-control {\n display: block;\n width: 100%;\n height: $input-height;\n padding: $input-padding-y $input-padding-x;\n font-family: $input-font-family;\n @include font-size($input-font-size);\n font-weight: $input-font-weight;\n line-height: $input-line-height;\n color: $input-color;\n background-color: $input-bg;\n background-clip: padding-box;\n border: $input-border-width solid $input-border-color;\n\n // Note: This has no effect on `s in CSS.\n @include border-radius($input-border-radius, 0);\n\n @include box-shadow($input-box-shadow);\n @include transition($input-transition);\n\n // Unstyle the caret on ` receives focus\n // in IE and (under certain conditions) Edge, as it looks bad and cannot be made to\n // match the appearance of the native widget.\n // See https://github.com/twbs/bootstrap/issues/19398.\n color: $input-color;\n background-color: $input-bg;\n }\n}\n\n// Make file inputs better match text inputs by forcing them to new lines.\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n\n//\n// Labels\n//\n\n// For use with horizontal and inline forms, when you need the label (or legend)\n// text to align with the form controls.\n.col-form-label {\n padding-top: add($input-padding-y, $input-border-width);\n padding-bottom: add($input-padding-y, $input-border-width);\n margin-bottom: 0; // Override the `
` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n @include font-size($font-size-base);\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Future-proof rule: in browsers that support :focus-visible, suppress the focus outline\n// on elements that programmatically receive focus but wouldn't normally show a visible\n// focus outline. In general, this would mean that the outline is only applied if the\n// interaction that led to the element receiving programmatic focus was a keyboard interaction,\n// or the browser has somehow determined that the user is primarily a keyboard user and/or\n// wants focus outlines to always be presented.\n//\n// See https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible\n// and https://developer.paciellogroup.com/blog/2018/03/focus-visible-and-backwards-compatibility/\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `

`-`

` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable-next-line selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `

`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Remove the bottom border in Firefox 39-.\n// 5. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-original-title] { // 1\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 4\n text-decoration-skip-ink: none; // 5\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: $font-weight-bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n\nsmall {\n @include font-size(80%); // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n @include font-size(75%);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n\n @include hover() {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]) {\n color: inherit;\n text-decoration: none;\n\n @include hover() {\n color: inherit;\n text-decoration: none;\n }\n}\n\n\n//\n// Code\n//\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-monospace;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg {\n // Workaround for the SVG overflow bug in IE10/11 is still required.\n // See https://github.com/twbs/bootstrap/issues/26878\n overflow: hidden;\n vertical-align: middle;\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $table-caption-color;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n // Matches default `

` alignment by inheriting from the ``, or the\n // closest parent with a set `text-align`.\n text-align: inherit;\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: $label-margin-bottom;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n // stylelint-disable-next-line property-blacklist\n border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// Remove the inheritance of word-wrap in Safari.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24990\nselect {\n word-wrap: normal;\n}\n\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n// controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\n[type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; // 2\n}\n\n// Opinionated: add \"hand\" cursor to non-disabled button elements.\n@if $enable-pointer-cursor-for-buttons {\n button,\n [type=\"button\"],\n [type=\"reset\"],\n [type=\"submit\"] {\n &:not(:disabled) {\n cursor: pointer;\n }\n }\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n // Remove the default appearance of temporal inputs to avoid a Mobile Safari\n // bug where setting a custom line-height prevents text from being vertically\n // centered within the input.\n // See https://bugs.webkit.org/show_bug.cgi?id=139848\n // and https://github.com/twbs/bootstrap/issues/11266\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto; // Remove the default vertical scrollbar in IE.\n // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n resize: vertical;\n}\n\nfieldset {\n // Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `
`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n min-width: 0;\n // Reset the default outline behavior of fieldsets so they don't affect page layout.\n padding: 0;\n margin: 0;\n border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n display: block;\n width: 100%;\n max-width: 100%; // 1\n padding: 0;\n margin-bottom: .5rem;\n @include font-size(1.5rem);\n line-height: inherit;\n color: inherit; // 2\n white-space: normal; // 1\n}\n\nprogress {\n vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n // This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n outline-offset: -2px; // 2. Correct the outline style in Safari.\n -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n font: inherit; // 2\n -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item; // Add the correct display in all browsers\n cursor: pointer;\n}\n\ntemplate {\n display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n display: none !important;\n}\n","/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n:root {\n --blue: #007bff;\n --indigo: #6610f2;\n --purple: #6f42c1;\n --pink: #e83e8c;\n --red: #dc3545;\n --orange: #fd7e14;\n --yellow: #ffc107;\n --green: #28a745;\n --teal: #20c997;\n --cyan: #17a2b8;\n --white: #fff;\n --gray: #6c757d;\n --gray-dark: #343a40;\n --primary: #007bff;\n --secondary: #6c757d;\n --success: #28a745;\n --info: #17a2b8;\n --warning: #ffc107;\n --danger: #dc3545;\n --light: #f8f9fa;\n --dark: #343a40;\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 992px;\n --breakpoint-xl: 1200px;\n --font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n -webkit-text-decoration-skip-ink: none;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):hover {\n color: inherit;\n text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2;\n}\n\nh1, .h1 {\n font-size: 2.5rem;\n}\n\nh2, .h2 {\n font-size: 2rem;\n}\n\nh3, .h3 {\n font-size: 1.75rem;\n}\n\nh4, .h4 {\n font-size: 1.5rem;\n}\n\nh5, .h5 {\n font-size: 1.25rem;\n}\n\nh6, .h6 {\n font-size: 1rem;\n}\n\n.lead {\n font-size: 1.25rem;\n font-weight: 300;\n}\n\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n font-size: 80%;\n font-weight: 400;\n}\n\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline-item {\n display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n margin-right: 0.5rem;\n}\n\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n}\n\n.blockquote-footer {\n display: block;\n font-size: 80%;\n color: #6c757d;\n}\n\n.blockquote-footer::before {\n content: \"\\2014\\00A0\";\n}\n\n.img-fluid {\n max-width: 100%;\n height: auto;\n}\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #fff;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n max-width: 100%;\n height: auto;\n}\n\n.figure {\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1;\n}\n\n.figure-caption {\n font-size: 90%;\n color: #6c757d;\n}\n\ncode {\n font-size: 87.5%;\n color: #e83e8c;\n word-wrap: break-word;\n}\n\na > code {\n color: inherit;\n}\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 87.5%;\n color: #fff;\n background-color: #212529;\n border-radius: 0.2rem;\n}\n\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700;\n}\n\npre {\n display: block;\n font-size: 87.5%;\n color: #212529;\n}\n\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n\n.container {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container {\n max-width: 1140px;\n }\n}\n\n.container-fluid, .container-sm, .container-md, .container-lg, .container-xl {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container, .container-sm {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container, .container-sm, .container-md {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container, .container-sm, .container-md, .container-lg {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container, .container-sm, .container-md, .container-lg, .container-xl {\n max-width: 1140px;\n }\n}\n\n.row {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.row-cols-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.row-cols-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.row-cols-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.row-cols-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.row-cols-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n}\n\n.row-cols-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n -ms-flex-order: -1;\n order: -1;\n}\n\n.order-last {\n -ms-flex-order: 13;\n order: 13;\n}\n\n.order-0 {\n -ms-flex-order: 0;\n order: 0;\n}\n\n.order-1 {\n -ms-flex-order: 1;\n order: 1;\n}\n\n.order-2 {\n -ms-flex-order: 2;\n order: 2;\n}\n\n.order-3 {\n -ms-flex-order: 3;\n order: 3;\n}\n\n.order-4 {\n -ms-flex-order: 4;\n order: 4;\n}\n\n.order-5 {\n -ms-flex-order: 5;\n order: 5;\n}\n\n.order-6 {\n -ms-flex-order: 6;\n order: 6;\n}\n\n.order-7 {\n -ms-flex-order: 7;\n order: 7;\n}\n\n.order-8 {\n -ms-flex-order: 8;\n order: 8;\n}\n\n.order-9 {\n -ms-flex-order: 9;\n order: 9;\n}\n\n.order-10 {\n -ms-flex-order: 10;\n order: 10;\n}\n\n.order-11 {\n -ms-flex-order: 11;\n order: 11;\n}\n\n.order-12 {\n -ms-flex-order: 12;\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-sm-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-sm-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-sm-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-sm-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-sm-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-sm-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-sm-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-sm-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-sm-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-sm-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-sm-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-sm-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-sm-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-sm-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-sm-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-sm-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-sm-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-sm-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-sm-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-sm-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-md-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-md-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-md-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-md-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-md-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-md-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-md-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-md-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-md-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-md-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-md-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-md-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-md-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-md-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-md-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-md-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-md-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-md-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-md-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-md-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-lg-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-lg-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-lg-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-lg-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-lg-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-lg-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-lg-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-lg-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-lg-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-lg-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-lg-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-lg-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-lg-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-lg-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-lg-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-lg-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-lg-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-lg-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-lg-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-lg-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-xl-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-xl-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-xl-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-xl-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-xl-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-xl-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-xl-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-xl-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-xl-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-xl-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-xl-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-xl-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-xl-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-xl-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-xl-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-xl-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-xl-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-xl-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-xl-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-xl-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.table {\n width: 100%;\n margin-bottom: 1rem;\n color: #212529;\n}\n\n.table th,\n.table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n border-top: 2px solid #dee2e6;\n}\n\n.table-sm th,\n.table-sm td {\n padding: 0.3rem;\n}\n\n.table-bordered {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n border-bottom-width: 2px;\n}\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n border: 0;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n color: #212529;\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #b8daff;\n}\n\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n border-color: #7abaff;\n}\n\n.table-hover .table-primary:hover {\n background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #d6d8db;\n}\n\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n border-color: #b3b7bb;\n}\n\n.table-hover .table-secondary:hover {\n background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #c3e6cb;\n}\n\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n border-color: #8fd19e;\n}\n\n.table-hover .table-success:hover {\n background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #bee5eb;\n}\n\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n border-color: #86cfda;\n}\n\n.table-hover .table-info:hover {\n background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #ffeeba;\n}\n\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n border-color: #ffdf7e;\n}\n\n.table-hover .table-warning:hover {\n background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #f5c6cb;\n}\n\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n border-color: #ed969e;\n}\n\n.table-hover .table-danger:hover {\n background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #fdfdfe;\n}\n\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n border-color: #fbfcfc;\n}\n\n.table-hover .table-light:hover {\n background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #c6c8ca;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n border-color: #95999c;\n}\n\n.table-hover .table-dark:hover {\n background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n color: #fff;\n background-color: #343a40;\n border-color: #454d55;\n}\n\n.table .thead-light th {\n color: #495057;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.table-dark {\n color: #fff;\n background-color: #343a40;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n border-color: #454d55;\n}\n\n.table-dark.table-bordered {\n border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n color: #fff;\n background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-sm > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 767.98px) {\n .table-responsive-md {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-md > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-lg > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-xl > .table-bordered {\n border: 0;\n }\n}\n\n.table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.table-responsive > .table-bordered {\n border: 0;\n}\n\n.form-control {\n display: block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none;\n }\n}\n\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n}\n\n.form-control:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #495057;\n}\n\n.form-control:focus {\n color: #495057;\n background-color: #fff;\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.form-control::-webkit-input-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control::-moz-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:-ms-input-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control::-ms-input-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control::placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n background-color: #e9ecef;\n opacity: 1;\n}\n\nselect.form-control:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5;\n}\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding: 0.375rem 0;\n margin-bottom: 0;\n font-size: 1rem;\n line-height: 1.5;\n color: #212529;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n}\n\n.form-control-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.form-control-lg {\n height: calc(1.5em + 1rem + 2px);\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\nselect.form-control[size], select.form-control[multiple] {\n height: auto;\n}\n\ntextarea.form-control {\n height: auto;\n}\n\n.form-group {\n margin-bottom: 1rem;\n}\n\n.form-text {\n display: block;\n margin-top: 0.25rem;\n}\n\n.form-row {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n padding-right: 5px;\n padding-left: 5px;\n}\n\n.form-check {\n position: relative;\n display: block;\n padding-left: 1.25rem;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: 0.3rem;\n margin-left: -1.25rem;\n}\n\n.form-check-input[disabled] ~ .form-check-label,\n.form-check-input:disabled ~ .form-check-label {\n color: #6c757d;\n}\n\n.form-check-label {\n margin-bottom: 0;\n}\n\n.form-check-inline {\n display: -ms-inline-flexbox;\n display: inline-flex;\n -ms-flex-align: center;\n align-items: center;\n padding-left: 0;\n margin-right: 0.75rem;\n}\n\n.form-check-inline .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: 0.3125rem;\n margin-left: 0;\n}\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #28a745;\n}\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(40, 167, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated :valid ~ .valid-feedback,\n.was-validated :valid ~ .valid-tooltip,\n.is-valid ~ .valid-feedback,\n.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid {\n border-color: #28a745;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:valid, .custom-select.is-valid {\n border-color: #28a745;\n padding-right: calc(0.75em + 2.3125rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #28a745;\n}\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n border-color: #34ce57;\n background-color: #34ce57;\n}\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #dc3545;\n}\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(220, 53, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated :invalid ~ .invalid-feedback,\n.was-validated :invalid ~ .invalid-tooltip,\n.is-invalid ~ .invalid-feedback,\n.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n border-color: #dc3545;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n border-color: #dc3545;\n padding-right: calc(0.75em + 2.3125rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #dc3545;\n}\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n border-color: #e4606d;\n background-color: #e4606d;\n}\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.form-inline .form-check {\n width: 100%;\n}\n\n@media (min-width: 576px) {\n .form-inline label {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n margin-bottom: 0;\n }\n .form-inline .form-group {\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n -ms-flex-align: center;\n align-items: center;\n margin-bottom: 0;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-plaintext {\n display: inline-block;\n }\n .form-inline .input-group,\n .form-inline .custom-select {\n width: auto;\n }\n .form-inline .form-check {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-inline .form-check-input {\n position: relative;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0;\n }\n .form-inline .custom-control {\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n }\n .form-inline .custom-control-label {\n margin-bottom: 0;\n }\n}\n\n.btn {\n display: inline-block;\n font-weight: 400;\n color: #212529;\n text-align: center;\n vertical-align: middle;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n background-color: transparent;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .btn {\n transition: none;\n }\n}\n\n.btn:hover {\n color: #212529;\n text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.btn.disabled, .btn:disabled {\n opacity: 0.65;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n.btn-primary {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:hover {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n.show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #0062cc;\n border-color: #005cbf;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-secondary {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:hover {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-secondary.dropdown-toggle {\n color: #fff;\n background-color: #545b62;\n border-color: #4e555b;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-success {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:hover {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n.show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #1e7e34;\n border-color: #1c7430;\n}\n\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-info {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:hover {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n.show > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: #117a8b;\n border-color: #10707f;\n}\n\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-warning {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:hover {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n color: #212529;\n background-color: #d39e00;\n border-color: #c69500;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-danger {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:hover {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n.show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #bd2130;\n border-color: #b21f2d;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-light {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:hover {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n color: #212529;\n background-color: #dae0e5;\n border-color: #d3d9df;\n}\n\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-dark {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:hover {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n.show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: #1d2124;\n border-color: #171a1d;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-outline-primary {\n color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #007bff;\n background-color: transparent;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n color: #6c757d;\n background-color: transparent;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-secondary.dropdown-toggle {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #28a745;\n background-color: transparent;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #17a2b8;\n background-color: transparent;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #ffc107;\n background-color: transparent;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .btn-outline-warning.dropdown-toggle {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #dc3545;\n background-color: transparent;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n color: #f8f9fa;\n background-color: transparent;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .btn-outline-light.dropdown-toggle {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n color: #343a40;\n background-color: transparent;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .btn-outline-dark.dropdown-toggle {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n font-weight: 400;\n color: #007bff;\n text-decoration: none;\n}\n\n.btn-link:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\n.btn-link:focus, .btn-link.focus {\n text-decoration: underline;\n box-shadow: none;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n color: #6c757d;\n pointer-events: none;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n.btn-block + .btn-block {\n margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n\n.fade {\n transition: opacity 0.15s linear;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none;\n }\n}\n\n.fade:not(.show) {\n opacity: 0;\n}\n\n.collapse:not(.show) {\n display: none;\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none;\n }\n}\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n}\n\n.dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 1rem;\n color: #212529;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n}\n\n.dropdown-menu-left {\n right: auto;\n left: 0;\n}\n\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n\n@media (min-width: 576px) {\n .dropdown-menu-sm-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-sm-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 768px) {\n .dropdown-menu-md-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-md-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 992px) {\n .dropdown-menu-lg-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-lg-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 1200px) {\n .dropdown-menu-xl-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-xl-right {\n right: 0;\n left: auto;\n }\n}\n\n.dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent;\n}\n\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: 0.125rem;\n}\n\n.dropright .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid;\n}\n\n.dropright .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: 0.125rem;\n}\n\n.dropleft .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n display: none;\n}\n\n.dropleft .dropdown-toggle::before {\n display: inline-block;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent;\n}\n\n.dropleft .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n vertical-align: 0;\n}\n\n.dropdown-menu[x-placement^=\"top\"], .dropdown-menu[x-placement^=\"right\"], .dropdown-menu[x-placement^=\"bottom\"], .dropdown-menu[x-placement^=\"left\"] {\n right: auto;\n bottom: auto;\n}\n\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1.5rem;\n clear: both;\n font-weight: 400;\n color: #212529;\n text-align: inherit;\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n color: #16181b;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: transparent;\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n.dropdown-header {\n display: block;\n padding: 0.5rem 1.5rem;\n margin-bottom: 0;\n font-size: 0.875rem;\n color: #6c757d;\n white-space: nowrap;\n}\n\n.dropdown-item-text {\n display: block;\n padding: 0.25rem 1.5rem;\n color: #212529;\n}\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: -ms-inline-flexbox;\n display: inline-flex;\n vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n z-index: 1;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n z-index: 1;\n}\n\n.btn-toolbar {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n width: auto;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n margin-left: -1px;\n}\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after,\n.dropup .dropdown-toggle-split::after,\n.dropright .dropdown-toggle-split::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle-split::before {\n margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-align: start;\n align-items: flex-start;\n -ms-flex-pack: center;\n justify-content: center;\n}\n\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n width: 100%;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: -1px;\n}\n\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n margin-bottom: 0;\n}\n\n.btn-group-toggle > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn input[type=\"checkbox\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n\n.input-group {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-align: stretch;\n align-items: stretch;\n width: 100%;\n}\n\n.input-group > .form-control,\n.input-group > .form-control-plaintext,\n.input-group > .custom-select,\n.input-group > .custom-file {\n position: relative;\n -ms-flex: 1 1 0%;\n flex: 1 1 0%;\n min-width: 0;\n margin-bottom: 0;\n}\n\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .form-control-plaintext + .form-control,\n.input-group > .form-control-plaintext + .custom-select,\n.input-group > .form-control-plaintext + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n margin-left: -1px;\n}\n\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3;\n}\n\n.input-group > .custom-file .custom-file-input:focus {\n z-index: 4;\n}\n\n.input-group > .form-control:not(:last-child),\n.input-group > .custom-select:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-file {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:last-child) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .custom-file:not(:first-child) .custom-file-label {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n display: -ms-flexbox;\n display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n position: relative;\n z-index: 2;\n}\n\n.input-group-prepend .btn:focus,\n.input-group-append .btn:focus {\n z-index: 3;\n}\n\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n margin-left: -1px;\n}\n\n.input-group-prepend {\n margin-right: -1px;\n}\n\n.input-group-append {\n margin-left: -1px;\n}\n\n.input-group-text {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n padding: 0.375rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n text-align: center;\n white-space: nowrap;\n background-color: #e9ecef;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n margin-top: 0;\n}\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: calc(1.5em + 1rem + 2px);\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: calc(1.5em + 0.5rem + 2px);\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: 1.75rem;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.custom-control {\n position: relative;\n display: block;\n min-height: 1.5rem;\n padding-left: 1.5rem;\n}\n\n.custom-control-inline {\n display: -ms-inline-flexbox;\n display: inline-flex;\n margin-right: 1rem;\n}\n\n.custom-control-input {\n position: absolute;\n left: 0;\n z-index: -1;\n width: 1rem;\n height: 1.25rem;\n opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n color: #fff;\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #80bdff;\n}\n\n.custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n color: #fff;\n background-color: #b3d7ff;\n border-color: #b3d7ff;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label {\n color: #6c757d;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before {\n background-color: #e9ecef;\n}\n\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n vertical-align: top;\n}\n\n.custom-control-label::before {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n content: \"\";\n background-color: #fff;\n border: #adb5bd solid 1px;\n}\n\n.custom-control-label::after {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n content: \"\";\n background: no-repeat 50% / 50% 50%;\n}\n\n.custom-checkbox .custom-control-label::before {\n border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\");\n}\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-switch {\n padding-left: 2.25rem;\n}\n\n.custom-switch .custom-control-label::before {\n left: -2.25rem;\n width: 1.75rem;\n pointer-events: all;\n border-radius: 0.5rem;\n}\n\n.custom-switch .custom-control-label::after {\n top: calc(0.25rem + 2px);\n left: calc(-2.25rem + 2px);\n width: calc(1rem - 4px);\n height: calc(1rem - 4px);\n background-color: #adb5bd;\n border-radius: 0.5rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-switch .custom-control-label::after {\n transition: none;\n }\n}\n\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n background-color: #fff;\n -webkit-transform: translateX(0.75rem);\n transform: translateX(0.75rem);\n}\n\n.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n vertical-align: middle;\n background: #fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n\n.custom-select:focus {\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-select:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: 0.75rem;\n background-image: none;\n}\n\n.custom-select:disabled {\n color: #6c757d;\n background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n display: none;\n}\n\n.custom-select:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #495057;\n}\n\n.custom-select-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n padding-left: 0.5rem;\n font-size: 0.875rem;\n}\n\n.custom-select-lg {\n height: calc(1.5em + 1rem + 2px);\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-left: 1rem;\n font-size: 1.25rem;\n}\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin: 0;\n opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-label {\n border-color: #80bdff;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-file-input[disabled] ~ .custom-file-label,\n.custom-file-input:disabled ~ .custom-file-label {\n background-color: #e9ecef;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n content: \"Browse\";\n}\n\n.custom-file-input ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse);\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.custom-file-label::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(1.5em + 0.75rem);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n content: \"Browse\";\n background-color: #e9ecef;\n border-left: inherit;\n border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-range {\n width: 100%;\n height: 1.4rem;\n padding: 0;\n background-color: transparent;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n\n.custom-range:focus {\n outline: none;\n}\n\n.custom-range:focus::-webkit-slider-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-moz-range-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-ms-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-moz-focus-outer {\n border: 0;\n}\n\n.custom-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n -webkit-appearance: none;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-webkit-slider-thumb {\n -webkit-transition: none;\n transition: none;\n }\n}\n\n.custom-range::-webkit-slider-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n -moz-appearance: none;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-moz-range-thumb {\n -moz-transition: none;\n transition: none;\n }\n}\n\n.custom-range::-moz-range-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: 0;\n margin-right: 0.2rem;\n margin-left: 0.2rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n -ms-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-ms-thumb {\n -ms-transition: none;\n transition: none;\n }\n}\n\n.custom-range::-ms-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-ms-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: transparent;\n border-color: transparent;\n border-width: 0.5rem;\n}\n\n.custom-range::-ms-fill-lower {\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-fill-upper {\n margin-right: 15px;\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range:disabled::-webkit-slider-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-webkit-slider-runnable-track {\n cursor: default;\n}\n\n.custom-range:disabled::-moz-range-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-moz-range-track {\n cursor: default;\n}\n\n.custom-range:disabled::-ms-thumb {\n background-color: #adb5bd;\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-control-label::before,\n .custom-file-label,\n .custom-select {\n transition: none;\n }\n}\n\n.nav {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: 0.5rem 1rem;\n}\n\n.nav-link:hover, .nav-link:focus {\n text-decoration: none;\n}\n\n.nav-link.disabled {\n color: #6c757d;\n pointer-events: none;\n cursor: default;\n}\n\n.nav-tabs {\n border-bottom: 1px solid #dee2e6;\n}\n\n.nav-tabs .nav-item {\n margin-bottom: -1px;\n}\n\n.nav-tabs .nav-link {\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n border-color: #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs .nav-link.disabled {\n color: #6c757d;\n background-color: transparent;\n border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n color: #495057;\n background-color: #fff;\n border-color: #dee2e6 #dee2e6 #fff;\n}\n\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #007bff;\n}\n\n.nav-fill .nav-item {\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n text-align: center;\n}\n\n.nav-justified .nav-item {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n text-align: center;\n}\n\n.tab-content > .tab-pane {\n display: none;\n}\n\n.tab-content > .active {\n display: block;\n}\n\n.navbar {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: justify;\n justify-content: space-between;\n padding: 0.5rem 1rem;\n}\n\n.navbar .container,\n.navbar .container-fluid, .navbar .container-sm, .navbar .container-md, .navbar .container-lg, .navbar .container-xl {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: justify;\n justify-content: space-between;\n}\n\n.navbar-brand {\n display: inline-block;\n padding-top: 0.3125rem;\n padding-bottom: 0.3125rem;\n margin-right: 1rem;\n font-size: 1.25rem;\n line-height: inherit;\n white-space: nowrap;\n}\n\n.navbar-brand:hover, .navbar-brand:focus {\n text-decoration: none;\n}\n\n.navbar-nav {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n position: static;\n float: none;\n}\n\n.navbar-text {\n display: inline-block;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n -ms-flex-preferred-size: 100%;\n flex-basis: 100%;\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.25rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.navbar-toggler:hover, .navbar-toggler:focus {\n text-decoration: none;\n}\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n\n@media (max-width: 575.98px) {\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 576px) {\n .navbar-expand-sm {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n }\n .navbar-expand-sm .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n }\n .navbar-expand-sm .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n }\n .navbar-expand-sm .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 767.98px) {\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 768px) {\n .navbar-expand-md {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n }\n .navbar-expand-md .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n }\n .navbar-expand-md .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n }\n .navbar-expand-md .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 991.98px) {\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 992px) {\n .navbar-expand-lg {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n }\n .navbar-expand-lg .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n }\n .navbar-expand-lg .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n }\n .navbar-expand-lg .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 1199.98px) {\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n }\n .navbar-expand-xl .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n }\n .navbar-expand-xl .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n }\n .navbar-expand-xl .navbar-toggler {\n display: none;\n }\n}\n\n.navbar-expand {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n position: absolute;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n}\n\n.navbar-expand .navbar-toggler {\n display: none;\n}\n\n.navbar-light .navbar-brand {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n color: rgba(0, 0, 0, 0.5);\n border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-light .navbar-text {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-text a {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n color: #fff;\n}\n\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff;\n}\n\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.5);\n border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-text a {\n color: #fff;\n}\n\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n color: #fff;\n}\n\n.card {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem;\n}\n\n.card > hr {\n margin-right: 0;\n margin-left: 0;\n}\n\n.card > .list-group:first-child .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.card > .list-group:last-child .list-group-item:last-child {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.card-body {\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n min-height: 1px;\n padding: 1.25rem;\n}\n\n.card-title {\n margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link:hover {\n text-decoration: none;\n}\n\n.card-link + .card-link {\n margin-left: 1.25rem;\n}\n\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n background-color: rgba(0, 0, 0, 0.03);\n border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-header + .list-group .list-group-item:first-child {\n border-top: 0;\n}\n\n.card-footer {\n padding: 0.75rem 1.25rem;\n background-color: rgba(0, 0, 0, 0.03);\n border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem;\n}\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n -ms-flex-negative: 0;\n flex-shrink: 0;\n width: 100%;\n}\n\n.card-img,\n.card-img-top {\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img,\n.card-img-bottom {\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card-deck .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-deck {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n margin-right: -15px;\n margin-left: -15px;\n }\n .card-deck .card {\n -ms-flex: 1 0 0%;\n flex: 1 0 0%;\n margin-right: 15px;\n margin-bottom: 0;\n margin-left: 15px;\n }\n}\n\n.card-group > .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-group {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n }\n .card-group > .card {\n -ms-flex: 1 0 0%;\n flex: 1 0 0%;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group > .card:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-top,\n .card-group > .card:not(:last-child) .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-bottom,\n .card-group > .card:not(:last-child) .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-top,\n .card-group > .card:not(:first-child) .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-bottom,\n .card-group > .card:not(:first-child) .card-footer {\n border-bottom-left-radius: 0;\n }\n}\n\n.card-columns .card {\n margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n .card-columns {\n -webkit-column-count: 3;\n -moz-column-count: 3;\n column-count: 3;\n -webkit-column-gap: 1.25rem;\n -moz-column-gap: 1.25rem;\n column-gap: 1.25rem;\n orphans: 1;\n widows: 1;\n }\n .card-columns .card {\n display: inline-block;\n width: 100%;\n }\n}\n\n.accordion > .card {\n overflow: hidden;\n}\n\n.accordion > .card:not(:last-of-type) {\n border-bottom: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.accordion > .card:not(:first-of-type) {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.accordion > .card > .card-header {\n border-radius: 0;\n margin-bottom: -1px;\n}\n\n.breadcrumb {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n padding: 0.75rem 1rem;\n margin-bottom: 1rem;\n list-style: none;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.breadcrumb-item + .breadcrumb-item {\n padding-left: 0.5rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n display: inline-block;\n padding-right: 0.5rem;\n color: #6c757d;\n content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: underline;\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: none;\n}\n\n.breadcrumb-item.active {\n color: #6c757d;\n}\n\n.pagination {\n display: -ms-flexbox;\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem;\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: -1px;\n line-height: 1.25;\n color: #007bff;\n background-color: #fff;\n border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n z-index: 2;\n color: #0056b3;\n text-decoration: none;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.page-link:focus {\n z-index: 3;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-item:first-child .page-link {\n margin-left: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n z-index: 3;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n color: #6c757d;\n pointer-events: none;\n cursor: auto;\n background-color: #fff;\n border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .badge {\n transition: none;\n }\n}\n\na.badge:hover, a.badge:focus {\n text-decoration: none;\n}\n\n.badge:empty {\n display: none;\n}\n\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n.badge-pill {\n padding-right: 0.6em;\n padding-left: 0.6em;\n border-radius: 10rem;\n}\n\n.badge-primary {\n color: #fff;\n background-color: #007bff;\n}\n\na.badge-primary:hover, a.badge-primary:focus {\n color: #fff;\n background-color: #0062cc;\n}\n\na.badge-primary:focus, a.badge-primary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.badge-secondary {\n color: #fff;\n background-color: #6c757d;\n}\n\na.badge-secondary:hover, a.badge-secondary:focus {\n color: #fff;\n background-color: #545b62;\n}\n\na.badge-secondary:focus, a.badge-secondary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.badge-success {\n color: #fff;\n background-color: #28a745;\n}\n\na.badge-success:hover, a.badge-success:focus {\n color: #fff;\n background-color: #1e7e34;\n}\n\na.badge-success:focus, a.badge-success.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.badge-info {\n color: #fff;\n background-color: #17a2b8;\n}\n\na.badge-info:hover, a.badge-info:focus {\n color: #fff;\n background-color: #117a8b;\n}\n\na.badge-info:focus, a.badge-info.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.badge-warning {\n color: #212529;\n background-color: #ffc107;\n}\n\na.badge-warning:hover, a.badge-warning:focus {\n color: #212529;\n background-color: #d39e00;\n}\n\na.badge-warning:focus, a.badge-warning.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.badge-danger {\n color: #fff;\n background-color: #dc3545;\n}\n\na.badge-danger:hover, a.badge-danger:focus {\n color: #fff;\n background-color: #bd2130;\n}\n\na.badge-danger:focus, a.badge-danger.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.badge-light {\n color: #212529;\n background-color: #f8f9fa;\n}\n\na.badge-light:hover, a.badge-light:focus {\n color: #212529;\n background-color: #dae0e5;\n}\n\na.badge-light:focus, a.badge-light.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.badge-dark {\n color: #fff;\n background-color: #343a40;\n}\n\na.badge-dark:hover, a.badge-dark:focus {\n color: #fff;\n background-color: #1d2124;\n}\n\na.badge-dark:focus, a.badge-dark.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #e9ecef;\n border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n .jumbotron {\n padding: 4rem 2rem;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0;\n}\n\n.alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.alert-heading {\n color: inherit;\n}\n\n.alert-link {\n font-weight: 700;\n}\n\n.alert-dismissible {\n padding-right: 4rem;\n}\n\n.alert-dismissible .close {\n position: absolute;\n top: 0;\n right: 0;\n padding: 0.75rem 1.25rem;\n color: inherit;\n}\n\n.alert-primary {\n color: #004085;\n background-color: #cce5ff;\n border-color: #b8daff;\n}\n\n.alert-primary hr {\n border-top-color: #9fcdff;\n}\n\n.alert-primary .alert-link {\n color: #002752;\n}\n\n.alert-secondary {\n color: #383d41;\n background-color: #e2e3e5;\n border-color: #d6d8db;\n}\n\n.alert-secondary hr {\n border-top-color: #c8cbcf;\n}\n\n.alert-secondary .alert-link {\n color: #202326;\n}\n\n.alert-success {\n color: #155724;\n background-color: #d4edda;\n border-color: #c3e6cb;\n}\n\n.alert-success hr {\n border-top-color: #b1dfbb;\n}\n\n.alert-success .alert-link {\n color: #0b2e13;\n}\n\n.alert-info {\n color: #0c5460;\n background-color: #d1ecf1;\n border-color: #bee5eb;\n}\n\n.alert-info hr {\n border-top-color: #abdde5;\n}\n\n.alert-info .alert-link {\n color: #062c33;\n}\n\n.alert-warning {\n color: #856404;\n background-color: #fff3cd;\n border-color: #ffeeba;\n}\n\n.alert-warning hr {\n border-top-color: #ffe8a1;\n}\n\n.alert-warning .alert-link {\n color: #533f03;\n}\n\n.alert-danger {\n color: #721c24;\n background-color: #f8d7da;\n border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n border-top-color: #f1b0b7;\n}\n\n.alert-danger .alert-link {\n color: #491217;\n}\n\n.alert-light {\n color: #818182;\n background-color: #fefefe;\n border-color: #fdfdfe;\n}\n\n.alert-light hr {\n border-top-color: #ececf6;\n}\n\n.alert-light .alert-link {\n color: #686868;\n}\n\n.alert-dark {\n color: #1b1e21;\n background-color: #d6d8d9;\n border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n border-top-color: #b9bbbe;\n}\n\n.alert-dark .alert-link {\n color: #040505;\n}\n\n@-webkit-keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n.progress {\n display: -ms-flexbox;\n display: flex;\n height: 1rem;\n overflow: hidden;\n font-size: 0.75rem;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.progress-bar {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-pack: center;\n justify-content: center;\n overflow: hidden;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n background-color: #007bff;\n transition: width 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none;\n }\n}\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n -webkit-animation: progress-bar-stripes 1s linear infinite;\n animation: progress-bar-stripes 1s linear infinite;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n -webkit-animation: none;\n animation: none;\n }\n}\n\n.media {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: start;\n align-items: flex-start;\n}\n\n.media-body {\n -ms-flex: 1;\n flex: 1;\n}\n\n.list-group {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n}\n\n.list-group-item-action {\n width: 100%;\n color: #495057;\n text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n z-index: 1;\n color: #495057;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n color: #212529;\n background-color: #e9ecef;\n}\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.75rem 1.25rem;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.list-group-item:last-child {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: #fff;\n}\n\n.list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.list-group-item + .list-group-item {\n border-top-width: 0;\n}\n\n.list-group-item + .list-group-item.active {\n margin-top: -1px;\n border-top-width: 1px;\n}\n\n.list-group-horizontal {\n -ms-flex-direction: row;\n flex-direction: row;\n}\n\n.list-group-horizontal .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n}\n\n.list-group-horizontal .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n}\n\n.list-group-horizontal .list-group-item.active {\n margin-top: 0;\n}\n\n.list-group-horizontal .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n}\n\n.list-group-horizontal .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n}\n\n@media (min-width: 576px) {\n .list-group-horizontal-sm {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .list-group-horizontal-sm .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-sm .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-sm .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-sm .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-sm .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 768px) {\n .list-group-horizontal-md {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .list-group-horizontal-md .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-md .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-md .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-md .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-md .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 992px) {\n .list-group-horizontal-lg {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .list-group-horizontal-lg .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-lg .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-lg .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-lg .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-lg .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 1200px) {\n .list-group-horizontal-xl {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .list-group-horizontal-xl .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-xl .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-xl .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-xl .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-xl .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n.list-group-flush .list-group-item {\n border-right-width: 0;\n border-left-width: 0;\n border-radius: 0;\n}\n\n.list-group-flush .list-group-item:first-child {\n border-top-width: 0;\n}\n\n.list-group-flush:last-child .list-group-item:last-child {\n border-bottom-width: 0;\n}\n\n.list-group-item-primary {\n color: #004085;\n background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n color: #004085;\n background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n color: #fff;\n background-color: #004085;\n border-color: #004085;\n}\n\n.list-group-item-secondary {\n color: #383d41;\n background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n color: #383d41;\n background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n color: #fff;\n background-color: #383d41;\n border-color: #383d41;\n}\n\n.list-group-item-success {\n color: #155724;\n background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n color: #155724;\n background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n color: #fff;\n background-color: #155724;\n border-color: #155724;\n}\n\n.list-group-item-info {\n color: #0c5460;\n background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n color: #0c5460;\n background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n color: #fff;\n background-color: #0c5460;\n border-color: #0c5460;\n}\n\n.list-group-item-warning {\n color: #856404;\n background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n color: #856404;\n background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n color: #fff;\n background-color: #856404;\n border-color: #856404;\n}\n\n.list-group-item-danger {\n color: #721c24;\n background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n color: #721c24;\n background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n color: #fff;\n background-color: #721c24;\n border-color: #721c24;\n}\n\n.list-group-item-light {\n color: #818182;\n background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n color: #818182;\n background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n color: #fff;\n background-color: #818182;\n border-color: #818182;\n}\n\n.list-group-item-dark {\n color: #1b1e21;\n background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n color: #1b1e21;\n background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n color: #fff;\n background-color: #1b1e21;\n border-color: #1b1e21;\n}\n\n.close {\n float: right;\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: .5;\n}\n\n.close:hover {\n color: #000;\n text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\n opacity: .75;\n}\n\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n\na.close.disabled {\n pointer-events: none;\n}\n\n.toast {\n max-width: 350px;\n overflow: hidden;\n font-size: 0.875rem;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\n -webkit-backdrop-filter: blur(10px);\n backdrop-filter: blur(10px);\n opacity: 0;\n border-radius: 0.25rem;\n}\n\n.toast:not(:last-child) {\n margin-bottom: 0.75rem;\n}\n\n.toast.showing {\n opacity: 1;\n}\n\n.toast.show {\n display: block;\n opacity: 1;\n}\n\n.toast.hide {\n display: none;\n}\n\n.toast-header {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n padding: 0.25rem 0.75rem;\n color: #6c757d;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n\n.toast-body {\n padding: 0.75rem;\n}\n\n.modal-open {\n overflow: hidden;\n}\n\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1050;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n outline: 0;\n}\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n transition: -webkit-transform 0.3s ease-out;\n transition: transform 0.3s ease-out;\n transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;\n -webkit-transform: translate(0, -50px);\n transform: translate(0, -50px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none;\n }\n}\n\n.modal.show .modal-dialog {\n -webkit-transform: none;\n transform: none;\n}\n\n.modal.modal-static .modal-dialog {\n -webkit-transform: scale(1.02);\n transform: scale(1.02);\n}\n\n.modal-dialog-scrollable {\n display: -ms-flexbox;\n display: flex;\n max-height: calc(100% - 1rem);\n}\n\n.modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 1rem);\n overflow: hidden;\n}\n\n.modal-dialog-scrollable .modal-header,\n.modal-dialog-scrollable .modal-footer {\n -ms-flex-negative: 0;\n flex-shrink: 0;\n}\n\n.modal-dialog-scrollable .modal-body {\n overflow-y: auto;\n}\n\n.modal-dialog-centered {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n min-height: calc(100% - 1rem);\n}\n\n.modal-dialog-centered::before {\n display: block;\n height: calc(100vh - 1rem);\n content: \"\";\n}\n\n.modal-dialog-centered.modal-dialog-scrollable {\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-pack: center;\n justify-content: center;\n height: 100%;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable .modal-content {\n max-height: none;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable::before {\n content: none;\n}\n\n.modal-content {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n outline: 0;\n}\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100vw;\n height: 100vh;\n background-color: #000;\n}\n\n.modal-backdrop.fade {\n opacity: 0;\n}\n\n.modal-backdrop.show {\n opacity: 0.5;\n}\n\n.modal-header {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: start;\n align-items: flex-start;\n -ms-flex-pack: justify;\n justify-content: space-between;\n padding: 1rem 1rem;\n border-bottom: 1px solid #dee2e6;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.modal-header .close {\n padding: 1rem 1rem;\n margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5;\n}\n\n.modal-body {\n position: relative;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n padding: 1rem;\n}\n\n.modal-footer {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: end;\n justify-content: flex-end;\n padding: 0.75rem;\n border-top: 1px solid #dee2e6;\n border-bottom-right-radius: calc(0.3rem - 1px);\n border-bottom-left-radius: calc(0.3rem - 1px);\n}\n\n.modal-footer > * {\n margin: 0.25rem;\n}\n\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto;\n }\n .modal-dialog-scrollable {\n max-height: calc(100% - 3.5rem);\n }\n .modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 3.5rem);\n }\n .modal-dialog-centered {\n min-height: calc(100% - 3.5rem);\n }\n .modal-dialog-centered::before {\n height: calc(100vh - 3.5rem);\n }\n .modal-sm {\n max-width: 300px;\n }\n}\n\n@media (min-width: 992px) {\n .modal-lg,\n .modal-xl {\n max-width: 800px;\n }\n}\n\n@media (min-width: 1200px) {\n .modal-xl {\n max-width: 1140px;\n }\n}\n\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n opacity: 0;\n}\n\n.tooltip.show {\n opacity: 0.9;\n}\n\n.tooltip .arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem;\n}\n\n.tooltip .arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=\"top\"] .arrow {\n bottom: 0;\n}\n\n.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n top: 0;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=\"right\"] .arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n right: 0;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\n top: 0;\n}\n\n.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n bottom: 0;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=\"left\"] .arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n left: 0;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000;\n}\n\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem;\n}\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n}\n\n.popover .arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem;\n margin: 0 0.3rem;\n}\n\n.popover .arrow::before, .popover .arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n margin-bottom: 0.5rem;\n}\n\n.bs-popover-top > .arrow, .bs-popover-auto[x-placement^=\"top\"] > .arrow {\n bottom: calc(-0.5rem - 1px);\n}\n\n.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n bottom: 0;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n bottom: 1px;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: #fff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n margin-left: 0.5rem;\n}\n\n.bs-popover-right > .arrow, .bs-popover-auto[x-placement^=\"right\"] > .arrow {\n left: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n left: 0;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n left: 1px;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: #fff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n margin-top: 0.5rem;\n}\n\n.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow {\n top: calc(-0.5rem - 1px);\n}\n\n.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n top: 0;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n top: 1px;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: #fff;\n}\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: \"\";\n border-bottom: 1px solid #f7f7f7;\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n margin-right: 0.5rem;\n}\n\n.bs-popover-left > .arrow, .bs-popover-auto[x-placement^=\"left\"] > .arrow {\n right: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n right: 0;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n right: 1px;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: #fff;\n}\n\n.popover-header {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n display: none;\n}\n\n.popover-body {\n padding: 0.5rem 0.75rem;\n color: #212529;\n}\n\n.carousel {\n position: relative;\n}\n\n.carousel.pointer-event {\n -ms-touch-action: pan-y;\n touch-action: pan-y;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel-inner::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n transition: -webkit-transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none;\n }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n -webkit-transform: translateX(100%);\n transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n -webkit-transform: translateX(-100%);\n transform: translateX(-100%);\n}\n\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-property: opacity;\n -webkit-transform: none;\n transform: none;\n}\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n z-index: 1;\n opacity: 1;\n}\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n z-index: 0;\n opacity: 0;\n transition: opacity 0s 0.6s;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-fade .active.carousel-item-left,\n .carousel-fade .active.carousel-item-right {\n transition: none;\n }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n width: 15%;\n color: #fff;\n text-align: center;\n opacity: 0.5;\n transition: opacity 0.15s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-control-prev,\n .carousel-control-next {\n transition: none;\n }\n}\n\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: 0.9;\n}\n\n.carousel-control-prev {\n left: 0;\n}\n\n.carousel-control-next {\n right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background: no-repeat 50% / 100% 100%;\n}\n\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\");\n}\n\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\");\n}\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n padding-left: 0;\n margin-right: 15%;\n margin-left: 15%;\n list-style: none;\n}\n\n.carousel-indicators li {\n box-sizing: content-box;\n -ms-flex: 0 1 auto;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #fff;\n background-clip: padding-box;\n border-top: 10px solid transparent;\n border-bottom: 10px solid transparent;\n opacity: .5;\n transition: opacity 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-indicators li {\n transition: none;\n }\n}\n\n.carousel-indicators .active {\n opacity: 1;\n}\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n}\n\n@-webkit-keyframes spinner-border {\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes spinner-border {\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n.spinner-border {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n border: 0.25em solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n -webkit-animation: spinner-border .75s linear infinite;\n animation: spinner-border .75s linear infinite;\n}\n\n.spinner-border-sm {\n width: 1rem;\n height: 1rem;\n border-width: 0.2em;\n}\n\n@-webkit-keyframes spinner-grow {\n 0% {\n -webkit-transform: scale(0);\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n }\n}\n\n@keyframes spinner-grow {\n 0% {\n -webkit-transform: scale(0);\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n }\n}\n\n.spinner-grow {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n background-color: currentColor;\n border-radius: 50%;\n opacity: 0;\n -webkit-animation: spinner-grow .75s linear infinite;\n animation: spinner-grow .75s linear infinite;\n}\n\n.spinner-grow-sm {\n width: 1rem;\n height: 1rem;\n}\n\n.align-baseline {\n vertical-align: baseline !important;\n}\n\n.align-top {\n vertical-align: top !important;\n}\n\n.align-middle {\n vertical-align: middle !important;\n}\n\n.align-bottom {\n vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n vertical-align: text-top !important;\n}\n\n.bg-primary {\n background-color: #007bff !important;\n}\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n background-color: #0062cc !important;\n}\n\n.bg-secondary {\n background-color: #6c757d !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n background-color: #545b62 !important;\n}\n\n.bg-success {\n background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n background-color: #1e7e34 !important;\n}\n\n.bg-info {\n background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n background-color: #117a8b !important;\n}\n\n.bg-warning {\n background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n background-color: #d39e00 !important;\n}\n\n.bg-danger {\n background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n background-color: #bd2130 !important;\n}\n\n.bg-light {\n background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n background-color: #1d2124 !important;\n}\n\n.bg-white {\n background-color: #fff !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n\n.border {\n border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n border: 0 !important;\n}\n\n.border-top-0 {\n border-top: 0 !important;\n}\n\n.border-right-0 {\n border-right: 0 !important;\n}\n\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n\n.border-left-0 {\n border-left: 0 !important;\n}\n\n.border-primary {\n border-color: #007bff !important;\n}\n\n.border-secondary {\n border-color: #6c757d !important;\n}\n\n.border-success {\n border-color: #28a745 !important;\n}\n\n.border-info {\n border-color: #17a2b8 !important;\n}\n\n.border-warning {\n border-color: #ffc107 !important;\n}\n\n.border-danger {\n border-color: #dc3545 !important;\n}\n\n.border-light {\n border-color: #f8f9fa !important;\n}\n\n.border-dark {\n border-color: #343a40 !important;\n}\n\n.border-white {\n border-color: #fff !important;\n}\n\n.rounded-sm {\n border-radius: 0.2rem !important;\n}\n\n.rounded {\n border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-lg {\n border-radius: 0.3rem !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-pill {\n border-radius: 50rem !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n}\n\n.d-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-md-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-print-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n}\n\n.embed-responsive::before {\n display: block;\n content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n\n.embed-responsive-21by9::before {\n padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n padding-top: 100%;\n}\n\n.flex-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n}\n\n.flex-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n}\n\n.justify-content-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n}\n\n.align-items-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n}\n\n.align-items-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n}\n\n.align-items-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n}\n\n.align-items-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n}\n\n.align-content-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n}\n\n.align-content-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n}\n\n.align-content-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n}\n\n.align-content-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n}\n\n.align-content-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n}\n\n.align-self-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n}\n\n.align-self-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n}\n\n.align-self-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n}\n\n.align-self-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n}\n\n.align-self-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-sm-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-sm-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-sm-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-sm-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-sm-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-sm-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-sm-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-sm-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-md-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-md-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-md-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-md-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-md-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-md-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-md-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-md-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-md-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-md-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-md-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-md-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-md-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-md-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-md-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-md-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-lg-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-lg-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-lg-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-lg-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-lg-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-lg-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-lg-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-lg-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-xl-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-xl-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-xl-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-xl-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-xl-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-xl-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-xl-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-xl-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.float-none {\n float: none !important;\n}\n\n@media (min-width: 576px) {\n .float-sm-left {\n float: left !important;\n }\n .float-sm-right {\n float: right !important;\n }\n .float-sm-none {\n float: none !important;\n }\n}\n\n@media (min-width: 768px) {\n .float-md-left {\n float: left !important;\n }\n .float-md-right {\n float: right !important;\n }\n .float-md-none {\n float: none !important;\n }\n}\n\n@media (min-width: 992px) {\n .float-lg-left {\n float: left !important;\n }\n .float-lg-right {\n float: right !important;\n }\n .float-lg-none {\n float: none !important;\n }\n}\n\n@media (min-width: 1200px) {\n .float-xl-left {\n float: left !important;\n }\n .float-xl-right {\n float: right !important;\n }\n .float-xl-none {\n float: none !important;\n }\n}\n\n.overflow-auto {\n overflow: auto !important;\n}\n\n.overflow-hidden {\n overflow: hidden !important;\n}\n\n.position-static {\n position: static !important;\n}\n\n.position-relative {\n position: relative !important;\n}\n\n.position-absolute {\n position: absolute !important;\n}\n\n.position-fixed {\n position: fixed !important;\n}\n\n.position-sticky {\n position: -webkit-sticky !important;\n position: sticky !important;\n}\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n}\n\n@supports ((position: -webkit-sticky) or (position: sticky)) {\n .sticky-top {\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n}\n\n.shadow-sm {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n box-shadow: none !important;\n}\n\n.w-25 {\n width: 25% !important;\n}\n\n.w-50 {\n width: 50% !important;\n}\n\n.w-75 {\n width: 75% !important;\n}\n\n.w-100 {\n width: 100% !important;\n}\n\n.w-auto {\n width: auto !important;\n}\n\n.h-25 {\n height: 25% !important;\n}\n\n.h-50 {\n height: 50% !important;\n}\n\n.h-75 {\n height: 75% !important;\n}\n\n.h-100 {\n height: 100% !important;\n}\n\n.h-auto {\n height: auto !important;\n}\n\n.mw-100 {\n max-width: 100% !important;\n}\n\n.mh-100 {\n max-height: 100% !important;\n}\n\n.min-vw-100 {\n min-width: 100vw !important;\n}\n\n.min-vh-100 {\n min-height: 100vh !important;\n}\n\n.vw-100 {\n width: 100vw !important;\n}\n\n.vh-100 {\n height: 100vh !important;\n}\n\n.stretched-link::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n pointer-events: auto;\n content: \"\";\n background-color: rgba(0, 0, 0, 0);\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-n1 {\n margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n\n.m-n4 {\n margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n .m-sm-n3 {\n margin: -1rem !important;\n }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important;\n }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important;\n }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important;\n }\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n .m-sm-n5 {\n margin: -3rem !important;\n }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important;\n }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important;\n }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n .m-md-n3 {\n margin: -1rem !important;\n }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important;\n }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important;\n }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important;\n }\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n .m-md-n5 {\n margin: -3rem !important;\n }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important;\n }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important;\n }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n .m-lg-n3 {\n margin: -1rem !important;\n }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important;\n }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important;\n }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important;\n }\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n .m-lg-n5 {\n margin: -3rem !important;\n }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important;\n }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important;\n }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n .m-xl-n3 {\n margin: -1rem !important;\n }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important;\n }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important;\n }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important;\n }\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n .m-xl-n5 {\n margin: -3rem !important;\n }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important;\n }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important;\n }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n\n.text-monospace {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !important;\n}\n\n.text-justify {\n text-align: justify !important;\n}\n\n.text-wrap {\n white-space: normal !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n@media (min-width: 576px) {\n .text-sm-left {\n text-align: left !important;\n }\n .text-sm-right {\n text-align: right !important;\n }\n .text-sm-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 768px) {\n .text-md-left {\n text-align: left !important;\n }\n .text-md-right {\n text-align: right !important;\n }\n .text-md-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 992px) {\n .text-lg-left {\n text-align: left !important;\n }\n .text-lg-right {\n text-align: right !important;\n }\n .text-lg-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 1200px) {\n .text-xl-left {\n text-align: left !important;\n }\n .text-xl-right {\n text-align: right !important;\n }\n .text-xl-center {\n text-align: center !important;\n }\n}\n\n.text-lowercase {\n text-transform: lowercase !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n.font-weight-light {\n font-weight: 300 !important;\n}\n\n.font-weight-lighter {\n font-weight: lighter !important;\n}\n\n.font-weight-normal {\n font-weight: 400 !important;\n}\n\n.font-weight-bold {\n font-weight: 700 !important;\n}\n\n.font-weight-bolder {\n font-weight: bolder !important;\n}\n\n.font-italic {\n font-style: italic !important;\n}\n\n.text-white {\n color: #fff !important;\n}\n\n.text-primary {\n color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n color: #0056b3 !important;\n}\n\n.text-secondary {\n color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n color: #494f54 !important;\n}\n\n.text-success {\n color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n color: #19692c !important;\n}\n\n.text-info {\n color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n color: #0f6674 !important;\n}\n\n.text-warning {\n color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n color: #ba8b00 !important;\n}\n\n.text-danger {\n color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n color: #a71d2a !important;\n}\n\n.text-light {\n color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n color: #cbd3da !important;\n}\n\n.text-dark {\n color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n color: #121416 !important;\n}\n\n.text-body {\n color: #212529 !important;\n}\n\n.text-muted {\n color: #6c757d !important;\n}\n\n.text-black-50 {\n color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n\n.text-decoration-none {\n text-decoration: none !important;\n}\n\n.text-break {\n word-break: break-word !important;\n overflow-wrap: break-word !important;\n}\n\n.text-reset {\n color: inherit !important;\n}\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n\n@media print {\n *,\n *::before,\n *::after {\n text-shadow: none !important;\n box-shadow: none !important;\n }\n a:not(.btn) {\n text-decoration: underline;\n }\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: 1px solid #adb5bd;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n @page {\n size: a3;\n }\n body {\n min-width: 992px !important;\n }\n .container {\n min-width: 992px !important;\n }\n .navbar {\n display: none;\n }\n .badge {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #dee2e6 !important;\n }\n .table-dark {\n color: inherit;\n }\n .table-dark th,\n .table-dark td,\n .table-dark thead th,\n .table-dark tbody + tbody {\n border-color: #dee2e6;\n }\n .table .thead-dark th {\n color: inherit;\n border-color: #dee2e6;\n }\n}\n/*# sourceMappingURL=bootstrap.css.map */","// stylelint-disable property-blacklist, scss/dollar-variable-default\n\n// SCSS RFS mixin\n//\n// Automated font-resizing\n//\n// See https://github.com/twbs/rfs\n\n// Configuration\n\n// Base font size\n$rfs-base-font-size: 1.25rem !default;\n$rfs-font-size-unit: rem !default;\n\n// Breakpoint at where font-size starts decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n// Resize font-size based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != \"number\" or $rfs-factor <= 1 {\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\n}\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-responsive-font-sizes to false\n$enable-responsive-font-sizes: true !default;\n\n// Cache $rfs-base-font-size unit\n$rfs-base-font-size-unit: unit($rfs-base-font-size);\n\n// Remove px-unit from $rfs-base-font-size for calculations\n@if $rfs-base-font-size-unit == \"px\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1);\n}\n@else if $rfs-base-font-size-unit == \"rem\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1 / $rfs-rem-value);\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == \"px\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == \"rem\" or $rfs-breakpoint-unit-cache == \"em\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1 / $rfs-rem-value);\n}\n\n// Responsive font-size mixin\n@mixin rfs($fs, $important: false) {\n // Cache $fs unit\n $fs-unit: if(type-of($fs) == \"number\", unit($fs), false);\n\n // Add !important suffix if needed\n $rfs-suffix: if($important, \" !important\", \"\");\n\n // If $fs isn't a number (like inherit) or $fs has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $fs-unit or $fs-unit != \"\" and $fs-unit != \"px\" and $fs-unit != \"rem\" or $fs == 0 {\n font-size: #{$fs}#{$rfs-suffix};\n }\n @else {\n // Variables for storing static and fluid rescaling\n $rfs-static: null;\n $rfs-fluid: null;\n\n // Remove px-unit from $fs for calculations\n @if $fs-unit == \"px\" {\n $fs: $fs / ($fs * 0 + 1);\n }\n @else if $fs-unit == \"rem\" {\n $fs: $fs / ($fs * 0 + 1 / $rfs-rem-value);\n }\n\n // Set default font-size\n @if $rfs-font-size-unit == rem {\n $rfs-static: #{$fs / $rfs-rem-value}rem#{$rfs-suffix};\n }\n @else if $rfs-font-size-unit == px {\n $rfs-static: #{$fs}px#{$rfs-suffix};\n }\n @else {\n @error \"`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.\";\n }\n\n // Only add media query if font-size is bigger as the minimum font-size\n // If $rfs-factor == 1, no rescaling will take place\n @if $fs > $rfs-base-font-size and $enable-responsive-font-sizes {\n $min-width: null;\n $variable-unit: null;\n\n // Calculate minimum font-size for given font-size\n $fs-min: $rfs-base-font-size + ($fs - $rfs-base-font-size) / $rfs-factor;\n\n // Calculate difference between given font-size and minimum font-size for given font-size\n $fs-diff: $fs - $fs-min;\n\n // Base font-size formatting\n // No need to check if the unit is valid, because we did that before\n $min-width: if($rfs-font-size-unit == rem, #{$fs-min / $rfs-rem-value}rem, #{$fs-min}px);\n\n // If two-dimensional, use smallest of screen width and height\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n // Calculate the variable width between 0 and $rfs-breakpoint\n $variable-width: #{$fs-diff * 100 / $rfs-breakpoint}#{$variable-unit};\n\n // Set the calculated font-size.\n $rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};\n }\n\n // Rendering\n @if $rfs-fluid == null {\n // Only render static font-size if no fluid font-size is available\n font-size: $rfs-static;\n }\n @else {\n $mq-value: null;\n\n // RFS breakpoint formatting\n @if $rfs-breakpoint-unit == em or $rfs-breakpoint-unit == rem {\n $mq-value: #{$rfs-breakpoint / $rfs-rem-value}#{$rfs-breakpoint-unit};\n }\n @else if $rfs-breakpoint-unit == px {\n $mq-value: #{$rfs-breakpoint}px;\n }\n @else {\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n }\n\n @if $rfs-class == \"disable\" {\n // Adding an extra class increases specificity,\n // which prevents the media query to override the font size\n &,\n .disable-responsive-font-size &,\n &.disable-responsive-font-size {\n font-size: $rfs-static;\n }\n }\n @else {\n font-size: $rfs-static;\n }\n\n @if $rfs-two-dimensional {\n @media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n @else {\n @media (max-width: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n }\n }\n}\n\n// The font-size & responsive-font-size mixin uses RFS to rescale font sizes\n@mixin font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n\n@mixin responsive-font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n","/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n:root {\n --blue: #007bff;\n --indigo: #6610f2;\n --purple: #6f42c1;\n --pink: #e83e8c;\n --red: #dc3545;\n --orange: #fd7e14;\n --yellow: #ffc107;\n --green: #28a745;\n --teal: #20c997;\n --cyan: #17a2b8;\n --white: #fff;\n --gray: #6c757d;\n --gray-dark: #343a40;\n --primary: #007bff;\n --secondary: #6c757d;\n --success: #28a745;\n --info: #17a2b8;\n --warning: #ffc107;\n --danger: #dc3545;\n --light: #f8f9fa;\n --dark: #343a40;\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 992px;\n --breakpoint-xl: 1200px;\n --font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):hover {\n color: inherit;\n text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2;\n}\n\nh1, .h1 {\n font-size: 2.5rem;\n}\n\nh2, .h2 {\n font-size: 2rem;\n}\n\nh3, .h3 {\n font-size: 1.75rem;\n}\n\nh4, .h4 {\n font-size: 1.5rem;\n}\n\nh5, .h5 {\n font-size: 1.25rem;\n}\n\nh6, .h6 {\n font-size: 1rem;\n}\n\n.lead {\n font-size: 1.25rem;\n font-weight: 300;\n}\n\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n font-size: 80%;\n font-weight: 400;\n}\n\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline-item {\n display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n margin-right: 0.5rem;\n}\n\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n}\n\n.blockquote-footer {\n display: block;\n font-size: 80%;\n color: #6c757d;\n}\n\n.blockquote-footer::before {\n content: \"\\2014\\00A0\";\n}\n\n.img-fluid {\n max-width: 100%;\n height: auto;\n}\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #fff;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n max-width: 100%;\n height: auto;\n}\n\n.figure {\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1;\n}\n\n.figure-caption {\n font-size: 90%;\n color: #6c757d;\n}\n\ncode {\n font-size: 87.5%;\n color: #e83e8c;\n word-wrap: break-word;\n}\n\na > code {\n color: inherit;\n}\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 87.5%;\n color: #fff;\n background-color: #212529;\n border-radius: 0.2rem;\n}\n\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700;\n}\n\npre {\n display: block;\n font-size: 87.5%;\n color: #212529;\n}\n\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n\n.container {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container {\n max-width: 1140px;\n }\n}\n\n.container-fluid, .container-sm, .container-md, .container-lg, .container-xl {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container, .container-sm {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container, .container-sm, .container-md {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container, .container-sm, .container-md, .container-lg {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container, .container-sm, .container-md, .container-lg, .container-xl {\n max-width: 1140px;\n }\n}\n\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.row-cols-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.row-cols-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.row-cols-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.row-cols-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.row-cols-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n}\n\n.row-cols-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n order: -1;\n}\n\n.order-last {\n order: 13;\n}\n\n.order-0 {\n order: 0;\n}\n\n.order-1 {\n order: 1;\n}\n\n.order-2 {\n order: 2;\n}\n\n.order-3 {\n order: 3;\n}\n\n.order-4 {\n order: 4;\n}\n\n.order-5 {\n order: 5;\n}\n\n.order-6 {\n order: 6;\n}\n\n.order-7 {\n order: 7;\n}\n\n.order-8 {\n order: 8;\n}\n\n.order-9 {\n order: 9;\n}\n\n.order-10 {\n order: 10;\n}\n\n.order-11 {\n order: 11;\n}\n\n.order-12 {\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-sm-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-sm-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-sm-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-sm-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-sm-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-sm-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n order: -1;\n }\n .order-sm-last {\n order: 13;\n }\n .order-sm-0 {\n order: 0;\n }\n .order-sm-1 {\n order: 1;\n }\n .order-sm-2 {\n order: 2;\n }\n .order-sm-3 {\n order: 3;\n }\n .order-sm-4 {\n order: 4;\n }\n .order-sm-5 {\n order: 5;\n }\n .order-sm-6 {\n order: 6;\n }\n .order-sm-7 {\n order: 7;\n }\n .order-sm-8 {\n order: 8;\n }\n .order-sm-9 {\n order: 9;\n }\n .order-sm-10 {\n order: 10;\n }\n .order-sm-11 {\n order: 11;\n }\n .order-sm-12 {\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-md-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-md-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-md-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-md-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-md-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-md-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n order: -1;\n }\n .order-md-last {\n order: 13;\n }\n .order-md-0 {\n order: 0;\n }\n .order-md-1 {\n order: 1;\n }\n .order-md-2 {\n order: 2;\n }\n .order-md-3 {\n order: 3;\n }\n .order-md-4 {\n order: 4;\n }\n .order-md-5 {\n order: 5;\n }\n .order-md-6 {\n order: 6;\n }\n .order-md-7 {\n order: 7;\n }\n .order-md-8 {\n order: 8;\n }\n .order-md-9 {\n order: 9;\n }\n .order-md-10 {\n order: 10;\n }\n .order-md-11 {\n order: 11;\n }\n .order-md-12 {\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-lg-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-lg-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-lg-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-lg-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-lg-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-lg-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n order: -1;\n }\n .order-lg-last {\n order: 13;\n }\n .order-lg-0 {\n order: 0;\n }\n .order-lg-1 {\n order: 1;\n }\n .order-lg-2 {\n order: 2;\n }\n .order-lg-3 {\n order: 3;\n }\n .order-lg-4 {\n order: 4;\n }\n .order-lg-5 {\n order: 5;\n }\n .order-lg-6 {\n order: 6;\n }\n .order-lg-7 {\n order: 7;\n }\n .order-lg-8 {\n order: 8;\n }\n .order-lg-9 {\n order: 9;\n }\n .order-lg-10 {\n order: 10;\n }\n .order-lg-11 {\n order: 11;\n }\n .order-lg-12 {\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-xl-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-xl-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-xl-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-xl-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-xl-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-xl-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n order: -1;\n }\n .order-xl-last {\n order: 13;\n }\n .order-xl-0 {\n order: 0;\n }\n .order-xl-1 {\n order: 1;\n }\n .order-xl-2 {\n order: 2;\n }\n .order-xl-3 {\n order: 3;\n }\n .order-xl-4 {\n order: 4;\n }\n .order-xl-5 {\n order: 5;\n }\n .order-xl-6 {\n order: 6;\n }\n .order-xl-7 {\n order: 7;\n }\n .order-xl-8 {\n order: 8;\n }\n .order-xl-9 {\n order: 9;\n }\n .order-xl-10 {\n order: 10;\n }\n .order-xl-11 {\n order: 11;\n }\n .order-xl-12 {\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.table {\n width: 100%;\n margin-bottom: 1rem;\n color: #212529;\n}\n\n.table th,\n.table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n border-top: 2px solid #dee2e6;\n}\n\n.table-sm th,\n.table-sm td {\n padding: 0.3rem;\n}\n\n.table-bordered {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n border-bottom-width: 2px;\n}\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n border: 0;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n color: #212529;\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #b8daff;\n}\n\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n border-color: #7abaff;\n}\n\n.table-hover .table-primary:hover {\n background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #d6d8db;\n}\n\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n border-color: #b3b7bb;\n}\n\n.table-hover .table-secondary:hover {\n background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #c3e6cb;\n}\n\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n border-color: #8fd19e;\n}\n\n.table-hover .table-success:hover {\n background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #bee5eb;\n}\n\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n border-color: #86cfda;\n}\n\n.table-hover .table-info:hover {\n background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #ffeeba;\n}\n\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n border-color: #ffdf7e;\n}\n\n.table-hover .table-warning:hover {\n background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #f5c6cb;\n}\n\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n border-color: #ed969e;\n}\n\n.table-hover .table-danger:hover {\n background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #fdfdfe;\n}\n\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n border-color: #fbfcfc;\n}\n\n.table-hover .table-light:hover {\n background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #c6c8ca;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n border-color: #95999c;\n}\n\n.table-hover .table-dark:hover {\n background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n color: #fff;\n background-color: #343a40;\n border-color: #454d55;\n}\n\n.table .thead-light th {\n color: #495057;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.table-dark {\n color: #fff;\n background-color: #343a40;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n border-color: #454d55;\n}\n\n.table-dark.table-bordered {\n border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n color: #fff;\n background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-sm > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 767.98px) {\n .table-responsive-md {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-md > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-lg > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-xl > .table-bordered {\n border: 0;\n }\n}\n\n.table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.table-responsive > .table-bordered {\n border: 0;\n}\n\n.form-control {\n display: block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none;\n }\n}\n\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n}\n\n.form-control:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #495057;\n}\n\n.form-control:focus {\n color: #495057;\n background-color: #fff;\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.form-control::placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n background-color: #e9ecef;\n opacity: 1;\n}\n\nselect.form-control:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5;\n}\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding: 0.375rem 0;\n margin-bottom: 0;\n font-size: 1rem;\n line-height: 1.5;\n color: #212529;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n}\n\n.form-control-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.form-control-lg {\n height: calc(1.5em + 1rem + 2px);\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\nselect.form-control[size], select.form-control[multiple] {\n height: auto;\n}\n\ntextarea.form-control {\n height: auto;\n}\n\n.form-group {\n margin-bottom: 1rem;\n}\n\n.form-text {\n display: block;\n margin-top: 0.25rem;\n}\n\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n padding-right: 5px;\n padding-left: 5px;\n}\n\n.form-check {\n position: relative;\n display: block;\n padding-left: 1.25rem;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: 0.3rem;\n margin-left: -1.25rem;\n}\n\n.form-check-input[disabled] ~ .form-check-label,\n.form-check-input:disabled ~ .form-check-label {\n color: #6c757d;\n}\n\n.form-check-label {\n margin-bottom: 0;\n}\n\n.form-check-inline {\n display: inline-flex;\n align-items: center;\n padding-left: 0;\n margin-right: 0.75rem;\n}\n\n.form-check-inline .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: 0.3125rem;\n margin-left: 0;\n}\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #28a745;\n}\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(40, 167, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated :valid ~ .valid-feedback,\n.was-validated :valid ~ .valid-tooltip,\n.is-valid ~ .valid-feedback,\n.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid {\n border-color: #28a745;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:valid, .custom-select.is-valid {\n border-color: #28a745;\n padding-right: calc(0.75em + 2.3125rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #28a745;\n}\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n border-color: #34ce57;\n background-color: #34ce57;\n}\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #dc3545;\n}\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(220, 53, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated :invalid ~ .invalid-feedback,\n.was-validated :invalid ~ .invalid-tooltip,\n.is-invalid ~ .invalid-feedback,\n.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n border-color: #dc3545;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n border-color: #dc3545;\n padding-right: calc(0.75em + 2.3125rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #dc3545;\n}\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n border-color: #e4606d;\n background-color: #e4606d;\n}\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center;\n}\n\n.form-inline .form-check {\n width: 100%;\n}\n\n@media (min-width: 576px) {\n .form-inline label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0;\n }\n .form-inline .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-plaintext {\n display: inline-block;\n }\n .form-inline .input-group,\n .form-inline .custom-select {\n width: auto;\n }\n .form-inline .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-inline .form-check-input {\n position: relative;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0;\n }\n .form-inline .custom-control {\n align-items: center;\n justify-content: center;\n }\n .form-inline .custom-control-label {\n margin-bottom: 0;\n }\n}\n\n.btn {\n display: inline-block;\n font-weight: 400;\n color: #212529;\n text-align: center;\n vertical-align: middle;\n cursor: pointer;\n user-select: none;\n background-color: transparent;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .btn {\n transition: none;\n }\n}\n\n.btn:hover {\n color: #212529;\n text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.btn.disabled, .btn:disabled {\n opacity: 0.65;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n.btn-primary {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:hover {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n.show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #0062cc;\n border-color: #005cbf;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-secondary {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:hover {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-secondary.dropdown-toggle {\n color: #fff;\n background-color: #545b62;\n border-color: #4e555b;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-success {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:hover {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n.show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #1e7e34;\n border-color: #1c7430;\n}\n\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-info {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:hover {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n.show > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: #117a8b;\n border-color: #10707f;\n}\n\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-warning {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:hover {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n color: #212529;\n background-color: #d39e00;\n border-color: #c69500;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-danger {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:hover {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n.show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #bd2130;\n border-color: #b21f2d;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-light {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:hover {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n color: #212529;\n background-color: #dae0e5;\n border-color: #d3d9df;\n}\n\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-dark {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:hover {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n.show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: #1d2124;\n border-color: #171a1d;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-outline-primary {\n color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #007bff;\n background-color: transparent;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n color: #6c757d;\n background-color: transparent;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-secondary.dropdown-toggle {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #28a745;\n background-color: transparent;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #17a2b8;\n background-color: transparent;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #ffc107;\n background-color: transparent;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .btn-outline-warning.dropdown-toggle {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #dc3545;\n background-color: transparent;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n color: #f8f9fa;\n background-color: transparent;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .btn-outline-light.dropdown-toggle {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n color: #343a40;\n background-color: transparent;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .btn-outline-dark.dropdown-toggle {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n font-weight: 400;\n color: #007bff;\n text-decoration: none;\n}\n\n.btn-link:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\n.btn-link:focus, .btn-link.focus {\n text-decoration: underline;\n box-shadow: none;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n color: #6c757d;\n pointer-events: none;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n.btn-block + .btn-block {\n margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n\n.fade {\n transition: opacity 0.15s linear;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none;\n }\n}\n\n.fade:not(.show) {\n opacity: 0;\n}\n\n.collapse:not(.show) {\n display: none;\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none;\n }\n}\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n}\n\n.dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 1rem;\n color: #212529;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n}\n\n.dropdown-menu-left {\n right: auto;\n left: 0;\n}\n\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n\n@media (min-width: 576px) {\n .dropdown-menu-sm-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-sm-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 768px) {\n .dropdown-menu-md-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-md-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 992px) {\n .dropdown-menu-lg-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-lg-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 1200px) {\n .dropdown-menu-xl-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-xl-right {\n right: 0;\n left: auto;\n }\n}\n\n.dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent;\n}\n\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: 0.125rem;\n}\n\n.dropright .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid;\n}\n\n.dropright .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: 0.125rem;\n}\n\n.dropleft .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n display: none;\n}\n\n.dropleft .dropdown-toggle::before {\n display: inline-block;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent;\n}\n\n.dropleft .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n vertical-align: 0;\n}\n\n.dropdown-menu[x-placement^=\"top\"], .dropdown-menu[x-placement^=\"right\"], .dropdown-menu[x-placement^=\"bottom\"], .dropdown-menu[x-placement^=\"left\"] {\n right: auto;\n bottom: auto;\n}\n\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1.5rem;\n clear: both;\n font-weight: 400;\n color: #212529;\n text-align: inherit;\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n color: #16181b;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: transparent;\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n.dropdown-header {\n display: block;\n padding: 0.5rem 1.5rem;\n margin-bottom: 0;\n font-size: 0.875rem;\n color: #6c757d;\n white-space: nowrap;\n}\n\n.dropdown-item-text {\n display: block;\n padding: 0.25rem 1.5rem;\n color: #212529;\n}\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n flex: 1 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n z-index: 1;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n z-index: 1;\n}\n\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n width: auto;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n margin-left: -1px;\n}\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after,\n.dropup .dropdown-toggle-split::after,\n.dropright .dropdown-toggle-split::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle-split::before {\n margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n}\n\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n width: 100%;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: -1px;\n}\n\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n margin-bottom: 0;\n}\n\n.btn-group-toggle > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn input[type=\"checkbox\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n width: 100%;\n}\n\n.input-group > .form-control,\n.input-group > .form-control-plaintext,\n.input-group > .custom-select,\n.input-group > .custom-file {\n position: relative;\n flex: 1 1 0%;\n min-width: 0;\n margin-bottom: 0;\n}\n\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .form-control-plaintext + .form-control,\n.input-group > .form-control-plaintext + .custom-select,\n.input-group > .form-control-plaintext + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n margin-left: -1px;\n}\n\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3;\n}\n\n.input-group > .custom-file .custom-file-input:focus {\n z-index: 4;\n}\n\n.input-group > .form-control:not(:last-child),\n.input-group > .custom-select:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-file {\n display: flex;\n align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:last-child) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .custom-file:not(:first-child) .custom-file-label {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n position: relative;\n z-index: 2;\n}\n\n.input-group-prepend .btn:focus,\n.input-group-append .btn:focus {\n z-index: 3;\n}\n\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n margin-left: -1px;\n}\n\n.input-group-prepend {\n margin-right: -1px;\n}\n\n.input-group-append {\n margin-left: -1px;\n}\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: 0.375rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n text-align: center;\n white-space: nowrap;\n background-color: #e9ecef;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n margin-top: 0;\n}\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: calc(1.5em + 1rem + 2px);\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: calc(1.5em + 0.5rem + 2px);\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: 1.75rem;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.custom-control {\n position: relative;\n display: block;\n min-height: 1.5rem;\n padding-left: 1.5rem;\n}\n\n.custom-control-inline {\n display: inline-flex;\n margin-right: 1rem;\n}\n\n.custom-control-input {\n position: absolute;\n left: 0;\n z-index: -1;\n width: 1rem;\n height: 1.25rem;\n opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n color: #fff;\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #80bdff;\n}\n\n.custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n color: #fff;\n background-color: #b3d7ff;\n border-color: #b3d7ff;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label {\n color: #6c757d;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before {\n background-color: #e9ecef;\n}\n\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n vertical-align: top;\n}\n\n.custom-control-label::before {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n content: \"\";\n background-color: #fff;\n border: #adb5bd solid 1px;\n}\n\n.custom-control-label::after {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n content: \"\";\n background: no-repeat 50% / 50% 50%;\n}\n\n.custom-checkbox .custom-control-label::before {\n border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\");\n}\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-switch {\n padding-left: 2.25rem;\n}\n\n.custom-switch .custom-control-label::before {\n left: -2.25rem;\n width: 1.75rem;\n pointer-events: all;\n border-radius: 0.5rem;\n}\n\n.custom-switch .custom-control-label::after {\n top: calc(0.25rem + 2px);\n left: calc(-2.25rem + 2px);\n width: calc(1rem - 4px);\n height: calc(1rem - 4px);\n background-color: #adb5bd;\n border-radius: 0.5rem;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-switch .custom-control-label::after {\n transition: none;\n }\n}\n\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n background-color: #fff;\n transform: translateX(0.75rem);\n}\n\n.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n vertical-align: middle;\n background: #fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n appearance: none;\n}\n\n.custom-select:focus {\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-select:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: 0.75rem;\n background-image: none;\n}\n\n.custom-select:disabled {\n color: #6c757d;\n background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n display: none;\n}\n\n.custom-select:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #495057;\n}\n\n.custom-select-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n padding-left: 0.5rem;\n font-size: 0.875rem;\n}\n\n.custom-select-lg {\n height: calc(1.5em + 1rem + 2px);\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-left: 1rem;\n font-size: 1.25rem;\n}\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin: 0;\n opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-label {\n border-color: #80bdff;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-file-input[disabled] ~ .custom-file-label,\n.custom-file-input:disabled ~ .custom-file-label {\n background-color: #e9ecef;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n content: \"Browse\";\n}\n\n.custom-file-input ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse);\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.custom-file-label::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(1.5em + 0.75rem);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n content: \"Browse\";\n background-color: #e9ecef;\n border-left: inherit;\n border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-range {\n width: 100%;\n height: 1.4rem;\n padding: 0;\n background-color: transparent;\n appearance: none;\n}\n\n.custom-range:focus {\n outline: none;\n}\n\n.custom-range:focus::-webkit-slider-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-moz-range-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-ms-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-moz-focus-outer {\n border: 0;\n}\n\n.custom-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-webkit-slider-thumb {\n transition: none;\n }\n}\n\n.custom-range::-webkit-slider-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-moz-range-thumb {\n transition: none;\n }\n}\n\n.custom-range::-moz-range-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: 0;\n margin-right: 0.2rem;\n margin-left: 0.2rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-ms-thumb {\n transition: none;\n }\n}\n\n.custom-range::-ms-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-ms-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: transparent;\n border-color: transparent;\n border-width: 0.5rem;\n}\n\n.custom-range::-ms-fill-lower {\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-fill-upper {\n margin-right: 15px;\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range:disabled::-webkit-slider-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-webkit-slider-runnable-track {\n cursor: default;\n}\n\n.custom-range:disabled::-moz-range-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-moz-range-track {\n cursor: default;\n}\n\n.custom-range:disabled::-ms-thumb {\n background-color: #adb5bd;\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-control-label::before,\n .custom-file-label,\n .custom-select {\n transition: none;\n }\n}\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: 0.5rem 1rem;\n}\n\n.nav-link:hover, .nav-link:focus {\n text-decoration: none;\n}\n\n.nav-link.disabled {\n color: #6c757d;\n pointer-events: none;\n cursor: default;\n}\n\n.nav-tabs {\n border-bottom: 1px solid #dee2e6;\n}\n\n.nav-tabs .nav-item {\n margin-bottom: -1px;\n}\n\n.nav-tabs .nav-link {\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n border-color: #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs .nav-link.disabled {\n color: #6c757d;\n background-color: transparent;\n border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n color: #495057;\n background-color: #fff;\n border-color: #dee2e6 #dee2e6 #fff;\n}\n\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #007bff;\n}\n\n.nav-fill .nav-item {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.nav-justified .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n}\n\n.tab-content > .tab-pane {\n display: none;\n}\n\n.tab-content > .active {\n display: block;\n}\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: 0.5rem 1rem;\n}\n\n.navbar .container,\n.navbar .container-fluid, .navbar .container-sm, .navbar .container-md, .navbar .container-lg, .navbar .container-xl {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n}\n\n.navbar-brand {\n display: inline-block;\n padding-top: 0.3125rem;\n padding-bottom: 0.3125rem;\n margin-right: 1rem;\n font-size: 1.25rem;\n line-height: inherit;\n white-space: nowrap;\n}\n\n.navbar-brand:hover, .navbar-brand:focus {\n text-decoration: none;\n}\n\n.navbar-nav {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n position: static;\n float: none;\n}\n\n.navbar-text {\n display: inline-block;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n align-items: center;\n}\n\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.25rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.navbar-toggler:hover, .navbar-toggler:focus {\n text-decoration: none;\n}\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n\n@media (max-width: 575.98px) {\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 576px) {\n .navbar-expand-sm {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-sm .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-sm .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-sm .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 767.98px) {\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 768px) {\n .navbar-expand-md {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-md .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-md .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-md .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 991.98px) {\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 992px) {\n .navbar-expand-lg {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-lg .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-lg .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-lg .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 1199.98px) {\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-xl .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-xl .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-xl .navbar-toggler {\n display: none;\n }\n}\n\n.navbar-expand {\n flex-flow: row nowrap;\n justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n position: absolute;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n}\n\n.navbar-expand .navbar-toggler {\n display: none;\n}\n\n.navbar-light .navbar-brand {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n color: rgba(0, 0, 0, 0.5);\n border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-light .navbar-text {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-text a {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n color: #fff;\n}\n\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff;\n}\n\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.5);\n border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-text a {\n color: #fff;\n}\n\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n color: #fff;\n}\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem;\n}\n\n.card > hr {\n margin-right: 0;\n margin-left: 0;\n}\n\n.card > .list-group:first-child .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.card > .list-group:last-child .list-group-item:last-child {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.card-body {\n flex: 1 1 auto;\n min-height: 1px;\n padding: 1.25rem;\n}\n\n.card-title {\n margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link:hover {\n text-decoration: none;\n}\n\n.card-link + .card-link {\n margin-left: 1.25rem;\n}\n\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n background-color: rgba(0, 0, 0, 0.03);\n border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-header + .list-group .list-group-item:first-child {\n border-top: 0;\n}\n\n.card-footer {\n padding: 0.75rem 1.25rem;\n background-color: rgba(0, 0, 0, 0.03);\n border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem;\n}\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n flex-shrink: 0;\n width: 100%;\n}\n\n.card-img,\n.card-img-top {\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img,\n.card-img-bottom {\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card-deck .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-deck {\n display: flex;\n flex-flow: row wrap;\n margin-right: -15px;\n margin-left: -15px;\n }\n .card-deck .card {\n flex: 1 0 0%;\n margin-right: 15px;\n margin-bottom: 0;\n margin-left: 15px;\n }\n}\n\n.card-group > .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-group {\n display: flex;\n flex-flow: row wrap;\n }\n .card-group > .card {\n flex: 1 0 0%;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group > .card:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-top,\n .card-group > .card:not(:last-child) .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-bottom,\n .card-group > .card:not(:last-child) .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-top,\n .card-group > .card:not(:first-child) .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-bottom,\n .card-group > .card:not(:first-child) .card-footer {\n border-bottom-left-radius: 0;\n }\n}\n\n.card-columns .card {\n margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n .card-columns {\n column-count: 3;\n column-gap: 1.25rem;\n orphans: 1;\n widows: 1;\n }\n .card-columns .card {\n display: inline-block;\n width: 100%;\n }\n}\n\n.accordion > .card {\n overflow: hidden;\n}\n\n.accordion > .card:not(:last-of-type) {\n border-bottom: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.accordion > .card:not(:first-of-type) {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.accordion > .card > .card-header {\n border-radius: 0;\n margin-bottom: -1px;\n}\n\n.breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: 0.75rem 1rem;\n margin-bottom: 1rem;\n list-style: none;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.breadcrumb-item + .breadcrumb-item {\n padding-left: 0.5rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n display: inline-block;\n padding-right: 0.5rem;\n color: #6c757d;\n content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: underline;\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: none;\n}\n\n.breadcrumb-item.active {\n color: #6c757d;\n}\n\n.pagination {\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem;\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: -1px;\n line-height: 1.25;\n color: #007bff;\n background-color: #fff;\n border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n z-index: 2;\n color: #0056b3;\n text-decoration: none;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.page-link:focus {\n z-index: 3;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-item:first-child .page-link {\n margin-left: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n z-index: 3;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n color: #6c757d;\n pointer-events: none;\n cursor: auto;\n background-color: #fff;\n border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .badge {\n transition: none;\n }\n}\n\na.badge:hover, a.badge:focus {\n text-decoration: none;\n}\n\n.badge:empty {\n display: none;\n}\n\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n.badge-pill {\n padding-right: 0.6em;\n padding-left: 0.6em;\n border-radius: 10rem;\n}\n\n.badge-primary {\n color: #fff;\n background-color: #007bff;\n}\n\na.badge-primary:hover, a.badge-primary:focus {\n color: #fff;\n background-color: #0062cc;\n}\n\na.badge-primary:focus, a.badge-primary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.badge-secondary {\n color: #fff;\n background-color: #6c757d;\n}\n\na.badge-secondary:hover, a.badge-secondary:focus {\n color: #fff;\n background-color: #545b62;\n}\n\na.badge-secondary:focus, a.badge-secondary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.badge-success {\n color: #fff;\n background-color: #28a745;\n}\n\na.badge-success:hover, a.badge-success:focus {\n color: #fff;\n background-color: #1e7e34;\n}\n\na.badge-success:focus, a.badge-success.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.badge-info {\n color: #fff;\n background-color: #17a2b8;\n}\n\na.badge-info:hover, a.badge-info:focus {\n color: #fff;\n background-color: #117a8b;\n}\n\na.badge-info:focus, a.badge-info.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.badge-warning {\n color: #212529;\n background-color: #ffc107;\n}\n\na.badge-warning:hover, a.badge-warning:focus {\n color: #212529;\n background-color: #d39e00;\n}\n\na.badge-warning:focus, a.badge-warning.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.badge-danger {\n color: #fff;\n background-color: #dc3545;\n}\n\na.badge-danger:hover, a.badge-danger:focus {\n color: #fff;\n background-color: #bd2130;\n}\n\na.badge-danger:focus, a.badge-danger.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.badge-light {\n color: #212529;\n background-color: #f8f9fa;\n}\n\na.badge-light:hover, a.badge-light:focus {\n color: #212529;\n background-color: #dae0e5;\n}\n\na.badge-light:focus, a.badge-light.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.badge-dark {\n color: #fff;\n background-color: #343a40;\n}\n\na.badge-dark:hover, a.badge-dark:focus {\n color: #fff;\n background-color: #1d2124;\n}\n\na.badge-dark:focus, a.badge-dark.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #e9ecef;\n border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n .jumbotron {\n padding: 4rem 2rem;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0;\n}\n\n.alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.alert-heading {\n color: inherit;\n}\n\n.alert-link {\n font-weight: 700;\n}\n\n.alert-dismissible {\n padding-right: 4rem;\n}\n\n.alert-dismissible .close {\n position: absolute;\n top: 0;\n right: 0;\n padding: 0.75rem 1.25rem;\n color: inherit;\n}\n\n.alert-primary {\n color: #004085;\n background-color: #cce5ff;\n border-color: #b8daff;\n}\n\n.alert-primary hr {\n border-top-color: #9fcdff;\n}\n\n.alert-primary .alert-link {\n color: #002752;\n}\n\n.alert-secondary {\n color: #383d41;\n background-color: #e2e3e5;\n border-color: #d6d8db;\n}\n\n.alert-secondary hr {\n border-top-color: #c8cbcf;\n}\n\n.alert-secondary .alert-link {\n color: #202326;\n}\n\n.alert-success {\n color: #155724;\n background-color: #d4edda;\n border-color: #c3e6cb;\n}\n\n.alert-success hr {\n border-top-color: #b1dfbb;\n}\n\n.alert-success .alert-link {\n color: #0b2e13;\n}\n\n.alert-info {\n color: #0c5460;\n background-color: #d1ecf1;\n border-color: #bee5eb;\n}\n\n.alert-info hr {\n border-top-color: #abdde5;\n}\n\n.alert-info .alert-link {\n color: #062c33;\n}\n\n.alert-warning {\n color: #856404;\n background-color: #fff3cd;\n border-color: #ffeeba;\n}\n\n.alert-warning hr {\n border-top-color: #ffe8a1;\n}\n\n.alert-warning .alert-link {\n color: #533f03;\n}\n\n.alert-danger {\n color: #721c24;\n background-color: #f8d7da;\n border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n border-top-color: #f1b0b7;\n}\n\n.alert-danger .alert-link {\n color: #491217;\n}\n\n.alert-light {\n color: #818182;\n background-color: #fefefe;\n border-color: #fdfdfe;\n}\n\n.alert-light hr {\n border-top-color: #ececf6;\n}\n\n.alert-light .alert-link {\n color: #686868;\n}\n\n.alert-dark {\n color: #1b1e21;\n background-color: #d6d8d9;\n border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n border-top-color: #b9bbbe;\n}\n\n.alert-dark .alert-link {\n color: #040505;\n}\n\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n.progress {\n display: flex;\n height: 1rem;\n overflow: hidden;\n font-size: 0.75rem;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n background-color: #007bff;\n transition: width 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none;\n }\n}\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n animation: progress-bar-stripes 1s linear infinite;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n animation: none;\n }\n}\n\n.media {\n display: flex;\n align-items: flex-start;\n}\n\n.media-body {\n flex: 1;\n}\n\n.list-group {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n}\n\n.list-group-item-action {\n width: 100%;\n color: #495057;\n text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n z-index: 1;\n color: #495057;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n color: #212529;\n background-color: #e9ecef;\n}\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.75rem 1.25rem;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.list-group-item:last-child {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: #fff;\n}\n\n.list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.list-group-item + .list-group-item {\n border-top-width: 0;\n}\n\n.list-group-item + .list-group-item.active {\n margin-top: -1px;\n border-top-width: 1px;\n}\n\n.list-group-horizontal {\n flex-direction: row;\n}\n\n.list-group-horizontal .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n}\n\n.list-group-horizontal .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n}\n\n.list-group-horizontal .list-group-item.active {\n margin-top: 0;\n}\n\n.list-group-horizontal .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n}\n\n.list-group-horizontal .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n}\n\n@media (min-width: 576px) {\n .list-group-horizontal-sm {\n flex-direction: row;\n }\n .list-group-horizontal-sm .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-sm .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-sm .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-sm .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-sm .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 768px) {\n .list-group-horizontal-md {\n flex-direction: row;\n }\n .list-group-horizontal-md .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-md .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-md .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-md .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-md .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 992px) {\n .list-group-horizontal-lg {\n flex-direction: row;\n }\n .list-group-horizontal-lg .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-lg .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-lg .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-lg .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-lg .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 1200px) {\n .list-group-horizontal-xl {\n flex-direction: row;\n }\n .list-group-horizontal-xl .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-xl .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-xl .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-xl .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-xl .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n.list-group-flush .list-group-item {\n border-right-width: 0;\n border-left-width: 0;\n border-radius: 0;\n}\n\n.list-group-flush .list-group-item:first-child {\n border-top-width: 0;\n}\n\n.list-group-flush:last-child .list-group-item:last-child {\n border-bottom-width: 0;\n}\n\n.list-group-item-primary {\n color: #004085;\n background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n color: #004085;\n background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n color: #fff;\n background-color: #004085;\n border-color: #004085;\n}\n\n.list-group-item-secondary {\n color: #383d41;\n background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n color: #383d41;\n background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n color: #fff;\n background-color: #383d41;\n border-color: #383d41;\n}\n\n.list-group-item-success {\n color: #155724;\n background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n color: #155724;\n background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n color: #fff;\n background-color: #155724;\n border-color: #155724;\n}\n\n.list-group-item-info {\n color: #0c5460;\n background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n color: #0c5460;\n background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n color: #fff;\n background-color: #0c5460;\n border-color: #0c5460;\n}\n\n.list-group-item-warning {\n color: #856404;\n background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n color: #856404;\n background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n color: #fff;\n background-color: #856404;\n border-color: #856404;\n}\n\n.list-group-item-danger {\n color: #721c24;\n background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n color: #721c24;\n background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n color: #fff;\n background-color: #721c24;\n border-color: #721c24;\n}\n\n.list-group-item-light {\n color: #818182;\n background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n color: #818182;\n background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n color: #fff;\n background-color: #818182;\n border-color: #818182;\n}\n\n.list-group-item-dark {\n color: #1b1e21;\n background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n color: #1b1e21;\n background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n color: #fff;\n background-color: #1b1e21;\n border-color: #1b1e21;\n}\n\n.close {\n float: right;\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: .5;\n}\n\n.close:hover {\n color: #000;\n text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\n opacity: .75;\n}\n\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n appearance: none;\n}\n\na.close.disabled {\n pointer-events: none;\n}\n\n.toast {\n max-width: 350px;\n overflow: hidden;\n font-size: 0.875rem;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\n backdrop-filter: blur(10px);\n opacity: 0;\n border-radius: 0.25rem;\n}\n\n.toast:not(:last-child) {\n margin-bottom: 0.75rem;\n}\n\n.toast.showing {\n opacity: 1;\n}\n\n.toast.show {\n display: block;\n opacity: 1;\n}\n\n.toast.hide {\n display: none;\n}\n\n.toast-header {\n display: flex;\n align-items: center;\n padding: 0.25rem 0.75rem;\n color: #6c757d;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n\n.toast-body {\n padding: 0.75rem;\n}\n\n.modal-open {\n overflow: hidden;\n}\n\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1050;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n outline: 0;\n}\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n transition: transform 0.3s ease-out;\n transform: translate(0, -50px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none;\n }\n}\n\n.modal.show .modal-dialog {\n transform: none;\n}\n\n.modal.modal-static .modal-dialog {\n transform: scale(1.02);\n}\n\n.modal-dialog-scrollable {\n display: flex;\n max-height: calc(100% - 1rem);\n}\n\n.modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 1rem);\n overflow: hidden;\n}\n\n.modal-dialog-scrollable .modal-header,\n.modal-dialog-scrollable .modal-footer {\n flex-shrink: 0;\n}\n\n.modal-dialog-scrollable .modal-body {\n overflow-y: auto;\n}\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - 1rem);\n}\n\n.modal-dialog-centered::before {\n display: block;\n height: calc(100vh - 1rem);\n content: \"\";\n}\n\n.modal-dialog-centered.modal-dialog-scrollable {\n flex-direction: column;\n justify-content: center;\n height: 100%;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable .modal-content {\n max-height: none;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable::before {\n content: none;\n}\n\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n outline: 0;\n}\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100vw;\n height: 100vh;\n background-color: #000;\n}\n\n.modal-backdrop.fade {\n opacity: 0;\n}\n\n.modal-backdrop.show {\n opacity: 0.5;\n}\n\n.modal-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n padding: 1rem 1rem;\n border-bottom: 1px solid #dee2e6;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.modal-header .close {\n padding: 1rem 1rem;\n margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5;\n}\n\n.modal-body {\n position: relative;\n flex: 1 1 auto;\n padding: 1rem;\n}\n\n.modal-footer {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: flex-end;\n padding: 0.75rem;\n border-top: 1px solid #dee2e6;\n border-bottom-right-radius: calc(0.3rem - 1px);\n border-bottom-left-radius: calc(0.3rem - 1px);\n}\n\n.modal-footer > * {\n margin: 0.25rem;\n}\n\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto;\n }\n .modal-dialog-scrollable {\n max-height: calc(100% - 3.5rem);\n }\n .modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 3.5rem);\n }\n .modal-dialog-centered {\n min-height: calc(100% - 3.5rem);\n }\n .modal-dialog-centered::before {\n height: calc(100vh - 3.5rem);\n }\n .modal-sm {\n max-width: 300px;\n }\n}\n\n@media (min-width: 992px) {\n .modal-lg,\n .modal-xl {\n max-width: 800px;\n }\n}\n\n@media (min-width: 1200px) {\n .modal-xl {\n max-width: 1140px;\n }\n}\n\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n opacity: 0;\n}\n\n.tooltip.show {\n opacity: 0.9;\n}\n\n.tooltip .arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem;\n}\n\n.tooltip .arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=\"top\"] .arrow {\n bottom: 0;\n}\n\n.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n top: 0;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=\"right\"] .arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n right: 0;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\n top: 0;\n}\n\n.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n bottom: 0;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=\"left\"] .arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n left: 0;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000;\n}\n\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem;\n}\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n}\n\n.popover .arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem;\n margin: 0 0.3rem;\n}\n\n.popover .arrow::before, .popover .arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n margin-bottom: 0.5rem;\n}\n\n.bs-popover-top > .arrow, .bs-popover-auto[x-placement^=\"top\"] > .arrow {\n bottom: calc(-0.5rem - 1px);\n}\n\n.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n bottom: 0;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n bottom: 1px;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: #fff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n margin-left: 0.5rem;\n}\n\n.bs-popover-right > .arrow, .bs-popover-auto[x-placement^=\"right\"] > .arrow {\n left: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n left: 0;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n left: 1px;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: #fff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n margin-top: 0.5rem;\n}\n\n.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow {\n top: calc(-0.5rem - 1px);\n}\n\n.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n top: 0;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n top: 1px;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: #fff;\n}\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: \"\";\n border-bottom: 1px solid #f7f7f7;\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n margin-right: 0.5rem;\n}\n\n.bs-popover-left > .arrow, .bs-popover-auto[x-placement^=\"left\"] > .arrow {\n right: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n right: 0;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n right: 1px;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: #fff;\n}\n\n.popover-header {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n display: none;\n}\n\n.popover-body {\n padding: 0.5rem 0.75rem;\n color: #212529;\n}\n\n.carousel {\n position: relative;\n}\n\n.carousel.pointer-event {\n touch-action: pan-y;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel-inner::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n backface-visibility: hidden;\n transition: transform 0.6s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none;\n }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n transform: translateX(-100%);\n}\n\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none;\n}\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n z-index: 1;\n opacity: 1;\n}\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n z-index: 0;\n opacity: 0;\n transition: opacity 0s 0.6s;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-fade .active.carousel-item-left,\n .carousel-fade .active.carousel-item-right {\n transition: none;\n }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 15%;\n color: #fff;\n text-align: center;\n opacity: 0.5;\n transition: opacity 0.15s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-control-prev,\n .carousel-control-next {\n transition: none;\n }\n}\n\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: 0.9;\n}\n\n.carousel-control-prev {\n left: 0;\n}\n\n.carousel-control-next {\n right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background: no-repeat 50% / 100% 100%;\n}\n\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\");\n}\n\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\");\n}\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: flex;\n justify-content: center;\n padding-left: 0;\n margin-right: 15%;\n margin-left: 15%;\n list-style: none;\n}\n\n.carousel-indicators li {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #fff;\n background-clip: padding-box;\n border-top: 10px solid transparent;\n border-bottom: 10px solid transparent;\n opacity: .5;\n transition: opacity 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-indicators li {\n transition: none;\n }\n}\n\n.carousel-indicators .active {\n opacity: 1;\n}\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n}\n\n@keyframes spinner-border {\n to {\n transform: rotate(360deg);\n }\n}\n\n.spinner-border {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n border: 0.25em solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n animation: spinner-border .75s linear infinite;\n}\n\n.spinner-border-sm {\n width: 1rem;\n height: 1rem;\n border-width: 0.2em;\n}\n\n@keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n }\n}\n\n.spinner-grow {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n background-color: currentColor;\n border-radius: 50%;\n opacity: 0;\n animation: spinner-grow .75s linear infinite;\n}\n\n.spinner-grow-sm {\n width: 1rem;\n height: 1rem;\n}\n\n.align-baseline {\n vertical-align: baseline !important;\n}\n\n.align-top {\n vertical-align: top !important;\n}\n\n.align-middle {\n vertical-align: middle !important;\n}\n\n.align-bottom {\n vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n vertical-align: text-top !important;\n}\n\n.bg-primary {\n background-color: #007bff !important;\n}\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n background-color: #0062cc !important;\n}\n\n.bg-secondary {\n background-color: #6c757d !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n background-color: #545b62 !important;\n}\n\n.bg-success {\n background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n background-color: #1e7e34 !important;\n}\n\n.bg-info {\n background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n background-color: #117a8b !important;\n}\n\n.bg-warning {\n background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n background-color: #d39e00 !important;\n}\n\n.bg-danger {\n background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n background-color: #bd2130 !important;\n}\n\n.bg-light {\n background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n background-color: #1d2124 !important;\n}\n\n.bg-white {\n background-color: #fff !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n\n.border {\n border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n border: 0 !important;\n}\n\n.border-top-0 {\n border-top: 0 !important;\n}\n\n.border-right-0 {\n border-right: 0 !important;\n}\n\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n\n.border-left-0 {\n border-left: 0 !important;\n}\n\n.border-primary {\n border-color: #007bff !important;\n}\n\n.border-secondary {\n border-color: #6c757d !important;\n}\n\n.border-success {\n border-color: #28a745 !important;\n}\n\n.border-info {\n border-color: #17a2b8 !important;\n}\n\n.border-warning {\n border-color: #ffc107 !important;\n}\n\n.border-danger {\n border-color: #dc3545 !important;\n}\n\n.border-light {\n border-color: #f8f9fa !important;\n}\n\n.border-dark {\n border-color: #343a40 !important;\n}\n\n.border-white {\n border-color: #fff !important;\n}\n\n.rounded-sm {\n border-radius: 0.2rem !important;\n}\n\n.rounded {\n border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-lg {\n border-radius: 0.3rem !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-pill {\n border-radius: 50rem !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n}\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n}\n\n.embed-responsive::before {\n display: block;\n content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n\n.embed-responsive-21by9::before {\n padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n padding-top: 100%;\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n}\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.float-none {\n float: none !important;\n}\n\n@media (min-width: 576px) {\n .float-sm-left {\n float: left !important;\n }\n .float-sm-right {\n float: right !important;\n }\n .float-sm-none {\n float: none !important;\n }\n}\n\n@media (min-width: 768px) {\n .float-md-left {\n float: left !important;\n }\n .float-md-right {\n float: right !important;\n }\n .float-md-none {\n float: none !important;\n }\n}\n\n@media (min-width: 992px) {\n .float-lg-left {\n float: left !important;\n }\n .float-lg-right {\n float: right !important;\n }\n .float-lg-none {\n float: none !important;\n }\n}\n\n@media (min-width: 1200px) {\n .float-xl-left {\n float: left !important;\n }\n .float-xl-right {\n float: right !important;\n }\n .float-xl-none {\n float: none !important;\n }\n}\n\n.overflow-auto {\n overflow: auto !important;\n}\n\n.overflow-hidden {\n overflow: hidden !important;\n}\n\n.position-static {\n position: static !important;\n}\n\n.position-relative {\n position: relative !important;\n}\n\n.position-absolute {\n position: absolute !important;\n}\n\n.position-fixed {\n position: fixed !important;\n}\n\n.position-sticky {\n position: sticky !important;\n}\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n}\n\n@supports (position: sticky) {\n .sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n}\n\n.shadow-sm {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n box-shadow: none !important;\n}\n\n.w-25 {\n width: 25% !important;\n}\n\n.w-50 {\n width: 50% !important;\n}\n\n.w-75 {\n width: 75% !important;\n}\n\n.w-100 {\n width: 100% !important;\n}\n\n.w-auto {\n width: auto !important;\n}\n\n.h-25 {\n height: 25% !important;\n}\n\n.h-50 {\n height: 50% !important;\n}\n\n.h-75 {\n height: 75% !important;\n}\n\n.h-100 {\n height: 100% !important;\n}\n\n.h-auto {\n height: auto !important;\n}\n\n.mw-100 {\n max-width: 100% !important;\n}\n\n.mh-100 {\n max-height: 100% !important;\n}\n\n.min-vw-100 {\n min-width: 100vw !important;\n}\n\n.min-vh-100 {\n min-height: 100vh !important;\n}\n\n.vw-100 {\n width: 100vw !important;\n}\n\n.vh-100 {\n height: 100vh !important;\n}\n\n.stretched-link::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n pointer-events: auto;\n content: \"\";\n background-color: rgba(0, 0, 0, 0);\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-n1 {\n margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n\n.m-n4 {\n margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n .m-sm-n3 {\n margin: -1rem !important;\n }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important;\n }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important;\n }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important;\n }\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n .m-sm-n5 {\n margin: -3rem !important;\n }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important;\n }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important;\n }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n .m-md-n3 {\n margin: -1rem !important;\n }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important;\n }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important;\n }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important;\n }\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n .m-md-n5 {\n margin: -3rem !important;\n }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important;\n }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important;\n }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n .m-lg-n3 {\n margin: -1rem !important;\n }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important;\n }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important;\n }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important;\n }\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n .m-lg-n5 {\n margin: -3rem !important;\n }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important;\n }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important;\n }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n .m-xl-n3 {\n margin: -1rem !important;\n }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important;\n }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important;\n }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important;\n }\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n .m-xl-n5 {\n margin: -3rem !important;\n }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important;\n }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important;\n }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n\n.text-monospace {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !important;\n}\n\n.text-justify {\n text-align: justify !important;\n}\n\n.text-wrap {\n white-space: normal !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n@media (min-width: 576px) {\n .text-sm-left {\n text-align: left !important;\n }\n .text-sm-right {\n text-align: right !important;\n }\n .text-sm-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 768px) {\n .text-md-left {\n text-align: left !important;\n }\n .text-md-right {\n text-align: right !important;\n }\n .text-md-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 992px) {\n .text-lg-left {\n text-align: left !important;\n }\n .text-lg-right {\n text-align: right !important;\n }\n .text-lg-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 1200px) {\n .text-xl-left {\n text-align: left !important;\n }\n .text-xl-right {\n text-align: right !important;\n }\n .text-xl-center {\n text-align: center !important;\n }\n}\n\n.text-lowercase {\n text-transform: lowercase !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n.font-weight-light {\n font-weight: 300 !important;\n}\n\n.font-weight-lighter {\n font-weight: lighter !important;\n}\n\n.font-weight-normal {\n font-weight: 400 !important;\n}\n\n.font-weight-bold {\n font-weight: 700 !important;\n}\n\n.font-weight-bolder {\n font-weight: bolder !important;\n}\n\n.font-italic {\n font-style: italic !important;\n}\n\n.text-white {\n color: #fff !important;\n}\n\n.text-primary {\n color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n color: #0056b3 !important;\n}\n\n.text-secondary {\n color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n color: #494f54 !important;\n}\n\n.text-success {\n color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n color: #19692c !important;\n}\n\n.text-info {\n color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n color: #0f6674 !important;\n}\n\n.text-warning {\n color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n color: #ba8b00 !important;\n}\n\n.text-danger {\n color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n color: #a71d2a !important;\n}\n\n.text-light {\n color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n color: #cbd3da !important;\n}\n\n.text-dark {\n color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n color: #121416 !important;\n}\n\n.text-body {\n color: #212529 !important;\n}\n\n.text-muted {\n color: #6c757d !important;\n}\n\n.text-black-50 {\n color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n\n.text-decoration-none {\n text-decoration: none !important;\n}\n\n.text-break {\n word-break: break-word !important;\n overflow-wrap: break-word !important;\n}\n\n.text-reset {\n color: inherit !important;\n}\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n\n@media print {\n *,\n *::before,\n *::after {\n text-shadow: none !important;\n box-shadow: none !important;\n }\n a:not(.btn) {\n text-decoration: underline;\n }\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: 1px solid #adb5bd;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n @page {\n size: a3;\n }\n body {\n min-width: 992px !important;\n }\n .container {\n min-width: 992px !important;\n }\n .navbar {\n display: none;\n }\n .badge {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #dee2e6 !important;\n }\n .table-dark {\n color: inherit;\n }\n .table-dark th,\n .table-dark td,\n .table-dark thead th,\n .table-dark tbody + tbody {\n border-color: #dee2e6;\n }\n .table .thead-dark th {\n color: inherit;\n border-color: #dee2e6;\n }\n}\n\n/*# sourceMappingURL=bootstrap.css.map */","// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Originally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS-an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular pseudo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover() {\n &:hover { @content; }\n}\n\n@mixin hover-focus() {\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin plain-hover-focus() {\n &,\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin hover-focus-active() {\n &:hover,\n &:focus,\n &:active {\n @content;\n }\n}\n","// stylelint-disable declaration-no-important, selector-list-comma-newline-after\n\n//\n// Headings\n//\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: $headings-color;\n}\n\nh1, .h1 { @include font-size($h1-font-size); }\nh2, .h2 { @include font-size($h2-font-size); }\nh3, .h3 { @include font-size($h3-font-size); }\nh4, .h4 { @include font-size($h4-font-size); }\nh5, .h5 { @include font-size($h5-font-size); }\nh6, .h6 { @include font-size($h6-font-size); }\n\n.lead {\n @include font-size($lead-font-size);\n font-weight: $lead-font-weight;\n}\n\n// Type display classes\n.display-1 {\n @include font-size($display1-size);\n font-weight: $display1-weight;\n line-height: $display-line-height;\n}\n.display-2 {\n @include font-size($display2-size);\n font-weight: $display2-weight;\n line-height: $display-line-height;\n}\n.display-3 {\n @include font-size($display3-size);\n font-weight: $display3-weight;\n line-height: $display-line-height;\n}\n.display-4 {\n @include font-size($display4-size);\n font-weight: $display4-weight;\n line-height: $display-line-height;\n}\n\n\n//\n// Horizontal rules\n//\n\nhr {\n margin-top: $hr-margin-y;\n margin-bottom: $hr-margin-y;\n border: 0;\n border-top: $hr-border-width solid $hr-border-color;\n}\n\n\n//\n// Emphasis\n//\n\nsmall,\n.small {\n @include font-size($small-font-size);\n font-weight: $font-weight-normal;\n}\n\nmark,\n.mark {\n padding: $mark-padding;\n background-color: $mark-bg;\n}\n\n\n//\n// Lists\n//\n\n.list-unstyled {\n @include list-unstyled();\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n @include list-unstyled();\n}\n.list-inline-item {\n display: inline-block;\n\n &:not(:last-child) {\n margin-right: $list-inline-padding;\n }\n}\n\n\n//\n// Misc\n//\n\n// Builds on `abbr`\n.initialism {\n @include font-size(90%);\n text-transform: uppercase;\n}\n\n// Blockquotes\n.blockquote {\n margin-bottom: $spacer;\n @include font-size($blockquote-font-size);\n}\n\n.blockquote-footer {\n display: block;\n @include font-size($blockquote-small-font-size);\n color: $blockquote-small-color;\n\n &::before {\n content: \"\\2014\\00A0\"; // em dash, nbsp\n }\n}\n","// Lists\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n@mixin list-unstyled() {\n padding-left: 0;\n list-style: none;\n}\n","// Responsive images (ensure images don't scale beyond their parents)\n//\n// This is purposefully opt-in via an explicit class rather than being the default for all ``s.\n// We previously tried the \"images are responsive by default\" approach in Bootstrap v2,\n// and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)\n// which weren't expecting the images within themselves to be involuntarily resized.\n// See also https://github.com/twbs/bootstrap/issues/18178\n.img-fluid {\n @include img-fluid();\n}\n\n\n// Image thumbnails\n.img-thumbnail {\n padding: $thumbnail-padding;\n background-color: $thumbnail-bg;\n border: $thumbnail-border-width solid $thumbnail-border-color;\n @include border-radius($thumbnail-border-radius);\n @include box-shadow($thumbnail-box-shadow);\n\n // Keep them at most 100% wide\n @include img-fluid();\n}\n\n//\n// Figures\n//\n\n.figure {\n // Ensures the caption's text aligns with the image.\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: $spacer / 2;\n line-height: 1;\n}\n\n.figure-caption {\n @include font-size($figure-caption-font-size);\n color: $figure-caption-color;\n}\n","// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n\n@mixin img-fluid() {\n // Part 1: Set a maximum relative to the parent\n max-width: 100%;\n // Part 2: Override the height to auto, otherwise images will be stretched\n // when setting a width and height attribute on the img element.\n height: auto;\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size.\n\n@mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {\n background-image: url($file-1x);\n\n // Autoprefixer takes care of adding -webkit-min-device-pixel-ratio and -o-min-device-pixel-ratio,\n // but doesn't convert dppx=>dpi.\n // There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard.\n // Compatibility info: https://caniuse.com/#feat=css-media-resolution\n @media only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx\n only screen and (min-resolution: 2dppx) { // Standardized\n background-image: url($file-2x);\n background-size: $width-1x $height-1x;\n }\n @include deprecate(\"`img-retina()`\", \"v4.3.0\", \"v5\");\n}\n","// stylelint-disable property-blacklist\n// Single side border-radius\n\n@mixin border-radius($radius: $border-radius, $fallback-border-radius: false) {\n @if $enable-rounded {\n border-radius: $radius;\n }\n @else if $fallback-border-radius != false {\n border-radius: $fallback-border-radius;\n }\n}\n\n@mixin border-top-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n border-top-right-radius: $radius;\n }\n}\n\n@mixin border-right-radius($radius) {\n @if $enable-rounded {\n border-top-right-radius: $radius;\n border-bottom-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-radius($radius) {\n @if $enable-rounded {\n border-bottom-right-radius: $radius;\n border-bottom-left-radius: $radius;\n }\n}\n\n@mixin border-left-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n border-bottom-left-radius: $radius;\n }\n}\n\n@mixin border-top-left-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n }\n}\n\n@mixin border-top-right-radius($radius) {\n @if $enable-rounded {\n border-top-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-right-radius($radius) {\n @if $enable-rounded {\n border-bottom-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-left-radius($radius) {\n @if $enable-rounded {\n border-bottom-left-radius: $radius;\n }\n}\n","// Inline code\ncode {\n @include font-size($code-font-size);\n color: $code-color;\n word-wrap: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n}\n\n// User input typically entered via keyboard\nkbd {\n padding: $kbd-padding-y $kbd-padding-x;\n @include font-size($kbd-font-size);\n color: $kbd-color;\n background-color: $kbd-bg;\n @include border-radius($border-radius-sm);\n @include box-shadow($kbd-box-shadow);\n\n kbd {\n padding: 0;\n @include font-size(100%);\n font-weight: $nested-kbd-font-weight;\n @include box-shadow(none);\n }\n}\n\n// Blocks of code\npre {\n display: block;\n @include font-size($code-font-size);\n color: $pre-color;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n @include font-size(inherit);\n color: inherit;\n word-break: normal;\n }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n max-height: $pre-scrollable-max-height;\n overflow-y: scroll;\n}\n","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n // Single container class with breakpoint max-widths\n .container {\n @include make-container();\n @include make-container-max-widths();\n }\n\n // 100% wide container at all breakpoints\n .container-fluid {\n @include make-container();\n }\n\n // Responsive containers that are 100% wide until a breakpoint\n @each $breakpoint, $container-max-width in $container-max-widths {\n .container-#{$breakpoint} {\n @extend .container-fluid;\n }\n\n @include media-breakpoint-up($breakpoint, $grid-breakpoints) {\n %responsive-container-#{$breakpoint} {\n max-width: $container-max-width;\n }\n\n @each $name, $width in $grid-breakpoints {\n @if ($container-max-width > $width or $breakpoint == $name) {\n .container#{breakpoint-infix($name, $grid-breakpoints)} {\n @extend %responsive-container-#{$breakpoint};\n }\n }\n }\n }\n }\n}\n\n\n// Row\n//\n// Rows contain your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n }\n\n // Remove the negative margin from default .row, then the horizontal padding\n // from all immediate children columns (to prevent runaway style inheritance).\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container($gutter: $grid-gutter-width) {\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n margin-right: auto;\n margin-left: auto;\n}\n\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n}\n\n@mixin make-row($gutter: $grid-gutter-width) {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$gutter / 2;\n margin-left: -$gutter / 2;\n}\n\n@mixin make-col-ready($gutter: $grid-gutter-width) {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n\n@mixin make-col-auto() {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; // Reset earlier grid tiers\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: $size / $columns;\n margin-left: if($num == 0, 0, percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// numberof columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n & > * {\n flex: 0 0 100% / $count;\n max-width: 100% / $count;\n }\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n\n @for $i from 1 through $grid-row-columns {\n .row-cols#{$infix}-#{$i} {\n @include row-cols($i);\n }\n }\n\n .col#{$infix}-auto {\n @include make-col-auto();\n }\n\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n .order#{$infix}-first { order: -1; }\n\n .order#{$infix}-last { order: $columns + 1; }\n\n @for $i from 0 through $columns {\n .order#{$infix}-#{$i} { order: $i; }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n }\n}\n","//\n// Basic Bootstrap table\n//\n\n.table {\n width: 100%;\n margin-bottom: $spacer;\n color: $table-color;\n background-color: $table-bg; // Reset for nesting within parents with `background-color`.\n\n th,\n td {\n padding: $table-cell-padding;\n vertical-align: top;\n border-top: $table-border-width solid $table-border-color;\n }\n\n thead th {\n vertical-align: bottom;\n border-bottom: (2 * $table-border-width) solid $table-border-color;\n }\n\n tbody + tbody {\n border-top: (2 * $table-border-width) solid $table-border-color;\n }\n}\n\n\n//\n// Condensed table w/ half padding\n//\n\n.table-sm {\n th,\n td {\n padding: $table-cell-padding-sm;\n }\n}\n\n\n// Border versions\n//\n// Add or remove borders all around the table and between all the columns.\n\n.table-bordered {\n border: $table-border-width solid $table-border-color;\n\n th,\n td {\n border: $table-border-width solid $table-border-color;\n }\n\n thead {\n th,\n td {\n border-bottom-width: 2 * $table-border-width;\n }\n }\n}\n\n.table-borderless {\n th,\n td,\n thead th,\n tbody + tbody {\n border: 0;\n }\n}\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n tbody tr:nth-of-type(#{$table-striped-order}) {\n background-color: $table-accent-bg;\n }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n tbody tr {\n @include hover() {\n color: $table-hover-color;\n background-color: $table-hover-bg;\n }\n }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n@each $color, $value in $theme-colors {\n @include table-row-variant($color, theme-color-level($color, $table-bg-level), theme-color-level($color, $table-border-level));\n}\n\n@include table-row-variant(active, $table-active-bg);\n\n\n// Dark styles\n//\n// Same table markup, but inverted color scheme: dark background and light text.\n\n// stylelint-disable-next-line no-duplicate-selectors\n.table {\n .thead-dark {\n th {\n color: $table-dark-color;\n background-color: $table-dark-bg;\n border-color: $table-dark-border-color;\n }\n }\n\n .thead-light {\n th {\n color: $table-head-color;\n background-color: $table-head-bg;\n border-color: $table-border-color;\n }\n }\n}\n\n.table-dark {\n color: $table-dark-color;\n background-color: $table-dark-bg;\n\n th,\n td,\n thead th {\n border-color: $table-dark-border-color;\n }\n\n &.table-bordered {\n border: 0;\n }\n\n &.table-striped {\n tbody tr:nth-of-type(#{$table-striped-order}) {\n background-color: $table-dark-accent-bg;\n }\n }\n\n &.table-hover {\n tbody tr {\n @include hover() {\n color: $table-dark-hover-color;\n background-color: $table-dark-hover-bg;\n }\n }\n }\n}\n\n\n// Responsive tables\n//\n// Generate series of `.table-responsive-*` classes for configuring the screen\n// size of where your table will overflow.\n\n.table-responsive {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $next: breakpoint-next($breakpoint, $grid-breakpoints);\n $infix: breakpoint-infix($next, $grid-breakpoints);\n\n &#{$infix} {\n @include media-breakpoint-down($breakpoint) {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n\n // Prevent double border on horizontal scroll due to use of `display: block;`\n > .table-bordered {\n border: 0;\n }\n }\n }\n }\n}\n","// Tables\n\n@mixin table-row-variant($state, $background, $border: null) {\n // Exact selectors below required to override `.table-striped` and prevent\n // inheritance to nested tables.\n .table-#{$state} {\n &,\n > th,\n > td {\n background-color: $background;\n }\n\n @if $border != null {\n th,\n td,\n thead th,\n tbody + tbody {\n border-color: $border;\n }\n }\n }\n\n // Hover states for `.table-hover`\n // Note: this is not available for cells or rows within `thead` or `tfoot`.\n .table-hover {\n $hover-background: darken($background, 5%);\n\n .table-#{$state} {\n @include hover() {\n background-color: $hover-background;\n\n > td,\n > th {\n background-color: $hover-background;\n }\n }\n }\n }\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Textual form controls\n//\n\n.form-control {\n display: block;\n width: 100%;\n height: $input-height;\n padding: $input-padding-y $input-padding-x;\n font-family: $input-font-family;\n @include font-size($input-font-size);\n font-weight: $input-font-weight;\n line-height: $input-line-height;\n color: $input-color;\n background-color: $input-bg;\n background-clip: padding-box;\n border: $input-border-width solid $input-border-color;\n\n // Note: This has no effect on `s in CSS.\n @include border-radius($input-border-radius, 0);\n\n @include box-shadow($input-box-shadow);\n @include transition($input-transition);\n\n // Unstyle the caret on ` receives focus\n // in IE and (under certain conditions) Edge, as it looks bad and cannot be made to\n // match the appearance of the native widget.\n // See https://github.com/twbs/bootstrap/issues/19398.\n color: $input-color;\n background-color: $input-bg;\n }\n}\n\n// Make file inputs better match text inputs by forcing them to new lines.\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n\n//\n// Labels\n//\n\n// For use with horizontal and inline forms, when you need the label (or legend)\n// text to align with the form controls.\n.col-form-label {\n padding-top: add($input-padding-y, $input-border-width);\n padding-bottom: add($input-padding-y, $input-border-width);\n margin-bottom: 0; // Override the `
","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]};bf.optgroup=bf.option,bf.tbody=bf.tfoot=bf.colgroup=bf.caption=bf.thead,bf.th=bf.td,f.support.htmlSerialize||(bf._default=[1,"div
","
"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(X,""):null;if(typeof a=="string"&&!bb.test(a)&&(f.support.leadingWhitespace||!Y.test(a))&&!bf[($.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Z,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j -)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bi(a,d),e=bj(a),g=bj(d);for(h=0;e[h];++h)bi(e[h],g[h])}if(b){bh(a,d);if(c){e=bj(a),g=bj(d);for(h=0;e[h];++h)bh(e[h],g[h])}}e=g=null;return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!ba.test(k))k=b.createTextNode(k);else{k=k.replace(Z,"<$1>");var l=($.exec(k)||["",""])[1].toLowerCase(),m=bf[l]||bf._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=_.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&Y.test(k)&&o.insertBefore(b.createTextNode(Y.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bo.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle;c.zoom=1;var e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.filter=bn.test(g)?g.replace(bn,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bx(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(by=function(a,c){var d,e,g;c=c.replace(bp,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bz=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bq.test(d)&&br.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bx=by||bz,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bB=/%20/g,bC=/\[\]$/,bD=/\r?\n/g,bE=/#.*$/,bF=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bG=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bH=/^(?:about|app|app\-storage|.+\-extension|file|widget):$/,bI=/^(?:GET|HEAD)$/,bJ=/^\/\//,bK=/\?/,bL=/)<[^<]*)*<\/script>/gi,bM=/^(?:select|textarea)/i,bN=/\s+/,bO=/([?&])_=[^&]*/,bP=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bQ=f.fn.load,bR={},bS={},bT,bU;try{bT=e.href}catch(bV){bT=c.createElement("a"),bT.href="",bT=bT.href}bU=bP.exec(bT.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bQ)return bQ.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
").append(c.replace(bL,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bM.test(this.nodeName)||bG.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bD,"\r\n")}}):{name:b.name,value:c.replace(bD,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?f.extend(!0,a,f.ajaxSettings,b):(b=a,a=f.extend(!0,f.ajaxSettings,b));for(var c in{context:1,url:1})c in b?a[c]=b[c]:c in f.ajaxSettings&&(a[c]=f.ajaxSettings[c]);return a},ajaxSettings:{url:bT,isLocal:bH.test(bU[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML}},ajaxPrefilter:bW(bR),ajaxTransport:bW(bS),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a?4:0;var o,r,u,w=l?bZ(d,v,l):b,x,y;if(a>=200&&a<300||a===304){if(d.ifModified){if(x=v.getResponseHeader("Last-Modified"))f.lastModified[k]=x;if(y=v.getResponseHeader("Etag"))f.etag[k]=y}if(a===304)c="notmodified",o=!0;else try{r=b$(d,w),c="success",o=!0}catch(z){c="parsererror",u=z}}else{u=c;if(!c||a)c="error",a<0&&(a=0)}v.status=a,v.statusText=c,o?h.resolveWith(e,[r,c,v]):h.rejectWith(e,[v,c,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,c]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bF.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bE,"").replace(bJ,bU[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bN),d.crossDomain==null&&(r=bP.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bU[1]&&r[2]==bU[2]&&(r[3]||(r[1]==="http:"?80:443))==(bU[3]||(bU[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bX(bR,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bI.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bK.test(d.url)?"&":"?")+d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bO,"$1_="+x);d.url=y+(y===d.url?(bK.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", */*; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bX(bS,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){status<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)bY(g,a[g],c,e);return d.join("&").replace(bB,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var b_=f.now(),ca=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+b_++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ca.test(b.url)||e&&ca.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ca,l),b.url===j&&(e&&(k=k.replace(ca,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cb=a.ActiveXObject?function(){for(var a in cd)cd[a](0,1)}:!1,cc=0,cd;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ce()||cf()}:ce,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cb&&delete cd[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cc,cb&&(cd||(cd={},f(a).unload(cb)),cd[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cg={},ch,ci,cj=/^(?:toggle|show|hide)$/,ck=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cl,cm=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cn,co=a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cr("show",3),a,b,c);for(var g=0,h=this.length;g=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide||e.show)for(var i in e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){for(var a=f.timers,b=0;b
";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,e.style.position="fixed",e.style.top="20px",this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cu.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cu.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cv(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cv(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a&&a.style?parseFloat(f.css(a,d,"padding")):null},f.fn["outer"+c]=function(a){var b=this[0];return b&&b.style?parseFloat(f.css(b,d,a?"margin":"border")):null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c];return e.document.compatMode==="CSS1Compat"&&g||e.document.body["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var h=f.css(e,d),i=parseFloat(h);return f.isNaN(i)?h:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window); \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/jquery.ztree.core.js b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/jquery.ztree.core.js deleted file mode 100644 index 0b01dc88..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/jquery.ztree.core.js +++ /dev/null @@ -1,75 +0,0 @@ -/* - * JQuery zTree core v3.5.40 - * http://treejs.cn/ - * - * Copyright (c) 2010 Hunter.z - * - * Licensed same as jquery - MIT License - * http://www.opensource.org/licenses/mit-license.php - * - * email: hunter.z@263.net - * Date: 2019-01-18 - */ -(function(r){var J,K,L,M,N,O,v,t={},w={},x={},P={treeId:"",treeObj:null,view:{addDiyDom:null,autoCancelSelected:!0,dblClickExpand:!0,expandSpeed:"fast",fontCss:{},nameIsHTML:!1,selectedMulti:!0,showIcon:!0,showLine:!0,showTitle:!0,txtSelectedEnable:!1},data:{key:{isParent:"isParent",children:"children",name:"name",title:"",url:"url",icon:"icon"},simpleData:{enable:!1,idKey:"id",pIdKey:"pId",rootPId:null},keep:{parent:!1,leaf:!1}},async:{enable:!1,contentType:"application/x-www-form-urlencoded",type:"post", -dataType:"text",headers:{},xhrFields:{},url:"",autoParam:[],otherParam:[],dataFilter:null},callback:{beforeAsync:null,beforeClick:null,beforeDblClick:null,beforeRightClick:null,beforeMouseDown:null,beforeMouseUp:null,beforeExpand:null,beforeCollapse:null,beforeRemove:null,onAsyncError:null,onAsyncSuccess:null,onNodeCreated:null,onClick:null,onDblClick:null,onRightClick:null,onMouseDown:null,onMouseUp:null,onExpand:null,onCollapse:null,onRemove:null}},y=[function(a){var b=a.treeObj,c=g.event;b.bind(c.NODECREATED, -function(b,c,i){h.apply(a.callback.onNodeCreated,[b,c,i])});b.bind(c.CLICK,function(b,c,i,e,k){h.apply(a.callback.onClick,[c,i,e,k])});b.bind(c.EXPAND,function(b,c,i){h.apply(a.callback.onExpand,[b,c,i])});b.bind(c.COLLAPSE,function(b,c,i){h.apply(a.callback.onCollapse,[b,c,i])});b.bind(c.ASYNC_SUCCESS,function(b,c,i,e){h.apply(a.callback.onAsyncSuccess,[b,c,i,e])});b.bind(c.ASYNC_ERROR,function(b,c,i,e,k,g){h.apply(a.callback.onAsyncError,[b,c,i,e,k,g])});b.bind(c.REMOVE,function(b,c,i){h.apply(a.callback.onRemove, -[b,c,i])});b.bind(c.SELECTED,function(b,c,i){h.apply(a.callback.onSelected,[c,i])});b.bind(c.UNSELECTED,function(b,c,i){h.apply(a.callback.onUnSelected,[c,i])})}],z=[function(a){var b=g.event;a.treeObj.unbind(b.NODECREATED).unbind(b.CLICK).unbind(b.EXPAND).unbind(b.COLLAPSE).unbind(b.ASYNC_SUCCESS).unbind(b.ASYNC_ERROR).unbind(b.REMOVE).unbind(b.SELECTED).unbind(b.UNSELECTED)}],A=[function(a){var b=e.getCache(a);b||(b={},e.setCache(a,b));b.nodes=[];b.doms=[]}],B=[function(a,b,c,d,f,i){if(c){var m= -e.getRoot(a),k=e.nodeChildren(a,c);c.level=b;c.tId=a.treeId+"_"+ ++m.zId;c.parentTId=d?d.tId:null;c.open=typeof c.open=="string"?h.eqs(c.open,"true"):!!c.open;b=e.nodeIsParent(a,c);h.isArray(k)?(e.nodeIsParent(a,c,!0),c.zAsync=!0):(b=e.nodeIsParent(a,c,b),c.open=b&&!a.async.enable?c.open:!1,c.zAsync=!b);c.isFirstNode=f;c.isLastNode=i;c.getParentNode=function(){return e.getNodeCache(a,c.parentTId)};c.getPreNode=function(){return e.getPreNode(a,c)};c.getNextNode=function(){return e.getNextNode(a,c)}; -c.getIndex=function(){return e.getNodeIndex(a,c)};c.getPath=function(){return e.getNodePath(a,c)};c.isAjaxing=!1;e.fixPIdKeyValue(a,c)}}],u=[function(a){var b=a.target,c=e.getSetting(a.data.treeId),d="",f=null,i="",m="",k=null,j=null,o=null;if(h.eqs(a.type,"mousedown"))m="mousedown";else if(h.eqs(a.type,"mouseup"))m="mouseup";else if(h.eqs(a.type,"contextmenu"))m="contextmenu";else if(h.eqs(a.type,"click"))if(h.eqs(b.tagName,"span")&&b.getAttribute("treeNode"+g.id.SWITCH)!==null)d=h.getNodeMainDom(b).id, -i="switchNode";else{if(o=h.getMDom(c,b,[{tagName:"a",attrName:"treeNode"+g.id.A}]))d=h.getNodeMainDom(o).id,i="clickNode"}else if(h.eqs(a.type,"dblclick")&&(m="dblclick",o=h.getMDom(c,b,[{tagName:"a",attrName:"treeNode"+g.id.A}])))d=h.getNodeMainDom(o).id,i="switchNode";if(m.length>0&&d.length==0&&(o=h.getMDom(c,b,[{tagName:"a",attrName:"treeNode"+g.id.A}])))d=h.getNodeMainDom(o).id;if(d.length>0)switch(f=e.getNodeCache(c,d),i){case "switchNode":e.nodeIsParent(c,f)?h.eqs(a.type,"click")||h.eqs(a.type, -"dblclick")&&h.apply(c.view.dblClickExpand,[c.treeId,f],c.view.dblClickExpand)?k=J:i="":i="";break;case "clickNode":k=K}switch(m){case "mousedown":j=L;break;case "mouseup":j=M;break;case "dblclick":j=N;break;case "contextmenu":j=O}return{stop:!1,node:f,nodeEventType:i,nodeEventCallback:k,treeEventType:m,treeEventCallback:j}}],C=[function(a){var b=e.getRoot(a);b||(b={},e.setRoot(a,b));e.nodeChildren(a,b,[]);b.expandTriggerFlag=!1;b.curSelectedList=[];b.noSelection=!0;b.createdNodes=[];b.zId=0;b._ver= -(new Date).getTime()}],D=[],E=[],F=[],G=[],H=[],e={addNodeCache:function(a,b){e.getCache(a).nodes[e.getNodeCacheId(b.tId)]=b},getNodeCacheId:function(a){return a.substring(a.lastIndexOf("_")+1)},addAfterA:function(a){E.push(a)},addBeforeA:function(a){D.push(a)},addInnerAfterA:function(a){G.push(a)},addInnerBeforeA:function(a){F.push(a)},addInitBind:function(a){y.push(a)},addInitUnBind:function(a){z.push(a)},addInitCache:function(a){A.push(a)},addInitNode:function(a){B.push(a)},addInitProxy:function(a, -b){b?u.splice(0,0,a):u.push(a)},addInitRoot:function(a){C.push(a)},addNodesData:function(a,b,c,d){var f=e.nodeChildren(a,b);f?c>=f.length&&(c=-1):(f=e.nodeChildren(a,b,[]),c=-1);if(f.length>0&&c===0)f[0].isFirstNode=!1,j.setNodeLineIcos(a,f[0]);else if(f.length>0&&c<0)f[f.length-1].isLastNode=!1,j.setNodeLineIcos(a,f[f.length-1]);e.nodeIsParent(a,b,!0);c<0?e.nodeChildren(a,b,f.concat(d)):(a=[c,0].concat(d),f.splice.apply(f,a))},addSelectedNode:function(a,b){var c=e.getRoot(a);e.isSelectedNode(a,b)|| -c.curSelectedList.push(b)},addCreatedNode:function(a,b){(a.callback.onNodeCreated||a.view.addDiyDom)&&e.getRoot(a).createdNodes.push(b)},addZTreeTools:function(a){H.push(a)},exSetting:function(a){r.extend(!0,P,a)},fixPIdKeyValue:function(a,b){a.data.simpleData.enable&&(b[a.data.simpleData.pIdKey]=b.parentTId?b.getParentNode()[a.data.simpleData.idKey]:a.data.simpleData.rootPId)},getAfterA:function(a,b,c){for(var d=0,e=E.length;d-1&&f.push(k);k=e.nodeChildren(a, -k);f=f.concat(e.getNodesByParamFuzzy(a,k,c,d))}return f},getNodesByFilter:function(a,b,c,d,f){if(!b)return d?null:[];for(var i=d?null:[],m=0,k=b.length;m0)},clone:function(a){if(a===null)return null;var b=h.isArray(a)?[]:{},c;for(c in a)b[c]=a[c]instanceof Date?new Date(a[c].getTime()):typeof a[c]==="object"?h.clone(a[c]):a[c];return b},eqs:function(a,b){return a.toLowerCase()===b.toLowerCase()},isArray:function(a){return Object.prototype.toString.apply(a)==="[object Array]"},isElement:function(a){return typeof HTMLElement==="object"?a instanceof HTMLElement:a&&typeof a==="object"&&a!==null&& -a.nodeType===1&&typeof a.nodeName==="string"},$:function(a,b,c){b&&typeof b!="string"&&(c=b,b="");return typeof a=="string"?r(a,c?c.treeObj.get(0).ownerDocument:null):r("#"+a.tId+b,c?c.treeObj:null)},getMDom:function(a,b,c){if(!b)return null;for(;b&&b.id!==a.treeId;){for(var d=0,e=c.length;b.tagName&&d0},uCanDo:function(){return!0}},j={addNodes:function(a,b,c,d,f){var i=e.nodeIsParent(a,b);if(!a.data.keep.leaf||!b||i)if(h.isArray(d)||(d=[d]),a.data.simpleData.enable&&(d=e.transformTozTreeFormat(a,d)),b){var i=l(b,g.id.SWITCH,a),m=l(b,g.id.ICON,a),k=l(b,g.id.UL,a);if(!b.open)j.replaceSwitchClass(b,i,g.folder.CLOSE),j.replaceIcoClass(b,m,g.folder.CLOSE),b.open=!1,k.css({display:"none"});e.addNodesData(a,b,c,d);j.createNodes(a,b.level+ -1,d,b,c);f||j.expandCollapseParentNode(a,b,!0)}else e.addNodesData(a,e.getRoot(a),c,d),j.createNodes(a,0,d,null,c)},appendNodes:function(a,b,c,d,f,i,g){if(!c)return[];var k=[],h=d?d:e.getRoot(a),h=e.nodeChildren(a,h),o,l;if(!h||f>=h.length-c.length)f=-1;for(var s=0,n=c.length;s0&&(l=j.appendNodes(a,b+1,I,p,-1, -i,g&&p.open));g&&(j.makeDOMNodeMainBefore(k,a,p),j.makeDOMNodeLine(k,a,p),e.getBeforeA(a,p,k),j.makeDOMNodeNameBefore(k,a,p),e.getInnerBeforeA(a,p,k),j.makeDOMNodeIcon(k,a,p),e.getInnerAfterA(a,p,k),j.makeDOMNodeNameAfter(k,a,p),e.getAfterA(a,p,k),o&&p.open&&j.makeUlHtml(a,p,k,l.join("")),j.makeDOMNodeMainAfter(k,a,p),e.addCreatedNode(a,p))}return k},appendParentULDom:function(a,b){var c=[],d=l(b,a);!d.get(0)&&b.parentTId&&(j.appendParentULDom(a,b.getParentNode()),d=l(b,a));var f=l(b,g.id.UL,a);f.get(0)&& -f.remove();f=e.nodeChildren(a,b);f=j.appendNodes(a,b.level+1,f,b,-1,!1,!0);j.makeUlHtml(a,b,c,f.join(""));d.append(c.join(""))},asyncNode:function(a,b,c,d){var f,i;f=e.nodeIsParent(a,b);if(b&&!f)return h.apply(d),!1;else if(b&&b.isAjaxing)return!1;else if(h.apply(a.callback.beforeAsync,[a.treeId,b],!0)==!1)return h.apply(d),!1;if(b)b.isAjaxing=!0,l(b,g.id.ICON,a).attr({style:"","class":g.className.BUTTON+" "+g.className.ICO_LOADING});var m={},k=h.apply(a.async.autoParam,[a.treeId,b],a.async.autoParam); -for(f=0,i=k.length;b&&f1&&(o=q[1],q=q[0]);m[o]=b[q]}k=h.apply(a.async.otherParam,[a.treeId,b],a.async.otherParam);if(h.isArray(k))for(f=0,i=k.length;f-1?JSON.stringify(m):m,dataType:a.async.dataType,headers:a.async.headers, -xhrFields:a.async.xhrFields,success:function(i){if(s==e.getRoot(a)._ver){var f=[];try{f=!i||i.length==0?[]:typeof i=="string"?eval("("+i+")"):i}catch(k){f=i}if(b)b.isAjaxing=null,b.zAsync=!0;j.setNodeLineIcos(a,b);f&&f!==""?(f=h.apply(a.async.dataFilter,[a.treeId,b,f],f),j.addNodes(a,b,-1,f?h.clone(f):[],!!c)):j.addNodes(a,b,-1,[],!!c);a.treeObj.trigger(g.event.ASYNC_SUCCESS,[a.treeId,b,i]);h.apply(d)}},error:function(c,d,i){if(s==e.getRoot(a)._ver){if(b)b.isAjaxing=null;j.setNodeLineIcos(a,b);a.treeObj.trigger(g.event.ASYNC_ERROR, -[a.treeId,b,c,d,i])}}});return!0},cancelPreSelectedNode:function(a,b,c){var d=e.getRoot(a).curSelectedList,f,i;for(f=d.length-1;f>=0;f--)if(i=d[f],b===i||!b&&(!c||c!==i))if(l(i,g.id.A,a).removeClass(g.node.CURSELECTED),b){e.removeSelectedNode(a,b);break}else d.splice(f,1),a.treeObj.trigger(g.event.UNSELECTED,[a.treeId,i])},createNodeCallback:function(a){if(a.callback.onNodeCreated||a.view.addDiyDom)for(var b=e.getRoot(a);b.createdNodes.length>0;){var c=b.createdNodes.shift();h.apply(a.view.addDiyDom, -[a.treeId,c]);a.callback.onNodeCreated&&a.treeObj.trigger(g.event.NODECREATED,[a.treeId,c])}},createNodes:function(a,b,c,d,f){if(c&&c.length!=0){var i=e.getRoot(a),m=!d||d.open||!!l(e.nodeChildren(a,d)[0],a).get(0);i.createdNodes=[];var b=j.appendNodes(a,b,c,d,f,!0,m),k,h;d?(d=l(d,g.id.UL,a),d.get(0)&&(k=d)):k=a.treeObj;k&&(f>=0&&(h=k.children()[f]),f>=0&&h?r(h).before(b.join("")):k.append(b.join("")));j.createNodeCallback(a)}},destroy:function(a){a&&(e.initCache(a),e.initRoot(a),n.unbindTree(a), -n.unbindEvent(a),a.treeObj.empty(),delete t[a.treeId])},expandCollapseNode:function(a,b,c,d,f){var i=e.getRoot(a),m;if(b){var k=e.nodeChildren(a,b),q=e.nodeIsParent(a,b);if(i.expandTriggerFlag)m=f,f=function(){m&&m();b.open?a.treeObj.trigger(g.event.EXPAND,[a.treeId,b]):a.treeObj.trigger(g.event.COLLAPSE,[a.treeId,b])},i.expandTriggerFlag=!1;if(!b.open&&q&&(!l(b,g.id.UL,a).get(0)||k&&k.length>0&&!l(k[0],a).get(0)))j.appendParentULDom(a,b),j.createNodeCallback(a);if(b.open==c)h.apply(f,[]);else{var c= -l(b,g.id.UL,a),i=l(b,g.id.SWITCH,a),o=l(b,g.id.ICON,a);q?(b.open=!b.open,b.iconOpen&&b.iconClose&&o.attr("style",j.makeNodeIcoStyle(a,b)),b.open?(j.replaceSwitchClass(b,i,g.folder.OPEN),j.replaceIcoClass(b,o,g.folder.OPEN),d==!1||a.view.expandSpeed==""?(c.show(),h.apply(f,[])):k&&k.length>0?c.slideDown(a.view.expandSpeed,f):(c.show(),h.apply(f,[]))):(j.replaceSwitchClass(b,i,g.folder.CLOSE),j.replaceIcoClass(b,o,g.folder.CLOSE),d==!1||a.view.expandSpeed==""||!(k&&k.length>0)?(c.hide(),h.apply(f,[])): -c.slideUp(a.view.expandSpeed,f))):h.apply(f,[])}}else h.apply(f,[])},expandCollapseParentNode:function(a,b,c,d,e){b&&(b.parentTId?(j.expandCollapseNode(a,b,c,d),b.parentTId&&j.expandCollapseParentNode(a,b.getParentNode(),c,d,e)):j.expandCollapseNode(a,b,c,d,e))},expandCollapseSonNode:function(a,b,c,d,f){var i=e.getRoot(a),i=b?e.nodeChildren(a,b):e.nodeChildren(a,i),g=b?!1:d,k=e.getRoot(a).expandTriggerFlag;e.getRoot(a).expandTriggerFlag=!1;if(i)for(var h=0,l=i.length;h=0;d--)if(b===c[d])return!0;return!1},makeDOMNodeIcon:function(a,b,c){var d=e.nodeName(b,c),d=b.view.nameIsHTML?d:d.replace(/&/g,"&").replace(//g,">");a.push("",d,"")},makeDOMNodeLine:function(a,b,c){a.push("")},makeDOMNodeMainAfter:function(a){a.push("")},makeDOMNodeMainBefore:function(a,b,c){a.push("
  • ")},makeDOMNodeNameAfter:function(a){a.push("")},makeDOMNodeNameBefore:function(a,b,c){var d= -e.nodeTitle(b,c),f=j.makeNodeUrl(b,c),i=j.makeNodeFontCss(b,c),m=[],k;for(k in i)m.push(k,":",i[k],";");a.push("0?"href='"+f+"'":""," target='",j.makeNodeTarget(c),"' style='",m.join(""),"'");h.apply(b.view.showTitle,[b.treeId,c],b.view.showTitle)&&d&&a.push("title='",d.replace(/'/g,"'").replace(//g,">"),"'");a.push(">")},makeNodeFontCss:function(a, -b){var c=h.apply(a.view.fontCss,[a.treeId,b],a.view.fontCss);return c&&typeof c!="function"?c:{}},makeNodeIcoClass:function(a,b){var c=["ico"];if(!b.isAjaxing){var d=e.nodeIsParent(a,b);c[0]=(b.iconSkin?b.iconSkin+"_":"")+c[0];d?c.push(b.open?g.folder.OPEN:g.folder.CLOSE):c.push(g.folder.DOCU)}return g.className.BUTTON+" "+c.join("_")},makeNodeIcoStyle:function(a,b){var c=[];if(!b.isAjaxing){var d=e.nodeIsParent(a,b)&&b.iconOpen&&b.iconClose?b.open?b.iconOpen:b.iconClose:b[a.data.key.icon];d&&c.push("background:url(", -d,") 0 0 no-repeat;");(a.view.showIcon==!1||!h.apply(a.view.showIcon,[a.treeId,b],!0))&&c.push("width:0px;height:0px;")}return c.join("")},makeNodeLineClass:function(a,b){var c=[];a.view.showLine?b.level==0&&b.isFirstNode&&b.isLastNode?c.push(g.line.ROOT):b.level==0&&b.isFirstNode?c.push(g.line.ROOTS):b.isLastNode?c.push(g.line.BOTTOM):c.push(g.line.CENTER):c.push(g.line.NOLINE);e.nodeIsParent(a,b)?c.push(b.open?g.folder.OPEN:g.folder.CLOSE):c.push(g.folder.DOCU);return j.makeNodeLineClassEx(b)+c.join("_")}, -makeNodeLineClassEx:function(a){return g.className.BUTTON+" "+g.className.LEVEL+a.level+" "+g.className.SWITCH+" "},makeNodeTarget:function(a){return a.target||"_blank"},makeNodeUrl:function(a,b){var c=a.data.key.url;return b[c]?b[c]:null},makeUlHtml:function(a,b,c,d){c.push("
      ");c.push(d);c.push("
    ")},makeUlLineClass:function(a,b){return a.view.showLine&&!b.isLastNode? -g.line.LINE:""},removeChildNodes:function(a,b){if(b){var c=e.nodeChildren(a,b);if(c){for(var d=0,f=c.length;dc.bottom||d.right>c.right||d.left0)c[0].isFirstNode= -!0},setLastNode:function(a,b){var c=e.nodeChildren(a,b);if(c.length>0)c[c.length-1].isLastNode=!0},removeNode:function(a,b){var c=e.getRoot(a),d=b.parentTId?b.getParentNode():c;b.isFirstNode=!1;b.isLastNode=!1;b.getPreNode=function(){return null};b.getNextNode=function(){return null};if(e.getNodeCache(a,b.tId)){l(b,a).remove();e.removeNodeCache(a,b);e.removeSelectedNode(a,b);for(var f=e.nodeChildren(a,d),i=0,h=f.length;i0){var q=f[i-1],i=l(q,g.id.UL,a),h=l(q,g.id.SWITCH,a);k=l(q,g.id.ICON,a);d==c?f.length==1?j.replaceSwitchClass(q,h,g.line.ROOT):(c=l(f[0],g.id.SWITCH,a),j.replaceSwitchClass(f[0],c,g.line.ROOTS),j.replaceSwitchClass(q, -h,g.line.BOTTOM)):j.replaceSwitchClass(q,h,g.line.BOTTOM);i.removeClass(g.line.LINE)}}},replaceIcoClass:function(a,b,c){if(b&&!a.isAjaxing&&(a=b.attr("class"),a!=void 0)){a=a.split("_");switch(c){case g.folder.OPEN:case g.folder.CLOSE:case g.folder.DOCU:a[a.length-1]=c}b.attr("class",a.join("_"))}},replaceSwitchClass:function(a,b,c){if(b){var d=b.attr("class");if(d!=void 0){d=d.split("_");switch(c){case g.line.ROOT:case g.line.ROOTS:case g.line.CENTER:case g.line.BOTTOM:case g.line.NOLINE:d[0]=j.makeNodeLineClassEx(a)+ -c;break;case g.folder.OPEN:case g.folder.CLOSE:case g.folder.DOCU:d[1]=c}b.attr("class",d.join("_"));c!==g.folder.DOCU?b.removeAttr("disabled"):b.attr("disabled","disabled")}}},selectNode:function(a,b,c){c||j.cancelPreSelectedNode(a,null,b);l(b,g.id.A,a).addClass(g.node.CURSELECTED);e.addSelectedNode(a,b);a.treeObj.trigger(g.event.SELECTED,[a.treeId,b])},setNodeFontCss:function(a,b){var c=l(b,g.id.A,a),d=j.makeNodeFontCss(a,b);d&&c.css(d)},setNodeLineIcos:function(a,b){if(b){var c=l(b,g.id.SWITCH, -a),d=l(b,g.id.UL,a),f=l(b,g.id.ICON,a),i=j.makeUlLineClass(a,b);i.length==0?d.removeClass(g.line.LINE):d.addClass(i);c.attr("class",j.makeNodeLineClass(a,b));e.nodeIsParent(a,b)?c.removeAttr("disabled"):c.attr("disabled","disabled");f.removeAttr("style");f.attr("style",j.makeNodeIcoStyle(a,b));f.attr("class",j.makeNodeIcoClass(a,b))}},setNodeName:function(a,b){var c=e.nodeTitle(a,b),d=l(b,g.id.SPAN,a);d.empty();a.view.nameIsHTML?d.html(e.nodeName(a,b)):d.text(e.nodeName(a,b));h.apply(a.view.showTitle, -[a.treeId,b],a.view.showTitle)&&l(b,g.id.A,a).attr("title",!c?"":c)},setNodeTarget:function(a,b){l(b,g.id.A,a).attr("target",j.makeNodeTarget(b))},setNodeUrl:function(a,b){var c=l(b,g.id.A,a),d=j.makeNodeUrl(a,b);d==null||d.length==0?c.removeAttr("href"):c.attr("href",d)},switchNode:function(a,b){b.open||!h.canAsync(a,b)?j.expandCollapseNode(a,b,!b.open):a.async.enable?j.asyncNode(a,b)||j.expandCollapseNode(a,b,!b.open):b&&j.expandCollapseNode(a,b,!b.open)}};r.fn.zTree={consts:{className:{BUTTON:"button", -LEVEL:"level",ICO_LOADING:"ico_loading",SWITCH:"switch",NAME:"node_name"},event:{NODECREATED:"ztree_nodeCreated",CLICK:"ztree_click",EXPAND:"ztree_expand",COLLAPSE:"ztree_collapse",ASYNC_SUCCESS:"ztree_async_success",ASYNC_ERROR:"ztree_async_error",REMOVE:"ztree_remove",SELECTED:"ztree_selected",UNSELECTED:"ztree_unselected"},id:{A:"_a",ICON:"_ico",SPAN:"_span",SWITCH:"_switch",UL:"_ul"},line:{ROOT:"root",ROOTS:"roots",CENTER:"center",BOTTOM:"bottom",NOLINE:"noline",LINE:"line"},folder:{OPEN:"open", -CLOSE:"close",DOCU:"docu"},node:{CURSELECTED:"curSelectedNode"}},_z:{tools:h,view:j,event:n,data:e},getZTreeObj:function(a){return(a=e.getZTreeTools(a))?a:null},destroy:function(a){if(a&&a.length>0)j.destroy(e.getSetting(a));else for(var b in t)j.destroy(t[b])},init:function(a,b,c){var d=h.clone(P);r.extend(!0,d,b);d.treeId=a.attr("id");d.treeObj=a;d.treeObj.empty();t[d.treeId]=d;if(typeof document.body.style.maxHeight==="undefined")d.view.expandSpeed="";e.initRoot(d);a=e.getRoot(d);c=c?h.clone(h.isArray(c)? -c:[c]):[];d.data.simpleData.enable?e.nodeChildren(d,a,e.transformTozTreeFormat(d,c)):e.nodeChildren(d,a,c);e.initCache(d);n.unbindTree(d);n.bindTree(d);n.unbindEvent(d);n.bindEvent(d);var f={setting:d,addNodes:function(a,b,c,f){function g(){j.addNodes(d,a,b,n,f==!0)}a||(a=null);var l=e.nodeIsParent(d,a);if(a&&!l&&d.data.keep.leaf)return null;l=parseInt(b,10);isNaN(l)?(f=!!c,c=b,b=-1):b=l;if(!c)return null;var n=h.clone(h.isArray(c)?c:[c]);h.canAsync(d,a)?j.asyncNode(d,a,f,g):g();return n},cancelSelectedNode:function(a){j.cancelPreSelectedNode(d, -a)},destroy:function(){j.destroy(d)},expandAll:function(a){a=!!a;j.expandCollapseSonNode(d,null,a,!0);return a},expandNode:function(a,b,c,f,g){function n(){var b=l(a,d).get(0);b&&f!==!1&&j.scrollIntoView(d,b)}if(!a||!e.nodeIsParent(d,a))return null;b!==!0&&b!==!1&&(b=!a.open);if((g=!!g)&&b&&h.apply(d.callback.beforeExpand,[d.treeId,a],!0)==!1)return null;else if(g&&!b&&h.apply(d.callback.beforeCollapse,[d.treeId,a],!0)==!1)return null;b&&a.parentTId&&j.expandCollapseParentNode(d,a.getParentNode(), -b,!1);if(b===a.open&&!c)return null;e.getRoot(d).expandTriggerFlag=g;!h.canAsync(d,a)&&c?j.expandCollapseSonNode(d,a,b,!0,n):(a.open=!b,j.switchNode(this.setting,a),n());return b},getNodes:function(){return e.getNodes(d)},getNodeByParam:function(a,b,c){return!a?null:e.getNodeByParam(d,c?e.nodeChildren(d,c):e.getNodes(d),a,b)},getNodeByTId:function(a){return e.getNodeCache(d,a)},getNodesByParam:function(a,b,c){return!a?null:e.getNodesByParam(d,c?e.nodeChildren(d,c):e.getNodes(d),a,b)},getNodesByParamFuzzy:function(a, -b,c){return!a?null:e.getNodesByParamFuzzy(d,c?e.nodeChildren(d,c):e.getNodes(d),a,b)},getNodesByFilter:function(a,b,c,f){b=!!b;return!a||typeof a!="function"?b?null:[]:e.getNodesByFilter(d,c?e.nodeChildren(d,c):e.getNodes(d),a,b,f)},getNodeIndex:function(a){if(!a)return null;for(var b=a.parentTId?a.getParentNode():e.getRoot(d),b=e.nodeChildren(d,b),c=0,f=b.length;c0?j.createNodes(d,0,c,null,-1):d.async.enable&&d.async.url&&d.async.url!==""&&j.asyncNode(d);return f}};var Q=r.fn.zTree,l=h.$,g=Q.consts})(jQuery); diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/zTreeStyleForApi.css b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/zTreeStyleForApi.css deleted file mode 100644 index bb4717bc..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/zTreeStyleForApi.css +++ /dev/null @@ -1,49 +0,0 @@ -/*------------------------------------- -zTree Style - -version: 3.0 -author: Hunter.z -email: hunter.z@263.net -website: http://code.google.com/p/jquerytree/ - --------------------------------------*/ - -.ztree * {padding:0; margin:0; font-size:12px; font-family: Verdana, Arial, Helvetica, AppleGothic, sans-serif} -.ztree {margin:0; padding:5px; color:#333} -.ztree li{padding:0; margin:0; list-style:none; line-height:14px; text-align:left; white-space:nowrap} -.ztree li ul{ margin:0; padding:0 0 0 18px} -.ztree li ul.line{ background:url(./img/line_conn.gif) 0 0 repeat-y;} - -.ztree li a {padding:1px 3px 0 0; margin:0; cursor:pointer; color:#333; height:17px; text-decoration:none; vertical-align:top; display: inline-block} -.ztree li a:hover {text-decoration:none} -.ztree li a.curSelectedNode {padding-top:0px; background-color:#FFE6B0; color:black; height:16px; border:1px #FFB951 solid;} -.ztree li a.curSelectedNode_Edit {padding-top:0px; background-color:#FFE6B0; color:black; height:16px; border:1px #FFB951 solid; opacity:0.8; filter:alpha(opacity=80)} -.ztree li a.tmpTargetNode_inner {padding-top:0px; background-color:#316AC5; color:white; height:16px; border:1px #316AC5 solid; opacity:0.8; filter:alpha(opacity=80)} -.ztree li a.tmpTargetNode_prev {} -.ztree li a.tmpTargetNode_next {} -.ztree li a input.rename {height:14px; width:80px; padding:0; margin:0; - font-size:12px; border:1px #7EC4CC solid; *border:0px} -.ztree li span {line-height:16px; margin-right: 2px} -.ztree li span.button {line-height:0; margin:0;width:16px; height:16px; display: inline-block; vertical-align:middle; - border:0 none; cursor: pointer; - background-color:transparent; background-repeat:no-repeat; background-attachment: scroll; - background-image:url("./img/zTreeStandard.png"); *background-image:url("./img/zTreeStandard.gif")} - -.ztree li span.button.switch {width:1px; height:18px; visibility: hidden} - -.zTreeDragUL {margin:0; padding:0; position:absolute; background-color:#cfcfcf; border:1px #00B83F dotted; opacity:0.8; filter:alpha(opacity=80)} -.zTreeMask {z-index:10000; background-color:#cfcfcf; opacity:0.0; filter:alpha(opacity=0); position:absolute} - -/* level 等级样式*/ -/*.ztree li button.level0 { - display:none; -} -.ztree li ul.level0 { - padding:0; - background:none; -}*/ - -.ztree li span.button.core_ico_docu{margin-right:2px; background-position:-126px 0; vertical-align:top; *vertical-align:middle} -.ztree li span.button.check_ico_docu{margin-right:2px; background-position:-126px -16px; vertical-align:top; *vertical-align:middle} -.ztree li span.button.edit_ico_docu{margin-right:2px; background-position:-126px -32px; vertical-align:top; *vertical-align:middle} -.ztree li span.button.hide_ico_docu{margin-right:2px; background-position:-160px 0; vertical-align:top; *vertical-align:middle} diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/fn.zTree._z.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/fn.zTree._z.html deleted file mode 100644 index 7af3e40d..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/fn.zTree._z.html +++ /dev/null @@ -1,13 +0,0 @@ -
    -
    -

    JSON$.fn.zTree._z

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    zTree v3.x 内部的全部方法都可以通过 $.fn.zTree._z 进行调用,开放出来是为了更便于大家开发制作自己的 zTree 插件。

    -

    如无特殊需求请勿使用此对象,以及修改此对象内部的各个函数。

    -
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/fn.zTree.destroy.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/fn.zTree.destroy.html deleted file mode 100644 index 71058076..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/fn.zTree.destroy.html +++ /dev/null @@ -1,28 +0,0 @@ -
    -
    -

    Function(treeId)$.fn.zTree.destroy

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    从 zTree v3.4 开始提供销毁 zTree 的方法。

    -

    1、用此方法可以销毁指定 treeId 的 zTree,也可以销毁当前页面全部的 zTree。

    -

    2、销毁指定 treeId 的 zTree 也可以使用 zTreeObj.destroy() 方法。

    -

    3、重新使用已经被销毁的树,必须要使用 init 方法进行初始化。

    -
    -
    -

    Function 参数说明

    -
    -

    treeIdString

    -

    zTree 的 DOM 容器的 id

    -

    省略 treeId,表示销毁当前页面全部的 zTree

    -

    返回值

    -

    目前无任何返回值

    -
    -

    function 举例

    -

    1. 销毁 id 为 "treeDemo" 的 zTree

    -
    $.fn.zTree.destroy("treeDemo");
    -

    2. 销毁全部 的 zTree

    -
    $.fn.zTree.destroy();
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/fn.zTree.getZTreeObj.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/fn.zTree.getZTreeObj.html deleted file mode 100644 index b1d1db40..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/fn.zTree.getZTreeObj.html +++ /dev/null @@ -1,24 +0,0 @@ -
    -
    -

    Function(treeId)$.fn.zTree.getZTreeObj

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    zTree v3.x 专门提供的根据 treeId 获取 zTree 对象的方法。

    -

    必须在初始化 zTree 以后才可以使用此方法。

    -

    有了这个方法,用户不再需要自己设定全局变量来保存 zTree 初始化后得到的对象了,而且在所有回调函数中全都会返回 treeId 属性,用户可以随时使用此方法获取需要进行操作的 zTree 对象

    -
    -
    -

    Function 参数说明

    -
    -

    treeIdString

    -

    zTree 的 DOM 容器的 id

    -

    返回值JSON

    -

    zTree 对象,提供操作 zTree 的各种方法,对于通过 js 操作 zTree 来说必须通过此对象

    -
    -

    function 举例

    -

    1. 获取 id 为 tree 的 zTree 对象

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/fn.zTree.init.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/fn.zTree.init.html deleted file mode 100644 index 61da41a0..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/fn.zTree.init.html +++ /dev/null @@ -1,74 +0,0 @@ -
    -
    -

    Function(obj, zSetting, zNodes)$.fn.zTree.init

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    zTree 初始化方法,创建 zTree 必须使用此方法

    -

    1、页面需要进行 W3C 申明,例如:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">。

    -

    2、需要首先加载 jquery-1.4.2.js 或其他更高版本的 jQuery 。

    -

    3、需要加载 jquery-ztree.core-3.0.js,如果需要用到 编辑功能 或 checkbox / radio 还需要分别加载 jquery-ztree.exedit-3.0.js 和 jquery-ztree.excheck-3.0.js 。

    -

    4、需要加载 zTreeStyle.css 以及 zTreeStyle 目录下的 img 文件。

    -

    5、如果需要使用自定义图标请参考相应的Demo。

    -

    6、请注意设置 zTree 的容器样式 class="ztree",其中 "ztree" 这个 className,可以根据需要随意修改,别忘了修改 css 中对应名字就是了,对于容器如果需要增加其他特殊样式,可根据自己的需要进行修改。

    -
    -
    -

    Function 参数说明

    -
    -

    objjQuery Object

    -

    用于展现 zTree 的 DOM 容器

    -

    zSettingJSON

    -

    zTree 的配置数据,具体请参考 “setting 配置详解”中的各个属性详细说明

    -

    zNodesArray(JSON) / JSON

    -

    zTree 的节点数据,具体请参考 “treeNode 节点数据详解”中的各个属性详细说明

    -

    1、v3.x 支持单独添加一个节点,即如果只新增一个节点,不用必须包在数组中

    -

    2、如果需要异步加载根节点,可以设置为 null 或 [ ]

    -

    3、使用简单数据模式,请参考 setting.data.simpleData 内的属性说明

    -

    返回值JSON

    -

    zTree 对象,提供操作 zTree 的各种方法,对于通过 js 操作 zTree 来说必须通过此对象

    -

    如果不需要自行设定全局变量保存,可以利用 $.fn.zTree.getZTreeObj 方法随时获取

    -
    -

    setting & function 举例

    -

    1. 简单创建 zTree 演示

    -
    <!DOCTYPE html>
    -<HTML>
    - <HEAD>
    -  <TITLE> ZTREE DEMO </TITLE>
    -  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    -  <link rel="stylesheet" href="zTreeStyle/zTreeStyle.css" type="text/css">
    -  <script type="text/javascript" src="jquery-1.4.2.js"></script>
    -  <script type="text/javascript" src="jquery.ztree.core.js"></script>
    -<!--
    -  <script type="text/javascript" src="jquery.ztree.excheck.js"></script>
    -  <script type="text/javascript" src="jquery.ztree.exedit.js"></script>
    --->
    -  <SCRIPT type="text/javascript" >
    -	var zTreeObj,
    -	setting = {
    -		view: {
    -			selectedMulti: false
    -		}
    -	},
    -	zTreeNodes = [
    -		{"name":"网站导航", open:true, children: [
    -			{ "name":"google", "url":"http://g.cn", "target":"_blank"},
    -			{ "name":"baidu", "url":"http://baidu.com", "target":"_blank"},
    -			{ "name":"sina", "url":"http://www.sina.com.cn", "target":"_blank"}
    -			]
    -		}
    -	];
    -
    -	$(document).ready(function(){
    -		zTreeObj = $.fn.zTree.init($("#tree"), setting, zTreeNodes);
    -
    -	});
    -  </SCRIPT>
    - </HEAD>
    -
    -<BODY>
    -<ul id="tree" class="ztree" style="width:230px; overflow:auto;"></ul>
    - </BODY>
    -</HTML>
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.autoParam.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.autoParam.html deleted file mode 100644 index 6ce1dd72..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.autoParam.html +++ /dev/null @@ -1,49 +0,0 @@ -
    -
    -

    Array(String) / Function(treeId, treeNode)setting.async.autoParam

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    异步加载时需要自动提交父节点属性的参数。[setting.async.enable = true 时生效]

    -

    默认值:[ ]

    -
    -
    -

    Array(String) 格式说明

    -
    -

    1、将需要作为参数提交的属性名称,制作成 Array 即可,例如:["id", "name"]

    -

    2、可以设置提交时的参数名称,例如 server 只接受 zId : ["id=zId"]

    -
    -

    Function 参数说明

    -
    -

    treeIdString

    -

    对应 zTree 的 treeId,便于用户操控

    -

    treeNodeJSON

    -

    需要异步加载子节点的的父节点 JSON 数据对象

    -

    针对根进行异步加载时,treeNode = null

    -

    返回值Array(String)

    -

    返回值同 Array(String) 格式的数据

    -
    -

    setting 举例

    -

    1. 设置 id 属性为自动提交的参数

    -
    var setting = {
    -	async: {
    -		enable: true,
    -		url: "http://host/getNode.php",
    -		autoParam: ["id"]
    -	}
    -};
    -假设 异步加载 父节点(node = {id:1, name:"test"}) 的子节点时,将提交参数 id=1
    -......
    -

    2. 设置 id 属性作为 zId 成为自动提交的参数

    -
    var setting = {
    -	async: {
    -		enable: true,
    -		url: "http://host/getNode.php",
    -		autoParam: ["id=zId"]
    -	}
    -};
    -假设 对父节点 node = {id:1, name:"test"},进行异步加载时,将提交参数 zId=1
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.contentType.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.contentType.html deleted file mode 100644 index db0c92fe..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.contentType.html +++ /dev/null @@ -1,29 +0,0 @@ -
    -
    -

    Stringsetting.async.contentType

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    Ajax 提交参数的数据类型。[setting.async.enable = true 时生效]

    -

    默认值:"application/x-www-form-urlencoded"

    -
    -
    -

    String 格式说明

    -
    -

    contentType = "application/x-www-form-urlencoded" 可以满足绝大部分请求,按照标准的 Form 格式提交参数

    -

    contentType = "application/json" 可以满足 .Net 的编程需要,按照 JSON 格式提交参数

    -
    -

    setting 举例

    -

    1. 设置 Ajax 提交参数的数据类型为 JSON 格式

    -
    var setting = {
    -	async: {
    -		enable: true,
    -		contentType: "application/json",
    -		url: "http://host/getNode.php",
    -		autoParam: ["id", "name"]
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.dataFilter.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.dataFilter.html deleted file mode 100644 index f174bf0f..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.dataFilter.html +++ /dev/null @@ -1,45 +0,0 @@ -
    -
    -

    Function(treeId, parentNode, responseData)setting.async.dataFilter

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    用于对 Ajax 返回数据进行预处理的函数。[setting.async.enable = true 时生效]

    -

    默认值:null

    -
    -
    -

    Function 参数说明

    -
    -

    treeIdString

    -

    对应 zTree 的 treeId,便于用户操控

    -

    parentNodeJSON

    -

    进行异步加载的父节点 JSON 数据对象

    -

    对根进行异步加载时,parentNode = null

    -

    responseDataArray(JSON) / JSON / String

    -

    异步加载获取到的数据转换后的 Array(JSON) / JSON / String 数据对象

    -

    v3.4开始 支持 XML 数据格式的 String

    -

    返回值Array(JSON) / JSON

    -

    返回值是 zTree 支持的JSON 数据结构即可。

    -

    v3.x 支持单个 JSON 节点数据进行加载

    -
    -

    setting & function 举例

    -

    1. 修改异步获取到的节点name属性

    -
    function ajaxDataFilter(treeId, parentNode, responseData) {
    -    if (responseData) {
    -      for(var i =0; i < responseData.length; i++) {
    -        responseData[i].name += "_filter";
    -      }
    -    }
    -    return responseData;
    -};
    -var setting = {
    -	async: {
    -		enable: true,
    -		url: "http://host/getNode.php",
    -		dataFilter: ajaxDataFilter
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.dataType.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.dataType.html deleted file mode 100644 index 6d639b70..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.dataType.html +++ /dev/null @@ -1,29 +0,0 @@ -
    -
    -

    Stringsetting.async.dataType

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    Ajax 获取的数据类型。[setting.async.enable = true 时生效]

    -

    默认值:"text"

    -
    -
    -

    String 格式说明

    -
    -

    dataType = "text" 可以满足绝大部分请求

    -

    其余 dataType 类型请参考 jQuery ajax 中的 dataType 参数

    -
    -

    setting 举例

    -

    1. 设置 Ajax 获取的数据类型为 纯文本

    -
    var setting = {
    -	async: {
    -		enable: true,
    -		dataType: "text",
    -		url: "http://host/getNode.php",
    -		autoParam: ["id", "name"]
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.enable.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.enable.html deleted file mode 100644 index 9079ae10..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.enable.html +++ /dev/null @@ -1,30 +0,0 @@ -
    -
    -

    Booleansetting.async.enable

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    设置 zTree 是否开启异步加载模式

    -

    默认值:false

    -
    -
    -

    Boolean 格式说明

    -
    -

    true 表示 开启 异步加载模式

    -

    false 表示 关闭 异步加载模式

    -

    如果设置为 true,请务必设置 setting.async 内的其它参数。

    -

    如果需要根节点也异步加载,初始化时 treeNodes 参数设置为 null 即可。

    -
    -

    setting 举例

    -

    1. 需要开启异步加载模式

    -
    var setting = {
    -	async: {
    -		enable: true,
    -		url: "http://host/getNode.php",
    -		autoParam: ["id", "name"]
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.headers.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.headers.html deleted file mode 100644 index 222b9f85..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.headers.html +++ /dev/null @@ -1,18 +0,0 @@ -
    -
    -

    Objectsetting.async.headers

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    [setting.async.enable = true 时生效]

    -

    默认值:"{}"

    -

    v3.5.36+

    -
    -
    -

    Object 格式说明

    -
    -

    请参考 jQuery ajax 中的 headers 参数

    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.otherParam.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.otherParam.html deleted file mode 100644 index bfb44c27..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.otherParam.html +++ /dev/null @@ -1,50 +0,0 @@ -
    -
    -

    Array(String) / JSON / Function(treeId, treeNode)setting.async.otherParam

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    Ajax 请求提交的静态参数键值对。[setting.async.enable = true 时生效]

    -

    默认值:[ ]

    -
    -
    -

    Array(String) 格式说明

    -
    -

    可以为空[ ],如果有 key,则必须存在 value。 例如:[key, value]

    -
    -

    JSON 格式说明

    -
    -

    直接用 JSON 格式制作键值对,例如:{ key1:value1, key2:value2 }

    -
    -

    Function 参数说明

    -
    -

    treeIdString

    -

    对应 zTree 的 treeId,便于用户操控

    -

    treeNodeJSON

    -

    需要异步加载子节点的的父节点 JSON 数据对象

    -

    针对根进行异步加载时,treeNode = null

    -

    返回值Array(String) || JSON

    -

    返回值同 Array(String) || JSON 格式的数据

    -
    -

    setting 举例

    -

    1. 设置 Array(String) 格式的参数

    -
    var setting = {
    -	async: {
    -		enable: true,
    -		url: "http://host/getNode.php",
    -		otherParam: ["id", "1", "name", "test"]
    -	}
    -};
    -进行异步加载时,将提交参数 id=1&name=test
    -

    2. 设置 JSON 格式的参数

    -
    var setting = {
    -	async: {
    -		enable: true,
    -		url: "http://host/getNode.php",
    -		otherParam: { "id":"1", "name":"test"}
    -	}
    -};
    -进行异步加载时,将提交参数 id=1&name=test
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.type.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.type.html deleted file mode 100644 index 20d9a6b8..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.type.html +++ /dev/null @@ -1,30 +0,0 @@ -
    -
    -

    Stringsetting.async.type

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    Ajax 的 http 请求模式。[setting.async.enable = true 时生效]

    -

    默认值:"post"

    -
    -
    -

    String 格式说明

    -
    -

    type = "post" 表示异步加载采用 post 方法请求

    -

    type = "get" 表示异步加载采用 get 方法请求

    -

    对应于 jQuery ajax 中的 type 参数

    -
    -

    setting 举例

    -

    1. 设置使用 get 方式请求数据

    -
    var setting = {
    -	async: {
    -		enable: true,
    -		type: "get",
    -		url: "http://host/getNode.php",
    -		autoParam: ["id", "name"]
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.url.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.url.html deleted file mode 100644 index a5209afa..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.url.html +++ /dev/null @@ -1,50 +0,0 @@ -
    -
    -

    String / Function(treeId, treeNode)setting.async.url

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    Ajax 获取数据的 URL 地址。[setting.async.enable = true 时生效]

    -

    默认值:""

    -
    -
    -

    String 格式说明

    -
    -

    设置固定的异步加载 url 字符串,请注意地址的路径,确保页面能正常加载

    -

    url 内也可以带参数,这些参数就只能是通过 get 方式提交了,并且请注意进行转码

    -
    -

    Function 参数说明

    -
    -

    treeIdString

    -

    对应 zTree 的 treeId,便于用户操控

    -

    treeNodeJSON

    -

    需要异步加载子节点的的父节点 JSON 数据对象

    -

    针对根进行异步加载时,treeNode = null

    -

    返回值String

    -

    返回值同 String 格式的数据

    -
    -

    setting & function 举例

    -

    1. 设置异步获取节点的 URL 为 nodes.php

    -
    var setting = {
    -	async: {
    -		enable: true,
    -		url: "nodes.php",
    -		autoParam: ["id", "name"]
    -	}
    -};
    -......
    -

    2. 设置异步获取节点的 URL 为 function 动态获取

    -
    function getAsyncUrl(treeId, treeNode) {
    -    return treeNode.isParent ? "nodes1.php" : "nodes2.php";
    -};
    -var setting = {
    -	async: {
    -		enable: true,
    -		url: getAsyncUrl,
    -		autoParam: ["id", "name"]
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.xhrFields.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.xhrFields.html deleted file mode 100644 index ed2079e6..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.xhrFields.html +++ /dev/null @@ -1,18 +0,0 @@ -
    -
    -

    Objectsetting.async.xhrFields

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    [setting.async.enable = true 时生效]

    -

    默认值:"{}"

    -

    v3.5.36+

    -
    -
    -

    Object 格式说明

    -
    -

    请参考 jQuery ajax 中的 xhrFields 参数

    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeAsync.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeAsync.html deleted file mode 100644 index 70ba0fc4..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeAsync.html +++ /dev/null @@ -1,35 +0,0 @@ -
    -
    -

    Function(treeId, treeNode)setting.callback.beforeAsync

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    用于捕获异步加载之前的事件回调函数,zTree 根据返回值确定是否允许进行异步加载

    -

    默认值:null

    -
    -
    -

    Function 参数说明

    -
    -

    treeIdString

    -

    对应 zTree 的 treeId,便于用户操控

    -

    treeNodeJSON

    -

    进行异步加载的父节点 JSON 数据对象

    -

    针对根进行异步加载时,treeNode = null

    -

    返回值Boolean

    -

    返回值是 true / false

    -

    如果返回 false,zTree 将不进行异步加载,也无法触发 onAsyncSuccess / onAsyncError 事件回调函数

    -
    -

    setting & function 举例

    -

    1. 禁止 id 为 1 的父节点进行异步加载操作

    -
    function zTreeBeforeAsync(treeId, treeNode) {
    -    return (treeNode.id !== 1);
    -};
    -var setting = {
    -	callback: {
    -		beforeAsync: zTreeBeforeAsync
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeCheck.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeCheck.html deleted file mode 100644 index a0e1f42f..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeCheck.html +++ /dev/null @@ -1,34 +0,0 @@ -
    -
    -

    Function(treeId, treeNode)setting.callback.beforeCheck

    -

    概述[ 依赖 jquery.ztree.excheck 扩展 js ]

    -
    -

    -
    -

    用于捕获 勾选 或 取消勾选 之前的事件回调函数,并且根据返回值确定是否允许 勾选 或 取消勾选

    -

    默认值:null

    -
    -
    -

    Function 参数说明

    -
    -

    treeIdString

    -

    对应 zTree 的 treeId,便于用户操控

    -

    treeNodeJSON

    -

    进行 勾选 或 取消勾选 的节点 JSON 数据对象

    -

    返回值Boolean

    -

    返回值是 true / false

    -

    如果返回 false,将不会改变勾选状态,并且无法触发 onCheck 事件回调函数

    -
    -

    setting & function 举例

    -

    1. 禁止所有勾选操作,保持初始化的勾选状态

    -
    function zTreeBeforeCheck(treeId, treeNode) {
    -    return false;
    -};
    -var setting = {
    -	callback: {
    -		beforeCheck: zTreeBeforeCheck
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeClick.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeClick.html deleted file mode 100644 index 6efe9286..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeClick.html +++ /dev/null @@ -1,49 +0,0 @@ -
    -
    -

    Function(treeId, treeNode, clickFlag)setting.callback.beforeClick

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    用于捕获单击节点之前的事件回调函数,并且根据返回值确定是否允许单击操作

    -

    默认值:null

    -
    -
    -

    Function 参数说明

    -
    -

    treeIdString

    -

    对应 zTree 的 treeId,便于用户操控

    -

    treeNodeJSON

    -

    被单击的节点 JSON 数据对象

    -

    clickFlagNumber

    -

    节点被点击后的选中操作类型,详细看下表

    - - - - - - - - - - - - -
    clickFlagselectedMultiautoCancelSelected
    &&
    event.ctrlKey / metaKey
    isSelected选中操作
    1truefalsefalse普通选中
    1truefalsetrue普通选中
    2truetruefalse追加选中
    0truetruetrue取消选中
    1falsefalsefalse普通选中
    1falsefalsetrue普通选中
    1falsetruefalse普通选中
    0falsetruetrue取消选中
    -

    返回值Boolean

    -

    返回值是 true / false

    -

    如果返回 false,zTree 将不会选中节点,也无法触发 onClick 事件回调函数

    -
    -

    setting & function 举例

    -

    1. 禁止节点被选中

    -
    function zTreeBeforeClick(treeId, treeNode, clickFlag) {
    -    return (treeNode.id !== 1);
    -};
    -var setting = {
    -	callback: {
    -		beforeClick: zTreeBeforeClick
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeCollapse.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeCollapse.html deleted file mode 100644 index d778e9c8..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeCollapse.html +++ /dev/null @@ -1,34 +0,0 @@ -
    -
    -

    Function(treeId, treeNode)setting.callback.beforeCollapse

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    用于捕获父节点折叠之前的事件回调函数,并且根据返回值确定是否允许折叠操作

    -

    默认值:null

    -
    -
    -

    Function 参数说明

    -
    -

    treeIdString

    -

    对应 zTree 的 treeId,便于用户操控

    -

    treeNodeJSON

    -

    要折叠的父节点 JSON 数据对象

    -

    返回值Boolean

    -

    返回值是 true / false

    -

    如果返回 false,zTree 将不会折叠节点,也无法触发 onCollapse 事件回调函数

    -
    -

    setting & function 举例

    -

    1. 禁止所有已展开的父节点折叠

    -
    function zTreeBeforeCollapse(treeId, treeNode) {
    -    return false;
    -};
    -var setting = {
    -	callback: {
    -		beforeCollapse: zTreeBeforeCollapse
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeDblClick.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeDblClick.html deleted file mode 100644 index ed7e4dc2..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeDblClick.html +++ /dev/null @@ -1,36 +0,0 @@ -
    -
    -

    Function(treeId, treeNode)setting.callback.beforeDblClick

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    用于捕获 zTree 上鼠标双击之前的事件回调函数,并且根据返回值确定触发 onDblClick 事件回调函数

    -

    默认值:null

    -
    -
    -

    Function 参数说明

    -
    -

    treeIdString

    -

    对应 zTree 的 treeId,便于用户操控

    -

    treeNodeJSON

    -

    鼠标双击时所在节点的 JSON 数据对象

    -

    如果不在节点上,则返回 null

    -

    返回值Boolean

    -

    返回值是 true / false

    -

    如果返回 false,将仅仅无法触发 onDblClick 事件回调函数,对其他操作无任何影响

    -

    此事件回调函数对双击节点展开功能无任何影响,如果需要设置请参考 setting.view.dblClickExpand 属性

    -
    -

    setting & function 举例

    -

    1. 禁止 onDblClick 事件

    -
    function zTreeBeforeDblClick(treeId, treeNode) {
    -    return false;
    -};
    -var setting = {
    -	callback: {
    -		beforeDblClick: zTreeBeforeDblClick
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeDrag.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeDrag.html deleted file mode 100644 index 1e783a3c..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeDrag.html +++ /dev/null @@ -1,39 +0,0 @@ -
    -
    -

    Function(treeId, treeNodes)setting.callback.beforeDrag

    -

    概述[ 依赖 jquery.ztree.exedit 扩展 js ]

    -
    -

    -
    -

    用于捕获节点被拖拽之前的事件回调函数,并且根据返回值确定是否允许开启拖拽操作

    -

    默认值:null

    -
    -
    -

    Function 参数说明

    -
    -

    treeIdString

    -

    被拖拽的节点 treeNodes 所在 zTree 的 treeId,便于用户操控

    -

    treeNodesArray(JSON)

    -

    要被拖拽的节点 JSON 数据集合

    -

    v3.x 允许多个同级节点同时被拖拽,因此将此参数修改为 Array(JSON)

    -

    如果拖拽时多个被选择的节点不是同级关系,则只能拖拽鼠标当前所在位置的节点

    -

    返回值Boolean

    -

    返回值是 true / false

    -

    如果返回 false,zTree 将终止拖拽,也无法触发 onDrag / beforeDrop / onDrop 事件回调函数

    -
    -

    setting & function 举例

    -

    1. 禁止全部拖拽操作

    -
    function zTreeBeforeDrag(treeId, treeNodes) {
    -    return false;
    -};
    -var setting = {
    -	edit: {
    -		enable: true
    -	},
    -	callback: {
    -		beforeDrag: zTreeBeforeDrag
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeDragOpen.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeDragOpen.html deleted file mode 100644 index ceab2d34..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeDragOpen.html +++ /dev/null @@ -1,37 +0,0 @@ -
    -
    -

    Function(treeId, treeNode)setting.callback.beforeDragOpen

    -

    概述[ 依赖 jquery.ztree.exedit 扩展 js ]

    -
    -

    -
    -

    用于捕获拖拽节点移动到折叠状态的父节点后,即将自动展开该父节点之前的事件回调函数,并且根据返回值确定是否允许自动展开操作

    -

    默认值:null

    -
    -
    -

    Function 参数说明

    -
    -

    treeIdString

    -

    需要被展开的父节点 treeNode 所在 zTree 的 treeId,便于用户操控

    -

    treeNodeJSON

    -

    要被自动展开的父节点 JSON 数据对象

    -

    返回值Boolean

    -

    返回值是 true / false

    -

    如果返回 false,zTree 将无法进行自动展开操作

    -
    -

    setting & function 举例

    -

    1. 禁止全部拖拽时的自动展开操作

    -
    function zTreeBeforeDragOpen(treeId, treeNode) {
    -    return false;
    -};
    -var setting = {
    -	edit: {
    -		enable: true
    -	},
    -	callback: {
    -		beforeDragOpen: zTreeBeforeDragOpen
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeDrop.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeDrop.html deleted file mode 100644 index 41237434..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeDrop.html +++ /dev/null @@ -1,48 +0,0 @@ -
    -
    -

    Function(treeId, treeNodes, targetNode, moveType, isCopy)setting.callback.beforeDrop

    -

    概述[ 依赖 jquery.ztree.exedit 扩展 js ]

    -
    -

    -
    -

    用于捕获节点拖拽操作结束之前的事件回调函数,并且根据返回值确定是否允许此拖拽操作

    -

    默认值:null

    -

    如未拖拽到有效位置,则不触发此回调函数,直接将节点恢复原位置

    -
    -
    -

    Function 参数说明

    -
    -

    treeIdString

    -

    目标节点 targetNode 所在 zTree 的 treeId,便于用户操控

    -

    treeNodesArray(JSON)

    -

    被拖拽的节点 JSON 数据集合

    -

    无论拖拽操作为 复制 还是 移动,treeNodes 都是当前被拖拽节点的数据集合。

    -

    targetNodeJSON

    -

    treeNodes 被拖拽放开的目标节点 JSON 数据对象。

    -

    如果拖拽成为根节点,则 targetNode = null

    -

    moveTypeString

    -

    指定移动到目标节点的相对位置

    -

    "inner":成为子节点,"prev":成为同级前一个节点,"next":成为同级后一个节点

    -

    isCopyBoolean

    -

    拖拽节点操作是 复制 或 移动

    -

    true:复制;false:移动

    -

    返回值Boolean

    -

    返回值是 true / false

    -

    如果返回 false,zTree 将恢复被拖拽的节点,也无法触发 onDrop 事件回调函数

    -
    -

    setting & function 举例

    -

    1. 禁止将节点拖拽成为根节点

    -
    function zTreeBeforeDrop(treeId, treeNodes, targetNode, moveType) {
    -    return !(targetNode == null || (moveType != "inner" && !targetNode.parentTId));
    -};
    -var setting = {
    -	edit: {
    -		enable: true
    -	},
    -	callback: {
    -		beforeDrop: zTreeBeforeDrop
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeEditName.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeEditName.html deleted file mode 100644 index 9df3ca2c..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeEditName.html +++ /dev/null @@ -1,38 +0,0 @@ -
    -
    -

    Function(treeId, treeNode)setting.callback.beforeEditName

    -

    概述[ 依赖 jquery.ztree.exedit 扩展 js ]

    -
    -

    -
    -

    用于捕获节点编辑按钮的 click 事件,并且根据返回值确定是否允许进入名称编辑状态

    -

    此事件回调函数最主要是用于捕获编辑按钮的点击事件,然后触发自定义的编辑界面操作。

    -

    默认值:null

    -
    -
    -

    Function 参数说明

    -
    -

    treeIdString

    -

    对应 zTree 的 treeId,便于用户操控

    -

    treeNodeJSON

    -

    将要进入编辑名称状态的节点 JSON 数据对象

    -

    返回值Boolean

    -

    返回值是 true / false

    -

    如果返回 false,节点将无法进入 zTree 默认的编辑名称状态

    -
    -

    setting & function 举例

    -

    1. 禁止修改父节点的名称

    -
    function zTreeBeforeEditName(treeId, treeNode) {
    -	return !treeNode.isParent;
    -}
    -var setting = {
    -	edit: {
    -		enable: true
    -	},
    -	callback: {
    -		beforeEditName: zTreeBeforeEditName
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeExpand.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeExpand.html deleted file mode 100644 index 350972b7..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeExpand.html +++ /dev/null @@ -1,34 +0,0 @@ -
    -
    -

    Function(treeId, treeNode)setting.callback.beforeExpand

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    用于捕获父节点展开之前的事件回调函数,并且根据返回值确定是否允许展开操作

    -

    默认值:null

    -
    -
    -

    Function 参数说明

    -
    -

    treeIdString

    -

    对应 zTree 的 treeId,便于用户操控

    -

    treeNodeJSON

    -

    要展开的父节点 JSON 数据对象

    -

    返回值Boolean

    -

    返回值是 true / false

    -

    如果返回 false,zTree 将不会展开节点,也无法触发 onExpand 事件回调函数

    -
    -

    setting & function 举例

    -

    1. 禁止所有已折叠的父节点展开

    -
    function zTreeBeforeExpand(treeId, treeNode) {
    -    return false;
    -};
    -var setting = {
    -	callback: {
    -		beforeExpand: zTreeBeforeExpand
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeMouseDown.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeMouseDown.html deleted file mode 100644 index 2c3f28d8..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeMouseDown.html +++ /dev/null @@ -1,35 +0,0 @@ -
    -
    -

    Function(treeId, treeNode)setting.callback.beforeMouseDown

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    用于捕获 zTree 上鼠标按键按下之前的事件回调函数,并且根据返回值确定触发 onMouseDown 事件回调函数

    -

    默认值:null

    -
    -
    -

    Function 参数说明

    -
    -

    treeIdString

    -

    对应 zTree 的 treeId,便于用户操控

    -

    treeNodeJSON

    -

    鼠标按键按下时所在节点的 JSON 数据对象

    -

    如果不在节点上,则返回 null

    -

    返回值Boolean

    -

    返回值是 true / false

    -

    如果返回 false,将仅仅无法触发 onMouseDown 事件回调函数,对其他操作无任何影响

    -
    -

    setting & function 举例

    -

    1. 禁止 onMouseDown 事件

    -
    function zTreeBeforeMouseDown(treeId, treeNode) {
    -    return false;
    -};
    -var setting = {
    -	callback: {
    -		beforeMouseDown: zTreeBeforeMouseDown
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeMouseUp.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeMouseUp.html deleted file mode 100644 index f0b01b97..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeMouseUp.html +++ /dev/null @@ -1,35 +0,0 @@ -
    -
    -

    Function(treeId, treeNode)setting.callback.beforeMouseUp

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    用于捕获 zTree 上鼠标按键松开之前的事件回调函数,并且根据返回值确定触发 onMouseUp 事件回调函数

    -

    默认值:null

    -
    -
    -

    Function 参数说明

    -
    -

    treeIdString

    -

    对应 zTree 的 treeId,便于用户操控

    -

    treeNodeJSON

    -

    鼠标按键松开时所在节点的 JSON 数据对象

    -

    如果不在节点上,则返回 null

    -

    返回值Boolean

    -

    返回值是 true / false

    -

    如果返回 false,将仅仅无法触发 onMouseUp 事件回调函数,对其他操作无任何影响

    -
    -

    setting & function 举例

    -

    1. 禁止 onMouseUp 事件

    -
    function zTreeBeforeMouseUp(treeId, treeNode) {
    -    return false;
    -};
    -var setting = {
    -	callback: {
    -		beforeMouseUp: zTreeBeforeMouseUp
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeRemove.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeRemove.html deleted file mode 100644 index 0edb3fd0..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeRemove.html +++ /dev/null @@ -1,37 +0,0 @@ -
    -
    -

    Function(treeId, treeNode)setting.callback.beforeRemove

    -

    概述[ 依赖 jquery.ztree.exedit 扩展 js ]

    -
    -

    -
    -

    用于捕获节点被删除之前的事件回调函数,并且根据返回值确定是否允许删除操作

    -

    默认值:null

    -
    -
    -

    Function 参数说明

    -
    -

    treeIdString

    -

    对应 zTree 的 treeId,便于用户操控

    -

    treeNodeJSON

    -

    将要删除的节点 JSON 数据对象

    -

    返回值Boolean

    -

    返回值是 true / false

    -

    如果返回 false,zTree 将不删除节点,也无法触发 onRemove 事件回调函数

    -
    -

    setting & function 举例

    -

    1. 禁止全部删除操作

    -
    function zTreeBeforeRemove(treeId, treeNode) {
    -	return false;
    -}
    -var setting = {
    -	edit: {
    -		enable: true
    -	},
    -	callback: {
    -		beforeRemove: zTreeBeforeRemove
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeRename.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeRename.html deleted file mode 100644 index 07099619..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeRename.html +++ /dev/null @@ -1,46 +0,0 @@ -
    -
    -

    Function(treeId, treeNode, newName, isCancel)setting.callback.beforeRename

    -

    概述[ 依赖 jquery.ztree.exedit 扩展 js ]

    -
    -

    -
    -

    用于捕获节点编辑名称结束(Input 失去焦点 或 按下 Enter 键)之后,更新节点名称数据之前的事件回调函数,并且根据返回值确定是否允许更改名称的操作

    -

    节点进入编辑名称状态后,按 ESC 键可以放弃当前修改,恢复原名称,取消编辑名称状态

    -

    从 v3.5.13 开始,取消编辑状态也会触发此回调,根据 isCancel 参数判断

    -

    默认值:null

    -
    -
    -

    Function 参数说明

    -
    -

    treeIdString

    -

    对应 zTree 的 treeId,便于用户操控

    -

    treeNodeJSON

    -

    将要更改名称的节点 JSON 数据对象

    -

    newNameString

    -

    修改后的新名称

    -

    isCancelBoolean

    -

    是否取消操作 (v3.5.13+)

    -

    isCancel = true 表示取消编辑操作(按下 ESC 或 使用 cancelEditName 方法)

    -

    isCancel = false 表示确认修改操作

    -

    返回值Boolean

    -

    返回值是 true / false

    -

    如果返回 false,zTree 将保持名称编辑状态,无法触发 onRename 事件回调函数,并且会导致屏蔽其它事件,直到修改名称使得 beforeRename 返回 true

    -

    如果返回 false,不会让 input 输入框获取焦点,避免由于警告信息而导致反复触发 beforeRename。 请在关闭提示警告信息后,利用 editName 方法让 input 重新获取焦点。

    -
    -

    setting & function 举例

    -

    1. 禁止修改的名称的长度小于 5

    -
    function zTreeBeforeRename(treeId, treeNode, newName, isCancel) {
    -	return newName.length > 5;
    -}
    -var setting = {
    -	edit: {
    -		enable: true
    -	},
    -	callback: {
    -		beforeRename: zTreeBeforeRename
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeRightClick.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeRightClick.html deleted file mode 100644 index 1a5bdaa3..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeRightClick.html +++ /dev/null @@ -1,35 +0,0 @@ -
    -
    -

    Function(treeId, treeNode)setting.callback.beforeRightClick

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    用于捕获 zTree 上鼠标右键点击之前的事件回调函数,并且根据返回值确定触发 onRightClick 事件回调函数

    -

    默认值:null

    -
    -
    -

    Function 参数说明

    -
    -

    treeIdString

    -

    对应 zTree 的 treeId,便于用户操控

    -

    treeNodeJSON

    -

    鼠标右键点击时所在节点的 JSON 数据对象

    -

    如果不在节点上,则返回 null

    -

    返回值Boolean

    -

    返回值是 true / false

    -

    如果返回 false,将仅仅无法触发 onRightClick 事件回调函数,对其他操作无任何影响

    -
    -

    setting & function 举例

    -

    1. 禁止 onRightClick 事件

    -
    function zTreeBeforeRightClick(treeId, treeNode) {
    -    return false;
    -};
    -var setting = {
    -	callback: {
    -		beforeRightClick: zTreeBeforeRightClick
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onAsyncError.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onAsyncError.html deleted file mode 100644 index c469e113..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onAsyncError.html +++ /dev/null @@ -1,42 +0,0 @@ -
    -
    -

    setting.callback.onAsyncError

    -

    Function(event, treeId, treeNode, XMLHttpRequest, textStatus, errorThrown) 

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    用于捕获异步加载出现异常错误的事件回调函数

    -

    如果设置了 setting.callback.beforeAsync 方法,且返回 false,将无法触发 onAsyncSuccess / onAsyncError 事件回调函数。

    -

    默认值:null

    -
    -
    -

    Function 参数说明

    -
    -

    eventjs event 对象

    -

    标准的 js event 对象

    -

    treeIdString

    -

    对应 zTree 的 treeId,便于用户操控

    -

    treeNodeJSON

    -

    进行异步加载的父节点 JSON 数据对象

    -

    针对根进行异步加载时,treeNode = null

    -

    XMLHttpRequestString

    -

    标准 XMLHttpRequest 对象,请参考 JQuery API 文档。

    -

    textStatusString

    -

    请求状态:success,error,请参考 JQuery API 文档。

    -

    errorThrownString

    -

    errorThrown 只有当异常发生时才会被传递,请参考 JQuery API 文档。

    -
    -

    setting & function 举例

    -

    1. 异步加载出现异常后,弹出错误信息

    -
    function zTreeOnAsyncError(event, treeId, treeNode, XMLHttpRequest, textStatus, errorThrown) {
    -    alert(XMLHttpRequest);
    -};
    -var setting = {
    -	callback: {
    -		onAsyncError: zTreeOnAsyncError
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onAsyncSuccess.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onAsyncSuccess.html deleted file mode 100644 index 081e9d73..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onAsyncSuccess.html +++ /dev/null @@ -1,38 +0,0 @@ -
    -
    -

    Function(event, treeId, treeNode, msg)setting.callback.onAsyncSuccess

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    用于捕获异步加载正常结束的事件回调函数

    -

    如果设置了 setting.callback.beforeAsync 方法,且返回 false,将无法触发 onAsyncSuccess / onAsyncError 事件回调函数。

    -

    默认值:null

    -
    -
    -

    Function 参数说明

    -
    -

    eventjs event 对象

    -

    标准的 js event 对象

    -

    treeIdString

    -

    对应 zTree 的 treeId,便于用户操控

    -

    treeNodeJSON

    -

    进行异步加载的父节点 JSON 数据对象

    -

    针对根进行异步加载时,treeNode = null

    -

    msgString / Object

    -

    异步获取的节点数据字符串,主要便于用户调试使用。

    -

    实际数据类型会受 setting.async.dataType 的设置影响,请参考 JQuery API 文档。

    -
    -

    setting & function 举例

    -

    1. 异步加载成功后,弹出提示信息

    -
    function zTreeOnAsyncSuccess(event, treeId, treeNode, msg) {
    -    alert(msg);
    -};
    -var setting = {
    -	callback: {
    -		onAsyncSuccess: zTreeOnAsyncSuccess
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onCheck.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onCheck.html deleted file mode 100644 index 113eee97..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onCheck.html +++ /dev/null @@ -1,34 +0,0 @@ -
    -
    -

    Function(event, treeId, treeNode)setting.callback.onCheck

    -

    概述[ 依赖 jquery.ztree.excheck 扩展 js ]

    -
    -

    -
    -

    用于捕获 checkbox / radio 被勾选 或 取消勾选的事件回调函数

    -

    如果设置了 setting.callback.beforeCheck 方法,且返回 false,将无法触发 onCheck 事件回调函数。

    -

    默认值:null

    -
    -
    -

    Function 参数说明

    -
    -

    eventjs event 对象

    -

    标准的 js event 对象

    -

    treeIdString

    -

    对应 zTree 的 treeId,便于用户操控

    -

    treeNodeJSON

    -

    被勾选 或 取消勾选的节点 JSON 数据对象

    -
    -

    setting & function 举例

    -

    1. 每次点击 checkbox 或 radio 后, 弹出该节点的 tId、name 以及当前勾选状态的信息

    -
    function zTreeOnCheck(event, treeId, treeNode) {
    -    alert(treeNode.tId + ", " + treeNode.name + "," + treeNode.checked);
    -};
    -var setting = {
    -	callback: {
    -		onCheck: zTreeOnCheck
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onClick.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onClick.html deleted file mode 100644 index 1f7a2664..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onClick.html +++ /dev/null @@ -1,49 +0,0 @@ -
    -
    -

    Function(event, treeId, treeNode, clickFlag)setting.callback.onClick

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    用于捕获节点被点击的事件回调函数

    -

    如果设置了 setting.callback.beforeClick 方法,且返回 false,将无法触发 onClick 事件回调函数。

    -

    默认值:null

    -
    -
    -

    Function 参数说明

    -
    -

    eventjs event 对象

    -

    标准的 js event 对象

    -

    treeIdString

    -

    对应 zTree 的 treeId,便于用户操控

    -

    treeNodeJSON

    -

    被点击的节点 JSON 数据对象

    -

    clickFlagNumber

    -

    节点被点击后的选中操作类型,详细看下表

    - - - - - - - - - - - - -
    clickFlagselectedMultiautoCancelSelected
    &&
    event.ctrlKey / metaKey
    isSelected选中操作
    1truefalsefalse普通选中
    1truefalsetrue普通选中
    2truetruefalse追加选中
    0truetruetrue取消选中
    1falsefalsefalse普通选中
    1falsefalsetrue普通选中
    1falsetruefalse普通选中
    0falsetruetrue取消选中
    -
    -

    setting & function 举例

    -

    1. 每次点击节点后, 弹出该节点的 tId、name 的信息

    -
    function zTreeOnClick(event, treeId, treeNode) {
    -    alert(treeNode.tId + ", " + treeNode.name);
    -};
    -var setting = {
    -	callback: {
    -		onClick: zTreeOnClick
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onCollapse.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onCollapse.html deleted file mode 100644 index 1c816c20..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onCollapse.html +++ /dev/null @@ -1,34 +0,0 @@ -
    -
    -

    Function(event, treeId, treeNode)setting.callback.onCollapse

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    用于捕获节点被折叠的事件回调函数

    -

    如果设置了 setting.callback.beforeCollapse 方法,且返回 false,将无法触发 onCollapse 事件回调函数。

    -

    默认值:null

    -
    -
    -

    Function 参数说明

    -
    -

    eventjs event 对象

    -

    标准的 js event 对象

    -

    treeIdString

    -

    对应 zTree 的 treeId,便于用户操控

    -

    treeNodeJSON

    -

    被折叠的节点 JSON 数据对象

    -
    -

    setting & function 举例

    -

    1. 每次折叠节点后, 弹出该节点的 tId、name 的信息

    -
    function zTreeOnCollapse(event, treeId, treeNode) {
    -    alert(treeNode.tId + ", " + treeNode.name);
    -};
    -var setting = {
    -	callback: {
    -		onCollapse: zTreeOnCollapse
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onDblClick.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onDblClick.html deleted file mode 100644 index deb8e626..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onDblClick.html +++ /dev/null @@ -1,35 +0,0 @@ -
    -
    -

    Function(event, treeId, treeNode)setting.callback.onDblClick

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    用于捕获 zTree 上鼠标双击之后的事件回调函数

    -

    如果设置了 setting.callback.beforeDblClick 方法,且返回 false,将无法触发 onDblClick 事件回调函数。

    -

    默认值:null

    -
    -
    -

    Function 参数说明

    -
    -

    eventjs event 对象

    -

    标准的 js event 对象

    -

    treeIdString

    -

    对应 zTree 的 treeId,便于用户操控

    -

    treeNodeJSON

    -

    鼠标双击时所在节点的 JSON 数据对象

    -

    如果不在节点上,则返回 null

    -
    -

    setting & function 举例

    -

    1. 每次鼠标双击后, 弹出鼠标所在节点的 tId、name 的信息

    -
    function zTreeOnDblClick(event, treeId, treeNode) {
    -    alert(treeNode ? treeNode.tId + ", " + treeNode.name : "isRoot");
    -};
    -var setting = {
    -	callback: {
    -		onDblClick: zTreeOnDblClick
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onDrag.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onDrag.html deleted file mode 100644 index efd115bd..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onDrag.html +++ /dev/null @@ -1,34 +0,0 @@ -
    -
    -

    Function(event, treeId, treeNodes)setting.callback.onDrag

    -

    概述[ 依赖 jquery.ztree.exedit 扩展 js ]

    -
    -

    -
    -

    用于捕获节点被拖拽的事件回调函数

    -

    如果设置了 setting.callback.beforeDrag 方法,且返回 false,将无法触发 onDragMove 和 onDrag 事件回调函数。

    -

    默认值:null

    -
    -
    -

    Function 参数说明

    -
    -

    eventjs event 对象

    -

    标准的 js event 对象

    -

    treeIdString

    -

    被拖拽的节点 treeNodes 所在 zTree 的 treeId,便于用户操控

    -

    treeNodesArray(JSON)

    -

    要被拖拽的节点 JSON 数据集合

    -
    -

    setting & function 举例

    -

    1. 每次开始进行拖拽节点后, 弹出被拖拽节点的个数信息

    -
    function zTreeOnDrag(event, treeId, treeNodes) {
    -    alert(treeNodes.length);
    -};
    -var setting = {
    -	callback: {
    -		onDrag: zTreeOnDrag
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onDragMove.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onDragMove.html deleted file mode 100644 index e6a8dd9e..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onDragMove.html +++ /dev/null @@ -1,34 +0,0 @@ -
    -
    -

    Function(event, treeId, treeNodes)setting.callback.onDragMove

    -

    概述[ 依赖 jquery.ztree.exedit 扩展 js ]

    -
    -

    -
    -

    用于捕获节点被拖拽过程中移动的事件回调函数

    -

    主要用于捕获 zTree 节点拖拽到的 DOM,从而操作对应的 DOM。

    -

    默认值:null

    -
    -
    -

    Function 参数说明

    -
    -

    eventjs event 对象

    -

    标准的 js event 对象

    -

    treeIdString

    -

    被拖拽的节点 treeNodes 所在 zTree 的 treeId,便于用户操控

    -

    treeNodesArray(JSON)

    -

    要被拖拽的节点 JSON 数据集合

    -
    -

    setting & function 举例

    -

    1. 拖拽节点时,随时输出 当前拖拽到的目标 DOM

    -
    function zTreeOnDragMove(event, treeId, treeNodes) {
    -    console.log(event.target);
    -};
    -var setting = {
    -	callback: {
    -		onDragMove: zTreeOnDragMove
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onDrop.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onDrop.html deleted file mode 100644 index c6773a88..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onDrop.html +++ /dev/null @@ -1,46 +0,0 @@ -
    -
    -

    Function(event, treeId, treeNodes, targetNode, moveType, isCopy)setting.callback.onDrop

    -

    概述[ 依赖 jquery.ztree.exedit 扩展 js ]

    -
    -

    -
    -

    用于捕获节点拖拽操作结束的事件回调函数

    -

    如果设置了 setting.callback.beforeDrop 方法,且返回 false,将无法触发 onDrop 事件回调函数。

    -

    默认值:null

    -
    -
    -

    Function 参数说明

    -
    -

    eventjs event 对象

    -

    标准的 js event 对象

    -

    treeIdString

    -

    目标节点 targetNode 所在 zTree 的 treeId,便于用户操控

    -

    treeNodesArray(JSON)

    -

    被拖拽的节点 JSON 数据集合

    -

    如果拖拽操作为 移动,treeNodes 是当前被拖拽节点的数据集合。

    -

    如果拖拽操作为 复制,treeNodes 是复制后 clone 得到的新节点数据。

    -

    targetNodeJSON

    -

    成为 treeNodes 拖拽结束的目标节点 JSON 数据对象。

    -

    如果拖拽成为根节点,则 targetNode = null

    -

    moveTypeString

    -

    指定移动到目标节点的相对位置

    -

    "inner":成为子节点,"prev":成为同级前一个节点,"next":成为同级后一个节点

    -

    如果 moveType = null,表明拖拽无效

    -

    isCopyBoolean

    -

    拖拽节点操作是 复制 或 移动

    -

    true:复制;false:移动

    -
    -

    setting & function 举例

    -

    1. 每次拖拽操作结束后, 弹出该被拖拽节点的个数以及目标节点的 tId、name 的信息

    -
    function zTreeOnDrop(event, treeId, treeNodes, targetNode, moveType) {
    -    alert(treeNodes.length + "," + (targetNode ? (targetNode.tId + ", " + targetNode.name) : "isRoot" ));
    -};
    -var setting = {
    -	callback: {
    -		onDrop: zTreeOnDrop
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onExpand.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onExpand.html deleted file mode 100644 index 791c5f6f..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onExpand.html +++ /dev/null @@ -1,34 +0,0 @@ -
    -
    -

    Function(event, treeId, treeNode)setting.callback.onExpand

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    用于捕获节点被展开的事件回调函数

    -

    如果设置了 setting.callback.beforeExpand 方法,且返回 false,将无法触发 onExpand 事件回调函数。

    -

    默认值:null

    -
    -
    -

    Function 参数说明

    -
    -

    eventjs event 对象

    -

    标准的 js event 对象

    -

    treeIdString

    -

    对应 zTree 的 treeId,便于用户操控

    -

    treeNodeJSON

    -

    被展开的节点 JSON 数据对象

    -
    -

    setting & function 举例

    -

    1. 每次展开节点后, 弹出该节点的 tId、name 的信息

    -
    function zTreeOnExpand(event, treeId, treeNode) {
    -    alert(treeNode.tId + ", " + treeNode.name);
    -};
    -var setting = {
    -	callback: {
    -		onExpand: zTreeOnExpand
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onMouseDown.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onMouseDown.html deleted file mode 100644 index bc9d0ea7..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onMouseDown.html +++ /dev/null @@ -1,35 +0,0 @@ -
    -
    -

    Function(event, treeId, treeNode)setting.callback.onMouseDown

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    用于捕获 zTree 上鼠标按键按下后的事件回调函数

    -

    如果设置了 setting.callback.beforeMouseDown 方法,且返回 false,将无法触发 onMouseDown 事件回调函数。

    -

    默认值:null

    -
    -
    -

    Function 参数说明

    -
    -

    eventjs event 对象

    -

    标准的 js event 对象

    -

    treeIdString

    -

    对应 zTree 的 treeId,便于用户操控

    -

    treeNodeJSON

    -

    鼠标按键按下时所在节点的 JSON 数据对象

    -

    如果不在节点上,则返回 null

    -
    -

    setting & function 举例

    -

    1. 每次鼠标按键按下后, 弹出鼠标所在节点的 tId、name 的信息

    -
    function zTreeOnMouseDown(event, treeId, treeNode) {
    -    alert(treeNode ? treeNode.tId + ", " + treeNode.name : "isRoot");
    -};
    -var setting = {
    -	callback: {
    -		onMouseDown: zTreeOnMouseDown
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onMouseUp.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onMouseUp.html deleted file mode 100644 index a969fef9..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onMouseUp.html +++ /dev/null @@ -1,35 +0,0 @@ -
    -
    -

    Function(event, treeId, treeNode)setting.callback.onMouseUp

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    用于捕获 zTree 上鼠标按键松开后的事件回调函数

    -

    如果设置了 setting.callback.beforeMouseUp 方法,且返回 false,将无法触发 onMouseUp 事件回调函数。

    -

    默认值:null

    -
    -
    -

    Function 参数说明

    -
    -

    eventjs event 对象

    -

    标准的 js event 对象

    -

    treeIdString

    -

    对应 zTree 的 treeId,便于用户操控

    -

    treeNodeJSON

    -

    鼠标按键松开时所在节点的 JSON 数据对象

    -

    如果不在节点上,则返回 null

    -
    -

    setting & function 举例

    -

    1. 每次鼠标按键松开后, 弹出鼠标所在节点的 tId、name 的信息

    -
    function zTreeOnMouseUp(event, treeId, treeNode) {
    -    alert(treeNode ? treeNode.tId + ", " + treeNode.name : "isRoot");
    -};
    -var setting = {
    -	callback: {
    -		onMouseUp: zTreeOnMouseUp
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onNodeCreated.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onNodeCreated.html deleted file mode 100644 index 2ebaee63..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onNodeCreated.html +++ /dev/null @@ -1,35 +0,0 @@ -
    -
    -

    Function(event, treeId, treeNode)setting.callback.onNodeCreated

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    用于捕获节点生成 DOM 后的事件回调函数

    -

    v3.x 采用了延迟加载技术,因此对于父节点未展开的子节点来说,初始化后是不会触发此回调函数,直到其父节点被展开

    -

    大数据量的节点加载请注意:不设置 onNodeCreated,可以提升一部分初始化性能

    -

    默认值:null

    -
    -
    -

    Function 参数说明

    -
    -

    eventjs event 对象

    -

    标准的 js event 对象

    -

    treeIdString

    -

    对应 zTree 的 treeId,便于用户操控

    -

    treeNodeJSON

    -

    生成 DOM 完毕的节点的 JSON 数据对象

    -
    -

    setting & function 举例

    -

    1. 创建节点 DOM 后, 弹出该节点的 tId、name 的信息

    -
    function zTreeOnNodeCreated(event, treeId, treeNode) {
    -    alert(treeNode.tId + ", " + treeNode.name);
    -};
    -var setting = {
    -	callback: {
    -		onNodeCreated: zTreeOnNodeCreated
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onRemove.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onRemove.html deleted file mode 100644 index e7e625d9..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onRemove.html +++ /dev/null @@ -1,34 +0,0 @@ -
    -
    -

    Function(event, treeId, treeNode)setting.callback.onRemove

    -

    概述[ 依赖 jquery.ztree.exedit 扩展 js ]

    -
    -

    -
    -

    用于捕获删除节点之后的事件回调函数。

    -

    如果用户设置了 beforeRemove 回调函数,并返回 false,将无法触发 onRemove 事件回调函数。

    -

    默认值:null

    -
    -
    -

    Function 参数说明

    -
    -

    eventjs event 对象

    -

    标准的 js event 对象

    -

    treeIdString

    -

    对应 zTree 的 treeId,便于用户操控

    -

    treeNodeJSON

    -

    将要删除的节点 JSON 数据对象

    -
    -

    setting & function 举例

    -

    1. 删除节点时,弹出被删除的节点的 tId 以及 name 信息

    -
    function zTreeOnRemove(event, treeId, treeNode) {
    -	alert(treeNode.tId + ", " + treeNode.name);
    -}
    -var setting = {
    -	callback: {
    -		onRemove: zTreeOnRemove
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onRename.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onRename.html deleted file mode 100644 index f225463f..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onRename.html +++ /dev/null @@ -1,40 +0,0 @@ -
    -
    -

    Function(event, treeId, treeNode, isCancel)setting.callback.onRename

    -

    概述[ 依赖 jquery.ztree.exedit 扩展 js ]

    -
    -

    -
    -

    用于捕获节点编辑名称结束之后的事件回调函数。

    -

    1、节点进入编辑名称状态,并且修改节点名称后触发此回调函数。如果用户设置了 beforeRename 回调函数,并返回 false,将无法触发 onRename 事件回调函数。

    -

    2、如果通过直接修改 treeNode 的数据,并且利用 updateNode 方法更新,是不会触发此回调函数的。

    -

    3、从 v3.5.13 开始,取消编辑状态也会触发此回调,根据 isCancel 参数判断

    -

    默认值:null

    -
    -
    -

    Function 参数说明

    -
    -

    eventjs event 对象

    -

    标准的 js event 对象

    -

    treeIdString

    -

    对应 zTree 的 treeId,便于用户操控

    -

    treeNodeJSON

    -

    被修改名称的节点 JSON 数据对象

    -

    isCancelBoolean

    -

    是否取消操作 (v3.5.13+)

    -

    isCancel = true 表示取消编辑操作(按下 ESC 或 使用 cancelEditName 方法)

    -

    isCancel = false 表示确认修改操作

    -
    -

    setting & function 举例

    -

    1. 修改名称后,弹出被修改名称的节点的 tId 以及 name 信息

    -
    function zTreeOnRename(event, treeId, treeNode, isCancel) {
    -	alert(treeNode.tId + ", " + treeNode.name);
    -}
    -var setting = {
    -	callback: {
    -		onRename: zTreeOnRename
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onRightClick.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onRightClick.html deleted file mode 100644 index d51c68d1..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onRightClick.html +++ /dev/null @@ -1,36 +0,0 @@ -
    -
    -

    Function(event, treeId, treeNode)setting.callback.onRightClick

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    用于捕获 zTree 上鼠标右键点击之后的事件回调函数

    -

    1、如果设置了 setting.callback.beforeRightClick 方法,且返回 false,将无法触发 onRightClick 事件回调函数。

    -

    2、只要将 function 的引用赋给 onRightClick 属性,则右键点击 zTree 时,将屏蔽浏览器的右键菜单。

    -

    默认值:null

    -
    -
    -

    Function 参数说明

    -
    -

    eventjs event 对象

    -

    标准的 js event 对象

    -

    treeIdString

    -

    对应 zTree 的 treeId,便于用户操控

    -

    treeNodeJSON

    -

    鼠标右键点击时所在节点的 JSON 数据对象

    -

    如果不在节点上,则返回 null

    -
    -

    setting & function 举例

    -

    1. 每次鼠标右键点击后, 弹出鼠标所在节点的 tId、name 的信息

    -
    function zTreeOnRightClick(event, treeId, treeNode) {
    -    alert(treeNode ? treeNode.tId + ", " + treeNode.name : "isRoot");
    -};
    -var setting = {
    -	callback: {
    -		onRightClick: zTreeOnRightClick
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.check.autoCheckTrigger.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.check.autoCheckTrigger.html deleted file mode 100644 index d1efd770..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.check.autoCheckTrigger.html +++ /dev/null @@ -1,28 +0,0 @@ -
    -
    -

    Booleansetting.check.autoCheckTrigger

    -

    概述[ 依赖 jquery.ztree.excheck 扩展 js ]

    -
    -

    -
    -

    设置自动关联勾选时是否触发 beforeCheck / onCheck 事件回调函数。[setting.check.enable = true 且 setting.check.chkStyle = "checkbox" 时生效]

    -

    1、如果设置 setting.check.chkboxType = { "Y": "", "N": "" },将不会有任何自动关联勾选的操作。

    -

    2、如果开启触发,对于节点较多的树将会影响性能,因为所有被联动勾选的操作都会触发事件回调函数,请根据需要决定是否使用此功能。

    -

    默认值: false

    -
    -
    -

    Boolean 格式说明

    -
    -

    true / false 分别表示 触发 / 不触发 事件回调函数

    -
    -

    setting 举例

    -

    1. 需要触发自动关联勾选操作

    -
    var setting = {
    -	check: {
    -		enable: true,
    -		autoCheckTrigger: true
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.check.chkDisabledInherit.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.check.chkDisabledInherit.html deleted file mode 100644 index 8af1c2c6..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.check.chkDisabledInherit.html +++ /dev/null @@ -1,28 +0,0 @@ -
    -
    -

    Booleansetting.check.chkDisabledInherit

    -

    概述[ 依赖 jquery.ztree.excheck 扩展 js ]

    -
    -

    -
    -

    当父节点设置 chkDisabled = true 时,设置子节点是否自动继承 chkDisabled = true 。[setting.check.enable = true 时生效]

    -

    1、只使用于初始化节点时,便于批量操作。 对于已存在的节点请利用 setChkDisabled 方法单个节点设置。

    -

    默认值: false

    -
    -
    -

    Boolean 格式说明

    -
    -

    true 表示 新加入子节点时,自动继承父节点 chkDisabled = true 的属性。

    -

    false 表示 新加入子节点时,不继承父节点 chkDisabled 的属性。

    -
    -

    setting 举例

    -

    1. 需要子节点自动继承 chkDisabled = true

    -
    var setting = {
    -	check: {
    -		enable: true,
    -		chkDisabledInherit: true
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.check.chkStyle.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.check.chkStyle.html deleted file mode 100644 index 9706c134..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.check.chkStyle.html +++ /dev/null @@ -1,48 +0,0 @@ -
    -
    -

    Stringsetting.check.chkStyle

    -

    概述[ 依赖 jquery.ztree.excheck 扩展 js ]

    -
    -

    -
    -

    勾选框类型(checkbox 或 radio)[setting.check.enable = true 时生效]

    -

    默认值:"checkbox"

    -
    -
    -

    String 格式说明

    -
    -

    chkStyle = "checkbox" 时,显示 checkbox 选择框,setting.check.chkboxType 属性有效。 -
    chkStyle = "radio" 时,显示 radio 选择框, setting.check.radioType 属性有效。

    -

    请注意大小写,不要改变

    -
    -

    checkbox 状态说明

    -
    -

    -
    -

    未勾选;如果是父节点,则无子节点被勾选。鼠标移到该节点上显示为:

    -

    未勾选;(只有父节点存在此状态)存在被勾选的子节点。鼠标移到该节点上显示为:

    -

    被勾选;如果是父节点,则全部子节点都被勾选。鼠标移到该节点上显示为:

    -

    被勾选;(只有父节点存在此状态)且部分或无子节点被勾选。鼠标移到该节点上显示为:

    -
    -
    -

    radio 状态说明

    -
    -

    -
    -

    未勾选;如果是父节点,则没有子节点被勾选。鼠标移到该节点上显示为:

    -

    未勾选;(只有父节点存在此状态)且存在被勾选的子节点。鼠标移到该节点上显示为:

    -

    被勾选;如果是父节点,则没有子节点被勾选。鼠标移到该节点上显示为:

    -

    被勾选;(只有父节点存在此状态)且存在被勾选的子节点。鼠标移到该节点上显示为:

    -
    -
    -

    setting 举例

    -

    1. 设置选择框为 radio

    -
    var setting = {
    -	check: {
    -		enable: true,
    -		chkStyle: "radio"
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.check.chkboxType.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.check.chkboxType.html deleted file mode 100644 index da06b6ca..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.check.chkboxType.html +++ /dev/null @@ -1,31 +0,0 @@ -
    -
    -

    JSONsetting.check.chkboxType

    -

    概述[ 依赖 jquery.ztree.excheck 扩展 js ]

    -
    -

    -
    -

    勾选 checkbox 对于父子节点的关联关系。[setting.check.enable = true 且 setting.check.chkStyle = "checkbox" 时生效]

    -

    默认值:{ "Y": "ps", "N": "ps" }

    -
    -
    -

    JSON 格式说明

    -
    -

    Y 属性定义 checkbox 被勾选后的情况; -
    N 属性定义 checkbox 取消勾选后的情况; -
    "p" 表示操作会影响父级节点; -
    "s" 表示操作会影响子级节点。

    -

    请注意大小写,不要改变

    -
    -

    setting 举例

    -

    1. checkbox 勾选操作,只影响父级节点;取消勾选操作,只影响子级节点

    -
    var setting = {
    -	check: {
    -		enable: true,
    -		chkStyle: "checkbox",
    -		chkboxType: { "Y": "p", "N": "s" }
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.check.enable.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.check.enable.html deleted file mode 100644 index 8b1387e3..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.check.enable.html +++ /dev/null @@ -1,25 +0,0 @@ -
    -
    -

    Booleansetting.check.enable

    -

    概述[ 依赖 jquery.ztree.excheck 扩展 js ]

    -
    -

    -
    -

    设置 zTree 的节点上是否显示 checkbox / radio

    -

    默认值: false

    -
    -
    -

    Boolean 格式说明

    -
    -

    true / false 分别表示 显示 / 不显示 复选框或单选框

    -
    -

    setting 举例

    -

    1. 需要显示 checkbox

    -
    var setting = {
    -	check: {
    -		enable: true
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.check.nocheckInherit.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.check.nocheckInherit.html deleted file mode 100644 index caf99028..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.check.nocheckInherit.html +++ /dev/null @@ -1,28 +0,0 @@ -
    -
    -

    Booleansetting.check.nocheckInherit

    -

    概述[ 依赖 jquery.ztree.excheck 扩展 js ]

    -
    -

    -
    -

    当父节点设置 nocheck = true 时,设置子节点是否自动继承 nocheck = true 。[setting.check.enable = true 时生效]

    -

    1、只使用于初始化节点时,便于批量操作。 对于已存在的节点请利用 updateNode 方法单个节点设置。

    -

    默认值: false

    -
    -
    -

    Boolean 格式说明

    -
    -

    true 表示 新加入子节点时,自动继承父节点 nocheck = true 的属性。

    -

    false 表示 新加入子节点时,不继承父节点 nocheck 的属性。

    -
    -

    setting 举例

    -

    1. 需要子节点自动继承 nocheck = true

    -
    var setting = {
    -	check: {
    -		enable: true,
    -		nocheckInherit: true
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.check.radioType.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.check.radioType.html deleted file mode 100644 index 19f84cad..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.check.radioType.html +++ /dev/null @@ -1,29 +0,0 @@ -
    -
    -

    Stringsetting.check.radioType

    -

    概述[ 依赖 jquery.ztree.excheck 扩展 js ]

    -
    -

    -
    -

    radio 的分组范围。[setting.check.enable = true 且 setting.check.chkStyle = "radio" 时生效]

    -

    默认值:"level"

    -
    -
    -

    String 格式说明

    -
    -

    radioType = "level" 时,在每一级节点范围内当做一个分组。 -
    radioType = "all" 时,在整棵树范围内当做一个分组。

    -

    请注意大小写,不要改变

    -
    -

    setting 举例

    -

    1. 设置 radio 的判别规则为整棵树内

    -
    var setting = {
    -	check: {
    -		enable: true,
    -		chkStyle: "radio",
    -		radioType: "all"
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.keep.leaf.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.keep.leaf.html deleted file mode 100644 index af3a7211..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.keep.leaf.html +++ /dev/null @@ -1,28 +0,0 @@ -
    -
    -

    Booleansetting.data.keep.leaf

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    zTree 的节点叶子节点属性锁,是否始终保持 isParent = false

    -

    默认值:false

    -
    -
    -

    Boolean 格式说明

    -
    -

    true / false 分别表示 锁定 / 不锁定 叶子节点属性

    -

    如果设置为 true,则所有 isParent = false 的节点,都无法添加子节点。

    -
    -

    setting 举例

    -

    1. 需要锁定叶子节点状态

    -
    var setting = {
    -	data: {
    -		keep: {
    -			leaf: true
    -		}
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.keep.parent.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.keep.parent.html deleted file mode 100644 index c4975df2..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.keep.parent.html +++ /dev/null @@ -1,28 +0,0 @@ -
    -
    -

    Booleansetting.data.keep.parent

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    zTree 的节点父节点属性锁,是否始终保持 isParent = true

    -

    默认值:false

    -
    -
    -

    Boolean 格式说明

    -
    -

    true / false 分别表示 锁定 / 不锁定 父节点属性

    -

    如果设置为 true,则所有 isParent = true 的节点,即使该节点的子节点被全部删除或移走,依旧保持父节点状态。

    -
    -

    setting 举例

    -

    1. 需要锁定父节点状态

    -
    var setting = {
    -	data: {
    -		keep: {
    -			parent: true
    -		}
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.key.checked.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.key.checked.html deleted file mode 100644 index ac9fdc1d..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.key.checked.html +++ /dev/null @@ -1,24 +0,0 @@ -
    -
    -

    Stringsetting.data.key.checked

    -

    概述[ 依赖 jquery.ztree.excheck 扩展 js ]

    -
    -

    -
    -

    zTree 节点数据中保存 check 状态的属性名称。

    -

    默认值:"checked"

    -

    请勿与 zTree 节点数据的其他参数冲突,例如:checkedOld

    -
    -
    -

    setting 举例

    -

    1. 设置 zTree 显示节点时,将 treeNode 的 isChecked 属性当做节点名称

    -
    var setting = {
    -	data: {
    -		key: {
    -			checked: "isChecked"
    -		}
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.key.children.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.key.children.html deleted file mode 100644 index 66a49a7e..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.key.children.html +++ /dev/null @@ -1,23 +0,0 @@ -
    -
    -

    Stringsetting.data.key.children

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    zTree 节点数据中保存子节点数据的属性名称。

    -

    默认值:"children"

    -
    -
    -

    setting 举例

    -

    1. 设置 zTree 显示节点时,将 treeNode 的 nodes 属性当做节点名称

    -
    var setting = {
    -	data: {
    -		key: {
    -			children: "nodes"
    -		}
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.key.isHidden.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.key.isHidden.html deleted file mode 100644 index 0ea26bc3..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.key.isHidden.html +++ /dev/null @@ -1,24 +0,0 @@ -
    -
    -

    Stringsetting.data.key.isHidden

    -

    概述[ 依赖 jquery.ztree.exhide js ]

    -
    -

    -
    -

    zTree 节点数据保存节点是否隐藏的属性名称。

    -

    默认值:"isHidden"

    -

    v3.5.32+

    -
    -
    -

    setting 举例

    -

    1. 设置 zTree 显示节点时,将 treeNode 的 hidden 属性当做节点是否隐藏的属性名称

    -
    var setting = {
    -	data: {
    -		key: {
    -			isHidden: "hidden"
    -		}
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.key.isParent.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.key.isParent.html deleted file mode 100644 index d9476c3a..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.key.isParent.html +++ /dev/null @@ -1,24 +0,0 @@ -
    -
    -

    Stringsetting.data.key.isParent

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    zTree 节点数据保存节点是否为父节点的属性名称。

    -

    默认值:"isParent"

    -

    v3.5.32+

    -
    -
    -

    setting 举例

    -

    1. 设置 zTree 显示节点时,将 treeNode 的 parent 属性当做节点是否为父节点的属性名称

    -
    var setting = {
    -	data: {
    -		key: {
    -			isParent: "parent"
    -		}
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.key.name.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.key.name.html deleted file mode 100644 index c25d250a..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.key.name.html +++ /dev/null @@ -1,23 +0,0 @@ -
    -
    -

    Stringsetting.data.key.name

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    zTree 节点数据保存节点名称的属性名称。

    -

    默认值:"name"

    -
    -
    -

    setting 举例

    -

    1. 设置 zTree 显示节点时,将 treeNode 的 ename 属性当做节点名称

    -
    var setting = {
    -	data: {
    -		key: {
    -			name: "ename"
    -		}
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.key.title.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.key.title.html deleted file mode 100644 index 43e68554..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.key.title.html +++ /dev/null @@ -1,24 +0,0 @@ -
    -
    -

    Stringsetting.data.key.title

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    zTree 节点数据保存节点提示信息的属性名称。[setting.view.showTitle = true 时生效]

    -

    如果设置为 "" ,则自动与 setting.data.key.name 保持一致,避免用户反复设置

    -

    默认值:""

    -
    -
    -

    setting 举例

    -

    1. 设置 zTree 显示节点时,将 treeNode 的 fullName 属性当做节点名称

    -
    var setting = {
    -	data: {
    -		key: {
    -			title: "fullName"
    -		}
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.key.url.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.key.url.html deleted file mode 100644 index e534d985..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.key.url.html +++ /dev/null @@ -1,24 +0,0 @@ -
    -
    -

    Stringsetting.data.key.url

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    zTree 节点数据保存节点链接的目标 URL 的属性名称。

    -

    特殊用途:当后台数据只能生成 url 属性,又不想实现点击节点跳转的功能时,可以直接修改此属性为其他不存在的属性名称

    -

    默认值:"url"

    -
    -
    -

    setting 举例

    -

    1. 设置 zTree 显示节点时,将 treeNode 的 xUrl 属性当做节点链接的目标 URL

    -
    var setting = {
    -	data: {
    -		key: {
    -			url: "xUrl"
    -		}
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.simpleData.enable.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.simpleData.enable.html deleted file mode 100644 index 5d7bd42f..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.simpleData.enable.html +++ /dev/null @@ -1,38 +0,0 @@ -
    -
    -

    Booleansetting.data.simpleData.enable

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    确定 zTree 初始化时的节点数据、异步加载时的节点数据、或 addNodes 方法中输入的 newNodes 数据是否采用简单数据模式 (Array)

    -

    不需要用户再把数据库中取出的 List 强行转换为复杂的 JSON 嵌套格式

    -

    默认值:false

    -
    -
    -

    Boolean 格式说明

    -
    -

    true / false 分别表示 使用 / 不使用 简单数据模式

    -

    如果设置为 true,请务必设置 setting.data.simpleData 内的其他参数: idKey / pIdKey / rootPId,并且让数据满足父子关系。

    -
    -

    setting 举例

    -

    1. 使用简单 Array 格式的数据

    -
    var setting = {
    -	data: {
    -		simpleData: {
    -			enable: true,
    -			idKey: "id",
    -			pIdKey: "pId",
    -			rootPId: 0
    -		}
    -	}
    -};
    -var treeNodes = [
    -    {"id":1, "pId":0, "name":"test1"},
    -    {"id":11, "pId":1, "name":"test11"},
    -    {"id":12, "pId":1, "name":"test12"},
    -    {"id":111, "pId":11, "name":"test111"}
    -];
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.simpleData.idKey.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.simpleData.idKey.html deleted file mode 100644 index 5b3ffd46..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.simpleData.idKey.html +++ /dev/null @@ -1,32 +0,0 @@ -
    -
    -

    Stringsetting.data.simpleData.idKey

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    节点数据中保存唯一标识的属性名称。[setting.data.simpleData.enable = true 时生效]

    -

    默认值:"id"

    -
    -
    -

    setting 举例

    -

    1. 使用简单 Array 格式的数据

    -
    var setting = {
    -	data: {
    -		simpleData: {
    -			enable: true,
    -			idKey: "id",
    -			pIdKey: "pId",
    -			rootPId: 0
    -		}
    -	}
    -};
    -var treeNodes = [
    -    {"id":1, "pId":0, "name":"test1"},
    -    {"id":11, "pId":1, "name":"test11"},
    -    {"id":12, "pId":1, "name":"test12"},
    -    {"id":111, "pId":11, "name":"test111"}
    -];
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.simpleData.pIdKey.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.simpleData.pIdKey.html deleted file mode 100644 index d434bc31..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.simpleData.pIdKey.html +++ /dev/null @@ -1,32 +0,0 @@ -
    -
    -

    Stringsetting.data.simpleData.pIdKey

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    节点数据中保存其父节点唯一标识的属性名称。[setting.data.simpleData.enable = true 时生效]

    -

    默认值:"pId"

    -
    -
    -

    setting 举例

    -

    1. 使用简单 Array 格式的数据

    -
    var setting = {
    -	data: {
    -		simpleData: {
    -			enable: true,
    -			idKey: "id",
    -			pIdKey: "pId",
    -			rootPId: 0
    -		}
    -	}
    -};
    -var treeNodes = [
    -    {"id":1, "pId":0, "name":"test1"},
    -    {"id":11, "pId":1, "name":"test11"},
    -    {"id":12, "pId":1, "name":"test12"},
    -    {"id":111, "pId":11, "name":"test111"}
    -];
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.simpleData.rootPId.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.simpleData.rootPId.html deleted file mode 100644 index 8cff82d4..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.simpleData.rootPId.html +++ /dev/null @@ -1,32 +0,0 @@ -
    -
    -

    String / Numbersetting.data.simpleData.rootPId

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    用于修正根节点父节点数据,即 pIdKey 指定的属性值。[setting.data.simpleData.enable = true 时生效]

    -

    默认值:null

    -
    -
    -

    setting 举例

    -

    1. 使用简单 Array 格式的数据

    -
    var setting = {
    -	data: {
    -		simpleData: {
    -			enable: true,
    -			idKey: "id",
    -			pIdKey: "pId",
    -			rootPId: 0
    -		}
    -	}
    -};
    -var treeNodes = [
    -    {"id":1, "pId":0, "name":"test1"},
    -    {"id":11, "pId":1, "name":"test11"},
    -    {"id":12, "pId":1, "name":"test12"},
    -    {"id":111, "pId":11, "name":"test111"}
    -];
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.autoExpandTrigger.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.autoExpandTrigger.html deleted file mode 100644 index 126b8a85..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.autoExpandTrigger.html +++ /dev/null @@ -1,28 +0,0 @@ -
    -
    -

    Booleansetting.edit.drag.autoExpandTrigger

    -

    概述[ 依赖 jquery.ztree.exedit 扩展 js ]

    -
    -

    -
    -

    拖拽时父节点自动展开是否触发 onExpand 事件回调函数。[setting.edit.enable = true 时生效]

    -

    默认值:false

    -
    -
    -

    Boolean 格式说明

    -
    -

    true / false 分别表示 触发 / 不触发 onExpand 事件回调函数。

    -
    -

    setting 举例

    -

    1. 设置拖拽时父节点自动展开触发 onExpand 事件回调函数

    -
    var setting = {
    -	edit: {
    -		enable: true,
    -		drag: {
    -			autoExpandTrigger: true
    -		}
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.autoOpenTime.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.autoOpenTime.html deleted file mode 100644 index df783392..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.autoOpenTime.html +++ /dev/null @@ -1,25 +0,0 @@ -
    -
    -

    Numbersetting.edit.drag.autoOpenTime

    -

    概述[ 依赖 jquery.ztree.exedit 扩展 js ]

    -
    -

    -
    -

    拖拽时父节点自动展开的延时间隔。 (单位:ms)[setting.edit.enable = true 时生效]

    -

    默认值:500

    -

    请根据自己的需求适当调整此值

    -
    -
    -

    setting 举例

    -

    1. 设置拖拽到父节点上立刻自动展开

    -
    var setting = {
    -	edit: {
    -		enable: true,
    -		drag: {
    -			autoOpenTime: 0
    -		}
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.borderMax.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.borderMax.html deleted file mode 100644 index 1d4dd681..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.borderMax.html +++ /dev/null @@ -1,25 +0,0 @@ -
    -
    -

    Numbersetting.edit.drag.borderMax

    -

    概述[ 依赖 jquery.ztree.exedit 扩展 js ]

    -
    -

    -
    -

    拖拽节点成为根节点时的 Tree 内边界范围 (单位:px)。[setting.edit.enable = true 时生效]

    -

    默认值:10

    -

    请根据自己的需求适当调整此值

    -
    -
    -

    setting 举例

    -

    1. 更改拖拽操作节点成为根节点时的 Tree 内边界范围为20px

    -
    var setting = {
    -	edit: {
    -		enable: true,
    -		drag: {
    -			borderMax: 20
    -		}
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.borderMin.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.borderMin.html deleted file mode 100644 index 463eb2b7..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.borderMin.html +++ /dev/null @@ -1,25 +0,0 @@ -
    -
    -

    Numbersetting.edit.drag.borderMin

    -

    概述[ 依赖 jquery.ztree.exedit 扩展 js ]

    -
    -

    -
    -

    拖拽节点成为根节点时的 Tree 外边界范围 (单位:px)。[setting.edit.enable = true 时生效]

    -

    默认值:-5

    -

    请根据自己的需求适当调整此值

    -
    -
    -

    setting 举例

    -

    1. 更改拖拽操作节点成为根节点时的 Tree 外边界范围为10px

    -
    var setting = {
    -	edit: {
    -		enable: true,
    -		drag: {
    -			borderMin: -10
    -		}
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.inner.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.inner.html deleted file mode 100644 index 06679e1a..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.inner.html +++ /dev/null @@ -1,59 +0,0 @@ -
    -
    -

    Boolean / Function(treeId, treeNodes, targetNode)setting.edit.drag.inner

    -

    概述[ 依赖 jquery.ztree.exedit 扩展 js ]

    -
    -

    -
    -

    拖拽到目标节点时,设置是否允许成为目标节点的子节点。[setting.edit.enable = true 时生效]

    -

    拖拽目标是 根 的时候,不触发 prev 和 next,只会触发 inner

    -

    此功能主要作用是对拖拽进行适当限制(辅助箭头),需要结合 prev、next 一起使用,才能实现完整功能。

    -

    默认值:true

    -
    -
    -

    Boolean 格式说明

    -
    -

    true / false 分别表示 允许 / 不允许 成为目标节点的子节点

    -
    -

    Function 参数说明

    -
    -

    treeIdString

    -

    对应 zTree 的 treeId,便于用户操控(多棵树拖拽时,是目标节点所在树的 treeId)

    -

    treeNodesArray(JSON)

    -

    被拖拽的节点 JSON 数据集合

    -

    targetNodeJSON

    -

    拖拽时的目标节点 JSON 数据对象

    -

    如果拖拽的节点要成为根节点,则 targetNode = null

    -

    返回值Boolean

    -

    返回值同 Boolean 格式的数据

    -
    -

    setting & function 举例

    -

    1. 禁止拖拽成为目标节点的子节点

    -
    var setting = {
    -	edit: {
    -		enable: true,
    -		drag: {
    -			prev: true,
    -			next: true,
    -			inner: false
    -		}
    -	}
    -};
    -......
    -

    2. 禁止拖拽成为根节点的子节点

    -
    function canInner(treeId, nodes, targetNode) {
    -	return !(targetNode && targetNode.level === 0);
    -}
    -var setting = {
    -	edit: {
    -		enable: true,
    -		drag: {
    -			prev: true,
    -			next: true,
    -			inner: canInner
    -		}
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.isCopy.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.isCopy.html deleted file mode 100644 index cff17afd..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.isCopy.html +++ /dev/null @@ -1,32 +0,0 @@ -
    -
    -

    Booleansetting.edit.drag.isCopy

    -

    概述[ 依赖 jquery.ztree.exedit 扩展 js ]

    -
    -

    -
    -

    拖拽时, 设置是否允许复制节点。[setting.edit.enable = true 时生效]

    -

    默认值:true

    -
    -
    -

    规则说明

    -
    -

    1、isCopy = true; isMove = true 时,拖拽节点按下 Ctrl 或 Cmd 键表示 copy; 否则为 move

    -

    2、isCopy = true; isMove = false 时,所有拖拽操作都是 copy

    -

    3、isCopy = false; isMove = true 时,所有拖拽操作都是 move

    -

    4、isCopy = false; isMove = false 时,禁止拖拽操作

    -
    -

    setting 举例

    -

    1. 设置所有拖拽操作都是 copy

    -
    var setting = {
    -	edit: {
    -		enable: true,
    -		drag: {
    -			isCopy: true,
    -			isMove: false
    -		}
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.isMove.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.isMove.html deleted file mode 100644 index 7fdadd18..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.isMove.html +++ /dev/null @@ -1,32 +0,0 @@ -
    -
    -

    Booleansetting.edit.drag.isMove

    -

    概述[ 依赖 jquery.ztree.exedit 扩展 js ]

    -
    -

    -
    -

    拖拽时, 设置是否允许移动节点。[setting.edit.enable = true 时生效]

    -

    默认值:true

    -
    -
    -

    规则说明

    -
    -

    1、isCopy = true; isMove = true 时,拖拽节点按下 Ctrl 或 Cmd 键表示 copy; 否则为 move

    -

    2、isCopy = true; isMove = false 时,所有拖拽操作都是 copy

    -

    3、isCopy = false; isMove = true 时,所有拖拽操作都是 move

    -

    4、isCopy = false; isMove = false 时,禁止拖拽操作

    -
    -

    setting 举例

    -

    1. 设置所有拖拽操作都是 move

    -
    var setting = {
    -	edit: {
    -		enable: true,
    -		drag: {
    -			isCopy: false,
    -			isMove: true
    -		}
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.maxShowNodeNum.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.maxShowNodeNum.html deleted file mode 100644 index 3e7a3d26..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.maxShowNodeNum.html +++ /dev/null @@ -1,25 +0,0 @@ -
    -
    -

    Numbersetting.edit.drag.maxShowNodeNum

    -

    概述[ 依赖 jquery.ztree.exedit 扩展 js ]

    -
    -

    -
    -

    拖拽多个兄弟节点时,浮动图层中显示的最大节点数。 多余的节点用...代替。[setting.edit.enable = true 时生效]

    -

    默认值:5

    -

    请根据自己的需求适当调整此值

    -
    -
    -

    setting 举例

    -

    1. 设置拖拽时最多可显示10个节点

    -
    var setting = {
    -	edit: {
    -		enable: true,
    -		drag: {
    -			maxShowNodeNum: 10
    -		}
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.minMoveSize.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.minMoveSize.html deleted file mode 100644 index 904be414..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.minMoveSize.html +++ /dev/null @@ -1,25 +0,0 @@ -
    -
    -

    Numbersetting.edit.drag.minMoveSize

    -

    概述[ 依赖 jquery.ztree.exedit 扩展 js ]

    -
    -

    -
    -

    判定是否拖拽操作的最小位移值 (单位:px)。[setting.edit.enable = true 时生效]

    -

    根据自己的需求可适当调整此值,如果太小容易导致点击鼠标时误操作进行拖拽

    -

    默认值:5

    -
    -
    -

    setting 举例

    -

    1. 更改拖拽操作启动位移值为10px

    -
    var setting = {
    -	edit: {
    -		enable: true,
    -		drag: {
    -			minMoveSize: 10
    -		}
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.next.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.next.html deleted file mode 100644 index ffc874aa..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.next.html +++ /dev/null @@ -1,58 +0,0 @@ -
    -
    -

    Boolean / Function(treeId, treeNodes, targetNode)setting.edit.drag.next

    -

    概述[ 依赖 jquery.ztree.exedit 扩展 js ]

    -
    -

    -
    -

    拖拽到目标节点时,设置是否允许移动到目标节点后面的操作。[setting.edit.enable = true 时生效]

    -

    拖拽目标是 根 的时候,不触发 prev 和 next,只会触发 inner

    -

    此功能主要作用是对拖拽进行适当限制(辅助箭头),需要结合 prev、inner 一起使用,才能实现完整功能。

    -

    默认值:true

    -
    -
    -

    Boolean 格式说明

    -
    -

    true / false 分别表示 允许 / 不允许 移动到目标节点后面

    -
    -

    Function 参数说明

    -
    -

    treeIdString

    -

    对应 zTree 的 treeId,便于用户操控(多棵树拖拽时,是目标节点所在树的 treeId)

    -

    treeNodesArray(JSON)

    -

    被拖拽的节点 JSON 数据集合

    -

    targetNodeJSON

    -

    拖拽时的目标节点 JSON 数据对象

    -

    返回值Boolean

    -

    返回值同 Boolean 格式的数据

    -
    -

    setting & function 举例

    -

    1. 禁止拖拽到节点后面的操作

    -
    var setting = {
    -	edit: {
    -		enable: true,
    -		drag: {
    -			prev: true,
    -			next: false,
    -			inner: true
    -		}
    -	}
    -};
    -......
    -

    2. 禁止拖拽到父节点后面的操作

    -
    function canNext(treeId, nodes, targetNode) {
    -	return !targetNode.isParent;
    -}
    -var setting = {
    -	edit: {
    -		enable: true,
    -		drag: {
    -			prev: true,
    -			next: canNext,
    -			inner: true
    -		}
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.prev.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.prev.html deleted file mode 100644 index bd053618..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.prev.html +++ /dev/null @@ -1,58 +0,0 @@ -
    -
    -

    Boolean / Function(treeId, treeNodes, targetNode)setting.edit.drag.prev

    -

    概述[ 依赖 jquery.ztree.exedit 扩展 js ]

    -
    -

    -
    -

    拖拽到目标节点时,设置是否允许移动到目标节点前面的操作。[setting.edit.enable = true 时生效]

    -

    拖拽目标是 根 的时候,不触发 prev 和 next,只会触发 inner

    -

    此功能主要作用是对拖拽进行适当限制(辅助箭头),需要结合 next、inner 一起使用,才能实现完整功能。

    -

    默认值:true

    -
    -
    -

    Boolean 格式说明

    -
    -

    true / false 分别表示 允许 / 不允许 移动到目标节点前面

    -
    -

    Function 参数说明

    -
    -

    treeIdString

    -

    对应 zTree 的 treeId,便于用户操控(多棵树拖拽时,是目标节点所在树的 treeId)

    -

    treeNodesArray(JSON)

    -

    被拖拽的节点 JSON 数据集合

    -

    targetNodeJSON

    -

    拖拽时的目标节点 JSON 数据对象

    -

    返回值Boolean

    -

    返回值同 Boolean 格式的数据

    -
    -

    setting & function 举例

    -

    1. 禁止拖拽到节点前面的操作

    -
    var setting = {
    -	edit: {
    -		enable: true,
    -		drag: {
    -			prev: false,
    -			next: true,
    -			inner: true
    -		}
    -	}
    -};
    -......
    -

    2. 禁止拖拽到父节点前面的操作

    -
    function canPrev(treeId, nodes, targetNode) {
    -	return !targetNode.isParent;
    -}
    -var setting = {
    -	edit: {
    -		enable: true,
    -		drag: {
    -			prev: canPrev,
    -			next: true,
    -			inner: true
    -		}
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.editNameSelectAll.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.editNameSelectAll.html deleted file mode 100644 index 30784f3c..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.editNameSelectAll.html +++ /dev/null @@ -1,27 +0,0 @@ -
    -
    -

    Booleansetting.edit.editNameSelectAll

    -

    概述[ 依赖 jquery.ztree.exedit 扩展 js ]

    -
    -

    -
    -

    节点编辑名称 input 初次显示时,设置 txt 内容是否为全选状态。 [setting.edit.enable = true 时生效]

    -

    默认值: false

    -
    -
    -

    Boolean 格式说明

    -
    -

    true 表示 全选状态

    -

    false 表示 不是全选状态,光标默认在最后

    -
    -

    setting 举例

    -

    1. 设置节点编辑名称 input 初次显示时,txt内容为全选状态

    -
    var setting = {
    -	edit: {
    -		enable: true,
    -		editNameSelectAll: true
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.enable.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.enable.html deleted file mode 100644 index de1afeaf..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.enable.html +++ /dev/null @@ -1,38 +0,0 @@ -
    -
    -

    Booleansetting.edit.enable

    -

    概述[ 依赖 jquery.ztree.exedit 扩展 js ]

    -
    -

    -
    -

    设置 zTree 是否处于编辑状态

    -

    请在初始化之前设置,初始化后需要改变编辑状态请使用 zTreeObj.setEditable() 方法

    -

    默认值: false

    -
    -
    -

    Boolean 格式说明

    -
    -

    true / false 分别表示 可以 / 不可以 编辑

    -
    -

    编辑状态规则说明

    -
    -

    1、点击节点时,不会打开 node.url 指定的 URL。 -
    2、全面支持 编辑 与 异步加载 状态共存。 -
    3、可以对节点进行拖拽,且支持多棵树之间进行拖拽。 -
    4、支持拖拽时 复制/移动 节点。(参考: setting.edit.drag.isCopy / setting.edit.drag.isMove) -
    5、可以通过编辑按钮修改 name 属性。 -
    6、可以通过删除按钮删除节点。 -
    -

    -

    请注意大小写,不要改变

    -
    -

    setting 举例

    -

    1. 设置 zTree 进入编辑状态

    -
    var setting = {
    -	edit: {
    -		enable: true
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.removeTitle.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.removeTitle.html deleted file mode 100644 index 55257da7..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.removeTitle.html +++ /dev/null @@ -1,48 +0,0 @@ -
    -
    -

    String / Function(treeId, treeNode)setting.edit.removeTitle

    -

    概述[ 依赖 jquery.ztree.exedit 扩展 js ]

    -
    -

    -
    -

    删除按钮的 Title 辅助信息。[setting.edit.enable = true & setting.edit.showRemoveBtn = true 时生效]

    -

    默认值:"remove"

    -
    -
    -

    String 格式说明

    -
    -

    鼠标移动到 删除按钮 上时,浏览器自动弹出的辅助信息内容,可根据用户需要自行修改

    -
    -

    Function 参数说明

    -
    -

    treeIdString

    -

    对应 zTree 的 treeId,便于用户操控

    -

    treeNodeJSON

    -

    需要设置删除按钮 Title 信息的节点 JSON 数据对象

    -

    返回值String

    -

    返回值同 String 格式的数据

    -
    -

    setting & function 举例

    -

    1. 设置删除按钮的 Title 辅助信息为: "删除节点"

    -
    var setting = {
    -	edit: {
    -		enable: true,
    -		showRemoveBtn: true,
    -		removeTitle: "删除节点"
    -	}
    -};
    -......
    -

    2. 设置父节点删除按钮的 Title 辅助信息为: "删除父节点"

    -
    function setRemoveTitle(treeId, treeNode) {
    -	return treeNode.isParent ? "删除父节点":"删除叶子节点";
    -}
    -var setting = {
    -	edit: {
    -		enable: true,
    -		showRemoveBtn: true,
    -		removeTitle: setRemoveTitle
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.renameTitle.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.renameTitle.html deleted file mode 100644 index 2dfbcca1..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.renameTitle.html +++ /dev/null @@ -1,48 +0,0 @@ -
    -
    -

    String / Function(treeId, treeNode)setting.edit.renameTitle

    -

    概述[ 依赖 jquery.ztree.exedit 扩展 js ]

    -
    -

    -
    -

    编辑名称按钮的 Title 辅助信息。[setting.edit.enable = true & setting.edit.showRenameBtn = true 时生效]

    -

    默认值:"rename"

    -
    -
    -

    String 格式说明

    -
    -

    设置鼠标移动到 编辑名称按钮 上时,浏览器自动弹出的辅助信息内容,可根据用户需要自行修改

    -
    -

    Function 参数说明

    -
    -

    treeIdString

    -

    对应 zTree 的 treeId,便于用户操控

    -

    treeNodeJSON

    -

    需要设置编辑名称按钮 Title 信息的节点 JSON 数据对象

    -

    返回值String

    -

    返回值同 String 格式的数据

    -
    -

    setting & function 举例

    -

    1. 设置编辑名称按钮的 Title 辅助信息为: "编辑节点名称"

    -
    var setting = {
    -	edit: {
    -		enable: true,
    -		showRenameBtn: true,
    -		renameTitle: "编辑节点名称"
    -	}
    -};
    -......
    -

    2. 设置父节点编辑名称按钮的 Title 辅助信息为: "编辑父节点名称"

    -
    function setRenameTitle(treeId, treeNode) {
    -	return treeNode.isParent ? "编辑父节点名称":"编辑叶子节点名称";
    -}
    -var setting = {
    -	edit: {
    -		enable: true,
    -		showRenameBtn: true,
    -		renameTitle: setRenameTitle
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.showRemoveBtn.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.showRemoveBtn.html deleted file mode 100644 index db62053c..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.showRemoveBtn.html +++ /dev/null @@ -1,49 +0,0 @@ -
    -
    -

    Boolean / Function(treeId, treeNode)setting.edit.showRemoveBtn

    -

    概述[ 依赖 jquery.ztree.exedit 扩展 js ]

    -
    -

    -
    -

    设置是否显示删除按钮。[setting.edit.enable = true 时生效]

    -

    当点击某节点的删除按钮时:

    -

    1、首先触发 setting.callback.beforeRemove 回调函数,用户可判定是否进行删除操作。

    -

    2、如果未设置 beforeRemove 或 beforeRemove 返回 true,则删除节点并触发 setting.callback.onRemove 回调函数。

    -

    默认值:true

    -
    -
    -

    Boolean 格式说明

    -
    -

    true / false 分别表示 显示 / 隐藏 删除按钮

    -
    -

    Function 参数说明

    -
    -

    treeIdString

    -

    对应 zTree 的 treeId,便于用户操控

    -

    treeNodeJSON

    -

    需要设置是否显示删除按钮的节点 JSON 数据对象

    -

    返回值Boolean

    -

    返回值同 Boolean 格式的数据

    -
    -

    setting & function 举例

    -

    1. 不显示删除按钮

    -
    var setting = {
    -	edit: {
    -		enable: true,
    -		showRemoveBtn: false
    -	}
    -};
    -......
    -

    2. 设置所有的父节点不显示删除按钮

    -
    function setRemoveBtn(treeId, treeNode) {
    -	return !treeNode.isParent;
    -}
    -var setting = {
    -	edit: {
    -		enable: true,
    -		showRemoveBtn: setRemoveBtn
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.showRenameBtn.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.showRenameBtn.html deleted file mode 100644 index 33dd37aa..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.showRenameBtn.html +++ /dev/null @@ -1,51 +0,0 @@ -
    -
    -

    Boolean / Function(treeId, treeNode)setting.edit.showRenameBtn

    -

    概述[ 依赖 jquery.ztree.exedit 扩展 js ]

    -
    -

    -
    -

    设置是否显示编辑名称按钮。[setting.edit.enable = true 时生效]

    -

    当点击某节点的编辑名称按钮时:

    -

    1、进入节点编辑名称状态。

    -

    2、编辑名称完毕(Input 失去焦点 或 按下 Enter 键),会触发 setting.callback.beforeRename 回调函数,用户可根据自己的规则判定是否允许修改名称。

    -

    3、如果 beforeRename 返回 false,则继续保持编辑名称状态,直到名称符合规则位置 (按下 ESC 键可取消编辑名称状态,恢复原名称)。

    -

    4、如果未设置 beforeRename 或 beforeRename 返回 true,则结束节点编辑名称状态,更新节点名称,并触发 setting.callback.onRename 回调函数。

    -

    默认值:true

    -
    -
    -

    Boolean 格式说明

    -
    -

    true / false 分别表示 显示 / 隐藏 编辑名称按钮

    -
    -

    Function 参数说明

    -
    -

    treeIdString

    -

    对应 zTree 的 treeId,便于用户操控

    -

    treeNodeJSON

    -

    需要设置是否显示编辑名称按钮的节点 JSON 数据对象

    -

    返回值Boolean

    -

    返回值同 Boolean 格式的数据

    -
    -

    setting & function 举例

    -

    1. 不显示编辑名称按钮

    -
    var setting = {
    -	edit: {
    -		enable: true,
    -		showRenameBtn: false
    -	}
    -};
    -......
    -

    2. 设置所有的父节点不显示编辑名称按钮

    -
    function setRenameBtn(treeId, treeNode) {
    -	return !treeNode.isParent;
    -}
    -var setting = {
    -	edit: {
    -		enable: true,
    -		showRenameBtn: setRenameBtn
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.treeId.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.treeId.html deleted file mode 100644 index 819743eb..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.treeId.html +++ /dev/null @@ -1,14 +0,0 @@ -
    -
    -

    Stringsetting.treeId

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    zTree 的唯一标识,初始化后,等于 用户定义的 zTree 容器的 id 属性值。

    -

    请勿进行初始化 或 修改,属于内部参数。

    -
    -
    - -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.treeObj.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.treeObj.html deleted file mode 100644 index 37684a19..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.treeObj.html +++ /dev/null @@ -1,14 +0,0 @@ -
    -
    -

    Objectsetting.treeObj

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    zTree 容器的 jQuery 对象,主要功能:便于操作。

    -

    请勿进行初始化 或 修改,属于内部参数。

    -
    -
    - -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.addDiyDom.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.addDiyDom.html deleted file mode 100644 index 0a508acc..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.addDiyDom.html +++ /dev/null @@ -1,40 +0,0 @@ -
    -
    -

    Function(treeId, treeNode)setting.view.addDiyDom

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    用于在节点上固定显示用户自定义控件

    -

    1. 大数据量的节点加载请注意:在 addDiyDom 中针对每个节点 查找 DOM 对象并且添加新 DOM 控件,肯定会影响初始化性能;如果不是必须使用,建议不使用此功能

    -

    2. 属于高级应用,使用时请确保对 zTree 比较了解。

    -

    默认值:null

    -
    -
    -

    Function 参数说明

    -
    -

    treeIdString

    -

    对应 zTree 的 treeId,便于用户操控

    -

    treeNodeJSON

    -

    需要显示自定义控件的节点 JSON 数据对象

    -
    -

    setting & function 举例

    -

    1. 设置节点后面显示一个按钮

    -
    var setting = {
    -	view: {
    -		addDiyDom: addDiyDom
    -	}
    -};
    -function addDiyDom(treeId, treeNode) {
    -	var aObj = $("#" + treeNode.tId + "_a");
    -	if ($("#diyBtn_"+treeNode.id).length>0) return;
    -	var editStr = "<span id='diyBtn_space_" +treeNode.id+ "' > </span>"
    -		+ "<button type='button' class='diyBtn1' id='diyBtn_" + treeNode.id
    -		+ "' title='"+treeNode.name+"' onfocus='this.blur();'></button>";
    -	aObj.append(editStr);
    -	var btn = $("#diyBtn_"+treeNode.id);
    -	if (btn) btn.bind("click", function(){alert("diy Button for " + treeNode.name);});
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.addHoverDom.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.addHoverDom.html deleted file mode 100644 index f073e79c..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.addHoverDom.html +++ /dev/null @@ -1,45 +0,0 @@ -
    -
    -

    Function(treeId, treeNode)setting.view.addHoverDom

    -

    概述[ 依赖 jquery.ztree.exedit 扩展 js ]

    -
    -

    -
    -

    用于当鼠标移动到节点上时,显示用户自定义控件,显示隐藏状态同 zTree 内部的编辑、删除按钮

    -

    请务必与 setting.view.removeHoverDom 同时使用;属于高级应用,使用时请确保对 zTree 比较了解。

    -

    默认值:null

    -
    -
    -

    Function 参数说明

    -
    -

    treeIdString

    -

    对应 zTree 的 treeId,便于用户操控

    -

    treeNodeJSON

    -

    需要显示自定义控件的节点 JSON 数据对象

    -
    -

    setting & function 举例

    -

    1. 设置鼠标移到节点上,在后面显示一个按钮

    -
    var setting = {
    -	view: {
    -		addHoverDom: addHoverDom,
    -		removeHoverDom: removeHoverDom,
    -		......
    -	}
    -};
    -function addHoverDom(treeId, treeNode) {
    -	var aObj = $("#" + treeNode.tId + "_a");
    -	if ($("#diyBtn_"+treeNode.id).length>0) return;
    -	var editStr = "<span id='diyBtn_space_" +treeNode.id+ "' > </span>"
    -		+ "<button type='button' class='diyBtn1' id='diyBtn_" + treeNode.id
    -		+ "' title='"+treeNode.name+"' onfocus='this.blur();'></button>";
    -	aObj.append(editStr);
    -	var btn = $("#diyBtn_"+treeNode.id);
    -	if (btn) btn.bind("click", function(){alert("diy Button for " + treeNode.name);});
    -};
    -function removeHoverDom(treeId, treeNode) {
    -	$("#diyBtn_"+treeNode.id).unbind().remove();
    -	$("#diyBtn_space_" +treeNode.id).unbind().remove();
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.autoCancelSelected.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.autoCancelSelected.html deleted file mode 100644 index 4890f787..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.autoCancelSelected.html +++ /dev/null @@ -1,26 +0,0 @@ -
    -
    -

    Booleansetting.view.autoCancelSelected

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    点击节点时,按下 Ctrl 或 Cmd 键是否允许取消选择操作。

    -

    如果不需要此功能,请设置为 false。

    -

    默认值: true

    -
    -
    -

    Boolean 格式说明

    -
    -

    true / false 分别表示 支持 / 不支持 配合 Ctrl 或 Cmd 键进行取消节点选择的操作

    -
    -

    setting 举例

    -

    1. 禁止配合 Ctrl 或 Cmd 键进行取消节点选择的操作

    -
    var setting = {
    -	view: {
    -		autoCancelSelected: false
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.dblClickExpand.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.dblClickExpand.html deleted file mode 100644 index 5f3db964..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.dblClickExpand.html +++ /dev/null @@ -1,44 +0,0 @@ -
    -
    -

    Boolean / Function(treeId, treeNode)setting.view.dblClickExpand

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    双击节点时,是否自动展开父节点的标识

    -

    默认值: true

    -
    -
    -

    Boolean 格式说明

    -
    -

    true / false 分别表示双击节点 切换 / 不切换 展开状态

    -
    -

    Function 参数说明

    -
    -

    treeIdString

    -

    对应 zTree 的 treeId,便于用户操控

    -

    treeNodeJSON

    -

    需要设置是否双击切换展开状态的节点 JSON 数据对象

    -

    返回值Boolean

    -

    返回值同 Boolean 格式的数据

    -
    -

    setting 举例

    -

    1. 取消默认双击展开父节点的功能

    -
    var setting = {
    -	view: {
    -		dblClickExpand: false
    -	}
    -};
    -......
    -

    2. 设置 zTree 仅仅 level=0 的父节点取消双击展开的功能

    -
    function dblClickExpand(treeId, treeNode) {
    -	return treeNode.level > 0;
    -};
    -var setting = {
    -	view: {
    -		dblClickExpand: dblClickExpand
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.expandSpeed.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.expandSpeed.html deleted file mode 100644 index 3b799c32..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.expandSpeed.html +++ /dev/null @@ -1,31 +0,0 @@ -
    -
    -

    String / Numbersetting.view.expandSpeed

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    zTree 节点展开、折叠时的动画速度,设置方法同 JQuery 动画效果中 speed 参数。

    -

    IE6 下会自动关闭动画效果,以保证 zTree 的操作速度

    -

    默认值:"fast"

    -
    -
    -

    String 格式说明

    -
    -

    三种预定速度之一的字符串("slow", "normal", or "fast")

    -

    设置为 "" 时,不显示动画效果

    -
    -

    Number 格式说明

    -
    -

    表示动画时长的毫秒数值 (如:1000)

    -
    -

    setting 举例

    -

    1. 设置为慢速显示动画效果

    -
    var setting = {
    -	view: {
    -		expandSpeed: "slow"
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.fontCss.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.fontCss.html deleted file mode 100644 index 54efb1bb..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.fontCss.html +++ /dev/null @@ -1,42 +0,0 @@ -
    -
    -

    JSON / Function(treeId, treeNode)setting.view.fontCss

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    个性化文字样式,只针对 zTree 在节点上显示的<A>对象。

    -

    默认值:{}

    -
    -
    -

    JSON 格式说明

    -
    -

    JSON 格式为 JQuery css方法中的 JSON 对象格式,例如:{color:"#ff0011", background:"blue"}

    -
    -

    Function 参数说明

    -
    -

    treeIdString

    -

    对应 zTree 的 treeId,便于用户操控

    -

    treeNodeJSON

    -

    需要设置自定义样式的节点 JSON 数据对象

    -

    返回值JSON

    -

    返回值同 JSON 格式的数据,例如:{color:"#ff0011", background:"blue"}

    -
    -

    setting & function 举例

    -

    1. 不修改CSS,设置全部节点 name 显示为红色

    -
    var setting = {
    -	view: {
    -		fontCss : {color:"red"}
    -	}
    -};
    -

    2. 设置 level=0 的节点 name 显示为红色

    -
    function setFontCss(treeId, treeNode) {
    -	return treeNode.level == 0 ? {color:"red"} : {};
    -};
    -var setting = {
    -	view: {
    -		fontCss: setFontCss
    -	}
    -};
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.nameIsHTML.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.nameIsHTML.html deleted file mode 100644 index a1d916c5..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.nameIsHTML.html +++ /dev/null @@ -1,27 +0,0 @@ -
    -
    -

    Booleansetting.view.nameIsHTML

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    设置 name 属性是否支持 HTML 脚本

    -

    如果允许 HTML 脚本,请根据自己的需求做校验,避免出现 js 注入等安全问题。

    -

    默认值: false

    -
    -
    -

    Boolean 格式说明

    -
    -

    true / false 分别表示 支持 / 不支持 HTML 脚本

    -
    -

    setting 举例

    -

    1. 设置 name 属性支持 HTML 脚本

    -
    var setting = {
    -	view: {
    -		nameIsHTML: true
    -	}
    -};
    -var node = {"name":"<font color='red'>test</font>"};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.removeHoverDom.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.removeHoverDom.html deleted file mode 100644 index bb1a9aa2..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.removeHoverDom.html +++ /dev/null @@ -1,45 +0,0 @@ -
    -
    -

    Function(treeId, treeNode)setting.view.removeHoverDom

    -

    概述[ 依赖 jquery.ztree.exedit 扩展 js ]

    -
    -

    -
    -

    用于当鼠标移出节点时,隐藏用户自定义控件,显示隐藏状态同 zTree 内部的编辑、删除按钮

    -

    请务必与 addHoverDom 同时使用;属于高级应用,使用时请确保对 zTree 比较了解。

    -

    默认值:null

    -
    -
    -

    Function 参数说明

    -
    -

    treeIdString

    -

    对应 zTree 的 treeId,便于用户操控

    -

    treeNodeJSON

    -

    需要隐藏自定义控件的节点 JSON 数据对象

    -
    -

    setting & function 举例

    -

    1. 设置鼠标移到节点上,在后面显示一个按钮

    -
    var setting = {
    -	view: {
    -		addHoverDom: addHoverDom,
    -		removeHoverDom: removeHoverDom,
    -		......
    -	}
    -};
    -function addHoverDom(treeId, treeNode) {
    -	var aObj = $("#" + treeNode.tId + "_a");
    -	if ($("#diyBtn_"+treeNode.id).length>0) return;
    -	var editStr = "<span id='diyBtn_space_" +treeNode.id+ "' > </span>"
    -		+ "<button type='button' class='diyBtn1' id='diyBtn_" + treeNode.id
    -		+ "' title='"+treeNode.name+"' onfocus='this.blur();'></button>";
    -	aObj.append(editStr);
    -	var btn = $("#diyBtn_"+treeNode.id);
    -	if (btn) btn.bind("click", function(){alert("diy Button for " + treeNode.name);});
    -};
    -function removeHoverDom(treeId, treeNode) {
    -	$("#diyBtn_"+treeNode.id).unbind().remove();
    -	$("#diyBtn_space_" +treeNode.id).unbind().remove();
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.selectedMulti.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.selectedMulti.html deleted file mode 100644 index 2cc65a2e..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.selectedMulti.html +++ /dev/null @@ -1,27 +0,0 @@ -
    -
    -

    Booleansetting.view.selectedMulti

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    设置是否允许同时选中多个节点。

    -

    默认值: true

    -
    -
    -

    Boolean 格式说明

    -
    -

    true / false 分别表示 支持 / 不支持 同时选中多个节点

    -

    1、设置为 true时,按下 Ctrl 或 Cmd 键可以选中多个节点

    -

    2、设置为 true / false 都不影响按下 Ctrl 或 Cmd 键可以让已选中的节点取消选中状态( 取消选中状态可以参考 setting.view.autoCancelSelected )

    -
    -

    setting 举例

    -

    1. 禁止多点同时选中的功能

    -
    var setting = {
    -	view: {
    -		selectedMulti: false
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.showIcon.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.showIcon.html deleted file mode 100644 index ebe423ca..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.showIcon.html +++ /dev/null @@ -1,44 +0,0 @@ -
    -
    -

    Boolean / Function(treeId, treeNode)setting.view.showIcon

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    设置 zTree 是否显示节点的图标。

    -

    默认值:true

    -
    -
    -

    Boolean 格式说明

    -
    -

    true / false 分别表示 显示 / 隐藏 图标

    -
    -

    Function 参数说明

    -
    -

    treeIdString

    -

    对应 zTree 的 treeId,便于用户操控

    -

    treeNodeJSON

    -

    需要设置是否显示图标的节点 JSON 数据对象

    -

    返回值Boolean

    -

    返回值同 Boolean 格式的数据

    -
    -

    setting & function 举例

    -

    1. 设置 zTree 不显示图标

    -
    var setting = {
    -	view: {
    -		showIcon: false
    -	}
    -};
    -......
    -

    2. 设置 zTree 仅仅 level=2 的节点不显示图标

    -
    function showIconForTree(treeId, treeNode) {
    -	return treeNode.level != 2;
    -};
    -var setting = {
    -	view: {
    -		showIcon: showIconForTree
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.showLine.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.showLine.html deleted file mode 100644 index 02ab5ebb..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.showLine.html +++ /dev/null @@ -1,25 +0,0 @@ -
    -
    -

    Booleansetting.view.showLine

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    设置 zTree 是否显示节点之间的连线。

    -

    默认值:true

    -
    -
    -

    Boolean 格式说明

    -
    -

    true / false 分别表示 显示 / 不显示 连线

    -
    -

    setting 举例

    -

    1. 设置 zTree 不显示节点之间的连线

    -
    var setting = {
    -	view: {
    -		showLine: false
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.showTitle.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.showTitle.html deleted file mode 100644 index 5bcb8600..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.showTitle.html +++ /dev/null @@ -1,46 +0,0 @@ -
    -
    -

    Boolean / Function(treeId, treeNode)setting.view.showTitle

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    设置 zTree 是否显示节点的 title 提示信息(即节点 DOM 的 title 属性)。

    -

    请务必与 setting.data.key.title 同时使用。

    -

    默认值:true

    -
    -
    -

    Boolean 格式说明

    -
    -

    true / false 分别表示 显示 / 隐藏 提示信息

    -

    如果 setting.view.showTitle = true & setting.data.key.title = '',zTree 会自动使用 setting.data.key.name 指定的节点名称当做 title

    -
    -

    Function 参数说明

    -
    -

    treeIdString

    -

    对应 zTree 的 treeId,便于用户操控

    -

    treeNodeJSON

    -

    需要设置是否显示提示信息的节点 JSON 数据对象

    -

    返回值Boolean

    -

    返回值同 Boolean 格式的数据

    -
    -

    setting & function 举例

    -

    1. 设置 zTree 不显示提示信息

    -
    var setting = {
    -	view: {
    -		showTitle: false
    -	}
    -};
    -......
    -

    2. 设置 zTree 仅仅 level=2 的节点不显示提示信息

    -
    function showTitleForTree(treeId, treeNode) {
    -	return treeNode.level != 2;
    -};
    -var setting = {
    -	view: {
    -		showTitle: showTitleForTree
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.txtSelectedEnable.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.txtSelectedEnable.html deleted file mode 100644 index c22a8c00..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.txtSelectedEnable.html +++ /dev/null @@ -1,25 +0,0 @@ -
    -
    -

    Booleansetting.view.txtSelectedEnable

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    设置 zTree 是否允许可以选择 zTree DOM 内的文本。

    -

    默认值:false

    -
    -
    -

    Boolean 格式说明

    -
    -

    true / false 分别表示 允许 / 不允许 选择 zTree Dom 内的文本

    -
    -

    setting & function 举例

    -

    1. 设置 zTree 允许选择文本

    -
    var setting = {
    -	view: {
    -		txtSelectedEnable: true
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.check_Child_State.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.check_Child_State.html deleted file mode 100644 index fa378994..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.check_Child_State.html +++ /dev/null @@ -1,43 +0,0 @@ -
    -
    -

    NumbertreeNode.check_Child_State

    -

    概述[ 依赖 jquery.ztree.excheck 扩展 js ]

    -
    -

    -
    -

    用于设置节点的子节点的 checkBox / radio 的半选状态。[setting.check.enable = true 时有效]

    -

    v3.x 针对节点数据对象提供 treeNode.getCheckStatus() 方法获取标准的半选状态

    -

    zTree 内部使用,请勿进行初始化 或 随意修改

    -

    默认值:true

    -
    -
    -

    Number 格式说明

    -
    -

    规则如下:

    - - - - - - - - - - - -
    setting.check.checkType = "checkbox"
    treeNode.check_Child_State勾选状态说明
    -1不存在子节点 或 子节点全部设置为 nocheck = true
    0无 子节点被勾选
    1部分 子节点被勾选
    2全部 子节点被勾选
    -
    - - - - - - - - - - -
    setting.check.checkType = "radio"
    treeNode.check_Child_State勾选状态说明
    -1不存在子节点 或 子节点全部设置为 nocheck = true
    0无 子节点被勾选
    2有 子节点被勾选
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.check_Focus.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.check_Focus.html deleted file mode 100644 index 785aec9f..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.check_Focus.html +++ /dev/null @@ -1,19 +0,0 @@ -
    -
    -

    BooleantreeNode.check_Focus

    -

    概述[ 依赖 jquery.ztree.excheck 扩展 js ]

    -
    -

    -
    -

    用于设置节点的 checkBox / radio 的 focus 状态。[setting.check.enable = true 时有效]

    -

    zTree 内部使用,请勿进行初始化 或 随意修改

    -

    默认值:false

    -
    -
    -

    Boolean 格式说明

    -
    -

    true 表示当前鼠标移动到输入框内

    -

    false 表示当前鼠标移动到输入框外

    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.checked.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.checked.html deleted file mode 100644 index 049d6ba4..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.checked.html +++ /dev/null @@ -1,32 +0,0 @@ -
    -
    -

    BooleantreeNode.checked

    -

    概述[ 依赖 jquery.ztree.excheck 扩展 js ]

    -
    -

    -
    -

    节点的 checkBox / radio 的 勾选状态。[setting.check.enable = true & treeNode.nocheck = false 时有效]

    -

    1、如果不使用 checked 属性设置勾选状态,请修改 setting.data.key.checked

    -

    2、建立 treeNode 数据时设置 treeNode.checked = true 可以让节点的输入框默认为勾选状态

    -

    3、修改节点勾选状态,可以使用 treeObj.checkNode / checkAllNodes / updateNode 方法,具体使用哪种请根据自己的需求而定

    -

    4、为了解决部分朋友生成 json 数据出现的兼容问题, 支持 "false","true" 字符串格式的数据

    -

    默认值:false

    -
    -
    -

    Boolean 格式说明

    -
    -

    true 表示节点的输入框被勾选

    -

    false 表示节点的输入框未勾选

    -
    -

    treeNode 举例

    -

    1. 初始化的数据设置 默认为勾选状态

    -
    var nodes = [
    -{ "id":1, "name":"test1", checked:true },
    -{ "id":2, "name":"test2", checked:true }
    -]
    -

    2. 获取第一个根节点的勾选状态

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var checked = treeObj.getNodes()[0].checked;
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.checkedOld.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.checkedOld.html deleted file mode 100644 index cab717e7..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.checkedOld.html +++ /dev/null @@ -1,25 +0,0 @@ -
    -
    -

    BooleantreeNode.checkedOld

    -

    概述[ 依赖 jquery.ztree.excheck 扩展 js ]

    -
    -

    -
    -

    节点的 checkBox / radio 在初始化时的 勾选状态。[setting.check.enable = true & treeNode.nocheck = false 时有效]

    -

    1、zTree 初始化节点数据时会对此属性进行赋值,因此请勿对此属性初始化

    -

    2、如需配合 zTreeObj.getChangeCheckedNodes 方法实现特殊功能,可以根据需求在使用中自行修改 checkedOld 数据

    -

    默认值:checked的初始化值

    -
    -
    -

    Boolean 格式说明

    -
    -

    true 表示节点初始化时 输入框被勾选

    -

    false 表示节点初始化时 输入框未勾选

    -
    -

    treeNode 举例

    -

    1. 获取第一个根节点的初始勾选状态

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var checkedOld = treeObj.getNodes()[0].checkedOld;
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.children.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.children.html deleted file mode 100644 index 4bab8351..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.children.html +++ /dev/null @@ -1,35 +0,0 @@ -
    -
    -

    Array(JSON)treeNode.children

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    节点的子节点数据集合。

    -

    1、如果不使用 children 属性保存子节点数据,请修改 setting.data.key.children

    -

    2、异步加载时,对于设置了 isParent = true 的节点,在展开时将进行异步加载

    -

    默认值:无

    -
    -
    -

    Array(JSON) 格式说明

    -
    -

    标准的 JSON 数据对象

    -
    -

    treeNode 举例

    -

    1. 初始化的标准嵌套格式的 JSON 数据对象

    -
    var nodes = [
    -{ "id":1, "name":"test1",
    -	children: [
    -	{ "id":3, "name":"test3"},
    -	{ "id":4, "name":"test4"},
    -	{ "id":5, "name":"test5"}
    -	]
    -},
    -{ "id":2, "name":"test2"  }
    -]
    -

    2. 获取第一个根节点的子节点

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getNodes()[0].children;
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.chkDisabled.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.chkDisabled.html deleted file mode 100644 index e6bb0322..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.chkDisabled.html +++ /dev/null @@ -1,28 +0,0 @@ -
    -
    -

    BooleantreeNode.chkDisabled

    -

    概述[ 依赖 jquery.ztree.excheck 扩展 js ]

    -
    -

    -
    -

    1、设置节点的 checkbox / radio 是否禁用 [setting.check.enable = true 时有效]

    -

    2、为了解决部分朋友生成 json 数据出现的兼容问题, 支持 "false","true" 字符串格式的数据

    -

    3、请勿对已加载的节点修改此属性,禁止 或 取消禁止 请使用 setChkDisabled() 方法

    -

    4、初始化时,如果需要子孙节点继承父节点的 chkDisabled 属性,请设置 setting.check.chkDisabledInherit 属性

    -

    默认值:false

    -
    -
    -

    Boolean 格式说明

    -
    -

    true 表示此节点的 checkbox / radio 被禁用。

    -

    false 表示此节点的 checkbox / radio 可以使用。

    -
    -

    treeNode 举例

    -

    1. 禁用节点 checkbox / radio

    -
    var nodes = [
    -	{ "id":1, "name":"test1", "checked":true, "chkDisabled":true},
    -	{ "id":2, "name":"test2", "chkDisabled":true},
    -	{ "id":3, "name":"test3"}
    -]
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.click.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.click.html deleted file mode 100644 index 833c6784..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.click.html +++ /dev/null @@ -1,24 +0,0 @@ -
    -
    -

    StringtreeNode.click

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    最简单的 click 事件操作。相当于 onclick="..." 的内容。 如果操作较复杂,请使用 onClick 事件回调函数。

    -

    由于 IE 对于 onclick 和 click事件共存时的处理与其他浏览器不同,所以请不要利用此参数控制是否允许跳转的操作(例如:treeNode.click = "return false;")。如有类似需求,请不要使用 url 属性设置网址,同时利用 onClick 回调函数控制跳转。

    -

    默认值:无

    -
    -
    -

    String 格式说明

    -
    -

    标准 javascript 语法, 例如:alert("test"); 等

    -
    -

    treeNode 举例

    -

    1. 设置某节点点击时,弹出信息框

    -
    var nodes = [
    -	{ "id":1, "name":"Google CN", "url":"http://g.cn", "click":"alert('test');"},
    -	......
    -]
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.diy.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.diy.html deleted file mode 100644 index b2fb0d9e..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.diy.html +++ /dev/null @@ -1,15 +0,0 @@ -
    -
    -

    ?treeNode.* DIY *

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    用于保存节点的其他自定义数据信息,不要与 zTree 使用的属性相同即可,用户可随意设定。

    -
    -
    -

    treeNode 举例

    -

    1. 设置节点的备用英文名称

    -
    var node = { "id":1, "name":"test1", "ename":"test eName"};
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.editNameFlag.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.editNameFlag.html deleted file mode 100644 index 51162b8b..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.editNameFlag.html +++ /dev/null @@ -1,19 +0,0 @@ -
    -
    -

    BooleantreeNode.editNameFlag

    -

    概述[ 依赖 jquery.ztree.exedit 扩展 js ]

    -
    -

    -
    -

    用于记录节点是否处于编辑名称状态。[setting.edit.enable = true 时有效]

    -

    zTree 内部使用,请勿进行初始化 或 随意修改

    -

    默认值:false

    -
    -
    -

    Boolean 格式说明

    -
    -

    true 表示节点处于编辑名称状态

    -

    false 表示节点未处于编辑名称状态

    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.getCheckStatus.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.getCheckStatus.html deleted file mode 100644 index fc20eac4..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.getCheckStatus.html +++ /dev/null @@ -1,63 +0,0 @@ -
    -
    -

    Function()treeNode.getCheckStatus

    -

    概述[ 依赖 jquery.ztree.excheck 扩展 js ]

    -
    -

    -
    -

    获取节点 checkbox / radio 半勾选状态。[setting.check.enable = true 时有效]

    -

    初始化节点数据时,由 zTree 增加此属性,请勿提前赋值

    -
    -
    -

    Function 参数说明

    -
    -

    返回值JSON

    -
    {
    -	checked: true, //等同于 treeNode.checked
    -	half: true  //规则见下表
    -}
    - - - - - - - - - - - - - - - - - - -
    setting.check.checkType = "checkbox"
    treeNode.checkedtreeNode.check_Child_StatetreeNode.halfCheck half
    --truetrue
     
    true-1falsefalse
    true0falsetrue
    true1falsetrue
    true2falsefalse
     
    false-1falsefalse
    false0falsefalse
    false1falsetrue
    false2falsetrue
    -
    - - - - - - - - - - - - - - - - -
    setting.check.checkType = "radio"
    treeNode.checkedtreeNode.check_Child_StatetreeNode.halfCheck half
    --truetrue
     
    true-1falsefalse
    true0falsefalse
    true2falsetrue
     
    false-1falsefalse
    false0falsefalse
    false2falsetrue
    -
    -

    treeNode 举例

    -

    1. 获取第一个根节点的半选状态

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var halfCheck = treeObj.getNodes()[0].getCheckStatus();
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.getIndex.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.getIndex.html deleted file mode 100644 index babdc2e8..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.getIndex.html +++ /dev/null @@ -1,26 +0,0 @@ -
    -
    -

    Function()treeNode.getIndex

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    获取 treeNode 节点在同级节点中的位置。

    -

    初始化节点数据时,由 zTree 增加此属性,请勿提前赋值

    -
    -
    -

    Function 参数说明

    -
    -

    返回值Number

    -

    treeNode 节点在同级节点中的位置。(从 0 开始)

    -
    -

    treeNode 举例

    -

    1. 获取当前被选中的节点在同级节点中的位置

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var sNodes = treeObj.getSelectedNodes();
    -if (sNodes.length > 0) {
    -	var node = sNodes[0].getIndex();
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.getNextNode.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.getNextNode.html deleted file mode 100644 index 7a0fa5c0..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.getNextNode.html +++ /dev/null @@ -1,27 +0,0 @@ -
    -
    -

    Function()treeNode.getNextNode

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    获取与 treeNode 节点相邻的后一个节点。

    -

    初始化节点数据时,由 zTree 增加此属性,请勿提前赋值

    -
    -
    -

    Function 参数说明

    -
    -

    返回值JSON

    -

    与 treeNode 节点相邻的后一个节点。

    -

    如果 treeNode 是最后一个节点,返回 null 。

    -
    -

    treeNode 举例

    -

    1. 获取当前被选中的节点的下一个节点

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var sNodes = treeObj.getSelectedNodes();
    -if (sNodes.length > 0) {
    -	var node = sNodes[0].getNextNode();
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.getParentNode.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.getParentNode.html deleted file mode 100644 index 31309a62..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.getParentNode.html +++ /dev/null @@ -1,27 +0,0 @@ -
    -
    -

    Function()treeNode.getParentNode

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    获取 treeNode 节点的父节点。

    -

    初始化节点数据时,由 zTree 增加此属性,请勿提前赋值

    -
    -
    -

    Function 参数说明

    -
    -

    返回值JSON

    -

    treeNode 节点的父节点 JSON 数据对象。

    -

    如果 treeNode 是根节点,返回 null 。

    -
    -

    treeNode 举例

    -

    1. 获取当前被选中的节点的父节点

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var sNodes = treeObj.getSelectedNodes();
    -if (sNodes.length > 0) {
    -	var node = sNodes[0].getParentNode();
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.getPath.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.getPath.html deleted file mode 100644 index 46318f05..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.getPath.html +++ /dev/null @@ -1,26 +0,0 @@ -
    -
    -

    Function()treeNode.getPath

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    获取 treeNode 节点的所有父节点(包括自己)。

    -

    初始化节点数据时,由 zTree 增加此属性,请勿提前赋值

    -
    -
    -

    Function 参数说明

    -
    -

    返回值Array (JSON)

    -

    treeNode 节点的所有父节点的数据集合(包括自己)

    -
    -

    treeNode 举例

    -

    1. 获取当前被选中的节点的所有父节点

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var sNodes = treeObj.getSelectedNodes();
    -if (sNodes.length > 0) {
    -	var node = sNodes[0].getPath();
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.getPreNode.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.getPreNode.html deleted file mode 100644 index 9d841841..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.getPreNode.html +++ /dev/null @@ -1,27 +0,0 @@ -
    -
    -

    Function()treeNode.getPreNode

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    获取与 treeNode 节点相邻的前一个节点。

    -

    初始化节点数据时,由 zTree 增加此属性,请勿提前赋值

    -
    -
    -

    Function 参数说明

    -
    -

    返回值JSON

    -

    与 treeNode 节点相邻的前一个节点。

    -

    如果 treeNode 是第一个节点,返回 null 。

    -
    -

    treeNode 举例

    -

    1. 获取当前被选中的节点的前一个节点

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var sNodes = treeObj.getSelectedNodes();
    -if (sNodes.length > 0) {
    -	var node = sNodes[0].getPreNode();
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.halfCheck.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.halfCheck.html deleted file mode 100644 index 23ac744c..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.halfCheck.html +++ /dev/null @@ -1,29 +0,0 @@ -
    -
    -

    BooleantreeNode.halfCheck

    -

    概述[ 依赖 jquery.ztree.excheck 扩展 js ]

    -
    -

    -
    -

    强制节点的 checkBox / radio 的 半勾选状态。[setting.check.enable = true & treeNode.nocheck = false 时有效]

    -

    1、强制为半勾选状态后,不再进行自动计算半勾选状态

    -

    2、设置 treeNode.halfCheck = false 或 null 才能恢复自动计算半勾选状态

    -

    3、为了解决部分朋友生成 json 数据出现的兼容问题, 支持 "false","true" 字符串格式的数据

    -

    默认值:false

    -
    -
    -

    Boolean 格式说明

    -
    -

    true 表示节点的输入框 强行设置为半勾选

    -

    false 表示节点的输入框 根据 zTree 的规则自动计算半勾选状态

    -
    -

    treeNode 举例

    -

    1. 初始化的数据设置 默认为半勾选状态

    -
    var nodes = [
    -{ "id":1, "name":"test1", isParent:true, checked:true, halfCheck:true },
    -{ "id":2, "name":"test2", isParent:true, checked:false, halfCheck:true },
    -{ "id":3, "name":"test3", isParent:true, checked:true },
    -{ "id":4, "name":"test4", isParent:true, checked:false }
    -]
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.icon.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.icon.html deleted file mode 100644 index 69c5db16..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.icon.html +++ /dev/null @@ -1,33 +0,0 @@ -
    -
    -

    StringtreeNode.icon

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    节点自定义图标的 URL 路径。

    -

    1、父节点如果只设置 icon ,会导致展开、折叠时都使用同一个图标

    -

    2、父节点展开、折叠使用不同的个性化图标需要同时设置 treeNode.iconOpen / treeNode.iconClose 两个属性

    -

    3、如果想利用 className 设置个性化图标,需要设置 treeNode.iconSkin 属性

    -

    默认值:无

    -
    -
    -

    String 格式说明

    -
    -

    图标图片的 url 可以是相对路径也可以是绝对路径

    -

    设置相对路径请注意页面与图片之间的关系,确保图片能够正常加载

    -
    -

    treeNode 举例

    -

    1. 设置节点的个性化图标

    -
    var nodes = [
    -	//父节点展开 折叠时使用相同的图标
    -	{ name:"父节点1", icon:"/img/parent.gif"},
    -
    -	//父节点展开 折叠时分别使用不同的图标
    -	{ name:"父节点2", iconOpen:"/img/open.gif", iconClose:"/img/close.gif"}, 
    -
    -	//叶子节点个性化图标
    -	{ name:"叶子节点", icon:"/img/leaf.gif"}
    -]
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.iconClose.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.iconClose.html deleted file mode 100644 index f51da9c9..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.iconClose.html +++ /dev/null @@ -1,33 +0,0 @@ -
    -
    -

    StringtreeNode.iconClose

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    父节点自定义折叠时图标的 URL 路径。

    -

    1、此属性只针对父节点有效

    -

    2、此属性必须与 iconOpen 同时使用

    -

    3、如果想利用 className 设置个性化图标,需要设置 treeNode.iconSkin 属性

    -

    默认值:无

    -
    -
    -

    String 格式说明

    -
    -

    图标图片的 url 可以是相对路径也可以是绝对路径

    -

    设置相对路径请注意页面与图片之间的关系,确保图片能够正常加载

    -
    -

    treeNode 举例

    -

    1. 设置节点的个性化图标

    -
    var nodes = [
    -	//父节点展开 折叠时使用相同的图标
    -	{ name:"父节点1", icon:"/img/parent.gif"},
    -
    -	//父节点展开 折叠时分别使用不同的图标
    -	{ name:"父节点2", iconOpen:"/img/open.gif", iconClose:"/img/close.gif"}, 
    -
    -	//叶子节点个性化图标
    -	{ name:"叶子节点", icon:"/img/leaf.gif"}
    -]
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.iconOpen.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.iconOpen.html deleted file mode 100644 index 29c9baae..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.iconOpen.html +++ /dev/null @@ -1,33 +0,0 @@ -
    -
    -

    StringtreeNode.iconOpen

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    父节点自定义展开时图标的 URL 路径。

    -

    1、此属性只针对父节点有效

    -

    2、此属性必须与 iconClose 同时使用

    -

    3、如果想利用 className 设置个性化图标,需要设置 treeNode.iconSkin 属性

    -

    默认值:无

    -
    -
    -

    String 格式说明

    -
    -

    图标图片的 url 可以是相对路径也可以是绝对路径

    -

    设置相对路径请注意页面与图片之间的关系,确保图片能够正常加载

    -
    -

    treeNode 举例

    -

    1. 设置节点的个性化图标

    -
    var nodes = [
    -	//父节点展开 折叠时使用相同的图标
    -	{ name:"父节点1", icon:"/img/parent.gif"},
    -
    -	//父节点展开 折叠时分别使用不同的图标
    -	{ name:"父节点2", iconOpen:"/img/open.gif", iconClose:"/img/close.gif"}, 
    -
    -	//叶子节点个性化图标
    -	{ name:"叶子节点", icon:"/img/leaf.gif"}
    -]
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.iconSkin.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.iconSkin.html deleted file mode 100644 index d5d97269..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.iconSkin.html +++ /dev/null @@ -1,43 +0,0 @@ -
    -
    -

    StringtreeNode.iconSkin

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    节点自定义图标的 className

    -

    1、需要修改 css,增加相应 className 的设置

    -

    2、css 方式简单、方便,并且同时支持父节点展开、折叠状态切换图片

    -

    3、css 建议采用图片分割渲染的方式以减少反复加载图片,并且避免图片闪动

    -

    4、zTree v3.x 的 iconSkin 同样支持 IE6

    -

    5、如果想直接使用 图片的Url路径 设置节点的个性化图标,需要设置 treeNode.icon / treeNode.iconOpen / treeNode.iconClose 属性

    -

    默认值:无

    -
    -
    -

    String 格式说明

    -
    -

    设置个性图标的 className

    -
    -

    css & treeNode 举例

    -

    1. 设置节点的个性化图标

    -
    css 内容:
    -.ztree li span.button.diy01_ico_open, .ztree li span.button.diy01_ico_close{...}
    -
    -.ztree li span.button.diy02_ico_open{...}
    -.ztree li span.button.diy02_ico_close{...}
    -
    -.ztree li span.button.diy03_ico_docu{...}
    -
    -js中节点数据:
    -var nodes = [
    -	//父节点展开 折叠时使用相同的图标
    -	{ name:"父节点1", iconSkin:"diy01"},
    -
    -	//父节点展开 折叠时分别使用不同的图标
    -	{ name:"父节点2", iconSkin:"diy02"},
    -
    -	//叶子节点个性化图标
    -	{ name:"叶子节点", iconSkin:"diy03"}
    -]
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.isAjaxing.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.isAjaxing.html deleted file mode 100644 index 330c1202..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.isAjaxing.html +++ /dev/null @@ -1,26 +0,0 @@ -
    -
    -

    BooleantreeNode.isAjaxing

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    记录 treeNode 节点是否正在进行异步加载。

    -

    初始化节点数据时,由 zTree 增加此属性,请勿提前赋值

    -
    -
    -

    Boolean 格式说明

    -
    -

    true 表示节点正在进行异步加载

    -

    false 表示节点没有进行异步加载

    -
    -

    treeNode 举例

    -

    1. 查看当前被选中的节点是否节点正在进行异步加载

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var sNodes = treeObj.getSelectedNodes();
    -if (sNodes.length > 0) {
    -	var isAjaxing = sNodes[0].isAjaxing;
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.isFirstNode.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.isFirstNode.html deleted file mode 100644 index 83b80bd9..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.isFirstNode.html +++ /dev/null @@ -1,28 +0,0 @@ -
    -
    -

    BooleantreeNode.isFirstNode

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    记录 treeNode 节点是否为同级节点中的第一个节点。

    -

    使用 exhide 扩展后,只针对显示的节点设置此属性

    -

    初始化节点数据时,由 zTree 增加此属性,请勿提前赋值

    -
    -
    -

    Boolean 格式说明

    -
    -

    true 表示是同级节点中的第一个节点

    -

    false 表示不是同级节点中的第一个节点

    -

    节点被隐藏后,isFirstNode = false

    -
    -

    treeNode 举例

    -

    1. 查看当前被选中的节点是否是同级节点中的第一个节点

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var sNodes = treeObj.getSelectedNodes();
    -if (sNodes.length > 0) {
    -	var isFirstNode = sNodes[0].isFirstNode;
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.isHidden.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.isHidden.html deleted file mode 100644 index 5fb388e2..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.isHidden.html +++ /dev/null @@ -1,27 +0,0 @@ -
    -
    -

    BooleantreeNode.isHidden

    -

    概述[ 依赖 jquery.ztree.exhide 扩展 js ]

    -
    -

    -
    -

    判断 treeNode 节点是否被隐藏。

    -

    1、初始化 zTree 时,如果节点设置 isHidden = true,会被自动隐藏

    -

    2、请勿对已加载的节点修改此属性,隐藏 / 显示 请使用 hideNode() / hideNodes() / showNode() / showNodes() 方法

    -
    -
    -

    Boolean 格式说明

    -
    -

    true 表示被隐藏

    -

    false 表示被显示

    -
    -

    treeNode 举例

    -

    1. 查看第一个根节点是否被隐藏

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var sNodes = treeObj.getNodes();
    -if (sNodes.length > 0) {
    -	var isHidden = sNodes[0].isHidden;
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.isHover.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.isHover.html deleted file mode 100644 index dcef6eba..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.isHover.html +++ /dev/null @@ -1,19 +0,0 @@ -
    -
    -

    BooleantreeNode.isHover

    -

    概述[ 依赖 jquery.ztree.exedit 扩展 js ]

    -
    -

    -
    -

    记录节点 的 hover 状态,主要用于 setting.view.addHoverDom / removeHoverDom 。

    -

    zTree 内部使用,请勿进行初始化 或 随意修改

    -

    默认值:false

    -
    -
    -

    Boolean 格式说明

    -
    -

    true 表示节点处于 hover 状态

    -

    false 表示节点未处于 hover 状态

    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.isLastNode.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.isLastNode.html deleted file mode 100644 index 5d5ac822..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.isLastNode.html +++ /dev/null @@ -1,28 +0,0 @@ -
    -
    -

    BooleantreeNode.isLastNode

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    记录 treeNode 节点是否为同级节点中的最后一个节点。

    -

    使用 exhide 扩展后,只针对显示的节点设置此属性

    -

    初始化节点数据时,由 zTree 增加此属性,请勿提前赋值

    -
    -
    -

    Boolean 格式说明

    -
    -

    true 表示是同级节点中的最后一个节点

    -

    false 表示不是同级节点中的最后一个节点

    -

    节点被隐藏后,isLastNode = false

    -
    -

    treeNode 举例

    -

    1. 查看当前被选中的节点是否是同级节点中的最后一个节点

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var sNodes = treeObj.getSelectedNodes();
    -if (sNodes.length > 0) {
    -	var isLastNode = sNodes[0].isLastNode;
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.isParent.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.isParent.html deleted file mode 100644 index bab887e0..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.isParent.html +++ /dev/null @@ -1,28 +0,0 @@ -
    -
    -

    BooleantreeNode.isParent

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    记录 treeNode 节点是否为父节点。

    -

    1、初始化节点数据时,根据 treeNode.children 属性判断,有子节点则设置为 true,否则为 false

    -

    2、初始化节点数据时,如果设定 treeNode.isParent = true,即使无子节点数据,也会设置为父节点

    -

    3、为了解决部分朋友生成 json 数据出现的兼容问题, 支持 "false","true" 字符串格式的数据

    -
    -
    -

    Boolean 格式说明

    -
    -

    true 表示是父节点

    -

    false 表示不是父节点

    -
    -

    treeNode 举例

    -

    1. 查看当前被选中的节点是否是父节点

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var sNodes = treeObj.getSelectedNodes();
    -if (sNodes.length > 0) {
    -	var isParent = sNodes[0].isParent;
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.level.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.level.html deleted file mode 100644 index aff3254c..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.level.html +++ /dev/null @@ -1,25 +0,0 @@ -
    -
    -

    NumbertreeNode.level

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    记录节点的层级

    -

    初始化节点数据时,由 zTree 增加此属性,请勿提前赋值

    -
    -
    -

    Number 格式说明

    -
    -

    根节点 level = 0,依次递增

    -
    -

    treeNode 举例

    -

    1. 查看当前被选中的节点的级数

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var sNodes = treeObj.getSelectedNodes();
    -if (sNodes.length > 0) {
    -	var level = sNodes[0].level;
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.name.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.name.html deleted file mode 100644 index 918f2b49..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.name.html +++ /dev/null @@ -1,25 +0,0 @@ -
    -
    -

    StringtreeNode.name

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    节点名称。

    -

    1、如果不使用 name 属性保存节点名称,请修改 setting.data.key.name

    -

    默认值:无

    -
    -
    -

    String 格式说明

    -
    -

    节点显示的名称字符串,标准 String 即可,所有特殊字符都会被自动转义

    -
    -

    treeNode 举例

    -

    1. 设置节点的名称为 test1、test2、test3

    -
    var nodes = [
    -	{ "id":1, "name":"test1"},
    -	{ "id":2, "name":"test2"},
    -	{ "id":3, "name":"test3"}
    -]
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.nocheck.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.nocheck.html deleted file mode 100644 index afaa62fb..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.nocheck.html +++ /dev/null @@ -1,26 +0,0 @@ -
    -
    -

    BooleantreeNode.nocheck

    -

    概述[ 依赖 jquery.ztree.excheck 扩展 js ]

    -
    -

    -
    -

    1、设置节点是否隐藏 checkbox / radio [setting.check.enable = true 时有效]

    -

    2、为了解决部分朋友生成 json 数据出现的兼容问题, 支持 "false","true" 字符串格式的数据

    -

    默认值:false

    -
    -
    -

    Boolean 格式说明

    -
    -

    true 表示此节点不显示 checkbox / radio,不影响勾选的关联关系,不影响父节点的半选状态。

    -

    false 表示节点具有正常的勾选功能

    -
    -

    treeNode 举例

    -

    1. 不显示某个节点的 checkbox / radio

    -
    var nodes = [
    -	{ "id":1, "name":"test1", "nocheck":true},
    -	{ "id":2, "name":"test2"},
    -	{ "id":3, "name":"test3"}
    -]
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.open.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.open.html deleted file mode 100644 index 1eb9aec4..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.open.html +++ /dev/null @@ -1,30 +0,0 @@ -
    -
    -

    BooleantreeNode.open

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    记录 treeNode 节点的 展开 / 折叠 状态。

    -

    1、初始化节点数据时,如果设定 treeNode.open = true,则会直接展开此节点

    -

    2、叶子节点 treeNode.open = false

    -

    3、为了解决部分朋友生成 json 数据出现的兼容问题, 支持 "false","true" 字符串格式的数据

    -

    4、非异步加载模式下,无子节点的父节点设置 open=true 后,可显示为展开状态,但异步加载模式下不会生效。(v3.5.15+)

    -

    默认值:false

    -
    -
    -

    Boolean 格式说明

    -
    -

    true 表示节点为 展开 状态

    -

    false 表示节点为 折叠 状态

    -
    -

    treeNode 举例

    -

    1. 查看当前被选中的节点的 展开 / 折叠 状态

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var sNodes = treeObj.getSelectedNodes();
    -if (sNodes.length > 0) {
    -	var isOpen = sNodes[0].open;
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.parentTId.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.parentTId.html deleted file mode 100644 index d228a23a..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.parentTId.html +++ /dev/null @@ -1,27 +0,0 @@ -
    -
    -

    StringtreeNode.parentTId

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    treeNode 节点的父节点唯一标识 tId。

    -

    1、v3.x 用 parentTId 替换了原先的 parentNode 属性,同时增加了 getParentNode 方法,以避免原先 parentNode 造成的 clone 死循环

    -

    2、初始化节点数据时,由 zTree 增加此属性,请勿提前赋值

    -
    -
    -

    String 格式说明

    -
    -

    zTree 内部生成的节点唯一标识,请参考 treeNode.tId 的说明

    -

    如果 treeNode 是根节点,则 parentTId = null

    -
    -

    treeNode 举例

    -

    1. 查看当前被选中的节点的父节点 tId

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var sNodes = treeObj.getSelectedNodes();
    -if (sNodes.length > 0) {
    -	var parentTId = sNodes[0].parentTId;
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.tId.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.tId.html deleted file mode 100644 index c32285c5..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.tId.html +++ /dev/null @@ -1,25 +0,0 @@ -
    -
    -

    StringtreeNode.tId

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    treeNode 节点的唯一标识 tId。

    -

    初始化节点数据时,由 zTree 增加此属性,请勿提前赋值

    -
    -
    -

    String 格式说明

    -
    -

    生成规则:setting.treeId + "_" + 内部计数

    -
    -

    treeNode 举例

    -

    1. 查看当前被选中的节点的 tId

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var sNodes = treeObj.getSelectedNodes();
    -if (sNodes.length > 0) {
    -	var tId = sNodes[0].tId;
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.target.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.target.html deleted file mode 100644 index f7c1b6ba..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.target.html +++ /dev/null @@ -1,24 +0,0 @@ -
    -
    -

    StringtreeNode.target

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    设置点击节点后在何处打开 url。[treeNode.url 存在时有效]

    -

    默认值:无

    -
    -
    -

    String 格式说明

    -
    -

    同超链接 target 属性: "_blank", "_self" 或 其他指定窗口名称

    -

    省略此属性,则默认为 "_blank"

    -
    -

    treeNode 举例

    -

    1. 设置点击某节点时,弹出新页面

    -
    var nodes = [
    -	{ "id":1, "name":"test1", "url":"http://myTest.com", "target":"_blank"},
    -	......
    -]
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.url.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.url.html deleted file mode 100644 index 0b2e0076..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.url.html +++ /dev/null @@ -1,25 +0,0 @@ -
    -
    -

    StringtreeNode.url

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    节点链接的目标 URL

    -

    1、编辑模式 (setting.edit.enable = true) 下此属性功能失效,如果必须使用类似功能,请利用 onClick 事件回调函数自行控制。

    -

    2、如果需要在 onClick 事件回调函数中进行跳转控制,那么请将 URL 地址保存在其他自定义的属性内,请勿使用 url

    -

    默认值:无

    -
    -
    -

    String 格式说明

    -
    -

    同超链接 href 属性

    -
    -

    treeNode 举例

    -

    1. 设置某节点点击时,跳转到 g.cn

    -
    var nodes = [
    -	{ "id":1, "name":"Google CN", "url":"http://g.cn"},
    -	......
    -]
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.zAsync.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.zAsync.html deleted file mode 100644 index 00e48f39..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.zAsync.html +++ /dev/null @@ -1,28 +0,0 @@ -
    -
    -

    BooleantreeNode.zAsync

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    记录 treeNode 节点是否已经进行过异步加载,避免父节点反复异步加载数据。

    -

    初始化节点数据时,由 zTree 增加此属性,请勿提前赋值

    -

    默认值:false (无子节点的父节点); true (有子节点的父节点 & 叶子节点)

    -
    -
    -

    Boolean 格式说明

    -
    -

    true 表示父节点展开时不需要自动异步加载

    -

    false 表示父节点展开时需要自动异步加载

    -

    此参数不会对 reAsyncChildNodes 方法造成任何影响

    -
    -

    treeNode 举例

    -

    1. 查看当前被选中的节点是否节点是否需要自动异步加载

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var sNodes = treeObj.getSelectedNodes();
    -if (sNodes.length > 0) {
    -	var zAsync = sNodes[0].zAsync;
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.addNodes.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.addNodes.html deleted file mode 100644 index 0fa52e36..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.addNodes.html +++ /dev/null @@ -1,47 +0,0 @@ -
    -
    -

    Function(parentNode, [index], newNodes, isSilent)zTreeObj.addNodes

    -

    概述[ 依赖 jquery.ztree.core 扩展 js ]

    -
    -

    -
    -

    添加节点。

    -

    v3.x 为了避免原先反复初始化造成的数据重复问题,在 初始化 和 添加节点 时内部进行 clone 操作。如果需要获取数据在 zTree 内的对象,请获取此方法的返回值。

    -

    请通过 zTree 对象执行此方法。

    -
    -
    -

    Function 参数说明

    -
    -

    parentNodeJSON

    -

    指定的父节点,如果增加根节点,请设置 parentNode 为 null 即可。

    -

    请务必保证此节点数据对象 是 zTree 内部的数据对象

    -

    [index]Number

    -

    新节点插入的位置(从 0 开始)

    -

    index = -1 时,插入到最后

    -

    此参数可忽略

    -

    v3.5.19+

    -

    newNodesJSON / Array(JSON)

    -

    需要增加的节点数据 JSON 对象集合,数据只需要满足 zTree 的节点数据必需的属性即可,详细请参考“treeNode 节点数据详解”

    -

    1、v3.x 支持单独添加一个节点,即如果只新增一个节点,不用必须包在数组中

    -

    2、使用简单数据模式,请参考 setting.data.simpleData 内的属性说明

    -

    isSilentBoolean

    -

    设定增加节点后是否自动展开父节点。

    -

    isSilent = true 时,不展开父节点,其他值或缺省状态都自动展开。

    -

    返回值Array(JSON)

    -

    返回值是 zTree 最终添加的节点数据集合

    -

    如果 newNodes 是单个节点数据 JSON,返回值也是将其包在 Array 内

    -

    请务必记住:返回值中的数据对象 是 newNodes 被 clone 后的,所以绝对不相等!

    -
    -

    function 举例

    -

    1. 对于 id = "tree" 的 zTree 增加 1 个根节点

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var newNode = {name:"newNode1"};
    -newNode = treeObj.addNodes(null, newNode);
    -
    -

    2. 对于 id = "tree" 的 zTree 增加 3 个根节点

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var newNodes = [{name:"newNode1"}, {name:"newNode2"}, {name:"newNode3"}];
    -newNodes = treeObj.addNodes(null, newNodes);
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.cancelEditName.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.cancelEditName.html deleted file mode 100644 index 9df098f0..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.cancelEditName.html +++ /dev/null @@ -1,30 +0,0 @@ -
    -
    -

    Function(newName)zTreeObj.cancelEditName

    -

    概述[ 依赖 jquery.ztree.exedit 扩展 js ]

    -
    -

    -
    -

    取消节点的编辑名称状态,可以恢复原名称,也可以强行赋给新的名称。

    -

    请通过 zTree 对象执行此方法。

    -
    -
    -

    Function 参数说明

    -
    -

    newNameString

    -

    重新给定的新名称。

    -

    如果省略此参数,则恢复原名称。

    -

    返回值

    -

    目前无任何返回值

    -
    -

    function 举例

    -

    1. 取消 zTree 的编辑名称状态,恢复该节点原有名称

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -treeObj.cancelEditName();
    -
    -

    2. 取消 zTree 的编辑名称状态,并且重新设定该节点名称

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -treeObj.cancelEditName("test_new_name");
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.cancelSelectedNode.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.cancelSelectedNode.html deleted file mode 100644 index d8417685..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.cancelSelectedNode.html +++ /dev/null @@ -1,35 +0,0 @@ -
    -
    -

    Function(treeNode)zTreeObj.cancelSelectedNode

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    取消节点的选中状态。

    -

    v3.x 支持多点同时选中,因此取消选中状态可以全部取消,也可以单独取消某个节点的选中状态。

    -

    请通过 zTree 对象执行此方法。

    -
    -
    -

    Function 参数说明

    -
    -

    treeNodeJSON

    -

    需要取消选中状态的节点。

    -

    请务必保证此节点数据对象 是 zTree 内部的数据对象

    -

    如果省略此参数,则将取消全部被选中节点的选中状态。

    -

    返回值

    -

    目前无任何返回值

    -
    -

    function 举例

    -

    1. 取消当前所有被选中节点的选中状态

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -treeObj.cancelSelectedNode();
    -
    -

    2. 取消当前第一个被选中节点的选中状态

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getSelectedNodes();
    -if (nodes.length>0) { 
    -	treeObj.cancelSelectedNode(nodes[0]);
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.checkAllNodes.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.checkAllNodes.html deleted file mode 100644 index be512999..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.checkAllNodes.html +++ /dev/null @@ -1,29 +0,0 @@ -
    -
    -

    Function(checked)zTreeObj.checkAllNodes

    -

    概述[ 依赖 jquery.ztree.excheck 扩展 js ]

    -
    -

    -
    -

    勾选 或 取消勾选 全部节点。[setting.check.enable = true 且 setting.check.chkStyle = "checkbox" 时有效]

    -

    此方法不会触发 beforeCheck / onCheck 事件回调函数。

    -

    请通过 zTree 对象执行此方法。

    -
    -
    -

    Function 参数说明

    -
    -

    checkedBoolean

    -

    checked = true 表示勾选全部节点

    -

    checked = false 表示全部节点取消勾选

    -

    不会影响 treeNode.nocheck = true 的节点。

    -

    不会影响未加载的节点。

    -

    返回值

    -

    目前无任何返回值

    -
    -

    function 举例

    -

    1. 勾选全部节点

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -treeObj.checkAllNodes(true);
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.checkNode.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.checkNode.html deleted file mode 100644 index 7bc0dbf4..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.checkNode.html +++ /dev/null @@ -1,44 +0,0 @@ -
    -
    -

    Function(treeNode, checked, checkTypeFlag, callbackFlag)zTreeObj.checkNode

    -

    概述[ 依赖 jquery.ztree.excheck 扩展 js ]

    -
    -

    -
    -

    勾选 或 取消勾选 单个节点。[setting.check.enable = true 时有效]

    -

    v3.x 中 checkNode() 方法可以触发 beforeCheck / onCheck 事件回调函数。便于减少冗余代码

    -

    请通过 zTree 对象执行此方法。

    -
    -
    -

    Function 参数说明

    -
    -

    treeNodeJSON

    -

    需要勾选 或 取消勾选 的节点数据

    -

    请务必保证此节点数据对象 是 zTree 内部的数据对象

    -

    checkedBoolean

    -

    checked = true 表示勾选节点

    -

    checked = false 表示节点取消勾选

    -

    省略此参数,则根据对此节点的勾选状态进行 toggle 切换

    -

    不影响 treeNode.nocheck = true 的节点。

    -

    checkTypeFlagBoolean

    -

    checkTypeFlag = true 表示按照 setting.check.chkboxType 属性进行父子节点的勾选联动操作

    -

    checkTypeFlag = false 表示只修改此节点勾选状态,无任何勾选联动操作

    -

    checkTypeFlag = false 且 treeNode.checked = checked 时,不会触发回调函数,直接返回

    -

    不影响父子节点中 treeNode.nocheck = true 的节点。

    -

    callbackFlagBoolean

    -

    callbackFlag = true 表示执行此方法时触发 beforeCheck & onCheck 事件回调函数

    -

    callbackFlag = false 表示执行此方法时不触发事件回调函数

    -

    省略此参数,等同于 false

    -

    返回值

    -

    目前无任何返回值

    -
    -

    function 举例

    -

    1. 勾选当前选中的节点

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getSelectedNodes();
    -for (var i=0, l=nodes.length; i < l; i++) {
    -	treeObj.checkNode(nodes[i], true, true);
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.copyNode.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.copyNode.html deleted file mode 100644 index f1b624bf..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.copyNode.html +++ /dev/null @@ -1,44 +0,0 @@ -
    -
    -

    Function(targetNode, treeNode, moveType, isSilent)zTreeObj.copyNode

    -

    概述[ 依赖 jquery.ztree.exedit 扩展 js ]

    -
    -

    -
    -

    复制节点。

    -

    v3.x 复制节点时进行 clone 操作。如果需要获取数据在 zTree 内的对象,请获取此方法的返回值。

    -

    请通过 zTree 对象执行此方法。

    -
    -
    -

    Function 参数说明

    -
    -

    targetNodeJSON

    -

    要复制到的目标节点 JSON 数据

    -

    如果复制成为根节点,请设置 targetNode 为 null 即可

    -

    请务必保证此节点数据对象 是 zTree 内部的数据对象

    -

    treeNodeJSON

    -

    需要被复制的节点数据

    -

    请务必保证此节点数据对象 是 zTree 内部的数据对象

    -

    moveTypeString

    -

    复制到目标节点的相对位置

    -

    "inner":成为子节点,"prev":成为同级前一个节点,"next":成为同级后一个节点

    -

    isSilentBoolean

    -

    设定复制节点后是否自动展开父节点。

    -

    isSilent = true 时,不展开父节点,其他值或缺省状态都自动展开。

    -

    返回值JSON

    -

    返回值是最终加入到 zTree 内的节点数据

    -

    请务必记住:返回值中的数据对象 是 treeNode 被 clone 后的,所以绝对不相等!

    -
    -

    function 举例

    -

    1. 将根节点中第二个节点 复制成为 第一个节点的子节点

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getNodes();
    -treeObj.copyNode(nodes[0], nodes[1], "inner");
    -
    -

    2. 将根节点中第二个节点 复制成为 第一个节点的前一个节点

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getNodes();
    -treeObj.copyNode(nodes[0], nodes[1], "before");
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.destroy.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.destroy.html deleted file mode 100644 index d9f6da0d..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.destroy.html +++ /dev/null @@ -1,25 +0,0 @@ -
    -
    -

    Function(treeId)zTreeObj.destroy

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    从 zTree v3.4 开始提供销毁 zTree 的方法。

    -

    1、用此方法可以销毁 zTreeObj 代表的 zTree。

    -

    2、销毁当前页面全部的 zTree,也可以使用 $.fn.zTree.destroy() 方法。

    -

    3、重新使用已经被销毁的树,必须要使用 init 方法进行初始化。

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    返回值

    -

    目前无任何返回值

    -
    -

    function 举例

    -

    1. 销毁 id 为 "treeDemo" 的 zTree

    -
    var zTreeObj = $.fn.zTree.getZTreeObj("treeDemo");
    -zTreeObj.destroy();
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.editName.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.editName.html deleted file mode 100644 index 2d4eaf7b..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.editName.html +++ /dev/null @@ -1,29 +0,0 @@ -
    -
    -

    Function(treeNode)zTreeObj.editName

    -

    概述[ 依赖 jquery.ztree.exedit 扩展 js ]

    -
    -

    -
    -

    设置某节点进入编辑名称状态。

    -

    1、如果需要用 js 取消编辑名称状态,请使用 cancelEditName(newName) 方法。

    -

    2、可利用此方法让当前正编辑的节点 input 输入框获取焦点。

    -

    3、请通过 zTree 对象执行此方法。

    -
    -
    -

    Function 参数说明

    -
    -

    treeNodeJSON

    -

    指定进入编辑名称状态的节点 JSON 数据

    -

    请务必保证此节点数据对象 是 zTree 内部的数据对象

    -

    返回值

    -

    目前无任何返回值

    -
    -

    function 举例

    -

    1. 设置根节点第一个节点进入编辑名称状态

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getNodes();
    -treeObj.editName(nodes[0]);
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.expandAll.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.expandAll.html deleted file mode 100644 index aaa3e464..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.expandAll.html +++ /dev/null @@ -1,30 +0,0 @@ -
    -
    -

    Function(expandFlag)zTreeObj.expandAll

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    展开 / 折叠 全部节点

    -

    此方法不会触发 beforeExpand / onExpand 和 beforeCollapse / onCollapse 事件回调函数。

    -

    请通过 zTree 对象执行此方法。

    -
    -
    -

    Function 参数说明

    -
    -

    expandFlagBoolean

    -

    expandFlag = true 表示 展开 全部节点

    -

    expandFlag = false 表示 折叠 全部节点

    -

    返回值Boolean

    -

    返回值表示最终实际操作情况

    -

    true 表示 展开 全部节点

    -

    false 表示 折叠 全部节点

    -

    null 表示 不存在任何父节点

    -
    -

    function 举例

    -

    1. 展开全部节点

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -treeObj.expandAll(true);
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.expandNode.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.expandNode.html deleted file mode 100644 index 5d96d3f5..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.expandNode.html +++ /dev/null @@ -1,50 +0,0 @@ -
    -
    -

    Function(treeNode, expandFlag, sonSign, focus, callbackFlag)zTreeObj.expandNode

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    展开 / 折叠 指定的节点

    -

    v3.x 中执行此方法可以触发 beforeExpand / onExpand 或 beforeCollapse / onCollapse 事件回调函数。便于减少冗余代码

    -

    请通过 zTree 对象执行此方法。

    -
    -
    -

    Function 参数说明

    -
    -

    treeNodeJSON

    -

    需要 展开 / 折叠 的节点数据

    -

    请务必保证此节点数据对象 是 zTree 内部的数据对象

    -

    expandFlagBoolean

    -

    expandFlag = true 表示 展开 节点

    -

    expandFlag = false 表示 折叠 节点

    -

    省略此参数,则根据对此节点的展开状态进行 toggle 切换

    -

    sonSignBoolean

    -

    sonSign = true 表示 全部子孙节点 进行与 expandFlag 相同的操作

    -

    sonSign = false 表示 只影响此节点,对于其 子孙节点无任何影响

    -

    sonSign = false 且 treeNode.open = expandFlag 时,不会触发回调函数,直接返回

    -

    省略此参数,等同于 false

    -

    focusBoolean

    -

    focus = true 表示 展开 / 折叠 操作后,通过设置焦点保证此焦点进入可视区域内

    -

    focus = false 表示 展开 / 折叠 操作后,不设置任何焦点

    -

    省略此参数,等同于 true

    -

    callbackFlagBoolean

    -

    callbackFlag = true 表示执行此方法时触发 beforeExpand / onExpand 或 beforeCollapse / onCollapse 事件回调函数

    -

    callbackFlag = false 表示执行此方法时不触发事件回调函数

    -

    省略此参数,等同于 false

    -

    返回值Boolean

    -

    返回值表示最终实际操作情况

    -

    true 表示 展开 节点

    -

    false 表示 折叠 节点

    -

    null 表示 不是父节点

    -
    -

    function 举例

    -

    1. 展开当前选择的第一个节点(包括其全部子节点)

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getSelectedNodes();
    -if (nodes.length>0) {
    -	treeObj.expandNode(nodes[0], true, true, true);
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getChangeCheckedNodes.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getChangeCheckedNodes.html deleted file mode 100644 index ba865347..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getChangeCheckedNodes.html +++ /dev/null @@ -1,24 +0,0 @@ -
    -
    -

    Function()zTreeObj.getChangeCheckedNodes

    -

    概述[ 依赖 jquery.ztree.excheck 扩展 js ]

    -
    -

    -
    -

    获取输入框勾选状态被改变的节点集合(与原始数据 checkedOld 对比)。[setting.check.enable = true 时有效]

    -

    请通过 zTree 对象执行此方法。

    -
    -
    -

    Function 参数说明

    -
    -

    返回值Array(JSON)

    -

    返回全部勾选状态被改变的节点集合 Array

    -

    如果需要获取每次操作后全部被改变勾选状态的节点数据,请在每次勾选操作后,遍历所有被改变勾选状态的节点数据,让其 checkedOld = checked 就可以了。

    -
    -

    function 举例

    -

    1. 获取当前勾选状态被改变的节点集合

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getChangeCheckedNodes();
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getCheckedNodes.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getCheckedNodes.html deleted file mode 100644 index 41a7df39..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getCheckedNodes.html +++ /dev/null @@ -1,28 +0,0 @@ -
    -
    -

    Function(checked)zTreeObj.getCheckedNodes

    -

    概述[ 依赖 jquery.ztree.excheck 扩展 js ]

    -
    -

    -
    -

    获取输入框被勾选 或 未勾选的节点集合。[setting.check.enable = true 时有效]

    -

    请通过 zTree 对象执行此方法。

    -
    -
    -

    Function 参数说明

    -
    -

    checkedBoolean

    -

    checked = true 表示获取 被勾选 的节点集合

    -

    checked = false 表示获取 未勾选 的节点集合

    -

    省略此参数,等同于 true。

    -

    对于 treeNode.nocheck = true 的节点不进行获取。

    -

    返回值Array(JSON)

    -

    返回全部符合要求的节点集合 Array

    -
    -

    function 举例

    -

    1. 获取当前被勾选的节点集合

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getCheckedNodes(true);
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getNodeByParam.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getNodeByParam.html deleted file mode 100644 index 89e72c78..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getNodeByParam.html +++ /dev/null @@ -1,32 +0,0 @@ -
    -
    -

    Function(key, value, parentNode)zTreeObj.getNodeByParam

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    根据节点数据的属性搜索,获取条件完全匹配的节点数据 JSON 对象

    -

    请通过 zTree 对象执行此方法。

    -
    -
    -

    Function 参数说明

    -
    -

    keyString

    -

    需要精确匹配的属性名称

    -

    value?

    -

    需要精确匹配的属性值,可以是任何类型,只要保证与 key 指定的属性值保持一致即可

    -

    parentNodeJSON

    -

    搜索范围,指定在某个父节点下的子节点中进行搜索

    -

    忽略此参数,表示在全部节点中搜索

    -

    返回值JSON

    -

    匹配精确搜索的节点数据

    -

    1、如无结果,返回 null

    -

    2、如有多个节点满足查询条件,只返回第一个匹配到的节点

    -
    -

    function 举例

    -

    1. 查找 id = 1 的节点数据

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var node = treeObj.getNodeByParam("id", 1, null);
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getNodeByTId.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getNodeByTId.html deleted file mode 100644 index 76fcc486..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getNodeByTId.html +++ /dev/null @@ -1,27 +0,0 @@ -
    -
    -

    Function(tId)zTreeObj.getNodeByTId

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    根据 zTree 的唯一标识 tId 快速获取节点 JSON 数据对象

    -

    通过内部的 cache 获取,不需要遍历节点。

    -

    请通过 zTree 对象执行此方法。

    -
    -
    -

    Function 参数说明

    -
    -

    tIdString

    -

    节点在 zTree 内的唯一标识 tId

    -

    返回值JSON

    -

    tId 对应的节点 JSON 数据对象

    -

    如无结果,返回 null

    -
    -

    function 举例

    -

    1. 获取 tId = "tree_10" 的节点数据

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var node = treeObj.getNodeByTId("tree_10");
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getNodeIndex.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getNodeIndex.html deleted file mode 100644 index b2c757d2..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getNodeIndex.html +++ /dev/null @@ -1,30 +0,0 @@ -
    -
    -

    Function(treeNode)zTreeObj.getNodeIndex

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    获取某节点在同级节点中的序号(从0开始)

    -

    请通过 zTree 对象执行此方法。

    -
    -
    -

    Function 参数说明

    -
    -

    treeNodeJSON

    -

    需要查询顺序的节点 JSON 数据对象

    -

    请务必保证此节点数据对象 是 zTree 内部的数据对象

    -

    返回值Number

    -

    返回值从 0 开始计数

    -

    如果不存在该节点数据,返回 -1

    -
    -

    function 举例

    -

    1. 获取当前选中的第一个节点在同级节点中的序号

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getSelectedNodes();
    -if (nodes.length>0) {
    -	var index = treeObj.getNodeIndex(nodes[0]);
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getNodes.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getNodes.html deleted file mode 100644 index b368535e..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getNodes.html +++ /dev/null @@ -1,26 +0,0 @@ -
    -
    -

    Function()zTreeObj.getNodes

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    获取 zTree 的全部节点数据

    -

    请通过 zTree 对象执行此方法。

    -
    -
    -

    Function 参数说明

    -
    -

    返回值Array(JSON)

    -

    全部节点数据

    -

    1、Array 仅仅是根节点的集合(默认情况子节点都处于 children 属性下);

    -

    2、如需遍历全部节点需要利用递归,或利用 transformToArray 方法 将数据变成简单的 Array 集合

    -

    3、对于异步加载模式下,尚未加载的子节点是无法通过此方法获取的。

    -
    -

    function 举例

    -

    1. 获取全部节点数据

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getNodes();
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getNodesByFilter.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getNodesByFilter.html deleted file mode 100644 index 69174251..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getNodesByFilter.html +++ /dev/null @@ -1,43 +0,0 @@ -
    -
    -

    Function(filter, isSingle, parentNode, invokeParam)zTreeObj.getNodesByFilter

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    根据自定义规则搜索节点数据 JSON 对象集合 或 单个节点数据

    -

    可自定义复杂的搜索规则

    -

    请通过 zTree 对象执行此方法。

    -
    -
    -

    Function 参数说明

    -
    -

    filterFunction

    -

    自定义过滤器函数 function filter(node) {...}

    -

    filter 参数:node (节点数据 JSON)

    -

    filter 返回值:boolean (true 表示符合搜索条件;false 表示不符合搜索条件)

    -

    isSingleBoolean

    -

    isSingle = true 表示只查找单个节点

    -

    isSingle = false 表示查找节点集合

    -

    忽略此参数,表示查找节点集合

    -

    parentNodeJSON

    -

    可以指定在某个父节点下的子节点中搜索

    -

    忽略此参数,表示在全部节点中搜索

    -

    invokeParam任意类型

    -

    用户自定义的数据对象,用于 filter 中进行计算

    -

    返回值Array(JSON) / JSON

    -

    isSingle = true 返回 第一个找到的节点数据 JSON,无结果时返回 null

    -

    isSingle = false 返回 节点数据集合 Array(JSON),无结果时返回 [ ]

    -
    -

    function 举例

    -

    1. 查找 level = 2 & name 中包含 "test" 的节点数据

    -
    function filter(node) {
    -    return (node.level == 2 && node.name.indexOf("test")>-1);
    -}
    -......
    -var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var node = treeObj.getNodesByFilter(filter, true); // 仅查找一个节点
    -var nodes = treeObj.getNodesByFilter(filter); // 查找节点集合
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getNodesByParam.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getNodesByParam.html deleted file mode 100644 index cf45939c..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getNodesByParam.html +++ /dev/null @@ -1,31 +0,0 @@ -
    -
    -

    Function(key, value, parentNode)zTreeObj.getNodesByParam

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    根据节点数据的属性搜索,获取条件完全匹配的节点数据 JSON 对象集合

    -

    请通过 zTree 对象执行此方法。

    -
    -
    -

    Function 参数说明

    -
    -

    keyString

    -

    需要精确匹配的属性名称

    -

    value?

    -

    需要精确匹配的属性值,可以是任何类型,只要保证与 key 指定的属性值保持一致即可

    -

    parentNodeJSON

    -

    可以指定在某个父节点下的子节点中搜索

    -

    忽略此参数,表示在全部节点中搜索

    -

    返回值Array(JSON)

    -

    匹配精确搜索的节点数据集合

    -

    如无结果,返回 [ ]

    -
    -

    function 举例

    -

    1. 查找 name = "test" 的节点数据

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getNodesByParam("name", "test", null);
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getNodesByParamFuzzy.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getNodesByParamFuzzy.html deleted file mode 100644 index 04d183f9..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getNodesByParamFuzzy.html +++ /dev/null @@ -1,32 +0,0 @@ -
    -
    -

    Function(key, value, parentNode)zTreeObj.getNodesByParamFuzzy

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    根据节点数据的属性搜索,获取条件模糊匹配的节点数据 JSON 对象集合

    -

    请通过 zTree 对象执行此方法。

    -
    -
    -

    Function 参数说明

    -
    -

    keyString

    -

    需要模糊匹配的属性名称

    -

    valueString

    -

    需要模糊匹配的属性值

    -

    模糊匹配只能针对 String 类型的数据

    -

    parentNodeJSON

    -

    可以指定在某个父节点下的子节点中搜索

    -

    忽略此参数,表示在全部节点中搜索

    -

    返回值Array(JSON)

    -

    匹配模糊搜索的节点数据集合

    -

    如无结果,返回 [ ]

    -
    -

    function 举例

    -

    1. 查找 name 包含 "test" 的节点数据

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getNodesByParamFuzzy("name", "test", null);
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getSelectedNodes.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getSelectedNodes.html deleted file mode 100644 index ab36f8ee..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getSelectedNodes.html +++ /dev/null @@ -1,23 +0,0 @@ -
    -
    -

    Function()zTreeObj.getSelectedNodes

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    获取 zTree 当前被选中的节点数据集合

    -

    请通过 zTree 对象执行此方法。

    -
    -
    -

    Function 参数说明

    -
    -

    返回值Array(JSON)

    -

    当前被选中的节点数据集合

    -
    -

    function 举例

    -

    1. 获取当前被选中的节点数据集合

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getSelectedNodes();
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.hideNode.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.hideNode.html deleted file mode 100644 index a1996b88..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.hideNode.html +++ /dev/null @@ -1,29 +0,0 @@ -
    -
    -

    Function(treeNode)zTreeObj.hideNode

    -

    概述[ 依赖 jquery.ztree.exhide 扩展 js ]

    -
    -

    -
    -

    隐藏某个节点。

    -

    1、此功能不支持 exedit 扩展,因此不要在编辑状态时使用隐藏节点的方法。

    -

    2、隐藏/显示节点,会影响节点的 isFirstNode 和 isLastNode 属性。

    -

    3、请通过 zTree 对象执行此方法。

    -
    -
    -

    Function 参数说明

    -
    -

    treeNodeJSON

    -

    指定被隐藏的节点 JSON 数据

    -

    请务必保证此节点数据对象 是 zTree 内部的数据对象

    -

    返回值

    -

    目前无任何返回值

    -
    -

    function 举例

    -

    1. 隐藏根节点第一个节点

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getNodes();
    -treeObj.hideNode(nodes[0]);
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.hideNodes.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.hideNodes.html deleted file mode 100644 index cf752b50..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.hideNodes.html +++ /dev/null @@ -1,29 +0,0 @@ -
    -
    -

    Function(treeNodes)zTreeObj.hideNodes

    -

    概述[ 依赖 jquery.ztree.exhide 扩展 js ]

    -
    -

    -
    -

    隐藏一批节点。

    -

    1、此功能不支持 exedit 扩展,因此不要在编辑状态时使用隐藏节点的方法。

    -

    2、隐藏/显示节点,会影响节点的 isFirstNode 和 isLastNode 属性。

    -

    3、请通过 zTree 对象执行此方法。

    -
    -
    -

    Function 参数说明

    -
    -

    treeNodesArray(JSON)

    -

    指定被隐藏的节点 JSON 数据集合

    -

    请务必保证这些节点数据对象 是 zTree 内部的数据对象

    -

    返回值

    -

    目前无任何返回值

    -
    -

    function 举例

    -

    1. 隐藏根节点第一个节点的子节点

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getNodes();
    -treeObj.hideNodes(nodes[0].children);
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.moveNode.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.moveNode.html deleted file mode 100644 index 9c9180b9..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.moveNode.html +++ /dev/null @@ -1,46 +0,0 @@ -
    -
    -

    Function(targetNode, treeNode, moveType, isSilent)zTreeObj.moveNode

    -

    概述[ 依赖 jquery.ztree.exedit 扩展 js ]

    -
    -

    -
    -

    移动节点。

    -

    请通过 zTree 对象执行此方法。

    -
    -
    -

    Function 参数说明

    -
    -

    targetNodeJSON

    -

    要移动到的目标节点 JSON 数据

    -

    如果移动成为根节点,请设置 targetNode 为 null 即可

    -

    请务必保证此节点数据对象 是 zTree 内部的数据对象

    -

    treeNodeJSON

    -

    需要被移动的节点数据

    -

    请务必保证此节点数据对象 是 zTree 内部的数据对象

    -

    moveTypeString

    -

    指定移动到目标节点的相对位置

    -

    "inner":成为子节点,"prev":成为同级前一个节点,"next":成为同级后一个节点

    -

    isSilentBoolean

    -

    设定移动节点后是否自动展开父节点。

    -

    isSilent = true 时,不展开父节点,其他值或缺省状态都自动展开。

    -

    返回值JSON

    -

    返回值是最终被移动的节点数据,正常情况下与 treeNode 参数完全相同

    -

    如果 返回值 为 null,说明 移动失败,主要原因有:
    -  1、targetNode 是 treeNode 父节点,且 moveType = "inner"
    -  2、targetNode 是 treeNode 子孙节点 -

    -
    -

    function 举例

    -

    1. 将根节点中第二个节点 移动成为 第一个节点的子节点

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getNodes();
    -treeObj.moveNode(nodes[0], nodes[1], "inner");
    -
    -

    2. 将根节点中第二个节点 移动成为 第一个节点的前一个节点

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getNodes();
    -treeObj.moveNode(nodes[0], nodes[1], "prev");
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.reAsyncChildNodes.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.reAsyncChildNodes.html deleted file mode 100644 index 3ca0492f..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.reAsyncChildNodes.html +++ /dev/null @@ -1,45 +0,0 @@ -
    -
    -

    Function(parentNode, reloadType, isSilent, callback)zTreeObj.reAsyncChildNodes -

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    强行异步加载父节点的子节点。[setting.async.enable = true 时有效]

    -

    已经加载过的父节点可反复使用此方法重新加载。

    -

    请通过 zTree 对象执行此方法。

    -
    -
    -

    Function 参数说明

    -
    -

    parentNodeJSON

    -

    指定需要异步加载的父节点 JSON 数据

    -

    1、parentNode = null 时,相当于从根节点 Root 进行异步加载

    -

    2、parentNode.isParent = false 时,不进行异步加载

    -

    3、请务必保证此节点数据对象 是 zTree 内部的数据对象

    -

    reloadTypeString

    -

    reloadType = "refresh" 表示清空后重新加载。

    -

    reloadType != "refresh" 时,表示追加子节点处理。

    -

    isSilentBoolean

    -

    设定异步加载后是否自动展开父节点。

    -

    isSilent = true 时,不展开父节点,其他值或缺省状态都自动展开。

    -

    callbackfunction

    -

    刷新完成后的回调函数。

    -

    返回值

    -

    目前无任何返回值

    -
    -

    function 举例

    -

    1. 重新异步加载 zTree

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -treeObj.reAsyncChildNodes(null, "refresh");
    -
    -

    2. 重新异步加载当前选中的第一个节点

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getSelectedNodes();
    -if (nodes.length>0) {
    -	treeObj.reAsyncChildNodes(nodes[0], "refresh");
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.reAsyncChildNodesPromise.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.reAsyncChildNodesPromise.html deleted file mode 100644 index b95200a5..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.reAsyncChildNodesPromise.html +++ /dev/null @@ -1,44 +0,0 @@ -
    -
    -

    Function(parentNode, reloadType, isSilent)zTreeObj.reAsyncChildNodesPromise -

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    强行异步加载父节点的子节点(ES6 Promise 版)。[setting.async.enable = true 时有效]

    -

    已经加载过的父节点可反复使用此方法重新加载。

    -

    请通过 zTree 对象执行此方法。

    -

    v3.5.29+

    -
    -
    -

    Function 参数说明

    -
    -

    parentNodeJSON

    -

    指定需要异步加载的父节点 JSON 数据

    -

    1、parentNode = null 时,相当于从根节点 Root 进行异步加载

    -

    2、parentNode.isParent = false 时,不进行异步加载

    -

    3、请务必保证此节点数据对象 是 zTree 内部的数据对象

    -

    reloadTypeString

    -

    reloadType = "refresh" 表示清空后重新加载。

    -

    reloadType != "refresh" 时,表示追加子节点处理。

    -

    isSilentBoolean

    -

    设定异步加载后是否自动展开父节点。

    -

    isSilent = true 时,不展开父节点,其他值或缺省状态都自动展开。

    -

    返回值ES6 Promise

    -

    ES6 的 Promise 对象,便于异步控制,使用时请注意浏览器兼容问题

    -
    -

    function 举例

    -

    1. 重新异步加载 zTree

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -treeObj.reAsyncChildNodes(null, "refresh");
    -
    -

    2. 重新异步加载当前选中的第一个节点

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getSelectedNodes();
    -if (nodes.length>0) {
    -	treeObj.reAsyncChildNodes(nodes[0], "refresh");
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.refresh.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.refresh.html deleted file mode 100644 index 09a74ca3..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.refresh.html +++ /dev/null @@ -1,24 +0,0 @@ -
    -
    -

    Function()zTreeObj.refresh

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    刷新 zTree 。

    -

    没有特殊必要,尽量不要使用此方法。单个节点更新请使用 updateNode 方法,异步加载模式下请使用 reAsyncChildNodes 方法。

    -

    请通过 zTree 对象执行此方法。

    -
    -
    -

    Function 参数说明

    -
    -

    返回值

    -

    目前无任何返回值

    -
    -

    function 举例

    -

    1. 刷新 zTree

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -treeObj.refresh();
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.removeChildNodes.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.removeChildNodes.html deleted file mode 100644 index 588639fb..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.removeChildNodes.html +++ /dev/null @@ -1,32 +0,0 @@ -
    -
    -

    Function(parentNode)zTreeObj.removeChildNodes

    -

    概述[ 依赖 jquery.ztree.core 扩展 js ]

    -
    -

    -
    -

    清空某父节点的子节点。

    -

    1、清空子节点后,父节点会自动变为叶子节点,如需要父节点保持父节点状态,请设置 setting.data.keep.parent 属性。

    -

    2、请勿用此方法清空根节点,如果需要清空根节点,直接初始化 zTree,并且设置初始节点为 null 即可。

    -

    3、此方法不会触发任何事件回调函数。

    -

    请通过 zTree 对象执行此方法。

    -
    -
    -

    Function 参数说明

    -
    -

    parentNodeJSON

    -

    需要清空子节点的父节点数据

    -

    请务必保证此节点数据对象 是 zTree 内部的数据对象

    -

    返回值Array(JSON)

    -

    将该父节点的子节点数据返回,如果不存在则返回 null

    -
    -

    function 举例

    -

    1. 清空选中的第一个节点的子节点

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getSelectedNodes();
    -if (nodes && nodes.length>0) {
    -	treeObj.removeChildNodes(nodes[0]);
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.removeNode.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.removeNode.html deleted file mode 100644 index 442f5c7e..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.removeNode.html +++ /dev/null @@ -1,34 +0,0 @@ -
    -
    -

    Function(treeNode, callbackFlag)zTreeObj.removeNode

    -

    概述[ 依赖 jquery.ztree.core 扩展 js ]

    -
    -

    -
    -

    删除节点。

    -

    v3.x 中删除节点可以触发 beforeRemove / onRemove 事件回调函数。便于减少冗余代码

    -

    请通过 zTree 对象执行此方法。

    -
    -
    -

    Function 参数说明

    -
    -

    treeNodeJSON

    -

    需要被删除的节点数据

    -

    请务必保证此节点数据对象 是 zTree 内部的数据对象

    -

    callbackFlagBoolean

    -

    callbackFlag = true 表示执行此方法时触发 beforeRemove & onRemove 事件回调函数

    -

    callbackFlag = false 表示执行此方法时不触发事件回调函数

    -

    省略此参数,等同于 false

    -

    返回值

    -

    目前无任何返回值

    -
    -

    function 举例

    -

    1. 删除所有选中的节点

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getSelectedNodes();
    -for (var i=0, l=nodes.length; i < l; i++) {
    -	treeObj.removeNode(nodes[i]);
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.selectNode.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.selectNode.html deleted file mode 100644 index 8d074c44..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.selectNode.html +++ /dev/null @@ -1,38 +0,0 @@ -
    -
    -

    Function(treeNode, addFlag, isSilent)zTreeObj.selectNode

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    选中指定节点

    -

    v3.x 支持同时选中多个节点。

    -

    请通过 zTree 对象执行此方法。

    -
    -
    -

    Function 参数说明

    -
    -

    treeNodeJSON

    -

    需要被选中的节点数据

    -

    请务必保证此节点数据对象 是 zTree 内部的数据对象

    -

    addFlagBoolean

    -

    addFlag = true 表示追加选中,会出现多点同时被选中的情况

    -

    addFlag = false (默认)表示单独选中,原先被选中的节点会被取消选中状态

    -

    setting.view.selectedMulti = false 时,此参数无效,始终进行单独选中

    -

    isSilentBoolean

    -

    isSilent = true 选中节点时,不会让节点自动滚到到可视区域内

    -

    isSilent = false (默认)表示选中节点时,会让节点自动滚到到可视区域内

    -

    (v3.5.23+)

    -

    返回值

    -

    目前无任何返回值

    -
    -

    function 举例

    -

    1. 单独选中根节点中第一个节点

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getNodes();
    -if (nodes.length>0) {
    -	treeObj.selectNode(nodes[0]);
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.setChkDisabled.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.setChkDisabled.html deleted file mode 100644 index 9540080b..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.setChkDisabled.html +++ /dev/null @@ -1,44 +0,0 @@ -
    -
    -

    Function(node, disabled, inheritParent, inheritChildren)zTreeObj.setChkDisabled

    -

    概述[ 依赖 jquery.ztree.excheck 扩展 js ]

    -
    -

    -
    -

    禁用 或 解禁 某个节点的 checkbox / radio [setting.check.enable = true 时有效]

    -

    1、节点的 checkbox / radio 被禁用后,无法勾选或取消勾选,但能够影响父节点的半选状态

    -

    2、请不要直接修改已加载节点的 treeNode.chkDisabled 属性。

    -

    3、请通过 zTree 对象执行此方法。

    -
    -
    -

    Function 参数说明

    -
    -

    treeNodeJSON

    -

    需要禁用 或 解禁 checkbox / radio 的节点数据

    -

    请务必保证此节点数据对象 是 zTree 内部的数据对象

    -

    disabledBoolean

    -

    disabled = true 表示禁用 checkbox / radio

    -

    disabled = false 表示解禁 checkbox / radio

    -

    省略此参数,等同于 disabled = false

    -

    不影响 treeNode.nocheck = true 的节点。

    -

    inheritParentBoolean

    -

    inheritParent = true 表示全部父节点进行同样的操作

    -

    inheritParent = false 表示不影响父节点

    -

    省略此参数,等同于 inheritParent = false

    -

    inheritChildrenBoolean

    -

    inheritChildren = true 表示全部子节点进行同样的操作

    -

    inheritChildren = false 表示不影响子节点

    -

    省略此参数,等同于 inheritChildren = false

    -

    返回值

    -

    目前无任何返回值

    -
    -

    function 举例

    -

    1. 禁用当前选中的节点的 checkbox / radio

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getSelectedNodes();
    -for (var i=0, l=nodes.length; i < l; i++) {
    -	treeObj.setChkDisabled(nodes[i], true);
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.setEditable.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.setEditable.html deleted file mode 100644 index c90c8de6..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.setEditable.html +++ /dev/null @@ -1,27 +0,0 @@ -
    -
    -

    Function(editable)zTreeObj.setEditable

    -

    概述[ 依赖 jquery.ztree.exedit 扩展 js ]

    -
    -

    -
    -

    设置 zTree 进入 / 取消 编辑状态。

    -

    对于编辑状态的各种功能需要提前设置对应 setting 中的不同属性

    -

    请通过 zTree 对象执行此方法。

    -
    -
    -

    Function 参数说明

    -
    -

    editableBoolean

    -

    true 表示进入 编辑状态

    -

    false 表示取消 编辑状态

    -

    返回值

    -

    目前无任何返回值

    -
    -

    function 举例

    -

    1. 设置 zTree 进入编辑状态

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -treeObj.setEditable(true);
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.setting.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.setting.html deleted file mode 100644 index 61abd531..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.setting.html +++ /dev/null @@ -1,13 +0,0 @@ -
    -
    -

    JSONzTreeObj.setting

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    zTree 对象使用的 setting 配置数据,详细请参考 “setting 配置详解”中的各个属性详细说明

    -

    v3.x 取消了原先操作 setting 的方法,让用户可以较自由的修改参数,但请注意,对于 zTree 初始化有影响的参数后期修改是不会起作用的,请对各个属性有较深入的了解以后再考虑进行修改。

    -
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.showNode.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.showNode.html deleted file mode 100644 index ed22d510..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.showNode.html +++ /dev/null @@ -1,31 +0,0 @@ -
    -
    -

    Function(treeNode)zTreeObj.showNode

    -

    概述[ 依赖 jquery.ztree.exhide 扩展 js ]

    -
    -

    -
    -

    显示某个被隐藏的节点。

    -

    1、此功能不支持 exedit 扩展,因此不要在编辑状态时使用隐藏节点的方法。

    -

    2、隐藏/显示节点,会影响节点的 isFirstNode 和 isLastNode 属性。

    -

    3、请通过 zTree 对象执行此方法。

    -
    -
    -

    Function 参数说明

    -
    -

    treeNodeJSON

    -

    指定被显示的节点 JSON 数据

    -

    请务必保证此节点数据对象 是 zTree 内部的数据对象

    -

    返回值

    -

    目前无任何返回值

    -
    -

    function 举例

    -

    1. 显示某个隐藏的节点

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var node = treeObj.getNodeByParam("isHidden", true);
    -if (node) {
    -  treeObj.showNode(node);
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.showNodes.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.showNodes.html deleted file mode 100644 index b0906574..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.showNodes.html +++ /dev/null @@ -1,29 +0,0 @@ -
    -
    -

    Function(treeNodes)zTreeObj.showNodes

    -

    概述[ 依赖 jquery.ztree.exhide 扩展 js ]

    -
    -

    -
    -

    显示一批已经被隐藏的节点。

    -

    1、此功能不支持 exedit 扩展,因此不要在编辑状态时使用隐藏节点的方法。

    -

    2、隐藏/显示节点,会影响节点的 isFirstNode 和 isLastNode 属性。

    -

    3、请通过 zTree 对象执行此方法。

    -
    -
    -

    Function 参数说明

    -
    -

    treeNodesArray(JSON)

    -

    指定被显示的节点 JSON 数据集合

    -

    请务必保证这些节点数据对象 是 zTree 内部的数据对象

    -

    返回值

    -

    目前无任何返回值

    -
    -

    function 举例

    -

    1. 显示全部隐藏的节点

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getNodesByParam("isHidden", true);
    -treeObj.showNodes(nodes);
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.transformToArray.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.transformToArray.html deleted file mode 100644 index a46dc61e..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.transformToArray.html +++ /dev/null @@ -1,25 +0,0 @@ -
    -
    -

    Function(treeNodes)zTreeObj.transformToArray

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    将 zTree 使用的标准 JSON 嵌套格式的数据转换为简单 Array 格式。(免去用户自行编写递归遍历全部节点的麻烦)

    -

    请通过 zTree 对象执行此方法。

    -
    -
    -

    Function 参数说明

    -
    -

    treeNodesArray(JSON) / JSON

    -

    需要被转换的 zTree 节点数据对象集合 或 某个单独节点的数据对象

    -

    返回值Array(JSON)

    -

    转换后的简单 Array 数据格式

    -
    -

    function 举例

    -

    1. 将 zTree 节点数据转换为简单 Array 格式

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.transformToArray(treeObj.getNodes());
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.transformTozTreeNodes.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.transformTozTreeNodes.html deleted file mode 100644 index 4b026509..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.transformTozTreeNodes.html +++ /dev/null @@ -1,43 +0,0 @@ -
    -
    -

    Function(simpleNodes)zTreeObj.transformTozTreeNodes

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    将简单 Array 格式数据转换为 zTree 使用的标准 JSON 嵌套数据格式。

    -

    使用此方法,请务必设置节点唯一标识属性名称 setting.data.simpleData.idKey 和 父节点唯一标识属性名称 setting.data.simpleData.pIdKey,并且让数据满足父子关系。

    -

    请通过 zTree 对象执行此方法。

    -
    -
    -

    Function 参数说明

    -
    -

    simpleNodesArray(JSON) / JSON

    -

    需要被转换的简单 Array 格式数据 或 某个单独的数据对象

    -

    返回值Array(JSON)

    -

    zTree 使用的标准数据,子节点都存在于父节点数据的 children 属性中

    -

    如果 simpleNodes 是一个 JSON 对象,则被简单封装成长度为 1 的数组。

    -
    -

    function 举例

    -

    1. 将简单 Array 格式转换为zTree使用的标准格式

    -
    var setting = {
    -	data: {
    -		simpleData: {
    -			enable: true,
    -			idKey: "id",
    -			pIdKey: "pId",
    -			rootPId: 0
    -		}
    -	}
    -};
    -var simpleNodes = [
    -    {"id":1, "pId":0, "name":"test1"},
    -    {"id":11, "pId":1, "name":"test11"},
    -    {"id":12, "pId":1, "name":"test12"},
    -    {"id":111, "pId":11, "name":"test111"}
    -];
    -var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.transformTozTreeNodes(simpleNodes);
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.updateNode.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.updateNode.html deleted file mode 100644 index e13419ce..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.updateNode.html +++ /dev/null @@ -1,37 +0,0 @@ -
    -
    -

    Function(treeNode, checkTypeFlag)zTreeObj.updateNode

    -

    概述[ 依赖 jquery.ztree.core 核心 js ]

    -
    -

    -
    -

    更新某节点数据,主要用于该节点显示属性的更新。

    -

    1、可针对 name、target、 url、icon、 iconSkin、checked、nocheck 等这几个用于显示效果的参数进行更新,其他用于 zTreeNodes 的参数请不要随意更新,对于展开节点,还请调用 expandNode方法,因此请勿随意修改 open 属性。

    -

    2、用此方法修改 checked 勾选状态不会触发 beforeCheck / onCheck 事件回调函数。

    -

    请通过 zTree 对象执行此方法。

    -
    -
    -

    Function 参数说明

    -
    -

    treeNodeJSON

    -

    指定需要更新的节点 JSON 数据

    -

    请务必保证此节点数据对象 是 zTree 内部的数据对象

    -

    checkTypeFlagBoolean

    -

    checkTypeFlag = true 表示按照 setting.check.chkboxType 属性进行父子节点的勾选联动操作

    -

    checkTypeFlag = false 表示只修改此节点勾选状态,无任何勾选联动操作

    -

    当 setting.check.enable = true 且 setting.check.chkStyle = "checkbox" 时才有效

    -

    不影响父子节点中 treeNode.nocheck = true 的节点。

    -

    返回值

    -

    目前无任何返回值

    -
    -

    function 举例

    -

    1. 更新根节点中第一个节点的名称

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getNodes();
    -if (nodes.length>0) {
    -	nodes[0].name = "test";
    -	treeObj.updateNode(nodes[0]);
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/fn.zTree._z.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/fn.zTree._z.html deleted file mode 100644 index e2ae61d6..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/fn.zTree._z.html +++ /dev/null @@ -1,15 +0,0 @@ -
    -
    -

    JSON$.fn.zTree._z

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    All of the internal methods in zTree v3.x are available through '$. fn.zTree._z', - use this if you want to develop your own zTree plug-ins.

    -

    Unless you are writing a plugin, - you should not use this object.

    -
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/fn.zTree.destroy.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/fn.zTree.destroy.html deleted file mode 100644 index c53cb800..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/fn.zTree.destroy.html +++ /dev/null @@ -1,29 +0,0 @@ -
    -
    -

    Function(treeId)$.fn.zTree.destroy

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    From zTree v3.4, zTree provides a method for destruction.

    -

    1. This method can destroy a zTree by treeId, or destroy all zTree instances.

    -

    2. If you want to destroy a zTree, you can use the 'zTreeObj.destroy()' method.

    -

    3. If you want to re-use the tree which has been destroyed, - you must first re-initialise it with the 'init()' method.

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    treeIdString

    -

    zTree unique identifier

    -

    If this parameter is omitted, all zTree instances will be destroyed.

    -

    Return none

    -

    no return value

    -
    -

    Examples of function

    -

    1. Destroy the zTree with id === 'treeDemo'

    -
    $.fn.zTree.destroy("treeDemo");
    -

    2. Destroy all zTree instances

    -
    $.fn.zTree.destroy();
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/fn.zTree.getZTreeObj.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/fn.zTree.getZTreeObj.html deleted file mode 100644 index 49dadaa9..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/fn.zTree.getZTreeObj.html +++ /dev/null @@ -1,27 +0,0 @@ -
    -
    -

    Function(treeId)$.fn.zTree.getZTreeObj

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    zTree v3.x provides this method to get zTree object from the tree's Id.

    -

    Please initialize zTree first, then you can use this method.

    -

    Users don't need to use a global variable to reference the zTree object, - as all of the callback methods will pass 'treeId' parameters, - and you can always call this method to get the zTree object.

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    treeIdString

    -

    zTree unique identifier

    -

    Return JSON

    -

    zTree object

    -

    This is a reference to the zTree object.

    -
    -

    Examples of function

    -

    1. Get the zTree object with id='tree'

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/fn.zTree.init.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/fn.zTree.init.html deleted file mode 100644 index 413056ca..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/fn.zTree.init.html +++ /dev/null @@ -1,81 +0,0 @@ -
    -
    -

    Function(obj, zSetting, zNodes)$.fn.zTree.init

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    This method is used to create a zTree.

    -

    1. The web page must use the W3C DTD. For example: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    -

    2. Needs jquery-1.4.2.js or better.

    -

    3. Needs jquery-ztree.core-3.0.js or better. - If you are using edit mode or checkbox / radio mode, - make sure you load jquery-ztree.exedit-3.0.js and jquery-ztree.excheck-3.0.js.

    -

    4. Needs zTreeStyle.css and image files

    -

    5. If you plan to use custom icons, please refer to the Demo, - or see the help on iconSkin.

    -

    6. Note: You need to set zTree container's class name to "ztree". - If you need to change it, don't forget to modify the css file. - If you need other special styles, you can modify the css file.

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    objectjQuery Object

    -

    DOM Container for zTree

    -

    zSettingJSON

    -

    zTree's configuration data, please refer to "setting details" in the API Document.

    -

    zNodesArray(JSON) / JSON

    -

    zTree's node data, please refer to "treeNode data details" in the API Document.

    -

    1. zTree v3.x support to add single node, that is, if only to add one node, - you can use JSON without using Array.

    -

    2. If you are planning on using asynchronous loading of root nodes, set it to null or [ ]

    -

    3. If you are using simple data mode, please refer to "setting.data.simpleData" in the API Document.

    -

    Return JSON

    -

    zTree object

    -

    This object can provide the methods of operate the zTree

    -

    You can use $.fn.zTree.getZTreeObj method at any time to obtain.

    -
    -

    Examples of setting & function

    -

    1. create a simple tree

    -
    <!DOCTYPE html>
    -<HTML>
    - <HEAD>
    -  <TITLE> ZTREE DEMO </TITLE>
    -  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    -  <link rel="stylesheet" href="zTreeStyle/zTreeStyle.css" type="text/css">
    -  <script type="text/javascript" src="jquery-1.4.2.js"></script>
    -  <script type="text/javascript" src="jquery.ztree.core.js"></script>
    -<!--
    -  <script type="text/javascript" src="jquery.ztree.excheck.js"></script>
    -  <script type="text/javascript" src="jquery.ztree.exedit.js"></script>
    --->
    -  <SCRIPT type="text/javascript" >
    -	var zTreeObj,
    -	setting = {
    -		view: {
    -			selectedMulti: false
    -		}
    -	},
    -	zTreeNodes = [
    -		{"name":"Site Map", open:true, children: [
    -			{ "name":"google", "url":"http://www.google.com", "target":"_blank"},
    -			{ "name":"baidu", "url":"http://baidu.com", "target":"_blank"},
    -			{ "name":"sina", "url":"http://www.sina.com.cn", "target":"_blank"}
    -			]
    -		}
    -	];
    -
    -	$(document).ready(function(){
    -		zTreeObj = $.fn.zTree.init($("#tree"), setting, zTreeNodes);
    -
    -	});
    -  </SCRIPT>
    - </HEAD>
    -
    -<BODY>
    -<ul id="tree" class="ztree" style="width:230px; overflow:auto;"></ul>
    - </BODY>
    -</HTML>
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.autoParam.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.autoParam.html deleted file mode 100644 index 6c4cbe06..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.autoParam.html +++ /dev/null @@ -1,52 +0,0 @@ -
    -
    -

    Array(String) / Function(treeId, treeNode)setting.async.autoParam

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    During asynchronous loading, a request is sent to the server, which contains the identify of the parent node, - so it can retrieve the children. - This attribute is an array of strings, which is the identity parameter (or parameters). - It applies when [setting.async.enable = true]

    -

    Default:[ ]

    -
    -
    -

    Array(String) Format

    -
    -

    1. Put the attribute name(s) of node to the array. For example: ["id", "name"]

    -

    2. You can rename the parameter name as sent to the server. For example: server only accepts "zId" -- ["id=zId"]

    -
    -

    Function Parameter Descriptions

    -
    -

    treeIdString

    -

    zTree unique identifier: treeId.

    -

    treeNodeJSON

    -

    Parent node's JSON data object

    -

    When asynchronously loading the root, the treeNode = null

    -

    Return Array(String)

    -

    Return value is same as 'Array(String) Format'

    -
    -

    Examples of setting

    -

    1. set auto commit 'id' attribute

    -
    var setting = {
    -	async: {
    -		enable: true,
    -		url: "http://host/getNode.php",
    -		autoParam: ["id"]
    -	}
    -};
    -If we have a parent node: {id:1, name:"test"}, When we are asynchronously loading this parent node's children, it will be submitted to the server with parameters: id=1
    -......
    -

    2. set auto commit 'id' attribute, but the parameter name expected by the server is 'zId'

    -
    var setting = {
    -	async: {
    -		enable: true,
    -		url: "http://host/getNode.php",
    -		autoParam: ["id=zId"]
    -	}
    -};
    -If we have a parent node: {id:1, name:"test"}, When we are asynchronously loading this parent node's children, it will be submitted to the server with parameters: zId=1
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.contentType.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.contentType.html deleted file mode 100644 index c9e15099..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.contentType.html +++ /dev/null @@ -1,30 +0,0 @@ -
    -
    -

    Stringsetting.async.contentType

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    When Ajax sends data to the server, it uses this content-type. - It is used when [setting.async.enable = true]

    -

    Default:"application/x-www-form-urlencoded"

    -
    -
    -

    String Format

    -
    -

    contentType = "application/x-www-form-urlencoded", means: the sending data format is "form" format.

    -

    contentType = "application/json", means: the sending data format is "json" format. (for .Net)

    -
    -

    Examples of setting

    -

    1. set the sending data format to "json" format.

    -
    var setting = {
    -	async: {
    -		enable: true,
    -		contentType: "application/json",
    -		url: "http://host/getNode.php",
    -		autoParam: ["id", "name"]
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.dataFilter.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.dataFilter.html deleted file mode 100644 index 4347a082..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.dataFilter.html +++ /dev/null @@ -1,45 +0,0 @@ -
    -
    -

    Function(treeId, parentNode, responseData)setting.async.dataFilter

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Callback function to pre-process Ajax return data. It is valid when [setting.async.enable = true]

    -

    Default: null

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    treeIdString

    -

    zTree unique identifier: treeId

    -

    parentNodeJSON

    -

    Parent node's JSON data object

    -

    When asynchronously loading the root, the parentNode = null

    -

    responseDataArray(JSON) / JSON / String

    -

    Array (JSON) / JSON / String data objects

    -

    From v3.4, support XML strings.

    -

    Return Array(JSON) / JSON

    -

    The return value should be the JSON data structure which is supported by the zTree.

    -

    v3.x supports to load single node JSON data object.

    -
    -

    Examples of setting & function

    -

    1. Modify the node name attributes returned by an Ajax request.

    -
    function ajaxDataFilter(treeId, parentNode, responseData) {
    -    if (responseData) {
    -      for(var i =0; i < responseData.length; i++) {
    -        responseData[i].name += "_filter";
    -      }
    -    }
    -    return responseData;
    -};
    -var setting = {
    -	async: {
    -		enable: true,
    -		url: "http://host/getNode.php",
    -		dataFilter: ajaxDataFilter
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.dataType.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.dataType.html deleted file mode 100644 index 41db3007..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.dataType.html +++ /dev/null @@ -1,29 +0,0 @@ -
    -
    -

    Stringsetting.async.dataType

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    The data type of Ajax requests. It is valid when [setting.async.enable = true]

    -

    Default:"text"

    -
    -
    -

    String Format

    -
    -

    dataType = "text", There is probably no need to change this.

    -

    The 'dataType' in zTree and jQuery's ajax requests is same.

    -
    -

    Examples of setting

    -

    1. Set the dataType which ajax retrieves to "text".

    -
    var setting = {
    -	async: {
    -		enable: true,
    -		dataType: "text",
    -		url: "http://host/getNode.php",
    -		autoParam: ["id", "name"]
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.enable.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.enable.html deleted file mode 100644 index c2844764..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.enable.html +++ /dev/null @@ -1,30 +0,0 @@ -
    -
    -

    Booleansetting.async.enable

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Set zTree asynchronous loading mode on/off.

    -

    Default: false

    -
    -
    -

    Boolean Format

    -
    -

    true - turn on asynchronous loading mode

    -

    false - turn off asynchronous loading mode

    -

    If set it is true, you must set other attributes in setting.async

    -

    If you don't pass the 'treeNodes' parameter when you initialize zTree, the root nodes will be retrieved using ajax.

    -
    -

    Examples of setting

    -

    1. Turn on asynchronous loading mode

    -
    var setting = {
    -	async: {
    -		enable: true,
    -		url: "http://host/getNode.php",
    -		autoParam: ["id", "name"]
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.headers.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.headers.html deleted file mode 100644 index e7195831..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.headers.html +++ /dev/null @@ -1,18 +0,0 @@ -
    -
    -

    Objectsetting.async.headers

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    It is valid when [setting.async.enable = true]

    -

    Default:"{}"

    -

    v3.5.36+

    -
    -
    -

    String Format

    -
    -

    The 'headers' in zTree and jQuery's ajax requests is same.

    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.otherParam.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.otherParam.html deleted file mode 100644 index cf8faa31..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.otherParam.html +++ /dev/null @@ -1,50 +0,0 @@ -
    -
    -

    Array(String) / JSON / Function(treeId, treeNode)setting.async.otherParam

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    The query parameters of the Ajax request. (key - value) It is valid when [setting.async.enable = true]

    -

    Default: [ ]

    -
    -
    -

    Array(String) Format

    -
    -

    Can be an empty array. e.g. [ ]. The array should contain key value pairs, e.g. [key, value]. (Either or [key] or [key, value, key] is wrong!!)

    -
    -

    JSON Format

    -
    -

    Use JSON hash data to set the key-value pairs. e.g. { key1:value1, key2:value2 }

    -
    -

    Function Parameter Descriptions

    -
    -

    treeIdString

    -

    zTree unique identifier: treeId.

    -

    treeNodeJSON

    -

    Parent node's JSON data object

    -

    When asynchronously loading the root, the treeNode = null

    -

    Return Array(String) || JSON

    -

    Return value is same as 'Array(String) || JSON Format'

    -
    -

    Examples of setting

    -

    1. Using Array(String) Format

    -
    var setting = {
    -	async: {
    -		enable: true,
    -		url: "http://host/getNode.php",
    -		otherParam: ["id", "1", "name", "test"]
    -	}
    -};
    -when zTree sends the ajax request, the query string will be like this: id=1&name=test
    -

    2. Using JSON data Format

    -
    var setting = {
    -	async: {
    -		enable: true,
    -		url: "http://host/getNode.php",
    -		otherParam: { "id":"1", "name":"test"}
    -	}
    -};
    -when zTree sends the ajax request, the query string will be like this: id=1&name=test
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.type.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.type.html deleted file mode 100644 index c67599a0..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.type.html +++ /dev/null @@ -1,30 +0,0 @@ -
    -
    -

    Stringsetting.async.type

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Http request tyoe in ajax. It is valid when [setting.async.enable = true]

    -

    Default: "post"

    -
    -
    -

    String Format

    -
    -

    "post" - http request mode

    -

    "get" - http request mode

    -

    Both zTree and jQuery's this 'type' for ajax requests.

    -
    -

    Examples of setting

    -

    1. Set http request mode is 'get'

    -
    var setting = {
    -	async: {
    -		enable: true,
    -		type: "get",
    -		url: "http://host/getNode.php",
    -		autoParam: ["id", "name"]
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.url.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.url.html deleted file mode 100644 index 2384c08d..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.url.html +++ /dev/null @@ -1,50 +0,0 @@ -
    -
    -

    String / Function(treeId, treeNode)setting.async.url

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    The URL to which the ajax request is sent. It is valid when [setting.async.enable = true]

    -

    Default: ""

    -
    -
    -

    String Format

    -
    -

    A url string(e.g. "http://www.domain.com/cgi-bin/my-script.cgi"). Note: please check that the url can be loaded with a browser

    -

    Url can also take parameters, please note that they need to be urlencoded.

    -
    -

    Function Parameter Descriptions

    -
    -

    treeIdString

    -

    zTree unique identifier: treeId.

    -

    treeNodeJSON

    -

    Parent node's JSON data object

    -

    When asynchronously loading the root, the treeNode = null

    -

    Return String

    -

    Return value is same as 'String Format'

    -
    -

    Examples of setting & function

    -

    1. set ajax url is "nodes.php"

    -
    var setting = {
    -	async: {
    -		enable: true,
    -		url: "nodes.php",
    -		autoParam: ["id", "name"]
    -	}
    -};
    -......
    -

    2. set ajax url is "function"

    -
    function getAsyncUrl(treeId, treeNode) {
    -    return treeNode.isParent ? "nodes1.php" : "nodes2.php";
    -};
    -var setting = {
    -	async: {
    -		enable: true,
    -		url: getAsyncUrl,
    -		autoParam: ["id", "name"]
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.xhrFields.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.xhrFields.html deleted file mode 100644 index d1588cf2..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.xhrFields.html +++ /dev/null @@ -1,18 +0,0 @@ -
    -
    -

    Objectsetting.async.xhrFields

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    It is valid when [setting.async.enable = true]

    -

    Default:"{}"

    -

    v3.5.36+

    -
    -
    -

    String Format

    -
    -

    The 'xhrFields' in zTree and jQuery's ajax requests is same.

    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeAsync.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeAsync.html deleted file mode 100644 index 55f52ee5..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeAsync.html +++ /dev/null @@ -1,36 +0,0 @@ -
    -
    -

    Function(treeId, treeNode)setting.callback.beforeAsync

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    This callback is made before zTree makes an ajax request, giving you an opportunity to decide if it should proceed or not. - Return false to prevent zTree from sending the ajax request.

    -

    Default: null

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    treeIdString

    -

    zTree unique identifier: treeId.

    -

    treeNodeJSON

    -

    JSON data object of the parent node

    -

    When asynchronously loading the root, treeNode = null

    -

    Return Boolean

    -

    return true or false

    -

    If the function returns false, zTree will not send the ajax request, and will not trigger the 'onAsyncSuccess / onAsyncError' callback.

    -
    -

    Examples of setting & function

    -

    1. If the parent node's attribute 'id' is 1, don't send the ajax request.

    -
    function myBeforeCallBack(treeId, treeNode) {
    -    return (treeNode.id !== 1);
    -};
    -var setting = {
    -	callback: {
    -		beforeAsync: myBeforeCallBack
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeCheck.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeCheck.html deleted file mode 100644 index b2d71e56..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeCheck.html +++ /dev/null @@ -1,34 +0,0 @@ -
    -
    -

    Function(treeId, treeNode)setting.callback.beforeCheck

    -

    Overview[ depends on jquery.ztree.excheck js ]

    -
    -

    -
    -

    Callback before checking or unchecking a node, A false return value from the callback will prevent any change in the checked state.

    -

    Default: null

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    treeIdString

    -

    zTree unique identifier: treeId.

    -

    treeNodeJSON

    -

    JSON data object of the node which is checked or unchecked

    -

    Return Boolean

    -

    return true or false

    -

    If return false, zTree will not change the checkbox state, and will not trigger the 'onCheck' callback.

    -
    -

    Examples of setting & function

    -

    1. This example returns false, preventing all checkboxes in the tree from toggling.

    -
    function myBeforeCheckCallBack(treeId, treeNode) {
    -    return false;
    -};
    -var setting = {
    -	callback: {
    -		beforeCheck: myBeforeCheckCallBack
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeClick.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeClick.html deleted file mode 100644 index 250416b3..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeClick.html +++ /dev/null @@ -1,49 +0,0 @@ -
    -
    -

    Function(treeId, treeNode, clickFlag)setting.callback.beforeClick

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Before click callback, return false to prevent the 'onClick' callback.

    -

    Default: null

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    treeIdString

    -

    zTree unique identifier: treeId.

    -

    treeNodeJSON

    -

    JSON data object of the node which is clicked

    -

    clickFlagNumber

    -

    Node is selected or deselected state, please see table below for details

    - - - - - - - - - - - - -
    clickFlagselectedMultiautoCancelSelected
    &&
    event.ctrlKey / metaKey
    isSelectedoperate for selected
    1truefalsefalsenode is selected (single)
    1truefalsetruenode is selected (single)
    2truetruefalsenode is selected (multi)
    0truetruetruenode is deselected
    1falsefalsefalsenode is selected (single)
    1falsefalsetruenode is selected (single)
    1falsetruefalsenode is selected (single)
    0falsetruetruenode is deselected
    -

    Return Boolean

    -

    return true or false

    -

    If return false, zTree will not change selected state, and will not trigger the 'onClick' callback.

    -
    -

    Examples of setting & function

    -

    1. disabled to click the node

    -
    function myBeforeClick(treeId, treeNode, clickFlag) {
    -    return (treeNode.id !== 1);
    -};
    -var setting = {
    -	callback: {
    -		beforeClick: myBeforeClick
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeCollapse.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeCollapse.html deleted file mode 100644 index 950b728a..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeCollapse.html +++ /dev/null @@ -1,34 +0,0 @@ -
    -
    -

    Function(treeId, treeNode)setting.callback.beforeCollapse

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Specify callback function to be called before collapse node, The return value controls the collapse node.

    -

    Default: null

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    treeIdString

    -

    zTree unique identifier: treeId.

    -

    treeNodeJSON

    -

    JSON data object of the node to be collapsed

    -

    Return Boolean

    -

    return true or false

    -

    If return false, zTree will not collapse node, and will not trigger the 'onCollapse' callback.

    -
    -

    Examples of setting & function

    -

    1. disabled to collapse node which is expanded

    -
    function myBeforeCollapse(treeId, treeNode) {
    -    return false;
    -};
    -var setting = {
    -	callback: {
    -		beforeCollapse: myBeforeCollapse
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeDblClick.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeDblClick.html deleted file mode 100644 index 3d4ead19..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeDblClick.html +++ /dev/null @@ -1,36 +0,0 @@ -
    -
    -

    Function(treeId, treeNode)setting.callback.beforeDblClick

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Specify callback function, executed before the 'onDblClick' callback, The return value controls the 'onDblClick' callback.

    -

    Default: null

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    treeIdString

    -

    zTree unique identifier: treeId.

    -

    treeNodeJSON

    -

    JSON data object of the node which is double clicked

    -

    If the DOM which dblclicked isn't a node, it will return null.

    -

    Return Boolean

    -

    return true or false

    -

    If return false, ztree will not trigger the 'onDblClick' callback, no effect on other operations.

    -

    This callback function does not affect the auto expand of the parent node , please refer to setting.view.dblClickExpand properties.

    -
    -

    Examples of setting & function

    -

    1. disable to trigger the 'onDblClick' callback

    -
    function myBeforeDblClick(treeId, treeNode) {
    -    return false;
    -};
    -var setting = {
    -	callback: {
    -		beforeDblClick: myBeforeDblClick
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeDrag.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeDrag.html deleted file mode 100644 index fca278d6..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeDrag.html +++ /dev/null @@ -1,39 +0,0 @@ -
    -
    -

    Function(treeId, treeNodes)setting.callback.beforeDrag

    -

    Overview[ depends on jquery.ztree.exedit js ]

    -
    -

    -
    -

    Specify callback function to be called before the drag node callback, The return value controls whether the drag node callback will execute.

    -

    Default: null

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    treeIdString

    -

    zTree unique identifier: treeId, the id of the containing tree.

    -

    treeNodesArray(JSON)

    -

    A collection of the nodes being dragged

    -

    v3.x allows the drag and drop of multiple sibling nodes, so this parameter's type is changed to Array(JSON).

    -

    If the selected nodes aren't sibling nodes, you can only drag one node.

    -

    Return Boolean

    -

    return true or false

    -

    If return false, zTree will abort the drag and drop, and will not trigger the 'onDrag / beforeDrop / onDrop' sequence of callbacks.

    -
    -

    Examples of setting & function

    -

    1. disable drag completely (by returning false)

    -
    function myBeforeDrag(treeId, treeNodes) {
    -    return false;
    -};
    -var setting = {
    -	edit: {
    -		enable: true
    -	},
    -	callback: {
    -		beforeDrag: myBeforeDrag
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeDragOpen.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeDragOpen.html deleted file mode 100644 index d28bafe2..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeDragOpen.html +++ /dev/null @@ -1,37 +0,0 @@ -
    -
    -

    Function(treeId, treeNode)setting.callback.beforeDragOpen

    -

    Overview[ depends on jquery.ztree.exedit js ]

    -
    -

    -
    -

    Callback executed before drag node to collapsed parent node, The return value controls the auto expand behaviour of the parent node.

    -

    Default: null

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    treeIdString

    -

    zTree unique identifier: treeId, the tree is what the treeNode(parent node) is belong to.

    -

    treeNodeJSON

    -

    JSON data object of the parent node which will be auto expanded

    -

    Return Boolean

    -

    return true or false

    -

    If return false, zTree will not auto expand parent node.

    -
    -

    Examples of setting & function

    -

    1. disable to auto expand parent node.

    -
    function myBeforeDragOpen(treeId, treeNode) {
    -    return false;
    -};
    -var setting = {
    -	edit: {
    -		enable: true
    -	},
    -	callback: {
    -		beforeDragOpen: myBeforeDragOpen
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeDrop.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeDrop.html deleted file mode 100644 index 9b244758..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeDrop.html +++ /dev/null @@ -1,50 +0,0 @@ -
    -
    -

    Function(treeId, treeNodes, targetNode, moveType, isCopy)setting.callback.beforeDrop

    -

    Overview[ depends on jquery.ztree.exedit js ]

    -
    -

    -
    -

    Specify callback function to be called before drag-drop of a node, The return value controls the execution of drag-drop callback.

    -

    Default: null

    -

    When a node is dropped, if the drop is not in a valid location, this callback will not be triggered, and will revert to the original position.

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    treeIdString

    -

    zTree unique identifier: treeId, the id of the containing tree.

    -

    treeNodesArray(JSON)

    -

    A collection of the nodes which has been dragged

    -

    The treeNodes which have been dragged, when copying nodes or moving nodes.

    -

    targetNodeJSON

    -

    JSON data object of the destination node on which treeNodes are being dropped.

    -

    If the treeNodes is the root node, the targetNode = null

    -

    moveTypeString

    -

    the relative position of move to the target node

    -

    "inner": will be child of targetNode

    -

    "prev": will be sibling node, and be in front of targetNode

    -

    "next": will be sibling node, and be behind targetNode

    -

    isCopyBoolean

    -

    the flag used to determine if the drop is to copy or move the node

    -

    true: copy node; false: move node

    -

    Return Boolean

    -

    return true or false

    -

    If return false, zTree will restore the dragged nodes, and will not trigger the 'onDrop' callback.

    -
    -

    Examples of setting & function

    -

    1. disable to drag nodes to root

    -
    function myBeforeDrop(treeId, treeNodes, targetNode, moveType) {
    -    return !(targetNode == null || (moveType != "inner" && !targetNode.parentTId));
    -};
    -var setting = {
    -	edit: {
    -		enable: true
    -	},
    -	callback: {
    -		beforeDrop: myBeforeDrop
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeEditName.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeEditName.html deleted file mode 100644 index a8200807..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeEditName.html +++ /dev/null @@ -1,38 +0,0 @@ -
    -
    -

    Function(treeId, treeNode)setting.callback.beforeEditName

    -

    Overview[ depends on jquery.ztree.exedit js ]

    -
    -

    -
    -

    Specify callback function to be called before click edit button, The return value controls the editing of the name.

    -

    This callback is fired when the edit button is clicked, to control the custom editing operation.

    -

    Default: null

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    treeIdString

    -

    zTree unique identifier: treeId.

    -

    treeNodeJSON

    -

    JSON data object of the node to be edited.

    -

    Return Boolean

    -

    return true or false

    -

    If return false, allow editing of the name.

    -
    -

    Examples of setting & function

    -

    1. disable editing of any parent node's name

    -
    function myBeforeEditName(treeId, treeNode) {
    -	return !treeNode.isParent;
    -}
    -var setting = {
    -	edit: {
    -		enable: true
    -	},
    -	callback: {
    -		beforeEditName: myBeforeEditName
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeExpand.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeExpand.html deleted file mode 100644 index 8b0a6e73..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeExpand.html +++ /dev/null @@ -1,34 +0,0 @@ -
    -
    -

    Function(treeId, treeNode)setting.callback.beforeExpand

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Specify callback function to be called before expanding a node, The return value controls the expand node callback.

    -

    Default: null

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    treeIdString

    -

    zTree unique identifier: treeId.

    -

    treeNodeJSON

    -

    JSON data object of the node to be expanded

    -

    Return Boolean

    -

    return true or false

    -

    If return false, zTree will not expand node, and will not trigger the 'onExpand' callback.

    -
    -

    Examples of setting & function

    -

    1. disables expanding of all nodes

    -
    function myBeforeExpand(treeId, treeNode) {
    -    return false;
    -};
    -var setting = {
    -	callback: {
    -		beforeExpand: myBeforeExpand
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeMouseDown.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeMouseDown.html deleted file mode 100644 index d27f431d..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeMouseDown.html +++ /dev/null @@ -1,35 +0,0 @@ -
    -
    -

    Function(treeId, treeNode)setting.callback.beforeMouseDown

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Specify callback function, executed before the 'onMouseDown' callback, The return value controls the 'onMouseDown' callback.

    -

    Default: null

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    treeIdString

    -

    zTree unique identifier: treeId.

    -

    treeNodeJSON

    -

    JSON data object of the node which mouse over

    -

    If the DOM which mouse over isn't a node, it will return null.

    -

    Return Boolean

    -

    return true or false

    -

    If return false, zTree will not trigger the 'onMouseDown' callback, no effect on other operations.

    -
    -

    Examples of setting & function

    -

    1. disable to trigger the 'onMouseDown' callback

    -
    function myBeforeMouseDown(treeId, treeNode) {
    -    return false;
    -};
    -var setting = {
    -	callback: {
    -		beforeMouseDown: myBeforeMouseDown
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeMouseUp.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeMouseUp.html deleted file mode 100644 index e7d10de5..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeMouseUp.html +++ /dev/null @@ -1,35 +0,0 @@ -
    -
    -

    Function(treeId, treeNode)setting.callback.beforeMouseUp

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Specify callback function, executed before the 'onMouseUp' callback, The return value controls the 'onMouseUp' callback.

    -

    Default: null

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    treeIdString

    -

    zTree unique identifier: treeId.

    -

    treeNodeJSON

    -

    JSON data object of the node which mouse over

    -

    If the DOM which mouse over isn't a node, it will return null.

    -

    Return Boolean

    -

    return true or false

    -

    If return false, zTree will not trigger the 'onMouseUp' callback, no effect on other operations.

    -
    -

    Examples of setting & function

    -

    1. disable to trigger the 'onMouseUp' callback

    -
    function myBeforeMouseUp(treeId, treeNode) {
    -    return false;
    -};
    -var setting = {
    -	callback: {
    -		beforeMouseUp: myBeforeMouseUp
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeRemove.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeRemove.html deleted file mode 100644 index 0e155d49..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeRemove.html +++ /dev/null @@ -1,37 +0,0 @@ -
    -
    -

    Function(treeId, treeNode)setting.callback.beforeRemove

    -

    Overview[ depends on jquery.ztree.exedit js ]

    -
    -

    -
    -

    Specify callback function to be called before remove node, The return value controls the allow to remove node.

    -

    Default: null

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    treeIdString

    -

    zTree unique identifier: treeId.

    -

    treeNodeJSON

    -

    JSON data object of the node to be removed.

    -

    Return Boolean

    -

    return true or false

    -

    If return false, zTree will not remove node, and will not trigger the 'onRemove' callback.

    -
    -

    Examples of setting & function

    -

    1. disable to remove node

    -
    function myBeforeRemove(treeId, treeNode) {
    -	return false;
    -}
    -var setting = {
    -	edit: {
    -		enable: true
    -	},
    -	callback: {
    -		beforeRemove: myBeforeRemove
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeRename.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeRename.html deleted file mode 100644 index bfed1446..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeRename.html +++ /dev/null @@ -1,46 +0,0 @@ -
    -
    -

    Function(treeId, treeNode, newName, isCancel)setting.callback.beforeRename

    -

    Overview[ depends on jquery.ztree.exedit js ]

    -
    -

    -
    -

    Specify callback function to be called before rename(when input DOM blur or press Enter Key), The return value controls the allow to rename node.

    -

    When node is editing name, press the ESC key to restore the original name and stop edit name.

    -

    From v3.5.13, zTree will trigger this callback when user cancel edit name. please see 'isCancel' parameter.

    -

    Default: null

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    treeIdString

    -

    zTree unique identifier: treeId.

    -

    treeNodeJSON

    -

    JSON data object of the node to be rename.

    -

    newNameString

    -

    the new name

    -

    isCancelBoolean

    -

    the status about cancel edit name (v3.5.13+)

    -

    isCancel = true means: user cancel edit name. (press ESC or use cancelEditName() function)

    -

    isCancel = false means: user submit edit name.

    -

    Return Boolean

    -

    return true or false

    -

    If return false, the treeNode will keep the editing name, don't trigger the 'onRename' callback, and will ignore other enents, until the callback return true.

    -

    If returns false, zTree will not set the input box to get focus to avoid the warning message which led to repeated triggering ‘beforeRename’ callback. Please use editName() method to set the input box to get focus when user close the warning message.

    -
    -

    Examples of setting & function

    -

    1. the length of the new name can't less than 5

    -
    function myBeforeRename(treeId, treeNode, newName, isCancel) {
    -	return newName.length > 5;
    -}
    -var setting = {
    -	edit: {
    -		enable: true
    -	},
    -	callback: {
    -		beforeRename: myBeforeRename
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeRightClick.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeRightClick.html deleted file mode 100644 index 9d05a0b1..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeRightClick.html +++ /dev/null @@ -1,35 +0,0 @@ -
    -
    -

    Function(treeId, treeNode)setting.callback.beforeRightClick

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Used to capture the right click event before the 'onRightClick' callback, The return value controls the 'onRightClick' callback.

    -

    Default: null

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    treeIdString

    -

    zTree unique identifier: treeId.

    -

    treeNodeJSON

    -

    JSON data object of the node which is mouse right clicked

    -

    If the DOM which mouse right clicked isn't a node, it will return null.

    -

    ReturnBoolean

    -

    return true or false

    -

    If return false, ztree will not trigger the 'onRightClick' callback, no effect on other operations.

    -
    -

    Examples of setting & function

    -

    1. disable to trigger the 'onRightClick' callback

    -
    function myBeforeRightClick(treeId, treeNode) {
    -    return false;
    -};
    -var setting = {
    -	callback: {
    -		beforeRightClick: myBeforeRightClick
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onAsyncError.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onAsyncError.html deleted file mode 100644 index 239f3ffc..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onAsyncError.html +++ /dev/null @@ -1,42 +0,0 @@ -
    -
    -

    setting.callback.onAsyncError

    -

    Function(event, treeId, treeNode, XMLHttpRequest, textStatus, errorThrown) 

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Used to capture the error event when execute ajax.

    -

    If you set 'setting.callback.beforeAsync',and return false, zTree will not execute ajax, and will not trigger the 'onAsyncSuccess / onAsyncError' callback.

    -

    Default: null

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    eventjs event Object

    -

    event Object

    -

    treeIdString

    -

    zTree unique identifier: treeId.

    -

    treeNodeJSON

    -

    JSON data object of the parent node

    -

    When load root nodes, treeNode = null

    -

    XMLHttpRequestString

    -

    XMLHttpRequest Object, please refer to JQuery API documentation.

    -

    textStatusString

    -

    a string categorizing the status of the request("success", "error"...), please refer to JQuery API documentation.

    -

    errorThrownString

    -

    eWhen an HTTP error occurs, errorThrown receives the textual portion of the HTTP status, please refer to JQuery API documentation.

    -
    -

    Examples of setting & function

    -

    1. When execute ajax make error, alert message.

    -
    function myOnAsyncError(event, treeId, treeNode, XMLHttpRequest, textStatus, errorThrown) {
    -    alert(XMLHttpRequest);
    -};
    -var setting = {
    -	callback: {
    -		onAsyncError: myOnAsyncError
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onAsyncSuccess.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onAsyncSuccess.html deleted file mode 100644 index b8deca54..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onAsyncSuccess.html +++ /dev/null @@ -1,38 +0,0 @@ -
    -
    -

    Function(event, treeId, treeNode, msg)setting.callback.onAsyncSuccess

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Used to capture the complete success event when execute ajax.

    -

    If you set 'setting.callback.beforeAsync',and return false, zTree will not execute ajax, and will not trigger the 'onAsyncSuccess / onAsyncError' callback.

    -

    Default: null

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    eventjs event Object

    -

    event Object

    -

    treeIdString

    -

    zTree unique identifier: treeId.

    -

    treeNodeJSON

    -

    JSON data object of the parent node

    -

    When load root nodes, treeNode = null

    -

    msgString / Object

    -

    The actualnode data which got by ajax. User-friendly debugging.

    -

    The actual data's type of msg is affected by 'setting.async.dataType', please refer to JQuery API documentation.

    -
    -

    Examples of setting & function

    -

    1. When execute ajax complete success, alert message.

    -
    function myOnAsyncSuccess(event, treeId, treeNode, msg) {
    -    alert(msg);
    -};
    -var setting = {
    -	callback: {
    -		onAsyncSuccess: myOnAsyncSuccess
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onCheck.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onCheck.html deleted file mode 100644 index eadfadcb..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onCheck.html +++ /dev/null @@ -1,34 +0,0 @@ -
    -
    -

    Function(event, treeId, treeNode)setting.callback.onCheck

    -

    Overview[ depends on jquery.ztree.excheck js ]

    -
    -

    -
    -

    Used to capture the check or uncheck event when check or uncheck the checkbox and radio.

    -

    If you set 'setting.callback.beforeCheck',and return false, zTree will not change check state, and will not trigger the 'onCheck' callback.

    -

    Default: null

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    eventjs event Object

    -

    event Object

    -

    treeIdString

    -

    zTree unique identifier: treeId.

    -

    treeNodeJSON

    -

    JSON data object of the node which is checked or unchecked

    -
    -

    Examples of setting & function

    -

    1. When check or uncheck the checkbox and radio, alert info about 'tId' and 'name' and 'checked'.

    -
    function myOnCheck(event, treeId, treeNode) {
    -    alert(treeNode.tId + ", " + treeNode.name + "," + treeNode.checked);
    -};
    -var setting = {
    -	callback: {
    -		onCheck: myOnCheck
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onClick.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onClick.html deleted file mode 100644 index 537dbe09..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onClick.html +++ /dev/null @@ -1,49 +0,0 @@ -
    -
    -

    Function(event, treeId, treeNode, clickFlag)setting.callback.onClick

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Used to capture the click event when click node.

    -

    If you set 'setting.callback.beforeClick',and return false, zTree will not change selected state, and will not trigger the 'onClick' callback.

    -

    Default: null

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    eventjs event Object

    -

    event Object

    -

    treeIdString

    -

    zTree unique identifier: treeId.

    -

    treeNodeJSON

    -

    JSON data object of the node which is clicked

    -

    clickFlagNumber

    -

    Node is selected or deselected state, please see table below for details

    - - - - - - - - - - - - -
    clickFlagselectedMultiautoCancelSelected
    &&
    event.ctrlKey / metaKey
    isSelectedoperate for selected
    1truefalsefalsenode is selected (single)
    1truefalsetruenode is selected (single)
    2truetruefalsenode is selected (multi)
    0truetruetruenode is deselected
    1falsefalsefalsenode is selected (single)
    1falsefalsetruenode is selected (single)
    1falsetruefalsenode is selected (single)
    0falsetruetruenode is deselected
    -
    -

    Examples of setting & function

    -

    1. When click node, alert info about 'tId' and 'name'.

    -
    function myOnClick(event, treeId, treeNode) {
    -    alert(treeNode.tId + ", " + treeNode.name);
    -};
    -var setting = {
    -	callback: {
    -		onClick: myOnClick
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onCollapse.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onCollapse.html deleted file mode 100644 index d62f3fe6..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onCollapse.html +++ /dev/null @@ -1,34 +0,0 @@ -
    -
    -

    Function(event, treeId, treeNode)setting.callback.onCollapse

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Callback for collapse node.

    -

    If you set 'setting.callback.beforeCollapse',and return false, zTree will not collapse node, and will not trigger the 'onCollapse' callback.

    -

    Default: null

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    eventjs event Object

    -

    event Object

    -

    treeIdString

    -

    zTree unique identifier: treeId.

    -

    treeNodeJSON

    -

    JSON data object of the node to be collapsed

    -
    -

    Examples of setting & function

    -

    1. When collapse node, alert info about 'tId' and 'name'.

    -
    function myOnCollapse(event, treeId, treeNode) {
    -    alert(treeNode.tId + ", " + treeNode.name);
    -};
    -var setting = {
    -	callback: {
    -		onCollapse: myOnCollapse
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onDblClick.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onDblClick.html deleted file mode 100644 index d59602cf..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onDblClick.html +++ /dev/null @@ -1,35 +0,0 @@ -
    -
    -

    Function(event, treeId, treeNode)setting.callback.onDblClick

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Used to capture the dblclick event when double click node.

    -

    If you set 'setting.callback.beforeDblClick',and return false, zTree will not trigger the 'onDblClick' callback.

    -

    Default: null

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    eventjs event Object

    -

    event Object

    -

    treeIdString

    -

    zTree unique identifier: treeId.

    -

    treeNodeJSON

    -

    JSON data object of the node which is double clicked

    -

    If the DOM which dblclicked isn't a node, it will return null.

    -
    -

    Examples of setting & function

    -

    1. When double click node, alert info about 'tId' and 'name'.

    -
    function myOnDblClick(event, treeId, treeNode) {
    -    alert(treeNode ? treeNode.tId + ", " + treeNode.name : "isRoot");
    -};
    -var setting = {
    -	callback: {
    -		onDblClick: myOnDblClick
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onDrag.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onDrag.html deleted file mode 100644 index 7c975bc7..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onDrag.html +++ /dev/null @@ -1,34 +0,0 @@ -
    -
    -

    Function(event, treeId, treeNodes)setting.callback.onDrag

    -

    Overview[ depends on jquery.ztree.exedit js ]

    -
    -

    -
    -

    Used to capture the drag event when drag node.

    -

    If you set 'setting.callback.beforeDrag',and return false, zTree will stop drag, and will not trigger the 'onDragMove' & 'onDrag' callback.

    -

    Default: null

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    eventjs event Object

    -

    event Object

    -

    treeIdString

    -

    zTree unique identifier: treeId, the id of the containing tree.

    -

    treeNodesArray(JSON)

    -

    A collection of the nodes which will be dragged

    -
    -

    Examples of setting & function

    -

    1. When drag nodes, alert the number of dragged nodes.

    -
    function myOnDrag(event, treeId, treeNodes) {
    -    alert(treeNodes.length);
    -};
    -var setting = {
    -	callback: {
    -		onDrag: myOnDrag
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onDragMove.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onDragMove.html deleted file mode 100644 index b8596b92..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onDragMove.html +++ /dev/null @@ -1,34 +0,0 @@ -
    -
    -

    Function(event, treeId, treeNodes)setting.callback.onDragMove

    -

    Overview[ depends on jquery.ztree.exedit js ]

    -
    -

    -
    -

    Used to capture the drag-move event when drag & drop node.

    -

    Mainly used to capture the DOM which the nodes was drag in.

    -

    Default: null

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    eventjs event Object

    -

    event Object

    -

    treeIdString

    -

    zTree unique identifier: treeId, the id of the containing tree.

    -

    treeNodesArray(JSON)

    -

    A collection of the nodes which will be dragged

    -
    -

    Examples of setting & function

    -

    1. When drag nodes, output the target dom.

    -
    function myOnDragMove(event, treeId, treeNodes) {
    -	console.log(event.target);
    -};
    -var setting = {
    -	callback: {
    -		onDragMove: myOnDragMove
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onDrop.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onDrop.html deleted file mode 100644 index 475526d7..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onDrop.html +++ /dev/null @@ -1,48 +0,0 @@ -
    -
    -

    Function(event, treeId, treeNodes, targetNode, moveType, isCopy)setting.callback.onDrop

    -

    Overview[ depends on jquery.ztree.exedit js ]

    -
    -

    -
    -

    Used to capture the drop event when drag-drop node.

    -

    If you set 'setting.callback.beforeDrop',and return false, zTree will restore the dragged nodes, and will not trigger the 'onDrop' callback.

    -

    Default: null

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    eventjs event Object

    -

    event Object

    -

    treeIdString

    -

    zTree unique identifier: treeId, the id of the containing tree.

    -

    treeNodesArray(JSON)

    -

    A collection of the nodes which has been dragged

    -

    The treeNodes are the data of the nodes which be dragged, when move nodes.

    -

    The treeNodes are the clone data of the nodes which be dragged, when copy nodes.

    -

    targetNodeJSON

    -

    JSON data object of the target node which treeNodes are drag-dropped.

    -

    If the treeNodes will be root node, the targetNode = null

    -

    moveTypeString

    -

    the relative position of move to the target node

    -

    "inner": will be child of targetNode

    -

    "prev": will be sibling node, and be in front of targetNode

    -

    "next": will be sibling node, and be behind targetNode

    -

    If moveType is null, means drag & drop is cancel.

    -

    isCopyBoolean

    -

    the flag used to judge copy node or move node

    -

    true: copy node; false: move node

    -
    -

    Examples of setting & function

    -

    1. When drag-drop nodes complete, alert the number of dragged nodes and info about targetNode.

    -
    function myOnDrop(event, treeId, treeNodes, targetNode, moveType) {
    -    alert(treeNodes.length + "," + (targetNode ? (targetNode.tId + ", " + targetNode.name) : "isRoot" ));
    -};
    -var setting = {
    -	callback: {
    -		onDrop: myOnDrop
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onExpand.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onExpand.html deleted file mode 100644 index 70024fee..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onExpand.html +++ /dev/null @@ -1,34 +0,0 @@ -
    -
    -

    Function(event, treeId, treeNode)setting.callback.onExpand

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Callback for expand node.

    -

    If you set 'setting.callback.beforeExpand',and return false, zTree will not expand node, and will not trigger the 'onExpand' callback.

    -

    Default: null

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    eventjs event Object

    -

    event Object

    -

    treeIdString

    -

    zTree unique identifier: treeId.

    -

    treeNodeJSON

    -

    JSON data object of the node to be expanded

    -
    -

    Examples of setting & function

    -

    1. When expand node, alert info about 'tId' and 'name'.

    -
    function myOnExpand(event, treeId, treeNode) {
    -    alert(treeNode.tId + ", " + treeNode.name);
    -};
    -var setting = {
    -	callback: {
    -		onExpand: myOnExpand
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onMouseDown.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onMouseDown.html deleted file mode 100644 index 255469fe..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onMouseDown.html +++ /dev/null @@ -1,35 +0,0 @@ -
    -
    -

    Function(event, treeId, treeNode)setting.callback.onMouseDown

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Callback for mouse down.

    -

    If you set 'setting.callback.beforeMouseDown',and return false, zTree will not trigger the 'onMouseDown' callback.

    -

    Default: null

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    eventjs event Object

    -

    event Object

    -

    treeIdString

    -

    zTree unique identifier: treeId.

    -

    treeNodeJSON

    -

    JSON data object of the node which mouse over

    -

    If the DOM which mouse over isn't a node, it will return null.

    -
    -

    Examples of setting & function

    -

    1. When mouse down, alert info about 'tId' and 'name'.

    -
    function myOnMouseDown(event, treeId, treeNode) {
    -    alert(treeNode ? treeNode.tId + ", " + treeNode.name : "isRoot");
    -};
    -var setting = {
    -	callback: {
    -		onMouseDown: myOnMouseDown
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onMouseUp.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onMouseUp.html deleted file mode 100644 index 84e06a9b..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onMouseUp.html +++ /dev/null @@ -1,35 +0,0 @@ -
    -
    -

    Function(event, treeId, treeNode)setting.callback.onMouseUp

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Callback for mouse up.

    -

    If you set 'setting.callback.beforeMouseUp',and return false, zTree will not trigger the 'onMouseUp' callback.

    -

    Default: null

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    eventjs event Object

    -

    event Object

    -

    treeIdString

    -

    zTree unique identifier: treeId.

    -

    treeNodeJSON

    -

    JSON data object of the node which mouse over

    -

    If the DOM which mouse over isn't a node, it will return null.

    -
    -

    Examples of setting & function

    -

    1. When mouse up, alert info about 'tId' and 'name'.

    -
    function myOnMouseUp(event, treeId, treeNode) {
    -    alert(treeNode ? treeNode.tId + ", " + treeNode.name : "isRoot");
    -};
    -var setting = {
    -	callback: {
    -		onMouseUp: myOnMouseUp
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onNodeCreated.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onNodeCreated.html deleted file mode 100644 index 4e5c8ae7..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onNodeCreated.html +++ /dev/null @@ -1,35 +0,0 @@ -
    -
    -

    Function(event, treeId, treeNode)setting.callback.onNodeCreated

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Callback for node's DOM is created.

    -

    Because v3.x uses lazy loading technology, so the nodes which doesn't create DOM when initialized will not trigger this callback, until its parent node is expanded.

    -

    Large amount of data to load, please note: do not set onNodeCreated, can improve performance as when initialized.

    -

    Default: null

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    eventjs event Object

    -

    event Object

    -

    treeIdString

    -

    zTree unique identifier: treeId.

    -

    treeNodeJSON

    -

    JSON data object of the node which DOM is created

    -
    -

    Examples of setting & function

    -

    1. When node's DOM is created, alert info about 'tId' and 'name'.

    -
    function myOnNodeCreated(event, treeId, treeNode) {
    -    alert(treeNode.tId + ", " + treeNode.name);
    -};
    -var setting = {
    -	callback: {
    -		onNodeCreated: myOnNodeCreated
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onRemove.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onRemove.html deleted file mode 100644 index 37ed1f7e..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onRemove.html +++ /dev/null @@ -1,34 +0,0 @@ -
    -
    -

    Function(event, treeId, treeNode)setting.callback.onRemove

    -

    Overview[ depends on jquery.ztree.exedit js ]

    -
    -

    -
    -

    Callback for remove node.

    -

    If you set 'setting.callback.beforeRemove',and return false, zTree will not remove node, and will not trigger the 'onRemove' callback.

    -

    Default: null

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    eventjs event Object

    -

    event Object

    -

    treeIdString

    -

    zTree unique identifier: treeId.

    -

    treeNodeJSON

    -

    JSON data object of the node which was removed.

    -
    -

    Examples of setting & function

    -

    1. When remove node, alert info about 'tId' and 'name'.

    -
    function myOnRemove(event, treeId, treeNode) {
    -	alert(treeNode.tId + ", " + treeNode.name);
    -}
    -var setting = {
    -	callback: {
    -		onRemove: myOnRemove
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onRename.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onRename.html deleted file mode 100644 index c83206f7..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onRename.html +++ /dev/null @@ -1,40 +0,0 @@ -
    -
    -

    Function(event, treeId, treeNode, isCancel)setting.callback.onRename

    -

    Overview[ depends on jquery.ztree.exedit js ]

    -
    -

    -
    -

    Callback for remove node.

    -

    1. If you set 'setting.callback.beforeRename',and return false, zTree will keep the editing name, and will not trigger the 'onRename' callback.

    -

    2. If you modify treeNode data, and use 'updateNode' function, zTree will not trigger the 'onRename' callback.

    -

    3. From v3.5.13, zTree will trigger this callback when user cancel edit name. please see 'isCancel' parameter.

    -

    Default: null

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    eventjs event Object

    -

    event Object

    -

    treeIdString

    -

    zTree unique identifier: treeId.

    -

    treeNodeJSON

    -

    JSON data object of the node which was rename.

    -

    isCancelBoolean

    -

    the status about cancel edit name (v3.5.13+)

    -

    isCancel = true means: user cancel edit name. (press ESC or use cancelEditName() function)

    -

    isCancel = false means: user submit edit name.

    -
    -

    Examples of setting & function

    -

    1. When rename node, alert info about 'tId' and 'name'.

    -
    function myOnRename(event, treeId, treeNode, isCancel) {
    -	alert(treeNode.tId + ", " + treeNode.name);
    -}
    -var setting = {
    -	callback: {
    -		onRename: myOnRename
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onRightClick.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onRightClick.html deleted file mode 100644 index 110c9526..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onRightClick.html +++ /dev/null @@ -1,36 +0,0 @@ -
    -
    -

    Function(event, treeId, treeNode)setting.callback.onRightClick

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Callback for mouse right click node.

    -

    If you set 'setting.callback.beforeRightClick',and return false, zTree will not trigger the 'onRightClick' callback.

    -

    If you set 'setting.callback.onRightClick', zTree will shield the browser context menu when mouse right click on zTree.

    -

    Default: null

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    eventjs event Object

    -

    event Object

    -

    treeIdString

    -

    zTree unique identifier: treeId.

    -

    treeNodeJSON

    -

    JSON data object of the node which is mouse right clicked

    -

    If the DOM which mouse right clicked isn't a node, it will return null.

    -
    -

    Examples of setting & function

    -

    1. When mouse right click node, alert info about 'tId' and 'name'.

    -
    function myOnRightClick(event, treeId, treeNode) {
    -    alert(treeNode ? treeNode.tId + ", " + treeNode.name : "isRoot");
    -};
    -var setting = {
    -	callback: {
    -		onRightClick: myOnRightClick
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.check.autoCheckTrigger.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.check.autoCheckTrigger.html deleted file mode 100644 index b8b04cca..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.check.autoCheckTrigger.html +++ /dev/null @@ -1,29 +0,0 @@ -
    -
    -

    Booleansetting.check.autoCheckTrigger

    -

    Overview[ depends on jquery.ztree.excheck js ]

    -
    -

    -
    -

    When node is automatically checked or unchecked, this parameter used to set to trigger 'beforeCheck / onCheck' callback. It is valid when [setting.check.enable = true & setting.check.chkStyle = "checkbox"]

    -

    1. If you set 'setting.check.chkboxType' to { "Y": "", "N": "" }, will not automatically checked or unchecked.

    -

    2. If you turn on the trigger and there are many more nodes, will affect the performance, because the check or uncheck node can cause many nodes to be automatically checked or unchecked, it will trigger a lot of callbacks, according to the need to decide whether to use this feature.

    -

    Default: false

    -
    -
    -

    Boolean Format

    -
    -

    true means: trigger callback

    -

    false means: don't trigger callback

    -
    -

    Examples of setting

    -

    1. When node is automatically checked or unchecked, zTree trigger 'beforeCheck / onCheck' callback.

    -
    var setting = {
    -	check: {
    -		enable: true,
    -		autoCheckTrigger: true
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.check.chkDisabledInherit.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.check.chkDisabledInherit.html deleted file mode 100644 index 98d824e4..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.check.chkDisabledInherit.html +++ /dev/null @@ -1,28 +0,0 @@ -
    -
    -

    Booleansetting.check.chkDisabledInherit

    -

    Overview[ depends on jquery.ztree.excheck js ]

    -
    -

    -
    -

    When the parent node's 'chkDisabled' attribute is true, set the child nodes automatically inherit the 'chkDisabled' attribute. It is valid when [setting.check.enable = true]

    -

    1. Only be used to initialize the nodes, easy batch operations. Please use the 'updateNode' method modify existing node.

    -

    Default: false

    -
    -
    -

    Boolean Format

    -
    -

    true means: When add new child nodes, if parent node's 'chkDisabled' attribute is true, the child nodes automatically inherit the 'chkDisabled' attribute.

    -

    false means: When add new child nodes, the child nodes don't inherit the 'chkDisabled' attribute from parent node.

    -
    -

    Examples of setting

    -

    1. When add new child nodes, the child nodes automatically inherit the 'chkDisabled' attribute from parent node.

    -
    var setting = {
    -	check: {
    -		enable: true,
    -		chkDisabledInherit: true
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.check.chkStyle.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.check.chkStyle.html deleted file mode 100644 index d42e757a..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.check.chkStyle.html +++ /dev/null @@ -1,48 +0,0 @@ -
    -
    -

    Stringsetting.check.chkStyle

    -

    Overview[ depends on jquery.ztree.excheck js ]

    -
    -

    -
    -

    Use the checkbox or radio. It is valid when [setting.check.enable = true]

    -

    Default: "checkbox"

    -
    -
    -

    String Format

    -
    -

    When chkStyle = "checkbox", zTree show checkbox, and 'setting.check.chkboxType' attribute is valid. -
    When chkStyle = "radio", zTree show radio, and 'setting.check.radioType' attribute is valid.

    -

    Please note that letter case, do not change.

    -
    -

    checkbox States Descriptions

    -
    -

    -
    -

    not checked; If node is parent, so its child nodes have been not checked. when mouse over:

    -

    not checked; (only parent node) some of its child nodes have been checked. when mouse over:

    -

    be checked; If node is parent, so its all child nodes have been checked. when mouse over:

    -

    be checked; (only parent node) some of its child nodes or all have been not checked. when mouse over:

    -
    -
    -

    radio States Descriptions

    -
    -

    -
    -

    not checked; If node is parent, so its child have been not checked. when mouse over:

    -

    not checked; (only parent node) some of its child have been checked. when mouse over:

    -

    be checked; If node is parent, so its child have been not checked. when mouse over:

    -

    be checked; (only parent node) some of its child have been checked. when mouse over:

    -
    -
    -

    Examples of setting

    -

    1. use radio

    -
    var setting = {
    -	check: {
    -		enable: true,
    -		chkStyle: "radio"
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.check.chkboxType.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.check.chkboxType.html deleted file mode 100644 index 5cecc9ee..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.check.chkboxType.html +++ /dev/null @@ -1,31 +0,0 @@ -
    -
    -

    JSONsetting.check.chkboxType

    -

    Overview[ depends on jquery.ztree.excheck js ]

    -
    -

    -
    -

    When one node is checked or unchecked, control its parent node and its child node auto checked or unchecked. It is valid when [setting.check.enable = true & setting.check.chkStyle = "checkbox"]

    -

    Default: { "Y": "ps", "N": "ps" }

    -
    -
    -

    JSON Format

    -
    -

    "Y" attribute use to set auto check after checkbox was checked. -
    "N" attribute use to set auto uncheck after checkbox was unchecked. -
    If value has "p", so parent nodes will be checked or unchecked. -
    If value has "s", so child nodes will be checked or unchecked.

    -

    Please note that letter case, do not change.

    -
    -

    Examples of setting

    -

    1. If check the node, so only auto check parent nodes; If uncheck the node, so only auto uncheck child nodes;

    -
    var setting = {
    -	check: {
    -		enable: true,
    -		chkStyle: "checkbox",
    -		chkboxType: { "Y": "p", "N": "s" }
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.check.enable.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.check.enable.html deleted file mode 100644 index 0236b5f8..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.check.enable.html +++ /dev/null @@ -1,26 +0,0 @@ -
    -
    -

    Booleansetting.check.enable

    -

    Overview[ depends on jquery.ztree.excheck js ]

    -
    -

    -
    -

    Set to use checkbox or radio in zTree

    -

    Default: false

    -
    -
    -

    Boolean Format

    -
    -

    true means: use the checkbox or radio

    -

    false means: don't use the checkbox or radio

    -
    -

    Examples of setting

    -

    1. use the checkbox

    -
    var setting = {
    -	check: {
    -		enable: true
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.check.nocheckInherit.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.check.nocheckInherit.html deleted file mode 100644 index 758b437e..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.check.nocheckInherit.html +++ /dev/null @@ -1,28 +0,0 @@ -
    -
    -

    Booleansetting.check.nocheckInherit

    -

    Overview[ depends on jquery.ztree.excheck js ]

    -
    -

    -
    -

    When the parent node's 'nocheck' attribute is true, set the child nodes automatically inherit the 'nocheck' attribute. It is valid when [setting.check.enable = true]

    -

    1. Only be used to initialize the nodes, easy batch operations. Please use the 'updateNode' method modify existing node.

    -

    Default: false

    -
    -
    -

    Boolean Format

    -
    -

    true means: When add new child nodes, if parent node's 'nocheck' attribute is true, the child nodes automatically inherit the 'nocheck' attribute.

    -

    false means: When add new child nodes, the child nodes don't inherit the 'nocheck' attribute from parent node.

    -
    -

    Examples of setting

    -

    1. When add new child nodes, the child nodes automatically inherit the 'nocheck' attribute from parent node.

    -
    var setting = {
    -	check: {
    -		enable: true,
    -		nocheckInherit: true
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.check.radioType.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.check.radioType.html deleted file mode 100644 index be867d75..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.check.radioType.html +++ /dev/null @@ -1,29 +0,0 @@ -
    -
    -

    Stringsetting.check.radioType

    -

    Overview[ depends on jquery.ztree.excheck js ]

    -
    -

    -
    -

    The group about radio. It is valid when [setting.check.enable = true & setting.check.chkStyle = "radio"]

    -

    Default: "level"

    -
    -
    -

    String Format

    -
    -

    When radioType = "level", will be grouped with same level nodes which have the same parent node. -
    When radioType = "all", will be grouped with all nodes.

    -

    Please note that letter case, do not change.

    -
    -

    Examples of setting

    -

    1. Set the group about radio is all nodes.

    -
    var setting = {
    -	check: {
    -		enable: true,
    -		chkStyle: "radio",
    -		radioType: "all"
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.keep.leaf.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.keep.leaf.html deleted file mode 100644 index 71c573e4..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.keep.leaf.html +++ /dev/null @@ -1,28 +0,0 @@ -
    -
    -

    Booleansetting.data.keep.leaf

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    The leaf node's lock, the leaf node will lock the 'isParent' attribute to false.

    -

    Default: false

    -
    -
    -

    Boolean Format

    -
    -

    true means: lock the leaf node, and the node which 'isParent' attribute is false can't add child nodes.

    -

    false means: don't lock the leaf node, and the node which 'isParent' attribute is false can add child nodes.

    -
    -

    Examples of setting

    -

    1. lock the leaf node

    -
    var setting = {
    -	data: {
    -		keep: {
    -			leaf: true
    -		}
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.keep.parent.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.keep.parent.html deleted file mode 100644 index 5bab2f1e..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.keep.parent.html +++ /dev/null @@ -1,28 +0,0 @@ -
    -
    -

    Booleansetting.data.keep.parent

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    The parent node's lock, the parent node will lock 'isParent' attribute to true.

    -

    Default: false

    -
    -
    -

    Boolean Format

    -
    -

    true means: lock the parent node, and if remove all of the parent node's child nodes, its 'isParent' attribute still keep to be true..

    -

    false means: don't lock the parent node, and if remove all of the parent node's child nodes, its 'isParent' attribute will change to be false..

    -
    -

    Examples of setting

    -

    1. lock the parent node

    -
    var setting = {
    -	data: {
    -		keep: {
    -			parent: true
    -		}
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.key.checked.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.key.checked.html deleted file mode 100644 index 2678cf25..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.key.checked.html +++ /dev/null @@ -1,24 +0,0 @@ -
    -
    -

    Stringsetting.data.key.checked

    -

    Overview[ depends on jquery.ztree.excheck js ]

    -
    -

    -
    -

    The node data's attribute to save the checked state.

    -

    Default: "checked"

    -

    Please don't set the other node attribute which zTree used. (e.g., checkedOld)

    -
    -
    -

    Examples of setting

    -

    1. set the 'isChecked' attribute to save the checked state.

    -
    var setting = {
    -	data: {
    -		key: {
    -			checked: "isChecked"
    -		}
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.key.children.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.key.children.html deleted file mode 100644 index 321a1a7d..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.key.children.html +++ /dev/null @@ -1,23 +0,0 @@ -
    -
    -

    Stringsetting.data.key.children

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    The node data's attribute to save the child nodes.

    -

    Default: "children"

    -
    -
    -

    Examples of setting

    -

    1. Set the 'nodes' attribute to save the child nodes.

    -
    var setting = {
    -	data: {
    -		key: {
    -			children: "nodes"
    -		}
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.key.isHidden.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.key.isHidden.html deleted file mode 100644 index a275d304..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.key.isHidden.html +++ /dev/null @@ -1,24 +0,0 @@ -
    -
    -

    Stringsetting.data.key.isHidden

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    The node data's attribute to save whether the node is the parent node.

    -

    Default: "isHidden"

    -

    v3.5.32+

    -
    -
    -

    Examples of setting

    -

    1. Set the 'hidden' attribute to save whether the node is the parent node.

    -
    var setting = {
    -	data: {
    -		key: {
    -			isHidden: "hidden"
    -		}
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.key.isParent.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.key.isParent.html deleted file mode 100644 index 37940cac..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.key.isParent.html +++ /dev/null @@ -1,24 +0,0 @@ -
    -
    -

    Stringsetting.data.key.isParent

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    The node data's attribute to save whether the node is the parent node.

    -

    Default: "isParent"

    -

    v3.5.32+

    -
    -
    -

    Examples of setting

    -

    1. Set the 'parent' attribute to save whether the node is the parent node.

    -
    var setting = {
    -	data: {
    -		key: {
    -			isParent: "parent"
    -		}
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.key.name.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.key.name.html deleted file mode 100644 index 0208c559..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.key.name.html +++ /dev/null @@ -1,23 +0,0 @@ -
    -
    -

    Stringsetting.data.key.name

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    The node data's attribute to save the node name.

    -

    Default: "name"

    -
    -
    -

    Examples of setting

    -

    1. Set the 'ename' attribute to save the node name.

    -
    var setting = {
    -	data: {
    -		key: {
    -			name: "ename"
    -		}
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.key.title.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.key.title.html deleted file mode 100644 index 96540eb6..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.key.title.html +++ /dev/null @@ -1,24 +0,0 @@ -
    -
    -

    Stringsetting.data.key.title

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    The node data's attribute to save the 'title' attribute of node DOM. It is valid when [setting.view.showTitle = true]

    -

    If set it to "", the title of node DOM will be same as 'setting.data.key.name' attribute.

    -

    Default: ""

    -
    -
    -

    Examples of setting

    -

    1. Set the 'fullName' attribute to save the title of node DOM.

    -
    var setting = {
    -	data: {
    -		key: {
    -			title: "fullName"
    -		}
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.key.url.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.key.url.html deleted file mode 100644 index e9a08cea..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.key.url.html +++ /dev/null @@ -1,24 +0,0 @@ -
    -
    -

    Stringsetting.data.key.url

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    The node data's attribute to save the node link's url.

    -

    Special: If the nodes's data can only use the 'url' attribute, and don't use the link to jump feature, you can modify this attribute to any nonexistent attribute.

    -

    Default: "url"

    -
    -
    -

    Examples of setting

    -

    1. Set the 'xUrl' attribute to save the node link's url.

    -
    var setting = {
    -	data: {
    -		key: {
    -			url: "xUrl"
    -		}
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.simpleData.enable.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.simpleData.enable.html deleted file mode 100644 index 9bb56d17..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.simpleData.enable.html +++ /dev/null @@ -1,39 +0,0 @@ -
    -
    -

    Booleansetting.data.simpleData.enable

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Set zTree's node to accept the simple data format, when zTree is initialized or when ajax get / or when use addNodes method.

    -

    Don't have to generate the complex nested data.

    -

    Default: false

    -
    -
    -

    Boolean Format

    -
    -

    true means: zTree's node accept the simple data format.

    -

    false means: zTree's node only accept the nested data format.

    -

    If set it is true, you must set the other attributes in 'setting.data.simpleData'. (e.g., idKey, pIdKey, rootPId) And let the data satisfy the parent-child relationship.

    -
    -

    Examples of setting

    -

    1. use the simple data format

    -
    var setting = {
    -	data: {
    -		simpleData: {
    -			enable: true,
    -			idKey: "id",
    -			pIdKey: "pId",
    -			rootPId: 0
    -		}
    -	}
    -};
    -var treeNodes = [
    -    {"id":1, "pId":0, "name":"test1"},
    -    {"id":11, "pId":1, "name":"test11"},
    -    {"id":12, "pId":1, "name":"test12"},
    -    {"id":111, "pId":11, "name":"test111"}
    -];
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.simpleData.idKey.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.simpleData.idKey.html deleted file mode 100644 index 1216e0c7..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.simpleData.idKey.html +++ /dev/null @@ -1,32 +0,0 @@ -
    -
    -

    Stringsetting.data.simpleData.idKey

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    The node data's attribute to save node data's unique identifier. It is valid when [setting.data.simpleData.enable = true]

    -

    Default: "id"

    -
    -
    -

    Examples of setting

    -

    1. use the simple data format

    -
    var setting = {
    -	data: {
    -		simpleData: {
    -			enable: true,
    -			idKey: "id",
    -			pIdKey: "pId",
    -			rootPId: 0
    -		}
    -	}
    -};
    -var treeNodes = [
    -    {"id":1, "pId":0, "name":"test1"},
    -    {"id":11, "pId":1, "name":"test11"},
    -    {"id":12, "pId":1, "name":"test12"},
    -    {"id":111, "pId":11, "name":"test111"}
    -];
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.simpleData.pIdKey.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.simpleData.pIdKey.html deleted file mode 100644 index 8378c6e3..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.simpleData.pIdKey.html +++ /dev/null @@ -1,32 +0,0 @@ -
    -
    -

    Stringsetting.data.simpleData.pIdKey

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    The node data's attribute to save its parent node data's unique identifier. It is valid when [setting.data.simpleData.enable = true]

    -

    Default: "pId"

    -
    -
    -

    Examples of setting

    -

    1. use the simple data format

    -
    var setting = {
    -	data: {
    -		simpleData: {
    -			enable: true,
    -			idKey: "id",
    -			pIdKey: "pId",
    -			rootPId: 0
    -		}
    -	}
    -};
    -var treeNodes = [
    -    {"id":1, "pId":0, "name":"test1"},
    -    {"id":11, "pId":1, "name":"test11"},
    -    {"id":12, "pId":1, "name":"test12"},
    -    {"id":111, "pId":11, "name":"test111"}
    -];
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.simpleData.rootPId.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.simpleData.rootPId.html deleted file mode 100644 index 61c9bbd0..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.simpleData.rootPId.html +++ /dev/null @@ -1,32 +0,0 @@ -
    -
    -

    String / Numbersetting.data.simpleData.rootPId

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Set the default value of root's 'pIdKey' specified attribute values​​. It is valid when [setting.data.simpleData.enable = true]

    -

    Default: null

    -
    -
    -

    Examples of setting

    -

    1. use the simple data format

    -
    var setting = {
    -	data: {
    -		simpleData: {
    -			enable: true,
    -			idKey: "id",
    -			pIdKey: "pId",
    -			rootPId: 0
    -		}
    -	}
    -};
    -var treeNodes = [
    -    {"id":1, "pId":0, "name":"test1"},
    -    {"id":11, "pId":1, "name":"test11"},
    -    {"id":12, "pId":1, "name":"test12"},
    -    {"id":111, "pId":11, "name":"test111"}
    -];
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.autoExpandTrigger.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.autoExpandTrigger.html deleted file mode 100644 index 804ee66a..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.autoExpandTrigger.html +++ /dev/null @@ -1,29 +0,0 @@ -
    -
    -

    Booleansetting.edit.drag.autoExpandTrigger

    -

    Overview[ depends on jquery.ztree.exedit js ]

    -
    -

    -
    -

    When drag node cause the parent node is automatically expanded, set whether to allow to trigger the 'onExpand' callback. It is valid when [setting.edit.enable = true]

    -

    Default: false

    -
    -
    -

    Boolean Format

    -
    -

    true means: trigger the 'onExpand' callback.

    -

    false means: don't trigger the 'onExpand' callback.

    -
    -

    Examples of setting

    -

    1. Set to allow to trigger the 'onExpand' callback

    -
    var setting = {
    -	edit: {
    -		enable: true,
    -		drag: {
    -			autoExpandTrigger: true
    -		}
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.autoOpenTime.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.autoOpenTime.html deleted file mode 100644 index 74982afa..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.autoOpenTime.html +++ /dev/null @@ -1,25 +0,0 @@ -
    -
    -

    Numbersetting.edit.drag.autoOpenTime

    -

    Overview[ depends on jquery.ztree.exedit js ]

    -
    -

    -
    -

    Drag to the parent node, the parent node auto expand time interval. (Unit: ms) It is valid when [setting.edit.enable = true]

    -

    Default: 500

    -

    Please adjust the value according to needs.

    -
    -
    -

    Examples of setting

    -

    1. When drag node to other parent node, expand it at once.

    -
    var setting = {
    -	edit: {
    -		enable: true,
    -		drag: {
    -			autoOpenTime: 0
    -		}
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.borderMax.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.borderMax.html deleted file mode 100644 index edbb752b..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.borderMax.html +++ /dev/null @@ -1,25 +0,0 @@ -
    -
    -

    Numbersetting.edit.drag.borderMax

    -

    Overview[ depends on jquery.ztree.exedit js ]

    -
    -

    -
    -

    When drag a node to root, the zTree's inner border width. (Unit: px) It is valid when [setting.edit.enable = true]

    -

    Default: 10

    -

    Please adjust the value according to needs.

    -
    -
    -

    Examples of setting

    -

    1. adjust the inner border width is 20px

    -
    var setting = {
    -	edit: {
    -		enable: true,
    -		drag: {
    -			borderMax: 20
    -		}
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.borderMin.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.borderMin.html deleted file mode 100644 index e8458530..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.borderMin.html +++ /dev/null @@ -1,25 +0,0 @@ -
    -
    -

    Numbersetting.edit.drag.borderMin

    -

    Overview[ depends on jquery.ztree.exedit js ]

    -
    -

    -
    -

    When drag a node to root, the zTree's outer border width. (Unit: px) It is valid when [setting.edit.enable = true]

    -

    Default: -5

    -

    Please adjust the value according to needs.

    -
    -
    -

    Examples of setting

    -

    1. adjust the outer border width is 10px

    -
    var setting = {
    -	edit: {
    -		enable: true,
    -		drag: {
    -			borderMin: -10
    -		}
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.inner.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.inner.html deleted file mode 100644 index 5258e2f6..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.inner.html +++ /dev/null @@ -1,60 +0,0 @@ -
    -
    -

    Boolean / Function(treeId, treeNodes, targetNode)setting.edit.drag.inner

    -

    Overview[ depends on jquery.ztree.exedit js ]

    -
    -

    -
    -

    When drag one node to the target node, set whether to allow the node to be the target node's child. It is valid when [setting.edit.enable = true]

    -

    If the target node is root, so zTree will only trigger 'inner' and not trigger 'prev / next'.

    -

    This function mainly for the appropriate limit drag and drop (auxiliary arrow), it requires a combination of 'prev, next' together, to achieve full functionality.

    -

    Default: true

    -
    -
    -

    Boolean Format

    -
    -

    true means: allow the node to be the target node's child.

    -

    false means: don't allow the node to be the target node's child.

    -
    -

    Function Parameter Descriptions

    -
    -

    treeIdString

    -

    zTree unique identifier: treeId.

    -

    treeNodesArray(JSON)

    -

    A collection of the nodes which has been dragged

    -

    targetNodeJSON

    -

    JSON data object of the target node which treeNodes are draged over.

    -

    If the treeNodes will be root node, the targetNode = null

    -

    Return Boolean

    -

    return true or false

    -
    -

    Examples of setting & function

    -

    1. disable to drag the node to the target node's inner.

    -
    var setting = {
    -	edit: {
    -		enable: true,
    -		drag: {
    -			prev: true,
    -			next: true,
    -			inner: false
    -		}
    -	}
    -};
    -......
    -

    2. disable to drag the node to be root node's child.

    -
    function canInner(treeId, nodes, targetNode) {
    -	return !(targetNode && targetNode.level === 0);
    -}
    -var setting = {
    -	edit: {
    -		enable: true,
    -		drag: {
    -			prev: true,
    -			next: true,
    -			inner: canInner
    -		}
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.isCopy.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.isCopy.html deleted file mode 100644 index 1207d2ae..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.isCopy.html +++ /dev/null @@ -1,32 +0,0 @@ -
    -
    -

    Booleansetting.edit.drag.isCopy

    -

    Overview[ depends on jquery.ztree.exedit js ]

    -
    -

    -
    -

    When drag-drop node, set whether to allow to copy node. It is valid when [setting.edit.enable = true]

    -

    Default: true

    -
    -
    -

    Rules Description

    -
    -

    1. If isCopy = true and isMove = true, when drag-drop node, press Ctrl-Key or Cmd-key can copy node, don't press Ctrl-Key or Cmd-key can move node.

    -

    2. If isCopy = true and isMove = false, when drag-drop node, will copy node.

    -

    3. If isCopy = false and isMove = true, when drag-drop node, will move node.

    -

    4. If isCopy = false and isMove = false, so disable to drag-drop node.

    -
    -

    Examples of setting

    -

    1. all of the drag-drop operation will copy node.

    -
    var setting = {
    -	edit: {
    -		enable: true,
    -		drag: {
    -			isCopy: true,
    -			isMove: false
    -		}
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.isMove.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.isMove.html deleted file mode 100644 index e4a7ca3a..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.isMove.html +++ /dev/null @@ -1,32 +0,0 @@ -
    -
    -

    Booleansetting.edit.drag.isMove

    -

    Overview[ depends on jquery.ztree.exedit js ]

    -
    -

    -
    -

    When drag-drop node, set whether to allow to move node. It is valid when [setting.edit.enable = true]

    -

    Default: true

    -
    -
    -

    Rules Description

    -
    -

    1. If isCopy = true and isMove = true, when drag-drop node, press Ctrl-Key or Cmd-key can copy node, don't press Ctrl-Key or Cmd-key can move node.

    -

    2. If isCopy = true and isMove = false, when drag-drop node, will copy node.

    -

    3. If isCopy = false and isMove = true, when drag-drop node, will move node.

    -

    4. If isCopy = false and isMove = false, so disable to drag-drop node.

    -
    -

    Examples of setting

    -

    1. all of the drag-drop operation will move node.

    -
    var setting = {
    -	edit: {
    -		enable: true,
    -		drag: {
    -			isCopy: false,
    -			isMove: true
    -		}
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.maxShowNodeNum.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.maxShowNodeNum.html deleted file mode 100644 index dbc3ae47..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.maxShowNodeNum.html +++ /dev/null @@ -1,25 +0,0 @@ -
    -
    -

    Numbersetting.edit.drag.maxShowNodeNum

    -

    Overview[ depends on jquery.ztree.exedit js ]

    -
    -

    -
    -

    When dragging more than one sibling node, the floating layer shows the maximum number of nodes. zTree using '...' instead of redundant nodes. It is valid when [setting.edit.enable = true]

    -

    Default: 5

    -

    Please adjust the value according to needs.

    -
    -
    -

    Examples of setting

    -

    1. Set the maximum number is 10

    -
    var setting = {
    -	edit: {
    -		enable: true,
    -		drag: {
    -			maxShowNodeNum: 10
    -		}
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.minMoveSize.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.minMoveSize.html deleted file mode 100644 index 8270a993..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.minMoveSize.html +++ /dev/null @@ -1,25 +0,0 @@ -
    -
    -

    Numbersetting.edit.drag.minMoveSize

    -

    Overview[ depends on jquery.ztree.exedit js ]

    -
    -

    -
    -

    The minimum offset which used to determine the drag operator start. (Unit: px) It is valid when [setting.edit.enable = true]

    -

    Please adjust the value according to needs. Note: If it is too small, will easily lead to misoperation when you click mouse.

    -

    Default: 5

    -
    -
    -

    Examples of setting

    -

    1. Set the minimum offset is 10px.

    -
    var setting = {
    -	edit: {
    -		enable: true,
    -		drag: {
    -			minMoveSize: 10
    -		}
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.next.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.next.html deleted file mode 100644 index 11323f1e..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.next.html +++ /dev/null @@ -1,59 +0,0 @@ -
    -
    -

    Boolean / Function(treeId, treeNodes, targetNode)setting.edit.drag.next

    -

    Overview[ depends on jquery.ztree.exedit js ]

    -
    -

    -
    -

    When drag one node to the target node, set whether to allow the node to be the target node's next sibling. It is valid when [setting.edit.enable = true]

    -

    If the target node is root, so zTree will only trigger 'inner' and not trigger 'prev / next'.

    -

    This function mainly for the appropriate limit drag and drop (auxiliary arrow), it requires a combination of 'prev, inner' together, to achieve full functionality.

    -

    Default: true

    -
    -
    -

    Boolean Format

    -
    -

    true means: allow the node to be the target node's next sibling.

    -

    false means: don't allow the node to be the target node's next sibling.

    -
    -

    Function Parameter Descriptions

    -
    -

    treeIdString

    -

    zTree unique identifier: treeId.

    -

    treeNodesArray(JSON)

    -

    A collection of the nodes which has been dragged

    -

    targetNodeJSON

    -

    JSON data object of the target node which treeNodes are draged over.

    -

    Return Boolean

    -

    return true or false

    -
    -

    Examples of setting & function

    -

    1. disable to drag the node to the target node's next sibling.

    -
    var setting = {
    -	edit: {
    -		enable: true,
    -		drag: {
    -			prev: true,
    -			next: false,
    -			inner: true
    -		}
    -	}
    -};
    -......
    -

    2. disable to drag the node to be all of the parent nodes's next sibling.

    -
    function canNext(treeId, nodes, targetNode) {
    -	return !targetNode.isParent;
    -}
    -var setting = {
    -	edit: {
    -		enable: true,
    -		drag: {
    -			prev: true,
    -			next: canNext,
    -			inner: true
    -		}
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.prev.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.prev.html deleted file mode 100644 index 84e3b1a5..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.prev.html +++ /dev/null @@ -1,59 +0,0 @@ -
    -
    -

    Boolean / Function(treeId, treeNodes, targetNode)setting.edit.drag.prev

    -

    Overview[ depends on jquery.ztree.exedit js ]

    -
    -

    -
    -

    When drag one node to the target node, set whether to allow the node to be the target node's previous sibling. It is valid when [setting.edit.enable = true]

    -

    If the target node is root, so zTree will only trigger 'inner' and not trigger 'prev / next'.

    -

    This function mainly for the appropriate limit drag and drop (auxiliary arrow), it requires a combination of 'next, inner' together, to achieve full functionality.

    -

    Default: true

    -
    -
    -

    Boolean Format

    -
    -

    true means: allow the node to be the target node's previous sibling.

    -

    false means: don't allow the node to be the target node's previous sibling.

    -
    -

    Function Parameter Descriptions

    -
    -

    treeIdString

    -

    zTree unique identifier: treeId.

    -

    treeNodesArray(JSON)

    -

    A collection of the nodes which has been dragged

    -

    targetNodeJSON

    -

    JSON data object of the target node which treeNodes are draged over.

    -

    Return Boolean

    -

    return true or false

    -
    -

    Examples of setting & function

    -

    1. disable to drag the node to the target node's previous sibling.

    -
    var setting = {
    -	edit: {
    -		enable: true,
    -		drag: {
    -			prev: false,
    -			next: true,
    -			inner: true
    -		}
    -	}
    -};
    -......
    -

    2. disable to drag the node to be all of the parent nodes's previous sibling.

    -
    function canPrev(treeId, nodes, targetNode) {
    -	return !targetNode.isParent;
    -}
    -var setting = {
    -	edit: {
    -		enable: true,
    -		drag: {
    -			prev: canPrev,
    -			next: true,
    -			inner: true
    -		}
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.editNameSelectAll.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.editNameSelectAll.html deleted file mode 100644 index a030359d..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.editNameSelectAll.html +++ /dev/null @@ -1,27 +0,0 @@ -
    -
    -

    Booleansetting.edit.editNameSelectAll

    -

    Overview[ depends on jquery.ztree.exedit js ]

    -
    -

    -
    -

    When edit node's name, the text in input is selected or unselected. It is valid when [setting.edit.enable = true]

    -

    Default: false

    -
    -
    -

    Boolean Format

    -
    -

    true means: when show the input, the text in input is selected

    -

    false means: when show the input, the text in input is not selected

    -
    -

    Examples of setting

    -

    1. When edit node's name, the text in input is selected.

    -
    var setting = {
    -	edit: {
    -		enable: true,
    -		editNameSelectAll: true
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.enable.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.enable.html deleted file mode 100644 index ec9d2b31..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.enable.html +++ /dev/null @@ -1,39 +0,0 @@ -
    -
    -

    Booleansetting.edit.enable

    -

    Overview[ depends on jquery.ztree.exedit js ]

    -
    -

    -
    -

    Set zTree is in edit mode

    -

    Please set this attribute before zTree initialization. If you need to change the edit mode after the initialization, please use zTreeObj.setEditable() method.

    -

    Default: false

    -
    -
    -

    Boolean Format

    -
    -

    true means: zTree is in edit mode.

    -

    false means: zTree is not in edit mode.

    -
    -

    Editing Rules Description

    -
    -

    1. When click the node, it will not open 'node.url' specified URL. -
    2. Support for dynamic tree editing. -
    3. You can drag-drop nodes, and support drag-drop nodes between multiple trees. -
    4. Support use drag-drop to copy or move the node. (Reference: setting.edit.drag.isCopy / setting.edit.drag.isMove) -
    5. You can use the Edit button to modify the name attribute. -
    6. You can use the Remove button to remove the node. -
    -

    -

    Please note that letter case, do not change.

    -
    -

    Examples of setting

    -

    1. edit the tree

    -
    var setting = {
    -	edit: {
    -		enable: true
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.removeTitle.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.removeTitle.html deleted file mode 100644 index d749c053..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.removeTitle.html +++ /dev/null @@ -1,48 +0,0 @@ -
    -
    -

    String / Function(treeId, treeNode)setting.edit.removeTitle

    -

    Overview[ depends on jquery.ztree.exedit js ]

    -
    -

    -
    -

    the title of the remove button DOM. It is valid when [setting.edit.enable = true & setting.edit.showRemoveBtn = true]

    -

    Default: "remove"

    -
    -
    -

    String Format

    -
    -

    When the mouse over the remove button, the browser auto pop-up message content.

    -
    -

    Function Parameter Descriptions

    -
    -

    treeIdString

    -

    zTree unique identifier: treeId.

    -

    treeNodeJSON

    -

    JSON data object of the node which show the remove button

    -

    Return String

    -

    Return value is same as 'String Format'

    -
    -

    Examples of setting & function

    -

    1. Set title is 'remove the node' about all the remove button

    -
    var setting = {
    -	edit: {
    -		enable: true,
    -		showRemoveBtn: true,
    -		removeTitle: "remove the node"
    -	}
    -};
    -......
    -

    2. Set title is 'remove the parent node' about the parent node, and is 'remove the leaf node' about the leaf node

    -
    function setRemoveTitle(treeId, treeNode) {
    -	return treeNode.isParent ? "remove the parent node":"remove the leaf node";
    -}
    -var setting = {
    -	edit: {
    -		enable: true,
    -		showRemoveBtn: true,
    -		removeTitle: setRemoveTitle
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.renameTitle.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.renameTitle.html deleted file mode 100644 index aa2d719b..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.renameTitle.html +++ /dev/null @@ -1,48 +0,0 @@ -
    -
    -

    String / Function(treeId, treeNode)setting.edit.renameTitle

    -

    Overview[ depends on jquery.ztree.exedit js ]

    -
    -

    -
    -

    the title of the rename button DOM. It is valid when [setting.edit.enable = true & setting.edit.showRenameBtn = true]

    -

    Default: "rename"

    -
    -
    -

    String Format

    -
    -

    When the mouse over the rename button, the browser auto pop-up message content.

    -
    -

    Function Parameter Descriptions

    -
    -

    treeIdString

    -

    zTree unique identifier: treeId.

    -

    treeNodeJSON

    -

    JSON data object of the node which show the rename button

    -

    Return String

    -

    return value is same as 'String Format'

    -
    -

    Examples of setting & function

    -

    1. Set title is 'rename the node' about all the rename button

    -
    var setting = {
    -	edit: {
    -		enable: true,
    -		showRenameBtn: true,
    -		renameTitle: "rename the node"
    -	}
    -};
    -......
    -

    2. Set title is 'rename the parent node' about the parent node, and is 'rename the leaf node' about the leaf node

    -
    function setRenameTitle(treeId, treeNode) {
    -	return treeNode.isParent ? "rename the parent node":"rename the leaf node";
    -}
    -var setting = {
    -	edit: {
    -		enable: true,
    -		showRenameBtn: true,
    -		renameTitle: setRenameTitle
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.showRemoveBtn.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.showRemoveBtn.html deleted file mode 100644 index 2c64ac18..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.showRemoveBtn.html +++ /dev/null @@ -1,50 +0,0 @@ -
    -
    -

    Boolean / Function(treeId, treeNode)setting.edit.showRemoveBtn

    -

    Overview[ depends on jquery.ztree.exedit js ]

    -
    -

    -
    -

    Set to show or hide the remove button. It is valid when [setting.edit.enable = true]

    -

    When you click the remove button:

    -

    1. zTree will trigger the setting.callback.beforeRemove callback, and you can decide whether to allow delete.

    -

    2. If you don't set the 'beforeRemove' or the 'beforeRemove' callback return true, so zTree will trigger the setting.callback.onRemove callback after remove the node.

    -

    Default: true

    -
    -
    -

    Boolean Format

    -
    -

    true means: show the remove button

    -

    false means: hide the remove button

    -
    -

    Function Parameter Descriptions

    -
    -

    treeIdString

    -

    zTree unique identifier: treeId.

    -

    treeNodeJSON

    -

    JSON data object of the node which show the remove button

    -

    Return Boolean

    -

    Return value is same as 'Boolean Format'

    -
    -

    Examples of setting & function

    -

    1. Hide the remove button

    -
    var setting = {
    -	edit: {
    -		enable: true,
    -		showRemoveBtn: false
    -	}
    -};
    -......
    -

    2. Hide the remove button of parent node

    -
    function setRemoveBtn(treeId, treeNode) {
    -	return !treeNode.isParent;
    -}
    -var setting = {
    -	edit: {
    -		enable: true,
    -		showRemoveBtn: setRemoveBtn
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.showRenameBtn.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.showRenameBtn.html deleted file mode 100644 index 390f0a12..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.showRenameBtn.html +++ /dev/null @@ -1,52 +0,0 @@ -
    -
    -

    Boolean / Function(treeId, treeNode)setting.edit.showRenameBtn

    -

    Overview[ depends on jquery.ztree.exedit js ]

    -
    -

    -
    -

    Set to show or hide the rename button. It is valid when [setting.edit.enable = true]

    -

    When you click the rename button:

    -

    1. Click the rename button, you can rename the node.

    -

    2. After rename operation (the input DOM blur or press the Enter Key), zTree will trigger the setting.callback.beforeRename callback, and you can decide whether to allow rename.

    -

    3. If the 'beforeRename' callback return false, so zTree will keep the edit status. (Press the ESC key, can be restored to the original state.

    -

    4. If you don't set the 'beforeRename' or the 'beforeRename' callback return true, so zTree will trigger the setting.callback.onRename callback after rename the node.

    -

    Default: true

    -
    -
    -

    Boolean Format

    -
    -

    true means: show the rename button

    -

    false means: hide the rename button

    -
    -

    Function Parameter Descriptions

    -
    -

    treeIdString

    -

    zTree unique identifier: treeId.

    -

    treeNodeJSON

    -

    JSON data object of the node which show the rename button

    -

    Return Boolean

    -

    Return value is same as 'Boolean Format'

    -
    -

    Examples of setting & function

    -

    1. Hide the rename button

    -
    var setting = {
    -	edit: {
    -		enable: true,
    -		showRenameBtn: false
    -	}
    -};
    -......
    -

    2. Hide the rename button of parent node

    -
    function setRenameBtn(treeId, treeNode) {
    -	return !treeNode.isParent;
    -}
    -var setting = {
    -	edit: {
    -		enable: true,
    -		showRenameBtn: setRenameBtn
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.treeId.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.treeId.html deleted file mode 100644 index e4b04b37..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.treeId.html +++ /dev/null @@ -1,14 +0,0 @@ -
    -
    -

    Stringsetting.treeId

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    zTree unique identifier. After the initialization, it equals to the id attribute value of the user-defined zTree container.

    -

    Do not initialize or modify it, it is an internal argument.

    -
    -
    - -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.treeObj.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.treeObj.html deleted file mode 100644 index 30eb66c4..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.treeObj.html +++ /dev/null @@ -1,14 +0,0 @@ -
    -
    -

    Objectsetting.treeObj

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    zTree DOM's jQuery object, the main function: easy to internal operations.

    -

    Do not initialize or modify it, it is an internal argument.

    -
    -
    - -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.addDiyDom.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.addDiyDom.html deleted file mode 100644 index efcc8d4b..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.addDiyDom.html +++ /dev/null @@ -1,40 +0,0 @@ -
    -
    -

    Function(treeId, treeNode)setting.view.addDiyDom

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    This function used to display the custom control on the node.

    -

    1. If you have huge node data, please note: this function will affect the initialization performance. If not required, it is recommended not to use this function.

    -

    2. This function is an advanced application, please make sure that a better understanding of zTree before you use it.

    -

    Default: null

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    treeIdString

    -

    zTree unique identifier: treeId.

    -

    treeNodeJSON

    -

    JSON data object of the node which display the custom control.

    -
    -

    Examples of setting & function

    -

    1. Display button in all nodes.

    -
    var setting = {
    -	view: {
    -		addDiyDom: addDiyDom
    -	}
    -};
    -function addDiyDom(treeId, treeNode) {
    -	var aObj = $("#" + treeNode.tId + "_a");
    -	if ($("#diyBtn_"+treeNode.id).length>0) return;
    -	var editStr = "<span id='diyBtn_space_" +treeNode.id+ "' > </span>"
    -		+ "<button type='button' class='diyBtn1' id='diyBtn_" + treeNode.id
    -		+ "' title='"+treeNode.name+"' onfocus='this.blur();'></button>";
    -	aObj.append(editStr);
    -	var btn = $("#diyBtn_"+treeNode.id);
    -	if (btn) btn.bind("click", function(){alert("diy Button for " + treeNode.name);});
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.addHoverDom.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.addHoverDom.html deleted file mode 100644 index 9c6ccf6e..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.addHoverDom.html +++ /dev/null @@ -1,45 +0,0 @@ -
    -
    -

    Function(treeId, treeNode)setting.view.addHoverDom

    -

    Overview[ depends on jquery.ztree.exedit js ]

    -
    -

    -
    -

    Used to display custom control when mouse move over the node. (e.g. the rename and remove button)

    -

    If you use this function, so must set setting.view.removeHoverDom, please make sure that a better understanding of zTree before you use it.

    -

    Default: null

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    treeIdString

    -

    zTree unique identifier: treeId.

    -

    treeNodeJSON

    -

    JSON data object of the node which need to display the custom control.

    -
    -

    Examples of setting & function

    -

    1. Display a button when mouse move over the node, and hide the button when mouse move out.

    -
    var setting = {
    -	view: {
    -		addHoverDom: addHoverDom,
    -		removeHoverDom: removeHoverDom,
    -		......
    -	}
    -};
    -function addHoverDom(treeId, treeNode) {
    -	var aObj = $("#" + treeNode.tId + "_a");
    -	if ($("#diyBtn_"+treeNode.id).length>0) return;
    -	var editStr = "<span id='diyBtn_space_" +treeNode.id+ "' > </span>"
    -		+ "<button type='button' class='diyBtn1' id='diyBtn_" + treeNode.id
    -		+ "' title='"+treeNode.name+"' onfocus='this.blur();'></button>";
    -	aObj.append(editStr);
    -	var btn = $("#diyBtn_"+treeNode.id);
    -	if (btn) btn.bind("click", function(){alert("diy Button for " + treeNode.name);});
    -};
    -function removeHoverDom(treeId, treeNode) {
    -	$("#diyBtn_"+treeNode.id).unbind().remove();
    -	$("#diyBtn_space_" +treeNode.id).unbind().remove();
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.autoCancelSelected.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.autoCancelSelected.html deleted file mode 100644 index 44ab90d0..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.autoCancelSelected.html +++ /dev/null @@ -1,27 +0,0 @@ -
    -
    -

    Booleansetting.view.autoCancelSelected

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    When click the selected node while pressing the Ctrl-key or Cmd-key, allow to cancel selected the node.

    -

    If you don't need this function, please set to false.

    -

    Default: true

    -
    -
    -

    Boolean Format

    -
    -

    true means: press the Ctrl-key or Cmd-key, can cancel selected node.

    -

    false means: press the Ctrl-key or Cmd-key, can't cancel selected node.

    -
    -

    Examples of setting

    -

    1. Press the Ctrl-key or Cmd-key, can't cancel selected node.

    -
    var setting = {
    -	view: {
    -		autoCancelSelected: false
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.dblClickExpand.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.dblClickExpand.html deleted file mode 100644 index 210dfecb..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.dblClickExpand.html +++ /dev/null @@ -1,45 +0,0 @@ -
    -
    -

    Boolean / Function(treeId, treeNode)setting.view.dblClickExpand

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    When double-click the parent node, 'dblClickExpand' is used to decide whether to expand the parent node.

    -

    Default: true

    -
    -
    -

    Boolean Format

    -
    -

    true means: When double-click the parent node, zTree will expand the parent node.

    -

    false means: When double-click the parent node, zTree will not expand the parent node.

    -
    -

    Function Pamameter Descriptions

    -
    -

    treeIdString

    -

    zTree unique identifier: treeId.

    -

    treeNodeJSON

    -

    JSON data object of the node which be double-clicked.

    -

    Return Boolean

    -

    Return value is same as 'Boolean Format'

    -
    -

    Example of setting

    -

    1. When double-click the parent node, zTree will not expand the parent node.

    -
    var setting = {
    -	view: {
    -		dblClickExpand: false
    -	}
    -};
    -......
    -

    2. When double-click the parent node, zTree will expand the parent node which level>0.

    -
    function dblClickExpand(treeId, treeNode) {
    -	return treeNode.level > 0;
    -};
    -var setting = {
    -	view: {
    -		dblClickExpand: dblClickExpand
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.expandSpeed.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.expandSpeed.html deleted file mode 100644 index 1911e74e..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.expandSpeed.html +++ /dev/null @@ -1,31 +0,0 @@ -
    -
    -

    String / Numbersetting.view.expandSpeed

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    The animation speed of expand or collapse node. As same as 'speed' parameter in jQuery

    -

    In order to ensure zTree operating speed, if use the IE6, zTree will not use animation.

    -

    Default: "fast"

    -
    -
    -

    String Format

    -
    -

    e.g. "slow", "normal", or "fast"

    -

    If set to "", zTree will not use animation.

    -
    -

    Number Format

    -
    -

    How long the animation will run. [Unit: ms] (e.g. 1000)

    -
    -

    Examples of setting

    -

    1. Set the animation speed to slow

    -
    var setting = {
    -	view: {
    -		expandSpeed: "slow"
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.fontCss.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.fontCss.html deleted file mode 100644 index 02bddeac..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.fontCss.html +++ /dev/null @@ -1,42 +0,0 @@ -
    -
    -

    JSON / Function(treeId, treeNode)setting.view.fontCss

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Personalized text style, only applies to <A> object in the node DOM

    -

    Default: {}

    -
    -
    -

    JSON Format

    -
    -

    As same as .css() method in jQuery. e.g. {color:"#ff0011", background:"blue"}

    -
    -

    Function Parameter Descriptions

    -
    -

    treeIdString

    -

    zTree unique identifier: treeId.

    -

    treeNodeJSON

    -

    JSON data object of the node which use the personalized text style

    -

    Return JSON

    -

    Return value is same as 'JSON Format'. e.g. {color:"#ff0011", background:"blue"}

    -
    -

    Examples of setting & function

    -

    1. Don't modify css file, and set the node name's color to red

    -
    var setting = {
    -	view: {
    -		fontCss : {color:"red"}
    -	}
    -};
    -

    2. Don't modify css file, and set the root node name's color to red

    -
    function setFontCss(treeId, treeNode) {
    -	return treeNode.level == 0 ? {color:"red"} : {};
    -};
    -var setting = {
    -	view: {
    -		fontCss: setFontCss
    -	}
    -};
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.nameIsHTML.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.nameIsHTML.html deleted file mode 100644 index 4fe19ada..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.nameIsHTML.html +++ /dev/null @@ -1,28 +0,0 @@ -
    -
    -

    Booleansetting.view.nameIsHTML

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Set to use HTML in 'name' attribute.

    -

    If allow HTML, please do check to avoid security issues, e.g. JavaScript Injection...

    -

    Default: false

    -
    -
    -

    Boolean Format

    -
    -

    true means: 'name' attribute can be HTML.

    -

    false means: 'name' attribute is only TEXT.

    -
    -

    Examples of setting

    -

    1. Set to allow HTML

    -
    var setting = {
    -	view: {
    -		nameIsHTML: true
    -	}
    -};
    -var node = {"name":"<font color='red'>test</font>"};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.removeHoverDom.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.removeHoverDom.html deleted file mode 100644 index 83f80477..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.removeHoverDom.html +++ /dev/null @@ -1,45 +0,0 @@ -
    -
    -

    Function(treeId, treeNode)setting.view.removeHoverDom

    -

    Overview[ depends on jquery.ztree.exedit js ]

    -
    -

    -
    -

    Used to hide custom control when mouse move out the node. (e.g. the rename and remove button)

    -

    If you use this function, so must set setting.view.addHoverDom, please make sure that a better understanding of zTree before you use it.

    -

    Default: null

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    treeIdString

    -

    zTree unique identifier: treeId.

    -

    treeNodeJSON

    -

    JSON data object of the node which need to hide the custom control.

    -
    -

    Examples of setting & function

    -

    1. Display a button when mouse move over the node, and hide the button when mouse move out.

    -
    var setting = {
    -	view: {
    -		addHoverDom: addHoverDom,
    -		removeHoverDom: removeHoverDom,
    -		......
    -	}
    -};
    -function addHoverDom(treeId, treeNode) {
    -	var aObj = $("#" + treeNode.tId + "_a");
    -	if ($("#diyBtn_"+treeNode.id).length>0) return;
    -	var editStr = "<span id='diyBtn_space_" +treeNode.id+ "' > </span>"
    -		+ "<button type='button' class='diyBtn1' id='diyBtn_" + treeNode.id
    -		+ "' title='"+treeNode.name+"' onfocus='this.blur();'></button>";
    -	aObj.append(editStr);
    -	var btn = $("#diyBtn_"+treeNode.id);
    -	if (btn) btn.bind("click", function(){alert("diy Button for " + treeNode.name);});
    -};
    -function removeHoverDom(treeId, treeNode) {
    -	$("#diyBtn_"+treeNode.id).unbind().remove();
    -	$("#diyBtn_space_" +treeNode.id).unbind().remove();
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.selectedMulti.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.selectedMulti.html deleted file mode 100644 index 074fb685..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.selectedMulti.html +++ /dev/null @@ -1,28 +0,0 @@ -
    -
    -

    Booleansetting.view.selectedMulti

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Set whether to allow select multiple nodes.

    -

    Default: true

    -
    -
    -

    Boolean Format

    -
    -

    true mean: you can select multiple nodes.

    -

    false mean: you can only select one node.

    -

    1. Press Ctrl-key or Cmd-key, you can select multiple nodes.

    -

    2、This attribute don't affect the feature of cancel select node. ( please see setting.view.autoCancelSelected )

    -
    -

    Examples of setting

    -

    1. Only select one node.

    -
    var setting = {
    -	view: {
    -		selectedMulti: false
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.showIcon.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.showIcon.html deleted file mode 100644 index 69f1b056..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.showIcon.html +++ /dev/null @@ -1,45 +0,0 @@ -
    -
    -

    Boolean / Function(treeId, treeNode)setting.view.showIcon

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Set to show or hide node icon.

    -

    Default: true

    -
    -
    -

    Boolean Format

    -
    -

    true means: show node icon.

    -

    false means: hide node icon.

    -
    -

    Function Parameter Descriptions

    -
    -

    treeIdString

    -

    zTree unique identifier: treeId.

    -

    treeNodeJSON

    -

    JSON data object of the node which need to show icon.

    -

    Return Boolean

    -

    Return value is same as 'Boolean Format'

    -
    -

    Examples of setting & function

    -

    1. Hide node icon

    -
    var setting = {
    -	view: {
    -		showIcon: false
    -	}
    -};
    -......
    -

    2. Hide node icon which level=2

    -
    function showIconForTree(treeId, treeNode) {
    -	return treeNode.level != 2;
    -};
    -var setting = {
    -	view: {
    -		showIcon: showIconForTree
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.showLine.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.showLine.html deleted file mode 100644 index a5540149..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.showLine.html +++ /dev/null @@ -1,26 +0,0 @@ -
    -
    -

    Booleansetting.view.showLine

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Set to show or hide line.

    -

    Default: true

    -
    -
    -

    Boolean Format

    -
    -

    true means: show line.

    -

    false means: hide line.

    -
    -

    Examples of setting

    -

    1. Hide line

    -
    var setting = {
    -	view: {
    -		showLine: false
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.showTitle.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.showTitle.html deleted file mode 100644 index 8af69844..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.showTitle.html +++ /dev/null @@ -1,47 +0,0 @@ -
    -
    -

    Boolean / Function(treeId, treeNode)setting.view.showTitle

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Set to show or hide the 'title' attribute of node DOM.

    -

    Please see the setting.data.key.title attribute

    -

    Default: true

    -
    -
    -

    Boolean Format

    -
    -

    true means: show the 'title' attribute of node DOM.

    -

    false means: hide the 'title' attribute of node DOM.

    -

    When setting.view.showTitle = true & setting.data.key.title = '', zTree will set the 'setting.data.key.name' attribute to the 'setting.data.key.title'.

    -
    -

    Function Parameter Descriptions

    -
    -

    treeIdString

    -

    zTree unique identifier: treeId.

    -

    treeNodeJSON

    -

    JSON data object of the node which need to show title.

    -

    Return Boolean

    -

    Return value is same as 'Boolean Format'

    -
    -

    Examples of setting & function

    -

    1. Hide the 'title' attribute of node DOM.

    -
    var setting = {
    -	view: {
    -		showTitle: false
    -	}
    -};
    -......
    -

    2. Hide the 'title' attribute of node DOM which level=2.

    -
    function showTitleForTree(treeId, treeNode) {
    -	return treeNode.level != 2;
    -};
    -var setting = {
    -	view: {
    -		showTitle: showTitleForTree
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.txtSelectedEnable.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.txtSelectedEnable.html deleted file mode 100644 index a3809300..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.txtSelectedEnable.html +++ /dev/null @@ -1,26 +0,0 @@ -
    -
    -

    Booleansetting.view.txtSelectedEnable

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Set to allow or don't allow to select the text which in zTree's DOM.

    -

    Default: false

    -
    -
    -

    Boolean Format

    -
    -

    true means: Allow to select the txt which in zTree's DOM.

    -

    false means: Don't allow to select the txt which in zTree's DOM.

    -
    -

    Examples of setting & function

    -

    1. Allow to select the txt which in zTree's DOM.

    -
    var setting = {
    -	view: {
    -		txtSelectedEnable: true
    -	}
    -};
    -......
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.check_Child_State.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.check_Child_State.html deleted file mode 100644 index 48efb79a..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.check_Child_State.html +++ /dev/null @@ -1,43 +0,0 @@ -
    -
    -

    NumbertreeNode.check_Child_State

    -

    Overview[ depends on jquery.ztree.excheck js ]

    -
    -

    -
    -

    Used to record the node's half-checked state about its all child nodes's checkbox or radio. It is valid when [setting.check.enable = true]

    -

    zTree v3.x provides treeNode.getCheckStatus () method to get an accurate the half-checked status.

    -

    Do not initialize or modify it, it is an internal argument.

    -

    Default: true

    -
    -
    -

    Number Format

    -
    -

    Rules:

    - - - - - - - - - - - -
    setting.check.checkType = "checkbox"
    treeNode.check_Child_StateChecked Status Description
    -1Has no child nodes or all child nodes's 'nocheck' attribute is true.
    0All of the child nodes has not been checked.
    1Some of the child nodes has been checked.
    2All of the child nodes has been checked.
    -
    - - - - - - - - - - -
    setting.check.checkType = "radio"
    treeNode.check_Child_StateChecked Status Description
    -1Has no child nodes or all child nodes's 'nocheck' attribute is true.
    0All of the child nodes has not been checked.
    2Some of the child nodes has been checked.
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.check_Focus.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.check_Focus.html deleted file mode 100644 index 77b73598..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.check_Focus.html +++ /dev/null @@ -1,19 +0,0 @@ -
    -
    -

    BooleantreeNode.check_Focus

    -

    Overview[ depends on jquery.ztree.excheck js ]

    -
    -

    -
    -

    Used to record the status which the checkbox or radio get focus. It is valid when [setting.check.enable = true]

    -

    Do not initialize or modify it, it is an internal argument.

    -

    Default: false

    -
    -
    -

    Boolean Format

    -
    -

    true means: mouse move over the checkbox

    -

    false means: mouse move out the checkbox

    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.checked.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.checked.html deleted file mode 100644 index 8a55f3d6..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.checked.html +++ /dev/null @@ -1,32 +0,0 @@ -
    -
    -

    BooleantreeNode.checked

    -

    Overview[ depends on jquery.ztree.excheck js ]

    -
    -

    -
    -

    The checked status about node's checkbox or radio. It is valid when [setting.check.enable = true & treeNode.nocheck = false]

    -

    1. If change the 'checked' to other attribute, please set the 'setting.data.key.checked' attribute.

    -

    2. If you create node data, and set 'checked' attribute to true, zTree will check this node's checkbox or radio when zTree is initialized.

    -

    3. Use the treeObj.checkNode or checkAllNodes or updateNode method, you can check or uncheck the node. Please see the API about these methods.

    -

    4. zTree support identification string 'true' & 'false'.

    -

    Default: false

    -
    -
    -

    Boolean Format

    -
    -

    true means: check the checkbox or radio when zTree is initialized.

    -

    false means: uncheck the checkbox or radio when zTree is initialized.

    -
    -

    Examples of treeNode

    -

    1. check the checkbox when zTree is initialized

    -
    var nodes = [
    -{ "id":1, "name":"test1", checked:true },
    -{ "id":2, "name":"test2", checked:true }
    -]
    -

    2. Get the checked status of the first root node

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var checked = treeObj.getNodes()[0].checked;
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.checkedOld.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.checkedOld.html deleted file mode 100644 index ee516260..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.checkedOld.html +++ /dev/null @@ -1,25 +0,0 @@ -
    -
    -

    BooleantreeNode.checkedOld

    -

    Overview[ depends on jquery.ztree.excheck js ]

    -
    -

    -
    -

    The checked status about node's checkbox or radio when zTree was initialized. It is valid when [setting.check.enable = true & treeNode.nocheck = false]

    -

    1. Do not initialize it, it will be initialized when the node is initialized.

    -

    2. If you need to achieve special features, you can use the zTreeObj.getChangeCheckedNodes method and modify the value of 'checkedOld' attribute.

    -

    Default: the value of 'checked' attribute when zTree is initialized

    -
    -
    -

    Boolean Format

    -
    -

    true means: the checkbox or radio is checked when zTree is initialized.

    -

    false means: the checkbox or radio is not checked when zTree is initialized.

    -
    -

    Examples of treeNode

    -

    1. Get the original checked status of the first root node

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var checkedOld = treeObj.getNodes()[0].checkedOld;
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.children.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.children.html deleted file mode 100644 index d765bb96..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.children.html +++ /dev/null @@ -1,35 +0,0 @@ -
    -
    -

    Array(JSON)treeNode.children

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    The data collections of node's child nodes.

    -

    1. If change the 'children' to other attribute, please set the 'setting.data.key.children' attribute.

    -

    2. If you set to use dynamic tree, when a node is expanded which 'isParent' attribute is true and which has no child nodes, zTree will use ajax to get its child nodes.

    -

    Default: undefined

    -
    -
    -

    Array(JSON) Format

    -
    -

    Standard JSON Data object

    -
    -

    Examples of treeNode

    -

    1. Use the standard JSON data object.

    -
    var nodes = [
    -{ "id":1, "name":"test1",
    -	children: [
    -	{ "id":3, "name":"test3"},
    -	{ "id":4, "name":"test4"},
    -	{ "id":5, "name":"test5"}
    -	]
    -},
    -{ "id":2, "name":"test2"  }
    -]
    -

    2. Get the first root node's child nodes

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getNodes()[0].children;
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.chkDisabled.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.chkDisabled.html deleted file mode 100644 index 7a5fcf38..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.chkDisabled.html +++ /dev/null @@ -1,28 +0,0 @@ -
    -
    -

    BooleantreeNode.chkDisabled

    -

    Overview[ depends on jquery.ztree.excheck js ]

    -
    -

    -
    -

    1. Set node's checkbox / radio to disabled. It is valid when [setting.check.enable = true]

    -

    2. zTree support identification string 'true' & 'false'.

    -

    3. Please don't change this attribute of the nodes which have been created. If you want to disable or undisable the nodes, please use 'setChkDisabled()' methods.

    -

    4. When zTree initialize the nodes, if you need to the child nodes automatically inherit the 'chkDisabled' attribute, please see 'setting.check.chkDisabledInherit'.

    -

    Default: false

    -
    -
    -

    Boolean Format

    -
    -

    true means: this node's checkbox / radio is disabled.

    -

    false means: this node's checkbox / radio is able.

    -
    -

    Examples of treeNode

    -

    1. disable some node's checkbox / radio

    -
    var nodes = [
    -	{ "id":1, "name":"test1", "checked":true, "chkDisabled":true},
    -	{ "id":2, "name":"test2", "chkDisabled":true},
    -	{ "id":3, "name":"test3"}
    -]
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.click.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.click.html deleted file mode 100644 index 1f9db626..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.click.html +++ /dev/null @@ -1,24 +0,0 @@ -
    -
    -

    StringtreeNode.click

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Simple click event operations. As same as : (onclick ="...") the code. If the operation is more complex, please use the onClick callback.

    -

    Because IE is different to other browsers in operating the event of ‘onclick’ and ‘click’ coexistence, please do not use this parameter to control whether to allow the redirection operation (for example: treeNode.click = "return false;"). If there is similar requirements, please do not use the 'url' attribute to save the website address, but use the 'onClick' callback to control jumps.

    -

    Default: undefined

    -
    -
    -

    String Format

    -
    -

    Standard javascript syntax, for example: alert ("test"); etc.

    -
    -

    Examples of treeNode

    -

    1. When click this node, will alert msg.

    -
    var nodes = [
    -	{ "id":1, "name":"Google CN", "url":"http://g.cn", "click":"alert('test');"},
    -	......
    -]
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.diy.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.diy.html deleted file mode 100644 index 68c39ba6..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.diy.html +++ /dev/null @@ -1,15 +0,0 @@ -
    -
    -

    ?treeNode.* DIY *

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Used to save other custom data of node, do not use the same attribute name with ztree used, the user can freely set.

    -
    -
    -

    Examples of treeNode

    -

    1. Use 'ename' attribute to save more info

    -
    var node = { "id":1, "name":"test1", "ename":"test eName"};
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.editNameFlag.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.editNameFlag.html deleted file mode 100644 index f60ef2ab..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.editNameFlag.html +++ /dev/null @@ -1,19 +0,0 @@ -
    -
    -

    BooleantreeNode.editNameFlag

    -

    Overview[ depends on jquery.ztree.exedit js ]

    -
    -

    -
    -

    Used to save the node editing name status. It is valid when [setting.edit.enable = true]

    -

    Do not initialize or modify it, it is an internal argument.

    -

    Default: false

    -
    -
    -

    Boolean Format

    -
    -

    true means: node is being edited.

    -

    false means: node is not being edited.

    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.getCheckStatus.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.getCheckStatus.html deleted file mode 100644 index 3c9a2e6b..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.getCheckStatus.html +++ /dev/null @@ -1,63 +0,0 @@ -
    -
    -

    Function()treeNode.getCheckStatus

    -

    Overview[ depends on jquery.ztree.excheck js ]

    -
    -

    -
    -

    Get the node's half-checked status of checkbox or radio. It is valid when [setting.check.enable = true]

    -

    Do not initialize or modify it, it is created by the zTree.

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    ReturnJSON

    -
    {
    -	checked: true, //As same as 'treeNode.checked'
    -	half: true  //Rule the table below
    -}
    - - - - - - - - - - - - - - - - - - -
    setting.check.checkType = "checkbox"
    treeNode.checkedtreeNode.check_Child_StatetreeNode.halfCheck half
    --truetrue
     
    true-1falsefalse
    true0falsetrue
    true1falsetrue
    true2falsefalse
     
    false-1falsefalse
    false0falsefalse
    false1falsetrue
    false2falsetrue
    -
    - - - - - - - - - - - - - - - - -
    setting.check.checkType = "radio"
    treeNode.checkedtreeNode.check_Child_StatetreeNode.halfCheck half
    --truetrue
     
    true-1falsefalse
    true0falsefalse
    true2falsetrue
     
    false-1falsefalse
    false0falsefalse
    false2falsetrue
    -
    -

    Examples of treeNode

    -

    1. Get the first root node's half-checked status

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var halfCheck = treeObj.getNodes()[0].getCheckStatus();
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.getIndex.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.getIndex.html deleted file mode 100644 index 2c31cfee..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.getIndex.html +++ /dev/null @@ -1,26 +0,0 @@ -
    -
    -

    Function()treeNode.getIndex

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Get the treeNode's index in its parent node's children.

    -

    Do not initialize or modify it, it is created by the zTree.

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    ReturnNumber

    -

    the treeNode's index in its parent node's children. ( start at 0 )

    -
    -

    Examples of treeNode

    -

    1. Get the first selected node's index.

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var sNodes = treeObj.getSelectedNodes();
    -if (sNodes.length > 0) {
    -	var node = sNodes[0].getIndex();
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.getNextNode.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.getNextNode.html deleted file mode 100644 index 755aa6ee..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.getNextNode.html +++ /dev/null @@ -1,27 +0,0 @@ -
    -
    -

    Function()treeNode.getNextNode

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Get the treeNode's next sibling node.

    -

    Do not initialize or modify it, it is created by the zTree.

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    ReturnJSON

    -

    JSON data object of the treeNode's next sibling node

    -

    If have not the next node, return null.

    -
    -

    Examples of treeNode

    -

    1. Get the first selected node's next sibling node.

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var sNodes = treeObj.getSelectedNodes();
    -if (sNodes.length > 0) {
    -	var node = sNodes[0].getNextNode();
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.getParentNode.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.getParentNode.html deleted file mode 100644 index 16bab306..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.getParentNode.html +++ /dev/null @@ -1,27 +0,0 @@ -
    -
    -

    Function()treeNode.getParentNode

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Get the treeNode's parent node.

    -

    Do not initialize or modify it, it is created by the zTree.

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    ReturnJSON

    -

    JSON data object of treeNode's parent node.

    -

    If treeNode is root, return null.

    -
    -

    Examples of treeNode

    -

    1. Get the first selected node's parent node.

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var sNodes = treeObj.getSelectedNodes();
    -if (sNodes.length > 0) {
    -	var node = sNodes[0].getParentNode();
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.getPath.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.getPath.html deleted file mode 100644 index 5f816761..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.getPath.html +++ /dev/null @@ -1,26 +0,0 @@ -
    -
    -

    Function()treeNode.getPath

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Get the treeNode's all parent nodes. (Include itself)

    -

    Do not initialize or modify it, it is created by the zTree.

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    ReturnArray (JSON)

    -

    Array of treeNode's all parent nodes. (Include itself)

    -
    -

    Examples of treeNode

    -

    1. Get the first selected node's all parent nodes.

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var sNodes = treeObj.getSelectedNodes();
    -if (sNodes.length > 0) {
    -	var node = sNodes[0].getPath();
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.getPreNode.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.getPreNode.html deleted file mode 100644 index f6745b14..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.getPreNode.html +++ /dev/null @@ -1,27 +0,0 @@ -
    -
    -

    Function()treeNode.getPreNode

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Get the treeNode's previous sibling node.

    -

    Do not initialize or modify it, it is created by the zTree.

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    ReturnJSON

    -

    JSON data object of the treeNode's previous sibling node

    -

    If have not the previous node, return null.

    -
    -

    Examples of treeNode

    -

    1. Get the first selected node's previous sibling node.

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var sNodes = treeObj.getSelectedNodes();
    -if (sNodes.length > 0) {
    -	var node = sNodes[0].getPreNode();
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.halfCheck.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.halfCheck.html deleted file mode 100644 index 8375326b..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.halfCheck.html +++ /dev/null @@ -1,29 +0,0 @@ -
    -
    -

    BooleantreeNode.halfCheck

    -

    Overview[ depends on jquery.ztree.excheck js ]

    -
    -

    -
    -

    Force node checkBox / radio to the half-checked status. It is valid when [setting.check.enable = true & treeNode.nocheck = false]

    -

    1. If you force to the half-checked status, zTree will not automatically calculated the half-checked status about this node.

    -

    2. Until you set treeNode.halfCheck to false or null, zTree will automatically calculated the half-checked status about this node.

    -

    3. zTree support identification string 'true' & 'false'.

    -

    Defaul: false

    -
    -
    -

    Boolean Format

    -
    -

    true means: the checkbox or radio is half-checked when zTree is initialized.

    -

    false means: the half-checked status will be automatically calculated

    -
    -

    Examples of treeNode

    -

    1. set the half-checked status when zTree is initialized

    -
    var nodes = [
    -{ "id":1, "name":"test1", isParent:true, checked:true, halfCheck:true },
    -{ "id":2, "name":"test2", isParent:true, checked:false, halfCheck:true },
    -{ "id":3, "name":"test3", isParent:true, checked:true },
    -{ "id":4, "name":"test4", isParent:true, checked:false }
    -]
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.icon.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.icon.html deleted file mode 100644 index 4e1c99fa..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.icon.html +++ /dev/null @@ -1,33 +0,0 @@ -
    -
    -

    StringtreeNode.icon

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    URL path of node's custom icon.

    -

    1. If you only set the 'icon' attribute to parent node, the parent node will only show one icon when it is expanded or collapsed.

    -

    2. If you need to show two icons when it is expanded or collapsed, please set the 'treeNode.iconOpen' and 'treeNode.iconClose' attribute.

    -

    3. If you need to use css to set the custom icon, please set the 'treeNode.iconSkin' attribute.

    -

    Default: undefined

    -
    -
    -

    String Format

    -
    -

    Icon image url can be a relative path or absolute path.

    -

    If use a relative path, please note the relationship between icon image and the page, ensure the correct image path.

    -
    -

    Examples of treeNode

    -

    1. Set the custom icon

    -
    var nodes = [
    -	//Only show one icon when it is expanded or collapsed.
    -	{ name:"Parent Node 1", icon:"/img/parent.gif"},
    -
    -	//Show two icons when it is expanded or collapsed.
    -	{ name:"Parent Node 2", iconOpen:"/img/open.gif", iconClose:"/img/close.gif"},
    -
    -	//the custom icon for leaf node
    -	{ name:"Leaf Node", icon:"/img/leaf.gif"}
    -]
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.iconClose.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.iconClose.html deleted file mode 100644 index 2259e8f3..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.iconClose.html +++ /dev/null @@ -1,33 +0,0 @@ -
    -
    -

    StringtreeNode.iconClose

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    URL path of parent node's custom icon when it is collapsed.

    -

    1. Only parent node support this attribute.

    -

    2. This attribute must be used simultaneously with 'iconOpen' attribute.

    -

    3. If you need to use css to set the custom icon, please set the 'treeNode.iconSkin' attribute.

    -

    Default: undefined

    -
    -
    -

    String Format

    -
    -

    Icon image url can be a relative path or absolute path.

    -

    If use a relative path, please note the relationship between icon image and the page, ensure the correct image path.

    -
    -

    Examples of treeNode

    -

    1. Set the custom icon

    -
    var nodes = [
    -	//Only show one icon when it is expanded or collapsed.
    -	{ name:"Parent Node 1", icon:"/img/parent.gif"},
    -
    -	//Show two icons when it is expanded or collapsed.
    -	{ name:"Parent Node 2", iconOpen:"/img/open.gif", iconClose:"/img/close.gif"},
    -
    -	//the custom icon for leaf node
    -	{ name:"Leaf Node", icon:"/img/leaf.gif"}
    -]
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.iconOpen.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.iconOpen.html deleted file mode 100644 index 3203615d..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.iconOpen.html +++ /dev/null @@ -1,33 +0,0 @@ -
    -
    -

    StringtreeNode.iconOpen

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    URL path of parent node's custom icon when it is expanded.

    -

    1. Only parent node support this attribute.

    -

    2. This attribute must be used simultaneously with 'iconClose' attribute.

    -

    3. If you need to use css to set the custom icon, please set the 'treeNode.iconSkin' attribute.

    -

    Default: undefined

    -
    -
    -

    String Format

    -
    -

    Icon image url can be a relative path or absolute path.

    -

    If use a relative path, please note the relationship between icon image and the page, ensure the correct image path.

    -
    -

    Examples of treeNode

    -

    1. Set the custom icon

    -
    var nodes = [
    -	//Only show one icon when it is expanded or collapsed.
    -	{ name:"Parent Node 1", icon:"/img/parent.gif"},
    -
    -	//Show two icons when it is expanded or collapsed.
    -	{ name:"Parent Node 2", iconOpen:"/img/open.gif", iconClose:"/img/close.gif"},
    -
    -	//the custom icon for leaf node
    -	{ name:"Leaf Node", icon:"/img/leaf.gif"}
    -]
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.iconSkin.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.iconSkin.html deleted file mode 100644 index fca7fbf2..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.iconSkin.html +++ /dev/null @@ -1,43 +0,0 @@ -
    -
    -

    StringtreeNode.iconSkin

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    The className of node's custom icon.

    -

    1. You need to modify the css, add the definition of className.

    -

    2. The css is simple, convenient, and support the parent node to switch icons when it is expanded or collapsed.

    -

    3. Recommend the use of CSS Sprites, can reduce repeating load the image, to avoid image flicker.

    -

    4. The 'iconSkin' support IE6 in zTree v3.x.

    -

    5. If you need to use image's URL to set the custom icon, please set the 'treeNode.icon' or 'treeNode.iconOpen' or 'treeNode.iconClose' attribute.

    -

    Default: undefined

    -
    -
    -

    String Format

    -
    -

    The string about custom icon's className.

    -
    -

    Examples of css & treeNode

    -

    1. Set the custom icon

    -
    css example:
    -.ztree li span.button.diy01_ico_open, .ztree li span.button.diy01_ico_close{...}
    -
    -.ztree li span.button.diy02_ico_open{...}
    -.ztree li span.button.diy02_ico_close{...}
    -
    -.ztree li span.button.diy03_ico_docu{...}
    -
    -node's data example:
    -var nodes = [
    -	//Only show one icon when it is expanded or collapsed.
    -	{ name:"Parent Node 1", iconSkin:"diy01"},
    -
    -	//Show two icons when it is expanded or collapsed.
    -	{ name:"Parent Node 2", iconSkin:"diy02"},
    -
    -	//the custom icon for leaf node
    -	{ name:"Leaf Node", iconSkin:"diy03"}
    -]
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.isAjaxing.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.isAjaxing.html deleted file mode 100644 index ddadf41b..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.isAjaxing.html +++ /dev/null @@ -1,26 +0,0 @@ -
    -
    -

    BooleantreeNode.isAjaxing

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Judge whether the node's child nodes being loaded asynchronously.

    -

    Do not initialize or modify it, it is created by the zTree.

    -
    -
    -

    Boolean Format

    -
    -

    true means: the node's child nodes is being loaded asynchronously

    -

    false means: the node's child nodes is not being loaded asynchronously

    -
    -

    Examples of treeNode

    -

    1. Judge whether the first selected node's child nodes being loaded asynchronously

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var sNodes = treeObj.getSelectedNodes();
    -if (sNodes.length > 0) {
    -	var isAjaxing = sNodes[0].isAjaxing;
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.isFirstNode.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.isFirstNode.html deleted file mode 100644 index a8ee61ce..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.isFirstNode.html +++ /dev/null @@ -1,28 +0,0 @@ -
    -
    -

    BooleantreeNode.isFirstNode

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Judge whether the node is the sibling nodes's first node.

    -

    If you use the 'exhide' pack, so this attribute will only support the node which be shown.

    -

    Do not initialize or modify it, it is created by the zTree.

    -
    -
    -

    Boolean Format

    -
    -

    true means: the node is first node.

    -

    false means: the node is not first node.

    -

    If the node has been hidden, isFirstNode = false

    -
    -

    Examples of treeNode

    -

    1. Judge whether the first selected node is the sibling nodes's first node.

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var sNodes = treeObj.getSelectedNodes();
    -if (sNodes.length > 0) {
    -	var isFirstNode = sNodes[0].isFirstNode;
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.isHidden.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.isHidden.html deleted file mode 100644 index 3a07b94c..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.isHidden.html +++ /dev/null @@ -1,28 +0,0 @@ -
    -
    -

    BooleantreeNode.isHidden

    -

    Overview[ depends on jquery.ztree.exhide js ]

    -
    -

    -
    -

    Judge whether the node has been hidden.

    -

    1. When initialize zTree, the nodes which be set 'isHidden = true' will be hidden.

    -

    -

    2. Please don't change this attribute of the nodes which have been created. If you want to hide or show nodes, please use 'hideNode() / hideNodes() / showNode() / showNodes()' methods.

    -
    -
    -

    Boolean Format

    -
    -

    true means: this node is hidden.

    -

    false means: this node is shown.

    -
    -

    Examples of treeNode

    -

    1. Judge whether the first root node has been hidden.

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var sNodes = treeObj.getNodes();
    -if (sNodes.length > 0) {
    -	var isHidden = sNodes[0].isHidden;
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.isHover.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.isHover.html deleted file mode 100644 index e18ed0cf..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.isHover.html +++ /dev/null @@ -1,19 +0,0 @@ -
    -
    -

    BooleantreeNode.isHover

    -

    Overview[ depends on jquery.ztree.exedit js ]

    -
    -

    -
    -

    Used to record the hover status of node's DOM. For 'setting.view.addHoverDom / removeHoverDom'.

    -

    Do not initialize or modify it, it is an internal argument.

    -

    Default: false

    -
    -
    -

    Boolean Format

    -
    -

    true means: the node's DOM is in hover.

    -

    false means: the node's DOM is not in hover.

    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.isLastNode.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.isLastNode.html deleted file mode 100644 index cd2ca26b..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.isLastNode.html +++ /dev/null @@ -1,28 +0,0 @@ -
    -
    -

    BooleantreeNode.isLastNode

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Judge whether the node is the sibling nodes's last node.

    -

    If you use the 'exhide' pack, so this attribute will only support the node which be shown.

    -

    Do not initialize or modify it, it is created by the zTree.

    -
    -
    -

    Boolean Format

    -
    -

    true means: the node is last node.

    -

    false means: the node is not last node.

    -

    If the node has been hidden, isLastNode = false

    -
    -

    Examples of treeNode

    -

    1. Judge whether the first selected node is the sibling nodes's last node.

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var sNodes = treeObj.getSelectedNodes();
    -if (sNodes.length > 0) {
    -	var isLastNode = sNodes[0].isLastNode;
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.isParent.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.isParent.html deleted file mode 100644 index dad4b819..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.isParent.html +++ /dev/null @@ -1,28 +0,0 @@ -
    -
    -

    BooleantreeNode.isParent

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Judge whether the node is the parent node.

    -

    1. When zTree initialize the node data, the node which has children is set to true, otherwise false.

    -

    2. When zTree initialize the node data, if set treeNode.isParent to true, the node will be set to be parent node.

    -

    3. In order to solve the problem of someone make json data, supporting "false", "true" format of the data string.

    -
    -
    -

    Boolean Format

    -
    -

    true means: the node is parent node.

    -

    false means: the node is not parent node.

    -
    -

    Examples of treeNode

    -

    1. Judge whether the first selected node is the parent node.

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var sNodes = treeObj.getSelectedNodes();
    -if (sNodes.length > 0) {
    -	var isParent = sNodes[0].isParent;
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.level.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.level.html deleted file mode 100644 index d1511624..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.level.html +++ /dev/null @@ -1,25 +0,0 @@ -
    -
    -

    NumbertreeNode.level

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    The level of node

    -

    Do not initialize or modify it, it is created by the zTree.

    -
    -
    -

    Number Format

    -
    -

    The root node's level = 0, and next level = 1, ...

    -
    -

    Examples of treeNode

    -

    1. Get the first selected node's level

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var sNodes = treeObj.getSelectedNodes();
    -if (sNodes.length > 0) {
    -	var level = sNodes[0].level;
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.name.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.name.html deleted file mode 100644 index fa508ccb..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.name.html +++ /dev/null @@ -1,25 +0,0 @@ -
    -
    -

    StringtreeNode.name

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    The node's name

    -

    1. If you want to change 'name' attribute, please modify the 'setting.data.key.name' attribute.

    -

    Default: undenfined

    -
    -
    -

    String Format

    -
    -

    String object. The HTML special characters are escaped

    -
    -

    Examples of treeNode

    -

    1. Set node's name to 'test1', 'test2', 'test3'

    -
    var nodes = [
    -	{ "id":1, "name":"test1"},
    -	{ "id":2, "name":"test2"},
    -	{ "id":3, "name":"test3"}
    -]
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.nocheck.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.nocheck.html deleted file mode 100644 index 6c4880c8..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.nocheck.html +++ /dev/null @@ -1,26 +0,0 @@ -
    -
    -

    BooleantreeNode.nocheck

    -

    Overview[ depends on jquery.ztree.excheck js ]

    -
    -

    -
    -

    1. Set node to hide the checkbox or radio. It is valid when [setting.check.enable = true]

    -

    2. zTree support identification string 'true' & 'false'.

    -

    Default: false

    -
    -
    -

    Boolean Format

    -
    -

    true means: the node hide the checkbox or radio, and don't affect the checked association, and don't affect its parent node's half-checked status.

    -

    false means: the node show the checkbox or radio.

    -
    -

    Examples of treeNode

    -

    1. Hide some node's checkbox / radio

    -
    var nodes = [
    -	{ "id":1, "name":"test1", "nocheck":true},
    -	{ "id":2, "name":"test2"},
    -	{ "id":3, "name":"test3"}
    -]
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.open.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.open.html deleted file mode 100644 index bc910de3..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.open.html +++ /dev/null @@ -1,30 +0,0 @@ -
    -
    -

    BooleantreeNode.open

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Used to record the parent node's expand status.

    -

    1. When zTree initialize the node data, if you set treeNode.open = true, zTree will default expand this parent node.

    -

    2. Leaf node's 'open' attribute is false.

    -

    3. In order to solve the problem of someone make json data, supporting "false", "true" format of the data string.

    -

    4. When setting.async.enable = false, the parent node will be expanded which have no child nodes and its attribute 'open' is true. (v3.5.15+)

    -

    Default: false

    -
    -
    -

    Boolean Format

    -
    -

    true means: the parent node is expanded.

    -

    false means: the parent node is collapsed.

    -
    -

    Examples of treeNode

    -

    1. Get the first selected node's expand status.

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var sNodes = treeObj.getSelectedNodes();
    -if (sNodes.length > 0) {
    -	var isOpen = sNodes[0].open;
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.parentTId.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.parentTId.html deleted file mode 100644 index 0bc2a6d6..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.parentTId.html +++ /dev/null @@ -1,27 +0,0 @@ -
    -
    -

    StringtreeNode.parentTId

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    The unique identifier of node's parent node.

    -

    1. zTree v3.x using 'parentTId' replaced the original 'parentNode' attribute, and increased getParentNode () method, in order to avoid the original 'parentNode' cause the clone () method infinite loop.

    -

    2. Do not initialize or modify it, it is created by the zTree.

    -
    -
    -

    String Format

    -
    -

    String object of node's parent node's tId. please see API about 'treeNode.tId'

    -

    If treeNode is root node, parentTId is null.

    -
    -

    Examples of treeNode

    -

    1. Get the first selected node's parent node's tId

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var sNodes = treeObj.getSelectedNodes();
    -if (sNodes.length > 0) {
    -	var parentTId = sNodes[0].parentTId;
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.tId.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.tId.html deleted file mode 100644 index 18c2855a..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.tId.html +++ /dev/null @@ -1,25 +0,0 @@ -
    -
    -

    StringtreeNode.tId

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    The unique identifier of node.

    -

    Do not initialize or modify it, it is created by the zTree.

    -
    -
    -

    String Format

    -
    -

    tId rules: setting.treeId + "_" + zTree counter

    -
    -

    Examples of treeNode

    -

    1. Get the first selected node's tId

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var sNodes = treeObj.getSelectedNodes();
    -if (sNodes.length > 0) {
    -	var tId = sNodes[0].tId;
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.target.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.target.html deleted file mode 100644 index 176a7a35..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.target.html +++ /dev/null @@ -1,24 +0,0 @@ -
    -
    -

    StringtreeNode.target

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Used to set the target where the node is clicked to open url. It is valid when [treeNode.url exists]

    -

    Default: undefined

    -
    -
    -

    String Format

    -
    -

    As same as <a> tag's 'target' attribute. e.g. '_blank', '_self' or other window name.

    -

    if this attribute is omitted, zTree default set it to '_blank'

    -
    -

    Exmaples of treeNode

    -

    1. Set target is '_blank'

    -
    var nodes = [
    -	{ "id":1, "name":"test1", "url":"http://myTest.com", "target":"_blank"},
    -	......
    -]
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.url.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.url.html deleted file mode 100644 index 55524455..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.url.html +++ /dev/null @@ -1,25 +0,0 @@ -
    -
    -

    StringtreeNode.url

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    The URL of node link

    -

    1. In edit mode (setting.edit.enable = true) , this feature fails. If you must use a similar feature, please use the 'onClick' callback for their own control.

    -

    2. If you use the 'onClick' callback function to control opening URL , then set the URL in the other custom attribute, do not use the 'url' attribute.

    -

    Default: undefined

    -
    -
    -

    String Format

    -
    -

    As same as <a> tag's 'href' attribute.

    -
    -

    Examples of treeNode

    -

    1. Set the URL is 'g.cn'

    -
    var nodes = [
    -	{ "id":1, "name":"Google CN", "url":"http://g.cn"},
    -	......
    -]
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.zAsync.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.zAsync.html deleted file mode 100644 index b3ff4145..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.zAsync.html +++ /dev/null @@ -1,28 +0,0 @@ -
    -
    -

    BooleantreeNode.zAsync

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Judge whether the parent node's child nodes will be loaded asynchronously when the parent node is expanded.

    -

    Do not initialize or modify it, it is created by the zTree.

    -

    Default:false (the parent node which have no child nodes); true (the parent node which have child nodes or the leaf node)

    -
    -
    -

    Boolean Format

    -
    -

    true means: the node's child nodes will not be loaded asynchronously when the parent node is expanded.

    -

    false means: the node's child nodes will be loaded asynchronously when the parent node is expanded.

    -

    This attribute will not effect to 'reAsyncChildNodes()' method

    -
    -

    Examples of treeNode

    -

    1. Judge whether the first selected node's child nodes has been loaded asynchronously

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var sNodes = treeObj.getSelectedNodes();
    -if (sNodes.length > 0) {
    -	var zAsync = sNodes[0].zAsync;
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.addNodes.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.addNodes.html deleted file mode 100644 index c40caaf5..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.addNodes.html +++ /dev/null @@ -1,47 +0,0 @@ -
    -
    -

    Function(parentNode, [index], newNodes, isSilent)zTreeObj.addNodes

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Add nodes

    -

    In order to avoid duplication data resulting from repeated initialization, zTree v3.x will automatically clone node data when zTree initialized or add nodes. If you need to get the data objects within the zTree, please get the return value of this method.

    -

    Please use zTree object to executing the method.

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    parentNodeJSON

    -

    The additional node's parent node. If additional node is root node, please the parentNode is null.

    -

    Please ensure this node data object is a data object within zTree.

    -

    [index]Number

    -

    The index of the parentNode's children where the newnodes will be added (the value start from 0)

    -

    When index = -1, the newnodes will be added to the last

    -

    This parameter can be ignore.

    -

    v3.5.19+

    -

    newNodesJSON / Array(JSON)

    -

    The node data's JSON object collection which need to increase, refer to 'treeNode treeNode data details'

    -

    1. zTree v3.x support to add single node, that is, if you only add a node, you can don't use the array.

    -

    2. If you use simple data model, please refer to the attributes within the 'setting.data.simpleData'.

    -

    isSilentBoolean

    -

    Set whether to automatically expand the parent node, after add nodes.

    -

    isSilent = true means: don't auto expand the parent node. Otherwise auto expand.

    -

    Return Array(JSON)

    -

    return the new nodes in zTree

    -

    If the newNodes is single data object, the return value is a array with length is 1.

    -

    Note: the node data JSON object in the return value is not equal to the JSON object in the 'newNodes'.

    -
    -

    Examples of function

    -

    1. Add one root node to zTree which id is 'tree'

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var newNode = {name:"newNode1"};
    -newNode = treeObj.addNodes(null, newNode);
    -
    -

    2. Add three root nodes to zTree which id is 'tree'

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var newNodes = [{name:"newNode1"}, {name:"newNode2"}, {name:"newNode3"}];
    -newNodes = treeObj.addNodes(null, newNodes);
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.cancelEditName.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.cancelEditName.html deleted file mode 100644 index 8afdae0b..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.cancelEditName.html +++ /dev/null @@ -1,30 +0,0 @@ -
    -
    -

    Function(newName)zTreeObj.cancelEditName

    -

    Overview[ depends on jquery.ztree.exedit js ]

    -
    -

    -
    -

    Cancel the edit name status. Can restore the original name, and can also force assigned to a new name.

    -

    Please use zTree object to executing the method.

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    newNameString

    -

    Re given a new name

    -

    If this parameter is omitted, then restore the original name.

    -

    Return none

    -

    no return value

    -
    -

    Examples of function

    -

    1. Cancel edit name, and restore the original name.

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -treeObj.cancelEditName();
    -
    -

    2. Cancel edit name , and set the new name.

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -treeObj.cancelEditName("test_new_name");
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.cancelSelectedNode.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.cancelSelectedNode.html deleted file mode 100644 index 84c6c80b..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.cancelSelectedNode.html +++ /dev/null @@ -1,35 +0,0 @@ -
    -
    -

    Function(treeNode)zTreeObj.cancelSelectedNode

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    To cancel the selected node.

    -

    zTree v3.x support to select multiple nodes, so you can cancel a single selected node, and you can cancel all of the selected nodes too.

    -

    Please use zTree object to executing the method.

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    treeNodeJSON

    -

    JSON data object of the node which need to cancel selected.

    -

    Please ensure that this data object is an internal node data object in zTree.

    -

    If you omit this parameter, zTree will cancel all of the selected nodes.

    -

    Return none

    -

    no return value

    -
    -

    Examples of function

    -

    1. Cancel all of the selected nodes

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -treeObj.cancelSelectedNode();
    -
    -

    2. Cancel the first node of the selected nodes

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getSelectedNodes();
    -if (nodes.length>0) { 
    -	treeObj.cancelSelectedNode(nodes[0]);
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.checkAllNodes.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.checkAllNodes.html deleted file mode 100644 index de00e112..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.checkAllNodes.html +++ /dev/null @@ -1,29 +0,0 @@ -
    -
    -

    Function(checked)zTreeObj.checkAllNodes

    -

    Overview[ depends on jquery.ztree.excheck js ]

    -
    -

    -
    -

    Check or unCheck all nodes which have been initialized. It is valid when [setting.check.enable = true & setting.check.chkStyle = "checkbox"]

    -

    This method does not trigger 'beforeCheck' or 'onCheck' callback function.

    -

    Please use zTree object to executing the method.

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    checkedBoolean

    -

    checked = true means: check all nodes.

    -

    checked = false means: uncheck all nodes.

    -

    Don't affect the node which 'nocheck' attribute is true.

    -

    Don't affect the node is not loaded.

    -

    Return none

    -

    no return value

    -
    -

    Examples of function

    -

    1. check all nodes

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -treeObj.checkAllNodes(true);
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.checkNode.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.checkNode.html deleted file mode 100644 index 741eb3ba..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.checkNode.html +++ /dev/null @@ -1,44 +0,0 @@ -
    -
    -

    Function(treeNode, checked, checkTypeFlag, callbackFlag)zTreeObj.checkNode

    -

    Overview[ depends on jquery.ztree.excheck js ]

    -
    -

    -
    -

    Check or unCheck a single node. It is valid when [setting.check.enable = true]

    -

    Use checkNode() method of zTree v3.x can trigger 'beforeCheck' or 'onCheck' callback function. for reduce redundant code.

    -

    Please use zTree object to executing the method.

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    treeNodeJSON

    -

    JSON data object of the node which need to be checked or unchecked.

    -

    Please ensure that this data object is an internal node data object in zTree.

    -

    checkedBoolean

    -

    checked = true means: check node.

    -

    checked = false means: uncheck node.

    -

    If this parameter is omitted, then toggle check or uncheck depend this node's expanded state.

    -

    Don't affect the node which 'nocheck' attribute is true.

    -

    checkTypeFlagBoolean

    -

    checkTypeFlag = true means: According to 'setting.check.chkboxType' attribute automatically check or uncheck the parent and child nodes.

    -

    checkTypeFlag = false means: only check or uncheck this node, don't affect its parent and child nodes.

    -

    When checkTypeFlag = false and treeNode.checked = checked, will not trigger callback function.

    -

    Don't affect the parent and child nodes which 'nocheck' attribute is true.

    -

    callbackFlagBoolean

    -

    callbackFlag = true means: call this method, will trigger 'beforeCheck' & 'onCheck' callback.

    -

    callbackFlag = false means: call this method, will not trigger callback.

    -

    If this parameter is omitted, it is same as 'callbackFlag = false'

    -

    Return none

    -

    no return value

    -
    -

    Examples of function

    -

    1. check the selected nodes

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getSelectedNodes();
    -for (var i=0, l=nodes.length; i < l; i++) {
    -	treeObj.checkNode(nodes[i], true, true);
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.copyNode.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.copyNode.html deleted file mode 100644 index ff7b5b59..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.copyNode.html +++ /dev/null @@ -1,47 +0,0 @@ -
    -
    -

    Function(targetNode, treeNode, moveType, isSilent)zTreeObj.copyNode

    -

    Overview[ depends on jquery.ztree.exedit js ]

    -
    -

    -
    -

    Copy the node

    -

    When copy nodes, zTree v3.x will clone nodes. If you need to get the data object in zTree, please get the return value of this method.

    -

    Please use zTree object to executing the method.

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    targetNodeJSON

    -

    JSON data object of the node to be target.

    -

    If copy the node to root node, please set the 'targetNode' to null.

    -

    Please ensure that this data object is an internal node data object in zTree.

    -

    treeNodeJSON

    -

    JSON data object of the node to be copied.

    -

    Please ensure that this data object is an internal node data object in zTree.

    -

    moveTypeString

    -

    Copied to the target node's relative position.

    -

    "inner" means: to be taregetNode's child node.

    -

    "prev" means: to be taregetNode's previous sibling node.

    -

    "next" means: to be taregetNode's next sibling node.

    -

    isSilentBoolean

    -

    After copy the node, whether to automatically expand its parent node.

    -

    isSilent = true means: don't expand its parent node.

    -

    isSilent = false or omit this parameter means: expand its parent node.

    -

    Return JSON

    -

    return the new node in zTree

    -

    Note: the node data JSON object in the return value is not equal to the treeNode.

    -
    -

    Examples of function

    -

    1. Copy the second root node to the first root node's child node.

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getNodes();
    -treeObj.copyNode(nodes[0], nodes[1], "inner");
    -
    -

    2. Copy the second root node to the first root node's previous sibling node.

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getNodes();
    -treeObj.copyNode(nodes[0], nodes[1], "before");
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.destroy.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.destroy.html deleted file mode 100644 index 80c52811..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.destroy.html +++ /dev/null @@ -1,25 +0,0 @@ -
    -
    -

    Function(treeId)zTreeObj.destroy

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    From zTree v3.4, zTree support the method for destruction.

    -

    1. This method can destroy the zTreeObj's zTree.

    -

    2. If you want to destory all of the zTrees, you can use the '$.fn.zTree.destroy()' method.

    -

    3. If you want to use the tree which has been destroyed, you must use the 'init()' method at first.

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    Return none

    -

    no return value

    -
    -

    Examples of function

    -

    1. destroy the zTree which its id is 'treeDemo'

    -
    var zTreeObj = $.fn.zTree.getZTreeObj("treeDemo");
    -zTreeObj.destroy();
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.editName.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.editName.html deleted file mode 100644 index f8df2643..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.editName.html +++ /dev/null @@ -1,29 +0,0 @@ -
    -
    -

    Function(treeNode)zTreeObj.editName

    -

    Overview[ depends on jquery.ztree.exedit js ]

    -
    -

    -
    -

    Start editing the node's name.

    -

    1. If need to cancel editing the node's name, please use cancelEditName(newName) method.

    -

    2. This method can be used to set the editing node‘s input box to get focus.

    -

    3. Please use zTree object to executing the method.

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    treeNodeJSON

    -

    JSON data object of the node to be editing name

    -

    Please ensure that this data object is an internal node data object in zTree.

    -

    Retrun none

    -

    no return value

    -
    -

    Examples of function

    -

    1. Start editing the first selected node's name.

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getNodes();
    -treeObj.editName(nodes[0]);
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.expandAll.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.expandAll.html deleted file mode 100644 index ef28a316..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.expandAll.html +++ /dev/null @@ -1,30 +0,0 @@ -
    -
    -

    Function(expandFlag)zTreeObj.expandAll

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Expand or collapse all nodes.

    -

    This method does not trigger 'beforeExpand / onExpand' or 'beforeCollapse / onCollapse' callback function.

    -

    Please use zTree object to executing the method.

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    expandFlagBoolean

    -

    expandFlag = true means: expand all nodes.

    -

    expandFlag = false means: collapse all nodes.

    -

    Return Boolean

    -

    return the result of expand or collapse.

    -

    true means: expand all nodes

    -

    false means: collapse all nodes

    -

    null means: have no parent node to expand or collapse.

    -
    -

    Examples of function

    -

    1. Expand all nodes

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -treeObj.expandAll(true);
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.expandNode.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.expandNode.html deleted file mode 100644 index 01e7442a..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.expandNode.html +++ /dev/null @@ -1,50 +0,0 @@ -
    -
    -

    Function(treeNode, expandFlag, sonSign, focus, callbackFlag)zTreeObj.expandNode

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Expand or collapse single node.

    -

    Use expandNode() method of zTree v3.x can trigger 'beforeExpand / onExpand' or 'beforeCollapse / onCollapse' callback function. for reduce redundant code.

    -

    Please use zTree object to executing the method.

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    treeNodeJSON

    -

    JSON data object of the node to be expanded or collapsed

    -

    Please ensure that this data object is an internal node data object in zTree.

    -

    expandFlagBoolean

    -

    expandFlag = true means: expand the node.

    -

    expandFlag = false means: collapse the node.

    -

    If this parameter is omitted, then toggle expand or collapse depend this node's expanded state.

    -

    sonSignBoolean

    -

    sonSign = true means: expand or collapse all of the child nodes depend the 'expandFlag' parameter.

    -

    sonSign = false means: only expand or collapse this node.

    -

    When sonSign = false and treeNode.open = expandFlag, will not trigger the callback.

    -

    If this parameter is omitted, it is same as 'sonSign = false'.

    -

    focusBoolean

    -

    focus = true means: after expand or collapse, set the focus of this node for view.

    -

    focus = false means: after expand or coolapse, don't set the focus of this node.

    -

    If this parameter is omitted, it is same as 'focus = true'.

    -

    callbackFlagBoolean

    -

    callbackFlag = true means: call this method, will trigger 'beforeExpand / onExpand' or 'beforeCollapse / onCollapse' callback.

    -

    callbackFlag = false means: call this method, will not trigger callback.

    -

    If this parameter is omitted, it is same as 'callbackFlag = false'

    -

    Return Boolean

    -

    return the result of expand or collapse.

    -

    true means: expand node

    -

    false means: collapse node

    -

    null means: the node is not parent node.

    -
    -

    Examples of function

    -

    1. Expand the first selected node. (and expand this node's child nodes)

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getSelectedNodes();
    -if (nodes.length>0) {
    -	treeObj.expandNode(nodes[0], true, true, true);
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getChangeCheckedNodes.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getChangeCheckedNodes.html deleted file mode 100644 index d0f9cf3b..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getChangeCheckedNodes.html +++ /dev/null @@ -1,24 +0,0 @@ -
    -
    -

    Function()zTreeObj.getChangeCheckedNodes

    -

    Overview[ depends on jquery.ztree.excheck js ]

    -
    -

    -
    -

    Get the collection of nodes which be changed checked status. (Compared with the original data checkedOld) It is valid when [setting.check.enable = true]

    -

    Please use zTree object to executing the method.

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    Return Array(JSON)

    -

    return the collection of nodes which be changed checked status (Array)

    -

    If you need to get the collection of nodes which changed the checked status, when nodes be checked or unchecked, so please set treeNode.checkedOld = treeNode.checked ( for all of the be changed checked status nodes ).

    -
    -

    Examples of function

    -

    1. Get the collection of nodes which be changed checked status

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getChangeCheckedNodes();
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getCheckedNodes.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getCheckedNodes.html deleted file mode 100644 index 9e59b21c..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getCheckedNodes.html +++ /dev/null @@ -1,28 +0,0 @@ -
    -
    -

    Function(checked)zTreeObj.getCheckedNodes

    -

    Overview[ depends on jquery.ztree.excheck js ]

    -
    -

    -
    -

    Get the collection of nodes which be checked or unchecked. It is valid when [setting.check.enable = true]

    -

    Please use zTree object to executing the method.

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    checkedBoolean

    -

    checked = true means: get the collection of nodes which be checked

    -

    checked = false means: get the collection of nodes which be unchecked

    -

    If this parameter is omitted, it is same as 'checked = true'

    -

    Don't get the nodes which 'nocheck' attribute is true.

    -

    Return Array(JSON)

    -

    return the collection of nodes which be checked or unchecked. (Array)

    -
    -

    Examples of function

    -

    1. Get the collection of nodes which be checked.

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getCheckedNodes(true);
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getNodeByParam.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getNodeByParam.html deleted file mode 100644 index 05572e73..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getNodeByParam.html +++ /dev/null @@ -1,32 +0,0 @@ -
    -
    -

    Function(key, value, parentNode)zTreeObj.getNodeByParam

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    According to the node data attribute, search the node which exactly matches, and get the JSON object of node.

    -

    Please use zTree object to executing the method.

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    keyString

    -

    The name of attribute which need to exactly match

    -

    value?

    -

    The value which need to exactly match, can be any type, please ensure its type consistent with the attribute values.

    -

    parentNodeJSON

    -

    The search range, you can search node from a parent node's child nodes.

    -

    If this parameter is omitted, zTree will search node from all nodes.

    -

    Return JSON

    -

    JSON data object of the node which be searched.

    -

    1. If search none node, return null.

    -

    2. If there are many nodes can be searched, return the first node.

    -
    -

    Examples of function

    -

    1. Search the node which its 'id' attribute is 1.

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var node = treeObj.getNodeByParam("id", 1, null);
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getNodeByTId.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getNodeByTId.html deleted file mode 100644 index 8fd26ea0..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getNodeByTId.html +++ /dev/null @@ -1,27 +0,0 @@ -
    -
    -

    Function(tId)zTreeObj.getNodeByTId

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    According the unique identifier tId of zTree, quick get the node's JSON data object.

    -

    Get the node from the cache, don't need to search from all nodes.

    -

    Please use zTree object to executing the method.

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    tIdString

    -

    The unique identifier of node.

    -

    Return JSON

    -

    JSON data object of the node which be searched.

    -

    If no result, return null.

    -
    -

    Examples of function

    -

    1. 1. Search the node which its 'tId' attribute is 'tree_10'

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var node = treeObj.getNodeByTId("tree_10");
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getNodeIndex.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getNodeIndex.html deleted file mode 100644 index ad828e7a..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getNodeIndex.html +++ /dev/null @@ -1,30 +0,0 @@ -
    -
    -

    Function(treeNode)zTreeObj.getNodeIndex

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Get the node's index in the same level nodes. (start from 0)

    -

    Please use zTree object to executing the method.

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    treeNodeJSON

    -

    JSON data object of the node which need to get index.

    -

    Please ensure that this data object is an internal node data object in zTree.

    -

    Return Number

    -

    return the index. (start from 0)

    -

    If there is no this node, return -1.

    -
    -

    Examples of function

    -

    1. Get the first selected node's index in the same level nodes.

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getSelectedNodes();
    -if (nodes.length>0) {
    -	var index = treeObj.getNodeIndex(nodes[0]);
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getNodes.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getNodes.html deleted file mode 100644 index 5906a434..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getNodes.html +++ /dev/null @@ -1,26 +0,0 @@ -
    -
    -

    Function()zTreeObj.getNodes

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Get all of the nodes in zTree

    -

    Please use zTree object to executing the method.

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    Return Array(JSON)

    -

    return all of the nodes

    -

    1. This array is a collection of the root nodes (the default child nodes are in the 'children' attributes);

    -

    2. Traverse all the nodes need to use recursion, or the use of transformToArray() method make the nodes to be a simple array.

    -

    3. For the asynchronous loading mode, can't get the nodes which are yet loaded.

    -
    -

    Examples of function

    -

    1. Get all of the nodes

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getNodes();
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getNodesByFilter.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getNodesByFilter.html deleted file mode 100644 index 2cd6baa8..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getNodesByFilter.html +++ /dev/null @@ -1,43 +0,0 @@ -
    -
    -

    Function(filter, isSingle, parentNode, invokeParam)zTreeObj.getNodesByFilter

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Search the single node's data or collection of nodes's data by custom rules.

    -

    Can be customized complex search rules.

    -

    Please use zTree object to executing the method.

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    filterFunction

    -

    Custom search function. e.g. function filter(node) {...}

    -

    filter's parameter: node (node's data -- JSON)

    -

    filter's return: boolean (true means: match the rules; false means: don't match the rules)

    -

    isSingleBoolean

    -

    isSingle = true means: search only one node

    -

    isSingle = false means: search the array of the nodes

    -

    If this parameter is omitted, as same as false

    -

    parentNodeJSON

    -

    The search range, you can search node from a parent node's child nodes.

    -

    If this parameter is omitted, zTree will search node from all nodes.

    -

    invokeParamanything

    -

    Custom data object by user, used to calculate in the filter function.

    -

    Return Array(JSON) / JSON

    -

    If isSingle = true, will return the first node's data (JSON) what be matched. If no match, return null.

    -

    If isSingle = false, will return the array of all nodes's data what be matched. if no match, return [ ].

    -
    -

    Examples of function

    -

    1. Search the nodes which their 'name' contains 'test' and 'level' is 2.

    -
    function filter(node) {
    -    return (node.level == 2 && node.name.indexOf("test")>-1);
    -}
    -......
    -var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var node = treeObj.getNodesByFilter(filter, true); // search only one node
    -var nodes = treeObj.getNodesByFilter(filter); // search the array of the nodes
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getNodesByParam.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getNodesByParam.html deleted file mode 100644 index 3173af47..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getNodesByParam.html +++ /dev/null @@ -1,31 +0,0 @@ -
    -
    -

    Function(key, value, parentNode)zTreeObj.getNodesByParam

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    According to the node data attribute, search the nodes which exactly matches, and get the JSON objects collection of nodes.

    -

    Please use zTree object to executing the method.

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    keyString

    -

    The name of attribute which need to exactly match

    -

    value?

    -

    The value which need to exactly match, can be any type, please ensure its type consistent with the attribute values.

    -

    parentNodeJSON

    -

    The search range, you can search node from a parent node's child nodes.

    -

    If this parameter is omitted, zTree will search node from all nodes.

    -

    Return Array(JSON)

    -

    The JSON data objects collection of the nodes which be searched.

    -

    If search none node, return [ ].

    -
    -

    Examples of function

    -

    1. Search the nodes which their 'name' attribute is 'test'.

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getNodesByParam("name", "test", null);
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getNodesByParamFuzzy.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getNodesByParamFuzzy.html deleted file mode 100644 index 14b6c294..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getNodesByParamFuzzy.html +++ /dev/null @@ -1,32 +0,0 @@ -
    -
    -

    Function(key, value, parentNode)zTreeObj.getNodesByParamFuzzy

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    According to the node data attribute, search the nodes which fuzzy matches, and get the JSON objects collection of nodes.

    -

    Please use zTree object to executing the method.

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    keyString

    -

    The name of attribute which need to fuzzy match

    -

    valueString

    -

    The value which need to fuzzy match.

    -

    The type of value can only be String

    -

    parentNodeJSON

    -

    The search range, you can search node from a parent node's child nodes.

    -

    If this parameter is omitted, zTree will search node from all nodes.

    -

    Return Array(JSON)

    -

    The JSON data objects collection of the nodes which be searched.

    -

    If search none node, return [ ].

    -
    -

    Examples of function

    -

    1. Search the nodes which their 'name' attribute contains the string 'test'.

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getNodesByParamFuzzy("name", "test", null);
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getSelectedNodes.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getSelectedNodes.html deleted file mode 100644 index 4a0f0608..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getSelectedNodes.html +++ /dev/null @@ -1,23 +0,0 @@ -
    -
    -

    Function()zTreeObj.getSelectedNodes

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Get the JSON data objects collection of the selected nodes in zTree.

    -

    Please use zTree object to executing the method.

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    Return Array(JSON)

    -

    The JSON data objects collection of the selected nodes.

    -
    -

    Examples of function

    -

    1. get the selected nodes

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getSelectedNodes();
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.hideNode.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.hideNode.html deleted file mode 100644 index 8ddb6843..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.hideNode.html +++ /dev/null @@ -1,29 +0,0 @@ -
    -
    -

    Function(treeNode)zTreeObj.hideNode

    -

    Overview[ depends on jquery.ztree.exhide js ]

    -
    -

    -
    -

    To hide any node.

    -

    1. This feature can't support the 'exedit' feature, so please don't use this feature in edit mode.

    -

    2. If you hide or show the nodes, it will effect the 'isFirstNode' and 'isLastNode' attribute.

    -

    3. Please use zTree object to executing the method.

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    treeNodeJSON

    -

    JSON data object of the node to be hidden

    -

    Please ensure that this data object is an internal node data object in zTree.

    -

    Retrun none

    -

    no return value

    -
    -

    Examples of function

    -

    1. hide the first root node.

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getNodes();
    -treeObj.hideNode(nodes[0]);
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.hideNodes.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.hideNodes.html deleted file mode 100644 index 9bf8e6b5..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.hideNodes.html +++ /dev/null @@ -1,29 +0,0 @@ -
    -
    -

    Function(treeNodes)zTreeObj.hideNodes

    -

    Overview[ depends on jquery.ztree.exhide js ]

    -
    -

    -
    -

    To hide a group of nodes.

    -

    1. This feature can't support the 'exedit' feature, so please don't use this feature in edit mode.

    -

    2. If you hide or show the nodes, it will effect the 'isFirstNode' and 'isLastNode' attribute.

    -

    3. Please use zTree object to executing the method.

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    treeNodesArray(JSON)

    -

    the array of the nodes which will be hidden

    -

    Please ensure that this data object is an internal node data object in zTree.

    -

    Retrun none

    -

    no return value

    -
    -

    Examples of function

    -

    1. hide the first root node's children.

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getNodes();
    -treeObj.hideNodes(nodes[0].children);
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.moveNode.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.moveNode.html deleted file mode 100644 index 1f3b88c3..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.moveNode.html +++ /dev/null @@ -1,49 +0,0 @@ -
    -
    -

    Function(targetNode, treeNode, moveType, isSilent)zTreeObj.moveNode

    -

    Overview[ depends on jquery.ztree.exedit js ]

    -
    -

    -
    -

    Move the node

    -

    Please use zTree object to executing the method.

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    targetNodeJSON

    -

    JSON data object of the node to be target.

    -

    If move the node to root node, please set the 'targetNode' to null.

    -

    Please ensure that this data object is an internal node data object in zTree.

    -

    treeNodeJSON

    -

    JSON data object of the node to be moved.

    -

    Please ensure that this data object is an internal node data object in zTree.

    -

    moveTypeString

    -

    Moved to the target node's relative position.

    -

    "inner" means: to be taregetNode's child node.

    -

    "prev" means: to be taregetNode's previous sibling node.

    -

    "next" means: to be taregetNode's next sibling node.

    -

    isSilentBoolean

    -

    After move the node, whether to automatically expand its parent node.

    -

    isSilent = true means: don't expand its parent node.

    -

    isSilent = false or omit this parameter means: expand its parent node.

    -

    Return JSON

    -

    return the node which be moved, it is same as the 'treeNode' parameter.

    -

    Return null means: move node has failed. The cause:
    -  1. the targetNode is the treeNode's parent node, and moveType = "inner"
    -  2. the targetNode is the treeNode's child node. -

    -
    -

    Examples of function

    -

    1. Move the second root node to the first root node's child node.

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getNodes();
    -treeObj.moveNode(nodes[0], nodes[1], "inner");
    -
    -

    2. Move the second root node to the first root node's previous sibling node.

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getNodes();
    -treeObj.moveNode(nodes[0], nodes[1], "prev");
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.reAsyncChildNodes.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.reAsyncChildNodes.html deleted file mode 100644 index 9b9a9304..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.reAsyncChildNodes.html +++ /dev/null @@ -1,48 +0,0 @@ -
    -
    -

    Function(parentNode, reloadType, isSilent, callback)zTreeObj.reAsyncChildNodes -

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Forced asynchronous loading child nodes of parent node. It is valid when [setting.async.enable = true] -

    -

    You can use this method to reload child nodes.

    -

    Please use zTree object to executing the method.

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    parentNodeJSON

    -

    The parent node which will asynchronous loading child nodes.

    -

    1. If parentNode = null, it is same as reload root nodes.

    -

    2. If parentNode.isParent = false, don't load nodes.

    -

    3. Please ensure that this data object is an internal node data object in - zTree.

    -

    reloadTypeString

    -

    reloadType = "refresh" means: reload child nodes.

    -

    reloadType != "refresh" means: append to load child nodes.

    -

    isSilentBoolean

    -

    Set whether to automatically expand the parent node, after load nodes.

    -

    isSilent = true means: don't auto expand the parent node. Otherwise auto expand.

    -

    callbackfunction

    -

    zTree will trigger this callback() function after reAsyncChildNodes()

    -

    Return none

    -

    no return value

    -
    -

    Examples of function

    -

    1. reload root nodes

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -treeObj.reAsyncChildNodes(null, "refresh");
    -
    -

    2. reload the first selected node's child nodes.

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getSelectedNodes();
    -if (nodes.length>0) {
    -	treeObj.reAsyncChildNodes(nodes[0], "refresh");
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.reAsyncChildNodesPromise.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.reAsyncChildNodesPromise.html deleted file mode 100644 index 599e2af0..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.reAsyncChildNodesPromise.html +++ /dev/null @@ -1,47 +0,0 @@ -
    -
    -

    Function(parentNode, reloadType, isSilent)zTreeObj.reAsyncChildNodesPromise -

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Forced asynchronous loading child nodes of parent node ( for ES6 Promise ). It is valid when [setting.async.enable = true] -

    -

    You can use this method to reload child nodes.

    -

    Please use zTree object to executing the method.

    -

    v3.5.29+

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    parentNodeJSON

    -

    The parent node which will asynchronous loading child nodes.

    -

    1. If parentNode = null, it is same as reload root nodes.

    -

    2. If parentNode.isParent = false, don't load nodes.

    -

    3. Please ensure that this data object is an internal node data object in - zTree.

    -

    reloadTypeString

    -

    reloadType = "refresh" means: reload child nodes.

    -

    reloadType != "refresh" means: append to load child nodes.

    -

    isSilentBoolean

    -

    Set whether to automatically expand the parent node, after load nodes.

    -

    isSilent = true means: don't auto expand the parent node. Otherwise auto expand.

    -

    Return ES6 Promise

    -

    Promise Object of ES6

    -
    -

    Examples of function

    -

    1. reload root nodes

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -treeObj.reAsyncChildNodes(null, "refresh");
    -
    -

    2. reload the first selected node's child nodes.

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getSelectedNodes();
    -if (nodes.length>0) {
    -	treeObj.reAsyncChildNodes(nodes[0], "refresh");
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.refresh.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.refresh.html deleted file mode 100644 index 8316192c..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.refresh.html +++ /dev/null @@ -1,24 +0,0 @@ -
    -
    -

    Function()zTreeObj.refresh

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Refresh zTree

    -

    If you have no special need, try not to use this method. If you refresh single node, please use updateNode() method. If you refresh child nodes in dynamic mode, please use the reAsyncChildNodes() method.

    -

    Please use zTree object to executing the method.

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    Return none

    -

    no return value

    -
    -

    Examples of function

    -

    1. refresh zTree

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -treeObj.refresh();
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.removeChildNodes.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.removeChildNodes.html deleted file mode 100644 index c249e175..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.removeChildNodes.html +++ /dev/null @@ -1,32 +0,0 @@ -
    -
    -

    Function(parentNode)zTreeObj.removeChildNodes

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Remove a parent node's child nodes

    -

    1. After remove child nodes, the parent node will become a leaf node. Such as the need to maintain the parent node is still a parent node, set 'setting.data.keep.parent' attribute.

    -

    2. Do not use this method to empty the root. If you need to empty the root, you can initialization zTree, and set the initial nodes is null.

    -

    3. This method does not trigger any callback function.

    -

    Please use zTree object to executing the method.

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    parentNodeJSON

    -

    The parent node which need to clear its child nodes.

    -

    Please ensure that this data object is an internal node data object in zTree.

    -

    Return Array(JSON)

    -

    Return the parent node's child nodes which have been removed. If has no child nodes, return null.

    -
    -

    Examples of function

    -

    1. Remove the first selected node's child nodes

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getSelectedNodes();
    -if (nodes && nodes.length>0) {
    -	treeObj.removeChildNodes(nodes[0]);
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.removeNode.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.removeNode.html deleted file mode 100644 index 67ad7e23..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.removeNode.html +++ /dev/null @@ -1,34 +0,0 @@ -
    -
    -

    Function(treeNode, callbackFlag)zTreeObj.removeNode

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Remove a node

    -

    Use removeNode() method of zTree v3.x can trigger 'beforeRemove / onRemove' callback function. for reduce redundant code.

    -

    Please use zTree object to executing the method.

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    treeNodeJSON

    -

    JSON data object of the node to be removed.

    -

    Please ensure that this data object is an internal node data object in zTree.

    -

    callbackFlagBoolean

    -

    callbackFlag = true means: call this method, will trigger 'beforeRemove' & 'onRemove' callback.

    -

    callbackFlag = false means: call this method, will not trigger callback.

    -

    If this parameter is omitted, it is same as 'callbackFlag = false'

    -

    Return none

    -

    no return value

    -
    -

    Examples of function

    -

    1. Remove all of the selected nodes.

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getSelectedNodes();
    -for (var i=0, l=nodes.length; i < l; i++) {
    -	treeObj.removeNode(nodes[i]);
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.selectNode.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.selectNode.html deleted file mode 100644 index 45c4c10a..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.selectNode.html +++ /dev/null @@ -1,37 +0,0 @@ -
    -
    -

    Function(treeNode, addFlag, isSilent)zTreeObj.selectNode

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Select a node

    -

    zTree v3.x supports select multiple nodes.

    -

    Please use zTree object to executing the method.

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    treeNodeJSON

    -

    JSON data object of the node to be selected.

    -

    Please ensure that this data object is an internal node data object in zTree.

    -

    addFlagBoolean

    -

    addFlag = true means: append to select node, don't affect the previously selected node, can select multiple nodes.

    -

    addFlag = false (default) means: select single node, prior the selected node is deselected.

    -

    If setting.view.selectedMulti = false, this para, this parameter is not valid, always select single node

    -

    isSilent = true means: when you select node, zTree will not scroll the node into view.

    -

    isSilent = false (default) means: when you select node, zTree will scroll the node into view.

    -

    (v3.5.23+)

    -

    Return none

    -

    no return value

    -
    -

    Exampleso of function

    -

    1. Select single node which be first selected.

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getNodes();
    -if (nodes.length>0) {
    -	treeObj.selectNode(nodes[0]);
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.setChkDisabled.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.setChkDisabled.html deleted file mode 100644 index 30b5342d..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.setChkDisabled.html +++ /dev/null @@ -1,44 +0,0 @@ -
    -
    -

    Function(node, disabled, inheritParent, inheritChildren)zTreeObj.setChkDisabled

    -

    Overview[ depends on jquery.ztree.excheck js ]

    -
    -

    -
    -

    Set the node's checkbox or radio is disabled or remove disabled. It is valid when [setting.check.enable = true]

    -

    1. After the node's checkbox / radio is disabled, it can not be checked or unchecked, but it can affect the half-checked status of the parent node.

    -

    2. Please do not directly modify the 'chkDisabled' attribute of the loaded node.

    -

    3. Please use zTree object to executing the method.

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    treeNodeJSON

    -

    JSON data object of the node which need to be checked or unchecked.

    -

    Please ensure that this data object is an internal node data object in zTree.

    -

    disabledBoolean

    -

    disabled = true means: the node's checkbox / radio is disabled.

    -

    disabled = false means: the node's checkbox / radio is removed disabled.

    -

    If this parameter is omitted, it is same as disabled = false

    -

    Don't affect the node which 'nocheck' attribute is true.

    -

    inheritParentBoolean

    -

    inheritParent = true means: all parent nodes's disabled status will be same as this node.

    -

    inheritParent = false means: all parent nodes's disabled status will be not affected.

    -

    If this parameter is omitted, it is same as 'inheritParent = false'

    -

    inheritChildrenBoolean

    -

    inheritChildren = true means: all child nodes's disabled status will be same as this node.

    -

    inheritChildren = false means: all child nodes's disabled status will be not affected.

    -

    If this parameter is omitted, it is same as 'inheritChildren = false'

    -

    Return none

    -

    no return value

    -
    -

    Examples of function

    -

    1. Set the selected nodes's checkbox / radio to disable.

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getSelectedNodes();
    -for (var i=0, l=nodes.length; i < l; i++) {
    -	treeObj.setChkDisabled(nodes[i], true);
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.setEditable.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.setEditable.html deleted file mode 100644 index a44b0ff6..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.setEditable.html +++ /dev/null @@ -1,27 +0,0 @@ -
    -
    -

    Function(editable)zTreeObj.setEditable

    -

    Overview[ depends on jquery.ztree.exedit js ]

    -
    -

    -
    -

    Edit mode and normal mode switch.

    -

    To use edit mode, please set the attributes in 'setting.edit'

    -

    Please use zTree object to executing the method.

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    editableBoolean

    -

    true means: set zTree to edit mode.

    -

    false means: set zTree to normal mode.

    -

    Return none

    -

    no return value

    -
    -

    Examples of function

    -

    1. set zTree to edit mode

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -treeObj.setEditable(true);
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.setting.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.setting.html deleted file mode 100644 index d80c139a..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.setting.html +++ /dev/null @@ -1,14 +0,0 @@ -
    -
    -

    JSONzTreeObj.setting

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    The configuration data of zTree, refer to "setting details"

    -

    zTree v3.x to cancel the original operation setting method, so users can modify.

    -

    Note: Modify the parameters which affect zTree initialization will not work, please first understand the different attributes.

    -
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.showNode.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.showNode.html deleted file mode 100644 index 08b2a068..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.showNode.html +++ /dev/null @@ -1,31 +0,0 @@ -
    -
    -

    Function(treeNode)zTreeObj.showNode

    -

    Overview[ depends on jquery.ztree.exhide js ]

    -
    -

    -
    -

    To hide any node which be hidden.

    -

    1. This feature can't support the 'exedit' feature, so please don't use this feature in edit mode.

    -

    2. If you hide or show the nodes, it will effect the 'isFirstNode' and 'isLastNode' attribute.

    -

    3. Please use zTree object to executing the method.

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    treeNodesArray(JSON)

    -

    JSON data object of the node to be shown

    -

    Please ensure that this data object is an internal node data object in zTree.

    -

    Retrun none

    -

    no return value

    -
    -

    Examples of function

    -

    1. show someone node which be hidden.

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var node = treeObj.getNodeByParam("isHidden", true);
    -if (node) {
    -  treeObj.showNode(node);
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.showNodes.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.showNodes.html deleted file mode 100644 index c0c926c3..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.showNodes.html +++ /dev/null @@ -1,29 +0,0 @@ -
    -
    -

    Function(treeNodes)zTreeObj.showNodes

    -

    Overview[ depends on jquery.ztree.exhide js ]

    -
    -

    -
    -

    To show a group of nodes which be hidden.

    -

    1. This feature can't support the 'exedit' feature, so please don't use this feature in edit mode.

    -

    2. If you hide or show the nodes, it will effect the 'isFirstNode' and 'isLastNode' attribute.

    -

    3. Please use zTree object to executing the method.

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    treeNodesArray(JSON)

    -

    the array of the nodes which will be shown

    -

    Please ensure that this data object is an internal node data object in zTree.

    -

    Retrun none

    -

    no return value

    -
    -

    Examples of function

    -

    1. show all of the nodes which be hidden.

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getNodesByParam("isHidden", true);
    -treeObj.showNodes(nodes);
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.transformToArray.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.transformToArray.html deleted file mode 100644 index 4b2296d5..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.transformToArray.html +++ /dev/null @@ -1,27 +0,0 @@ -
    -
    -

    Function(treeNodes)zTreeObj.transformToArray

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    -

    Transform the zTree nodes data into simple array. (To avoid the user to write code to traverse all nodes)

    -

    Please use zTree object to executing the method.

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    treeNodesArray(JSON) / JSON

    -

    JSON data object of the node which need to be transformed.

    -

    or JSON data objects collection of the nodes which need to be transformed.

    -

    Return Array(JSON)

    -

    The JSON data objects array of the nodes which be transformed.

    -
    -

    Examples of function

    -

    1. Transform the zTree nodes data into simple array.

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.transformToArray(treeObj.getNodes());
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.transformTozTreeNodes.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.transformTozTreeNodes.html deleted file mode 100644 index 70150165..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.transformTozTreeNodes.html +++ /dev/null @@ -1,44 +0,0 @@ -
    -
    -

    Function(simpleNodes)zTreeObj.transformTozTreeNodes

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Transform the simple array into zTree nodes data.

    -

    If you use this method, you must set 'setting.data.simpleData.idKey' and 'setting.data.simpleData.pIdKey' attribute, and let the data are consistent with parent-child relationship.

    -

    Please use zTree object to executing the method.

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    simpleNodesArray(JSON) / JSON

    -

    JSON data object of the node which need to be transformed.

    -

    or JSON data objects array of the nodes which need to be transformed.

    -

    Return Array(JSON)

    -

    Standard data which zTree use. The child nodes are stored in the parent node's 'children' attribute.

    -

    If simpleNodes is a single JSON, so the return array's length is 1.

    -
    -

    Examples of function

    -

    1. Transform the simple array data into zTree nodes format.

    -
    var setting = {
    -	data: {
    -		simpleData: {
    -			enable: true,
    -			idKey: "id",
    -			pIdKey: "pId",
    -			rootPId: 0
    -		}
    -	}
    -};
    -var simpleNodes = [
    -    {"id":1, "pId":0, "name":"test1"},
    -    {"id":11, "pId":1, "name":"test11"},
    -    {"id":12, "pId":1, "name":"test12"},
    -    {"id":111, "pId":11, "name":"test111"}
    -];
    -var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.transformTozTreeNodes(simpleNodes);
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.updateNode.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.updateNode.html deleted file mode 100644 index a914b120..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.updateNode.html +++ /dev/null @@ -1,37 +0,0 @@ -
    -
    -

    Function(treeNode, checkTypeFlag)zTreeObj.updateNode

    -

    Overview[ depends on jquery.ztree.core js ]

    -
    -

    -
    -

    Update node data. Primarily used to update the node's DOM.

    -

    1. Can update the attributes for display (e.g. 'name', 'target', 'url', 'icon', 'iconSkin', 'checked', 'nocheck'), do not update the other attributes. For example: If you need to expand the node, please use expandNode() method, do not modify the 'open' attribute.

    -

    2. Use updateNode() method of zTree can't trigger 'beforeCheck' or 'onCheck' callback function.

    -

    Please use zTree object to executing the method.

    -
    -
    -

    Function Parameter Descriptions

    -
    -

    treeNodeJSON

    -

    JSON data object of the node which need to update.

    -

    Please ensure that this data object is an internal node data object in zTree.

    -

    checkTypeFlagBoolean

    -

    checkTypeFlag = true means: According to 'setting.check.chkboxType' attribute automatically check or uncheck the parent and child nodes.

    -

    checkTypeFlag = false means: only check or uncheck this node, don't affect its parent and child nodes.

    -

    This parameter is valid when 'setting.check.enable = true' and 'setting.check.chkStyle = "checkbox"'

    -

    Don't affect the parent and child nodes which 'nocheck' attribute is true.

    -

    Return none

    -

    no return value

    -
    -

    Examples of function

    -

    1. Modify the first selected node's name, and update it.

    -
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    -var nodes = treeObj.getNodes();
    -if (nodes.length>0) {
    -	nodes[0].name = "test";
    -	treeObj.updateNode(nodes[0]);
    -}
    -
    -
    -
    \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/awesomeStyle/awesome.css b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/awesomeStyle/awesome.css deleted file mode 100644 index c1fcf3a2..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/awesomeStyle/awesome.css +++ /dev/null @@ -1,386 +0,0 @@ -/*------------------------------------- -zTree Style using fontawesome instead of images - -version: 1.1 -author: Mike King -email: mikkelking @ hotmail . com -website: http://code.google.com/p/jquerytree/ - --------------------------------------*/ -/* Definitions ----------------------*/ -/* End of Definitions ---------------*/ -/* Imports -------------------------*/ -/* End of Imports ------------------*/ -.ztree * { - padding: 0; - margin: 0; - font-size: 12px; - font-family: Verdana, Arial, Helvetica, AppleGothic, sans-serif; - background-color: #af0000; -} -.ztree { - margin: 0; - padding: 5px; - color: #ffffff; - background-color: #af0000; -} -.ztree li { - padding: 0; - margin: 0; - list-style: none; - line-height: 17px; - text-align: left; - white-space: nowrap; - outline: 0; -} -.ztree li ul { - margin: 0px; - padding: 0 0 0 18px; -} -.ztree li a { - padding-right: 3px; - margin: 0; - cursor: pointer; - height: 17px; - color: #ffffff; - background-color: transparent; - text-decoration: none; - vertical-align: top; - display: inline-block; -} -.ztree li a input.rename { - height: 14px; - width: 80px; - padding: 0; - margin: 0; - color: #af0000; - background-color: #ffffff; - font-size: 12px; - border: 1px #585956 solid; - *border: 0px; -} -.ztree li a:hover { - text-decoration: underline; -} -.ztree li a.curSelectedNode { - padding-top: 0px; - background-color: #af4040; - color: #ffff00; - height: 17px; - opacity: 0.8; -} -.ztree li a.curSelectedNode_Edit { - padding-top: 0px; - background-color: transparent; - color: #ffff00; - height: 17px; - border: 1px #666 solid; - opacity: 0.8; -} -.ztree li a.tmpTargetNode_inner { - padding-top: 0px; - background-color: #aaa; - color: #ffff00; - height: 17px; - border: 1px #666 solid; - opacity: 0.8; - filter: alpha(opacity=80); -} -.ztree li span { - line-height: 17px; - margin-right: 2px; - background-color: transparent; -} -.ztree li span.button { - line-height: 0; - margin: 0; - padding: 0; - width: 15px; - height: 17px; - display: inline-block; - vertical-align: top; - border: 0px solid; - cursor: pointer; - outline: none; - background-color: transparent; - background-repeat: no-repeat; - background-attachment: scroll; -} -.ztree li span.button::before { - color: #ffffff; - font-family: FontAwesome; - padding-top: 10px; -} -.ztree li span.button.chk { - margin: 0px; - cursor: auto; - width: 12px; - display: inline-block; - padding-top: 10px; - padding-left: 2px; -} -.ztree li span.button.chk.checkbox_false_full::before { - content: "\f096"; -} -.ztree li span.button.chk.checkbox_false_full_focus::before { - content: "\f096"; - color: #ffff00; -} -.ztree li span.button.chk.checkbox_false_part::before { - content: "\f096"; - color: #aaaaaa; -} -.ztree li span.button.chk.checkbox_false_part_focus::before { - content: "\f096"; - color: #cad96c; -} -.ztree li span.button.chk.checkbox_false_disable::before { - content: "\f096"; - color: #808080; -} -.ztree li span.button.chk.checkbox_true_full::before { - content: "\f046"; -} -.ztree li span.button.chk.checkbox_true_full_focus::before { - content: "\f046"; -} -.ztree li span.button.chk.checkbox_true_part::before { - content: "\f14a"; -} -.ztree li span.button.chk.checkbox_true_part_focus::before { - content: "\f14a"; - color: #ffff00; -} -.ztree li span.button.chk.checkbox_true_full_focus::before { - content: "\f046"; - color: #ffff00; -} -.ztree li span.button.chk.checkbox_true_part::before { - content: "\f046"; - color: #aaaaaa; -} -.ztree li span.button.chk.checkbox_true_part_focus::before { - content: "\f046"; - color: #cad96c; -} -.ztree li span.button.chk.checkbox_true_disable::before { - content: "\f046"; - color: #808080; -} -.ztree li span.button.chk.radio_false_full::before { - content: "\f10c"; -} -.ztree li span.button.chk.radio_false_full_focus::before { - content: "\f10c"; - color: #ffff00; -} -.ztree li span.button.chk.radio_false_part::before { - content: "\f10c"; - color: #aaaaaa; -} -.ztree li span.button.chk.radio_false_part_focus::before { - content: "\f10c"; - color: #ffff00; -} -.ztree li span.button.chk.radio_false_disable::before { - content: "\f1db"; - color: #808080; -} -.ztree li span.button.chk.radio_true_full::before { - content: "\f192"; -} -.ztree li span.button.chk.radio_true_full_focus::before { - content: "\f192"; - color: #ffff00; -} -.ztree li span.button.chk.radio_true_part::before { - content: "\f192"; - color: #aaaaaa; -} -.ztree li span.button.chk.radio_true_part_focus::before { - content: "\f192"; - color: #aaaaaa; -} -.ztree li span.button.chk.radio_true_disable::before { - content: "\f1db"; - color: #808080; -} -.ztree li span.button.switch { - width: 15px; - height: 17px; -} -.ztree li span.button.root_open::before { - content: "\f078"; - padding-top: 10px; - padding-left: 2px; - display: inline-block; -} -.ztree li span.button.root_close::before { - content: "\f115"; - padding-top: 10px; - padding-left: 2px; - display: inline-block; -} -.ztree li span.button.roots_open::before { - content: "\f078"; - padding-top: 10px; - padding-left: 2px; - display: inline-block; -} -.ztree li span.button.roots_close::before { - content: "\f054"; - padding-top: 10px; - padding-left: 2px; - display: inline-block; -} -.ztree li span.button.center_open::before { - content: "\f078"; - padding-top: 10px; - padding-left: 2px; - display: inline-block; -} -.ztree li span.button.center_close::before { - content: "\f054"; - padding-top: 10px; - padding-left: 2px; - display: inline-block; -} -.ztree li span.button.bottom_open::before { - content: "\f078"; - padding-top: 10px; - padding-left: 2px; - display: inline-block; -} -.ztree li span.button.bottom_close::before { - content: "\f054"; - padding-top: 10px; - padding-left: 2px; - display: inline-block; -} -.ztree li span.button.root_docu { - background: none; -} -.ztree li span.button.roots_docu::before { - content: "\f022"; - padding-left: 2px; - display: inline-block; - color: #ffffff; -} -.ztree li span.button.center_docu::before { - padding-top: 10px; - padding-left: 2px; - display: inline-block; - color: #ffffff; -} -.ztree li span.button.bottom_docu::before { - padding-top: 10px; - padding-left: 2px; - display: inline-block; - color: #ffffff; -} -.ztree li span.button.noline_docu { - background: none; -} -.ztree li span.button.ico_open::before { - content: "\f115"; - font-family: FontAwesome; - padding-top: 10px; - padding-left: 2px; - display: inline-block; - color: #ffffff; -} -.ztree li span.button.ico_close::before { - content: "\f114"; - font-family: FontAwesome; - padding-top: 10px; - padding-left: 2px; - display: inline-block; - color: #ffffff; -} -.ztree li span.button.ico_docu::before { - content: "\f022"; - font-family: FontAwesome; - padding-top: 10px; - padding-left: 2px; - display: inline-block; - color: #ffffff; -} -.ztree li span.button.edit { - margin-left: 4px; - margin-right: -1px; - vertical-align: top; - *vertical-align: middle; - padding-top: 10px; -} -.ztree li span.button.edit::before { - content: "\f044"; - font-family: FontAwesome; -} -.ztree li span.button.remove { - margin-left: 4px; - margin-right: -1px; - vertical-align: top; - *vertical-align: middle; - padding-top: 10px; -} -.ztree li span.button.remove::before { - content: "\f1f8"; - font-family: FontAwesome; -} -.ztree li span.button.add { - margin-left: 4px; - margin-right: -1px; - vertical-align: top; - *vertical-align: middle; - padding-top: 10px; -} -.ztree li span.button.add::before { - content: "\f067"; - font-family: FontAwesome; -} -.ztree li span.button.ico_loading { - margin-right: 2px; - background: url(./img/loading.gif) no-repeat scroll 0 0 transparent; - vertical-align: top; - *vertical-align: middle; -} -ul.tmpTargetzTree { - background-color: #FFE6B0; - opacity: 0.8; - filter: alpha(opacity=80); -} -span.tmpzTreeMove_arrow { - width: 16px; - height: 17px; - display: inline-block; - padding: 0; - margin: 2px 0 0 1px; - border: 0 none; - position: absolute; - background-color: transparent; - background-attachment: scroll; -} -span.tmpzTreeMove_arrow::before { - content: "\f04b"; - font-family: FontAwesome; - color: #ffff00; -} -ul.ztree.zTreeDragUL { - margin: 0; - padding: 0; - position: absolute; - width: auto; - height: auto; - overflow: hidden; - background-color: #cfcfcf; - border: 1px #ffff00 dotted; - opacity: 0.8; - filter: alpha(opacity=80); -} -.ztreeMask { - z-index: 10000; - background-color: #cfcfcf; - opacity: 0.0; - filter: alpha(opacity=0); - position: absolute; -} diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/awesomeStyle/awesome.less b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/awesomeStyle/awesome.less deleted file mode 100644 index b282d81b..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/awesomeStyle/awesome.less +++ /dev/null @@ -1,146 +0,0 @@ -/*------------------------------------- -zTree Style using fontawesome instead of images - -version: 1.1 -author: Mike King -email: mikkelking @ hotmail . com -website: http://code.google.com/p/jquerytree/ - --------------------------------------*/ - -/* Definitions ----------------------*/ -@font-size: 12px; -// Regular icon and text color is white, which suits any medium -> dark background -@color-normal: white; -// Background color -@color-bg: #af0000; -// Highlight color -@color-highlight: yellow; -// Partially selected (checkboxes, radio buttons) -@color-partial: #aaaaaa; -// Partially selected and focused (checkboxes, radio buttons) -@color-partfocus: #cad96c; -// Disabled altogether -@color-disabled: #808080; -// Editing color -@color-edit: yellow; -@w: 15px; -@h: 17px; -@pad-left: 2px; -@pad-top: 10px; -/* End of Definitions ---------------*/ - -/* Imports -------------------------*/ -@import "fa.less"; -/* End of Imports ------------------*/ - -.ztree * {padding:0; margin:0; font-size:@font-size; font-family: Verdana, Arial, Helvetica, AppleGothic, sans-serif; background-color: @color-bg;} -.ztree { - margin:0; padding:5px; color:@color-normal; background-color: @color-bg; - li { - padding:0; margin:0; list-style:none; line-height:17px; text-align:left; white-space:nowrap; outline:0; - ul { - margin: 0px; padding:0 0 0 18px; - } - ul.line { } - a {padding-right:3px; margin:0; cursor:pointer; height:@h; color:@color-normal; background-color: transparent; - text-decoration:none; vertical-align:top; display: inline-block; - input.rename {height:14px; width:80px; padding:0; margin:0; - color: @color-bg; background-color: @color-normal; - font-size:@font-size; border:1px #585956 solid; *border:0px} - } - a:hover {text-decoration:underline} - a.curSelectedNode {padding-top:0px; background-color:#af4040; color:@color-highlight; height:@h; opacity:0.8;} - a.curSelectedNode_Edit {padding-top:0px; background-color:transparent; color:@color-highlight; height:@h; border:1px #666 solid; opacity:0.8;} - a.tmpTargetNode_inner {padding-top:0px; background-color:#aaa; color:@color-highlight; height:@h; border:1px #666 solid; - opacity:0.8; filter:alpha(opacity=80)} - a.tmpTargetNode_prev {} - a.tmpTargetNode_next {} - span {line-height:@h; margin-right:2px; background-color:transparent;} - span.button {line-height:0; margin:0; padding: 0; width:@w; height:@h; display: inline-block; vertical-align:top; - border:0px solid; cursor: pointer;outline:none; - background-color:transparent; background-repeat:no-repeat; background-attachment: scroll; - - &::before{color: @color-normal; font-family: FontAwesome; padding-top:@pad-top;} - &.chk { margin:0px; cursor: auto; width: 12px; - display: inline-block;padding-top:@pad-top;padding-left:@pad-left; - - &.checkbox_false_full::before {content: @fa-square-o;} - &.checkbox_false_full_focus::before {content: @fa-square-o; color:@color-highlight;} - &.checkbox_false_part::before {content: @fa-square-o;color: @color-partial;} - &.checkbox_false_part_focus::before {content: @fa-square-o; color:@color-partfocus;} - &.checkbox_false_disable::before {content: @fa-square-o; color:@color-disabled;} - &.checkbox_true_full::before {content: @fa-check-square-o;} - &.checkbox_true_full_focus::before {content: @fa-check-square-o;} - &.checkbox_true_part::before {content: @fa-check-square;} - &.checkbox_true_part_focus::before {content: @fa-check-square; color: @color-highlight} - &.checkbox_true_full_focus::before {content: @fa-check-square-o; color: @color-highlight} - &.checkbox_true_part::before {content: @fa-check-square-o;color: @color-partial} - &.checkbox_true_part_focus::before {content: @fa-check-square-o;color: @color-partfocus;} - &.checkbox_true_disable::before {content: @fa-check-square-o;color: @color-disabled} - - &.radio_false_full::before {content: @fa-circle-o;} - &.radio_false_full_focus::before {content: @fa-circle-o;color: @color-highlight} - &.radio_false_part::before {content: @fa-circle-o;color: @color-partial} - &.radio_false_part_focus::before {content: @fa-circle-o;color: @color-highlight} - &.radio_false_disable::before {content: @fa-circle-thin;color: @color-disabled} - &.radio_true_full::before {content: @fa-dot-circle-o;} - &.radio_true_full_focus::before {content: @fa-dot-circle-o;color: @color-highlight} - &.radio_true_part::before {content: @fa-dot-circle-o;color: @color-partial} - &.radio_true_part_focus::before {content: @fa-dot-circle-o;color: @color-partial;} - &.radio_true_disable::before {content: @fa-circle-thin;color: @color-disabled} - - } - &.switch {width:@w; height:@h} - &.root_open::before{content: @fa-chevron-down;padding-top:@pad-top;padding-left:@pad-left;display: inline-block;} - &.root_close::before{content: @fa-folder-open-o;padding-top:@pad-top;padding-left:@pad-left;display: inline-block;} - &.roots_open::before{content: @fa-chevron-down;padding-top:@pad-top;padding-left:@pad-left;display: inline-block;} - &.roots_close::before{content: @fa-chevron-right;padding-top:@pad-top;padding-left:@pad-left;display: inline-block;} - &.center_open::before{content: @fa-chevron-down;padding-top:@pad-top;padding-left:@pad-left;display: inline-block;} - &.center_close::before{content: @fa-chevron-right;padding-top:@pad-top;padding-left:@pad-left;display: inline-block;} - &.bottom_open::before{content: @fa-chevron-down;padding-top:@pad-top;padding-left:@pad-left;display: inline-block;} - &.bottom_close::before{content: @fa-chevron-right;padding-top:@pad-top;padding-left:@pad-left;display: inline-block;} - &.noline_open{} - &.noline_close{} - &.root_docu{ background:none;} - &.roots_docu::before{content: @fa-list-alt;padding-left:@pad-left;display: inline-block;color:@color-normal;} - &.center_docu::before{padding-top:@pad-top;padding-left:@pad-left;display: inline-block;color:@color-normal;} - &.bottom_docu::before{padding-top:@pad-top;padding-left:@pad-left;display: inline-block;color:@color-normal;} - &.noline_docu{ background:none;} - - &.ico_open::before {content: @fa-folder-open-o;font-family: FontAwesome;padding-top:@pad-top;padding-left:@pad-left;display: inline-block;color:@color-normal;} - &.ico_close::before {content: @fa-folder-o;font-family: FontAwesome;padding-top:@pad-top;padding-left:@pad-left;display: inline-block;color:@color-normal;} - &.ico_docu::before{content: @fa-list-alt;font-family: FontAwesome;padding-top:@pad-top;padding-left:@pad-left;display: inline-block;color:@color-normal;} - - &.edit {margin-left:4px; margin-right: -1px; vertical-align:top; *vertical-align:middle;padding-top:@pad-top;} - &.edit::before{content: @fa-pencil-square-o;font-family: FontAwesome;} - - &.remove {margin-left:4px; margin-right: -1px; vertical-align:top; *vertical-align:middle;padding-top:@pad-top;} - &.remove::before{content: @fa-trash;font-family: FontAwesome;} - - - &.add {margin-left:4px; margin-right: -1px; vertical-align:top; *vertical-align:middle;padding-top:@pad-top;} - &.add::before{content: @fa-plus;font-family: FontAwesome;} - - &.ico_loading{margin-right:2px; background:url(./img/loading.gif) no-repeat scroll 0 0 transparent; vertical-align:top; *vertical-align:middle} - } - - } -} - - -ul.tmpTargetzTree {background-color:#FFE6B0; opacity:0.8; filter:alpha(opacity=80)} - -// this is the arrow that moves -span.tmpzTreeMove_arrow{width:16px; height:@h; display: inline-block; - padding:0; margin:2px 0 0 1px; border:0 none; position:absolute; - background-color:transparent; background-attachment: scroll; - } -span.tmpzTreeMove_arrow::before{content: @fa-play;font-family: FontAwesome;color: @color-highlight; - } -// outline - -ul.ztree.zTreeDragUL {margin:0; padding:0; position:absolute; width:auto; height:auto;overflow:hidden; - background-color:#cfcfcf; border:1px @color-highlight dotted; opacity:0.8; filter:alpha(opacity=80)} -.ztreeMask {z-index:10000; background-color:#cfcfcf; opacity:0.0; filter:alpha(opacity=0); position:absolute} - diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/awesomeStyle/fa.less b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/awesomeStyle/fa.less deleted file mode 100644 index 3714884a..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/awesomeStyle/fa.less +++ /dev/null @@ -1,480 +0,0 @@ -@fa-glass: "\f000"; -@fa-music: "\f001"; -@fa-search: "\f002"; -@fa-envelope-o: "\f003"; -@fa-heart: "\f004"; -@fa-star: "\f005"; -@fa-star-o: "\f006"; -@fa-user: "\f007"; -@fa-film: "\f008"; -@fa-th-large: "\f009"; -@fa-th: "\f00a"; -@fa-th-list: "\f00b"; -@fa-check: "\f00c"; -@fa-times: "\f00d"; -@fa-search-plus: "\f00e"; -@fa-search-minus: "\f010"; -@fa-power-off: "\f011"; -@fa-signal: "\f012"; -@fa-cog: "\f013"; -@fa-trash-o: "\f014"; -@fa-home: "\f015"; -@fa-file-o: "\f016"; -@fa-clock-o: "\f017"; -@fa-road: "\f018"; -@fa-download: "\f019"; -@fa-arrow-circle-o-down: "\f01a"; -@fa-arrow-circle-o-up: "\f01b"; -@fa-inbox: "\f01c"; -@fa-play-circle-o: "\f01d"; -@fa-repeat: "\f01e"; -@fa-refresh: "\f021"; -@fa-list-alt: "\f022"; -@fa-lock: "\f023"; -@fa-flag: "\f024"; -@fa-headphones: "\f025"; -@fa-volume-off: "\f026"; -@fa-volume-down: "\f027"; -@fa-volume-up: "\f028"; -@fa-qrcode: "\f029"; -@fa-barcode: "\f02a"; -@fa-tag: "\f02b"; -@fa-tags: "\f02c"; -@fa-book: "\f02d"; -@fa-bookmark: "\f02e"; -@fa-print: "\f02f"; -@fa-camera: "\f030"; -@fa-font: "\f031"; -@fa-bold: "\f032"; -@fa-italic: "\f033"; -@fa-text-height: "\f034"; -@fa-text-width: "\f035"; -@fa-align-left: "\f036"; -@fa-align-center: "\f037"; -@fa-align-right: "\f038"; -@fa-align-justify: "\f039"; -@fa-list: "\f03a"; -@fa-outdent: "\f03b"; -@fa-indent: "\f03c"; -@fa-video-camera: "\f03d"; -@fa-picture-o: "\f03e"; -@fa-pencil: "\f040"; -@fa-map-marker: "\f041"; -@fa-adjust: "\f042"; -@fa-tint: "\f043"; -@fa-pencil-square-o: "\f044"; -@fa-share-square-o: "\f045"; -@fa-check-square-o: "\f046"; -@fa-arrows: "\f047"; -@fa-step-backward: "\f048"; -@fa-fast-backward: "\f049"; -@fa-backward: "\f04a"; -@fa-play: "\f04b"; -@fa-pause: "\f04c"; -@fa-stop: "\f04d"; -@fa-forward: "\f04e"; -@fa-fast-forward: "\f050"; -@fa-step-forward: "\f051"; -@fa-eject: "\f052"; -@fa-chevron-left: "\f053"; -@fa-chevron-right: "\f054"; -@fa-plus-circle: "\f055"; -@fa-minus-circle: "\f056"; -@fa-times-circle: "\f057"; -@fa-check-circle: "\f058"; -@fa-question-circle: "\f059"; -@fa-info-circle: "\f05a"; -@fa-crosshairs: "\f05b"; -@fa-times-circle-o: "\f05c"; -@fa-check-circle-o: "\f05d"; -@fa-ban: "\f05e"; -@fa-arrow-left: "\f060"; -@fa-arrow-right: "\f061"; -@fa-arrow-up: "\f062"; -@fa-arrow-down: "\f063"; -@fa-share: "\f064"; -@fa-expand: "\f065"; -@fa-compress: "\f066"; -@fa-plus: "\f067"; -@fa-minus: "\f068"; -@fa-asterisk: "\f069"; -@fa-exclamation-circle: "\f06a"; -@fa-gift: "\f06b"; -@fa-leaf: "\f06c"; -@fa-fire: "\f06d"; -@fa-eye: "\f06e"; -@fa-eye-slash: "\f070"; -@fa-exclamation-triangle: "\f071"; -@fa-plane: "\f072"; -@fa-calendar: "\f073"; -@fa-random: "\f074"; -@fa-comment: "\f075"; -@fa-magnet: "\f076"; -@fa-chevron-up: "\f077"; -@fa-chevron-down: "\f078"; -@fa-retweet: "\f079"; -@fa-shopping-cart: "\f07a"; -@fa-folder: "\f07b"; -@fa-folder-open: "\f07c"; -@fa-arrows-v: "\f07d"; -@fa-arrows-h: "\f07e"; -@fa-bar-chart: "\f080"; -@fa-twitter-square: "\f081"; -@fa-facebook-square: "\f082"; -@fa-camera-retro: "\f083"; -@fa-key: "\f084"; -@fa-cogs: "\f085"; -@fa-comments: "\f086"; -@fa-thumbs-o-up: "\f087"; -@fa-thumbs-o-down: "\f088"; -@fa-star-half: "\f089"; -@fa-heart-o: "\f08a"; -@fa-sign-out: "\f08b"; -@fa-linkedin-square: "\f08c"; -@fa-thumb-tack: "\f08d"; -@fa-external-link: "\f08e"; -@fa-sign-in: "\f090"; -@fa-trophy: "\f091"; -@fa-github-square: "\f092"; -@fa-upload: "\f093"; -@fa-lemon-o: "\f094"; -@fa-phone: "\f095"; -@fa-square-o: "\f096"; -@fa-bookmark-o: "\f097"; -@fa-phone-square: "\f098"; -@fa-twitter: "\f099"; -@fa-facebook: "\f09a"; -@fa-github: "\f09b"; -@fa-unlock: "\f09c"; -@fa-credit-card: "\f09d"; -@fa-rss: "\f09e"; -@fa-hdd-o: "\f0a0"; -@fa-bullhorn: "\f0a1"; -@fa-bell: "\f0f3"; -@fa-certificate: "\f0a3"; -@fa-hand-o-right: "\f0a4"; -@fa-hand-o-left: "\f0a5"; -@fa-hand-o-up: "\f0a6"; -@fa-hand-o-down: "\f0a7"; -@fa-arrow-circle-left: "\f0a8"; -@fa-arrow-circle-right: "\f0a9"; -@fa-arrow-circle-up: "\f0aa"; -@fa-arrow-circle-down: "\f0ab"; -@fa-globe: "\f0ac"; -@fa-wrench: "\f0ad"; -@fa-tasks: "\f0ae"; -@fa-filter: "\f0b0"; -@fa-briefcase: "\f0b1"; -@fa-arrows-alt: "\f0b2"; -@fa-users: "\f0c0"; -@fa-link: "\f0c1"; -@fa-cloud: "\f0c2"; -@fa-flask: "\f0c3"; -@fa-scissors: "\f0c4"; -@fa-files-o: "\f0c5"; -@fa-paperclip: "\f0c6"; -@fa-floppy-o: "\f0c7"; -@fa-square: "\f0c8"; -@fa-bars: "\f0c9"; -@fa-list-ul: "\f0ca"; -@fa-list-ol: "\f0cb"; -@fa-strikethrough: "\f0cc"; -@fa-underline: "\f0cd"; -@fa-table: "\f0ce"; -@fa-magic: "\f0d0"; -@fa-truck: "\f0d1"; -@fa-pinterest: "\f0d2"; -@fa-pinterest-square: "\f0d3"; -@fa-google-plus-square: "\f0d4"; -@fa-google-plus: "\f0d5"; -@fa-money: "\f0d6"; -@fa-caret-down: "\f0d7"; -@fa-caret-up: "\f0d8"; -@fa-caret-left: "\f0d9"; -@fa-caret-right: "\f0da"; -@fa-columns: "\f0db"; -@fa-sort: "\f0dc"; -@fa-sort-desc: "\f0dd"; -@fa-sort-asc: "\f0de"; -@fa-envelope: "\f0e0"; -@fa-linkedin: "\f0e1"; -@fa-undo: "\f0e2"; -@fa-gavel: "\f0e3"; -@fa-tachometer: "\f0e4"; -@fa-comment-o: "\f0e5"; -@fa-comments-o: "\f0e6"; -@fa-bolt: "\f0e7"; -@fa-sitemap: "\f0e8"; -@fa-umbrella: "\f0e9"; -@fa-clipboard: "\f0ea"; -@fa-lightbulb-o: "\f0eb"; -@fa-exchange: "\f0ec"; -@fa-cloud-download: "\f0ed"; -@fa-cloud-upload: "\f0ee"; -@fa-user-md: "\f0f0"; -@fa-stethoscope: "\f0f1"; -@fa-suitcase: "\f0f2"; -@fa-bell-o: "\f0a2"; -@fa-coffee: "\f0f4"; -@fa-cutlery: "\f0f5"; -@fa-file-text-o: "\f0f6"; -@fa-building-o: "\f0f7"; -@fa-hospital-o: "\f0f8"; -@fa-ambulance: "\f0f9"; -@fa-medkit: "\f0fa"; -@fa-fighter-jet: "\f0fb"; -@fa-beer: "\f0fc"; -@fa-h-square: "\f0fd"; -@fa-plus-square: "\f0fe"; -@fa-angle-double-left: "\f100"; -@fa-angle-double-right: "\f101"; -@fa-angle-double-up: "\f102"; -@fa-angle-double-down: "\f103"; -@fa-angle-left: "\f104"; -@fa-angle-right: "\f105"; -@fa-angle-up: "\f106"; -@fa-angle-down: "\f107"; -@fa-desktop: "\f108"; -@fa-laptop: "\f109"; -@fa-tablet: "\f10a"; -@fa-mobile: "\f10b"; -@fa-circle-o: "\f10c"; -@fa-quote-left: "\f10d"; -@fa-quote-right: "\f10e"; -@fa-spinner: "\f110"; -@fa-circle: "\f111"; -@fa-reply: "\f112"; -@fa-github-alt: "\f113"; -@fa-folder-o: "\f114"; -@fa-folder-open-o: "\f115"; -@fa-smile-o: "\f118"; -@fa-frown-o: "\f119"; -@fa-meh-o: "\f11a"; -@fa-gamepad: "\f11b"; -@fa-keyboard-o: "\f11c"; -@fa-flag-o: "\f11d"; -@fa-flag-checkered: "\f11e"; -@fa-terminal: "\f120"; -@fa-code: "\f121"; -@fa-reply-all: "\f122"; -@fa-star-half-o: "\f123"; -@fa-location-arrow: "\f124"; -@fa-crop: "\f125"; -@fa-code-fork: "\f126"; -@fa-chain-broken: "\f127"; -@fa-question: "\f128"; -@fa-info: "\f129"; -@fa-exclamation: "\f12a"; -@fa-superscript: "\f12b"; -@fa-subscript: "\f12c"; -@fa-eraser: "\f12d"; -@fa-puzzle-piece: "\f12e"; -@fa-microphone: "\f130"; -@fa-microphone-slash: "\f131"; -@fa-shield: "\f132"; -@fa-calendar-o: "\f133"; -@fa-fire-extinguisher: "\f134"; -@fa-rocket: "\f135"; -@fa-maxcdn: "\f136"; -@fa-chevron-circle-left: "\f137"; -@fa-chevron-circle-right: "\f138"; -@fa-chevron-circle-up: "\f139"; -@fa-chevron-circle-down: "\f13a"; -@fa-html5: "\f13b"; -@fa-css3: "\f13c"; -@fa-anchor: "\f13d"; -@fa-unlock-alt: "\f13e"; -@fa-bullseye: "\f140"; -@fa-ellipsis-h: "\f141"; -@fa-ellipsis-v: "\f142"; -@fa-rss-square: "\f143"; -@fa-play-circle: "\f144"; -@fa-ticket: "\f145"; -@fa-minus-square: "\f146"; -@fa-minus-square-o: "\f147"; -@fa-level-up: "\f148"; -@fa-level-down: "\f149"; -@fa-check-square: "\f14a"; -@fa-pencil-square: "\f14b"; -@fa-external-link-square: "\f14c"; -@fa-share-square: "\f14d"; -@fa-compass: "\f14e"; -@fa-caret-square-o-down: "\f150"; -@fa-caret-square-o-up: "\f151"; -@fa-caret-square-o-right: "\f152"; -@fa-eur: "\f153"; -@fa-gbp: "\f154"; -@fa-usd: "\f155"; -@fa-inr: "\f156"; -@fa-jpy: "\f157"; -@fa-rub: "\f158"; -@fa-krw: "\f159"; -@fa-btc: "\f15a"; -@fa-file: "\f15b"; -@fa-file-text: "\f15c"; -@fa-sort-alpha-asc: "\f15d"; -@fa-sort-alpha-desc: "\f15e"; -@fa-sort-amount-asc: "\f160"; -@fa-sort-amount-desc: "\f161"; -@fa-sort-numeric-asc: "\f162"; -@fa-sort-numeric-desc: "\f163"; -@fa-thumbs-up: "\f164"; -@fa-thumbs-down: "\f165"; -@fa-youtube-square: "\f166"; -@fa-youtube: "\f167"; -@fa-xing: "\f168"; -@fa-xing-square: "\f169"; -@fa-youtube-play: "\f16a"; -@fa-dropbox: "\f16b"; -@fa-stack-overflow: "\f16c"; -@fa-instagram: "\f16d"; -@fa-flickr: "\f16e"; -@fa-adn: "\f170"; -@fa-bitbucket: "\f171"; -@fa-bitbucket-square: "\f172"; -@fa-tumblr: "\f173"; -@fa-tumblr-square: "\f174"; -@fa-long-arrow-down: "\f175"; -@fa-long-arrow-up: "\f176"; -@fa-long-arrow-left: "\f177"; -@fa-long-arrow-right: "\f178"; -@fa-apple: "\f179"; -@fa-windows: "\f17a"; -@fa-android: "\f17b"; -@fa-linux: "\f17c"; -@fa-dribbble: "\f17d"; -@fa-skype: "\f17e"; -@fa-foursquare: "\f180"; -@fa-trello: "\f181"; -@fa-female: "\f182"; -@fa-male: "\f183"; -@fa-gittip: "\f184"; -@fa-sun-o: "\f185"; -@fa-moon-o: "\f186"; -@fa-archive: "\f187"; -@fa-bug: "\f188"; -@fa-vk: "\f189"; -@fa-weibo: "\f18a"; -@fa-renren: "\f18b"; -@fa-pagelines: "\f18c"; -@fa-stack-exchange: "\f18d"; -@fa-arrow-circle-o-right: "\f18e"; -@fa-arrow-circle-o-left: "\f190"; -@fa-caret-square-o-left: "\f191"; -@fa-dot-circle-o: "\f192"; -@fa-wheelchair: "\f193"; -@fa-vimeo-square: "\f194"; -@fa-try: "\f195"; -@fa-plus-square-o: "\f196"; -@fa-space-shuttle: "\f197"; -@fa-slack: "\f198"; -@fa-envelope-square: "\f199"; -@fa-wordpress: "\f19a"; -@fa-openid: "\f19b"; -@fa-university: "\f19c"; -@fa-graduation-cap: "\f19d"; -@fa-yahoo: "\f19e"; -@fa-google: "\f1a0"; -@fa-reddit: "\f1a1"; -@fa-reddit-square: "\f1a2"; -@fa-stumbleupon-circle: "\f1a3"; -@fa-stumbleupon: "\f1a4"; -@fa-delicious: "\f1a5"; -@fa-digg: "\f1a6"; -@fa-pied-piper: "\f1a7"; -@fa-pied-piper-alt: "\f1a8"; -@fa-drupal: "\f1a9"; -@fa-joomla: "\f1aa"; -@fa-language: "\f1ab"; -@fa-fax: "\f1ac"; -@fa-building: "\f1ad"; -@fa-child: "\f1ae"; -@fa-paw: "\f1b0"; -@fa-spoon: "\f1b1"; -@fa-cube: "\f1b2"; -@fa-cubes: "\f1b3"; -@fa-behance: "\f1b4"; -@fa-behance-square: "\f1b5"; -@fa-steam: "\f1b6"; -@fa-steam-square: "\f1b7"; -@fa-recycle: "\f1b8"; -@fa-car: "\f1b9"; -@fa-taxi: "\f1ba"; -@fa-tree: "\f1bb"; -@fa-spotify: "\f1bc"; -@fa-deviantart: "\f1bd"; -@fa-soundcloud: "\f1be"; -@fa-database: "\f1c0"; -@fa-file-pdf-o: "\f1c1"; -@fa-file-word-o: "\f1c2"; -@fa-file-excel-o: "\f1c3"; -@fa-file-powerpoint-o: "\f1c4"; -@fa-file-image-o: "\f1c5"; -@fa-file-archive-o: "\f1c6"; -@fa-file-audio-o: "\f1c7"; -@fa-file-video-o: "\f1c8"; -@fa-file-code-o: "\f1c9"; -@fa-vine: "\f1ca"; -@fa-codepen: "\f1cb"; -@fa-jsfiddle: "\f1cc"; -@fa-life-ring: "\f1cd"; -@fa-circle-o-notch: "\f1ce"; -@fa-rebel: "\f1d0"; -@fa-empire: "\f1d1"; -@fa-git-square: "\f1d2"; -@fa-git: "\f1d3"; -@fa-hacker-news: "\f1d4"; -@fa-tencent-weibo: "\f1d5"; -@fa-qq: "\f1d6"; -@fa-weixin: "\f1d7"; -@fa-paper-plane: "\f1d8"; -@fa-paper-plane-o: "\f1d9"; -@fa-history: "\f1da"; -@fa-circle-thin: "\f1db"; -@fa-header: "\f1dc"; -@fa-paragraph: "\f1dd"; -@fa-sliders: "\f1de"; -@fa-share-alt: "\f1e0"; -@fa-share-alt-square: "\f1e1"; -@fa-bomb: "\f1e2"; -@fa-futbol-o: "\f1e3"; -@fa-tty: "\f1e4"; -@fa-binoculars: "\f1e5"; -@fa-plug: "\f1e6"; -@fa-slideshare: "\f1e7"; -@fa-twitch: "\f1e8"; -@fa-yelp: "\f1e9"; -@fa-newspaper-o: "\f1ea"; -@fa-wifi: "\f1eb"; -@fa-calculator: "\f1ec"; -@fa-paypal: "\f1ed"; -@fa-google-wallet: "\f1ee"; -@fa-cc-visa: "\f1f0"; -@fa-cc-mastercard: "\f1f1"; -@fa-cc-discover: "\f1f2"; -@fa-cc-amex: "\f1f3"; -@fa-cc-paypal: "\f1f4"; -@fa-cc-stripe: "\f1f5"; -@fa-bell-slash: "\f1f6"; -@fa-bell-slash-o: "\f1f7"; -@fa-trash: "\f1f8"; -@fa-copyright: "\f1f9"; -@fa-at: "\f1fa"; -@fa-eyedropper: "\f1fb"; -@fa-paint-brush: "\f1fc"; -@fa-birthday-cake: "\f1fd"; -@fa-area-chart: "\f1fe"; -@fa-pie-chart: "\f200"; -@fa-line-chart: "\f201"; -@fa-lastfm: "\f202"; -@fa-lastfm-square: "\f203"; -@fa-toggle-off: "\f204"; -@fa-toggle-on: "\f205"; -@fa-bicycle: "\f206"; -@fa-bus: "\f207"; -@fa-ioxhost: "\f208"; -@fa-angellist: "\f209"; -@fa-cc: "\f20a"; -@fa-ils: "\f20b"; -@fa-meanpath: "\f20c"; - diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/awesomeStyle/img/loading.gif b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/awesomeStyle/img/loading.gif deleted file mode 100644 index e8c28929..00000000 Binary files a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/awesomeStyle/img/loading.gif and /dev/null differ diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/demo.css b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/demo.css deleted file mode 100644 index f6dba0de..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/demo.css +++ /dev/null @@ -1,33 +0,0 @@ -html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td { - margin: 0;padding: 0;border: 0;outline: 0;font-weight: inherit;font-style: inherit;font-size: 100%;font-family: inherit;vertical-align: baseline;} -body {color: #2f332a;font: 15px/21px Arial, Helvetica, simsun, sans-serif;background: #f0f6e4 \9;} -h1, h2, h3, h4, h5, h6 {color: #2f332a;font-weight: bold;font-family: Helvetica, Arial, sans-serif;padding-bottom: 5px;} -h1 {font-size: 24px;line-height: 34px;text-align: center;} -h2 {font-size: 14px;line-height: 24px;padding-top: 5px;} -h6 {font-weight: normal;font-size: 12px;letter-spacing: 1px;line-height: 24px;text-align: center;} -a {color:#3C6E31;text-decoration: underline;} -a:hover {background-color:#3C6E31;color:white;} -input.radio {margin: 0 2px 0 8px;} -input.radio.first {margin-left:0;} -input.empty {color: lightgray;} -code {color: #2f332a;} -.highlight_red {color:#A60000;} -.highlight_green {color:#A7F43D;} -li {list-style: circle;font-size: 12px;} -li.title {list-style: none;} -ul.list {margin-left: 17px;} - -div.content_wrap {width: 600px;height:380px;} -div.content_wrap div.left{float: left;width: 250px;} -div.content_wrap div.right{float: right;width: 340px;} -div.zTreeDemoBackground {width:250px;height:362px;text-align:left;} - -ul.ztree {margin-top: 10px;border: 1px solid #617775;background: #f0f6e4;width:220px;height:360px;overflow-y:scroll;overflow-x:auto;} -ul.log {border: 1px solid #617775;background: #f0f6e4;width:300px;height:170px;overflow: hidden;} -ul.log.small {height:45px;} -ul.log li {color: #666666;list-style: none;padding-left: 10px;} -ul.log li.dark {background-color: #E3E3E3;} - -/* ruler */ -div.ruler {height:20px; width:220px; background-color:#f0f6e4;border: 1px solid #333; margin-bottom: 5px; cursor: pointer} -div.ruler div.cursor {height:20px; width:30px; background-color:#3C6E31; color:white; text-align: right; padding-right: 5px; cursor: pointer} \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/metroStyle/img/line_conn.png b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/metroStyle/img/line_conn.png deleted file mode 100644 index b211da2f..00000000 Binary files a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/metroStyle/img/line_conn.png and /dev/null differ diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/metroStyle/img/loading.gif b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/metroStyle/img/loading.gif deleted file mode 100644 index e8c28929..00000000 Binary files a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/metroStyle/img/loading.gif and /dev/null differ diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/metroStyle/img/metro.gif b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/metroStyle/img/metro.gif deleted file mode 100644 index 664b969a..00000000 Binary files a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/metroStyle/img/metro.gif and /dev/null differ diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/metroStyle/img/metro.png b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/metroStyle/img/metro.png deleted file mode 100644 index e9e58a3a..00000000 Binary files a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/metroStyle/img/metro.png and /dev/null differ diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/metroStyle/metroStyle.css b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/metroStyle/metroStyle.css deleted file mode 100644 index af81f423..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/metroStyle/metroStyle.css +++ /dev/null @@ -1,96 +0,0 @@ -/*------------------------------------- -zTree Style - -version: 3.4 -author: Hunter.z -email: hunter.z@263.net -website: http://code.google.com/p/jquerytree/ - --------------------------------------*/ - -.ztree * {padding:0; margin:0; font-size:12px; font-family: Verdana, Arial, Helvetica, AppleGothic, sans-serif} -.ztree {margin:0; padding:5px; color:#333} -.ztree li{padding:0; margin:0; list-style:none; line-height:17px; text-align:left; white-space:nowrap; outline:0} -.ztree li ul{ margin:0; padding:0 0 0 18px} -.ztree li ul.line{ background:url(./img/line_conn.png) 0 0 repeat-y;} - -.ztree li a {padding-right:3px; margin:0; cursor:pointer; height:21px; color:#333; background-color: transparent; text-decoration:none; vertical-align:top; display: inline-block} -.ztree li a:hover {text-decoration:underline} -.ztree li a.curSelectedNode {padding-top:0px; background-color:#e5e5e5; color:black; height:21px; opacity:0.8;} -.ztree li a.curSelectedNode_Edit {padding-top:0px; background-color:#e5e5e5; color:black; height:21px; border:1px #666 solid; opacity:0.8;} -.ztree li a.tmpTargetNode_inner {padding-top:0px; background-color:#aaa; color:white; height:21px; border:1px #666 solid; - opacity:0.8; filter:alpha(opacity=80)} -.ztree li a.tmpTargetNode_prev {} -.ztree li a.tmpTargetNode_next {} -.ztree li a input.rename {height:14px; width:80px; padding:0; margin:0; - font-size:12px; border:1px #585956 solid; *border:0px} -.ztree li span {line-height:21px; margin-right:2px} -.ztree li span.button {line-height:0; margin:0; padding: 0; width:21px; height:21px; display: inline-block; vertical-align:middle; - border:0 none; cursor: pointer;outline:none; - background-color:transparent; background-repeat:no-repeat; background-attachment: scroll; - background-image:url("./img/metro.png"); *background-image:url("./img/metro.gif")} - -.ztree li span.button.chk {width:13px; height:13px; margin:0 2px; cursor: auto} -.ztree li span.button.chk.checkbox_false_full {background-position: -5px -5px;} -.ztree li span.button.chk.checkbox_false_full_focus {background-position: -5px -26px;} -.ztree li span.button.chk.checkbox_false_part {background-position: -5px -48px;} -.ztree li span.button.chk.checkbox_false_part_focus {background-position: -5px -68px;} -.ztree li span.button.chk.checkbox_false_disable {background-position: -5px -89px;} -.ztree li span.button.chk.checkbox_true_full {background-position: -26px -5px;} -.ztree li span.button.chk.checkbox_true_full_focus {background-position: -26px -26px;} -.ztree li span.button.chk.checkbox_true_part {background-position: -26px -48px;} -.ztree li span.button.chk.checkbox_true_part_focus {background-position: -26px -68px;} -.ztree li span.button.chk.checkbox_true_disable {background-position: -26px -89px;} -.ztree li span.button.chk.radio_false_full {background-position: -47px -5px;} -.ztree li span.button.chk.radio_false_full_focus {background-position: -47px -26px;} -.ztree li span.button.chk.radio_false_part {background-position: -47px -47px;} -.ztree li span.button.chk.radio_false_part_focus {background-position: -47px -68px;} -.ztree li span.button.chk.radio_false_disable {background-position: -47px -89px;} -.ztree li span.button.chk.radio_true_full {background-position: -68px -5px;} -.ztree li span.button.chk.radio_true_full_focus {background-position: -68px -26px;} -.ztree li span.button.chk.radio_true_part {background-position: -68px -47px;} -.ztree li span.button.chk.radio_true_part_focus {background-position: -68px -68px;} -.ztree li span.button.chk.radio_true_disable {background-position: -68px -89px;} - -.ztree li span.button.switch {width:21px; height:21px} -.ztree li span.button.root_open{background-position:-105px -63px} -.ztree li span.button.root_close{background-position:-126px -63px} -.ztree li span.button.roots_open{background-position: -105px 0;} -.ztree li span.button.roots_close{background-position: -126px 0;} -.ztree li span.button.center_open{background-position: -105px -21px;} -.ztree li span.button.center_close{background-position: -126px -21px;} -.ztree li span.button.bottom_open{background-position: -105px -42px;} -.ztree li span.button.bottom_close{background-position: -126px -42px;} -.ztree li span.button.noline_open{background-position: -105px -84px;} -.ztree li span.button.noline_close{background-position: -126px -84px;} -.ztree li span.button.root_docu{ background:none;} -.ztree li span.button.roots_docu{background-position: -84px 0;} -.ztree li span.button.center_docu{background-position: -84px -21px;} -.ztree li span.button.bottom_docu{background-position: -84px -42px;} -.ztree li span.button.noline_docu{ background:none;} - -.ztree li span.button.ico_open{margin-right:2px; background-position: -147px -21px; vertical-align:top; *vertical-align:middle} -.ztree li span.button.ico_close{margin-right:2px; margin-right:2px; background-position: -147px 0; vertical-align:top; *vertical-align:middle} -.ztree li span.button.ico_docu{margin-right:2px; background-position: -147px -42px; vertical-align:top; *vertical-align:middle} -.ztree li span.button.edit {margin-left:2px; margin-right: -1px; background-position: -189px -21px; vertical-align:top; *vertical-align:middle} -.ztree li span.button.edit:hover { - background-position: -168px -21px; -} -.ztree li span.button.remove {margin-left:2px; margin-right: -1px; background-position: -189px -42px; vertical-align:top; *vertical-align:middle} -.ztree li span.button.remove:hover { - background-position: -168px -42px; -} -.ztree li span.button.add {margin-left:2px; margin-right: -1px; background-position: -189px 0; vertical-align:top; *vertical-align:middle} -.ztree li span.button.add:hover { - background-position: -168px 0; -} -.ztree li span.button.ico_loading{margin-right:2px; background:url(./img/loading.gif) no-repeat scroll 0 0 transparent; vertical-align:top; *vertical-align:middle} - -ul.tmpTargetzTree {background-color:#FFE6B0; opacity:0.8; filter:alpha(opacity=80)} - -span.tmpzTreeMove_arrow {width:16px; height:21px; display: inline-block; padding:0; margin:2px 0 0 1px; border:0 none; position:absolute; - background-color:transparent; background-repeat:no-repeat; background-attachment: scroll; - background-position:-168px -84px; background-image:url("./img/metro.png"); *background-image:url("./img/metro.gif")} - -ul.ztree.zTreeDragUL {margin:0; padding:0; position:absolute; width:auto; height:auto;overflow:hidden; background-color:#cfcfcf; border:1px #00B83F dotted; opacity:0.8; filter:alpha(opacity=80)} -.ztreeMask {z-index:10000; background-color:#cfcfcf; opacity:0.0; filter:alpha(opacity=0); position:absolute} diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/1_close.png b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/1_close.png deleted file mode 100644 index 68ccb3c3..00000000 Binary files a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/1_close.png and /dev/null differ diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/1_open.png b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/1_open.png deleted file mode 100644 index d6ff36d3..00000000 Binary files a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/1_open.png and /dev/null differ diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/2.png b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/2.png deleted file mode 100644 index 9eff506b..00000000 Binary files a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/2.png and /dev/null differ diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/3.png b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/3.png deleted file mode 100644 index d7ba6d0c..00000000 Binary files a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/3.png and /dev/null differ diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/4.png b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/4.png deleted file mode 100644 index 753e2bfd..00000000 Binary files a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/4.png and /dev/null differ diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/5.png b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/5.png deleted file mode 100644 index 0c5eccd5..00000000 Binary files a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/5.png and /dev/null differ diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/6.png b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/6.png deleted file mode 100644 index 070b8352..00000000 Binary files a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/6.png and /dev/null differ diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/7.png b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/7.png deleted file mode 100644 index 532b037f..00000000 Binary files a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/7.png and /dev/null differ diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/8.png b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/8.png deleted file mode 100644 index a8f3a86e..00000000 Binary files a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/8.png and /dev/null differ diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/9.png b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/9.png deleted file mode 100644 index 4db73cd4..00000000 Binary files a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/9.png and /dev/null differ diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/line_conn.gif b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/line_conn.gif deleted file mode 100644 index d561d36a..00000000 Binary files a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/line_conn.gif and /dev/null differ diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/loading.gif b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/loading.gif deleted file mode 100644 index e8c28929..00000000 Binary files a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/loading.gif and /dev/null differ diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/zTreeStandard.gif b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/zTreeStandard.gif deleted file mode 100644 index 50c94fd4..00000000 Binary files a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/zTreeStandard.gif and /dev/null differ diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/zTreeStandard.png b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/zTreeStandard.png deleted file mode 100644 index ffda01ef..00000000 Binary files a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/zTreeStandard.png and /dev/null differ diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/zTreeStyle.css b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/zTreeStyle.css deleted file mode 100644 index 4a1705b1..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/zTreeStyle.css +++ /dev/null @@ -1,97 +0,0 @@ -/*------------------------------------- -zTree Style - -version: 3.5.19 -author: Hunter.z -email: hunter.z@263.net -website: http://code.google.com/p/jquerytree/ - --------------------------------------*/ - -.ztree * {padding:0; margin:0; font-size:12px; font-family: Verdana, Arial, Helvetica, AppleGothic, sans-serif} -.ztree {margin:0; padding:5px; color:#333} -.ztree li{padding:0; margin:0; list-style:none; line-height:14px; text-align:left; white-space:nowrap; outline:0} -.ztree li ul{ margin:0; padding:0 0 0 18px} -.ztree li ul.line{ background:url(./img/line_conn.gif) 0 0 repeat-y;} - -.ztree li a {padding:1px 3px 0 0; margin:0; cursor:pointer; height:17px; color:#333; background-color: transparent; - text-decoration:none; vertical-align:top; display: inline-block} -.ztree li a:hover {text-decoration:underline} -.ztree li a.curSelectedNode {padding-top:0px; background-color:#FFE6B0; color:black; height:16px; border:1px #FFB951 solid; opacity:0.8;} -.ztree li a.curSelectedNode_Edit {padding-top:0px; background-color:#FFE6B0; color:black; height:16px; border:1px #FFB951 solid; opacity:0.8;} -.ztree li a.tmpTargetNode_inner {padding-top:0px; background-color:#316AC5; color:white; height:16px; border:1px #316AC5 solid; - opacity:0.8; filter:alpha(opacity=80)} -.ztree li a.tmpTargetNode_prev {} -.ztree li a.tmpTargetNode_next {} -.ztree li a input.rename {height:14px; width:80px; padding:0; margin:0; - font-size:12px; border:1px #7EC4CC solid; *border:0px} -.ztree li span {line-height:16px; margin-right:2px} -.ztree li span.button {line-height:0; margin:0; width:16px; height:16px; display: inline-block; vertical-align:middle; - border:0 none; cursor: pointer;outline:none; - background-color:transparent; background-repeat:no-repeat; background-attachment: scroll; - background-image:url("./img/zTreeStandard.png"); *background-image:url("./img/zTreeStandard.gif")} - -.ztree li span.button.chk {width:13px; height:13px; margin:0 3px 0 0; cursor: auto} -.ztree li span.button.chk.checkbox_false_full {background-position:0 0} -.ztree li span.button.chk.checkbox_false_full_focus {background-position:0 -14px} -.ztree li span.button.chk.checkbox_false_part {background-position:0 -28px} -.ztree li span.button.chk.checkbox_false_part_focus {background-position:0 -42px} -.ztree li span.button.chk.checkbox_false_disable {background-position:0 -56px} -.ztree li span.button.chk.checkbox_true_full {background-position:-14px 0} -.ztree li span.button.chk.checkbox_true_full_focus {background-position:-14px -14px} -.ztree li span.button.chk.checkbox_true_part {background-position:-14px -28px} -.ztree li span.button.chk.checkbox_true_part_focus {background-position:-14px -42px} -.ztree li span.button.chk.checkbox_true_disable {background-position:-14px -56px} -.ztree li span.button.chk.radio_false_full {background-position:-28px 0} -.ztree li span.button.chk.radio_false_full_focus {background-position:-28px -14px} -.ztree li span.button.chk.radio_false_part {background-position:-28px -28px} -.ztree li span.button.chk.radio_false_part_focus {background-position:-28px -42px} -.ztree li span.button.chk.radio_false_disable {background-position:-28px -56px} -.ztree li span.button.chk.radio_true_full {background-position:-42px 0} -.ztree li span.button.chk.radio_true_full_focus {background-position:-42px -14px} -.ztree li span.button.chk.radio_true_part {background-position:-42px -28px} -.ztree li span.button.chk.radio_true_part_focus {background-position:-42px -42px} -.ztree li span.button.chk.radio_true_disable {background-position:-42px -56px} - -.ztree li span.button.switch {width:18px; height:18px} -.ztree li span.button.root_open{background-position:-92px -54px} -.ztree li span.button.root_close{background-position:-74px -54px} -.ztree li span.button.roots_open{background-position:-92px 0} -.ztree li span.button.roots_close{background-position:-74px 0} -.ztree li span.button.center_open{background-position:-92px -18px} -.ztree li span.button.center_close{background-position:-74px -18px} -.ztree li span.button.bottom_open{background-position:-92px -36px} -.ztree li span.button.bottom_close{background-position:-74px -36px} -.ztree li span.button.noline_open{background-position:-92px -72px} -.ztree li span.button.noline_close{background-position:-74px -72px} -.ztree li span.button.root_docu{ background:none;} -.ztree li span.button.roots_docu{background-position:-56px 0} -.ztree li span.button.center_docu{background-position:-56px -18px} -.ztree li span.button.bottom_docu{background-position:-56px -36px} -.ztree li span.button.noline_docu{ background:none;} - -.ztree li span.button.ico_open{margin-right:2px; background-position:-110px -16px; vertical-align:top; *vertical-align:middle} -.ztree li span.button.ico_close{margin-right:2px; background-position:-110px 0; vertical-align:top; *vertical-align:middle} -.ztree li span.button.ico_docu{margin-right:2px; background-position:-110px -32px; vertical-align:top; *vertical-align:middle} -.ztree li span.button.edit {margin-right:2px; background-position:-110px -48px; vertical-align:top; *vertical-align:middle} -.ztree li span.button.remove {margin-right:2px; background-position:-110px -64px; vertical-align:top; *vertical-align:middle} - -.ztree li span.button.ico_loading{margin-right:2px; background:url(./img/loading.gif) no-repeat scroll 0 0 transparent; vertical-align:top; *vertical-align:middle} - -ul.tmpTargetzTree {background-color:#FFE6B0; opacity:0.8; filter:alpha(opacity=80)} - -span.tmpzTreeMove_arrow {width:16px; height:16px; display: inline-block; padding:0; margin:2px 0 0 1px; border:0 none; position:absolute; - background-color:transparent; background-repeat:no-repeat; background-attachment: scroll; - background-position:-110px -80px; background-image:url("./img/zTreeStandard.png"); *background-image:url("./img/zTreeStandard.gif")} - -ul.ztree.zTreeDragUL {margin:0; padding:0; position:absolute; width:auto; height:auto;overflow:hidden; background-color:#cfcfcf; border:1px #00B83F dotted; opacity:0.8; filter:alpha(opacity=80)} -.zTreeMask {z-index:10000; background-color:#cfcfcf; opacity:0.0; filter:alpha(opacity=0); position:absolute} - -/* level style*/ -/*.ztree li span.button.level0 { - display:none; -} -.ztree li ul.level0 { - padding:0; - background:none; -}*/ \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/asyncData/getNodes.php b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/asyncData/getNodes.php deleted file mode 100644 index 6d22b5eb..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/asyncData/getNodes.php +++ /dev/null @@ -1,42 +0,0 @@ - -[] diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/asyncData/getNodesForBigData.php b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/asyncData/getNodesForBigData.php deleted file mode 100644 index 588c14c5..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/asyncData/getNodesForBigData.php +++ /dev/null @@ -1,26 +0,0 @@ - -[] diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/bigdata/common.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/bigdata/common.html deleted file mode 100644 index 1f602f1e..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/bigdata/common.html +++ /dev/null @@ -1,190 +0,0 @@ - - - - ZTREE DEMO - big data common - - - - - - - - - - - -

    一次性加载大数据量

    -
    [ 文件路径: bigdata/common.html ]
    -
    - -
    -
      -
    • 1、大数据量加载说明

      -
        -
      • 1)、zTree v3.x 针对大数据量一次性加载进行了更深入的优化,实现了延迟加载功能,即不展开的节点不创建子节点的 DOM。
      • -
      • 2)、对于每级节点最多一百左右,但总节点数几千甚至几万,且不是全部展开的数据,一次性加载的效果最明显,速度非常快。
      • -
      • 3)、对于某一级节点数就多达几千的情况 延迟加载无效,这种情况建议考虑分页异步加载。
      • -
      • 4)、对于全部节点都展开显示的情况,延迟加载无效,这种情况建议不要全部展开。
      • -
      • 5)、显示 checkbox / radio 会造成一定程度的性能下降。
      • -
      • 6)、利用 addDiyDom 功能增加自定义控件会影响速度,影响程度受节点数量而定。
      • -
      • 7)、利用 onNodeCreated 事件回调函数对节点 DOM 进行操作会影响速度,影响程度受节点数量而定。
      • -
      -
    • -
    • 2、setting 配置信息说明

      -
        -
      • 不需要进行特殊的配置
      • -
      -
    • -
    • 3、treeNode 节点数据说明

      -
        -
      • 对 节点数据 没有特殊要求,用户可以根据自己的需求添加自定义属性
      • -
      -
    • -
    -
    -
    - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/bigdata/diy_async.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/bigdata/diy_async.html deleted file mode 100644 index 3a2ec02a..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/bigdata/diy_async.html +++ /dev/null @@ -1,157 +0,0 @@ - - - - ZTREE DEMO - big data async - - - - - - - - - - - -

    分批异步加载大数据量

    -
    [ 文件路径: bigdata/diy_async.html ]
    -
    -
    -
      -
    •     此 Demo 专门用于测试分批异步加载,每次展开节点都要重新进行异步加载。
    • -
    -
      -
      -
      -
        -
      • 1、大数据量加载说明

        -
          -
        • 1)、对于某一级节点数多达几千个的时候,zTree 默认的延迟加载是无效的,此 Demo 演示了一种原先 zTree v2.6 时的分批加载节点的方法。
        • -
        • 2)、此方法适用于1、2千个节点必须全部显示的需求。
        • -
        • 3)、此方法并不能解决加载慢的问题,相反只会让最终结果出现的更慢,只是可以有限度的避免浏览器假死,而且显示的节点越多就越慢。
        • -
        • 4)、对于某一级节点数至少几千个的情况,另一个解决方案是:分页异步加载。
          - async load log:
          -
          • -
          -
        • -
        • 2、setting 配置信息说明

          -
            -
          • 需要设置 setting.async 异步加载部分的参数
          • -
          • 建议关闭动画效果 setting.view.expandSpeed = "";
          • -
          • 其他不需要进行特殊的配置,根据自己的需求自行设置
          • -
          -
        • -
        • 3、treeNode 节点数据说明

          -
            -
          • 对 节点数据 没有特殊要求,用户可以根据自己的需求添加自定义属性
          • -
          -
        • -
        -
        -
        - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/bigdata/page.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/bigdata/page.html deleted file mode 100644 index f629823d..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/bigdata/page.html +++ /dev/null @@ -1,150 +0,0 @@ - - - - ZTREE DEMO - big data page - - - - - - - - - - - - -

        分页加载大数据量

        -
        [ 文件路径: bigdata/page.html ]
        -
        -
        -
          -
          -
          -
            -
          • 1、大数据量加载说明

            -
              -
            • 1)、分页方案可以有效解决某一级节点数据超大的情况。
            • -
            • 2)、分页按钮通过自定义控件的方法实现。
            • -
            • 3)、分页方案对于 checkbox 的关联关系无能为力,只能每次翻页后进行修正。由于时间关系,Demo 中不对 checkbox 的关联进行任何修正处理。
            • -
            • 4)、分页方案中,从 zTree 得到的节点数据只有当前页的节点数据,可以在每次翻页后自行保存每页的数据,作为缓存,具体情况要根据实际需求来决定。
            • - -
            • 2、setting 配置信息说明

              -
                -
              • 需要设置 setting.async 异步加载部分的参数
              • -
              • 其他不需要进行特殊的配置,根据自己的需求自行设置
              • -
              -
            • -
            • 3、treeNode 节点数据说明

              -
                -
              • 对 节点数据 没有特殊要求,用户可以根据自己的需求添加自定义属性
              • -
              -
            • -
            -
          -
          - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/async.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/async.html deleted file mode 100644 index 7723b3ca..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/async.html +++ /dev/null @@ -1,70 +0,0 @@ - - - - ZTREE DEMO - Async - - - - - - - - - - -

          异步加载节点数据的树

          -
          [ 文件路径: core/async.html ]
          -
          -
          -
            -
            -
            -
              -
            • 1、setting 配置信息说明

              -
                -
              • 使用异步加载,必须设置 setting.async 中的各个属性,详细请参见 API 文档中的相关内容
              • -
              -
            • -
            • 2、treeNode 节点数据说明

              -
                -
              • 异步加载功能对于 treeNode 节点数据没有特别要求,如果采用简单 JSON 数据,请设置 setting.data.simple 中的属性
              • -
              • 如果异步加载每次都只返回单层的节点数据,那么可以不设置简单 JSON 数据模式
              • -
              -
            • -
            • 3、其他说明

              -
                -
              • 观察 autoParam 和 otherParam 请使用 firebug 或 浏览器的开发人员工具
              • -
              • 此 Demo 只能加载到第 4 级节点(level=3)
              • -
              • 此 Demo 利用 dataFilter 对节点的 name 进行了修改
              • -
              -
            • -
            -
            -
            - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/async_fun.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/async_fun.html deleted file mode 100644 index 081a8408..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/async_fun.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - ZTREE DEMO - reAsyncChildNodes - - - - - - - - - - - -

            用 zTree 方法异步加载节点数据

            -
            [ 文件路径: core/async_fun.html ]
            -
            -
            -
              -
              -
              -
                -
              • 1、reAsyncChildNodes 方法操作说明

                -
                  -
                • 使用 zTreeObj.reAsyncChildNodes 方法,详细请参见 API 文档中的相关内容
                • -
                • 此 Demo 只能同时选中一个父节点
                  - 试试看:[ 重新加载 ]    [ 追加 ]

                  -
                • -
                • “悄悄地”操作只能针对 折叠状态 的父节点
                  - 试试看:[ 悄悄地 重新加载 ]    [ 悄悄地 追加 ]
                  - async log:
                  -

                    -
                  • -
                  -
                • -
                • 2、setting 配置信息说明

                  -
                    -
                  • 使用 zTree 提供的 reAsyncChildNodes 方法也必须设置 setting.async 中的各个属性,详细请参见 API 文档中的相关内容
                  • -
                  -
                • -
                • 3、treeNode 节点数据说明

                  -
                    -
                  • 同 "异步加载 节点数据" 中的说明
                  • -
                  -
                • -
                • 4、其他说明

                  -
                    -
                  • 同 "异步加载 节点数据" 中的说明
                  • -
                  -
                • -
                -
                -
                - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/click.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/click.html deleted file mode 100644 index 4d97475c..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/click.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - ZTREE DEMO - beforeClick / onClick - - - - - - - - - - -

                单击节点控制

                -
                [ 文件路径: core/click.html ]
                -
                -
                -
                  -
                  -
                  -
                    -
                  • 1、beforeClick / onClick 事件回调函数控制

                    -
                      -
                    • 利用 click 事件回调函数 可以进行各种其他的附加操作,这里简单演示如何监控此事件
                    • -
                    • 请尝试按下 CtrlCmd 键进行 多节点选择 和 取消选择
                      - click log:
                      -

                        -
                      • -
                      -
                    • -
                    • 2、setting 配置信息说明

                      -
                        -
                      • 需要设置 setting.callback.beforeClick 和 setting.callback.onClick 属性, 详细请参见 API 文档中的相关内容
                      • -
                      -
                    • -
                    • 3、treeNode 节点数据说明

                      -
                        -
                      • 对 节点数据 没有特殊要求,用户可以根据自己的需求添加自定义属性
                      • -
                      -
                    • -
                    -
                    -
                    - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/custom_font.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/custom_font.html deleted file mode 100644 index b94abeca..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/custom_font.html +++ /dev/null @@ -1,67 +0,0 @@ - - - - ZTREE DEMO - Custom Font - - - - - - - - - - -

                    显示自定义字体的树

                    -
                    [ 文件路径: core/custom_font.html ]
                    -
                    -
                    -
                      -
                      -
                      -
                        -
                      • 1、setting 配置信息说明

                        -
                          -
                        • 1、节点自定义字体请设置 setting.view.fontCss 属性,详细请参见 API 文档中的相关内容
                        • -
                        • 2、setting.view.nameIsHTML 属性可以允许节点名称支持 HTML 内容,详细请参见 API 文档中的相关内容
                        • -
                        -
                      • -
                      • 2、treeNode 节点数据说明

                        -
                          -
                        • 设置字体不需要 treeNode 设置特殊数据,但如果用于为了区别不同类型的节点,设置不同的样式,可以对相应的数据设置自定义属性
                        • -
                        • 此 Demo 利用 treeNode 保存样式定义
                        • -
                        -
                      • -
                      -
                      -
                      - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/custom_icon.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/custom_icon.html deleted file mode 100644 index 23ba1050..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/custom_icon.html +++ /dev/null @@ -1,74 +0,0 @@ - - - - ZTREE DEMO - Custom Icon - - - - - - - - - - -

                      自定义图标 -- icon 属性

                      -
                      [ 文件路径: core/custom_icon.html ]
                      -
                      -
                      -
                        -
                        -
                        -
                          -
                        • 1、setting 配置信息说明

                          -
                            -
                          • 自定义图标不需要对 setting 进行特殊配置
                          • -
                          -
                        • -
                        • 2、treeNode 节点数据说明

                          -
                            -
                          • 利用 节点数据的 icon / iconOpen / iconClose 属性实现自定义图标
                          • -
                          • 详细请参见 API 文档中的相关内容
                          • -
                          -
                        • -
                        • 3、其他说明

                          -
                            -
                          • 由于时间关系,例子直接采用 png 图片,如果需要解决 ie6 下 png 图片的透明问题,请针对 ie6 制作特殊的 gif 图片或者利用 css filter 解决
                          • -
                          -
                        • -
                        -
                        -
                        - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/custom_iconSkin.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/custom_iconSkin.html deleted file mode 100644 index 9b28e750..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/custom_iconSkin.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - ZTREE DEMO - Custom Icon Skin - - - - - - - - - - - -

                        自定义图标 -- iconSkin 属性

                        -
                        [ 文件路径: core/custom_iconSkin.html ]
                        -
                        -
                        -
                          -
                          -
                          -
                            -
                          • 1、setting 配置信息说明

                            -
                              -
                            • 自定义图标不需要对 setting 进行特殊配置
                            • -
                            -
                          • -
                          • 2、treeNode 节点数据说明

                            -
                              -
                            • 利用 节点数据的 iconSkin 属性 配合 css 实现自定义图标
                            • -
                            • 详细请参见 API 文档中的相关内容
                            • -
                            -
                          • -
                          • 3、其他说明

                            -
                              -
                            • 由于时间关系,例子直接采用 png 图片,如果需要解决 ie6 下 png 图片的透明问题,请针对 ie6 制作特殊的 gif 图片或者利用 css filter 解决
                            • -
                            -
                          • -
                          -
                          -
                          - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/expand.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/expand.html deleted file mode 100644 index 41f8e4f3..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/expand.html +++ /dev/null @@ -1,185 +0,0 @@ - - - - ZTREE DEMO - beforeExpand / onExpand && beforeCollapse / onCollapse - - - - - - - - - - -

                          展开 / 折叠父节点控制

                          -
                          [ 文件路径: core/expand.html ]
                          -
                          -
                          -
                            -
                            -
                            -
                              -
                            • 1、beforeCollapse / onCollapse
                                beforeExpand / onExpand 事件回调函数控制

                              -
                                -
                              • 利用 collapse / expand 事件回调函数 可以控制父节点是否允许 展开 / 折叠,这里简单演示如何监控此事件
                              • -
                              • 试试看:
                                -      expandNode 方法是否触发 callback
                                -     单个节点--[ 展开 ] -     [ 折叠 ] -     [ 展开 / 折叠 切换 ]
                                -     单个节点(包括子节点)--[ 展开 ] -     [ 折叠 ]
                                -     全部节点--[ 展开 ] -     [ 折叠 ]

                                -
                              • 使用 zTreeObj.expandNode 方法,详细请参见 API 文档中的相关内容
                                - collapse / expand log:
                                -

                                  -
                                • -
                                -
                              • -
                              • 2、setting 配置信息说明

                                -
                                  -
                                • 事件回调函数的使用,详细请参见 API 文档中 setting.callback 的相关内容
                                • -
                                • 如果需要调整 展开 / 折叠 的动画效果, 详细请参见 API 文档中 setting.view.expandSpeed 的相关内容
                                • -
                                -
                              • -
                              • 3、treeNode 节点数据说明

                                -
                                  -
                                • 对 节点数据 没有特殊要求,用户可以根据自己的需求添加自定义属性
                                • -
                                -
                              • -
                              -
                              -
                              - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/noicon.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/noicon.html deleted file mode 100644 index e59c0b2a..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/noicon.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - ZTREE DEMO - noIcon - - - - - - - - - - - -

                              不显示节点图标的树

                              -
                              [ 文件路径: core/noicon.html ]
                              -
                              -
                              -
                                -
                                -
                                -
                                  -
                                • 1、setting 配置信息说明

                                  -
                                    -
                                  • 此 Demo 利用 Function 设置了使父节点不显示图标的规则
                                  • -
                                  • 是否显示节点图标请设置 setting.view.showIcon 属性,详细请参见 API 文档中的相关内容
                                  • -
                                  -
                                • -
                                • 2、treeNode 节点数据说明

                                  -
                                    -
                                  • 是否显示图标,不需要 treeNode 节点数据提供特殊设置,但如果用户需要根据不同节点动态设置,可以对节点数据增加特殊属性,用于判别
                                  • -
                                  -
                                • -
                                -
                                -
                                - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/noline.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/noline.html deleted file mode 100644 index 8322c55e..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/noline.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - ZTREE DEMO - noLine - - - - - - - - - - - -

                                不显示连接线的树

                                -
                                [ 文件路径: core/noline.html ]
                                -
                                -
                                -
                                  -
                                  -
                                  -
                                    -
                                  • 1、setting 配置信息说明

                                    -
                                      -
                                    • 是否显示连接线请设置 setting.view.showLine 属性,详细请参见 API 文档中的相关内容
                                    • -
                                    -
                                  • -
                                  • 2、treeNode 节点数据说明

                                    -
                                      -
                                    • 是否显示连线,不需要 treeNode 节点数据提供特殊设置
                                    • -
                                    -
                                  • -
                                  -
                                  -
                                  - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/otherMouse.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/otherMouse.html deleted file mode 100644 index 3381eab2..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/otherMouse.html +++ /dev/null @@ -1,132 +0,0 @@ - - - - ZTREE DEMO - Other Mouse Event - - - - - - - - - - -

                                  其他鼠标事件监听

                                  -
                                  [ 文件路径: core/otherMouse.html ]
                                  -
                                  -
                                  -
                                    -
                                    -
                                    -
                                      -
                                    • 1、mousedown / mouseup / rightClick 事件回调函数控制

                                      -
                                        -
                                      • zTree 提供 这几种鼠标事件响应,主要是为了便于用户针对一些特殊需求进行扩展开发,不会对 zTree 造成任何影响,这里简单演示如何监控此事件
                                      • -
                                      • 请尝试鼠标在 zTree 上胡乱点击(左键、右键)吧,顺便看看 log
                                        - mousedown event log:
                                        -

                                          - mouseup event log:
                                          -
                                            - rightClick event log:
                                            -

                                              -
                                            • -
                                            -
                                          • -
                                          • 2、setting 配置信息说明

                                            -
                                              -
                                            • 事件回调函数的使用,详细请参见 API 文档中 setting.callback 的相关内容
                                            • -
                                            -
                                          • -
                                          • 3、treeNode 节点数据说明

                                            -
                                              -
                                            • 对 节点数据 没有特殊要求,用户可以根据自己的需求添加自定义属性
                                            • -
                                            -
                                          • -
                                          -
                                          -
                                          - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/searchNodes.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/searchNodes.html deleted file mode 100644 index 380d3e0e..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/searchNodes.html +++ /dev/null @@ -1,173 +0,0 @@ - - - - ZTREE DEMO - getNodeByParam / getNodesByParam / getNodesByParamFuzzy - - - - - - - - - - -

                                          根据参数查找节点

                                          -
                                          [ 文件路径: core/searchNodes.html ]
                                          -
                                          -
                                          -
                                            -
                                            -
                                            -
                                              -
                                            • 1、getNodeByParam / getNodesByParam / getNodesByParamFuzzy 方法操作说明

                                              -
                                                -
                                              • 使用 zTreeObj.getNodeByParam / getNodesByParam / getNodesByParamFuzzy / getNodeByTId 方法,详细请参见 API 文档中的相关内容
                                              • -
                                              • 搜索试试看:
                                                - 属性值( value ):
                                                - 属性( key ):name (string)
                                                - level (number) ... 根节点 level = 0
                                                - id (number)
                                                - 方法:getNodeByParam
                                                - getNodesByParam
                                                - getNodesByParamFuzzy (only string)
                                                - getNodesByFilter (参考本页源码中 function filter)
                                                -

                                                -
                                              • -
                                              -
                                            • -
                                            • 2、setting 配置信息说明

                                              -
                                                -
                                              • 不需要对 setting 进行特殊设置
                                              • -
                                              -
                                            • -
                                            • 3、treeNode 节点数据说明

                                              -
                                                -
                                              • 请注意各个方法使用时保证传入查找的参数类型与设定要查找的属性的类型一致
                                              • -
                                              -
                                            • -
                                            -
                                            -
                                            - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/simpleData.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/simpleData.html deleted file mode 100644 index d3b19fc5..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/simpleData.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - ZTREE DEMO - Simple Data - - - - - - - - - - -

                                            最简单的树 -- 简单 JSON 数据

                                            -
                                            [ 文件路径: core/simpleData.html ]
                                            -
                                            -
                                            -
                                              -
                                              -
                                              -
                                                -
                                              • 1、setting 配置信息说明

                                                -
                                                  -
                                                • 必须设置 setting.data.simple 内的属性,详细请参见 API 文档中的相关内容
                                                • -
                                                • 与显示相关的内容请参考 API 文档中 setting.view 内的配置信息
                                                • -
                                                • name、children、title 等属性定义更改请参考 API 文档中 setting.data.key 内的配置信息
                                                • -
                                                -
                                              • -
                                              • 2、treeNode 节点数据说明

                                                -
                                                  -
                                                • 简单模式的 JSON 数据需要使用 id / pId 表示节点的父子包含关系,如使用其他属性设置父子关联关系请参考 setting.data.simple 内各项说明 -
                                                  例如:
                                                  -var nodes = [
                                                  -	{id:1, pId:0, name: "父节点1"},
                                                  -	{id:11, pId:1, name: "子节点1"},
                                                  -	{id:12, pId:1, name: "子节点2"}
                                                  -];
                                                • -
                                                • 默认展开的节点,请设置 treeNode.open 属性
                                                • -
                                                • 无子节点的父节点,请设置 treeNode.isParent 属性
                                                • -
                                                • 其他属性说明请参考 API 文档中 "treeNode 节点数据详解"
                                                • -
                                                -
                                              • -
                                              • 3、其他说明

                                                -
                                                  -
                                                • Demo 中绝大部分都采用简单 JSON 数据模式,以便于大家学习
                                                • -
                                                -
                                              • -
                                              -
                                              -
                                              - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/standardData.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/standardData.html deleted file mode 100644 index 3a85e7e5..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/standardData.html +++ /dev/null @@ -1,106 +0,0 @@ - - - - ZTREE DEMO - Standard Data - - - - - - - - - - -

                                              最简单的树 -- 标准 JSON 数据

                                              -
                                              [ 文件路径: core/standardData.html ]
                                              -
                                              -
                                              -
                                                -
                                                -
                                                -
                                                  -
                                                • 1、setting 配置信息说明

                                                  -
                                                    -
                                                  • 普通使用,无必须设置的参数
                                                  • -
                                                  • 与显示相关的内容请参考 API 文档中 setting.view 内的配置信息
                                                  • -
                                                  • name、children、title 等属性定义更改请参考 API 文档中 setting.data.key 内的配置信息
                                                  • -
                                                  -
                                                • -
                                                • 2、treeNode 节点数据说明

                                                  -
                                                    -
                                                  • 标准的 JSON 数据需要嵌套表示节点的父子包含关系 -
                                                    例如:
                                                    -var nodes = [
                                                    -	{name: "父节点1", children: [
                                                    -		{name: "子节点1"},
                                                    -		{name: "子节点2"}
                                                    -	]}
                                                    -];
                                                    -
                                                  • -
                                                  • 默认展开的节点,请设置 treeNode.open 属性
                                                  • -
                                                  • 无子节点的父节点,请设置 treeNode.isParent 属性
                                                  • -
                                                  • 其他属性说明请参考 API 文档中 "treeNode 节点数据详解"
                                                  • -
                                                  -
                                                • -
                                                -
                                                -
                                                - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/update_fun.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/update_fun.html deleted file mode 100644 index a783e5ac..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/update_fun.html +++ /dev/null @@ -1,143 +0,0 @@ - - - - ZTREE DEMO - updateNode - - - - - - - - - - - -

                                                用 zTree 方法 更新 节点数据

                                                -
                                                [ 文件路径: core/update_fun.html ]
                                                -
                                                -
                                                -
                                                  -
                                                  -
                                                  -
                                                    -
                                                  • 1、updateNode 方法操作说明

                                                    -
                                                      -
                                                    • 使用 zTreeObj.updateNode 方法,详细请参见 API 文档中的相关内容
                                                    • -
                                                    • 此 Demo 只能同时选中一个节点
                                                      - 试试看:[ 换名字 ] -     [ 换图标 ] -     [ 换颜色 ] -     [ 斜体 ]

                                                      -
                                                    • -
                                                    -
                                                  • -
                                                  • 2、setting 配置信息说明

                                                    -
                                                      -
                                                    • 不需要对 setting 进行特殊设置
                                                    • -
                                                    • 配合 setting.view.fontCss 可以修改节点文字样式
                                                    • -
                                                    -
                                                  • -
                                                  • 3、treeNode 节点数据说明

                                                    -
                                                      -
                                                    • zTreeObj.updateNode 方法的 API 文档中有详细说明
                                                    • -
                                                    -
                                                  • -
                                                  • 4、其他说明

                                                    -
                                                      -
                                                    • 此 Demo 是针对 核心 js 包 core 制作的,因此不包括 checkbox 的更新操作
                                                    • -
                                                    -
                                                  • -
                                                  -
                                                  -
                                                  - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/url.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/url.html deleted file mode 100644 index e3f20b82..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/url.html +++ /dev/null @@ -1,63 +0,0 @@ - - - - ZTREE DEMO - url - - - - - - - - - - -

                                                  超链接演示

                                                  -
                                                  [ 文件路径: core/url.html ]
                                                  -
                                                  -
                                                  -
                                                    -
                                                    -
                                                    -
                                                      -
                                                    • 1、setting 配置信息说明

                                                      -
                                                        -
                                                      • 普通使用,无必须设置的参数
                                                      • -
                                                      • 如果需要灵活控制超链接跳转,请利用 onClick 事件回调函数进行控制,详细请参见 API 文档中的相关内容
                                                      • -
                                                      -
                                                    • -
                                                    • 2、treeNode 节点数据说明

                                                      -
                                                        -
                                                      • 1、url 属性用于设置 页面跳转的路径
                                                      • -
                                                      • 2、target 属性用于设置 页面跳转的窗口目标
                                                      • -
                                                      • 3、click 属性用于设置简单的 onClick 事件
                                                      • -
                                                      • 其他属性说明请参考 API 文档中 "treeNode 节点数据详解"
                                                      • -
                                                      -
                                                    • -
                                                    -
                                                    -
                                                    - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/checkbox.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/checkbox.html deleted file mode 100644 index 6fb6f014..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/checkbox.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - ZTREE DEMO - checkbox - - - - - - - - - - - -

                                                    Checkbox 勾选操作

                                                    -
                                                    [ 文件路径: excheck/checkbox.html ]
                                                    -
                                                    -
                                                    -
                                                      -
                                                      -
                                                      -
                                                        -
                                                      • 1、setting 配置信息说明

                                                        -
                                                          -
                                                        • 使用 checkbox,必须设置 setting.check 中的各个属性,详细请参见 API 文档中的相关内容
                                                        • -
                                                        • 父子关联关系:
                                                          - 被勾选时:关联父 - 关联子
                                                          - 取消勾选时:关联父 - 关联子
                                                          -

                                                            -
                                                          • -
                                                          -
                                                        • -
                                                        • 2、treeNode 节点数据说明

                                                          -
                                                            -
                                                          • 1)、如果需要初始化默认节点被勾选,请设置 treeNode.checked 属性,详细请参见 API 文档中的相关内容
                                                          • -
                                                          • 2)、如果某节点禁用 checkbox,请设置 treeNode.chkDisabled 属性,详细请参见 API 文档中的相关内容 和 'chkDisabled 演示'
                                                          • -
                                                          • 3)、如果某节点不显示 checkbox,请设置 treeNode.nocheck 属性,详细请参见 API 文档中的相关内容 和 'nocheck 演示'
                                                          • -
                                                          • 4)、如果更换 checked 属性,请参考 API 文档中 setting.data.key.checked 的详细说明
                                                          • -
                                                          • 5)、其他请参考 API 文档中 treeNode.checkedOld / getCheckStatus / check_Child_State / check_Focus 的详细说明
                                                          • -
                                                          -
                                                        • -
                                                        -
                                                        -
                                                        - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/checkbox_chkDisabled.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/checkbox_chkDisabled.html deleted file mode 100644 index 3be24671..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/checkbox_chkDisabled.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - ZTREE DEMO - Checkbox chkDisabled - - - - - - - - - - - -

                                                        Checkbox chkDisabled 演示

                                                        -
                                                        [ 文件路径: excheck/checkbox_chkDisabled.html ]
                                                        -
                                                        -
                                                        -
                                                          -
                                                          -
                                                          -
                                                            -
                                                          • 1、setChkDisabled 方法操作说明

                                                            -
                                                              -
                                                            • setChkDisabled 方法可以设置节点 checkbox / radio 禁用 或 取消禁用,详细请参见 API 文档中的相关内容
                                                            • -
                                                            • 试试看:
                                                              - 禁用时:关联父 - 关联子
                                                              - 取消禁用时:关联父 - 关联子
                                                              -     [ 禁用 ] -     [ 取消禁用 ] -

                                                            • -
                                                            -
                                                          • -
                                                          • 2、setting 配置信息说明

                                                            -
                                                              -
                                                            • 这个 Demo 只简单演示 chkDisabled 的使用方法,详细配置信息请参考 ‘Checkbox 勾选操作’
                                                            • -
                                                            -
                                                          • -
                                                          • 3、treeNode 节点数据说明

                                                            -
                                                              -
                                                            • 1)、如果某节点禁用 checkbox,请设置 treeNode.chkDisabled 属性,详细请参见 API 文档中的相关内容
                                                            • -
                                                            • 2)、其他请参考 ‘Checkbox 勾选操作’
                                                            • -
                                                            -
                                                          • -
                                                          -
                                                          -
                                                          - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/checkbox_count.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/checkbox_count.html deleted file mode 100644 index a7216710..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/checkbox_count.html +++ /dev/null @@ -1,126 +0,0 @@ - - - - ZTREE DEMO - getChangeCheckedNodes / getCheckedNodes - - - - - - - - - - - -

                                                          checkbox 勾选统计

                                                          -
                                                          [ 文件路径: excheck/checkbox_count.html ]
                                                          -
                                                          -
                                                          -
                                                            -
                                                            -
                                                            -
                                                              -
                                                            • 1、getChangeCheckedNodes / getCheckedNodes 方法操作说明

                                                              -
                                                                -
                                                              • 使用 zTreeObj.getChangeCheckedNodes / getCheckedNodes 方法,详细请参见 API 文档中的相关内容
                                                              • -
                                                              • 去勾选 checkbox 比较下面的数字变化:
                                                                -

                                                                  -
                                                                • 当前被勾选的节点共
                                                                • -
                                                                • 当前未被勾选的节点共
                                                                • -
                                                                • 勾选状态对比规则:与 zTree 初始化时对比
                                                                  - 与上一次勾选后对比
                                                                • -
                                                                • 当前被修改勾选状态的节点共
                                                                • -

                                                                -
                                                              • -
                                                              -
                                                            • -
                                                            • 2、setting 配置信息说明

                                                              -
                                                                -
                                                              • 同 "checkbox 勾选操作" 中的说明
                                                              • -
                                                              -
                                                            • -
                                                            • 3、treeNode 节点数据说明

                                                              -
                                                                -
                                                              • 同 "checkbox 勾选操作" 中的说明
                                                              • -
                                                              -
                                                            • -
                                                            -
                                                            -
                                                            - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/checkbox_fun.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/checkbox_fun.html deleted file mode 100644 index 2fb7960b..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/checkbox_fun.html +++ /dev/null @@ -1,172 +0,0 @@ - - - - ZTREE DEMO - beforeCheck / onCheck - - - - - - - - - - - -

                                                            用 zTree 方法 勾选 checkbox

                                                            -
                                                            [ 文件路径: excheck/checkbox_fun.html ]
                                                            -
                                                            -
                                                            -
                                                              -
                                                              -
                                                              -
                                                                -
                                                              • 1、beforeCheck / onCheck 事件回调函数控制

                                                                -
                                                                  -
                                                                • 利用 beforeCheck / onCheck 事件回调函数 可以控制是否允许 更改 节点勾选状态,这里简单演示如何监控此事件
                                                                • -
                                                                • 这里还演示了 checkNode / checkAllNodes 方法触发 beforeCheck / onCheck 事件回调函数的情况,试试看:
                                                                  -      setting.check.autoCheckTrigger: false
                                                                  -      执行勾选方法是否触发 callback
                                                                  -     单节点--[ 勾选 ] -     [ 取消勾选 ] -     [ 勾选 切换 ]
                                                                  -     单节点 ( 影响父子 )--[ 勾选 ] -     [ 取消勾选 ] -     [ 勾选 切换 ]
                                                                  -     全部节点--[ 勾选 ] -     [ 取消勾选 ]

                                                                  -
                                                                • -
                                                                • 使用 zTreeObj.checkNode / checkAllNodes 方法,详细请参见 API 文档中的相关内容
                                                                  - beforeCheck / onCheck log:
                                                                  -

                                                                    -
                                                                  • -
                                                                  -
                                                                • -
                                                                • 2、setting 配置信息说明

                                                                  -
                                                                    -
                                                                  • 同 "checkbox 勾选操作" 中的说明
                                                                  • -
                                                                  -
                                                                • -
                                                                • 3、treeNode 节点数据说明

                                                                  -
                                                                    -
                                                                  • 同 "checkbox 勾选操作" 中的说明
                                                                  • -
                                                                  -
                                                                • -
                                                                -
                                                                -
                                                                - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/checkbox_halfCheck.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/checkbox_halfCheck.html deleted file mode 100644 index 34929d5a..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/checkbox_halfCheck.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - ZTREE DEMO - Checkbox halfCheck - - - - - - - - - - - -

                                                                Checkbox halfCheck 演示

                                                                -
                                                                [ 文件路径: excheck/checkbox_halfCheck.html ]
                                                                -
                                                                -
                                                                -
                                                                  -
                                                                  -
                                                                  -
                                                                    -
                                                                  • 1、演示说明

                                                                    -
                                                                      -
                                                                    • 这个演示式实现了 异步加载模式 下简单的勾选操作
                                                                    • -
                                                                    • 1)、加载子节点后,父节点的 halfCheck 立刻失效
                                                                    • -
                                                                    • 2)、勾选父节点,可以影响之后加载的子节点的勾选状态
                                                                    • -
                                                                    • 3)、勾选父节点,可以让其子节点的 halfCheck 属性失效
                                                                    • -
                                                                    -
                                                                  • -
                                                                  • 2、setting 配置信息说明

                                                                    -
                                                                      -
                                                                    • 实现半勾选功能,不需要配置任何参数。但半勾选功能属于辅助功能,无法单独使用,因此也需要根据自己的需求配置特定参数。
                                                                    • -
                                                                    -
                                                                  • -
                                                                  • 3、treeNode 节点数据说明

                                                                    -
                                                                      -
                                                                    • 1)、请在节点初始化之前,设置 treeNode.halfCheck 属性,详细请参见 API 文档中的相关内容
                                                                    • -
                                                                    • 2)、其他请参考 ‘Checkbox 勾选操作’
                                                                    • -
                                                                    -
                                                                  • -
                                                                  -
                                                                  -
                                                                  - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/checkbox_nocheck.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/checkbox_nocheck.html deleted file mode 100644 index 42547a35..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/checkbox_nocheck.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - ZTREE DEMO - no checkbox - - - - - - - - - - - -

                                                                  Checkbox nocheck 演示

                                                                  -
                                                                  [ 文件路径: excheck/checkbox_nocheck.html ]
                                                                  -
                                                                  -
                                                                  -
                                                                    -
                                                                    -
                                                                    -
                                                                      -
                                                                    • 1、setting 配置信息说明

                                                                      -
                                                                        -
                                                                      • 这个 Demo 只简单演示 nocheck 的使用方法,详细配置信息请参考 ‘Checkbox 勾选操作’
                                                                      • -
                                                                      • setting.check.nocheckInherit 可以设置子节点自动继承父节点的 nocheck 属性,详细请参见 API 文档中的相关内容
                                                                      • -
                                                                      • 试试看:
                                                                        -     [ 隐藏 ] -     [ 显示 ] -

                                                                      • -
                                                                      -
                                                                    • -
                                                                    • 2、treeNode 节点数据说明

                                                                      -
                                                                        -
                                                                      • 1)、如果某节点不显示 checkbox,请设置 treeNode.nocheck 属性,详细请参见 API 文档中的相关内容
                                                                      • -
                                                                      • 2)、其他请参考 ‘Checkbox 勾选操作’
                                                                      • -
                                                                      -
                                                                    • -
                                                                    -
                                                                    -
                                                                    - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/radio.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/radio.html deleted file mode 100644 index c89f5d80..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/radio.html +++ /dev/null @@ -1,97 +0,0 @@ - - - - ZTREE DEMO - radio - - - - - - - - - - - -

                                                                    Radio 勾选操作

                                                                    -
                                                                    [ 文件路径: excheck/radio.html ]
                                                                    -
                                                                    -
                                                                    -
                                                                      -
                                                                      -
                                                                      -
                                                                        -
                                                                      • 1、setting 配置信息说明

                                                                        -
                                                                          -
                                                                        • 使用 radio,必须设置 setting.check 中的各个属性,详细请参见 API 文档中的相关内容
                                                                        • -
                                                                        • radio 分组范围:同一级内 - 整棵树内
                                                                          -

                                                                            -
                                                                          • -
                                                                          -
                                                                        • -
                                                                        • 2、treeNode 节点数据说明

                                                                          -
                                                                            -
                                                                          • 1)、如果需要初始化默认节点被勾选,请设置 treeNode.checked 属性,详细请参见 API 文档中的相关内容
                                                                          • -
                                                                          • 2)、如果某节点不显示 radio,请设置 treeNode.nocheck 属性,详细请参见 API 文档中的相关内容
                                                                          • -
                                                                          • 3)、如果更换 checked 属性,请参考 API 文档中 setting.data.key.checked 的详细说明
                                                                          • -
                                                                          • 4)、其他请参考 API 文档中 treeNode.checkedOld / getCheckStatus / check_Child_State / check_Focus 的详细说明
                                                                          • -
                                                                          -
                                                                        • -
                                                                        -
                                                                        -
                                                                        - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/radio_chkDisabled.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/radio_chkDisabled.html deleted file mode 100644 index 103b32b5..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/radio_chkDisabled.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - ZTREE DEMO - Radio chkDisabled - - - - - - - - - - - -

                                                                        Radio chkDisabled 演示

                                                                        -
                                                                        [ 文件路径: excheck/radio_chkDisabled.html ]
                                                                        -
                                                                        -
                                                                        -
                                                                          -
                                                                          -
                                                                          -
                                                                            -
                                                                          • 1、setChkDisabled 方法操作说明

                                                                            -
                                                                              -
                                                                            • setChkDisabled 方法可以设置节点 checkbox / radio 禁用 或 取消禁用,详细请参见 API 文档中的相关内容
                                                                            • -
                                                                            • 试试看:
                                                                              -     [ 禁用 ] -     [ 取消禁用 ]

                                                                              -
                                                                            • -
                                                                            -
                                                                          • -
                                                                          • 2、setting 配置信息说明

                                                                            -
                                                                              -
                                                                            • 这个 Demo 只简单演示 chkDisabled 的使用方法,详细配置信息请参考 ‘Radio 勾选操作’
                                                                            • -
                                                                            -
                                                                          • -
                                                                          • 3、treeNode 节点数据说明

                                                                            -
                                                                              -
                                                                            • 1)、如果某节点不显示 radio,请设置 treeNode.chkDisabled 属性,详细请参见 API 文档中的相关内容
                                                                            • -
                                                                            • 2)、其他请参考 ‘Radio 勾选操作’
                                                                            • -
                                                                            -
                                                                          • -
                                                                          -
                                                                          -
                                                                          - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/radio_fun.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/radio_fun.html deleted file mode 100644 index c6c63037..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/radio_fun.html +++ /dev/null @@ -1,151 +0,0 @@ - - - - ZTREE DEMO - beforeCheck / onCheck - - - - - - - - - - - -

                                                                          用 zTree 方法 勾选 radio

                                                                          -
                                                                          [ 文件路径: excheck/radio_fun.html ]
                                                                          -
                                                                          -
                                                                          -
                                                                            -
                                                                            -
                                                                            -
                                                                              -
                                                                            • 1、beforeCheck / onCheck 事件回调函数控制

                                                                              -
                                                                                -
                                                                              • 利用 beforeCheck / onCheck 事件回调函数 可以控制是否允许 更改 节点勾选状态,这里简单演示如何监控此事件
                                                                              • -
                                                                              • 试试看:
                                                                                -      checkNode 方法是否触发 callback
                                                                                -     [ 勾选 ] -     [ 取消勾选 ]

                                                                                -
                                                                              • 使用 zTreeObj.checkNode 方法,详细请参见 API 文档中的相关内容
                                                                                - beforeCheck / onCheck log:
                                                                                -

                                                                                  -
                                                                                • -
                                                                                -
                                                                              • -
                                                                              • 2、setting 配置信息说明

                                                                                -
                                                                                  -
                                                                                • 同 "radio 勾选操作" 中的说明
                                                                                • -
                                                                                -
                                                                              • -
                                                                              • 3、treeNode 节点数据说明

                                                                                -
                                                                                  -
                                                                                • 同 "radio 勾选操作" 中的说明
                                                                                • -
                                                                                -
                                                                              • -
                                                                              -
                                                                              -
                                                                              - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/radio_halfCheck.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/radio_halfCheck.html deleted file mode 100644 index 1bbdff02..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/radio_halfCheck.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - ZTREE DEMO - Radio halfCheck - - - - - - - - - - - -

                                                                              Radio halfCheck 演示

                                                                              -
                                                                              [ 文件路径: excheck/radio_halfCheck.html ]
                                                                              -
                                                                              -
                                                                              -
                                                                                -
                                                                                -
                                                                                -
                                                                                  -
                                                                                • 1、演示说明

                                                                                  -
                                                                                    -
                                                                                  • 这个演示式实现了 异步加载模式 下简单的勾选操作
                                                                                  • -
                                                                                  • 1)、加载子节点后,父节点的 halfCheck 立刻失效
                                                                                  • -
                                                                                  • 2)、勾选父节点,不会影响子节点的勾选状态
                                                                                  • -
                                                                                  • 3)、勾选父节点,不会让其子节点的 halfCheck 属性失效
                                                                                  • -
                                                                                  -
                                                                                • -
                                                                                • 2、setting 配置信息说明

                                                                                  -
                                                                                    -
                                                                                  • 实现半勾选功能,不需要配置任何参数。但半勾选功能属于辅助功能,无法单独使用,因此也需要根据自己的需求配置特定参数。
                                                                                  • -
                                                                                  -
                                                                                • -
                                                                                • 3、treeNode 节点数据说明

                                                                                  -
                                                                                    -
                                                                                  • 1)、请在节点初始化之前,设置 treeNode.halfCheck 属性,详细请参见 API 文档中的相关内容
                                                                                  • -
                                                                                  • 2)、其他请参考 ‘Radio 勾选操作’
                                                                                  • -
                                                                                  -
                                                                                • -
                                                                                -
                                                                                -
                                                                                - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/radio_nocheck.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/radio_nocheck.html deleted file mode 100644 index fc3ba8c5..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/radio_nocheck.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - ZTREE DEMO - no radio - - - - - - - - - - - -

                                                                                Radio nocheck 演示

                                                                                -
                                                                                [ 文件路径: excheck/radio_nocheck.html ]
                                                                                -
                                                                                -
                                                                                -
                                                                                  -
                                                                                  -
                                                                                  -
                                                                                    -
                                                                                  • 1、setting 配置信息说明

                                                                                    -
                                                                                      -
                                                                                    • 这个 Demo 只简单演示 nocheck 的使用方法,详细配置信息请参考 ‘Radio 勾选操作’
                                                                                    • -
                                                                                    • setting.check.nocheckInherit 可以设置子节点自动继承父节点的 nocheck 属性,详细请参见 API 文档中的相关内容
                                                                                    • -
                                                                                    -
                                                                                  • -
                                                                                  • 2、treeNode 节点数据说明

                                                                                    -
                                                                                      -
                                                                                    • 1)、如果某节点不显示 radio,请设置 treeNode.nocheck 属性,详细请参见 API 文档中的相关内容
                                                                                    • -
                                                                                    • 2)、其他请参考 ‘Radio 勾选操作’
                                                                                    • -
                                                                                    -
                                                                                  • -
                                                                                  -
                                                                                  -
                                                                                  - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exedit/async_edit.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exedit/async_edit.html deleted file mode 100644 index e519fdfd..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exedit/async_edit.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - ZTREE DEMO - async & edit - - - - - - - - - - - - -

                                                                                  异步加载 & 编辑功能 共存

                                                                                  -
                                                                                  [ 文件路径: exedit/async_edit.html ]
                                                                                  -
                                                                                  -
                                                                                  -
                                                                                    -
                                                                                    -
                                                                                    -
                                                                                      -
                                                                                    • 1、异步加载 & 编辑功能 共存说明

                                                                                      -
                                                                                        -
                                                                                      • 1)、此 Demo 是基于 "高级 增 / 删 / 改 节点" 修改的,并且开放了拖拽功能,可与其进行对比
                                                                                      • -
                                                                                      • 2)、只需要同时开启编辑模式和异步加载模式即可实现共存
                                                                                      • -
                                                                                      • 3)、zTree 完善了异步加载模式下的编辑功能,对于未加载子节点的父节点,增加子节点时,会首先进行异步加载。
                                                                                      • -
                                                                                      -
                                                                                    • -
                                                                                    • 2、setting 配置信息说明

                                                                                      -
                                                                                        -
                                                                                      • 1)、使用 编辑功能,请参考 "拖拽节点基本控制" 和 "基本 增 / 删 / 改 节点" Demo 中关于 setting 的配置要求
                                                                                      • -
                                                                                      • 2)、使用 异步加载功能,请参考 "异步加载 节点数据" Demo 中关于 setting 的配置要求
                                                                                      • -
                                                                                      -
                                                                                    • -
                                                                                    • 3、treeNode 节点数据说明

                                                                                      -
                                                                                        -
                                                                                      • 两种模式共存,对数据无特殊要求,请分别参考 "异步加载 节点数据" & "拖拽 节点 基本控制" & "基本 增 / 删 / 改 节点" 中的相关说明
                                                                                      • -
                                                                                      -
                                                                                    • -
                                                                                    -
                                                                                    -
                                                                                    - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exedit/drag.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exedit/drag.html deleted file mode 100644 index ccc474fe..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exedit/drag.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - ZTREE DEMO - drag & drop - - - - - - - - - - - -

                                                                                    拖拽节点基本控制

                                                                                    -
                                                                                    [ 文件路径: exedit/drag.html ]
                                                                                    -
                                                                                    -
                                                                                    -
                                                                                      -
                                                                                      -
                                                                                      -
                                                                                        -
                                                                                      • 1、setting 配置信息说明

                                                                                        -
                                                                                          -
                                                                                        • 此 Demo 仅从功能上演示实现拖拽的基本方法和配置参数
                                                                                        • -
                                                                                        • 1)、使用 拖拽功能,必须设置 setting.edit 中的各个属性,详细请参见 API 文档中的相关内容
                                                                                        • -
                                                                                        • 2)、使用 拖拽功能的事件回调函数,必须设置 setting.callback.beforeDrag / onDrag / beforeDrop / onDrop 等属性,详细请参见 API 文档中的相关内容
                                                                                        • -
                                                                                        • 基本拖拽设置:
                                                                                          - 允许复制 - 允许移动
                                                                                          -

                                                                                            -
                                                                                          • -
                                                                                          • 拖拽相对位置设置:
                                                                                            - prev - inner - next
                                                                                            -

                                                                                              -
                                                                                            • -
                                                                                            -
                                                                                          • -
                                                                                          • 2、treeNode 节点数据说明

                                                                                            -
                                                                                              -
                                                                                            • 对 节点数据 没有特殊要求,用户可以根据自己的需求添加自定义属性
                                                                                            • -
                                                                                            -
                                                                                          • -
                                                                                          -
                                                                                          -
                                                                                          - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exedit/drag_fun.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exedit/drag_fun.html deleted file mode 100644 index 94628639..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exedit/drag_fun.html +++ /dev/null @@ -1,180 +0,0 @@ - - - - ZTREE DEMO - copyNode / moveNode - - - - - - - - - - - - -

                                                                                          用 zTree 方法 移动 / 复制节点

                                                                                          -
                                                                                          [ 文件路径: exedit/drag_fun.html ]
                                                                                          -
                                                                                          -
                                                                                          -
                                                                                            -
                                                                                            -
                                                                                            -
                                                                                              -
                                                                                            • 1、copyNode / moveNode 方法操作说明

                                                                                              -
                                                                                                -
                                                                                              • 利用 copyNode / moveNode 方法也可以实现 复制 / 移动 节点的目的,这里简单演示使用方法
                                                                                              • -
                                                                                              • 对节点进行 复制 / 剪切,试试看:
                                                                                                -     [ 复制 ] -     [ 剪切 ] -     [ 粘贴 ]

                                                                                                -
                                                                                              • 使用 zTreeObj.copyNode / moveNode 方法,详细请参见 API 文档中的相关内容
                                                                                              • -
                                                                                              -
                                                                                            • -
                                                                                            • 2、setting 配置信息说明

                                                                                              -
                                                                                                -
                                                                                              • 同 "拖拽 节点 基本控制"
                                                                                              • -
                                                                                              -
                                                                                            • -
                                                                                            • 3、treeNode 节点数据说明

                                                                                              -
                                                                                                -
                                                                                              • 同 "拖拽 节点 基本控制"
                                                                                              • -
                                                                                              -
                                                                                            • -
                                                                                            -
                                                                                            -
                                                                                            - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exedit/drag_super.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exedit/drag_super.html deleted file mode 100644 index 9cf713b6..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exedit/drag_super.html +++ /dev/null @@ -1,210 +0,0 @@ - - - - ZTREE DEMO - beforeDrag / onDrag / beforeDrop / onDrop - - - - - - - - - - - -

                                                                                            拖拽节点高级控制

                                                                                            -
                                                                                            [ 文件路径: exedit/drag_super.html ]
                                                                                            -
                                                                                            -
                                                                                            -
                                                                                              -
                                                                                              -
                                                                                              -
                                                                                                -
                                                                                              • 1、beforeDrag / onDrag
                                                                                                  beforeDrop / onDrop 事件回调函数控制

                                                                                                -
                                                                                                  -
                                                                                                • 此 Demo 演示合理利用配置参数实现更加灵活、更加合理的拖拽规则,操作时可以对比"基本控制"的例子
                                                                                                • -
                                                                                                • 此 Demo 默认 允许复制 / 移动
                                                                                                • -
                                                                                                • 此 Demo 中拖拽相对位置设置为 function,可以根据节点动态设定,从而可以放弃使用 beforeDrop 回调函数,拖拽时的效果会更好
                                                                                                • -
                                                                                                • 在对这些灵活的配置熟悉以后,相信你能够做出更加合理的拖拽规则!
                                                                                                  -      拖拽节点时自动展开父节点是否触发 callback
                                                                                                  - drag / drop log:
                                                                                                  -

                                                                                                  • -
                                                                                                  -
                                                                                                • -
                                                                                                • 2、setting 配置信息说明

                                                                                                  -
                                                                                                    -
                                                                                                  • 同 "拖拽 节点 基本控制"
                                                                                                  • -
                                                                                                  -
                                                                                                • -
                                                                                                • 3、treeNode 节点数据说明

                                                                                                  -
                                                                                                    -
                                                                                                  • 同 "拖拽 节点 基本控制"
                                                                                                  • -
                                                                                                  -
                                                                                                • -
                                                                                                -
                                                                                                -
                                                                                                - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exedit/edit.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exedit/edit.html deleted file mode 100644 index 930b360b..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exedit/edit.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - ZTREE DEMO - edit - - - - - - - - - - - -

                                                                                                基本 增 / 删 / 改 节点

                                                                                                -
                                                                                                [ 文件路径: exedit/edit.html ]
                                                                                                -
                                                                                                -
                                                                                                -
                                                                                                  -
                                                                                                  -
                                                                                                  -
                                                                                                    -
                                                                                                  • 1、setting 配置信息说明

                                                                                                    -
                                                                                                      -
                                                                                                    • 此 Demo 仅从功能上演示编辑节点的基本方法和配置参数
                                                                                                    • -
                                                                                                    • 1)、使用 编辑功能,必须设置 setting.edit 中的各个属性,详细请参见 API 文档中的相关内容
                                                                                                    • -
                                                                                                    • 2)、使用 编辑功能的事件回调函数,必须设置 setting.callback.beforeRemove / onRemove / beforeRename / onRename 等属性,详细请参见 API 文档中的相关内容
                                                                                                    • -
                                                                                                    • 3)、zTree 不提供默认的增加按钮,如需实现请利用自定义控件的方法 addHoverDom / removeHoverDom ,详细请参见 API 文档中的相关内容;另外也可以参考 "高级 增 / 删 / 改 节点" 的 Demo
                                                                                                    • -
                                                                                                    • 基本编辑按钮设置:
                                                                                                      - 显示删除按钮 - 显示编辑按钮
                                                                                                      - remove 按钮的 title:
                                                                                                      - rename 按钮的 title: -

                                                                                                        -
                                                                                                      • -
                                                                                                      -
                                                                                                    • -
                                                                                                    • 2、treeNode 节点数据说明

                                                                                                      -
                                                                                                        -
                                                                                                      • 对 节点数据 没有特殊要求,用户可以根据自己的需求添加自定义属性
                                                                                                      • -
                                                                                                      -
                                                                                                    • -
                                                                                                    -
                                                                                                    -
                                                                                                    - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exedit/edit_fun.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exedit/edit_fun.html deleted file mode 100644 index c322b0ce..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exedit/edit_fun.html +++ /dev/null @@ -1,194 +0,0 @@ - - - - ZTREE DEMO - addNodes / editName / removeNode / removeChildNodes - - - - - - - - - - - -

                                                                                                    用 zTree 方法 增 / 删 / 改 节点

                                                                                                    -
                                                                                                    [ 文件路径: exedit/edit_fun.html ]
                                                                                                    -
                                                                                                    -
                                                                                                    -
                                                                                                      -
                                                                                                      -
                                                                                                      -
                                                                                                        -
                                                                                                      • 1、addNodes / editName / removeNode / removeChildNodes 方法操作说明

                                                                                                        -
                                                                                                          -
                                                                                                        • 利用 addNodes / editName / removeNode / removeChildNodes 方法也可以实现 增 / 删 / 改 节点的目的,这里简单演示使用方法
                                                                                                        • -
                                                                                                        • cancelEditName 方法仅仅是在节点进入名称编辑状态时有效,请在必要时使用,Demo 不进行此方法的演示
                                                                                                        • -
                                                                                                        • 利用 setting.data.keep.parent / leaf 属性 实现了父节点、叶子节点的状态锁定
                                                                                                        • -
                                                                                                        • 对节点进行 增 / 删 / 改,试试看:
                                                                                                          -      removeNode 方法是否触发 callback
                                                                                                          -     [ 增加父节点 ] -     [ 增加叶子节点 ] -     [ 编辑名称 ]
                                                                                                          -     [ 删除节点 ] -     [ 清空子节点 ]
                                                                                                          - remove log:
                                                                                                          -

                                                                                                            -
                                                                                                          • -
                                                                                                          • 使用 zTreeObj.addNodes / cancelEditName / editName / removeNode / removeChildNodes 方法,详细请参见 API 文档中的相关内容
                                                                                                          • -
                                                                                                          -
                                                                                                        • -
                                                                                                        • 2、setting 配置信息说明

                                                                                                          -
                                                                                                            -
                                                                                                          • 同 "基本 增 / 删 / 改 节点"
                                                                                                          • -
                                                                                                          • 保持 父 / 叶子 节点状态,需要设置 setting.data.keep.parent / leaf 属性,详细请参见 API 文档中的相关内容
                                                                                                          • -
                                                                                                          -
                                                                                                        • -
                                                                                                        • 3、treeNode 节点数据说明

                                                                                                          -
                                                                                                            -
                                                                                                          • 同 "基本 增 / 删 / 改 节点"
                                                                                                          • -
                                                                                                          -
                                                                                                        • -
                                                                                                        -
                                                                                                        -
                                                                                                        - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exedit/edit_super.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exedit/edit_super.html deleted file mode 100644 index cc70ecf0..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exedit/edit_super.html +++ /dev/null @@ -1,192 +0,0 @@ - - - - ZTREE DEMO - beforeEditName / beforeRemove / onRemove / beforeRename / onRename - - - - - - - - - - - - -

                                                                                                        高级 增 / 删 / 改 节点

                                                                                                        -
                                                                                                        [ 文件路径: exedit/edit_super.html ]
                                                                                                        -
                                                                                                        -
                                                                                                        -
                                                                                                          -
                                                                                                          -
                                                                                                          -
                                                                                                            -
                                                                                                          • 1、beforeEditName
                                                                                                              beforeRemove / onRemove
                                                                                                              beforeRename / onRename 事件回调函数控制

                                                                                                            -
                                                                                                              -
                                                                                                            • 此 Demo 演示合理利用自定义控件、事件回调函数配合以增强用户体验,操作时可以对比"基本 增 / 删 / 改 节点"的 Demo
                                                                                                            • -
                                                                                                            • 此 Demo 实现增加节点按钮
                                                                                                            • -
                                                                                                            • 此 Demo 实现删除节点时进行确认
                                                                                                            • -
                                                                                                            • 此 Demo 利用 showRenameBtn 对 isLastNode = true 的节点不显示编辑按钮
                                                                                                            • -
                                                                                                            • 此 Demo 利用 showRemoveBtn 对 isFirstNode = true 的节点不显示删除按钮
                                                                                                            • -
                                                                                                            • 可以利用 beforeEditName 触发自定义的编辑操作
                                                                                                            • -
                                                                                                            • 在对这些灵活的配置熟悉以后,相信你能够做出更加合理的编辑界面!
                                                                                                              -      编辑名称时是否全选 text
                                                                                                              - remove / rename log:  红色 表示取消编辑操作 (v3.5.13+)
                                                                                                              -

                                                                                                                -
                                                                                                              • -
                                                                                                              -
                                                                                                            • -
                                                                                                            • 2、setting 配置信息说明

                                                                                                              -
                                                                                                                -
                                                                                                              • 同 "基本 增 / 删 / 改 节点"
                                                                                                              • -
                                                                                                              -
                                                                                                            • -
                                                                                                            • 3、treeNode 节点数据说明

                                                                                                              -
                                                                                                                -
                                                                                                              • 同 "基本 增 / 删 / 改 节点"
                                                                                                              • -
                                                                                                              -
                                                                                                            • -
                                                                                                            -
                                                                                                            -
                                                                                                            - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exedit/multiTree.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exedit/multiTree.html deleted file mode 100644 index 970392a0..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exedit/multiTree.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - ZTREE DEMO - multiTree - - - - - - - - - - - -

                                                                                                            多棵树之间 的 数据交互

                                                                                                            -
                                                                                                            [ 文件路径: exedit/multiTree.html ]
                                                                                                            -
                                                                                                            -
                                                                                                            -
                                                                                                              -
                                                                                                            • 1、setting 配置信息说明

                                                                                                              -
                                                                                                                -
                                                                                                              • zTree 对于多棵树之间拖拽的操作非常简单,只需要创建两棵可拖拽的树即可,同时可根据 各种事件回调函数 以及 zTree 的方法配合实现较复杂的操作规则,这里只是基本演示。
                                                                                                              • -
                                                                                                              • 关于配置信息请参考拖拽、编辑等 Demo 的详细说明
                                                                                                              • -
                                                                                                              -
                                                                                                            • -
                                                                                                            • 2、treeNode 节点数据说明

                                                                                                              -
                                                                                                                -
                                                                                                              • 对 节点数据 没有特殊要求,用户可以根据自己的需求添加自定义属性
                                                                                                              • -
                                                                                                              -
                                                                                                            • -
                                                                                                            -
                                                                                                            -
                                                                                                            -
                                                                                                              -
                                                                                                              -
                                                                                                              -
                                                                                                                -
                                                                                                                -
                                                                                                                - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exhide/checkbox.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exhide/checkbox.html deleted file mode 100644 index 47ba8992..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exhide/checkbox.html +++ /dev/null @@ -1,161 +0,0 @@ - - - - ZTREE DEMO - Hide With Checkbox Mode - - - - - - - - - - - - -

                                                                                                                配合 checkbox 的隐藏

                                                                                                                -
                                                                                                                [ 文件路径: exhide/checkbox.html ]
                                                                                                                -
                                                                                                                -
                                                                                                                -
                                                                                                                  -
                                                                                                                  -
                                                                                                                  -
                                                                                                                    -
                                                                                                                  • 1、setting 配置信息说明

                                                                                                                    -
                                                                                                                      -
                                                                                                                    • 使用隐藏功能,无需设置任何参数
                                                                                                                    • -
                                                                                                                    -
                                                                                                                  • -
                                                                                                                  • 2、treeNode 节点数据说明

                                                                                                                    -
                                                                                                                      -
                                                                                                                    • 初始化时,设置 treeNode.isHidden = true; 可以让节点隐藏
                                                                                                                    • -
                                                                                                                    • 隐藏、显示节点,看看树的变化:

                                                                                                                      - 试试看:[ 隐藏选中的节点 ] -     [ 显示全部被隐藏的节点 ]

                                                                                                                      -

                                                                                                                        -
                                                                                                                      • isHidden = true 的节点共
                                                                                                                      • -
                                                                                                                      • 被隐藏的节点共
                                                                                                                      • -
                                                                                                                      • 当前被勾选的节点共
                                                                                                                      • -
                                                                                                                      • 当前未被勾选的节点共
                                                                                                                      • -
                                                                                                                      • 隐藏节点后,可以看看仍显示节点的 isFirstNode 和 isLastNode 属性
                                                                                                                      • -

                                                                                                                      -
                                                                                                                    • -
                                                                                                                    -
                                                                                                                  • -
                                                                                                                  • 3、其他说明

                                                                                                                    -
                                                                                                                      -
                                                                                                                    • 隐藏节点操作,会影响 isFirstNode 和 isLastNode 属性,但是对于 getPreNode() 和 getNextNode() 方法无影响
                                                                                                                    • -
                                                                                                                    -
                                                                                                                  • -
                                                                                                                  -
                                                                                                                  -
                                                                                                                  - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exhide/common.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exhide/common.html deleted file mode 100644 index 65ea64e8..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exhide/common.html +++ /dev/null @@ -1,126 +0,0 @@ - - - - ZTREE DEMO - Hide Ordinary Node - - - - - - - - - - - -

                                                                                                                  隐藏普通节点

                                                                                                                  -
                                                                                                                  [ 文件路径: exhide/common.html ]
                                                                                                                  -
                                                                                                                  -
                                                                                                                  -
                                                                                                                    -
                                                                                                                    -
                                                                                                                    -
                                                                                                                      -
                                                                                                                    • 1、setting 配置信息说明

                                                                                                                      -
                                                                                                                        -
                                                                                                                      • 使用此功能,无需设置任何参数
                                                                                                                      • -
                                                                                                                      -
                                                                                                                    • -
                                                                                                                    • 2、treeNode 节点数据说明

                                                                                                                      -
                                                                                                                        -
                                                                                                                      • 初始化时,设置 treeNode.isHidden = true; 可以让节点隐藏
                                                                                                                      • -
                                                                                                                      • 隐藏、显示节点,看看树的变化:

                                                                                                                        - 试试看:[ 隐藏选中的节点 ] -     [ 显示全部被隐藏的节点 ]

                                                                                                                        -

                                                                                                                          -
                                                                                                                        • isHidden = true 的节点共
                                                                                                                        • -
                                                                                                                        • 隐藏节点后,可以看看仍显示节点的 isFirstNode 和 isLastNode 属性
                                                                                                                        • -

                                                                                                                        -
                                                                                                                      • -
                                                                                                                      -
                                                                                                                    • -
                                                                                                                    • 3、其他说明

                                                                                                                      -
                                                                                                                        -
                                                                                                                      • 隐藏节点操作,会影响 isFirstNode 和 isLastNode 属性,但是对于 getPreNode() 和 getNextNode() 方法无影响
                                                                                                                      • -
                                                                                                                      -
                                                                                                                    • -
                                                                                                                    -
                                                                                                                    -
                                                                                                                    - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exhide/radio.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exhide/radio.html deleted file mode 100644 index 481d029f..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exhide/radio.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - ZTREE DEMO - Hide With Radio Mode - - - - - - - - - - - - -

                                                                                                                    配合 radio 的隐藏

                                                                                                                    -
                                                                                                                    [ 文件路径: exhide/radio.html ]
                                                                                                                    -
                                                                                                                    -
                                                                                                                    -
                                                                                                                      -
                                                                                                                      -
                                                                                                                      -
                                                                                                                        -
                                                                                                                      • 1、setting 配置信息说明

                                                                                                                        -
                                                                                                                          -
                                                                                                                        • 使用隐藏功能,无需设置任何参数
                                                                                                                        • -
                                                                                                                        -
                                                                                                                      • -
                                                                                                                      • 2、treeNode 节点数据说明

                                                                                                                        -
                                                                                                                          -
                                                                                                                        • 初始化时,设置 treeNode.isHidden = true; 可以让节点隐藏
                                                                                                                        • -
                                                                                                                        • 隐藏、显示节点,看看树的变化:

                                                                                                                          - 试试看:[ 隐藏选中的节点 ] -     [ 显示全部被隐藏的节点 ]

                                                                                                                          -

                                                                                                                            -
                                                                                                                          • isHidden = true 的节点共
                                                                                                                          • -
                                                                                                                          • 被隐藏的节点共
                                                                                                                          • -
                                                                                                                          • 当前被勾选的节点共
                                                                                                                          • -
                                                                                                                          • 当前未被勾选的节点共
                                                                                                                          • -
                                                                                                                          • 隐藏节点后,可以看看仍显示节点的 isFirstNode 和 isLastNode 属性
                                                                                                                          • -

                                                                                                                          -
                                                                                                                        • -
                                                                                                                        -
                                                                                                                      • -
                                                                                                                      • 3、其他说明

                                                                                                                        -
                                                                                                                          -
                                                                                                                        • 隐藏节点操作,会影响 isFirstNode 和 isLastNode 属性,但是对于 getPreNode() 和 getNextNode() 方法无影响
                                                                                                                        • -
                                                                                                                        -
                                                                                                                      • -
                                                                                                                      -
                                                                                                                      -
                                                                                                                      - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/index.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/index.html deleted file mode 100644 index 98f39ece..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/index.html +++ /dev/null @@ -1,170 +0,0 @@ - - - - ZTREE DEMO - - - - - - - - - - - - - - -
                                                                                                                      -
                                                                                                                        -
                                                                                                                        - -
                                                                                                                        - - - diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/asyncForAll.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/asyncForAll.html deleted file mode 100644 index d5aa2d19..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/asyncForAll.html +++ /dev/null @@ -1,191 +0,0 @@ - - - - ZTREE DEMO - async for All - - - - - - - - - - -

                                                                                                                        异步加载模式下全部展开

                                                                                                                        -
                                                                                                                        [ 文件路径: super/asyncForAll.html ]
                                                                                                                        -
                                                                                                                        -
                                                                                                                        -
                                                                                                                          -
                                                                                                                          -
                                                                                                                          -
                                                                                                                            -
                                                                                                                          • 实现方法说明

                                                                                                                            -
                                                                                                                              -
                                                                                                                            • 利用 onAsyncSuccess / onAsyncError 回调函数 和 reAsyncChildNodes 或 expandNode 方法可以实现全部功能。
                                                                                                                            • -
                                                                                                                            • 如果父节点数量很大,请注意利用延时进行控制,避免异步进程过多。
                                                                                                                            • -
                                                                                                                            • 建议:演示时请利用调试工具查看 network 的 ajax 加载过程。
                                                                                                                            • -
                                                                                                                            • 演示操作 -

                                                                                                                              - [ 全部展开 ]        - [ 后台自动全部加载 ]

                                                                                                                              - [ Reset zTree ]

                                                                                                                              -

                                                                                                                              -
                                                                                                                            • -
                                                                                                                            -
                                                                                                                          • -
                                                                                                                          -
                                                                                                                          -
                                                                                                                          - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/awesome.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/awesome.html deleted file mode 100644 index 190f12ef..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/awesome.html +++ /dev/null @@ -1,135 +0,0 @@ - - - - ZTREE DEMO - awesome 风格 - - - - - - - - - - - - - - -

                                                                                                                          Awesome 风格

                                                                                                                          -
                                                                                                                          [ 文件路径: super/awesome.html ]
                                                                                                                          -
                                                                                                                          -
                                                                                                                          -
                                                                                                                            -
                                                                                                                            -
                                                                                                                            -
                                                                                                                              -
                                                                                                                            • 实现方法说明

                                                                                                                              -
                                                                                                                                -
                                                                                                                              • 你需要在页面中引入 fontawesome 样式 (http://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css)
                                                                                                                              • -
                                                                                                                              • <= 小汽车图标 (如果 fontawesome 样式被正常加载,你可以正常看到)
                                                                                                                              • -
                                                                                                                              • 引入 适配 zTree 的 样式文件: 'css/awesomeStyle'
                                                                                                                              • -
                                                                                                                              • 感谢 mikkelking 提供这个 Demo. (仅供参考)
                                                                                                                              • - -
                                                                                                                              • Mode:
                                                                                                                                - - - -
                                                                                                                                -

                                                                                                                              • -
                                                                                                                              - -
                                                                                                                            -
                                                                                                                          • - - - - - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/checkbox_radio.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/checkbox_radio.html deleted file mode 100644 index 6c13cff8..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/checkbox_radio.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - ZTREE DEMO - checkbox & radio - - - - - - - - - - - -

                                                                                                                            checkbox / radio 共存

                                                                                                                            -
                                                                                                                            [ 文件路径: super/checkbox_radio.html ]
                                                                                                                            -
                                                                                                                            -
                                                                                                                            -
                                                                                                                              -
                                                                                                                              -
                                                                                                                              -
                                                                                                                                -
                                                                                                                              • 实现方法说明

                                                                                                                                -
                                                                                                                                  -
                                                                                                                                • zTree 默认的 checkbox 和 radio 是无法共存的,但可以利用 自定义控件 的功能实现此需求,具体需求可以参考 "添加 自定义控件" 的详细说明
                                                                                                                                • -
                                                                                                                                • 对于 checkbox / radio 的联动规则,请根据需求制定自己的规则
                                                                                                                                • -
                                                                                                                                -
                                                                                                                              • -
                                                                                                                              -
                                                                                                                              -
                                                                                                                              - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/diydom.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/diydom.html deleted file mode 100644 index fa21a9bb..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/diydom.html +++ /dev/null @@ -1,177 +0,0 @@ - - - - ZTREE DEMO - addHoverDom / removeHoverDom / addDiyDom - - - - - - - - - - - - -

                                                                                                                              添加自定义控件

                                                                                                                              -
                                                                                                                              [ 文件路径: super/diydom.html ]
                                                                                                                              -
                                                                                                                              -
                                                                                                                              -
                                                                                                                                -
                                                                                                                                -
                                                                                                                                -
                                                                                                                                  -
                                                                                                                                • 1、实现方法说明

                                                                                                                                  -
                                                                                                                                    -
                                                                                                                                  • 利用 setting.view.addHoverDom / removeHoverDom / addDiyDom 这几个参数的配置可以很容易的实现自定义控件的功能
                                                                                                                                  • -
                                                                                                                                  • 添加自定义控件,请务必掌握 zTree 节点对象的命名规则,以保证正常添加 DOM 控件
                                                                                                                                  • -
                                                                                                                                  • 如果添加标准的 select / checkbox / radio 等,请注意适当调整 zTree 的布局 css,保证 zTree 能正常显示
                                                                                                                                  • -
                                                                                                                                  -
                                                                                                                                • -
                                                                                                                                • 2、setting 配置信息说明

                                                                                                                                  -
                                                                                                                                    -
                                                                                                                                  • 使用 setting.view.addHoverDom / removeHoverDom / addDiyDom 属性,详细请参见 API 文档中的相关内容
                                                                                                                                  • -
                                                                                                                                  -
                                                                                                                                • -
                                                                                                                                • 3、treeNode 节点数据说明

                                                                                                                                  -
                                                                                                                                    -
                                                                                                                                  • 对 节点数据 没有特殊要求,用户可以根据自己的需求添加自定义属性
                                                                                                                                  • -
                                                                                                                                  -
                                                                                                                                • -
                                                                                                                                -
                                                                                                                                -
                                                                                                                                - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/dragWithOther.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/dragWithOther.html deleted file mode 100644 index fb3e5a87..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/dragWithOther.html +++ /dev/null @@ -1,253 +0,0 @@ - - - - ZTREE DEMO - drag with other DOM - - - - - - - - - - - - -

                                                                                                                                与其他 DOM 拖拽互动

                                                                                                                                -
                                                                                                                                [ 文件路径: super/dragWithOther.html ]
                                                                                                                                -
                                                                                                                                -
                                                                                                                                -
                                                                                                                                  -
                                                                                                                                  -
                                                                                                                                  -
                                                                                                                                    -
                                                                                                                                  • 实现方法说明

                                                                                                                                    -
                                                                                                                                      -
                                                                                                                                    • zTree v3.2 版本修正了 onDrag/onDrop 中的 event 对象; v3.5.16 版本增加了 onDragMove; 因此可以较容易的控制将节点拖拽到其他 DOM
                                                                                                                                    • -
                                                                                                                                    • 将其他 DOM 拖拽到 zTree 需要自己制作相关的拖拽代码
                                                                                                                                    • -
                                                                                                                                    • 这仅仅是一个最简单的演示,如果需要更炫的效果,需要制作更复杂的代码
                                                                                                                                    • -
                                                                                                                                    -
                                                                                                                                  • -
                                                                                                                                  • 请拖拽下面内容到 树节点上

                                                                                                                                    -
                                                                                                                                    -
                                                                                                                                    大树小草花朵
                                                                                                                                    -
                                                                                                                                    -
                                                                                                                                    老虎狗熊狮子
                                                                                                                                    -
                                                                                                                                    - 也可以把二级节点拖拽到以上图层 -
                                                                                                                                  • -
                                                                                                                                  -
                                                                                                                                  -
                                                                                                                                  - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/fuzzySearch.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/fuzzySearch.html deleted file mode 100644 index aac48cb9..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/fuzzySearch.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - ZTREE DEMO - fuzzySearch - - - - - - - - - - - - -

                                                                                                                                  根据关键字模糊查找节点

                                                                                                                                  -
                                                                                                                                  [ 文件路径: fuzzySearch/fuzzySearch.html ]
                                                                                                                                  -
                                                                                                                                  -
                                                                                                                                  -
                                                                                                                                    -
                                                                                                                                    -
                                                                                                                                    -
                                                                                                                                      -
                                                                                                                                    • -

                                                                                                                                      1、fuzzySearch()方法使用说明

                                                                                                                                      -
                                                                                                                                        -
                                                                                                                                      • - @param zTreeId ztree对象的id,不需要# -
                                                                                                                                      • -
                                                                                                                                      • - @param searchField 输入框选择器 -
                                                                                                                                      • -
                                                                                                                                      • - @param isHighLight 是否高亮,默认高亮,传入false禁用 -
                                                                                                                                      • -
                                                                                                                                      • - @param isExpand 是否展开,默认合拢,传入true展开 -
                                                                                                                                      • -
                                                                                                                                      • - fuzzySearch ( zTreeId, searchField, isHighLight, isExpand ) -
                                                                                                                                      • -
                                                                                                                                      • 搜索试试看:
                                                                                                                                        - 关键字:
                                                                                                                                        -

                                                                                                                                        -
                                                                                                                                      • -
                                                                                                                                      -
                                                                                                                                    • -
                                                                                                                                    • 2、依赖的js

                                                                                                                                      -
                                                                                                                                        -
                                                                                                                                      • ztree v3.5.19.1及以上,使用到getPath()方法
                                                                                                                                      • -
                                                                                                                                      • ztree.exhide扩展,使用到hideNode()方法
                                                                                                                                      • -
                                                                                                                                      -
                                                                                                                                    • -
                                                                                                                                    -
                                                                                                                                    -
                                                                                                                                    - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/left_menu.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/left_menu.html deleted file mode 100644 index 759c8634..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/left_menu.html +++ /dev/null @@ -1,152 +0,0 @@ - - - - ZTREE DEMO - left_menu - - - - - - - - - - - -

                                                                                                                                    左侧菜单

                                                                                                                                    -
                                                                                                                                    [ 文件路径: super/left_menu.html ]
                                                                                                                                    -
                                                                                                                                    -
                                                                                                                                    -
                                                                                                                                      -
                                                                                                                                      -
                                                                                                                                      -
                                                                                                                                        -
                                                                                                                                      • 实现方法说明

                                                                                                                                        -
                                                                                                                                          -
                                                                                                                                        • 在 “Demo 演示”中的左侧菜单就是用 zTree 实现的,主要是靠 css 样式负责排版,利用 setting 中的配置进行功能制作,本 Demo 对实现 左侧菜单进行简单的介绍,你也可以通过查看 “Demo 演示”页面的源码深入了解。
                                                                                                                                        • -
                                                                                                                                        • 1、关于 css 完全可以根据自己的需要进行个性化调整,例如:此 Demo 的菜单样式 就 与 “Demo 演示”页面的不一样,仅供对比参考
                                                                                                                                        • -
                                                                                                                                        • 2、主要用到的配置有:
                                                                                                                                          -     setting.view.showIcon / showLine / selectedMulti / dblClickExpand
                                                                                                                                          -     setting.callback.onNodeCreated / beforeClick / onClick -
                                                                                                                                        • -
                                                                                                                                        • 3、是否需要限制单一路径展开,完全由你的需求而定,实现代码可参考 "保持展开单一路径"
                                                                                                                                        • -
                                                                                                                                        • 4、其他辅助规则,请根据实际情况自行编写
                                                                                                                                        • -
                                                                                                                                        -
                                                                                                                                      • -
                                                                                                                                      -
                                                                                                                                      -
                                                                                                                                      - - diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/left_menuForOutLook.gif b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/left_menuForOutLook.gif deleted file mode 100644 index c252f0f8..00000000 Binary files a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/left_menuForOutLook.gif and /dev/null differ diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/left_menuForOutLook.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/left_menuForOutLook.html deleted file mode 100644 index d42412ff..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/left_menuForOutLook.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - ZTREE DEMO - left_menu for Outlook - - - - - - - - - - -

                                                                                                                                      OutLook 样式的左侧菜单

                                                                                                                                      -
                                                                                                                                      [ 文件路径: super/left_menuForOutLook.html ]
                                                                                                                                      -
                                                                                                                                      -
                                                                                                                                      -
                                                                                                                                        -
                                                                                                                                        -
                                                                                                                                        -
                                                                                                                                          -
                                                                                                                                        • 实现方法说明

                                                                                                                                          -
                                                                                                                                            -
                                                                                                                                          • 帮朋友用 zTree 实现了一个貌似 Outlook.com 的菜单,特拿出来分享给大家
                                                                                                                                          • -
                                                                                                                                          • 1、请注意本页面源码中的 css 部分
                                                                                                                                          • -
                                                                                                                                          • 2、请查看源码中 js 的使用,特别是利用 addDiyDom 回调将 展开按钮 转移到 <a> 标签内
                                                                                                                                          • -
                                                                                                                                          • 3、利用添加 zTree 的 class 实现展开按钮的隐藏、显示
                                                                                                                                          • -
                                                                                                                                          • 4、其他辅助规则,请根据实际情况自行编写
                                                                                                                                          • -
                                                                                                                                          • 5、当前规则说明:
                                                                                                                                            -   单击根节点可以展开、折叠;
                                                                                                                                            -   非根节点只有点击 箭头 图标才可以展开、折叠;
                                                                                                                                            -
                                                                                                                                          • -
                                                                                                                                          -
                                                                                                                                        • -
                                                                                                                                        -
                                                                                                                                        -
                                                                                                                                        - - diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/left_menuForOutLook.png b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/left_menuForOutLook.png deleted file mode 100644 index 36e8acfa..00000000 Binary files a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/left_menuForOutLook.png and /dev/null differ diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/metro.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/metro.html deleted file mode 100644 index f82004a6..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/metro.html +++ /dev/null @@ -1,109 +0,0 @@ - - - - ZTREE DEMO - Simple Data - - - - - - - - - - - -

                                                                                                                                        Metro 风格

                                                                                                                                        -
                                                                                                                                        [ 文件路径: super/metro.html ]
                                                                                                                                        -
                                                                                                                                        -
                                                                                                                                        -
                                                                                                                                          -
                                                                                                                                          -
                                                                                                                                          -
                                                                                                                                            -
                                                                                                                                          • 1、样式文件说明

                                                                                                                                            -
                                                                                                                                              -
                                                                                                                                            • 请使用 css/metroStyle 目录内的样式文件 和 图片
                                                                                                                                            • -
                                                                                                                                            • 感谢网友 rqx110 提供, 仅供参考
                                                                                                                                            • -
                                                                                                                                            -
                                                                                                                                          • -
                                                                                                                                          -
                                                                                                                                          -
                                                                                                                                          - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/oneclick.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/oneclick.html deleted file mode 100644 index 6b098d7c..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/oneclick.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - ZTREE DEMO - one click - - - - - - - - - - - -

                                                                                                                                          单击展开/折叠节点

                                                                                                                                          -
                                                                                                                                          [ 文件路径: super/oneclick.html ]
                                                                                                                                          -
                                                                                                                                          -
                                                                                                                                          -
                                                                                                                                            -
                                                                                                                                            -
                                                                                                                                            -
                                                                                                                                              -
                                                                                                                                            • 实现方法说明

                                                                                                                                              -
                                                                                                                                                -
                                                                                                                                              • zTree 默认不提供单击展开节点的功能,但可以利用 onClick 事件回调函数轻松实现此功能
                                                                                                                                              • -
                                                                                                                                              • 为了避免与双击功能冲突,建议关闭双击展开节点的功能,请设置 setting.view.dblClickExpand = false
                                                                                                                                              • -
                                                                                                                                              • 可以将所有的 +/- 开关隐藏,请查看本页面源码,查看 css 设置
                                                                                                                                              • -
                                                                                                                                              • 由于 +/- 开关与 节点连接线是配套的,所以如果不显示 +/- 开关的话,那么请设置 setting.view.showLine = false 隐藏连接线
                                                                                                                                              • -
                                                                                                                                              -
                                                                                                                                            • -
                                                                                                                                            -
                                                                                                                                            -
                                                                                                                                            - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/oneroot.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/oneroot.html deleted file mode 100644 index 14ec9904..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/oneroot.html +++ /dev/null @@ -1,79 +0,0 @@ - - - - ZTREE DEMO - one root - - - - - - - - - - - -

                                                                                                                                            冻结根节点

                                                                                                                                            -
                                                                                                                                            [ 文件路径: super/oneroot.html ]
                                                                                                                                            -
                                                                                                                                            -
                                                                                                                                            -
                                                                                                                                              -
                                                                                                                                              -
                                                                                                                                              -
                                                                                                                                                -
                                                                                                                                              • 实现方法说明

                                                                                                                                                -
                                                                                                                                                  -
                                                                                                                                                • 对于这种只有一个根节点,且不显示 +/- 开关的需求,需要利用 css、setting 配合使用
                                                                                                                                                • -
                                                                                                                                                • zTree v3.x 可以针对指定的 level,进行样式设定,请查看本页面源码,查看 css 设置
                                                                                                                                                • -
                                                                                                                                                • 设置 setting.view.dblClickExpand 指向 Function,可以只针对根节点关闭双击展开的操作
                                                                                                                                                • -
                                                                                                                                                -
                                                                                                                                              • -
                                                                                                                                              -
                                                                                                                                              -
                                                                                                                                              - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/rightClickMenu.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/rightClickMenu.html deleted file mode 100644 index dd15c6eb..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/rightClickMenu.html +++ /dev/null @@ -1,171 +0,0 @@ - - - - ZTREE DEMO - select menu - - - - - - - - - - - - -

                                                                                                                                              右键菜单的实现

                                                                                                                                              -
                                                                                                                                              [ 文件路径: super/rightClickMenu.html ]
                                                                                                                                              -
                                                                                                                                              -
                                                                                                                                              -
                                                                                                                                                -
                                                                                                                                                -
                                                                                                                                                -
                                                                                                                                                  -
                                                                                                                                                • 实现方法说明

                                                                                                                                                  -
                                                                                                                                                    -
                                                                                                                                                  • 利用 beforeRightClick / onRightClick 事件回调函数简单实现的右键菜单
                                                                                                                                                  • -
                                                                                                                                                  • Demo 中的菜单比较简陋,你完全可以配合其他自定义样式的菜单图层混合使用
                                                                                                                                                  • -
                                                                                                                                                  -
                                                                                                                                                • -
                                                                                                                                                -
                                                                                                                                                -
                                                                                                                                                -
                                                                                                                                                -
                                                                                                                                                  -
                                                                                                                                                • 增加节点
                                                                                                                                                • -
                                                                                                                                                • 删除节点
                                                                                                                                                • -
                                                                                                                                                • Check节点
                                                                                                                                                • -
                                                                                                                                                • unCheck节点
                                                                                                                                                • -
                                                                                                                                                • 恢复zTree
                                                                                                                                                • -
                                                                                                                                                -
                                                                                                                                                - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/select_menu.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/select_menu.html deleted file mode 100644 index 5038fa66..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/select_menu.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - ZTREE DEMO - select menu - - - - - - - - - - - -

                                                                                                                                                下拉菜单

                                                                                                                                                -
                                                                                                                                                [ 文件路径: super/select_menu.html ]
                                                                                                                                                -
                                                                                                                                                -
                                                                                                                                                -
                                                                                                                                                  -
                                                                                                                                                •   选择城市时,按下 Ctrl 或 Cmd 键可以进行多选
                                                                                                                                                • -
                                                                                                                                                •   城市: -  选择
                                                                                                                                                • -
                                                                                                                                                -
                                                                                                                                                -
                                                                                                                                                -
                                                                                                                                                  -
                                                                                                                                                • 实现方法说明

                                                                                                                                                  -
                                                                                                                                                    -
                                                                                                                                                  • 用 zTree 实现这种下拉菜单,应该说是比较容易的,你只需要控制 zTree 所在容器的隐藏/显示,以及位置即可。
                                                                                                                                                  • -
                                                                                                                                                  • zTree v3.x 实现了多点选中功能,因此对于需要多选的下拉菜单也易如反掌。
                                                                                                                                                  • -
                                                                                                                                                  • 利用 setting 的各项配置参数,完全可以满足大部分的功能需求。
                                                                                                                                                  • -
                                                                                                                                                  -
                                                                                                                                                • -
                                                                                                                                                -
                                                                                                                                                -
                                                                                                                                                - - - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/select_menu_checkbox.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/select_menu_checkbox.html deleted file mode 100644 index 387bcbde..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/select_menu_checkbox.html +++ /dev/null @@ -1,126 +0,0 @@ - - - - ZTREE DEMO - checkbox select menu - - - - - - - - - - - - -

                                                                                                                                                带 checkbox 的多选下拉菜单 -- zTree

                                                                                                                                                -
                                                                                                                                                [ 文件路径: super/select_menu_checkbox.html ]
                                                                                                                                                -
                                                                                                                                                -
                                                                                                                                                -
                                                                                                                                                  -
                                                                                                                                                •   勾选 checkbox 或者 点击节点 进行选择
                                                                                                                                                • -
                                                                                                                                                •   Test: -  select
                                                                                                                                                • -
                                                                                                                                                -
                                                                                                                                                -
                                                                                                                                                -
                                                                                                                                                  -
                                                                                                                                                • 实现方法说明

                                                                                                                                                  -
                                                                                                                                                    -
                                                                                                                                                  • 用 checkbox 也可以轻松实现多选的下拉菜单
                                                                                                                                                  • -
                                                                                                                                                  • 此 Demo 主要用于 和 其他下拉菜单进行对比
                                                                                                                                                  • -
                                                                                                                                                  -
                                                                                                                                                • -
                                                                                                                                                -
                                                                                                                                                -
                                                                                                                                                - - - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/select_menu_radio.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/select_menu_radio.html deleted file mode 100644 index 5a2b9ddc..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/select_menu_radio.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - ZTREE DEMO - radio select menu - - - - - - - - - - - - -

                                                                                                                                                带 radio 的单选下拉菜单 -- zTree

                                                                                                                                                -
                                                                                                                                                [ 文件路径: super/select_menu_radio.html ]
                                                                                                                                                -
                                                                                                                                                -
                                                                                                                                                -
                                                                                                                                                  -
                                                                                                                                                •   勾选 radio 或者 点击节点 进行选择
                                                                                                                                                • -
                                                                                                                                                •   Test: -  select
                                                                                                                                                • -
                                                                                                                                                -
                                                                                                                                                -
                                                                                                                                                -
                                                                                                                                                  -
                                                                                                                                                • 实现方法说明

                                                                                                                                                  -
                                                                                                                                                    -
                                                                                                                                                  • 用 radio 也可以轻松实现单选的下拉菜单
                                                                                                                                                  • -
                                                                                                                                                  • 单选其实没有必要使用 radio, 此 Demo 主要用于 和 其他下拉菜单进行对比
                                                                                                                                                  • -
                                                                                                                                                  -
                                                                                                                                                • -
                                                                                                                                                -
                                                                                                                                                -
                                                                                                                                                - - - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/singlepath.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/singlepath.html deleted file mode 100644 index 667d530b..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/singlepath.html +++ /dev/null @@ -1,166 +0,0 @@ - - - - ZTREE DEMO - single path - - - - - - - - - - - -

                                                                                                                                                保持展开单一路径

                                                                                                                                                -
                                                                                                                                                [ 文件路径: super/singlepath.html ]
                                                                                                                                                -
                                                                                                                                                -
                                                                                                                                                -
                                                                                                                                                  -
                                                                                                                                                  -
                                                                                                                                                  -
                                                                                                                                                    -
                                                                                                                                                  • 实现方法说明

                                                                                                                                                    -
                                                                                                                                                      -
                                                                                                                                                    • 此 Demo 是在 "单击展开/折叠节点" 基础上改造而来,树节点保持始终只展开一条路径。
                                                                                                                                                    • -
                                                                                                                                                    • 利用 setting.callback.beforeExpand / onExpand 事件回调函数实现展开规则
                                                                                                                                                    • -
                                                                                                                                                    -
                                                                                                                                                  • -
                                                                                                                                                  -
                                                                                                                                                  -
                                                                                                                                                  - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/asyncData/getNodes.php b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/asyncData/getNodes.php deleted file mode 100644 index 6d22b5eb..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/asyncData/getNodes.php +++ /dev/null @@ -1,42 +0,0 @@ - -[] diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/asyncData/getNodesForBigData.php b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/asyncData/getNodesForBigData.php deleted file mode 100644 index 588c14c5..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/asyncData/getNodesForBigData.php +++ /dev/null @@ -1,26 +0,0 @@ - -[] diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/bigdata/common.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/bigdata/common.html deleted file mode 100644 index 4d39b0fb..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/bigdata/common.html +++ /dev/null @@ -1,190 +0,0 @@ - - - - ZTREE DEMO - big data common - - - - - - - - - - - -

                                                                                                                                                  One-time Large Data Loading

                                                                                                                                                  -
                                                                                                                                                  [ File Path: bigdata/common.html ]
                                                                                                                                                  -
                                                                                                                                                  -
                                                                                                                                                  -
                                                                                                                                                    -
                                                                                                                                                  • Adjust the total number of nodes to the test load speed: -
                                                                                                                                                    -
                                                                                                                                                    5000
                                                                                                                                                    -
                                                                                                                                                    -
                                                                                                                                                    - checkbox     - [ Initialize zTree ] -
                                                                                                                                                    -
                                                                                                                                                  • -
                                                                                                                                                  -
                                                                                                                                                    -
                                                                                                                                                    -
                                                                                                                                                    -
                                                                                                                                                      -
                                                                                                                                                    • 1, Explanation of large data load

                                                                                                                                                      -
                                                                                                                                                        -
                                                                                                                                                      • 1) zTree v3.x optimized for one-time large data loading capacity, using a lazy loading technique, which does not expand the node does not create child nodes of the DOM.
                                                                                                                                                      • -
                                                                                                                                                      • 2) If a maximum of 100 nodes each, but a total number of several thousand or even tens of thousands of nodes, and the parent node is collapsed by default to optimize the most obvious effect, very fast.
                                                                                                                                                      • -
                                                                                                                                                      • 3) For the next level there are thousands of sub-node case, the optimization of lazy loading is invalid, proposal to consider asynchronous page loading.
                                                                                                                                                      • -
                                                                                                                                                      • 4) if you set the data to all the parent nodes are expanded, the optimization of lazy loading is invalid, proposal to not expand all parent node when you initialize zTree.
                                                                                                                                                      • -
                                                                                                                                                      • 5) set the display checkbox / radio will affect some of the performance.
                                                                                                                                                      • -
                                                                                                                                                      • 6) DOM generated using addDiyDom function will affect the speed, the number of nodes determines the number of impact situations.
                                                                                                                                                      • -
                                                                                                                                                      • 7) Using 'onNodeCreated' callback function to manipulate nodes object will affect the speed, the degree of influence determined by the number of nodes.
                                                                                                                                                      • -
                                                                                                                                                      -
                                                                                                                                                    • -
                                                                                                                                                    • 2, Explanation of setting

                                                                                                                                                      -
                                                                                                                                                        -
                                                                                                                                                      • No special configuration.
                                                                                                                                                      • -
                                                                                                                                                      -
                                                                                                                                                    • -
                                                                                                                                                    • 3, Explanation of treeNode

                                                                                                                                                      -
                                                                                                                                                        -
                                                                                                                                                      • No special requirements on the node data, the user can add custom attributes.
                                                                                                                                                      • -
                                                                                                                                                      -
                                                                                                                                                    • -
                                                                                                                                                    -
                                                                                                                                                    -
                                                                                                                                                    - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/bigdata/diy_async.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/bigdata/diy_async.html deleted file mode 100644 index 10497144..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/bigdata/diy_async.html +++ /dev/null @@ -1,157 +0,0 @@ - - - - ZTREE DEMO - big data async - - - - - - - - - - - -

                                                                                                                                                    Loading Data in Batches

                                                                                                                                                    -
                                                                                                                                                    [ File Path: bigdata/diy_async.html ]
                                                                                                                                                    -
                                                                                                                                                    -
                                                                                                                                                    -
                                                                                                                                                      -
                                                                                                                                                    •     Demo for testing load data in batches, each node needs to re-start to load.
                                                                                                                                                    • -
                                                                                                                                                    -
                                                                                                                                                      -
                                                                                                                                                      -
                                                                                                                                                      -
                                                                                                                                                        -
                                                                                                                                                      • 1, Explanation of large data load

                                                                                                                                                        -
                                                                                                                                                          -
                                                                                                                                                        • 1) If has nodes for as many as thousands in one level, lazy loading is invalid, this demo shows how to load data in batches.
                                                                                                                                                        • -
                                                                                                                                                        • 2) This method applies to thousands of nodes must all display needs.
                                                                                                                                                        • -
                                                                                                                                                        • 3) This method doesn't solve the problem of slow loading, it will only make the final result appear more slowly, but can be limited to avoid browser suspended animation, and more nodes displayed slower.
                                                                                                                                                        • -
                                                                                                                                                        • 4) For at least several thousand nodes in one level case, another solution is to: pagination loading.
                                                                                                                                                          - async load log:
                                                                                                                                                          -
                                                                                                                                                          • -
                                                                                                                                                          -
                                                                                                                                                        • -
                                                                                                                                                        • 2, Explanation of setting

                                                                                                                                                          -
                                                                                                                                                            -
                                                                                                                                                          • Need to set the parameters in setting.async
                                                                                                                                                          • -
                                                                                                                                                          • Advised to turn off animation effects: setting.view.expandSpeed = "";
                                                                                                                                                          • -
                                                                                                                                                          • No other special configuration, the user can set their own requirements.
                                                                                                                                                          • -
                                                                                                                                                          -
                                                                                                                                                        • -
                                                                                                                                                        • 3, Explanation of treeNode

                                                                                                                                                          -
                                                                                                                                                            -
                                                                                                                                                          • No special requirements on the node data, the user can add custom attributes.
                                                                                                                                                          • -
                                                                                                                                                          -
                                                                                                                                                        • -
                                                                                                                                                        -
                                                                                                                                                        -
                                                                                                                                                        - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/bigdata/page.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/bigdata/page.html deleted file mode 100644 index 3b18f9e0..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/bigdata/page.html +++ /dev/null @@ -1,150 +0,0 @@ - - - - ZTREE DEMO - big data page - - - - - - - - - - - - -

                                                                                                                                                        Loading Data By Pagination

                                                                                                                                                        -
                                                                                                                                                        [ File Path: bigdata/page.html ]
                                                                                                                                                        -
                                                                                                                                                        -
                                                                                                                                                        -
                                                                                                                                                          -
                                                                                                                                                          -
                                                                                                                                                          -
                                                                                                                                                            -
                                                                                                                                                          • 1, Explanation of large data load

                                                                                                                                                            -
                                                                                                                                                              -
                                                                                                                                                            • 1) Pagination can be an effective solution to the large number of child nodes of the situation.
                                                                                                                                                            • -
                                                                                                                                                            • 2) Using custom method to display the pagination button.
                                                                                                                                                            • -
                                                                                                                                                            • 3) Pagination lead to the association of checkbox can not be achieved, only correction after show each page . Because of the time limitation, Demo does not deal with association of checkbox.
                                                                                                                                                            • -
                                                                                                                                                            • 4) The use of pagination, you can only get the current page node data from zTree. You can save the data after each page loading as the cache, according to the demand to determine the specific methods.
                                                                                                                                                            • - -
                                                                                                                                                            • 2, Explanation of setting

                                                                                                                                                              -
                                                                                                                                                                -
                                                                                                                                                              • Need to set the parameters in setting.async
                                                                                                                                                              • -
                                                                                                                                                              • No other special configuration, the user can set their own requirements.
                                                                                                                                                              • -
                                                                                                                                                              -
                                                                                                                                                            • -
                                                                                                                                                            • 3, Explanation of treeNode

                                                                                                                                                              -
                                                                                                                                                                -
                                                                                                                                                              • No special requirements on the node data, the user can add custom attributes.
                                                                                                                                                              • -
                                                                                                                                                              -
                                                                                                                                                            • -
                                                                                                                                                            -
                                                                                                                                                          -
                                                                                                                                                          - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/async.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/async.html deleted file mode 100644 index e287c3f1..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/async.html +++ /dev/null @@ -1,70 +0,0 @@ - - - - ZTREE DEMO - Async - - - - - - - - - - -

                                                                                                                                                          Dynamic Tree with Ajax

                                                                                                                                                          -
                                                                                                                                                          [ File Path: core/async.html ]
                                                                                                                                                          -
                                                                                                                                                          -
                                                                                                                                                          -
                                                                                                                                                            -
                                                                                                                                                            -
                                                                                                                                                            -
                                                                                                                                                              -
                                                                                                                                                            • 1, Explanation of setting

                                                                                                                                                              -
                                                                                                                                                                -
                                                                                                                                                              • For create dynamic tree with ajax, you need to set attributes in setting.async, see the API documentation for more related contents.
                                                                                                                                                              • -
                                                                                                                                                              -
                                                                                                                                                            • -
                                                                                                                                                            • 2, Explanation of treeNode

                                                                                                                                                              -
                                                                                                                                                                -
                                                                                                                                                              • Dynamic tree with ajax doesn't need to make special treeNode node data, if use simple JSON data model, please set the attributes in setting.data.simple.
                                                                                                                                                              • -
                                                                                                                                                              • If ajax only to return node data in single level, you don't need to use simple JSON data model.
                                                                                                                                                              • -
                                                                                                                                                              -
                                                                                                                                                            • -
                                                                                                                                                            • 3、Other explanation

                                                                                                                                                              -
                                                                                                                                                                -
                                                                                                                                                              • Monitoring autoParam and otherParam use firebug or the developer tools in browser.
                                                                                                                                                              • -
                                                                                                                                                              • This Demo only loading 4 level nodes (level = 3).
                                                                                                                                                              • -
                                                                                                                                                              • This Demo use 'dataFilter' to modify the name of the node.
                                                                                                                                                              • -
                                                                                                                                                              -
                                                                                                                                                            • -
                                                                                                                                                            -
                                                                                                                                                            -
                                                                                                                                                            - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/async_fun.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/async_fun.html deleted file mode 100644 index 25bcc979..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/async_fun.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - ZTREE DEMO - reAsyncChildNodes - - - - - - - - - - - -

                                                                                                                                                            Dynamic Tree - zTree methods

                                                                                                                                                            -
                                                                                                                                                            [ File Path: core/async_fun.html ]
                                                                                                                                                            -
                                                                                                                                                            -
                                                                                                                                                            -
                                                                                                                                                              -
                                                                                                                                                              -
                                                                                                                                                              -
                                                                                                                                                                -
                                                                                                                                                              • 1, Explanation of reAsyncChildNodes

                                                                                                                                                                -
                                                                                                                                                                  -
                                                                                                                                                                • How to use zTreeObj.reAsyncChildNodes method, please see the API documentation.
                                                                                                                                                                • -
                                                                                                                                                                • This Demo can only select one parent node
                                                                                                                                                                  - Try: [ reload ]    [ append ]

                                                                                                                                                                  -
                                                                                                                                                                • -
                                                                                                                                                                • 'isSilent' parameter is only for the collapsed state of the parent node.
                                                                                                                                                                  - Try: [ Quietly reloaded ]    [ Quietly append ]
                                                                                                                                                                  - async log:
                                                                                                                                                                  -

                                                                                                                                                                    -
                                                                                                                                                                  • -
                                                                                                                                                                  -
                                                                                                                                                                • -
                                                                                                                                                                • 2, Explanation of setting

                                                                                                                                                                  -
                                                                                                                                                                    -
                                                                                                                                                                  • For useing reAsyncChildNodes method, you need to set attributes in setting.async, see the API documentation for more related contents.
                                                                                                                                                                  • -
                                                                                                                                                                  -
                                                                                                                                                                • -
                                                                                                                                                                • 3, Explanation of treeNode

                                                                                                                                                                  -
                                                                                                                                                                    -
                                                                                                                                                                  • Same as 'Dynamic Tree with Ajax'
                                                                                                                                                                  • -
                                                                                                                                                                  -
                                                                                                                                                                • -
                                                                                                                                                                • 4、Other explanation

                                                                                                                                                                  -
                                                                                                                                                                    -
                                                                                                                                                                  • Same as 'Dynamic Tree with Ajax'
                                                                                                                                                                  • -
                                                                                                                                                                  -
                                                                                                                                                                • -
                                                                                                                                                                -
                                                                                                                                                                -
                                                                                                                                                                - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/click.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/click.html deleted file mode 100644 index 5630fc9c..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/click.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - ZTREE DEMO - beforeClick / onClick - - - - - - - - - - -

                                                                                                                                                                Control of Click Node

                                                                                                                                                                -
                                                                                                                                                                [ File Path: core/click.html ]
                                                                                                                                                                -
                                                                                                                                                                -
                                                                                                                                                                -
                                                                                                                                                                  -
                                                                                                                                                                  -
                                                                                                                                                                  -
                                                                                                                                                                    -
                                                                                                                                                                  • 1, 'beforeClick / onClick' callback function

                                                                                                                                                                    -
                                                                                                                                                                      -
                                                                                                                                                                    • Use 'beforeClick / onClick' callback function can be achieved with the click on the various functions. This simple demo shows how to monitor the click event.
                                                                                                                                                                    • -
                                                                                                                                                                    • Try pressing the Ctrl or Cmd key for multi-node selection and deselection.
                                                                                                                                                                      - click log:
                                                                                                                                                                      -

                                                                                                                                                                        -
                                                                                                                                                                      • -
                                                                                                                                                                      -
                                                                                                                                                                    • -
                                                                                                                                                                    • 2, Explanation of setting

                                                                                                                                                                      -
                                                                                                                                                                        -
                                                                                                                                                                      • You need to set attributes about setting.callback.beforeClick and setting.callback.onClick, see the API documentation for more related contents.
                                                                                                                                                                      • -
                                                                                                                                                                      -
                                                                                                                                                                    • -
                                                                                                                                                                    • 3, Explanation of treeNode

                                                                                                                                                                      -
                                                                                                                                                                        -
                                                                                                                                                                      • No special requirements on the node data, the user can add custom attributes.
                                                                                                                                                                      • -
                                                                                                                                                                      -
                                                                                                                                                                    • -
                                                                                                                                                                    -
                                                                                                                                                                    -
                                                                                                                                                                    - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/custom_font.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/custom_font.html deleted file mode 100644 index da3795a7..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/custom_font.html +++ /dev/null @@ -1,67 +0,0 @@ - - - - ZTREE DEMO - Custom Font - - - - - - - - - - -

                                                                                                                                                                    Custom Fonts

                                                                                                                                                                    -
                                                                                                                                                                    [ File Path: core/custom_font.html ]
                                                                                                                                                                    -
                                                                                                                                                                    -
                                                                                                                                                                    -
                                                                                                                                                                      -
                                                                                                                                                                      -
                                                                                                                                                                      -
                                                                                                                                                                        -
                                                                                                                                                                      • 1, Explanation of setting

                                                                                                                                                                        -
                                                                                                                                                                          -
                                                                                                                                                                        • 1. For display custom fonts, you need to set setting.view.fontCss attribute, see the API documentation for more related contents.
                                                                                                                                                                        • -
                                                                                                                                                                        • 2. If you need the node name support the HTML, please set the 'setting.view.nameIsHTML' attribute, see the API documentation for more related contents.
                                                                                                                                                                        • -
                                                                                                                                                                        -
                                                                                                                                                                      • -
                                                                                                                                                                      • 2, Explanation of treeNode

                                                                                                                                                                        -
                                                                                                                                                                          -
                                                                                                                                                                        • Set the font does not require to special node data , but if used to differentiate between different types of nodes, the corresponding data can set custom attributes.
                                                                                                                                                                        • -
                                                                                                                                                                        • The css style of data stored in the nodes within this demo
                                                                                                                                                                        • -
                                                                                                                                                                        -
                                                                                                                                                                      • -
                                                                                                                                                                      -
                                                                                                                                                                      -
                                                                                                                                                                      - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/custom_icon.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/custom_icon.html deleted file mode 100644 index a2b0965f..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/custom_icon.html +++ /dev/null @@ -1,74 +0,0 @@ - - - - ZTREE DEMO - Custom Icon - - - - - - - - - - -

                                                                                                                                                                      Custom Icon - icon

                                                                                                                                                                      -
                                                                                                                                                                      [ File Path: core/custom_icon.html ]
                                                                                                                                                                      -
                                                                                                                                                                      -
                                                                                                                                                                      -
                                                                                                                                                                        -
                                                                                                                                                                        -
                                                                                                                                                                        -
                                                                                                                                                                          -
                                                                                                                                                                        • 1, Explanation of setting

                                                                                                                                                                          -
                                                                                                                                                                            -
                                                                                                                                                                          • Custom icon does not require special configuration setting.
                                                                                                                                                                          • -
                                                                                                                                                                          -
                                                                                                                                                                        • -
                                                                                                                                                                        • 2, Explanation of treeNode

                                                                                                                                                                          -
                                                                                                                                                                            -
                                                                                                                                                                          • Use node data’s icon / iconOpen / iconClose attribute show custom icon.
                                                                                                                                                                          • -
                                                                                                                                                                          • See the API documentation for more related contents.
                                                                                                                                                                          • -
                                                                                                                                                                          -
                                                                                                                                                                        • -
                                                                                                                                                                        • 3、Other explanation

                                                                                                                                                                          -
                                                                                                                                                                            -
                                                                                                                                                                          • Because of the time limitation, demo uses png images, if you need transparent images in IE6 browser, make a gif image, or use a special 'css filter' on ie6 browser.
                                                                                                                                                                          • -
                                                                                                                                                                          -
                                                                                                                                                                        • -
                                                                                                                                                                        -
                                                                                                                                                                        -
                                                                                                                                                                        - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/custom_iconSkin.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/custom_iconSkin.html deleted file mode 100644 index d853a581..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/custom_iconSkin.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - ZTREE DEMO - Custom Icon Skin - - - - - - - - - - - -

                                                                                                                                                                        Custom Icon - iconSkin

                                                                                                                                                                        -
                                                                                                                                                                        [ File Path: core/custom_iconSkin.html ]
                                                                                                                                                                        -
                                                                                                                                                                        -
                                                                                                                                                                        -
                                                                                                                                                                          -
                                                                                                                                                                          -
                                                                                                                                                                          -
                                                                                                                                                                            -
                                                                                                                                                                          • 1, Explanation of setting

                                                                                                                                                                            -
                                                                                                                                                                              -
                                                                                                                                                                            • Custom icon does not require special configuration setting.
                                                                                                                                                                            • -
                                                                                                                                                                            -
                                                                                                                                                                          • -
                                                                                                                                                                          • 2, Explanation of treeNode

                                                                                                                                                                            -
                                                                                                                                                                              -
                                                                                                                                                                            • Use the node data iconSkin attributes and css show custom icon.
                                                                                                                                                                            • -
                                                                                                                                                                            • See the API documentation for more related contents.
                                                                                                                                                                            • -
                                                                                                                                                                            -
                                                                                                                                                                          • -
                                                                                                                                                                          • 3、Other explanation

                                                                                                                                                                            -
                                                                                                                                                                              -
                                                                                                                                                                            • Because of the time limitation, demo uses png images, if you need transparent images in IE6 browser, make a gif image, or use a special 'css filter' on ie6 browser.
                                                                                                                                                                            • -
                                                                                                                                                                            -
                                                                                                                                                                          • -
                                                                                                                                                                          -
                                                                                                                                                                          -
                                                                                                                                                                          - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/expand.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/expand.html deleted file mode 100644 index 489638ac..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/expand.html +++ /dev/null @@ -1,186 +0,0 @@ - - - - ZTREE DEMO - beforeExpand / onExpand && beforeCollapse / onCollapse - - - - - - - - - - -

                                                                                                                                                                          Control of Expand Node

                                                                                                                                                                          -
                                                                                                                                                                          [ File Path: core/expand.html ]
                                                                                                                                                                          -
                                                                                                                                                                          -
                                                                                                                                                                          -
                                                                                                                                                                            -
                                                                                                                                                                            -
                                                                                                                                                                            -
                                                                                                                                                                              -
                                                                                                                                                                            • 1, 'beforeCollapse / onCollapse'
                                                                                                                                                                                'beforeExpand / onExpand' callback function

                                                                                                                                                                              -
                                                                                                                                                                                -
                                                                                                                                                                              • Use 'beforeCollapse / onCollapse' and 'beforeExpand / onExpand' callback function can control whether to allow expand or collapse the parent node - . This simple demo shows how to monitor the collapse and expand event.
                                                                                                                                                                              • -
                                                                                                                                                                              • Try:
                                                                                                                                                                                -      Whether trigger the callback when execution expandNode() method.
                                                                                                                                                                                -     Single Node --[ expand ] -     [ collapse ] -     [ toggle ]
                                                                                                                                                                                -     Single Node (including child) --[ expand ] -     [ collapse ]
                                                                                                                                                                                -     All Nodes --[ expand All ] -     [ collapse All ]

                                                                                                                                                                                -
                                                                                                                                                                              • How to use zTreeObj.updateNode method, please see the API documentation.
                                                                                                                                                                                - collapse / expand log:
                                                                                                                                                                                -

                                                                                                                                                                                  -
                                                                                                                                                                                • -
                                                                                                                                                                                -
                                                                                                                                                                              • -
                                                                                                                                                                              • 2, Explanation of setting

                                                                                                                                                                                -
                                                                                                                                                                                  -
                                                                                                                                                                                • Set attributes about 'setting.callback.beforeCollapse / onCollapse / beforeExpand / onExpand', please see the API documentation for more related contents.
                                                                                                                                                                                • -
                                                                                                                                                                                • If you need to adjust the expand / collapse animation effects, please see the API documentation about setting.view.expandSpeed.
                                                                                                                                                                                • -
                                                                                                                                                                                -
                                                                                                                                                                              • -
                                                                                                                                                                              • 3, Explanation of treeNode

                                                                                                                                                                                -
                                                                                                                                                                                  -
                                                                                                                                                                                • No special requirements on the node data, the user can add custom attributes.
                                                                                                                                                                                • -
                                                                                                                                                                                -
                                                                                                                                                                              • -
                                                                                                                                                                              -
                                                                                                                                                                              -
                                                                                                                                                                              - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/noicon.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/noicon.html deleted file mode 100644 index 7a14b803..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/noicon.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - ZTREE DEMO - noIcon - - - - - - - - - - - -

                                                                                                                                                                              Don't Show Icon

                                                                                                                                                                              -
                                                                                                                                                                              [ File Path: core/noicon.html ]
                                                                                                                                                                              -
                                                                                                                                                                              -
                                                                                                                                                                              -
                                                                                                                                                                                -
                                                                                                                                                                                -
                                                                                                                                                                                -
                                                                                                                                                                                  -
                                                                                                                                                                                • 1, Explanation of setting

                                                                                                                                                                                  -
                                                                                                                                                                                    -
                                                                                                                                                                                  • This Demo using Function set to the parent node does not display the icon.
                                                                                                                                                                                  • -
                                                                                                                                                                                  • Whether to display the icon, you need to set setting.view.showIcon attribute, see the API documentation for more related contents.
                                                                                                                                                                                  • -
                                                                                                                                                                                  -
                                                                                                                                                                                • -
                                                                                                                                                                                • 2, Explanation of treeNode

                                                                                                                                                                                  -
                                                                                                                                                                                    -
                                                                                                                                                                                  • TreeNode data does not require special settings. If you need some node display icon, and some nodes are not displayed, you can add special attributes to the node data for identification.
                                                                                                                                                                                  • -
                                                                                                                                                                                  -
                                                                                                                                                                                • -
                                                                                                                                                                                -
                                                                                                                                                                                -
                                                                                                                                                                                - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/noline.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/noline.html deleted file mode 100644 index 4fd653ab..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/noline.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - ZTREE DEMO - noLine - - - - - - - - - - - -

                                                                                                                                                                                Don't Show Line

                                                                                                                                                                                -
                                                                                                                                                                                [ File Path: core/noline.html ]
                                                                                                                                                                                -
                                                                                                                                                                                -
                                                                                                                                                                                -
                                                                                                                                                                                  -
                                                                                                                                                                                  -
                                                                                                                                                                                  -
                                                                                                                                                                                    -
                                                                                                                                                                                  • 1, Explanation of setting

                                                                                                                                                                                    -
                                                                                                                                                                                      -
                                                                                                                                                                                    • Whether to display the line, you need to set setting.view.showLine attribute, see the API documentation for more related contents.
                                                                                                                                                                                    • -
                                                                                                                                                                                    -
                                                                                                                                                                                  • -
                                                                                                                                                                                  • 2, Explanation of treeNode

                                                                                                                                                                                    -
                                                                                                                                                                                      -
                                                                                                                                                                                    • TreeNode data does not require special settings
                                                                                                                                                                                    • -
                                                                                                                                                                                    -
                                                                                                                                                                                  • -
                                                                                                                                                                                  -
                                                                                                                                                                                  -
                                                                                                                                                                                  - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/otherMouse.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/otherMouse.html deleted file mode 100644 index c36564d3..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/otherMouse.html +++ /dev/null @@ -1,132 +0,0 @@ - - - - ZTREE DEMO - Other Mouse Event - - - - - - - - - - -

                                                                                                                                                                                  Other Mouse Events for zTree

                                                                                                                                                                                  -
                                                                                                                                                                                  [ File Path: core/otherMouse.html ]
                                                                                                                                                                                  -
                                                                                                                                                                                  -
                                                                                                                                                                                  -
                                                                                                                                                                                    -
                                                                                                                                                                                    -
                                                                                                                                                                                    -
                                                                                                                                                                                      -
                                                                                                                                                                                    • 1, 'beforeMousedown / onMousedown / beforeMouseup / onMouseup / beforeRightClick / onRightClick' callback function

                                                                                                                                                                                      -
                                                                                                                                                                                        -
                                                                                                                                                                                      • zTree provide these types of mouse event callbacks, in order to facilitate the user to extend the functionality. And doesn't affect zTree normal function, This simple demo shows how to monitor the mousedown/mouseup/rightClick event.
                                                                                                                                                                                      • -
                                                                                                                                                                                      • Try clicking with the mouse on the zTree (left or right), by the way to see log.
                                                                                                                                                                                        - mousedown event log:
                                                                                                                                                                                        -

                                                                                                                                                                                          - mouseup event log:
                                                                                                                                                                                          -
                                                                                                                                                                                            - rightClick event log:
                                                                                                                                                                                            -

                                                                                                                                                                                              -
                                                                                                                                                                                            • -
                                                                                                                                                                                            -
                                                                                                                                                                                          • -
                                                                                                                                                                                          • 2, Explanation of setting

                                                                                                                                                                                            -
                                                                                                                                                                                              -
                                                                                                                                                                                            • Set attributes about 'setting.callback.beforeMousedown / onMousedown / beforeMouseup / onMouseup / beforeRightClick / onRightClick', please see the API documentation for more related contents.
                                                                                                                                                                                            • -
                                                                                                                                                                                            -
                                                                                                                                                                                          • -
                                                                                                                                                                                          • 3, Explanation of treeNode

                                                                                                                                                                                            -
                                                                                                                                                                                              -
                                                                                                                                                                                            • No special requirements on the node data, the user can add custom attributes.
                                                                                                                                                                                            • -
                                                                                                                                                                                            -
                                                                                                                                                                                          • -
                                                                                                                                                                                          -
                                                                                                                                                                                          -
                                                                                                                                                                                          - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/searchNodes.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/searchNodes.html deleted file mode 100644 index 812c3f18..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/searchNodes.html +++ /dev/null @@ -1,173 +0,0 @@ - - - - ZTREE DEMO - getNodeByParam / getNodesByParam / getNodesByParamFuzzy - - - - - - - - - - -

                                                                                                                                                                                          Search Nodes

                                                                                                                                                                                          -
                                                                                                                                                                                          [ File Path: core/searchNodes.html ]
                                                                                                                                                                                          -
                                                                                                                                                                                          -
                                                                                                                                                                                          -
                                                                                                                                                                                            -
                                                                                                                                                                                            -
                                                                                                                                                                                            -
                                                                                                                                                                                              -
                                                                                                                                                                                            • 1, Explanation of getNodeByParam / getNodesByParam / getNodesByParamFuzzy

                                                                                                                                                                                              -
                                                                                                                                                                                                -
                                                                                                                                                                                              • How to use ’zTreeObj.getNodeByParam / getNodesByParam / getNodesByParamFuzzy / getNodeByTId‘ method, please see the API documentation.
                                                                                                                                                                                              • -
                                                                                                                                                                                              • Try to search:
                                                                                                                                                                                                - attribute( value ):
                                                                                                                                                                                                - attribute( key ): name (string)
                                                                                                                                                                                                - level (number) ... root node's level is 0
                                                                                                                                                                                                - id (number)
                                                                                                                                                                                                - method: getNodeByParam
                                                                                                                                                                                                - getNodesByParam
                                                                                                                                                                                                - getNodesByParamFuzzy (only string)
                                                                                                                                                                                                - getNodesByFilter (see source: function filter)
                                                                                                                                                                                                -

                                                                                                                                                                                                -
                                                                                                                                                                                              • -
                                                                                                                                                                                              -
                                                                                                                                                                                            • -
                                                                                                                                                                                            • 2, Explanation of setting

                                                                                                                                                                                              -
                                                                                                                                                                                                -
                                                                                                                                                                                              • Do not need to set the setting.
                                                                                                                                                                                              • -
                                                                                                                                                                                              -
                                                                                                                                                                                            • -
                                                                                                                                                                                            • 3, Explanation of treeNode

                                                                                                                                                                                              -
                                                                                                                                                                                                -
                                                                                                                                                                                              • Note: Please ensure that the incoming value type is the same as type of attribute.
                                                                                                                                                                                              • -
                                                                                                                                                                                              -
                                                                                                                                                                                            • -
                                                                                                                                                                                            -
                                                                                                                                                                                            -
                                                                                                                                                                                            - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/simpleData.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/simpleData.html deleted file mode 100644 index 038355d6..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/simpleData.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - ZTREE DEMO - Simple Data - - - - - - - - - - -

                                                                                                                                                                                            Simple JSON Data

                                                                                                                                                                                            -
                                                                                                                                                                                            [ File Path: core/simpleData.html ]
                                                                                                                                                                                            -
                                                                                                                                                                                            -
                                                                                                                                                                                            -
                                                                                                                                                                                              -
                                                                                                                                                                                              -
                                                                                                                                                                                              -
                                                                                                                                                                                                -
                                                                                                                                                                                              • 1, Explanation of setting

                                                                                                                                                                                                -
                                                                                                                                                                                                  -
                                                                                                                                                                                                • Must set setting.data.simple attributes, see the API documentation for more related contents.
                                                                                                                                                                                                • -
                                                                                                                                                                                                • The setting.view in API documentation is associated with the display of the zTree.
                                                                                                                                                                                                • -
                                                                                                                                                                                                • To change the 'name', 'children', 'title' attribute, please refer to the API documentation about 'setting.data.key'.
                                                                                                                                                                                                • -
                                                                                                                                                                                                -
                                                                                                                                                                                              • -
                                                                                                                                                                                              • 2, Explanation of treeNode

                                                                                                                                                                                                -
                                                                                                                                                                                                  -
                                                                                                                                                                                                • Id / pId that include parent-child relationship between nodes is needed if you use Simple model of the JSON data, and other attributes please refer to the instructions within setting.data.simple. -
                                                                                                                                                                                                  For example:
                                                                                                                                                                                                  -var nodes = [
                                                                                                                                                                                                  -	{id:1, pId:0, name: "pNode 01"},
                                                                                                                                                                                                  -	{id:11, pId:1, name: "child 01"},
                                                                                                                                                                                                  -	{id:12, pId:1, name: "child 02"}
                                                                                                                                                                                                  -];
                                                                                                                                                                                                • -
                                                                                                                                                                                                • To set nodes expanded by default, set treeNode.open attribute.
                                                                                                                                                                                                • -
                                                                                                                                                                                                • To get parent node which has no child node, set treeNode.isParent attribute.
                                                                                                                                                                                                • -
                                                                                                                                                                                                • Please refer to the API documentation "treeNode data details" to view other attributes description.
                                                                                                                                                                                                • -
                                                                                                                                                                                                -
                                                                                                                                                                                              • -
                                                                                                                                                                                              • 3、Other explanation

                                                                                                                                                                                                -
                                                                                                                                                                                                  -
                                                                                                                                                                                                • The simple JSON data model has been used almost everywhere, which can be learned easily.
                                                                                                                                                                                                • -
                                                                                                                                                                                                -
                                                                                                                                                                                              • -
                                                                                                                                                                                              -
                                                                                                                                                                                              -
                                                                                                                                                                                              - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/standardData.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/standardData.html deleted file mode 100644 index 14d3cff2..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/standardData.html +++ /dev/null @@ -1,106 +0,0 @@ - - - - ZTREE DEMO - Standard Data - - - - - - - - - - -

                                                                                                                                                                                              Standard JSON Data

                                                                                                                                                                                              -
                                                                                                                                                                                              [ File Path: core/standardData.html ]
                                                                                                                                                                                              -
                                                                                                                                                                                              -
                                                                                                                                                                                              -
                                                                                                                                                                                                -
                                                                                                                                                                                                -
                                                                                                                                                                                                -
                                                                                                                                                                                                  -
                                                                                                                                                                                                • 1, Explanation of setting

                                                                                                                                                                                                  -
                                                                                                                                                                                                    -
                                                                                                                                                                                                  • No extrally setting needed for basic functions.
                                                                                                                                                                                                  • -
                                                                                                                                                                                                  • The setting.view in API documentation is associated with the display of the zTree.
                                                                                                                                                                                                  • -
                                                                                                                                                                                                  • To change the 'name', 'children', 'title' attribute, please refer to the API documentation about 'setting.data.key'.
                                                                                                                                                                                                  • -
                                                                                                                                                                                                  -
                                                                                                                                                                                                • -
                                                                                                                                                                                                • 2, Explanation of treeNode

                                                                                                                                                                                                  -
                                                                                                                                                                                                    -
                                                                                                                                                                                                  • Need to use nested JSON data that include parent-child relationship between nodes -
                                                                                                                                                                                                    For example:
                                                                                                                                                                                                    -var nodes = [
                                                                                                                                                                                                    -	{name: "pNode 01", children: [
                                                                                                                                                                                                    -		{name: "child 01"},
                                                                                                                                                                                                    -		{name: "child 02"}
                                                                                                                                                                                                    -	]}
                                                                                                                                                                                                    -];
                                                                                                                                                                                                    -
                                                                                                                                                                                                  • -
                                                                                                                                                                                                  • To set nodes expanded by default, set treeNode.open attribute.
                                                                                                                                                                                                  • -
                                                                                                                                                                                                  • No child nodes of parent node, set treeNode.isParent attribute.
                                                                                                                                                                                                  • -
                                                                                                                                                                                                  • Please refer to the API documentation "treeNode data details" to view other attributes description.
                                                                                                                                                                                                  • -
                                                                                                                                                                                                  -
                                                                                                                                                                                                • -
                                                                                                                                                                                                -
                                                                                                                                                                                                -
                                                                                                                                                                                                - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/update_fun.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/update_fun.html deleted file mode 100644 index 5d5ed339..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/update_fun.html +++ /dev/null @@ -1,143 +0,0 @@ - - - - ZTREE DEMO - updateNode - - - - - - - - - - - -

                                                                                                                                                                                                Update Node - zTree methods

                                                                                                                                                                                                -
                                                                                                                                                                                                [ File Path: core/update_fun.html ]
                                                                                                                                                                                                -
                                                                                                                                                                                                -
                                                                                                                                                                                                -
                                                                                                                                                                                                  -
                                                                                                                                                                                                  -
                                                                                                                                                                                                  -
                                                                                                                                                                                                    -
                                                                                                                                                                                                  • 1, Explanation of updateNode

                                                                                                                                                                                                    - -
                                                                                                                                                                                                  • -
                                                                                                                                                                                                  • 2, Explanation of setting

                                                                                                                                                                                                    -
                                                                                                                                                                                                      -
                                                                                                                                                                                                    • Do not need to set the setting.
                                                                                                                                                                                                    • -
                                                                                                                                                                                                    • You can modify the node style with setting.view.fontCss.
                                                                                                                                                                                                    • -
                                                                                                                                                                                                    -
                                                                                                                                                                                                  • -
                                                                                                                                                                                                  • 3, Explanation of treeNode

                                                                                                                                                                                                    -
                                                                                                                                                                                                      -
                                                                                                                                                                                                    • In the API documentation has detail description about the 'zTreeObj.updateNode method'.
                                                                                                                                                                                                    • -
                                                                                                                                                                                                    -
                                                                                                                                                                                                  • -
                                                                                                                                                                                                  • 4、Other explanation

                                                                                                                                                                                                    -
                                                                                                                                                                                                      -
                                                                                                                                                                                                    • This demo only made ​by the core js, so does not include the checkbox update.
                                                                                                                                                                                                    • -
                                                                                                                                                                                                    -
                                                                                                                                                                                                  • -
                                                                                                                                                                                                  -
                                                                                                                                                                                                  -
                                                                                                                                                                                                  - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/url.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/url.html deleted file mode 100644 index 722e1c5e..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/url.html +++ /dev/null @@ -1,63 +0,0 @@ - - - - ZTREE DEMO - url - - - - - - - - - - -

                                                                                                                                                                                                  Hyperlinks Demo

                                                                                                                                                                                                  -
                                                                                                                                                                                                  [ File Path: core/url.html ]
                                                                                                                                                                                                  -
                                                                                                                                                                                                  -
                                                                                                                                                                                                  -
                                                                                                                                                                                                    -
                                                                                                                                                                                                    -
                                                                                                                                                                                                    -
                                                                                                                                                                                                      -
                                                                                                                                                                                                    • 1, Explanation of setting

                                                                                                                                                                                                      -
                                                                                                                                                                                                        -
                                                                                                                                                                                                      • No extrally setting needed for basic functions.
                                                                                                                                                                                                      • -
                                                                                                                                                                                                      • If you need flexible control of hyperlinks to jump, please use the 'onClick' callback. See the API documentation for more related contents.
                                                                                                                                                                                                      • -
                                                                                                                                                                                                      -
                                                                                                                                                                                                    • -
                                                                                                                                                                                                    • 2, Explanation of treeNode

                                                                                                                                                                                                      -
                                                                                                                                                                                                        -
                                                                                                                                                                                                      • 1. the 'url' attribute is used to save the hyperlink's path.
                                                                                                                                                                                                      • -
                                                                                                                                                                                                      • 2. the 'target' attribute is used to save the hyperlink's target.
                                                                                                                                                                                                      • -
                                                                                                                                                                                                      • 3. the 'click' attribute is used to save the hyperlink's 'onclick' attribute.
                                                                                                                                                                                                      • -
                                                                                                                                                                                                      • Please refer to the API documentation "treeNode data details" to view other attributes description.
                                                                                                                                                                                                      • -
                                                                                                                                                                                                      -
                                                                                                                                                                                                    • -
                                                                                                                                                                                                    -
                                                                                                                                                                                                    -
                                                                                                                                                                                                    - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/checkbox.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/checkbox.html deleted file mode 100644 index a107a417..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/checkbox.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - ZTREE DEMO - checkbox - - - - - - - - - - - -

                                                                                                                                                                                                    Checkbox Operation

                                                                                                                                                                                                    -
                                                                                                                                                                                                    [ File Path: excheck/checkbox.html ]
                                                                                                                                                                                                    -
                                                                                                                                                                                                    -
                                                                                                                                                                                                    -
                                                                                                                                                                                                      -
                                                                                                                                                                                                      -
                                                                                                                                                                                                      -
                                                                                                                                                                                                        -
                                                                                                                                                                                                      • 1, Explanation of setting

                                                                                                                                                                                                        -
                                                                                                                                                                                                          -
                                                                                                                                                                                                        • Must set setting.check attributes, see the API documentation for more related contents.
                                                                                                                                                                                                        • -
                                                                                                                                                                                                        • Linkage relationship between parent and child nodes:
                                                                                                                                                                                                          - check: affect the parent - affect the child
                                                                                                                                                                                                          - uncheck: affect the parent - affect the child
                                                                                                                                                                                                          -

                                                                                                                                                                                                            -
                                                                                                                                                                                                          • -
                                                                                                                                                                                                          -
                                                                                                                                                                                                        • -
                                                                                                                                                                                                        • 2, Explanation of treeNode

                                                                                                                                                                                                          -
                                                                                                                                                                                                            -
                                                                                                                                                                                                          • 1), If you need to initialize the node is checked, please set treeNode.checked attribute. See the API documentation for more related contents.
                                                                                                                                                                                                          • -
                                                                                                                                                                                                          • 2), If you need to initialize the node's checkbox is disabled, please set treeNode.chkDisabled attribute. See the API documentation for more related contents and 'chkDisabled Demo'.
                                                                                                                                                                                                          • -
                                                                                                                                                                                                          • 3), If you need to initialize the node don't show checkbox, please set treeNode.nocheck attribute. See the API documentation for more related contents and 'nocheck Demo'.
                                                                                                                                                                                                          • -
                                                                                                                                                                                                          • 4), If you need to change 'checked' to other attribute, please set setting.data.key.checked attribute. See the API documentation for more related contents.
                                                                                                                                                                                                          • -
                                                                                                                                                                                                          • 5), By the way, please see the API documentation for 'treeNode.checkedOld / getCheckStatus / check_Child_State / check_Focus'.
                                                                                                                                                                                                          • -
                                                                                                                                                                                                          -
                                                                                                                                                                                                        • -
                                                                                                                                                                                                        -
                                                                                                                                                                                                        -
                                                                                                                                                                                                        - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/checkbox_chkDisabled.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/checkbox_chkDisabled.html deleted file mode 100644 index 6f1fbc49..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/checkbox_chkDisabled.html +++ /dev/null @@ -1,111 +0,0 @@ - - - - ZTREE DEMO - Checkbox chkDisabled - - - - - - - - - - - -

                                                                                                                                                                                                        Checkbox chkDisabled Demo

                                                                                                                                                                                                        -
                                                                                                                                                                                                        [ File Path: excheck/checkbox_chkDisabled.html ]
                                                                                                                                                                                                        -
                                                                                                                                                                                                        -
                                                                                                                                                                                                        -
                                                                                                                                                                                                          -
                                                                                                                                                                                                          -
                                                                                                                                                                                                          -
                                                                                                                                                                                                            -
                                                                                                                                                                                                          • 1, Explanation of 'setChkDisabled' method

                                                                                                                                                                                                            -
                                                                                                                                                                                                              -
                                                                                                                                                                                                            • 'setChkDisabled' method can set the node's checkbox / radio to be disabled or abled. See the API documentation for more related contents.
                                                                                                                                                                                                            • -
                                                                                                                                                                                                            • Try:
                                                                                                                                                                                                              - disabled: affect the parent - affect the child
                                                                                                                                                                                                              - unDisabled: affect the parent - affect the child
                                                                                                                                                                                                              -     [ be disabled ] -     [ be abled ]

                                                                                                                                                                                                              -
                                                                                                                                                                                                            • -
                                                                                                                                                                                                            -
                                                                                                                                                                                                          • -
                                                                                                                                                                                                          • 2, Explanation of setting

                                                                                                                                                                                                            -
                                                                                                                                                                                                              -
                                                                                                                                                                                                            • This Demo only shows how use the ‘chkDisabled’ attribute, detailed configuration information, please refer to 'Checkbox Operation'
                                                                                                                                                                                                            • -
                                                                                                                                                                                                            -
                                                                                                                                                                                                          • -
                                                                                                                                                                                                          • 3, Explanation of treeNode

                                                                                                                                                                                                            -
                                                                                                                                                                                                              -
                                                                                                                                                                                                            • 1), If you need to initialize the node's checkbox is disabled, please set treeNode.chkDisabled attribute. See the API documentation for more related contents.
                                                                                                                                                                                                            • -
                                                                                                                                                                                                            • 2), By the way, please see the 'Checkbox Operation' Demo.
                                                                                                                                                                                                            • -
                                                                                                                                                                                                            -
                                                                                                                                                                                                          • -
                                                                                                                                                                                                          -
                                                                                                                                                                                                          -
                                                                                                                                                                                                          - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/checkbox_count.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/checkbox_count.html deleted file mode 100644 index f8b07a29..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/checkbox_count.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - ZTREE DEMO - getChangeCheckedNodes / getCheckedNodes - - - - - - - - - - - -

                                                                                                                                                                                                          Statistics Checkbox is Checked

                                                                                                                                                                                                          -
                                                                                                                                                                                                          [ File Path: excheck/checkbox_count.html ]
                                                                                                                                                                                                          -
                                                                                                                                                                                                          -
                                                                                                                                                                                                          -
                                                                                                                                                                                                            -
                                                                                                                                                                                                            -
                                                                                                                                                                                                            -
                                                                                                                                                                                                              -
                                                                                                                                                                                                            • 1, Explanation of getChangeCheckedNodes / getCheckedNodes

                                                                                                                                                                                                              -
                                                                                                                                                                                                                -
                                                                                                                                                                                                              • How to use zTreeObj.getChangeCheckedNodes / getCheckedNodes method, please see the API documentation.
                                                                                                                                                                                                              • -
                                                                                                                                                                                                              • Check the checkbox, observe the number of changes:
                                                                                                                                                                                                                -

                                                                                                                                                                                                                  -
                                                                                                                                                                                                                • Total check node:
                                                                                                                                                                                                                • -
                                                                                                                                                                                                                • Total uncheck node:
                                                                                                                                                                                                                • -
                                                                                                                                                                                                                • Modify the state of checkbox:
                                                                                                                                                                                                                  - Compared with zTree initialization
                                                                                                                                                                                                                  - Compared with the last check
                                                                                                                                                                                                                • -
                                                                                                                                                                                                                • Total change the checkbox state of node:
                                                                                                                                                                                                                • -

                                                                                                                                                                                                                -
                                                                                                                                                                                                              • -
                                                                                                                                                                                                              -
                                                                                                                                                                                                            • -
                                                                                                                                                                                                            • 2, Explanation of setting

                                                                                                                                                                                                              -
                                                                                                                                                                                                                -
                                                                                                                                                                                                              • Same as 'Checkbox Operation'
                                                                                                                                                                                                              • -
                                                                                                                                                                                                              -
                                                                                                                                                                                                            • -
                                                                                                                                                                                                            • 3, Explanation of treeNode

                                                                                                                                                                                                              -
                                                                                                                                                                                                                -
                                                                                                                                                                                                              • Same as 'Checkbox Operation'
                                                                                                                                                                                                              • -
                                                                                                                                                                                                              -
                                                                                                                                                                                                            • -
                                                                                                                                                                                                            -
                                                                                                                                                                                                            -
                                                                                                                                                                                                            - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/checkbox_fun.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/checkbox_fun.html deleted file mode 100644 index d5ce22c1..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/checkbox_fun.html +++ /dev/null @@ -1,172 +0,0 @@ - - - - ZTREE DEMO - beforeCheck / onCheck - - - - - - - - - - - -

                                                                                                                                                                                                            Checkbox - zTree methods

                                                                                                                                                                                                            -
                                                                                                                                                                                                            [ File Path: excheck/checkbox_fun.html ]
                                                                                                                                                                                                            -
                                                                                                                                                                                                            -
                                                                                                                                                                                                            -
                                                                                                                                                                                                              -
                                                                                                                                                                                                              -
                                                                                                                                                                                                              -
                                                                                                                                                                                                                -
                                                                                                                                                                                                              • 1, 'beforeCheck / onCheck' callback function

                                                                                                                                                                                                                -
                                                                                                                                                                                                                  -
                                                                                                                                                                                                                • Use 'beforeCheck / onCheck' callback function can control whether to allow changes to the node check state. This simple demo shows how to monitor the check event.
                                                                                                                                                                                                                • -
                                                                                                                                                                                                                • By the way also demonstrates how to use the 'checkNode / checkAllNodes' method triggers 'beforeCheck / onCheck' callback, Try:
                                                                                                                                                                                                                  -      setting.check.autoCheckTrigger: false
                                                                                                                                                                                                                  -      Whether trigger the callback when execution checkNode() method.
                                                                                                                                                                                                                  -     Node --[ check ] -     [ uncheck ] -     [ toggle ]
                                                                                                                                                                                                                  -     Node (relationships) --[ check ] -     [ uncheck ] -     [ toggle ]
                                                                                                                                                                                                                  -     All Nodes --[ check ] -     [ uncheck ]

                                                                                                                                                                                                                  -
                                                                                                                                                                                                                • -
                                                                                                                                                                                                                • How to use 'zTreeObj.checkNode / checkAllNodes' method, please see the API documentation.
                                                                                                                                                                                                                  - beforeCheck / onCheck log:
                                                                                                                                                                                                                  -

                                                                                                                                                                                                                    -
                                                                                                                                                                                                                  • -
                                                                                                                                                                                                                  -
                                                                                                                                                                                                                • -
                                                                                                                                                                                                                • 2, Explanation of setting

                                                                                                                                                                                                                  -
                                                                                                                                                                                                                    -
                                                                                                                                                                                                                  • Same as 'Checkbox Operation'
                                                                                                                                                                                                                  • -
                                                                                                                                                                                                                  -
                                                                                                                                                                                                                • -
                                                                                                                                                                                                                • 3, Explanation of treeNode

                                                                                                                                                                                                                  -
                                                                                                                                                                                                                    -
                                                                                                                                                                                                                  • Same as 'Checkbox Operation'
                                                                                                                                                                                                                  • -
                                                                                                                                                                                                                  -
                                                                                                                                                                                                                • -
                                                                                                                                                                                                                -
                                                                                                                                                                                                                -
                                                                                                                                                                                                                - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/checkbox_halfCheck.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/checkbox_halfCheck.html deleted file mode 100644 index 80e66d99..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/checkbox_halfCheck.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - ZTREE DEMO - Checkbox halfCheck - - - - - - - - - - - -

                                                                                                                                                                                                                Checkbox halfCheck Demo

                                                                                                                                                                                                                -
                                                                                                                                                                                                                [ File Path: excheck/checkbox_halfCheck.html ]
                                                                                                                                                                                                                -
                                                                                                                                                                                                                -
                                                                                                                                                                                                                -
                                                                                                                                                                                                                  -
                                                                                                                                                                                                                  -
                                                                                                                                                                                                                  -
                                                                                                                                                                                                                    -
                                                                                                                                                                                                                  • 1, Explanation of Demo

                                                                                                                                                                                                                    -
                                                                                                                                                                                                                      -
                                                                                                                                                                                                                    • This demo implements the check operation of the dynamic tree
                                                                                                                                                                                                                    • -
                                                                                                                                                                                                                    • 1). After loaded child nodes, the parent node's 'halfCheck' attribute will be invalid immediately.
                                                                                                                                                                                                                    • -
                                                                                                                                                                                                                    • 2). If you check the parent node, so will effect the child nodes's check status.
                                                                                                                                                                                                                    • -
                                                                                                                                                                                                                    • 3). If you check the parent node, it's child node's 'halfCheck' attribute will be invalid.
                                                                                                                                                                                                                    • -
                                                                                                                                                                                                                    -
                                                                                                                                                                                                                  • -
                                                                                                                                                                                                                  • 2, Explanation of setting

                                                                                                                                                                                                                    -
                                                                                                                                                                                                                      -
                                                                                                                                                                                                                    • Half-checked functional don't need to configure any parameter. But it is accessibility, can not used alone. So please configure the parameters which you need.
                                                                                                                                                                                                                    • -
                                                                                                                                                                                                                    -
                                                                                                                                                                                                                  • -
                                                                                                                                                                                                                  • 3, Explanation of treeNode

                                                                                                                                                                                                                    -
                                                                                                                                                                                                                      -
                                                                                                                                                                                                                    • 1), Please set treeNode.halfCheck attribute, before zTree initialize. See the API documentation for more related contents.
                                                                                                                                                                                                                    • -
                                                                                                                                                                                                                    • 2), By the way, please see the 'Checkbox Operation' Demo.
                                                                                                                                                                                                                    • -
                                                                                                                                                                                                                    -
                                                                                                                                                                                                                  • -
                                                                                                                                                                                                                  -
                                                                                                                                                                                                                  -
                                                                                                                                                                                                                  - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/checkbox_nocheck.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/checkbox_nocheck.html deleted file mode 100644 index 31183d15..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/checkbox_nocheck.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - ZTREE DEMO - no checkbox - - - - - - - - - - - -

                                                                                                                                                                                                                  Checkbox nocheck Demo

                                                                                                                                                                                                                  -
                                                                                                                                                                                                                  [ File Path: excheck/checkbox_nocheck.html ]
                                                                                                                                                                                                                  -
                                                                                                                                                                                                                  -
                                                                                                                                                                                                                  -
                                                                                                                                                                                                                    -
                                                                                                                                                                                                                    -
                                                                                                                                                                                                                    -
                                                                                                                                                                                                                      -
                                                                                                                                                                                                                    • 1, Explanation of setting

                                                                                                                                                                                                                      -
                                                                                                                                                                                                                        -
                                                                                                                                                                                                                      • This Demo only shows how use the ‘nocheck’ attribute, detailed configuration information, please refer to 'Checkbox Operation'
                                                                                                                                                                                                                      • -
                                                                                                                                                                                                                      • setting.check.nocheckInherit can set the child nodes to automatically inherit the parent node's 'nocheck' attribute. See the API documentation for more related contents.
                                                                                                                                                                                                                      • -
                                                                                                                                                                                                                      • Try:
                                                                                                                                                                                                                        -     [ hide checkbox ] -     [ show checkbox ] -

                                                                                                                                                                                                                      • -
                                                                                                                                                                                                                      -
                                                                                                                                                                                                                    • -
                                                                                                                                                                                                                    • 2, Explanation of treeNode

                                                                                                                                                                                                                      -
                                                                                                                                                                                                                        -
                                                                                                                                                                                                                      • 1), If you need to initialize the node don't show checkbox, please set treeNode.nocheck attribute. See the API documentation for more related contents.
                                                                                                                                                                                                                      • -
                                                                                                                                                                                                                      • 2), By the way, please see the 'Checkbox Operation' Demo.
                                                                                                                                                                                                                      • -
                                                                                                                                                                                                                      -
                                                                                                                                                                                                                    • -
                                                                                                                                                                                                                    -
                                                                                                                                                                                                                    -
                                                                                                                                                                                                                    - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/radio.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/radio.html deleted file mode 100644 index 55921120..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/radio.html +++ /dev/null @@ -1,97 +0,0 @@ - - - - ZTREE DEMO - radio - - - - - - - - - - - -

                                                                                                                                                                                                                    Radio Operation

                                                                                                                                                                                                                    -
                                                                                                                                                                                                                    [ File Path: excheck/radio.html ]
                                                                                                                                                                                                                    -
                                                                                                                                                                                                                    -
                                                                                                                                                                                                                    -
                                                                                                                                                                                                                      -
                                                                                                                                                                                                                      -
                                                                                                                                                                                                                      -
                                                                                                                                                                                                                        -
                                                                                                                                                                                                                      • 1, Explanation of setting

                                                                                                                                                                                                                        -
                                                                                                                                                                                                                          -
                                                                                                                                                                                                                        • Must set setting.check attributes, see the API documentation for more related contents.
                                                                                                                                                                                                                        • -
                                                                                                                                                                                                                        • group range of radio:
                                                                                                                                                                                                                          within the same level - within the whole tree
                                                                                                                                                                                                                          -

                                                                                                                                                                                                                            -
                                                                                                                                                                                                                          • -
                                                                                                                                                                                                                          -
                                                                                                                                                                                                                        • -
                                                                                                                                                                                                                        • 2, Explanation of treeNode

                                                                                                                                                                                                                          -
                                                                                                                                                                                                                            -
                                                                                                                                                                                                                          • 1), If you need to initialize the node is checked, please set treeNode.checked attribute. See the API documentation for more related contents.
                                                                                                                                                                                                                          • -
                                                                                                                                                                                                                          • 2), If you need to initialize the node don't show radio, please set treeNode.nocheck attribute. See the API documentation for more related contents.
                                                                                                                                                                                                                          • -
                                                                                                                                                                                                                          • 3), If you need to change 'checked' to other attribute, please set setting.data.key.checked attribute. See the API documentation for more related contents.
                                                                                                                                                                                                                          • -
                                                                                                                                                                                                                          • 4), By the way, please see the API documentation for 'treeNode.checkedOld / getCheckStatus / check_Child_State / check_Focus'.
                                                                                                                                                                                                                          • -
                                                                                                                                                                                                                          -
                                                                                                                                                                                                                        • -
                                                                                                                                                                                                                        -
                                                                                                                                                                                                                        -
                                                                                                                                                                                                                        - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/radio_chkDisabled.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/radio_chkDisabled.html deleted file mode 100644 index bb34875e..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/radio_chkDisabled.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - ZTREE DEMO - Radio chkDisabled - - - - - - - - - - - -

                                                                                                                                                                                                                        Radio chkDisabled Demo

                                                                                                                                                                                                                        -
                                                                                                                                                                                                                        [ File Path: excheck/radio_chkDisabled.html ]
                                                                                                                                                                                                                        -
                                                                                                                                                                                                                        -
                                                                                                                                                                                                                        -
                                                                                                                                                                                                                          -
                                                                                                                                                                                                                          -
                                                                                                                                                                                                                          -
                                                                                                                                                                                                                            -
                                                                                                                                                                                                                          • 1, Explanation of 'setChkDisabled' method

                                                                                                                                                                                                                            -
                                                                                                                                                                                                                              -
                                                                                                                                                                                                                            • 'setChkDisabled' method can set the node's checkbox / radio to be disabled or abled. See the API documentation for more related contents.
                                                                                                                                                                                                                            • -
                                                                                                                                                                                                                            • Try:
                                                                                                                                                                                                                              -     [ be disabled ] -     [ be abled ]

                                                                                                                                                                                                                              -
                                                                                                                                                                                                                            • -
                                                                                                                                                                                                                            -
                                                                                                                                                                                                                          • -
                                                                                                                                                                                                                          • 2, Explanation of setting

                                                                                                                                                                                                                            -
                                                                                                                                                                                                                              -
                                                                                                                                                                                                                            • This Demo only shows how use the ‘nocheck’ attribute, detailed configuration information, please refer to 'Radio Operation'
                                                                                                                                                                                                                            • -
                                                                                                                                                                                                                            -
                                                                                                                                                                                                                          • -
                                                                                                                                                                                                                          • 3, Explanation of treeNode

                                                                                                                                                                                                                            -
                                                                                                                                                                                                                              -
                                                                                                                                                                                                                            • 1), If you need to initialize the node don't show radio, please set treeNode.chkDisabled attribute. See the API documentation for more related contents.
                                                                                                                                                                                                                            • -
                                                                                                                                                                                                                            • 2), By the way, please see the 'Radio Operation' Demo.
                                                                                                                                                                                                                            • -
                                                                                                                                                                                                                            -
                                                                                                                                                                                                                          • -
                                                                                                                                                                                                                          -
                                                                                                                                                                                                                          -
                                                                                                                                                                                                                          - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/radio_fun.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/radio_fun.html deleted file mode 100644 index 9201b733..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/radio_fun.html +++ /dev/null @@ -1,151 +0,0 @@ - - - - ZTREE DEMO - beforeCheck / onCheck - - - - - - - - - - - -

                                                                                                                                                                                                                          Radio - zTree methods

                                                                                                                                                                                                                          -
                                                                                                                                                                                                                          [ File Path: excheck/radio_fun.html ]
                                                                                                                                                                                                                          -
                                                                                                                                                                                                                          -
                                                                                                                                                                                                                          -
                                                                                                                                                                                                                            -
                                                                                                                                                                                                                            -
                                                                                                                                                                                                                            -
                                                                                                                                                                                                                              -
                                                                                                                                                                                                                            • 1, 'beforeCheck / onCheck' callback function

                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                -
                                                                                                                                                                                                                              • Use 'beforeCheck / onCheck' callback function can control whether to allow changes to the node check state. This simple demo shows how to monitor the check event.
                                                                                                                                                                                                                              • -
                                                                                                                                                                                                                              • By the way also demonstrates how to use the 'checkNode' method triggers 'beforeCheck / onCheck' callback, Try:
                                                                                                                                                                                                                                -      Whether trigger the callback when execution checkNode() method.
                                                                                                                                                                                                                                -     [ check ] -     [ uncheck ]

                                                                                                                                                                                                                                -
                                                                                                                                                                                                                              • How to use 'zTreeObj.checkNode' method, please see the API documentation.
                                                                                                                                                                                                                                - beforeCheck / onCheck log:
                                                                                                                                                                                                                                -

                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                • -
                                                                                                                                                                                                                                -
                                                                                                                                                                                                                              • -
                                                                                                                                                                                                                              • 2, Explanation of setting

                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                • Same as 'Radio Operation'
                                                                                                                                                                                                                                • -
                                                                                                                                                                                                                                -
                                                                                                                                                                                                                              • -
                                                                                                                                                                                                                              • 3, Explanation of treeNode

                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                • Same as 'Radio Operation'
                                                                                                                                                                                                                                • -
                                                                                                                                                                                                                                -
                                                                                                                                                                                                                              • -
                                                                                                                                                                                                                              -
                                                                                                                                                                                                                              -
                                                                                                                                                                                                                              - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/radio_halfCheck.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/radio_halfCheck.html deleted file mode 100644 index 32851377..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/radio_halfCheck.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - ZTREE DEMO - Radio halfCheck - - - - - - - - - - - -

                                                                                                                                                                                                                              Radio halfCheck Demo

                                                                                                                                                                                                                              -
                                                                                                                                                                                                                              [ File Path: excheck/radio_halfCheck.html ]
                                                                                                                                                                                                                              -
                                                                                                                                                                                                                              -
                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                • 1, Explanation of Demo

                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                  • This demo implements the check operation of the dynamic tree
                                                                                                                                                                                                                                  • -
                                                                                                                                                                                                                                  • 1). After loaded child nodes, the parent node's 'halfCheck' attribute will be invalid immediately.
                                                                                                                                                                                                                                  • -
                                                                                                                                                                                                                                  • 2). If you check the parent node, will not effect the child nodes's check status.
                                                                                                                                                                                                                                  • -
                                                                                                                                                                                                                                  • 3). If you check the parent node, it's child node's 'halfCheck' attribute will still be valid.
                                                                                                                                                                                                                                  • -
                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                • -
                                                                                                                                                                                                                                • 2, Explanation of setting

                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                  • Half-checked functional don't need to configure any parameter. But it is accessibility, can not used alone. So please configure the parameters which you need.
                                                                                                                                                                                                                                  • -
                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                • -
                                                                                                                                                                                                                                • 3, Explanation of treeNode

                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                  • 1), Please set treeNode.halfCheck attribute, before zTree initialize. See the API documentation for more related contents.
                                                                                                                                                                                                                                  • -
                                                                                                                                                                                                                                  • 2), By the way, please see the 'Radio Operation' Demo.
                                                                                                                                                                                                                                  • -
                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                • -
                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/radio_nocheck.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/radio_nocheck.html deleted file mode 100644 index e1f26b28..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/radio_nocheck.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - ZTREE DEMO - no radio - - - - - - - - - - - -

                                                                                                                                                                                                                                Radio nocheck Demo

                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                [ File Path: excheck/radio_nocheck.html ]
                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                  • 1, Explanation of setting

                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                    • This Demo only shows how use the ‘nocheck’ attribute, detailed configuration information, please refer to 'Radio Operation'
                                                                                                                                                                                                                                    • -
                                                                                                                                                                                                                                    • setting.check.nocheckInherit can set the child nodes to automatically inherit the parent node's 'nocheck' attribute. See the API documentation for more related contents.
                                                                                                                                                                                                                                    • -
                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                  • -
                                                                                                                                                                                                                                  • 2, Explanation of treeNode

                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                    • 1), If you need to initialize the node don't show radio, please set treeNode.nocheck attribute. See the API documentation for more related contents.
                                                                                                                                                                                                                                    • -
                                                                                                                                                                                                                                    • 2), By the way, please see the 'Radio Operation' Demo.
                                                                                                                                                                                                                                    • -
                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                  • -
                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                  - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exedit/async_edit.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exedit/async_edit.html deleted file mode 100644 index bde0bca8..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exedit/async_edit.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - ZTREE DEMO - async & edit - - - - - - - - - - - - -

                                                                                                                                                                                                                                  Editing Dynamic Tree

                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                  [ File Path: exedit/async_edit.html ]
                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                    • 1, Explanation of editing dynamic tree

                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                      • 1) This Demo is based on the "Advanced Edit Nodes" to modify, and open to drag and drop functionality, can be compared with that demo.
                                                                                                                                                                                                                                      • -
                                                                                                                                                                                                                                      • 2) At the same time set the editing mode and dynamic mode can be achieved editing dynamic tree.
                                                                                                                                                                                                                                      • -
                                                                                                                                                                                                                                      • 3) zTree improved editing capabilities in dynamic mode, if the parent node hasn‘t loaded the child nodes, it will first load the child nodes before it add child node.
                                                                                                                                                                                                                                      • -
                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                    • -
                                                                                                                                                                                                                                    • 2, Explanation of setting

                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                      • 1) Use editing features, please refer to "Normal Drag Node Operation" & "Basic Edit Nodes" demo of the instructions.
                                                                                                                                                                                                                                      • -
                                                                                                                                                                                                                                      • 2) Use dynamic loading, please refer to "Dynamic Tree with Ajax" demo of the instructions.
                                                                                                                                                                                                                                      • -
                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                    • -
                                                                                                                                                                                                                                    • 3, Explanation of treeNode

                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                      • No special requirements on the node data, please refer to "Dynamic Tree with Ajax" & "Normal Drag Node Operation" & "Basic Edit Nodes" demo of the instructions
                                                                                                                                                                                                                                      • -
                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                    • -
                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                    - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exedit/drag.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exedit/drag.html deleted file mode 100644 index 0335aec0..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exedit/drag.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - ZTREE DEMO - drag & drop - - - - - - - - - - - -

                                                                                                                                                                                                                                    Normal Drag Node Operation

                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                    [ File Path: exedit/drag.html ]
                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                      • 1, Explanation of setting

                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                        • This Demo only shows how to drag & drop nodes using the basic method and configure parameters.
                                                                                                                                                                                                                                        • -
                                                                                                                                                                                                                                        • 1) Must set 'setting.edit' attributes, see the API documentation for more related contents.
                                                                                                                                                                                                                                        • -
                                                                                                                                                                                                                                        • 2) If you want to use drag & drop callback, muse to set 'setting.callback.beforeDrag / onDrag / beforeDrop / onDrop' attributes, see the API documentation for more related contents.
                                                                                                                                                                                                                                        • -
                                                                                                                                                                                                                                        • Basic settings:
                                                                                                                                                                                                                                          - can Copy - can Move
                                                                                                                                                                                                                                          -

                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                          • -
                                                                                                                                                                                                                                          • Position settings:
                                                                                                                                                                                                                                            - prev - inner - next
                                                                                                                                                                                                                                            -

                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                            • -
                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                          • -
                                                                                                                                                                                                                                          • 2, Explanation of treeNode

                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                            • No special requirements on the node data, the user can add custom attributes.
                                                                                                                                                                                                                                            • -
                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                          • -
                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                          - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exedit/drag_fun.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exedit/drag_fun.html deleted file mode 100644 index 02bf9ae3..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exedit/drag_fun.html +++ /dev/null @@ -1,180 +0,0 @@ - - - - ZTREE DEMO - copyNode / moveNode - - - - - - - - - - - - -

                                                                                                                                                                                                                                          Move / Copy - zTree methods

                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                          [ File Path: exedit/drag_fun.html ]
                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                            • 1, Explanation of 'copyNode / moveNode' method

                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                              • Use 'copyNode / moveNode' method can also be achieved copy / move nodes.
                                                                                                                                                                                                                                              • -
                                                                                                                                                                                                                                              • Try to copy or cut node:
                                                                                                                                                                                                                                                -     [ copy ] -     [ cut ] -     [ paste ]

                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                              • How to use 'zTreeObj.copyNode / moveNode' method, please see the API documentation.
                                                                                                                                                                                                                                              • -
                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                            • -
                                                                                                                                                                                                                                            • 2, Explanation of setting

                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                              • Same as 'Normal Drag Node Operation'
                                                                                                                                                                                                                                              • -
                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                            • -
                                                                                                                                                                                                                                            • 3, Explanation of treeNode

                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                              • Same as 'Normal Drag Node Operation'
                                                                                                                                                                                                                                              • -
                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                            • -
                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                            - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exedit/drag_super.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exedit/drag_super.html deleted file mode 100644 index 2c2dd6d5..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exedit/drag_super.html +++ /dev/null @@ -1,210 +0,0 @@ - - - - ZTREE DEMO - beforeDrag / onDrag / beforeDrop / onDrop - - - - - - - - - - - -

                                                                                                                                                                                                                                            Advanced Drag Node Operation

                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                            [ File Path: exedit/drag_super.html ]
                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                              • 1, 'beforeDrag / onDrag'
                                                                                                                                                                                                                                                  'beforeDrop / onDrop' callback function

                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                • This Demo shows the configuration parameters to achieve a more flexible use of drag and drop rules, the operation can be compared with "Normal Drag Node Operation" example.
                                                                                                                                                                                                                                                • -
                                                                                                                                                                                                                                                • This Demo default allows copy & move.
                                                                                                                                                                                                                                                • -
                                                                                                                                                                                                                                                • This Demo set 'setting.edit.drag.prev / inner / next' as 'function', you can dynamically set according to the node, which can not use beforeDrop callback function, the effect of drag and drop will be better.
                                                                                                                                                                                                                                                • -
                                                                                                                                                                                                                                                • After be familiar with these configurations, I think you can design a more flexible and rational rules!
                                                                                                                                                                                                                                                  -      拖拽节点时自动展开父节点是否触发 callback
                                                                                                                                                                                                                                                  - drag / drop log:
                                                                                                                                                                                                                                                  -

                                                                                                                                                                                                                                                  • -
                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                • -
                                                                                                                                                                                                                                                • 2, Explanation of setting

                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                  • Same as 'Normal Drag Node Operation'
                                                                                                                                                                                                                                                  • -
                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                • -
                                                                                                                                                                                                                                                • 3, Explanation of treeNode

                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                  • Same as 'Normal Drag Node Operation'
                                                                                                                                                                                                                                                  • -
                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                • -
                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exedit/edit.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exedit/edit.html deleted file mode 100644 index 62571177..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exedit/edit.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - ZTREE DEMO - edit - - - - - - - - - - - -

                                                                                                                                                                                                                                                Basic Edit Nodes

                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                [ File Path: exedit/edit.html ]
                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                  • 1, Explanation of setting

                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                    • This Demo only shows how to edit nodes using the basic method and configure parameters.
                                                                                                                                                                                                                                                    • -
                                                                                                                                                                                                                                                    • 1) Must set 'setting.edit' attributes, see the API documentation for more related contents.
                                                                                                                                                                                                                                                    • -
                                                                                                                                                                                                                                                    • 2) If you want to use remove / rename callback, muse to set 'setting.callback.beforeRemove / onRemove / beforeRename / onRename' attributes, see the API documentation for more related contents.
                                                                                                                                                                                                                                                    • -
                                                                                                                                                                                                                                                    • 3) zTree do not provide buttons for add nodes, please use the custom control methods 'addHoverDom / removeHoverDom' to achieve added functionality, see the API documentation for more related contents. Another way, you can see the demo named 'Advanced Edit Nodes'.
                                                                                                                                                                                                                                                    • -
                                                                                                                                                                                                                                                    • Edit button setting:
                                                                                                                                                                                                                                                      - show remove button - show edit button
                                                                                                                                                                                                                                                      - title for remove:
                                                                                                                                                                                                                                                      - title for rename: -

                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                      • -
                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                    • -
                                                                                                                                                                                                                                                    • 2, Explanation of treeNode

                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                      • No special requirements on the node data, the user can add custom attributes.
                                                                                                                                                                                                                                                      • -
                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                    • -
                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                    - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exedit/edit_fun.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exedit/edit_fun.html deleted file mode 100644 index 4b8eabed..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exedit/edit_fun.html +++ /dev/null @@ -1,194 +0,0 @@ - - - - ZTREE DEMO - addNodes / editName / removeNode / removeChildNodes - - - - - - - - - - - -

                                                                                                                                                                                                                                                    Edit Nodes - zTree methods

                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                    [ File Path: exedit/edit_fun.html ]
                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                      • 1, Explanation of 'addNodes / editName / removeNode / removeChildNodes' method

                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                        • Use 'addNodes / editName / removeNode / removeChildNodes' method can also be achieved copy / move nodes.
                                                                                                                                                                                                                                                        • -
                                                                                                                                                                                                                                                        • Method 'cancelEditName' is effective, only when edit the node name. Please use it when necessary, this demo doesn't show how to use the method.
                                                                                                                                                                                                                                                        • -
                                                                                                                                                                                                                                                        • Use setting.data.keep.parent / leaf attribute, you can lock the parent node and leaf node.
                                                                                                                                                                                                                                                        • -
                                                                                                                                                                                                                                                        • Try to edit node:
                                                                                                                                                                                                                                                          -      Whether trigger the callback when execution removeNode() method.
                                                                                                                                                                                                                                                          -     [ add parent node ] -     [ add leaf node ] -     [ edit name ]
                                                                                                                                                                                                                                                          -     [ remove node ] -     [ make child nodes to empty ]
                                                                                                                                                                                                                                                          - remove log:
                                                                                                                                                                                                                                                          -

                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                          • -
                                                                                                                                                                                                                                                          • How to use 'zTreeObj.addNodes / cancelEditName / editName / removeNode / removeChildNodes' method, please see the API documentation.
                                                                                                                                                                                                                                                          • -
                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                        • -
                                                                                                                                                                                                                                                        • 2, Explanation of setting

                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                          • Same as 'Basic Edit Nodes'
                                                                                                                                                                                                                                                          • -
                                                                                                                                                                                                                                                          • Lock the parent / leaf node status, need to set setting.data.keep.parent / leaf attribute, see the API documentation for more related contents
                                                                                                                                                                                                                                                          • -
                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                        • -
                                                                                                                                                                                                                                                        • 3, Explanation of treeNode

                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                          • Same as 'Basic Edit Nodes'
                                                                                                                                                                                                                                                          • -
                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                        • -
                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                        - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exedit/edit_super.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exedit/edit_super.html deleted file mode 100644 index 61331090..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exedit/edit_super.html +++ /dev/null @@ -1,192 +0,0 @@ - - - - ZTREE DEMO - beforeEditName / beforeRemove / onRemove / beforeRename / onRename - - - - - - - - - - - - -

                                                                                                                                                                                                                                                        Advanced Edit Nodes

                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                        [ File Path: exedit/edit_super.html ]
                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                          • 1, 'beforeDrag / onDrag'
                                                                                                                                                                                                                                                              'beforeEditName'
                                                                                                                                                                                                                                                              'beforeRemove / onRemove'
                                                                                                                                                                                                                                                              'beforeRename / onRename' callback function

                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                            • This demo shows the use of custom controls, the callback function to enhance the user experience, the operation can be compared with "Basic Edit Nodes" example.
                                                                                                                                                                                                                                                            • -
                                                                                                                                                                                                                                                            • This demo achieve the Add nodes button.
                                                                                                                                                                                                                                                            • -
                                                                                                                                                                                                                                                            • This demo achieve the confirmation when deleting node.
                                                                                                                                                                                                                                                            • -
                                                                                                                                                                                                                                                            • This demo use the 'showRenameBtn' to hide the rename button, when the treeNode's isLastNode = true
                                                                                                                                                                                                                                                            • -
                                                                                                                                                                                                                                                            • This demo use the 'showRemoveBtn' to hide the delete button, when the treeNode's isFirstNode = true
                                                                                                                                                                                                                                                            • -
                                                                                                                                                                                                                                                            • Can use 'beforeEditName' callback trigger custom editing.
                                                                                                                                                                                                                                                            • -
                                                                                                                                                                                                                                                            • After be familiar with these configurations, I think you can design a more flexible and rational rules!
                                                                                                                                                                                                                                                              -      Whether select all text, when edit node's name.
                                                                                                                                                                                                                                                              - remove / rename log:  RED is cancel edit (v3.5.13+)
                                                                                                                                                                                                                                                              -

                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                              • -
                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                            • -
                                                                                                                                                                                                                                                            • 2, Explanation of setting

                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                              • Same as 'Basic Edit Nodes'
                                                                                                                                                                                                                                                              • -
                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                            • -
                                                                                                                                                                                                                                                            • 3, Explanation of treeNode

                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                              • Same as 'Basic Edit Nodes'
                                                                                                                                                                                                                                                              • -
                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                            • -
                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                            - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exedit/multiTree.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exedit/multiTree.html deleted file mode 100644 index 52b4f43a..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exedit/multiTree.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - ZTREE DEMO - multiTree - - - - - - - - - - - -

                                                                                                                                                                                                                                                            Multiple Trees

                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                            [ File Path: exedit/multiTree.html ]
                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                            • 1, Explanation of setting

                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                              • zTree enables drag and drop nodes between multiple trees, only need to create two draggable tree can be. And you can use the callback function and zTree method achieve a more complex operating rules, here is only the basic demo.
                                                                                                                                                                                                                                                              • -
                                                                                                                                                                                                                                                              • On the 'setting' configuration information please refer to drag and drop, edit, etc. demo's instructions
                                                                                                                                                                                                                                                              • -
                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                            • -
                                                                                                                                                                                                                                                            • 2, Explanation of treeNode

                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                              • No special requirements on the node data, the user can add custom attributes.
                                                                                                                                                                                                                                                              • -
                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                            • -
                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exhide/checkbox.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exhide/checkbox.html deleted file mode 100644 index 9b6fddff..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exhide/checkbox.html +++ /dev/null @@ -1,161 +0,0 @@ - - - - ZTREE DEMO - Hide With Checkbox Mode - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                Hide With Checkbox Mode

                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                [ File Path: exhide/checkbox.html ]
                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                  • 1, Explanation of setting

                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                    • Use the freature which to hide nodes, you don't need to set any attributes.
                                                                                                                                                                                                                                                                    • -
                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                  • -
                                                                                                                                                                                                                                                                  • 2, Explanation of treeNode

                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                    • Before you init zTree, set treeNode.isHidden = true, and you can hide the node.
                                                                                                                                                                                                                                                                    • -
                                                                                                                                                                                                                                                                    • Hide or show the nodes:
                                                                                                                                                                                                                                                                      - Try: [ Hide the nodes which be selected ]
                                                                                                                                                                                                                                                                      -     [ Show all of the nodes which be hidden ]
                                                                                                                                                                                                                                                                      -

                                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                                      • Total nodes which 'isHidden' attribute is true:
                                                                                                                                                                                                                                                                      • -
                                                                                                                                                                                                                                                                      • Total hidden nodes:
                                                                                                                                                                                                                                                                      • -
                                                                                                                                                                                                                                                                      • Total check nodes: -   Total uncheck nodes:
                                                                                                                                                                                                                                                                      • -
                                                                                                                                                                                                                                                                      • After hide nodes, you can see the 'isFirstNode' and 'isLastNode' attributes on the nodes which still be shown.
                                                                                                                                                                                                                                                                      • -

                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                    • -
                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                  • -
                                                                                                                                                                                                                                                                  • 3、Other explanation

                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                    • Hide nodes will effect the 'isFirstNode' and 'isLastNode' attributes, but will not effect the 'getPreNode()' and 'getNextNode()' method.
                                                                                                                                                                                                                                                                    • -
                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                  • -
                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                  - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exhide/common.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exhide/common.html deleted file mode 100644 index 557f2904..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exhide/common.html +++ /dev/null @@ -1,126 +0,0 @@ - - - - ZTREE DEMO - Hide Ordinary Node - - - - - - - - - - - -

                                                                                                                                                                                                                                                                  Hide Ordinary Node

                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                  [ File Path: exhide/common.html ]
                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                    • 1, Explanation of setting

                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                                      • Use this freature, you don't need to set any attributes.
                                                                                                                                                                                                                                                                      • -
                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                    • -
                                                                                                                                                                                                                                                                    • 2, Explanation of treeNode

                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                                      • Before you init zTree, set treeNode.isHidden = true, and you can hide the node.
                                                                                                                                                                                                                                                                      • -
                                                                                                                                                                                                                                                                      • Hide or show the nodes:

                                                                                                                                                                                                                                                                        - Try: [ Hide the nodes which be selected ]
                                                                                                                                                                                                                                                                        -     [ Show all of the nodes which be hidden ]

                                                                                                                                                                                                                                                                        -

                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                        • Total hidden nodes ('isHidden' is true):
                                                                                                                                                                                                                                                                        • -
                                                                                                                                                                                                                                                                        • After hide nodes, you can see the 'isFirstNode' and 'isLastNode' attributes on the nodes which still be shown.
                                                                                                                                                                                                                                                                        • -

                                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                                      • -
                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                    • -
                                                                                                                                                                                                                                                                    • 3、Other explanation

                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                                      • Hide nodes will effect the 'isFirstNode' and 'isLastNode' attributes, but will not effect the 'getPreNode()' and 'getNextNode()' method.
                                                                                                                                                                                                                                                                      • -
                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                    • -
                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                    - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exhide/radio.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exhide/radio.html deleted file mode 100644 index a0c72e3d..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exhide/radio.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - ZTREE DEMO - Hide With Radio Mode - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                    Hide With Radio Mode

                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                    [ File Path: exhide/radio.html ]
                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                                      • 1, Explanation of setting

                                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                        • Use the freature which to hide nodes, you don't need to set any attributes.
                                                                                                                                                                                                                                                                        • -
                                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                                      • -
                                                                                                                                                                                                                                                                      • 2, Explanation of treeNode

                                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                        • Before you init zTree, set treeNode.isHidden = true, and you can hide the node.
                                                                                                                                                                                                                                                                        • -
                                                                                                                                                                                                                                                                        • Hide or show the nodes:
                                                                                                                                                                                                                                                                          - Try: [ Hide the nodes which be selected ]
                                                                                                                                                                                                                                                                          -     [ Show all of the nodes which be hidden ]
                                                                                                                                                                                                                                                                          -

                                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                                          • Total nodes which 'isHidden' attribute is true:
                                                                                                                                                                                                                                                                          • -
                                                                                                                                                                                                                                                                          • Total hidden nodes:
                                                                                                                                                                                                                                                                          • -
                                                                                                                                                                                                                                                                          • Total check nodes: -   Total uncheck nodes:
                                                                                                                                                                                                                                                                          • -
                                                                                                                                                                                                                                                                          • After hide nodes, you can see the 'isFirstNode' and 'isLastNode' attributes on the nodes which still be shown.
                                                                                                                                                                                                                                                                          • -

                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                        • -
                                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                                      • -
                                                                                                                                                                                                                                                                      • 3、Other explanation

                                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                        • Hide nodes will effect the 'isFirstNode' and 'isLastNode' attributes, but will not effect the 'getPreNode()' and 'getNextNode()' method.
                                                                                                                                                                                                                                                                        • -
                                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                                      • -
                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                      - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/fuzzySearch/fuzzySearch.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/fuzzySearch/fuzzySearch.html deleted file mode 100644 index dc06fbda..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/fuzzySearch/fuzzySearch.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - ZTREE DEMO - fuzzySearch - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                      fuzzy search by keywords

                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                      [ File Path: fuzzySearch/fuzzySearch.html ]
                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                        • -

                                                                                                                                                                                                                                                                          1、Explaination of fuzzySearch()

                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                                          • - @param the ztree id used to get the ztree object -
                                                                                                                                                                                                                                                                          • -
                                                                                                                                                                                                                                                                          • - @param searchField selector of your input for fuzzy search -
                                                                                                                                                                                                                                                                          • -
                                                                                                                                                                                                                                                                          • - @param isHighLight whether highlight the match words, default true -
                                                                                                                                                                                                                                                                          • -
                                                                                                                                                                                                                                                                          • - @param isExpand whether to expand the node, default false -
                                                                                                                                                                                                                                                                          • -
                                                                                                                                                                                                                                                                          • - fuzzySearch ( zTreeId, searchField, isHighLight, isExpand ) -
                                                                                                                                                                                                                                                                          • -
                                                                                                                                                                                                                                                                          • Try to search:
                                                                                                                                                                                                                                                                            - Keywords:
                                                                                                                                                                                                                                                                            -

                                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                                          • -
                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                        • -
                                                                                                                                                                                                                                                                        • 2、js dependencies

                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                                          • ztree v3.5.19.1 +, getPath() in use
                                                                                                                                                                                                                                                                          • -
                                                                                                                                                                                                                                                                          • ztree.exhide extension, hideNode() in use
                                                                                                                                                                                                                                                                          • -
                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                        • -
                                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                                        - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/index.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/index.html deleted file mode 100644 index b25a9ea1..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/index.html +++ /dev/null @@ -1,170 +0,0 @@ - - - - ZTREE DEMO - - - - - - - - - - - - - - -
                                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                          - -
                                                                                                                                                                                                                                                                          - - - diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/asyncForAll.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/asyncForAll.html deleted file mode 100644 index 1c2a9e2e..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/asyncForAll.html +++ /dev/null @@ -1,192 +0,0 @@ - - - - ZTREE DEMO - async for All - - - - - - - - - - -

                                                                                                                                                                                                                                                                          Expand All Nodes with Async

                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                          [ File Path: super/asyncForAll.html ]
                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                            • Explanation of implementation method

                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                              • Using 'onAsyncSuccess' / 'onAsyncError' callback and 'reAsyncChildNodes' or 'expandNode' method, you will achieve all functionalities.
                                                                                                                                                                                                                                                                              • -
                                                                                                                                                                                                                                                                              • Note: If there are large amount parent nodes, please use delay to avoid excessive asynchronous process.
                                                                                                                                                                                                                                                                              • -
                                                                                                                                                                                                                                                                              • Recommendation: please use the debugging tools to view the ajax loading process with network.
                                                                                                                                                                                                                                                                              • -
                                                                                                                                                                                                                                                                              • Demonstrate operation -

                                                                                                                                                                                                                                                                                - [ Expand All Nodes ]        - [ Load all nodes (don't expand) ]

                                                                                                                                                                                                                                                                                - [ Reset zTree ]

                                                                                                                                                                                                                                                                                -

                                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                              • -
                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                            • -
                                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                                            - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/awesome.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/awesome.html deleted file mode 100644 index 453ca723..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/awesome.html +++ /dev/null @@ -1,135 +0,0 @@ - - - - ZTREE DEMO - Simple Data - - - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                            Awesome Style

                                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                                            [ File Path: super/awesome.html ]
                                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                              • 1, Explanation of fontawesome Style

                                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                • You need to include the fontawesome stylesheet in your page (http://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css)
                                                                                                                                                                                                                                                                                • -
                                                                                                                                                                                                                                                                                • <= This should show a car icon (if fontawesome is loaded properly)
                                                                                                                                                                                                                                                                                • -
                                                                                                                                                                                                                                                                                • Include the css stylesheet: 'css/awesomeStyle'
                                                                                                                                                                                                                                                                                • -
                                                                                                                                                                                                                                                                                • Thanks to mikkelking for this Demo. For reference only.
                                                                                                                                                                                                                                                                                • - -
                                                                                                                                                                                                                                                                                • Mode:
                                                                                                                                                                                                                                                                                  - - - -
                                                                                                                                                                                                                                                                                  -

                                                                                                                                                                                                                                                                                • -
                                                                                                                                                                                                                                                                                - -
                                                                                                                                                                                                                                                                              - - -
                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                              - - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/checkbox_radio.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/checkbox_radio.html deleted file mode 100644 index 4bed0af3..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/checkbox_radio.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - ZTREE DEMO - checkbox & radio - - - - - - - - - - - -

                                                                                                                                                                                                                                                                              Checkbox / Radio Coexistence

                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                              [ File Path: super/checkbox_radio.html ]
                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                • Explanation of implementation method

                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                  • zTree default checkbox and radio can not coexist, but can be used the custom DOM features to achieve this requirement, refer to the "Adding Custom DOM".
                                                                                                                                                                                                                                                                                  • -
                                                                                                                                                                                                                                                                                  • For checkbox / radio association rules of the parent nodes and child nodes, according to the needs to develop its own rules.
                                                                                                                                                                                                                                                                                  • -
                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                • -
                                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                                - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/diydom.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/diydom.html deleted file mode 100644 index 1841782c..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/diydom.html +++ /dev/null @@ -1,177 +0,0 @@ - - - - ZTREE DEMO - addHoverDom / removeHoverDom / addDiyDom - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                Adding Custom DOM

                                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                                [ File Path: super/diydom.html ]
                                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                  • 1, Explanation of implementation method

                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                    • Use 'setting.view.addHoverDom / removeHoverDom / addDiyDom' attributes can easily display custom DOM.
                                                                                                                                                                                                                                                                                    • -
                                                                                                                                                                                                                                                                                    • Adding custom DOM, is important to understand zTree node object naming rules to ensure the normal controls add DOM.
                                                                                                                                                                                                                                                                                    • -
                                                                                                                                                                                                                                                                                    • If you add the browser's default ’select / checkbox / radio‘ DOM, please adjust the css, to ensure correctly display zTree.
                                                                                                                                                                                                                                                                                    • -
                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                  • -
                                                                                                                                                                                                                                                                                  • 2, Explanation of setting

                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                    • Set 'setting.view.addHoverDom / removeHoverDom / addDiyDom' attributes, see the API documentation for more related contents.
                                                                                                                                                                                                                                                                                    • -
                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                  • -
                                                                                                                                                                                                                                                                                  • 3, Explanation of treeNode

                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                    • No special requirements on the node data, the user can add custom attributes.
                                                                                                                                                                                                                                                                                    • -
                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                  • -
                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                  - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/dragWithOther.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/dragWithOther.html deleted file mode 100644 index 762e6c89..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/dragWithOther.html +++ /dev/null @@ -1,253 +0,0 @@ - - - - ZTREE DEMO - drag with other DOM - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                  Drag With Other DOMs

                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                  [ File Path: super/dragWithOther.html ]
                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                    • Explanation of implementation method

                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                                                      • zTree v3.2 modified the event object in onDrag/onDrop; v3.5.16 add the onDragMove callback, thus the nodes can be draged to other DOMs easily.
                                                                                                                                                                                                                                                                                      • -
                                                                                                                                                                                                                                                                                      • To drag other DOMS to zTree, you need to build the drag codes by yourself.
                                                                                                                                                                                                                                                                                      • -
                                                                                                                                                                                                                                                                                      • This is just a simple Demo. If you need more features, please build more complicated codes.
                                                                                                                                                                                                                                                                                      • -
                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                    • -
                                                                                                                                                                                                                                                                                    • Please drag and drop the following content to the tree node

                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                      TreeGrassFlower
                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                      TigerBearLion
                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                      - You can drag the nodes of level 2 to the above layer. -
                                                                                                                                                                                                                                                                                    • -
                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                    - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/fuzzySearch.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/fuzzySearch.html deleted file mode 100644 index 14b3a623..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/fuzzySearch.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - ZTREE DEMO - fuzzySearch - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                    Fuzzy Search

                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                    [ File Path: fuzzySearch/fuzzySearch.html ]
                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                                                      • -

                                                                                                                                                                                                                                                                                        1. Explaination of fuzzySearch()

                                                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                                        • - @param the ztree id used to get the ztree object -
                                                                                                                                                                                                                                                                                        • -
                                                                                                                                                                                                                                                                                        • - @param searchField selector of your input for fuzzy search -
                                                                                                                                                                                                                                                                                        • -
                                                                                                                                                                                                                                                                                        • - @param isHighLight whether highlight the match words, default true -
                                                                                                                                                                                                                                                                                        • -
                                                                                                                                                                                                                                                                                        • - @param isExpand whether to expand the node, default false -
                                                                                                                                                                                                                                                                                        • -
                                                                                                                                                                                                                                                                                        • - fuzzySearch ( zTreeId, searchField, isHighLight, isExpand ) -
                                                                                                                                                                                                                                                                                        • -
                                                                                                                                                                                                                                                                                        • Try to search:
                                                                                                                                                                                                                                                                                          - Keywords:
                                                                                                                                                                                                                                                                                          -

                                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                                        • -
                                                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                                                      • -
                                                                                                                                                                                                                                                                                      • 2. js dependencies

                                                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                                        • ztree v3.5.19.1 +, getPath() in use
                                                                                                                                                                                                                                                                                        • -
                                                                                                                                                                                                                                                                                        • ztree.exhide extension, hideNode() in use
                                                                                                                                                                                                                                                                                        • -
                                                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                                                      • -
                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                      - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/left_menu.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/left_menu.html deleted file mode 100644 index 86d12cf7..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/left_menu.html +++ /dev/null @@ -1,152 +0,0 @@ - - - - ZTREE DEMO - left_menu - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                      Left Menu

                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                      [ File Path: super/left_menu.html ]
                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                                        • Explanation of implementation method

                                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                                                          • The menu in the Demo's Web page is to use zTree to achieve, is to use css set interface, use the configuration 'setting' to achieve features, this demo achieve a simple example of the left menu, you can view the source code of Demo's Web Page for in-depth study.
                                                                                                                                                                                                                                                                                          • -
                                                                                                                                                                                                                                                                                          • 1. According to your needs to modify the css, for example: the menu style on this Demo and Demo's Web page not the same.
                                                                                                                                                                                                                                                                                          • -
                                                                                                                                                                                                                                                                                          • 2. Main configuration:
                                                                                                                                                                                                                                                                                            -     setting.view.showIcon / showLine / selectedMulti / dblClickExpand
                                                                                                                                                                                                                                                                                            -     setting.callback.onNodeCreated / beforeClick / onClick -
                                                                                                                                                                                                                                                                                          • -
                                                                                                                                                                                                                                                                                          • 3. If need to keep single path, please refer to the source code of "Keep Single Path" Demo.
                                                                                                                                                                                                                                                                                          • -
                                                                                                                                                                                                                                                                                          • 4. Other auxiliary rules, please write code based on your needs.
                                                                                                                                                                                                                                                                                          • -
                                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                                        • -
                                                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                                                        - - diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/left_menuForOutLook.gif b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/left_menuForOutLook.gif deleted file mode 100644 index c252f0f8..00000000 Binary files a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/left_menuForOutLook.gif and /dev/null differ diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/left_menuForOutLook.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/left_menuForOutLook.html deleted file mode 100644 index 0af50aff..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/left_menuForOutLook.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - ZTREE DEMO - left_menu for Outlook - - - - - - - - - - -

                                                                                                                                                                                                                                                                                        Left Menu Like OutLook Style

                                                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                                                        [ File Path: super/left_menuForOutLook.html ]
                                                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                                                          • Explanation of implementation method

                                                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                            • I make one left menu which resembles outlook.com, so share to everyone.
                                                                                                                                                                                                                                                                                            • -
                                                                                                                                                                                                                                                                                            • 1. Please note that the css code of the source of this page.
                                                                                                                                                                                                                                                                                            • -
                                                                                                                                                                                                                                                                                            • 2. Please note that the javascript code of the source of this page, especially the switch button is moved into the <a> tag when 'addDiyDom' callback be called
                                                                                                                                                                                                                                                                                            • -
                                                                                                                                                                                                                                                                                            • 3. Use the method of add zTree class name to implement the switch button be hidden or showing.
                                                                                                                                                                                                                                                                                            • -
                                                                                                                                                                                                                                                                                            • 4. Other auxiliary rules, please write code based on your needs.
                                                                                                                                                                                                                                                                                            • -
                                                                                                                                                                                                                                                                                            • 5. The current rule description:
                                                                                                                                                                                                                                                                                              -   Click the root node can control the parent node be expanded or collapsed;
                                                                                                                                                                                                                                                                                              -   The parent nodes without root only are only clicked the arrow icon can control be expanded or collapsed;br/> -
                                                                                                                                                                                                                                                                                            • -
                                                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                                                          • -
                                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                                          - - diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/left_menuForOutLook.png b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/left_menuForOutLook.png deleted file mode 100644 index 36e8acfa..00000000 Binary files a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/left_menuForOutLook.png and /dev/null differ diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/metro.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/metro.html deleted file mode 100644 index b89d8bf5..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/metro.html +++ /dev/null @@ -1,109 +0,0 @@ - - - - ZTREE DEMO - Simple Data - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                          Metro Style

                                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                                          [ File Path: super/metro.html ]
                                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                            • 1, Explanation of Style Files

                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                                              • Please use style and image files of 'css/metroStyle'
                                                                                                                                                                                                                                                                                              • -
                                                                                                                                                                                                                                                                                              • Thanked rqx110 for this Demo. For reference only.
                                                                                                                                                                                                                                                                                              • -
                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                            • -
                                                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                                                            - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/oneclick.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/oneclick.html deleted file mode 100644 index 983bcb72..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/oneclick.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - ZTREE DEMO - one click - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                            Click to Expand Node

                                                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                                                            [ File Path: super/oneclick.html ]
                                                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                                              • Explanation of implementation method

                                                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                • zTree not provide a default click to expand node feature, but can use the onClick callback functions to easily implement this feature.
                                                                                                                                                                                                                                                                                                • -
                                                                                                                                                                                                                                                                                                • In order to avoid conflict with the double-clicking, I recommended to turn off double-clicking expand node function, please set setting.view.dblClickExpand = false
                                                                                                                                                                                                                                                                                                • -
                                                                                                                                                                                                                                                                                                • You can hide all the +/- switch, please see the page source, see the css.
                                                                                                                                                                                                                                                                                                • -
                                                                                                                                                                                                                                                                                                • If you do not show + / - switch, then please set 'setting.view.showLine = false' to hide line.
                                                                                                                                                                                                                                                                                                • -
                                                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                                              • -
                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                              - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/oneroot.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/oneroot.html deleted file mode 100644 index e73c141c..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/oneroot.html +++ /dev/null @@ -1,79 +0,0 @@ - - - - ZTREE DEMO - one root - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                              Freeze the Root Node

                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                              [ File Path: demo/super/oneroot.html ]
                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                • Explanation of implementation method

                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                                  • For only one root, and do not show +/- switch needs need to modify the css, and set the setting.
                                                                                                                                                                                                                                                                                                  • -
                                                                                                                                                                                                                                                                                                  • zTree v3.x can be for a given level, set the style, check out the page source, see the css.
                                                                                                                                                                                                                                                                                                  • -
                                                                                                                                                                                                                                                                                                  • Set setting.view.dblClickExpand to Function, you can turn off double-clicking for expand the root node.
                                                                                                                                                                                                                                                                                                  • -
                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                • -
                                                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                                                - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/rightClickMenu.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/rightClickMenu.html deleted file mode 100644 index 95a1d88c..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/rightClickMenu.html +++ /dev/null @@ -1,171 +0,0 @@ - - - - ZTREE DEMO - select menu - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                Right-click Menu

                                                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                                                [ File Path: super/rightClickMenu.html ]
                                                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                                  • Explanation of implementation method

                                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                                    • Use 'beforeRightClick / onRightClick' callback function achieve right-click menu.
                                                                                                                                                                                                                                                                                                    • -
                                                                                                                                                                                                                                                                                                    • Demo's menu is ugly, you can use a custom menu fine style.
                                                                                                                                                                                                                                                                                                    • -
                                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                                  • -
                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                                  • Add Node
                                                                                                                                                                                                                                                                                                  • -
                                                                                                                                                                                                                                                                                                  • Delete Node
                                                                                                                                                                                                                                                                                                  • -
                                                                                                                                                                                                                                                                                                  • Check Node
                                                                                                                                                                                                                                                                                                  • -
                                                                                                                                                                                                                                                                                                  • Uncheck Node
                                                                                                                                                                                                                                                                                                  • -
                                                                                                                                                                                                                                                                                                  • Resume zTree
                                                                                                                                                                                                                                                                                                  • -
                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                  - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/select_menu.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/select_menu.html deleted file mode 100644 index 04d9c5b4..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/select_menu.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - ZTREE DEMO - select menu - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                  Drop-down Menu

                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                  [ File Path: super/select_menu.html ]
                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                                  •   Press Ctrl-key or Cmd-key to select multiple cities
                                                                                                                                                                                                                                                                                                  • -
                                                                                                                                                                                                                                                                                                  •   city: -  select
                                                                                                                                                                                                                                                                                                  • -
                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                                  • Explanation of implementation method

                                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                                    • Achieve this drop-down menu, it is relatively easy, you only need to control zTree Hide / Show, and location.
                                                                                                                                                                                                                                                                                                    • -
                                                                                                                                                                                                                                                                                                    • Use zTree v3.x, you can select multiple nodes, so the multi-selection is also easy.
                                                                                                                                                                                                                                                                                                    • -
                                                                                                                                                                                                                                                                                                    • Use the configuration parameters setting, fully meet the needs of most of the functionality.
                                                                                                                                                                                                                                                                                                    • -
                                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                                  • -
                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                  - - - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/select_menu_checkbox.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/select_menu_checkbox.html deleted file mode 100644 index 7e008d9b..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/select_menu_checkbox.html +++ /dev/null @@ -1,126 +0,0 @@ - - - - ZTREE DEMO - checkbox select menu - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                  Drop-down Menu with checkbox

                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                  [ File Path: super/select_menu_checkbox.html ]
                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                                  •   Check the checkbox to select or click the node
                                                                                                                                                                                                                                                                                                  • -
                                                                                                                                                                                                                                                                                                  •   Test: -  select
                                                                                                                                                                                                                                                                                                  • -
                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                                  • Explanation of implementation method

                                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                                    • You can achieve multi-selected drop-down menu with checkbox.
                                                                                                                                                                                                                                                                                                    • -
                                                                                                                                                                                                                                                                                                    • This Demo is mainly used for compare with other drop-down menu.
                                                                                                                                                                                                                                                                                                    • -
                                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                                  • -
                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                  - - - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/select_menu_radio.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/select_menu_radio.html deleted file mode 100644 index 429850e5..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/select_menu_radio.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - ZTREE DEMO - radio select menu - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                  Drop-down Menu with radio

                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                  [ File Path: super/select_menu_radio.html ]
                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                                  •   Check the radio to select or click the node
                                                                                                                                                                                                                                                                                                  • -
                                                                                                                                                                                                                                                                                                  •   Test: -  select
                                                                                                                                                                                                                                                                                                  • -
                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                                  • Explanation of implementation method

                                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                                    • You can achieve single-selected drop-down menu with radio.
                                                                                                                                                                                                                                                                                                    • -
                                                                                                                                                                                                                                                                                                    • This Demo is mainly used for compare with other drop-down menu.
                                                                                                                                                                                                                                                                                                    • -
                                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                                  • -
                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                  - - - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/singlepath.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/singlepath.html deleted file mode 100644 index cf84e0b9..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/singlepath.html +++ /dev/null @@ -1,166 +0,0 @@ - - - - ZTREE DEMO - single path - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                  Keep Single Path

                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                  [ File Path: super/singlepath.html ]
                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                                    • Explanation of implementation method

                                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                                                                      • This Demo is the transformation from "Click to Expand Node" demo​​, tree only expand single path.
                                                                                                                                                                                                                                                                                                      • -
                                                                                                                                                                                                                                                                                                      • Use 'setting.callback.beforeExpand / onExpand' callback function to achieve rules about expand
                                                                                                                                                                                                                                                                                                      • -
                                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                                    • -
                                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                                    - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/ztree.html b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/ztree.html deleted file mode 100644 index 79172a4b..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/ztree.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - ZTREE DEMO - Simple Data - - - - - - - - - - - - - -

                                                                                                                                                                                                                                                                                                    zTree Style

                                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                                    [ File Path: super/ztree.html ]
                                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                                                                      • 1, Explanation of zTree Style

                                                                                                                                                                                                                                                                                                        - -
                                                                                                                                                                                                                                                                                                      • -
                                                                                                                                                                                                                                                                                                      • Mode:
                                                                                                                                                                                                                                                                                                        - - - -
                                                                                                                                                                                                                                                                                                        -

                                                                                                                                                                                                                                                                                                      • -
                                                                                                                                                                                                                                                                                                      - -
                                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                                      - - - \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/js/fuzzysearch.js b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/js/fuzzysearch.js deleted file mode 100644 index bc2a6031..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/js/fuzzysearch.js +++ /dev/null @@ -1,129 +0,0 @@ -/* - * email: bigablecat@hotmail.com - * Date: 2018-04-14 - */ - -/** - * @param zTreeId the ztree id used to get the ztree object - * @param searchField selector of your input for fuzzy search - * @param isHighLight whether highlight the match words, default true - * @param isExpand whether to expand the node, default false - * - * @returns - */ - function fuzzySearch(zTreeId, searchField, isHighLight, isExpand){ - var zTreeObj = $.fn.zTree.getZTreeObj(zTreeId);//get the ztree object by ztree id - if(!zTreeObj){ - alert("fail to get ztree object"); - } - var nameKey = zTreeObj.setting.data.key.name; //get the key of the node name - isHighLight = isHighLight===false?false:true;//default true, only use false to disable highlight - isExpand = isExpand?true:false; // not to expand in default - zTreeObj.setting.view.nameIsHTML = isHighLight; //allow use html in node name for highlight use - - var metaChar = '[\\[\\]\\\\\^\\$\\.\\|\\?\\*\\+\\(\\)]'; //js meta characters - var rexMeta = new RegExp(metaChar, 'gi');//regular expression to match meta characters - - // keywords filter function - function ztreeFilter(zTreeObj,_keywords,callBackFunc) { - if(!_keywords){ - _keywords =''; //default blank for _keywords - } - - // function to find the matching node - function filterFunc(node) { - if(node && node.oldname && node.oldname.length>0){ - node[nameKey] = node.oldname; //recover oldname of the node if exist - } - zTreeObj.updateNode(node); //update node to for modifications take effect - if (_keywords.length == 0) { - //return true to show all nodes if the keyword is blank - zTreeObj.showNode(node); - zTreeObj.expandNode(node,isExpand); - return true; - } - //transform node name and keywords to lowercase - if (node[nameKey] && node[nameKey].toLowerCase().indexOf(_keywords.toLowerCase())!=-1) { - if(isHighLight){ //highlight process - //a new variable 'newKeywords' created to store the keywords information - //keep the parameter '_keywords' as initial and it will be used in next node - //process the meta characters in _keywords thus the RegExp can be correctly used in str.replace - var newKeywords = _keywords.replace(rexMeta,function(matchStr){ - //add escape character before meta characters - return '\\' + matchStr; - }); - node.oldname = node[nameKey]; //store the old name - var rexGlobal = new RegExp(newKeywords, 'gi');//'g' for global,'i' for ignore case - //use replace(RegExp,replacement) since replace(/substr/g,replacement) cannot be used here - node[nameKey] = node.oldname.replace(rexGlobal, function(originalText){ - //highlight the matching words in node name - var highLightText = - '' - + originalText - +''; - return highLightText; - }); - zTreeObj.updateNode(node); //update node for modifications take effect - } - zTreeObj.showNode(node);//show node with matching keywords - return true; //return true and show this node - } - - zTreeObj.hideNode(node); // hide node that not matched - return false; //return false for node not matched - } - - var nodesShow = zTreeObj.getNodesByFilter(filterFunc); //get all nodes that would be shown - processShowNodes(nodesShow, _keywords);//nodes should be reprocessed to show correctly - } - - /** - * reprocess of nodes before showing - */ - function processShowNodes(nodesShow,_keywords){ - if(nodesShow && nodesShow.length>0){ - //process the ancient nodes if _keywords is not blank - if(_keywords.length>0){ - $.each(nodesShow, function(n,obj){ - var pathOfOne = obj.getPath();//get all the ancient nodes including current node - if(pathOfOne && pathOfOne.length>0){ - //i < pathOfOne.length-1 process every node in path except self - for(var i=0;id)break;a.currentTarget=f.elem;a.data=f.handleObj.data;a.handleObj=f.handleObj;A=f.handleObj.origHandler.apply(f.elem,arguments);if(A===false||a.isPropagationStopped()){d=f.level;if(A===false)b=false;if(a.isImmediatePropagationStopped())break}}return b}}function Y(a,b){return(a&&a!=="*"?a+".":"")+b.replace(La, -"`").replace(Ma,"&")}function ma(a,b,d){if(c.isFunction(b))return c.grep(a,function(f,h){return!!b.call(f,h,f)===d});else if(b.nodeType)return c.grep(a,function(f){return f===b===d});else if(typeof b==="string"){var e=c.grep(a,function(f){return f.nodeType===1});if(Na.test(b))return c.filter(b,e,!d);else b=c.filter(b,e)}return c.grep(a,function(f){return c.inArray(f,b)>=0===d})}function na(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var e=c.data(a[d++]),f=c.data(this, -e);if(e=e&&e.events){delete f.handle;f.events={};for(var h in e)for(var l in e[h])c.event.add(this,h,e[h][l],e[h][l].data)}}})}function Oa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function oa(a,b,d){var e=b==="width"?a.offsetWidth:a.offsetHeight;if(d==="border")return e;c.each(b==="width"?Pa:Qa,function(){d||(e-=parseFloat(c.css(a,"padding"+this))||0);if(d==="margin")e+=parseFloat(c.css(a, -"margin"+this))||0;else e-=parseFloat(c.css(a,"border"+this+"Width"))||0});return e}function da(a,b,d,e){if(c.isArray(b)&&b.length)c.each(b,function(f,h){d||Ra.test(a)?e(a,h):da(a+"["+(typeof h==="object"||c.isArray(h)?f:"")+"]",h,d,e)});else if(!d&&b!=null&&typeof b==="object")c.isEmptyObject(b)?e(a,""):c.each(b,function(f,h){da(a+"["+f+"]",h,d,e)});else e(a,b)}function S(a,b){var d={};c.each(pa.concat.apply([],pa.slice(0,b)),function(){d[this]=a});return d}function qa(a){if(!ea[a]){var b=c("<"+ -a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d==="")d="block";ea[a]=d}return ea[a]}function fa(a){return c.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var t=E.document,c=function(){function a(){if(!b.isReady){try{t.documentElement.doScroll("left")}catch(j){setTimeout(a,1);return}b.ready()}}var b=function(j,s){return new b.fn.init(j,s)},d=E.jQuery,e=E.$,f,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,l=/\S/,k=/^\s+/,o=/\s+$/,x=/\W/,r=/\d/,A=/^<(\w+)\s*\/?>(?:<\/\1>)?$/, -C=/^[\],:{}\s]*$/,J=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,w=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,I=/(?:^|:|,)(?:\s*\[)+/g,L=/(webkit)[ \/]([\w.]+)/,g=/(opera)(?:.*version)?[ \/]([\w.]+)/,i=/(msie) ([\w.]+)/,n=/(mozilla)(?:.*? rv:([\w.]+))?/,m=navigator.userAgent,p=false,q=[],u,y=Object.prototype.toString,F=Object.prototype.hasOwnProperty,M=Array.prototype.push,N=Array.prototype.slice,O=String.prototype.trim,D=Array.prototype.indexOf,R={};b.fn=b.prototype={init:function(j, -s){var v,z,H;if(!j)return this;if(j.nodeType){this.context=this[0]=j;this.length=1;return this}if(j==="body"&&!s&&t.body){this.context=t;this[0]=t.body;this.selector="body";this.length=1;return this}if(typeof j==="string")if((v=h.exec(j))&&(v[1]||!s))if(v[1]){H=s?s.ownerDocument||s:t;if(z=A.exec(j))if(b.isPlainObject(s)){j=[t.createElement(z[1])];b.fn.attr.call(j,s,true)}else j=[H.createElement(z[1])];else{z=b.buildFragment([v[1]],[H]);j=(z.cacheable?z.fragment.cloneNode(true):z.fragment).childNodes}return b.merge(this, -j)}else{if((z=t.getElementById(v[2]))&&z.parentNode){if(z.id!==v[2])return f.find(j);this.length=1;this[0]=z}this.context=t;this.selector=j;return this}else if(!s&&!x.test(j)){this.selector=j;this.context=t;j=t.getElementsByTagName(j);return b.merge(this,j)}else return!s||s.jquery?(s||f).find(j):b(s).find(j);else if(b.isFunction(j))return f.ready(j);if(j.selector!==B){this.selector=j.selector;this.context=j.context}return b.makeArray(j,this)},selector:"",jquery:"1.4.4",length:0,size:function(){return this.length}, -toArray:function(){return N.call(this,0)},get:function(j){return j==null?this.toArray():j<0?this.slice(j)[0]:this[j]},pushStack:function(j,s,v){var z=b();b.isArray(j)?M.apply(z,j):b.merge(z,j);z.prevObject=this;z.context=this.context;if(s==="find")z.selector=this.selector+(this.selector?" ":"")+v;else if(s)z.selector=this.selector+"."+s+"("+v+")";return z},each:function(j,s){return b.each(this,j,s)},ready:function(j){b.bindReady();if(b.isReady)j.call(t,b);else q&&q.push(j);return this},eq:function(j){return j=== --1?this.slice(j):this.slice(j,+j+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(N.apply(this,arguments),"slice",N.call(arguments).join(","))},map:function(j){return this.pushStack(b.map(this,function(s,v){return j.call(s,v,s)}))},end:function(){return this.prevObject||b(null)},push:M,sort:[].sort,splice:[].splice};b.fn.init.prototype=b.fn;b.extend=b.fn.extend=function(){var j,s,v,z,H,G=arguments[0]||{},K=1,Q=arguments.length,ga=false; -if(typeof G==="boolean"){ga=G;G=arguments[1]||{};K=2}if(typeof G!=="object"&&!b.isFunction(G))G={};if(Q===K){G=this;--K}for(;K0))if(q){var s=0,v=q;for(q=null;j=v[s++];)j.call(t,b);b.fn.trigger&&b(t).trigger("ready").unbind("ready")}}},bindReady:function(){if(!p){p=true;if(t.readyState==="complete")return setTimeout(b.ready,1);if(t.addEventListener){t.addEventListener("DOMContentLoaded",u,false);E.addEventListener("load",b.ready,false)}else if(t.attachEvent){t.attachEvent("onreadystatechange",u);E.attachEvent("onload", -b.ready);var j=false;try{j=E.frameElement==null}catch(s){}t.documentElement.doScroll&&j&&a()}}},isFunction:function(j){return b.type(j)==="function"},isArray:Array.isArray||function(j){return b.type(j)==="array"},isWindow:function(j){return j&&typeof j==="object"&&"setInterval"in j},isNaN:function(j){return j==null||!r.test(j)||isNaN(j)},type:function(j){return j==null?String(j):R[y.call(j)]||"object"},isPlainObject:function(j){if(!j||b.type(j)!=="object"||j.nodeType||b.isWindow(j))return false;if(j.constructor&& -!F.call(j,"constructor")&&!F.call(j.constructor.prototype,"isPrototypeOf"))return false;for(var s in j);return s===B||F.call(j,s)},isEmptyObject:function(j){for(var s in j)return false;return true},error:function(j){throw j;},parseJSON:function(j){if(typeof j!=="string"||!j)return null;j=b.trim(j);if(C.test(j.replace(J,"@").replace(w,"]").replace(I,"")))return E.JSON&&E.JSON.parse?E.JSON.parse(j):(new Function("return "+j))();else b.error("Invalid JSON: "+j)},noop:function(){},globalEval:function(j){if(j&& -l.test(j)){var s=t.getElementsByTagName("head")[0]||t.documentElement,v=t.createElement("script");v.type="text/javascript";if(b.support.scriptEval)v.appendChild(t.createTextNode(j));else v.text=j;s.insertBefore(v,s.firstChild);s.removeChild(v)}},nodeName:function(j,s){return j.nodeName&&j.nodeName.toUpperCase()===s.toUpperCase()},each:function(j,s,v){var z,H=0,G=j.length,K=G===B||b.isFunction(j);if(v)if(K)for(z in j){if(s.apply(j[z],v)===false)break}else for(;H
                                                                                                                                                                                                                                                                                                      a";var f=d.getElementsByTagName("*"),h=d.getElementsByTagName("a")[0],l=t.createElement("select"), -k=l.appendChild(t.createElement("option"));if(!(!f||!f.length||!h)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(h.getAttribute("style")),hrefNormalized:h.getAttribute("href")==="/a",opacity:/^0.55$/.test(h.style.opacity),cssFloat:!!h.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:k.selected,deleteExpando:true,optDisabled:false,checkClone:false, -scriptEval:false,noCloneEvent:true,boxModel:null,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableHiddenOffsets:true};l.disabled=true;c.support.optDisabled=!k.disabled;b.type="text/javascript";try{b.appendChild(t.createTextNode("window."+e+"=1;"))}catch(o){}a.insertBefore(b,a.firstChild);if(E[e]){c.support.scriptEval=true;delete E[e]}try{delete b.test}catch(x){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function r(){c.support.noCloneEvent= -false;d.detachEvent("onclick",r)});d.cloneNode(true).fireEvent("onclick")}d=t.createElement("div");d.innerHTML="";a=t.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var r=t.createElement("div");r.style.width=r.style.paddingLeft="1px";t.body.appendChild(r);c.boxModel=c.support.boxModel=r.offsetWidth===2;if("zoom"in r.style){r.style.display="inline";r.style.zoom= -1;c.support.inlineBlockNeedsLayout=r.offsetWidth===2;r.style.display="";r.innerHTML="
                                                                                                                                                                                                                                                                                                      ";c.support.shrinkWrapBlocks=r.offsetWidth!==2}r.innerHTML="
                                                                                                                                                                                                                                                                                                      t
                                                                                                                                                                                                                                                                                                      ";var A=r.getElementsByTagName("td");c.support.reliableHiddenOffsets=A[0].offsetHeight===0;A[0].style.display="";A[1].style.display="none";c.support.reliableHiddenOffsets=c.support.reliableHiddenOffsets&&A[0].offsetHeight===0;r.innerHTML="";t.body.removeChild(r).style.display= -"none"});a=function(r){var A=t.createElement("div");r="on"+r;var C=r in A;if(!C){A.setAttribute(r,"return;");C=typeof A[r]==="function"}return C};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=f=h=null}})();var ra={},Ja=/^(?:\{.*\}|\[.*\])$/;c.extend({cache:{},uuid:0,expando:"jQuery"+c.now(),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},data:function(a,b,d){if(c.acceptData(a)){a=a==E?ra:a;var e=a.nodeType,f=e?a[c.expando]:null,h= -c.cache;if(!(e&&!f&&typeof b==="string"&&d===B)){if(e)f||(a[c.expando]=f=++c.uuid);else h=a;if(typeof b==="object")if(e)h[f]=c.extend(h[f],b);else c.extend(h,b);else if(e&&!h[f])h[f]={};a=e?h[f]:h;if(d!==B)a[b]=d;return typeof b==="string"?a[b]:a}}},removeData:function(a,b){if(c.acceptData(a)){a=a==E?ra:a;var d=a.nodeType,e=d?a[c.expando]:a,f=c.cache,h=d?f[e]:e;if(b){if(h){delete h[b];d&&c.isEmptyObject(h)&&c.removeData(a)}}else if(d&&c.support.deleteExpando)delete a[c.expando];else if(a.removeAttribute)a.removeAttribute(c.expando); -else if(d)delete f[e];else for(var l in a)delete a[l]}},acceptData:function(a){if(a.nodeName){var b=c.noData[a.nodeName.toLowerCase()];if(b)return!(b===true||a.getAttribute("classid")!==b)}return true}});c.fn.extend({data:function(a,b){var d=null;if(typeof a==="undefined"){if(this.length){var e=this[0].attributes,f;d=c.data(this[0]);for(var h=0,l=e.length;h-1)return true;return false},val:function(a){if(!arguments.length){var b=this[0];if(b){if(c.nodeName(b,"option")){var d=b.attributes.value;return!d||d.specified?b.value:b.text}if(c.nodeName(b,"select")){var e=b.selectedIndex;d=[];var f=b.options;b=b.type==="select-one"; -if(e<0)return null;var h=b?e:0;for(e=b?e+1:f.length;h=0;else if(c.nodeName(this,"select")){var A=c.makeArray(r);c("option",this).each(function(){this.selected=c.inArray(c(this).val(),A)>=0});if(!A.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true}, -attr:function(a,b,d,e){if(!a||a.nodeType===3||a.nodeType===8)return B;if(e&&b in c.attrFn)return c(a)[b](d);e=a.nodeType!==1||!c.isXMLDoc(a);var f=d!==B;b=e&&c.props[b]||b;var h=Ta.test(b);if((b in a||a[b]!==B)&&e&&!h){if(f){b==="type"&&Ua.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");if(d===null)a.nodeType===1&&a.removeAttribute(b);else a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&& -b.specified?b.value:Va.test(a.nodeName)||Wa.test(a.nodeName)&&a.href?0:B;return a[b]}if(!c.support.style&&e&&b==="style"){if(f)a.style.cssText=""+d;return a.style.cssText}f&&a.setAttribute(b,""+d);if(!a.attributes[b]&&a.hasAttribute&&!a.hasAttribute(b))return B;a=!c.support.hrefNormalized&&e&&h?a.getAttribute(b,2):a.getAttribute(b);return a===null?B:a}});var X=/\.(.*)$/,ia=/^(?:textarea|input|select)$/i,La=/\./g,Ma=/ /g,Xa=/[^\w\s.|`]/g,Ya=function(a){return a.replace(Xa,"\\$&")},ua={focusin:0,focusout:0}; -c.event={add:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(c.isWindow(a)&&a!==E&&!a.frameElement)a=E;if(d===false)d=U;else if(!d)return;var f,h;if(d.handler){f=d;d=f.handler}if(!d.guid)d.guid=c.guid++;if(h=c.data(a)){var l=a.nodeType?"events":"__events__",k=h[l],o=h.handle;if(typeof k==="function"){o=k.handle;k=k.events}else if(!k){a.nodeType||(h[l]=h=function(){});h.events=k={}}if(!o)h.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem, -arguments):B};o.elem=a;b=b.split(" ");for(var x=0,r;l=b[x++];){h=f?c.extend({},f):{handler:d,data:e};if(l.indexOf(".")>-1){r=l.split(".");l=r.shift();h.namespace=r.slice(0).sort().join(".")}else{r=[];h.namespace=""}h.type=l;if(!h.guid)h.guid=d.guid;var A=k[l],C=c.event.special[l]||{};if(!A){A=k[l]=[];if(!C.setup||C.setup.call(a,e,r,o)===false)if(a.addEventListener)a.addEventListener(l,o,false);else a.attachEvent&&a.attachEvent("on"+l,o)}if(C.add){C.add.call(a,h);if(!h.handler.guid)h.handler.guid= -d.guid}A.push(h);c.event.global[l]=true}a=null}}},global:{},remove:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(d===false)d=U;var f,h,l=0,k,o,x,r,A,C,J=a.nodeType?"events":"__events__",w=c.data(a),I=w&&w[J];if(w&&I){if(typeof I==="function"){w=I;I=I.events}if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(f in I)c.event.remove(a,f+b)}else{for(b=b.split(" ");f=b[l++];){r=f;k=f.indexOf(".")<0;o=[];if(!k){o=f.split(".");f=o.shift();x=RegExp("(^|\\.)"+ -c.map(o.slice(0).sort(),Ya).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(A=I[f])if(d){r=c.event.special[f]||{};for(h=e||0;h=0){a.type=f=f.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[f]&&c.each(c.cache,function(){this.events&&this.events[f]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType=== -8)return B;a.result=B;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(e=d.nodeType?c.data(d,"handle"):(c.data(d,"__events__")||{}).handle)&&e.apply(d,b);e=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+f]&&d["on"+f].apply(d,b)===false){a.result=false;a.preventDefault()}}catch(h){}if(!a.isPropagationStopped()&&e)c.event.trigger(a,b,e,true);else if(!a.isDefaultPrevented()){var l;e=a.target;var k=f.replace(X,""),o=c.nodeName(e,"a")&&k=== -"click",x=c.event.special[k]||{};if((!x._default||x._default.call(d,a)===false)&&!o&&!(e&&e.nodeName&&c.noData[e.nodeName.toLowerCase()])){try{if(e[k]){if(l=e["on"+k])e["on"+k]=null;c.event.triggered=true;e[k]()}}catch(r){}if(l)e["on"+k]=l;c.event.triggered=false}}},handle:function(a){var b,d,e,f;d=[];var h=c.makeArray(arguments);a=h[0]=c.event.fix(a||E.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;if(!b){e=a.type.split(".");a.type=e.shift();d=e.slice(0).sort();e=RegExp("(^|\\.)"+ -d.join("\\.(?:.*\\.)?")+"(\\.|$)")}a.namespace=a.namespace||d.join(".");f=c.data(this,this.nodeType?"events":"__events__");if(typeof f==="function")f=f.events;d=(f||{})[a.type];if(f&&d){d=d.slice(0);f=0;for(var l=d.length;f-1?c.map(a.options,function(e){return e.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},Z=function(a,b){var d=a.target,e,f;if(!(!ia.test(d.nodeName)||d.readOnly)){e=c.data(d,"_change_data");f=xa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",f);if(!(e===B||f===e))if(e!=null||f){a.type="change";a.liveFired= -B;return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:Z,beforedeactivate:Z,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return Z.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return Z.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,"_change_data",xa(a))}},setup:function(){if(this.type=== -"file")return false;for(var a in V)c.event.add(this,a+".specialChange",V[a]);return ia.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return ia.test(this.nodeName)}};V=c.event.special.change.filters;V.focus=V.beforeactivate}t.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(e){e=c.event.fix(e);e.type=b;return c.event.trigger(e,null,e.target)}c.event.special[b]={setup:function(){ua[b]++===0&&t.addEventListener(a,d,true)},teardown:function(){--ua[b]=== -0&&t.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,e,f){if(typeof d==="object"){for(var h in d)this[b](h,e,d[h],f);return this}if(c.isFunction(e)||e===false){f=e;e=B}var l=b==="one"?c.proxy(f,function(o){c(this).unbind(o,l);return f.apply(this,arguments)}):f;if(d==="unload"&&b!=="one")this.one(d,e,f);else{h=0;for(var k=this.length;h0?this.bind(b,d,e):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});E.attachEvent&&!E.addEventListener&&c(E).bind("unload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}}); -(function(){function a(g,i,n,m,p,q){p=0;for(var u=m.length;p0){F=y;break}}y=y[g]}m[p]=F}}}var d=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,h=false,l=true;[0,0].sort(function(){l=false;return 0});var k=function(g,i,n,m){n=n||[];var p=i=i||t;if(i.nodeType!==1&&i.nodeType!==9)return[];if(!g||typeof g!=="string")return n;var q,u,y,F,M,N=true,O=k.isXML(i),D=[],R=g;do{d.exec("");if(q=d.exec(R)){R=q[3];D.push(q[1]);if(q[2]){F=q[3]; -break}}}while(q);if(D.length>1&&x.exec(g))if(D.length===2&&o.relative[D[0]])u=L(D[0]+D[1],i);else for(u=o.relative[D[0]]?[i]:k(D.shift(),i);D.length;){g=D.shift();if(o.relative[g])g+=D.shift();u=L(g,u)}else{if(!m&&D.length>1&&i.nodeType===9&&!O&&o.match.ID.test(D[0])&&!o.match.ID.test(D[D.length-1])){q=k.find(D.shift(),i,O);i=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]}if(i){q=m?{expr:D.pop(),set:C(m)}:k.find(D.pop(),D.length===1&&(D[0]==="~"||D[0]==="+")&&i.parentNode?i.parentNode:i,O);u=q.expr?k.filter(q.expr, -q.set):q.set;if(D.length>0)y=C(u);else N=false;for(;D.length;){q=M=D.pop();if(o.relative[M])q=D.pop();else M="";if(q==null)q=i;o.relative[M](y,q,O)}}else y=[]}y||(y=u);y||k.error(M||g);if(f.call(y)==="[object Array]")if(N)if(i&&i.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&k.contains(i,y[g])))n.push(u[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&n.push(u[g]);else n.push.apply(n,y);else C(y,n);if(F){k(F,p,n,m);k.uniqueSort(n)}return n};k.uniqueSort=function(g){if(w){h= -l;g.sort(w);if(h)for(var i=1;i0};k.find=function(g,i,n){var m;if(!g)return[];for(var p=0,q=o.order.length;p":function(g,i){var n,m=typeof i==="string",p=0,q=g.length;if(m&&!/\W/.test(i))for(i=i.toLowerCase();p=0))n||m.push(u);else if(n)i[q]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},CHILD:function(g){if(g[1]==="nth"){var i=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=i[1]+(i[2]||1)-0;g[3]=i[3]-0}g[0]=e++;return g},ATTR:function(g,i,n, -m,p,q){i=g[1].replace(/\\/g,"");if(!q&&o.attrMap[i])g[1]=o.attrMap[i];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,i,n,m,p){if(g[1]==="not")if((d.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,i);else{g=k.filter(g[3],i,n,true^p);n||m.push.apply(m,g);return false}else if(o.match.POS.test(g[0])||o.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled=== -true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,i,n){return!!k(n[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"=== -g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},setFilters:{first:function(g,i){return i===0},last:function(g,i,n,m){return i===m.length-1},even:function(g,i){return i%2===0},odd:function(g,i){return i%2===1},lt:function(g,i,n){return in[3]-0},nth:function(g,i,n){return n[3]- -0===i},eq:function(g,i,n){return n[3]-0===i}},filter:{PSEUDO:function(g,i,n,m){var p=i[1],q=o.filters[p];if(q)return q(g,n,i,m);else if(p==="contains")return(g.textContent||g.innerText||k.getText([g])||"").indexOf(i[3])>=0;else if(p==="not"){i=i[3];n=0;for(m=i.length;n=0}},ID:function(g,i){return g.nodeType===1&&g.getAttribute("id")===i},TAG:function(g,i){return i==="*"&&g.nodeType===1||g.nodeName.toLowerCase()=== -i},CLASS:function(g,i){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(i)>-1},ATTR:function(g,i){var n=i[1];n=o.attrHandle[n]?o.attrHandle[n](g):g[n]!=null?g[n]:g.getAttribute(n);var m=n+"",p=i[2],q=i[4];return n==null?p==="!=":p==="="?m===q:p==="*="?m.indexOf(q)>=0:p==="~="?(" "+m+" ").indexOf(q)>=0:!q?m&&n!==false:p==="!="?m!==q:p==="^="?m.indexOf(q)===0:p==="$="?m.substr(m.length-q.length)===q:p==="|="?m===q||m.substr(0,q.length+1)===q+"-":false},POS:function(g,i,n,m){var p=o.setFilters[i[2]]; -if(p)return p(g,n,i,m)}}},x=o.match.POS,r=function(g,i){return"\\"+(i-0+1)},A;for(A in o.match){o.match[A]=RegExp(o.match[A].source+/(?![^\[]*\])(?![^\(]*\))/.source);o.leftMatch[A]=RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[A].source.replace(/\\(\d+)/g,r))}var C=function(g,i){g=Array.prototype.slice.call(g,0);if(i){i.push.apply(i,g);return i}return g};try{Array.prototype.slice.call(t.documentElement.childNodes,0)}catch(J){C=function(g,i){var n=0,m=i||[];if(f.call(g)==="[object Array]")Array.prototype.push.apply(m, -g);else if(typeof g.length==="number")for(var p=g.length;n";n.insertBefore(g,n.firstChild);if(t.getElementById(i)){o.find.ID=function(m,p,q){if(typeof p.getElementById!=="undefined"&&!q)return(p=p.getElementById(m[1]))?p.id===m[1]||typeof p.getAttributeNode!=="undefined"&&p.getAttributeNode("id").nodeValue===m[1]?[p]:B:[]};o.filter.ID=function(m,p){var q=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&q&&q.nodeValue===p}}n.removeChild(g); -n=g=null})();(function(){var g=t.createElement("div");g.appendChild(t.createComment(""));if(g.getElementsByTagName("*").length>0)o.find.TAG=function(i,n){var m=n.getElementsByTagName(i[1]);if(i[1]==="*"){for(var p=[],q=0;m[q];q++)m[q].nodeType===1&&p.push(m[q]);m=p}return m};g.innerHTML="";if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")o.attrHandle.href=function(i){return i.getAttribute("href",2)};g=null})();t.querySelectorAll&& -function(){var g=k,i=t.createElement("div");i.innerHTML="

                                                                                                                                                                                                                                                                                                      ";if(!(i.querySelectorAll&&i.querySelectorAll(".TEST").length===0)){k=function(m,p,q,u){p=p||t;m=m.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!u&&!k.isXML(p))if(p.nodeType===9)try{return C(p.querySelectorAll(m),q)}catch(y){}else if(p.nodeType===1&&p.nodeName.toLowerCase()!=="object"){var F=p.getAttribute("id"),M=F||"__sizzle__";F||p.setAttribute("id",M);try{return C(p.querySelectorAll("#"+M+" "+m),q)}catch(N){}finally{F|| -p.removeAttribute("id")}}return g(m,p,q,u)};for(var n in g)k[n]=g[n];i=null}}();(function(){var g=t.documentElement,i=g.matchesSelector||g.mozMatchesSelector||g.webkitMatchesSelector||g.msMatchesSelector,n=false;try{i.call(t.documentElement,"[test!='']:sizzle")}catch(m){n=true}if(i)k.matchesSelector=function(p,q){q=q.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(p))try{if(n||!o.match.PSEUDO.test(q)&&!/!=/.test(q))return i.call(p,q)}catch(u){}return k(q,null,null,[p]).length>0}})();(function(){var g= -t.createElement("div");g.innerHTML="
                                                                                                                                                                                                                                                                                                      ";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){o.order.splice(1,0,"CLASS");o.find.CLASS=function(i,n,m){if(typeof n.getElementsByClassName!=="undefined"&&!m)return n.getElementsByClassName(i[1])};g=null}}})();k.contains=t.documentElement.contains?function(g,i){return g!==i&&(g.contains?g.contains(i):true)}:t.documentElement.compareDocumentPosition? -function(g,i){return!!(g.compareDocumentPosition(i)&16)}:function(){return false};k.isXML=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false};var L=function(g,i){for(var n,m=[],p="",q=i.nodeType?[i]:i;n=o.match.PSEUDO.exec(g);){p+=n[0];g=g.replace(o.match.PSEUDO,"")}g=o.relative[g]?g+"*":g;n=0;for(var u=q.length;n0)for(var h=d;h0},closest:function(a,b){var d=[],e,f,h=this[0];if(c.isArray(a)){var l,k={},o=1;if(h&&a.length){e=0;for(f=a.length;e-1:c(h).is(e))d.push({selector:l,elem:h,level:o})}h= -h.parentNode;o++}}return d}l=cb.test(a)?c(a,b||this.context):null;e=0;for(f=this.length;e-1:c.find.matchesSelector(h,a)){d.push(h);break}else{h=h.parentNode;if(!h||!h.ownerDocument||h===b)break}d=d.length>1?c.unique(d):d;return this.pushStack(d,"closest",a)},index:function(a){if(!a||typeof a==="string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var d=typeof a==="string"?c(a,b||this.context): -c.makeArray(a),e=c.merge(this.get(),d);return this.pushStack(!d[0]||!d[0].parentNode||d[0].parentNode.nodeType===11||!e[0]||!e[0].parentNode||e[0].parentNode.nodeType===11?e:c.unique(e))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a, -2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a, -b){c.fn[a]=function(d,e){var f=c.map(this,b,d);Za.test(a)||(e=d);if(e&&typeof e==="string")f=c.filter(e,f);f=this.length>1?c.unique(f):f;if((this.length>1||ab.test(e))&&$a.test(a))f=f.reverse();return this.pushStack(f,a,bb.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return b.length===1?c.find.matchesSelector(b[0],a)?[b[0]]:[]:c.find.matches(a,b)},dir:function(a,b,d){var e=[];for(a=a[b];a&&a.nodeType!==9&&(d===B||a.nodeType!==1||!c(a).is(d));){a.nodeType===1&& -e.push(a);a=a[b]}return e},nth:function(a,b,d){b=b||1;for(var e=0;a;a=a[d])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var za=/ jQuery\d+="(?:\d+|null)"/g,$=/^\s+/,Aa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Ba=/<([\w:]+)/,db=/\s]+\/)>/g,P={option:[1, -""],legend:[1,"
                                                                                                                                                                                                                                                                                                      ","
                                                                                                                                                                                                                                                                                                      "],thead:[1,"","
                                                                                                                                                                                                                                                                                                      "],tr:[2,"","
                                                                                                                                                                                                                                                                                                      "],td:[3,"","
                                                                                                                                                                                                                                                                                                      "],col:[2,"","
                                                                                                                                                                                                                                                                                                      "],area:[1,"",""],_default:[0,"",""]};P.optgroup=P.option;P.tbody=P.tfoot=P.colgroup=P.caption=P.thead;P.th=P.td;if(!c.support.htmlSerialize)P._default=[1,"div
                                                                                                                                                                                                                                                                                                      ","
                                                                                                                                                                                                                                                                                                      "];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= -c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==B)return this.empty().append((this[0]&&this[0].ownerDocument||t).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this}, -wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})}, -prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b, -this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,e;(e=this[d])!=null;d++)if(!a||c.filter(a,[e]).length){if(!b&&e.nodeType===1){c.cleanData(e.getElementsByTagName("*"));c.cleanData([e])}e.parentNode&&e.parentNode.removeChild(e)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild); -return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,e=this.ownerDocument;if(!d){d=e.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(za,"").replace(fb,'="$1">').replace($,"")],e)[0]}else return this.cloneNode(true)});if(a===true){na(this,b);na(this.find("*"),b.find("*"))}return b},html:function(a){if(a===B)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(za,""):null; -else if(typeof a==="string"&&!Ca.test(a)&&(c.support.leadingWhitespace||!$.test(a))&&!P[(Ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Aa,"<$1>");try{for(var b=0,d=this.length;b0||e.cacheable||this.length>1?h.cloneNode(true):h)}k.length&&c.each(k,Oa)}return this}});c.buildFragment=function(a,b,d){var e,f,h;b=b&&b[0]?b[0].ownerDocument||b[0]:t;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===t&&!Ca.test(a[0])&&(c.support.checkClone||!Da.test(a[0]))){f=true;if(h=c.fragments[a[0]])if(h!==1)e=h}if(!e){e=b.createDocumentFragment();c.clean(a,b,e,d)}if(f)c.fragments[a[0]]=h?e:1;return{fragment:e,cacheable:f}};c.fragments={};c.each({appendTo:"append", -prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var e=[];d=c(d);var f=this.length===1&&this[0].parentNode;if(f&&f.nodeType===11&&f.childNodes.length===1&&d.length===1){d[b](this[0]);return this}else{f=0;for(var h=d.length;f0?this.clone(true):this).get();c(d[f])[b](l);e=e.concat(l)}return this.pushStack(e,a,d.selector)}}});c.extend({clean:function(a,b,d,e){b=b||t;if(typeof b.createElement==="undefined")b=b.ownerDocument|| -b[0]&&b[0].ownerDocument||t;for(var f=[],h=0,l;(l=a[h])!=null;h++){if(typeof l==="number")l+="";if(l){if(typeof l==="string"&&!eb.test(l))l=b.createTextNode(l);else if(typeof l==="string"){l=l.replace(Aa,"<$1>");var k=(Ba.exec(l)||["",""])[1].toLowerCase(),o=P[k]||P._default,x=o[0],r=b.createElement("div");for(r.innerHTML=o[1]+l+o[2];x--;)r=r.lastChild;if(!c.support.tbody){x=db.test(l);k=k==="table"&&!x?r.firstChild&&r.firstChild.childNodes:o[1]===""&&!x?r.childNodes:[];for(o=k.length- -1;o>=0;--o)c.nodeName(k[o],"tbody")&&!k[o].childNodes.length&&k[o].parentNode.removeChild(k[o])}!c.support.leadingWhitespace&&$.test(l)&&r.insertBefore(b.createTextNode($.exec(l)[0]),r.firstChild);l=r.childNodes}if(l.nodeType)f.push(l);else f=c.merge(f,l)}}if(d)for(h=0;f[h];h++)if(e&&c.nodeName(f[h],"script")&&(!f[h].type||f[h].type.toLowerCase()==="text/javascript"))e.push(f[h].parentNode?f[h].parentNode.removeChild(f[h]):f[h]);else{f[h].nodeType===1&&f.splice.apply(f,[h+1,0].concat(c.makeArray(f[h].getElementsByTagName("script")))); -d.appendChild(f[h])}return f},cleanData:function(a){for(var b,d,e=c.cache,f=c.event.special,h=c.support.deleteExpando,l=0,k;(k=a[l])!=null;l++)if(!(k.nodeName&&c.noData[k.nodeName.toLowerCase()]))if(d=k[c.expando]){if((b=e[d])&&b.events)for(var o in b.events)f[o]?c.event.remove(k,o):c.removeEvent(k,o,b.handle);if(h)delete k[c.expando];else k.removeAttribute&&k.removeAttribute(c.expando);delete e[d]}}});var Ea=/alpha\([^)]*\)/i,gb=/opacity=([^)]*)/,hb=/-([a-z])/ig,ib=/([A-Z])/g,Fa=/^-?\d+(?:px)?$/i, -jb=/^-?\d/,kb={position:"absolute",visibility:"hidden",display:"block"},Pa=["Left","Right"],Qa=["Top","Bottom"],W,Ga,aa,lb=function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){if(arguments.length===2&&b===B)return this;return c.access(this,a,b,true,function(d,e,f){return f!==B?c.style(d,e,f):c.css(d,e)})};c.extend({cssHooks:{opacity:{get:function(a,b){if(b){var d=W(a,"opacity","opacity");return d===""?"1":d}else return a.style.opacity}}},cssNumber:{zIndex:true,fontWeight:true,opacity:true, -zoom:true,lineHeight:true},cssProps:{"float":c.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,d,e){if(!(!a||a.nodeType===3||a.nodeType===8||!a.style)){var f,h=c.camelCase(b),l=a.style,k=c.cssHooks[h];b=c.cssProps[h]||h;if(d!==B){if(!(typeof d==="number"&&isNaN(d)||d==null)){if(typeof d==="number"&&!c.cssNumber[h])d+="px";if(!k||!("set"in k)||(d=k.set(a,d))!==B)try{l[b]=d}catch(o){}}}else{if(k&&"get"in k&&(f=k.get(a,false,e))!==B)return f;return l[b]}}},css:function(a,b,d){var e,f=c.camelCase(b), -h=c.cssHooks[f];b=c.cssProps[f]||f;if(h&&"get"in h&&(e=h.get(a,true,d))!==B)return e;else if(W)return W(a,b,f)},swap:function(a,b,d){var e={},f;for(f in b){e[f]=a.style[f];a.style[f]=b[f]}d.call(a);for(f in b)a.style[f]=e[f]},camelCase:function(a){return a.replace(hb,lb)}});c.curCSS=c.css;c.each(["height","width"],function(a,b){c.cssHooks[b]={get:function(d,e,f){var h;if(e){if(d.offsetWidth!==0)h=oa(d,b,f);else c.swap(d,kb,function(){h=oa(d,b,f)});if(h<=0){h=W(d,b,b);if(h==="0px"&&aa)h=aa(d,b,b); -if(h!=null)return h===""||h==="auto"?"0px":h}if(h<0||h==null){h=d.style[b];return h===""||h==="auto"?"0px":h}return typeof h==="string"?h:h+"px"}},set:function(d,e){if(Fa.test(e)){e=parseFloat(e);if(e>=0)return e+"px"}else return e}}});if(!c.support.opacity)c.cssHooks.opacity={get:function(a,b){return gb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var d=a.style;d.zoom=1;var e=c.isNaN(b)?"":"alpha(opacity="+b*100+")",f= -d.filter||"";d.filter=Ea.test(f)?f.replace(Ea,e):d.filter+" "+e}};if(t.defaultView&&t.defaultView.getComputedStyle)Ga=function(a,b,d){var e;d=d.replace(ib,"-$1").toLowerCase();if(!(b=a.ownerDocument.defaultView))return B;if(b=b.getComputedStyle(a,null)){e=b.getPropertyValue(d);if(e===""&&!c.contains(a.ownerDocument.documentElement,a))e=c.style(a,d)}return e};if(t.documentElement.currentStyle)aa=function(a,b){var d,e,f=a.currentStyle&&a.currentStyle[b],h=a.style;if(!Fa.test(f)&&jb.test(f)){d=h.left; -e=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;h.left=b==="fontSize"?"1em":f||0;f=h.pixelLeft+"px";h.left=d;a.runtimeStyle.left=e}return f===""?"auto":f};W=Ga||aa;if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=a.offsetHeight;return a.offsetWidth===0&&b===0||!c.support.reliableHiddenOffsets&&(a.style.display||c.css(a,"display"))==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var mb=c.now(),nb=/)<[^<]*)*<\/script>/gi, -ob=/^(?:select|textarea)/i,pb=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,qb=/^(?:GET|HEAD)$/,Ra=/\[\]$/,T=/\=\?(&|$)/,ja=/\?/,rb=/([?&])_=[^&]*/,sb=/^(\w+:)?\/\/([^\/?#]+)/,tb=/%20/g,ub=/#.*$/,Ha=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!=="string"&&Ha)return Ha.apply(this,arguments);else if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var f=a.slice(e,a.length);a=a.slice(0,e)}e="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b=== -"object"){b=c.param(b,c.ajaxSettings.traditional);e="POST"}var h=this;c.ajax({url:a,type:e,dataType:"html",data:b,complete:function(l,k){if(k==="success"||k==="notmodified")h.html(f?c("
                                                                                                                                                                                                                                                                                                      ").append(l.responseText.replace(nb,"")).find(f):l.responseText);d&&h.each(d,[l.responseText,k,l])}});return this},serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&& -!this.disabled&&(this.checked||ob.test(this.nodeName)||pb.test(this.type))}).map(function(a,b){var d=c(this).val();return d==null?null:c.isArray(d)?c.map(d,function(e){return{name:b.name,value:e}}):{name:b.name,value:d}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:e})}, -getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:e})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return new E.XMLHttpRequest},accepts:{xml:"application/xml, text/xml",html:"text/html", -script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},ajax:function(a){var b=c.extend(true,{},c.ajaxSettings,a),d,e,f,h=b.type.toUpperCase(),l=qb.test(h);b.url=b.url.replace(ub,"");b.context=a&&a.context!=null?a.context:b;if(b.data&&b.processData&&typeof b.data!=="string")b.data=c.param(b.data,b.traditional);if(b.dataType==="jsonp"){if(h==="GET")T.test(b.url)||(b.url+=(ja.test(b.url)?"&":"?")+(b.jsonp||"callback")+"=?");else if(!b.data|| -!T.test(b.data))b.data=(b.data?b.data+"&":"")+(b.jsonp||"callback")+"=?";b.dataType="json"}if(b.dataType==="json"&&(b.data&&T.test(b.data)||T.test(b.url))){d=b.jsonpCallback||"jsonp"+mb++;if(b.data)b.data=(b.data+"").replace(T,"="+d+"$1");b.url=b.url.replace(T,"="+d+"$1");b.dataType="script";var k=E[d];E[d]=function(m){if(c.isFunction(k))k(m);else{E[d]=B;try{delete E[d]}catch(p){}}f=m;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);r&&r.removeChild(A)}}if(b.dataType==="script"&&b.cache===null)b.cache= -false;if(b.cache===false&&l){var o=c.now(),x=b.url.replace(rb,"$1_="+o);b.url=x+(x===b.url?(ja.test(b.url)?"&":"?")+"_="+o:"")}if(b.data&&l)b.url+=(ja.test(b.url)?"&":"?")+b.data;b.global&&c.active++===0&&c.event.trigger("ajaxStart");o=(o=sb.exec(b.url))&&(o[1]&&o[1].toLowerCase()!==location.protocol||o[2].toLowerCase()!==location.host);if(b.dataType==="script"&&h==="GET"&&o){var r=t.getElementsByTagName("head")[0]||t.documentElement,A=t.createElement("script");if(b.scriptCharset)A.charset=b.scriptCharset; -A.src=b.url;if(!d){var C=false;A.onload=A.onreadystatechange=function(){if(!C&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){C=true;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);A.onload=A.onreadystatechange=null;r&&A.parentNode&&r.removeChild(A)}}}r.insertBefore(A,r.firstChild);return B}var J=false,w=b.xhr();if(w){b.username?w.open(h,b.url,b.async,b.username,b.password):w.open(h,b.url,b.async);try{if(b.data!=null&&!l||a&&a.contentType)w.setRequestHeader("Content-Type", -b.contentType);if(b.ifModified){c.lastModified[b.url]&&w.setRequestHeader("If-Modified-Since",c.lastModified[b.url]);c.etag[b.url]&&w.setRequestHeader("If-None-Match",c.etag[b.url])}o||w.setRequestHeader("X-Requested-With","XMLHttpRequest");w.setRequestHeader("Accept",b.dataType&&b.accepts[b.dataType]?b.accepts[b.dataType]+", */*; q=0.01":b.accepts._default)}catch(I){}if(b.beforeSend&&b.beforeSend.call(b.context,w,b)===false){b.global&&c.active--===1&&c.event.trigger("ajaxStop");w.abort();return false}b.global&& -c.triggerGlobal(b,"ajaxSend",[w,b]);var L=w.onreadystatechange=function(m){if(!w||w.readyState===0||m==="abort"){J||c.handleComplete(b,w,e,f);J=true;if(w)w.onreadystatechange=c.noop}else if(!J&&w&&(w.readyState===4||m==="timeout")){J=true;w.onreadystatechange=c.noop;e=m==="timeout"?"timeout":!c.httpSuccess(w)?"error":b.ifModified&&c.httpNotModified(w,b.url)?"notmodified":"success";var p;if(e==="success")try{f=c.httpData(w,b.dataType,b)}catch(q){e="parsererror";p=q}if(e==="success"||e==="notmodified")d|| -c.handleSuccess(b,w,e,f);else c.handleError(b,w,e,p);d||c.handleComplete(b,w,e,f);m==="timeout"&&w.abort();if(b.async)w=null}};try{var g=w.abort;w.abort=function(){w&&Function.prototype.call.call(g,w);L("abort")}}catch(i){}b.async&&b.timeout>0&&setTimeout(function(){w&&!J&&L("timeout")},b.timeout);try{w.send(l||b.data==null?null:b.data)}catch(n){c.handleError(b,w,null,n);c.handleComplete(b,w,e,f)}b.async||L();return w}},param:function(a,b){var d=[],e=function(h,l){l=c.isFunction(l)?l():l;d[d.length]= -encodeURIComponent(h)+"="+encodeURIComponent(l)};if(b===B)b=c.ajaxSettings.traditional;if(c.isArray(a)||a.jquery)c.each(a,function(){e(this.name,this.value)});else for(var f in a)da(f,a[f],b,e);return d.join("&").replace(tb,"+")}});c.extend({active:0,lastModified:{},etag:{},handleError:function(a,b,d,e){a.error&&a.error.call(a.context,b,d,e);a.global&&c.triggerGlobal(a,"ajaxError",[b,a,e])},handleSuccess:function(a,b,d,e){a.success&&a.success.call(a.context,e,d,b);a.global&&c.triggerGlobal(a,"ajaxSuccess", -[b,a])},handleComplete:function(a,b,d){a.complete&&a.complete.call(a.context,b,d);a.global&&c.triggerGlobal(a,"ajaxComplete",[b,a]);a.global&&c.active--===1&&c.event.trigger("ajaxStop")},triggerGlobal:function(a,b,d){(a.context&&a.context.url==null?c(a.context):c.event).trigger(b,d)},httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===1223}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"), -e=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(e)c.etag[b]=e;return a.status===304},httpData:function(a,b,d){var e=a.getResponseHeader("content-type")||"",f=b==="xml"||!b&&e.indexOf("xml")>=0;a=f?a.responseXML:a.responseText;f&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b==="json"||!b&&e.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&e.indexOf("javascript")>=0)c.globalEval(a);return a}}); -if(E.ActiveXObject)c.ajaxSettings.xhr=function(){if(E.location.protocol!=="file:")try{return new E.XMLHttpRequest}catch(a){}try{return new E.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}};c.support.ajax=!!c.ajaxSettings.xhr();var ea={},vb=/^(?:toggle|show|hide)$/,wb=/^([+\-]=)?([\d+.\-]+)(.*)$/,ba,pa=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b,d){if(a||a===0)return this.animate(S("show", -3),a,b,d);else{d=0;for(var e=this.length;d=0;e--)if(d[e].elem===this){b&&d[e](true);d.splice(e,1)}});b||this.dequeue();return this}});c.each({slideDown:S("show",1),slideUp:S("hide",1),slideToggle:S("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){c.fn[a]=function(d,e,f){return this.animate(b, -d,e,f)}});c.extend({speed:function(a,b,d){var e=a&&typeof a==="object"?c.extend({},a):{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};e.duration=c.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in c.fx.speeds?c.fx.speeds[e.duration]:c.fx.speeds._default;e.old=e.complete;e.complete=function(){e.queue!==false&&c(this).dequeue();c.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,d,e){return d+e*a},swing:function(a,b,d,e){return(-Math.cos(a* -Math.PI)/2+0.5)*e+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||c.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a=parseFloat(c.css(this.elem,this.prop));return a&&a>-1E4?a:0},custom:function(a,b,d){function e(l){return f.step(l)} -var f=this,h=c.fx;this.startTime=c.now();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;this.pos=this.state=0;e.elem=this.elem;if(e()&&c.timers.push(e)&&!ba)ba=setInterval(h.tick,h.interval)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true; -this.custom(this.cur(),0)},step:function(a){var b=c.now(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var e in this.options.curAnim)if(this.options.curAnim[e]!==true)d=false;if(d){if(this.options.overflow!=null&&!c.support.shrinkWrapBlocks){var f=this.elem,h=this.options;c.each(["","X","Y"],function(k,o){f.style["overflow"+o]=h.overflow[k]})}this.options.hide&&c(this.elem).hide();if(this.options.hide|| -this.options.show)for(var l in this.options.curAnim)c.style(this.elem,l,this.options.orig[l]);this.options.complete.call(this.elem)}return false}else{a=b-this.startTime;this.state=a/this.options.duration;b=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||b](this.state,a,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a= -c.timers,b=0;b-1;e={};var x={};if(o)x=f.position();l=o?x.top:parseInt(l,10)||0;k=o?x.left:parseInt(k,10)||0;if(c.isFunction(b))b=b.call(a,d,h);if(b.top!=null)e.top=b.top-h.top+l;if(b.left!=null)e.left=b.left-h.left+k;"using"in b?b.using.call(a, -e):f.css(e)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),e=Ia.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.css(a,"marginTop"))||0;d.left-=parseFloat(c.css(a,"marginLeft"))||0;e.top+=parseFloat(c.css(b[0],"borderTopWidth"))||0;e.left+=parseFloat(c.css(b[0],"borderLeftWidth"))||0;return{top:d.top-e.top,left:d.left-e.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||t.body;a&&!Ia.test(a.nodeName)&& -c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(e){var f=this[0],h;if(!f)return null;if(e!==B)return this.each(function(){if(h=fa(this))h.scrollTo(!a?e:c(h).scrollLeft(),a?e:c(h).scrollTop());else this[d]=e});else return(h=fa(f))?"pageXOffset"in h?h[a?"pageYOffset":"pageXOffset"]:c.support.boxModel&&h.document.documentElement[d]||h.document.body[d]:f[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase(); -c.fn["inner"+b]=function(){return this[0]?parseFloat(c.css(this[0],d,"padding")):null};c.fn["outer"+b]=function(e){return this[0]?parseFloat(c.css(this[0],d,e?"margin":"border")):null};c.fn[d]=function(e){var f=this[0];if(!f)return e==null?null:this;if(c.isFunction(e))return this.each(function(l){var k=c(this);k[d](e.call(this,l,k[d]()))});if(c.isWindow(f))return f.document.compatMode==="CSS1Compat"&&f.document.documentElement["client"+b]||f.document.body["client"+b];else if(f.nodeType===9)return Math.max(f.documentElement["client"+ -b],f.body["scroll"+b],f.documentElement["scroll"+b],f.body["offset"+b],f.documentElement["offset"+b]);else if(e===B){f=c.css(f,d);var h=parseFloat(f);return c.isNaN(h)?f:h}else return this.css(d,typeof e==="string"?e:e+"px")}})})(window); diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/js/jquery.ztree.all.js b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/js/jquery.ztree.all.js deleted file mode 100644 index e2376133..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/js/jquery.ztree.all.js +++ /dev/null @@ -1,3841 +0,0 @@ - -/* - * JQuery zTree core v3.5.40 - * http://treejs.cn/ - * - * Copyright (c) 2010 Hunter.z - * - * Licensed same as jquery - MIT License - * http://www.opensource.org/licenses/mit-license.php - * - * email: hunter.z@263.net - * Date: 2019-01-18 - */ -(function ($) { - var settings = {}, roots = {}, caches = {}, - //default consts of core - _consts = { - className: { - BUTTON: "button", - LEVEL: "level", - ICO_LOADING: "ico_loading", - SWITCH: "switch", - NAME: 'node_name' - }, - event: { - NODECREATED: "ztree_nodeCreated", - CLICK: "ztree_click", - EXPAND: "ztree_expand", - COLLAPSE: "ztree_collapse", - ASYNC_SUCCESS: "ztree_async_success", - ASYNC_ERROR: "ztree_async_error", - REMOVE: "ztree_remove", - SELECTED: "ztree_selected", - UNSELECTED: "ztree_unselected" - }, - id: { - A: "_a", - ICON: "_ico", - SPAN: "_span", - SWITCH: "_switch", - UL: "_ul" - }, - line: { - ROOT: "root", - ROOTS: "roots", - CENTER: "center", - BOTTOM: "bottom", - NOLINE: "noline", - LINE: "line" - }, - folder: { - OPEN: "open", - CLOSE: "close", - DOCU: "docu" - }, - node: { - CURSELECTED: "curSelectedNode" - } - }, - //default setting of core - _setting = { - treeId: "", - treeObj: null, - view: { - addDiyDom: null, - autoCancelSelected: true, - dblClickExpand: true, - expandSpeed: "fast", - fontCss: {}, - nameIsHTML: false, - selectedMulti: true, - showIcon: true, - showLine: true, - showTitle: true, - txtSelectedEnable: false - }, - data: { - key: { - isParent: "isParent", - children: "children", - name: "name", - title: "", - url: "url", - icon: "icon" - }, - simpleData: { - enable: false, - idKey: "id", - pIdKey: "pId", - rootPId: null - }, - keep: { - parent: false, - leaf: false - } - }, - async: { - enable: false, - contentType: "application/x-www-form-urlencoded", - type: "post", - dataType: "text", - headers: {}, - xhrFields: {}, - url: "", - autoParam: [], - otherParam: [], - dataFilter: null - }, - callback: { - beforeAsync: null, - beforeClick: null, - beforeDblClick: null, - beforeRightClick: null, - beforeMouseDown: null, - beforeMouseUp: null, - beforeExpand: null, - beforeCollapse: null, - beforeRemove: null, - - onAsyncError: null, - onAsyncSuccess: null, - onNodeCreated: null, - onClick: null, - onDblClick: null, - onRightClick: null, - onMouseDown: null, - onMouseUp: null, - onExpand: null, - onCollapse: null, - onRemove: null - } - }, - //default root of core - //zTree use root to save full data - _initRoot = function (setting) { - var r = data.getRoot(setting); - if (!r) { - r = {}; - data.setRoot(setting, r); - } - data.nodeChildren(setting, r, []); - r.expandTriggerFlag = false; - r.curSelectedList = []; - r.noSelection = true; - r.createdNodes = []; - r.zId = 0; - r._ver = (new Date()).getTime(); - }, - //default cache of core - _initCache = function (setting) { - var c = data.getCache(setting); - if (!c) { - c = {}; - data.setCache(setting, c); - } - c.nodes = []; - c.doms = []; - }, - //default bindEvent of core - _bindEvent = function (setting) { - var o = setting.treeObj, - c = consts.event; - o.bind(c.NODECREATED, function (event, treeId, node) { - tools.apply(setting.callback.onNodeCreated, [event, treeId, node]); - }); - - o.bind(c.CLICK, function (event, srcEvent, treeId, node, clickFlag) { - tools.apply(setting.callback.onClick, [srcEvent, treeId, node, clickFlag]); - }); - - o.bind(c.EXPAND, function (event, treeId, node) { - tools.apply(setting.callback.onExpand, [event, treeId, node]); - }); - - o.bind(c.COLLAPSE, function (event, treeId, node) { - tools.apply(setting.callback.onCollapse, [event, treeId, node]); - }); - - o.bind(c.ASYNC_SUCCESS, function (event, treeId, node, msg) { - tools.apply(setting.callback.onAsyncSuccess, [event, treeId, node, msg]); - }); - - o.bind(c.ASYNC_ERROR, function (event, treeId, node, XMLHttpRequest, textStatus, errorThrown) { - tools.apply(setting.callback.onAsyncError, [event, treeId, node, XMLHttpRequest, textStatus, errorThrown]); - }); - - o.bind(c.REMOVE, function (event, treeId, treeNode) { - tools.apply(setting.callback.onRemove, [event, treeId, treeNode]); - }); - - o.bind(c.SELECTED, function (event, treeId, node) { - tools.apply(setting.callback.onSelected, [treeId, node]); - }); - o.bind(c.UNSELECTED, function (event, treeId, node) { - tools.apply(setting.callback.onUnSelected, [treeId, node]); - }); - }, - _unbindEvent = function (setting) { - var o = setting.treeObj, - c = consts.event; - o.unbind(c.NODECREATED) - .unbind(c.CLICK) - .unbind(c.EXPAND) - .unbind(c.COLLAPSE) - .unbind(c.ASYNC_SUCCESS) - .unbind(c.ASYNC_ERROR) - .unbind(c.REMOVE) - .unbind(c.SELECTED) - .unbind(c.UNSELECTED); - }, - //default event proxy of core - _eventProxy = function (event) { - var target = event.target, - setting = data.getSetting(event.data.treeId), - tId = "", node = null, - nodeEventType = "", treeEventType = "", - nodeEventCallback = null, treeEventCallback = null, - tmp = null; - - if (tools.eqs(event.type, "mousedown")) { - treeEventType = "mousedown"; - } else if (tools.eqs(event.type, "mouseup")) { - treeEventType = "mouseup"; - } else if (tools.eqs(event.type, "contextmenu")) { - treeEventType = "contextmenu"; - } else if (tools.eqs(event.type, "click")) { - if (tools.eqs(target.tagName, "span") && target.getAttribute("treeNode" + consts.id.SWITCH) !== null) { - tId = tools.getNodeMainDom(target).id; - nodeEventType = "switchNode"; - } else { - tmp = tools.getMDom(setting, target, [{tagName: "a", attrName: "treeNode" + consts.id.A}]); - if (tmp) { - tId = tools.getNodeMainDom(tmp).id; - nodeEventType = "clickNode"; - } - } - } else if (tools.eqs(event.type, "dblclick")) { - treeEventType = "dblclick"; - tmp = tools.getMDom(setting, target, [{tagName: "a", attrName: "treeNode" + consts.id.A}]); - if (tmp) { - tId = tools.getNodeMainDom(tmp).id; - nodeEventType = "switchNode"; - } - } - if (treeEventType.length > 0 && tId.length == 0) { - tmp = tools.getMDom(setting, target, [{tagName: "a", attrName: "treeNode" + consts.id.A}]); - if (tmp) { - tId = tools.getNodeMainDom(tmp).id; - } - } - // event to node - if (tId.length > 0) { - node = data.getNodeCache(setting, tId); - switch (nodeEventType) { - case "switchNode" : - var isParent = data.nodeIsParent(setting, node); - if (!isParent) { - nodeEventType = ""; - } else if (tools.eqs(event.type, "click") - || (tools.eqs(event.type, "dblclick") && tools.apply(setting.view.dblClickExpand, [setting.treeId, node], setting.view.dblClickExpand))) { - nodeEventCallback = handler.onSwitchNode; - } else { - nodeEventType = ""; - } - break; - case "clickNode" : - nodeEventCallback = handler.onClickNode; - break; - } - } - // event to zTree - switch (treeEventType) { - case "mousedown" : - treeEventCallback = handler.onZTreeMousedown; - break; - case "mouseup" : - treeEventCallback = handler.onZTreeMouseup; - break; - case "dblclick" : - treeEventCallback = handler.onZTreeDblclick; - break; - case "contextmenu" : - treeEventCallback = handler.onZTreeContextmenu; - break; - } - var proxyResult = { - stop: false, - node: node, - nodeEventType: nodeEventType, - nodeEventCallback: nodeEventCallback, - treeEventType: treeEventType, - treeEventCallback: treeEventCallback - }; - return proxyResult - }, - //default init node of core - _initNode = function (setting, level, n, parentNode, isFirstNode, isLastNode, openFlag) { - if (!n) return; - var r = data.getRoot(setting), - children = data.nodeChildren(setting, n); - n.level = level; - n.tId = setting.treeId + "_" + (++r.zId); - n.parentTId = parentNode ? parentNode.tId : null; - n.open = (typeof n.open == "string") ? tools.eqs(n.open, "true") : !!n.open; - var isParent = data.nodeIsParent(setting, n); - if (tools.isArray(children)) { - data.nodeIsParent(setting, n, true); - n.zAsync = true; - } else { - isParent = data.nodeIsParent(setting, n, isParent); - n.open = (isParent && !setting.async.enable) ? n.open : false; - n.zAsync = !isParent; - } - n.isFirstNode = isFirstNode; - n.isLastNode = isLastNode; - n.getParentNode = function () { - return data.getNodeCache(setting, n.parentTId); - }; - n.getPreNode = function () { - return data.getPreNode(setting, n); - }; - n.getNextNode = function () { - return data.getNextNode(setting, n); - }; - n.getIndex = function () { - return data.getNodeIndex(setting, n); - }; - n.getPath = function () { - return data.getNodePath(setting, n); - }; - n.isAjaxing = false; - data.fixPIdKeyValue(setting, n); - }, - _init = { - bind: [_bindEvent], - unbind: [_unbindEvent], - caches: [_initCache], - nodes: [_initNode], - proxys: [_eventProxy], - roots: [_initRoot], - beforeA: [], - afterA: [], - innerBeforeA: [], - innerAfterA: [], - zTreeTools: [] - }, - //method of operate data - data = { - addNodeCache: function (setting, node) { - data.getCache(setting).nodes[data.getNodeCacheId(node.tId)] = node; - }, - getNodeCacheId: function (tId) { - return tId.substring(tId.lastIndexOf("_") + 1); - }, - addAfterA: function (afterA) { - _init.afterA.push(afterA); - }, - addBeforeA: function (beforeA) { - _init.beforeA.push(beforeA); - }, - addInnerAfterA: function (innerAfterA) { - _init.innerAfterA.push(innerAfterA); - }, - addInnerBeforeA: function (innerBeforeA) { - _init.innerBeforeA.push(innerBeforeA); - }, - addInitBind: function (bindEvent) { - _init.bind.push(bindEvent); - }, - addInitUnBind: function (unbindEvent) { - _init.unbind.push(unbindEvent); - }, - addInitCache: function (initCache) { - _init.caches.push(initCache); - }, - addInitNode: function (initNode) { - _init.nodes.push(initNode); - }, - addInitProxy: function (initProxy, isFirst) { - if (!!isFirst) { - _init.proxys.splice(0, 0, initProxy); - } else { - _init.proxys.push(initProxy); - } - }, - addInitRoot: function (initRoot) { - _init.roots.push(initRoot); - }, - addNodesData: function (setting, parentNode, index, nodes) { - var children = data.nodeChildren(setting, parentNode), params; - if (!children) { - children = data.nodeChildren(setting, parentNode, []); - index = -1; - } else if (index >= children.length) { - index = -1; - } - - if (children.length > 0 && index === 0) { - children[0].isFirstNode = false; - view.setNodeLineIcos(setting, children[0]); - } else if (children.length > 0 && index < 0) { - children[children.length - 1].isLastNode = false; - view.setNodeLineIcos(setting, children[children.length - 1]); - } - data.nodeIsParent(setting, parentNode, true); - - if (index < 0) { - data.nodeChildren(setting, parentNode, children.concat(nodes)); - } else { - params = [index, 0].concat(nodes); - children.splice.apply(children, params); - } - }, - addSelectedNode: function (setting, node) { - var root = data.getRoot(setting); - if (!data.isSelectedNode(setting, node)) { - root.curSelectedList.push(node); - } - }, - addCreatedNode: function (setting, node) { - if (!!setting.callback.onNodeCreated || !!setting.view.addDiyDom) { - var root = data.getRoot(setting); - root.createdNodes.push(node); - } - }, - addZTreeTools: function (zTreeTools) { - _init.zTreeTools.push(zTreeTools); - }, - exSetting: function (s) { - $.extend(true, _setting, s); - }, - fixPIdKeyValue: function (setting, node) { - if (setting.data.simpleData.enable) { - node[setting.data.simpleData.pIdKey] = node.parentTId ? node.getParentNode()[setting.data.simpleData.idKey] : setting.data.simpleData.rootPId; - } - }, - getAfterA: function (setting, node, array) { - for (var i = 0, j = _init.afterA.length; i < j; i++) { - _init.afterA[i].apply(this, arguments); - } - }, - getBeforeA: function (setting, node, array) { - for (var i = 0, j = _init.beforeA.length; i < j; i++) { - _init.beforeA[i].apply(this, arguments); - } - }, - getInnerAfterA: function (setting, node, array) { - for (var i = 0, j = _init.innerAfterA.length; i < j; i++) { - _init.innerAfterA[i].apply(this, arguments); - } - }, - getInnerBeforeA: function (setting, node, array) { - for (var i = 0, j = _init.innerBeforeA.length; i < j; i++) { - _init.innerBeforeA[i].apply(this, arguments); - } - }, - getCache: function (setting) { - return caches[setting.treeId]; - }, - getNodeIndex: function (setting, node) { - if (!node) return null; - var p = node.parentTId ? node.getParentNode() : data.getRoot(setting), - children = data.nodeChildren(setting, p); - for (var i = 0, l = children.length - 1; i <= l; i++) { - if (children[i] === node) { - return i; - } - } - return -1; - }, - getNextNode: function (setting, node) { - if (!node) return null; - var p = node.parentTId ? node.getParentNode() : data.getRoot(setting), - children = data.nodeChildren(setting, p); - for (var i = 0, l = children.length - 1; i <= l; i++) { - if (children[i] === node) { - return (i == l ? null : children[i + 1]); - } - } - return null; - }, - getNodeByParam: function (setting, nodes, key, value) { - if (!nodes || !key) return null; - for (var i = 0, l = nodes.length; i < l; i++) { - var node = nodes[i]; - if (node[key] == value) { - return nodes[i]; - } - var children = data.nodeChildren(setting, node); - var tmp = data.getNodeByParam(setting, children, key, value); - if (tmp) return tmp; - } - return null; - }, - getNodeCache: function (setting, tId) { - if (!tId) return null; - var n = caches[setting.treeId].nodes[data.getNodeCacheId(tId)]; - return n ? n : null; - }, - getNodePath: function (setting, node) { - if (!node) return null; - - var path; - if (node.parentTId) { - path = node.getParentNode().getPath(); - } else { - path = []; - } - - if (path) { - path.push(node); - } - - return path; - }, - getNodes: function (setting) { - return data.nodeChildren(setting, data.getRoot(setting)); - }, - getNodesByParam: function (setting, nodes, key, value) { - if (!nodes || !key) return []; - var result = []; - for (var i = 0, l = nodes.length; i < l; i++) { - var node = nodes[i]; - if (node[key] == value) { - result.push(node); - } - var children = data.nodeChildren(setting, node); - result = result.concat(data.getNodesByParam(setting, children, key, value)); - } - return result; - }, - getNodesByParamFuzzy: function (setting, nodes, key, value) { - if (!nodes || !key) return []; - var result = []; - value = value.toLowerCase(); - for (var i = 0, l = nodes.length; i < l; i++) { - var node = nodes[i]; - if (typeof node[key] == "string" && nodes[i][key].toLowerCase().indexOf(value) > -1) { - result.push(node); - } - var children = data.nodeChildren(setting, node); - result = result.concat(data.getNodesByParamFuzzy(setting, children, key, value)); - } - return result; - }, - getNodesByFilter: function (setting, nodes, filter, isSingle, invokeParam) { - if (!nodes) return (isSingle ? null : []); - var result = isSingle ? null : []; - for (var i = 0, l = nodes.length; i < l; i++) { - var node = nodes[i]; - if (tools.apply(filter, [node, invokeParam], false)) { - if (isSingle) { - return node; - } - result.push(node); - } - var children = data.nodeChildren(setting, node); - var tmpResult = data.getNodesByFilter(setting, children, filter, isSingle, invokeParam); - if (isSingle && !!tmpResult) { - return tmpResult; - } - result = isSingle ? tmpResult : result.concat(tmpResult); - } - return result; - }, - getPreNode: function (setting, node) { - if (!node) return null; - var p = node.parentTId ? node.getParentNode() : data.getRoot(setting), - children = data.nodeChildren(setting, p); - for (var i = 0, l = children.length; i < l; i++) { - if (children[i] === node) { - return (i == 0 ? null : children[i - 1]); - } - } - return null; - }, - getRoot: function (setting) { - return setting ? roots[setting.treeId] : null; - }, - getRoots: function () { - return roots; - }, - getSetting: function (treeId) { - return settings[treeId]; - }, - getSettings: function () { - return settings; - }, - getZTreeTools: function (treeId) { - var r = this.getRoot(this.getSetting(treeId)); - return r ? r.treeTools : null; - }, - initCache: function (setting) { - for (var i = 0, j = _init.caches.length; i < j; i++) { - _init.caches[i].apply(this, arguments); - } - }, - initNode: function (setting, level, node, parentNode, preNode, nextNode) { - for (var i = 0, j = _init.nodes.length; i < j; i++) { - _init.nodes[i].apply(this, arguments); - } - }, - initRoot: function (setting) { - for (var i = 0, j = _init.roots.length; i < j; i++) { - _init.roots[i].apply(this, arguments); - } - }, - isSelectedNode: function (setting, node) { - var root = data.getRoot(setting); - for (var i = 0, j = root.curSelectedList.length; i < j; i++) { - if (node === root.curSelectedList[i]) return true; - } - return false; - }, - nodeChildren: function (setting, node, newChildren) { - if (!node) { - return null; - } - var key = setting.data.key.children; - if (typeof newChildren !== 'undefined') { - node[key] = newChildren; - } - return node[key]; - }, - nodeIsParent: function (setting, node, newIsParent) { - if (!node) { - return false; - } - var key = setting.data.key.isParent; - if (typeof newIsParent !== 'undefined') { - if (typeof newIsParent === "string") { - newIsParent = tools.eqs(newIsParent, "true"); - } - newIsParent = !!newIsParent; - node[key] = newIsParent; - } else if (typeof node[key] == "string"){ - node[key] = tools.eqs(node[key], "true"); - } else { - node[key] = !!node[key]; - } - return node[key]; - }, - nodeName: function (setting, node, newName) { - var key = setting.data.key.name; - if (typeof newName !== 'undefined') { - node[key] = newName; - } - return "" + node[key]; - }, - nodeTitle: function (setting, node) { - var t = setting.data.key.title === "" ? setting.data.key.name : setting.data.key.title; - return "" + node[t]; - }, - removeNodeCache: function (setting, node) { - var children = data.nodeChildren(setting, node); - if (children) { - for (var i = 0, l = children.length; i < l; i++) { - data.removeNodeCache(setting, children[i]); - } - } - data.getCache(setting).nodes[data.getNodeCacheId(node.tId)] = null; - }, - removeSelectedNode: function (setting, node) { - var root = data.getRoot(setting); - for (var i = 0, j = root.curSelectedList.length; i < j; i++) { - if (node === root.curSelectedList[i] || !data.getNodeCache(setting, root.curSelectedList[i].tId)) { - root.curSelectedList.splice(i, 1); - setting.treeObj.trigger(consts.event.UNSELECTED, [setting.treeId, node]); - i--; - j--; - } - } - }, - setCache: function (setting, cache) { - caches[setting.treeId] = cache; - }, - setRoot: function (setting, root) { - roots[setting.treeId] = root; - }, - setZTreeTools: function (setting, zTreeTools) { - for (var i = 0, j = _init.zTreeTools.length; i < j; i++) { - _init.zTreeTools[i].apply(this, arguments); - } - }, - transformToArrayFormat: function (setting, nodes) { - if (!nodes) return []; - var r = []; - if (tools.isArray(nodes)) { - for (var i = 0, l = nodes.length; i < l; i++) { - var node = nodes[i]; - _do(node); - } - } else { - _do(nodes); - } - return r; - - function _do(_node) { - r.push(_node); - var children = data.nodeChildren(setting, _node); - if (children) { - r = r.concat(data.transformToArrayFormat(setting, children)); - } - } - }, - transformTozTreeFormat: function (setting, sNodes) { - var i, l, - key = setting.data.simpleData.idKey, - parentKey = setting.data.simpleData.pIdKey; - if (!key || key == "" || !sNodes) return []; - - if (tools.isArray(sNodes)) { - var r = []; - var tmpMap = {}; - for (i = 0, l = sNodes.length; i < l; i++) { - tmpMap[sNodes[i][key]] = sNodes[i]; - } - for (i = 0, l = sNodes.length; i < l; i++) { - var p = tmpMap[sNodes[i][parentKey]]; - if (p && sNodes[i][key] != sNodes[i][parentKey]) { - var children = data.nodeChildren(setting, p); - if (!children) { - children = data.nodeChildren(setting, p, []); - } - children.push(sNodes[i]); - } else { - r.push(sNodes[i]); - } - } - return r; - } else { - return [sNodes]; - } - } - }, - //method of event proxy - event = { - bindEvent: function (setting) { - for (var i = 0, j = _init.bind.length; i < j; i++) { - _init.bind[i].apply(this, arguments); - } - }, - unbindEvent: function (setting) { - for (var i = 0, j = _init.unbind.length; i < j; i++) { - _init.unbind[i].apply(this, arguments); - } - }, - bindTree: function (setting) { - var eventParam = { - treeId: setting.treeId - }, - o = setting.treeObj; - if (!setting.view.txtSelectedEnable) { - // for can't select text - o.bind('selectstart', handler.onSelectStart).css({ - "-moz-user-select": "-moz-none" - }); - } - o.bind('click', eventParam, event.proxy); - o.bind('dblclick', eventParam, event.proxy); - o.bind('mouseover', eventParam, event.proxy); - o.bind('mouseout', eventParam, event.proxy); - o.bind('mousedown', eventParam, event.proxy); - o.bind('mouseup', eventParam, event.proxy); - o.bind('contextmenu', eventParam, event.proxy); - }, - unbindTree: function (setting) { - var o = setting.treeObj; - o.unbind('selectstart', handler.onSelectStart) - .unbind('click', event.proxy) - .unbind('dblclick', event.proxy) - .unbind('mouseover', event.proxy) - .unbind('mouseout', event.proxy) - .unbind('mousedown', event.proxy) - .unbind('mouseup', event.proxy) - .unbind('contextmenu', event.proxy); - }, - doProxy: function (e) { - var results = []; - for (var i = 0, j = _init.proxys.length; i < j; i++) { - var proxyResult = _init.proxys[i].apply(this, arguments); - results.push(proxyResult); - if (proxyResult.stop) { - break; - } - } - return results; - }, - proxy: function (e) { - var setting = data.getSetting(e.data.treeId); - if (!tools.uCanDo(setting, e)) return true; - var results = event.doProxy(e), - r = true, x = false; - for (var i = 0, l = results.length; i < l; i++) { - var proxyResult = results[i]; - if (proxyResult.nodeEventCallback) { - x = true; - r = proxyResult.nodeEventCallback.apply(proxyResult, [e, proxyResult.node]) && r; - } - if (proxyResult.treeEventCallback) { - x = true; - r = proxyResult.treeEventCallback.apply(proxyResult, [e, proxyResult.node]) && r; - } - } - return r; - } - }, - //method of event handler - handler = { - onSwitchNode: function (event, node) { - var setting = data.getSetting(event.data.treeId); - if (node.open) { - if (tools.apply(setting.callback.beforeCollapse, [setting.treeId, node], true) == false) return true; - data.getRoot(setting).expandTriggerFlag = true; - view.switchNode(setting, node); - } else { - if (tools.apply(setting.callback.beforeExpand, [setting.treeId, node], true) == false) return true; - data.getRoot(setting).expandTriggerFlag = true; - view.switchNode(setting, node); - } - return true; - }, - onClickNode: function (event, node) { - var setting = data.getSetting(event.data.treeId), - clickFlag = ((setting.view.autoCancelSelected && (event.ctrlKey || event.metaKey)) && data.isSelectedNode(setting, node)) ? 0 : (setting.view.autoCancelSelected && (event.ctrlKey || event.metaKey) && setting.view.selectedMulti) ? 2 : 1; - if (tools.apply(setting.callback.beforeClick, [setting.treeId, node, clickFlag], true) == false) return true; - if (clickFlag === 0) { - view.cancelPreSelectedNode(setting, node); - } else { - view.selectNode(setting, node, clickFlag === 2); - } - setting.treeObj.trigger(consts.event.CLICK, [event, setting.treeId, node, clickFlag]); - return true; - }, - onZTreeMousedown: function (event, node) { - var setting = data.getSetting(event.data.treeId); - if (tools.apply(setting.callback.beforeMouseDown, [setting.treeId, node], true)) { - tools.apply(setting.callback.onMouseDown, [event, setting.treeId, node]); - } - return true; - }, - onZTreeMouseup: function (event, node) { - var setting = data.getSetting(event.data.treeId); - if (tools.apply(setting.callback.beforeMouseUp, [setting.treeId, node], true)) { - tools.apply(setting.callback.onMouseUp, [event, setting.treeId, node]); - } - return true; - }, - onZTreeDblclick: function (event, node) { - var setting = data.getSetting(event.data.treeId); - if (tools.apply(setting.callback.beforeDblClick, [setting.treeId, node], true)) { - tools.apply(setting.callback.onDblClick, [event, setting.treeId, node]); - } - return true; - }, - onZTreeContextmenu: function (event, node) { - var setting = data.getSetting(event.data.treeId); - if (tools.apply(setting.callback.beforeRightClick, [setting.treeId, node], true)) { - tools.apply(setting.callback.onRightClick, [event, setting.treeId, node]); - } - return (typeof setting.callback.onRightClick) != "function"; - }, - onSelectStart: function (e) { - var n = e.originalEvent.srcElement.nodeName.toLowerCase(); - return (n === "input" || n === "textarea"); - } - }, - //method of tools for zTree - tools = { - apply: function (fun, param, defaultValue) { - if ((typeof fun) == "function") { - return fun.apply(zt, param ? param : []); - } - return defaultValue; - }, - canAsync: function (setting, node) { - var children = data.nodeChildren(setting, node); - var isParent = data.nodeIsParent(setting, node); - return (setting.async.enable && node && isParent && !(node.zAsync || (children && children.length > 0))); - }, - clone: function (obj) { - if (obj === null) return null; - var o = tools.isArray(obj) ? [] : {}; - for (var i in obj) { - o[i] = (obj[i] instanceof Date) ? new Date(obj[i].getTime()) : (typeof obj[i] === "object" ? tools.clone(obj[i]) : obj[i]); - } - return o; - }, - eqs: function (str1, str2) { - return str1.toLowerCase() === str2.toLowerCase(); - }, - isArray: function (arr) { - return Object.prototype.toString.apply(arr) === "[object Array]"; - }, - isElement: function (o) { - return ( - typeof HTMLElement === "object" ? o instanceof HTMLElement : //DOM2 - o && typeof o === "object" && o !== null && o.nodeType === 1 && typeof o.nodeName === "string" - ); - }, - $: function (node, exp, setting) { - if (!!exp && typeof exp != "string") { - setting = exp; - exp = ""; - } - if (typeof node == "string") { - return $(node, setting ? setting.treeObj.get(0).ownerDocument : null); - } else { - return $("#" + node.tId + exp, setting ? setting.treeObj : null); - } - }, - getMDom: function (setting, curDom, targetExpr) { - if (!curDom) return null; - while (curDom && curDom.id !== setting.treeId) { - for (var i = 0, l = targetExpr.length; curDom.tagName && i < l; i++) { - if (tools.eqs(curDom.tagName, targetExpr[i].tagName) && curDom.getAttribute(targetExpr[i].attrName) !== null) { - return curDom; - } - } - curDom = curDom.parentNode; - } - return null; - }, - getNodeMainDom: function (target) { - return ($(target).parent("li").get(0) || $(target).parentsUntil("li").parent().get(0)); - }, - isChildOrSelf: function (dom, parentId) { - return ($(dom).closest("#" + parentId).length > 0); - }, - uCanDo: function (setting, e) { - return true; - } - }, - //method of operate ztree dom - view = { - addNodes: function (setting, parentNode, index, newNodes, isSilent) { - var isParent = data.nodeIsParent(setting, parentNode); - if (setting.data.keep.leaf && parentNode && !isParent) { - return; - } - if (!tools.isArray(newNodes)) { - newNodes = [newNodes]; - } - if (setting.data.simpleData.enable) { - newNodes = data.transformTozTreeFormat(setting, newNodes); - } - if (parentNode) { - var target_switchObj = $$(parentNode, consts.id.SWITCH, setting), - target_icoObj = $$(parentNode, consts.id.ICON, setting), - target_ulObj = $$(parentNode, consts.id.UL, setting); - - if (!parentNode.open) { - view.replaceSwitchClass(parentNode, target_switchObj, consts.folder.CLOSE); - view.replaceIcoClass(parentNode, target_icoObj, consts.folder.CLOSE); - parentNode.open = false; - target_ulObj.css({ - "display": "none" - }); - } - - data.addNodesData(setting, parentNode, index, newNodes); - view.createNodes(setting, parentNode.level + 1, newNodes, parentNode, index); - if (!isSilent) { - view.expandCollapseParentNode(setting, parentNode, true); - } - } else { - data.addNodesData(setting, data.getRoot(setting), index, newNodes); - view.createNodes(setting, 0, newNodes, null, index); - } - }, - appendNodes: function (setting, level, nodes, parentNode, index, initFlag, openFlag) { - if (!nodes) return []; - var html = []; - - var tmpPNode = (parentNode) ? parentNode : data.getRoot(setting), - tmpPChild = data.nodeChildren(setting, tmpPNode), - isFirstNode, isLastNode; - - if (!tmpPChild || index >= tmpPChild.length - nodes.length) { - index = -1; - } - - for (var i = 0, l = nodes.length; i < l; i++) { - var node = nodes[i]; - if (initFlag) { - isFirstNode = ((index === 0 || tmpPChild.length == nodes.length) && (i == 0)); - isLastNode = (index < 0 && i == (nodes.length - 1)); - data.initNode(setting, level, node, parentNode, isFirstNode, isLastNode, openFlag); - data.addNodeCache(setting, node); - } - var isParent = data.nodeIsParent(setting, node); - - var childHtml = []; - var children = data.nodeChildren(setting, node); - if (children && children.length > 0) { - //make child html first, because checkType - childHtml = view.appendNodes(setting, level + 1, children, node, -1, initFlag, openFlag && node.open); - } - if (openFlag) { - view.makeDOMNodeMainBefore(html, setting, node); - view.makeDOMNodeLine(html, setting, node); - data.getBeforeA(setting, node, html); - view.makeDOMNodeNameBefore(html, setting, node); - data.getInnerBeforeA(setting, node, html); - view.makeDOMNodeIcon(html, setting, node); - data.getInnerAfterA(setting, node, html); - view.makeDOMNodeNameAfter(html, setting, node); - data.getAfterA(setting, node, html); - if (isParent && node.open) { - view.makeUlHtml(setting, node, html, childHtml.join('')); - } - view.makeDOMNodeMainAfter(html, setting, node); - data.addCreatedNode(setting, node); - } - } - return html; - }, - appendParentULDom: function (setting, node) { - var html = [], - nObj = $$(node, setting); - if (!nObj.get(0) && !!node.parentTId) { - view.appendParentULDom(setting, node.getParentNode()); - nObj = $$(node, setting); - } - var ulObj = $$(node, consts.id.UL, setting); - if (ulObj.get(0)) { - ulObj.remove(); - } - var children = data.nodeChildren(setting, node), - childHtml = view.appendNodes(setting, node.level + 1, children, node, -1, false, true); - view.makeUlHtml(setting, node, html, childHtml.join('')); - nObj.append(html.join('')); - }, - asyncNode: function (setting, node, isSilent, callback) { - var i, l; - var isParent = data.nodeIsParent(setting, node); - if (node && !isParent) { - tools.apply(callback); - return false; - } else if (node && node.isAjaxing) { - return false; - } else if (tools.apply(setting.callback.beforeAsync, [setting.treeId, node], true) == false) { - tools.apply(callback); - return false; - } - if (node) { - node.isAjaxing = true; - var icoObj = $$(node, consts.id.ICON, setting); - icoObj.attr({"style": "", "class": consts.className.BUTTON + " " + consts.className.ICO_LOADING}); - } - - var tmpParam = {}; - var autoParam = tools.apply(setting.async.autoParam, [setting.treeId, node], setting.async.autoParam); - for (i = 0, l = autoParam.length; node && i < l; i++) { - var pKey = autoParam[i].split("="), spKey = pKey; - if (pKey.length > 1) { - spKey = pKey[1]; - pKey = pKey[0]; - } - tmpParam[spKey] = node[pKey]; - } - var otherParam = tools.apply(setting.async.otherParam, [setting.treeId, node], setting.async.otherParam); - if (tools.isArray(otherParam)) { - for (i = 0, l = otherParam.length; i < l; i += 2) { - tmpParam[otherParam[i]] = otherParam[i + 1]; - } - } else { - for (var p in otherParam) { - tmpParam[p] = otherParam[p]; - } - } - - var _tmpV = data.getRoot(setting)._ver; - $.ajax({ - contentType: setting.async.contentType, - cache: false, - type: setting.async.type, - url: tools.apply(setting.async.url, [setting.treeId, node], setting.async.url), - data: setting.async.contentType.indexOf('application/json') > -1 ? JSON.stringify(tmpParam) : tmpParam, - dataType: setting.async.dataType, - headers: setting.async.headers, - xhrFields: setting.async.xhrFields, - success: function (msg) { - if (_tmpV != data.getRoot(setting)._ver) { - return; - } - var newNodes = []; - try { - if (!msg || msg.length == 0) { - newNodes = []; - } else if (typeof msg == "string") { - newNodes = eval("(" + msg + ")"); - } else { - newNodes = msg; - } - } catch (err) { - newNodes = msg; - } - - if (node) { - node.isAjaxing = null; - node.zAsync = true; - } - view.setNodeLineIcos(setting, node); - if (newNodes && newNodes !== "") { - newNodes = tools.apply(setting.async.dataFilter, [setting.treeId, node, newNodes], newNodes); - view.addNodes(setting, node, -1, !!newNodes ? tools.clone(newNodes) : [], !!isSilent); - } else { - view.addNodes(setting, node, -1, [], !!isSilent); - } - setting.treeObj.trigger(consts.event.ASYNC_SUCCESS, [setting.treeId, node, msg]); - tools.apply(callback); - }, - error: function (XMLHttpRequest, textStatus, errorThrown) { - if (_tmpV != data.getRoot(setting)._ver) { - return; - } - if (node) node.isAjaxing = null; - view.setNodeLineIcos(setting, node); - setting.treeObj.trigger(consts.event.ASYNC_ERROR, [setting.treeId, node, XMLHttpRequest, textStatus, errorThrown]); - } - }); - return true; - }, - cancelPreSelectedNode: function (setting, node, excludeNode) { - var list = data.getRoot(setting).curSelectedList, - i, n; - for (i = list.length - 1; i >= 0; i--) { - n = list[i]; - if (node === n || (!node && (!excludeNode || excludeNode !== n))) { - $$(n, consts.id.A, setting).removeClass(consts.node.CURSELECTED); - if (node) { - data.removeSelectedNode(setting, node); - break; - } else { - list.splice(i, 1); - setting.treeObj.trigger(consts.event.UNSELECTED, [setting.treeId, n]); - } - } - } - }, - createNodeCallback: function (setting) { - if (!!setting.callback.onNodeCreated || !!setting.view.addDiyDom) { - var root = data.getRoot(setting); - while (root.createdNodes.length > 0) { - var node = root.createdNodes.shift(); - tools.apply(setting.view.addDiyDom, [setting.treeId, node]); - if (!!setting.callback.onNodeCreated) { - setting.treeObj.trigger(consts.event.NODECREATED, [setting.treeId, node]); - } - } - } - }, - createNodes: function (setting, level, nodes, parentNode, index) { - if (!nodes || nodes.length == 0) return; - var root = data.getRoot(setting), - openFlag = !parentNode || parentNode.open || !!$$(data.nodeChildren(setting, parentNode)[0], setting).get(0); - root.createdNodes = []; - var zTreeHtml = view.appendNodes(setting, level, nodes, parentNode, index, true, openFlag), - parentObj, nextObj; - - if (!parentNode) { - parentObj = setting.treeObj; - //setting.treeObj.append(zTreeHtml.join('')); - } else { - var ulObj = $$(parentNode, consts.id.UL, setting); - if (ulObj.get(0)) { - parentObj = ulObj; - //ulObj.append(zTreeHtml.join('')); - } - } - if (parentObj) { - if (index >= 0) { - nextObj = parentObj.children()[index]; - } - if (index >= 0 && nextObj) { - $(nextObj).before(zTreeHtml.join('')); - } else { - parentObj.append(zTreeHtml.join('')); - } - } - - view.createNodeCallback(setting); - }, - destroy: function (setting) { - if (!setting) return; - data.initCache(setting); - data.initRoot(setting); - event.unbindTree(setting); - event.unbindEvent(setting); - setting.treeObj.empty(); - delete settings[setting.treeId]; - }, - expandCollapseNode: function (setting, node, expandFlag, animateFlag, callback) { - var root = data.getRoot(setting); - var tmpCb, _callback; - if (!node) { - tools.apply(callback, []); - return; - } - var children = data.nodeChildren(setting, node); - var isParent = data.nodeIsParent(setting, node); - if (root.expandTriggerFlag) { - _callback = callback; - tmpCb = function () { - if (_callback) _callback(); - if (node.open) { - setting.treeObj.trigger(consts.event.EXPAND, [setting.treeId, node]); - } else { - setting.treeObj.trigger(consts.event.COLLAPSE, [setting.treeId, node]); - } - }; - callback = tmpCb; - root.expandTriggerFlag = false; - } - if (!node.open && isParent && ((!$$(node, consts.id.UL, setting).get(0)) || (children && children.length > 0 && !$$(children[0], setting).get(0)))) { - view.appendParentULDom(setting, node); - view.createNodeCallback(setting); - } - if (node.open == expandFlag) { - tools.apply(callback, []); - return; - } - var ulObj = $$(node, consts.id.UL, setting), - switchObj = $$(node, consts.id.SWITCH, setting), - icoObj = $$(node, consts.id.ICON, setting); - - if (isParent) { - node.open = !node.open; - if (node.iconOpen && node.iconClose) { - icoObj.attr("style", view.makeNodeIcoStyle(setting, node)); - } - - if (node.open) { - view.replaceSwitchClass(node, switchObj, consts.folder.OPEN); - view.replaceIcoClass(node, icoObj, consts.folder.OPEN); - if (animateFlag == false || setting.view.expandSpeed == "") { - ulObj.show(); - tools.apply(callback, []); - } else { - if (children && children.length > 0) { - ulObj.slideDown(setting.view.expandSpeed, callback); - } else { - ulObj.show(); - tools.apply(callback, []); - } - } - } else { - view.replaceSwitchClass(node, switchObj, consts.folder.CLOSE); - view.replaceIcoClass(node, icoObj, consts.folder.CLOSE); - if (animateFlag == false || setting.view.expandSpeed == "" || !(children && children.length > 0)) { - ulObj.hide(); - tools.apply(callback, []); - } else { - ulObj.slideUp(setting.view.expandSpeed, callback); - } - } - } else { - tools.apply(callback, []); - } - }, - expandCollapseParentNode: function (setting, node, expandFlag, animateFlag, callback) { - if (!node) return; - if (!node.parentTId) { - view.expandCollapseNode(setting, node, expandFlag, animateFlag, callback); - return; - } else { - view.expandCollapseNode(setting, node, expandFlag, animateFlag); - } - if (node.parentTId) { - view.expandCollapseParentNode(setting, node.getParentNode(), expandFlag, animateFlag, callback); - } - }, - expandCollapseSonNode: function (setting, node, expandFlag, animateFlag, callback) { - var root = data.getRoot(setting), - treeNodes = (node) ? data.nodeChildren(setting, node) : data.nodeChildren(setting, root), - selfAnimateSign = (node) ? false : animateFlag, - expandTriggerFlag = data.getRoot(setting).expandTriggerFlag; - data.getRoot(setting).expandTriggerFlag = false; - if (treeNodes) { - for (var i = 0, l = treeNodes.length; i < l; i++) { - if (treeNodes[i]) view.expandCollapseSonNode(setting, treeNodes[i], expandFlag, selfAnimateSign); - } - } - data.getRoot(setting).expandTriggerFlag = expandTriggerFlag; - view.expandCollapseNode(setting, node, expandFlag, animateFlag, callback); - }, - isSelectedNode: function (setting, node) { - if (!node) { - return false; - } - var list = data.getRoot(setting).curSelectedList, - i; - for (i = list.length - 1; i >= 0; i--) { - if (node === list[i]) { - return true; - } - } - return false; - }, - makeDOMNodeIcon: function (html, setting, node) { - var nameStr = data.nodeName(setting, node), - name = setting.view.nameIsHTML ? nameStr : nameStr.replace(/&/g, '&').replace(//g, '>'); - html.push("", name, ""); - }, - makeDOMNodeLine: function (html, setting, node) { - html.push(""); - }, - makeDOMNodeMainAfter: function (html, setting, node) { - html.push(""); - }, - makeDOMNodeMainBefore: function (html, setting, node) { - html.push("
                                                                                                                                                                                                                                                                                                    • "); - }, - makeDOMNodeNameAfter: function (html, setting, node) { - html.push(""); - }, - makeDOMNodeNameBefore: function (html, setting, node) { - var title = data.nodeTitle(setting, node), - url = view.makeNodeUrl(setting, node), - fontcss = view.makeNodeFontCss(setting, node), - fontStyle = []; - for (var f in fontcss) { - fontStyle.push(f, ":", fontcss[f], ";"); - } - html.push(" 0) ? "href='" + url + "'" : ""), " target='", view.makeNodeTarget(node), "' style='", fontStyle.join(''), - "'"); - if (tools.apply(setting.view.showTitle, [setting.treeId, node], setting.view.showTitle) && title) { - html.push("title='", title.replace(/'/g, "'").replace(//g, '>'), "'"); - } - html.push(">"); - }, - makeNodeFontCss: function (setting, node) { - var fontCss = tools.apply(setting.view.fontCss, [setting.treeId, node], setting.view.fontCss); - return (fontCss && ((typeof fontCss) != "function")) ? fontCss : {}; - }, - makeNodeIcoClass: function (setting, node) { - var icoCss = ["ico"]; - if (!node.isAjaxing) { - var isParent = data.nodeIsParent(setting, node); - icoCss[0] = (node.iconSkin ? node.iconSkin + "_" : "") + icoCss[0]; - if (isParent) { - icoCss.push(node.open ? consts.folder.OPEN : consts.folder.CLOSE); - } else { - icoCss.push(consts.folder.DOCU); - } - } - return consts.className.BUTTON + " " + icoCss.join('_'); - }, - makeNodeIcoStyle: function (setting, node) { - var icoStyle = []; - if (!node.isAjaxing) { - var isParent = data.nodeIsParent(setting, node); - var icon = (isParent && node.iconOpen && node.iconClose) ? (node.open ? node.iconOpen : node.iconClose) : node[setting.data.key.icon]; - if (icon) icoStyle.push("background:url(", icon, ") 0 0 no-repeat;"); - if (setting.view.showIcon == false || !tools.apply(setting.view.showIcon, [setting.treeId, node], true)) { - icoStyle.push("width:0px;height:0px;"); - } - } - return icoStyle.join(''); - }, - makeNodeLineClass: function (setting, node) { - var lineClass = []; - if (setting.view.showLine) { - if (node.level == 0 && node.isFirstNode && node.isLastNode) { - lineClass.push(consts.line.ROOT); - } else if (node.level == 0 && node.isFirstNode) { - lineClass.push(consts.line.ROOTS); - } else if (node.isLastNode) { - lineClass.push(consts.line.BOTTOM); - } else { - lineClass.push(consts.line.CENTER); - } - } else { - lineClass.push(consts.line.NOLINE); - } - if (data.nodeIsParent(setting, node)) { - lineClass.push(node.open ? consts.folder.OPEN : consts.folder.CLOSE); - } else { - lineClass.push(consts.folder.DOCU); - } - return view.makeNodeLineClassEx(node) + lineClass.join('_'); - }, - makeNodeLineClassEx: function (node) { - return consts.className.BUTTON + " " + consts.className.LEVEL + node.level + " " + consts.className.SWITCH + " "; - }, - makeNodeTarget: function (node) { - return (node.target || "_blank"); - }, - makeNodeUrl: function (setting, node) { - var urlKey = setting.data.key.url; - return node[urlKey] ? node[urlKey] : null; - }, - makeUlHtml: function (setting, node, html, content) { - html.push("
                                                                                                                                                                                                                                                                                                        "); - html.push(content); - html.push("
                                                                                                                                                                                                                                                                                                      "); - }, - makeUlLineClass: function (setting, node) { - return ((setting.view.showLine && !node.isLastNode) ? consts.line.LINE : ""); - }, - removeChildNodes: function (setting, node) { - if (!node) return; - var nodes = data.nodeChildren(setting, node); - if (!nodes) return; - - for (var i = 0, l = nodes.length; i < l; i++) { - data.removeNodeCache(setting, nodes[i]); - } - data.removeSelectedNode(setting); - delete node[setting.data.key.children]; - - if (!setting.data.keep.parent) { - data.nodeIsParent(setting, node, false); - node.open = false; - var tmp_switchObj = $$(node, consts.id.SWITCH, setting), - tmp_icoObj = $$(node, consts.id.ICON, setting); - view.replaceSwitchClass(node, tmp_switchObj, consts.folder.DOCU); - view.replaceIcoClass(node, tmp_icoObj, consts.folder.DOCU); - $$(node, consts.id.UL, setting).remove(); - } else { - $$(node, consts.id.UL, setting).empty(); - } - }, - scrollIntoView: function (setting, dom) { - if (!dom) { - return; - } - // support IE 7 - if (typeof Element === 'undefined') { - var contRect = setting.treeObj.get(0).getBoundingClientRect(), - findMeRect = dom.getBoundingClientRect(); - if (findMeRect.top < contRect.top || findMeRect.bottom > contRect.bottom - || findMeRect.right > contRect.right || findMeRect.left < contRect.left) { - dom.scrollIntoView(); - } - return; - } - // CC-BY jocki84@googlemail.com, https://gist.github.com/jocki84/6ffafd003387179a988e - if (!Element.prototype.scrollIntoViewIfNeeded) { - Element.prototype.scrollIntoViewIfNeeded = function (centerIfNeeded) { - "use strict"; - - function makeRange(start, length) { - return {"start": start, "length": length, "end": start + length}; - } - - function coverRange(inner, outer) { - if ( - false === centerIfNeeded || - (outer.start < inner.end && inner.start < outer.end) - ) { - return Math.max( - inner.end - outer.length, - Math.min(outer.start, inner.start) - ); - } - return (inner.start + inner.end - outer.length) / 2; - } - - function makePoint(x, y) { - return { - "x": x, - "y": y, - "translate": function translate(dX, dY) { - return makePoint(x + dX, y + dY); - } - }; - } - - function absolute(elem, pt) { - while (elem) { - pt = pt.translate(elem.offsetLeft, elem.offsetTop); - elem = elem.offsetParent; - } - return pt; - } - - var target = absolute(this, makePoint(0, 0)), - extent = makePoint(this.offsetWidth, this.offsetHeight), - elem = this.parentNode, - origin; - - while (elem instanceof HTMLElement) { - // Apply desired scroll amount. - origin = absolute(elem, makePoint(elem.clientLeft, elem.clientTop)); - elem.scrollLeft = coverRange( - makeRange(target.x - origin.x, extent.x), - makeRange(elem.scrollLeft, elem.clientWidth) - ); - elem.scrollTop = coverRange( - makeRange(target.y - origin.y, extent.y), - makeRange(elem.scrollTop, elem.clientHeight) - ); - - // Determine actual scroll amount by reading back scroll properties. - target = target.translate(-elem.scrollLeft, -elem.scrollTop); - elem = elem.parentNode; - } - }; - } - dom.scrollIntoViewIfNeeded(); - }, - setFirstNode: function (setting, parentNode) { - var children = data.nodeChildren(setting, parentNode); - if (children.length > 0) { - children[0].isFirstNode = true; - } - }, - setLastNode: function (setting, parentNode) { - var children = data.nodeChildren(setting, parentNode); - if (children.length > 0) { - children[children.length - 1].isLastNode = true; - } - }, - removeNode: function (setting, node) { - var root = data.getRoot(setting), - parentNode = (node.parentTId) ? node.getParentNode() : root; - - node.isFirstNode = false; - node.isLastNode = false; - node.getPreNode = function () { - return null; - }; - node.getNextNode = function () { - return null; - }; - - if (!data.getNodeCache(setting, node.tId)) { - return; - } - - $$(node, setting).remove(); - data.removeNodeCache(setting, node); - data.removeSelectedNode(setting, node); - - var children = data.nodeChildren(setting, parentNode); - for (var i = 0, l = children.length; i < l; i++) { - if (children[i].tId == node.tId) { - children.splice(i, 1); - break; - } - } - view.setFirstNode(setting, parentNode); - view.setLastNode(setting, parentNode); - - var tmp_ulObj, tmp_switchObj, tmp_icoObj, - childLength = children.length; - - //repair nodes old parent - if (!setting.data.keep.parent && childLength == 0) { - //old parentNode has no child nodes - data.nodeIsParent(setting, parentNode, false); - parentNode.open = false; - delete parentNode[setting.data.key.children]; - tmp_ulObj = $$(parentNode, consts.id.UL, setting); - tmp_switchObj = $$(parentNode, consts.id.SWITCH, setting); - tmp_icoObj = $$(parentNode, consts.id.ICON, setting); - view.replaceSwitchClass(parentNode, tmp_switchObj, consts.folder.DOCU); - view.replaceIcoClass(parentNode, tmp_icoObj, consts.folder.DOCU); - tmp_ulObj.css("display", "none"); - - } else if (setting.view.showLine && childLength > 0) { - //old parentNode has child nodes - var newLast = children[childLength - 1]; - tmp_ulObj = $$(newLast, consts.id.UL, setting); - tmp_switchObj = $$(newLast, consts.id.SWITCH, setting); - tmp_icoObj = $$(newLast, consts.id.ICON, setting); - if (parentNode == root) { - if (children.length == 1) { - //node was root, and ztree has only one root after move node - view.replaceSwitchClass(newLast, tmp_switchObj, consts.line.ROOT); - } else { - var tmp_first_switchObj = $$(children[0], consts.id.SWITCH, setting); - view.replaceSwitchClass(children[0], tmp_first_switchObj, consts.line.ROOTS); - view.replaceSwitchClass(newLast, tmp_switchObj, consts.line.BOTTOM); - } - } else { - view.replaceSwitchClass(newLast, tmp_switchObj, consts.line.BOTTOM); - } - tmp_ulObj.removeClass(consts.line.LINE); - } - }, - replaceIcoClass: function (node, obj, newName) { - if (!obj || node.isAjaxing) return; - var tmpName = obj.attr("class"); - if (tmpName == undefined) return; - var tmpList = tmpName.split("_"); - switch (newName) { - case consts.folder.OPEN: - case consts.folder.CLOSE: - case consts.folder.DOCU: - tmpList[tmpList.length - 1] = newName; - break; - } - obj.attr("class", tmpList.join("_")); - }, - replaceSwitchClass: function (node, obj, newName) { - if (!obj) return; - var tmpName = obj.attr("class"); - if (tmpName == undefined) return; - var tmpList = tmpName.split("_"); - switch (newName) { - case consts.line.ROOT: - case consts.line.ROOTS: - case consts.line.CENTER: - case consts.line.BOTTOM: - case consts.line.NOLINE: - tmpList[0] = view.makeNodeLineClassEx(node) + newName; - break; - case consts.folder.OPEN: - case consts.folder.CLOSE: - case consts.folder.DOCU: - tmpList[1] = newName; - break; - } - obj.attr("class", tmpList.join("_")); - if (newName !== consts.folder.DOCU) { - obj.removeAttr("disabled"); - } else { - obj.attr("disabled", "disabled"); - } - }, - selectNode: function (setting, node, addFlag) { - if (!addFlag) { - view.cancelPreSelectedNode(setting, null, node); - } - $$(node, consts.id.A, setting).addClass(consts.node.CURSELECTED); - data.addSelectedNode(setting, node); - setting.treeObj.trigger(consts.event.SELECTED, [setting.treeId, node]); - }, - setNodeFontCss: function (setting, treeNode) { - var aObj = $$(treeNode, consts.id.A, setting), - fontCss = view.makeNodeFontCss(setting, treeNode); - if (fontCss) { - aObj.css(fontCss); - } - }, - setNodeLineIcos: function (setting, node) { - if (!node) return; - var switchObj = $$(node, consts.id.SWITCH, setting), - ulObj = $$(node, consts.id.UL, setting), - icoObj = $$(node, consts.id.ICON, setting), - ulLine = view.makeUlLineClass(setting, node); - if (ulLine.length == 0) { - ulObj.removeClass(consts.line.LINE); - } else { - ulObj.addClass(ulLine); - } - switchObj.attr("class", view.makeNodeLineClass(setting, node)); - if (data.nodeIsParent(setting, node)) { - switchObj.removeAttr("disabled"); - } else { - switchObj.attr("disabled", "disabled"); - } - icoObj.removeAttr("style"); - icoObj.attr("style", view.makeNodeIcoStyle(setting, node)); - icoObj.attr("class", view.makeNodeIcoClass(setting, node)); - }, - setNodeName: function (setting, node) { - var title = data.nodeTitle(setting, node), - nObj = $$(node, consts.id.SPAN, setting); - nObj.empty(); - if (setting.view.nameIsHTML) { - nObj.html(data.nodeName(setting, node)); - } else { - nObj.text(data.nodeName(setting, node)); - } - if (tools.apply(setting.view.showTitle, [setting.treeId, node], setting.view.showTitle)) { - var aObj = $$(node, consts.id.A, setting); - aObj.attr("title", !title ? "" : title); - } - }, - setNodeTarget: function (setting, node) { - var aObj = $$(node, consts.id.A, setting); - aObj.attr("target", view.makeNodeTarget(node)); - }, - setNodeUrl: function (setting, node) { - var aObj = $$(node, consts.id.A, setting), - url = view.makeNodeUrl(setting, node); - if (url == null || url.length == 0) { - aObj.removeAttr("href"); - } else { - aObj.attr("href", url); - } - }, - switchNode: function (setting, node) { - if (node.open || !tools.canAsync(setting, node)) { - view.expandCollapseNode(setting, node, !node.open); - } else if (setting.async.enable) { - if (!view.asyncNode(setting, node)) { - view.expandCollapseNode(setting, node, !node.open); - return; - } - } else if (node) { - view.expandCollapseNode(setting, node, !node.open); - } - } - }; - // zTree defind - $.fn.zTree = { - consts: _consts, - _z: { - tools: tools, - view: view, - event: event, - data: data - }, - getZTreeObj: function (treeId) { - var o = data.getZTreeTools(treeId); - return o ? o : null; - }, - destroy: function (treeId) { - if (!!treeId && treeId.length > 0) { - view.destroy(data.getSetting(treeId)); - } else { - for (var s in settings) { - view.destroy(settings[s]); - } - } - }, - init: function (obj, zSetting, zNodes) { - var setting = tools.clone(_setting); - $.extend(true, setting, zSetting); - setting.treeId = obj.attr("id"); - setting.treeObj = obj; - setting.treeObj.empty(); - settings[setting.treeId] = setting; - //For some older browser,(e.g., ie6) - if (typeof document.body.style.maxHeight === "undefined") { - setting.view.expandSpeed = ""; - } - data.initRoot(setting); - var root = data.getRoot(setting); - zNodes = zNodes ? tools.clone(tools.isArray(zNodes) ? zNodes : [zNodes]) : []; - if (setting.data.simpleData.enable) { - data.nodeChildren(setting, root, data.transformTozTreeFormat(setting, zNodes)); - } else { - data.nodeChildren(setting, root, zNodes); - } - - data.initCache(setting); - event.unbindTree(setting); - event.bindTree(setting); - event.unbindEvent(setting); - event.bindEvent(setting); - - var zTreeTools = { - setting: setting, - addNodes: function (parentNode, index, newNodes, isSilent) { - if (!parentNode) parentNode = null; - var isParent = data.nodeIsParent(setting, parentNode); - if (parentNode && !isParent && setting.data.keep.leaf) return null; - - var i = parseInt(index, 10); - if (isNaN(i)) { - isSilent = !!newNodes; - newNodes = index; - index = -1; - } else { - index = i; - } - if (!newNodes) return null; - - - var xNewNodes = tools.clone(tools.isArray(newNodes) ? newNodes : [newNodes]); - - function addCallback() { - view.addNodes(setting, parentNode, index, xNewNodes, (isSilent == true)); - } - - if (tools.canAsync(setting, parentNode)) { - view.asyncNode(setting, parentNode, isSilent, addCallback); - } else { - addCallback(); - } - return xNewNodes; - }, - cancelSelectedNode: function (node) { - view.cancelPreSelectedNode(setting, node); - }, - destroy: function () { - view.destroy(setting); - }, - expandAll: function (expandFlag) { - expandFlag = !!expandFlag; - view.expandCollapseSonNode(setting, null, expandFlag, true); - return expandFlag; - }, - expandNode: function (node, expandFlag, sonSign, focus, callbackFlag) { - if (!node || !data.nodeIsParent(setting, node)) return null; - if (expandFlag !== true && expandFlag !== false) { - expandFlag = !node.open; - } - callbackFlag = !!callbackFlag; - - if (callbackFlag && expandFlag && (tools.apply(setting.callback.beforeExpand, [setting.treeId, node], true) == false)) { - return null; - } else if (callbackFlag && !expandFlag && (tools.apply(setting.callback.beforeCollapse, [setting.treeId, node], true) == false)) { - return null; - } - if (expandFlag && node.parentTId) { - view.expandCollapseParentNode(setting, node.getParentNode(), expandFlag, false); - } - if (expandFlag === node.open && !sonSign) { - return null; - } - - data.getRoot(setting).expandTriggerFlag = callbackFlag; - if (!tools.canAsync(setting, node) && sonSign) { - view.expandCollapseSonNode(setting, node, expandFlag, true, showNodeFocus); - } else { - node.open = !expandFlag; - view.switchNode(this.setting, node); - showNodeFocus(); - } - return expandFlag; - - function showNodeFocus() { - var a = $$(node, setting).get(0); - if (a && focus !== false) { - view.scrollIntoView(setting, a); - } - } - }, - getNodes: function () { - return data.getNodes(setting); - }, - getNodeByParam: function (key, value, parentNode) { - if (!key) return null; - return data.getNodeByParam(setting, parentNode ? data.nodeChildren(setting, parentNode) : data.getNodes(setting), key, value); - }, - getNodeByTId: function (tId) { - return data.getNodeCache(setting, tId); - }, - getNodesByParam: function (key, value, parentNode) { - if (!key) return null; - return data.getNodesByParam(setting, parentNode ? data.nodeChildren(setting, parentNode) : data.getNodes(setting), key, value); - }, - getNodesByParamFuzzy: function (key, value, parentNode) { - if (!key) return null; - return data.getNodesByParamFuzzy(setting, parentNode ? data.nodeChildren(setting, parentNode) : data.getNodes(setting), key, value); - }, - getNodesByFilter: function (filter, isSingle, parentNode, invokeParam) { - isSingle = !!isSingle; - if (!filter || (typeof filter != "function")) return (isSingle ? null : []); - return data.getNodesByFilter(setting, parentNode ? data.nodeChildren(setting, parentNode) : data.getNodes(setting), filter, isSingle, invokeParam); - }, - getNodeIndex: function (node) { - if (!node) return null; - var parentNode = (node.parentTId) ? node.getParentNode() : data.getRoot(setting); - var children = data.nodeChildren(setting, parentNode); - for (var i = 0, l = children.length; i < l; i++) { - if (children[i] == node) return i; - } - return -1; - }, - getSelectedNodes: function () { - var r = [], list = data.getRoot(setting).curSelectedList; - for (var i = 0, l = list.length; i < l; i++) { - r.push(list[i]); - } - return r; - }, - isSelectedNode: function (node) { - return data.isSelectedNode(setting, node); - }, - reAsyncChildNodesPromise: function (parentNode, reloadType, isSilent) { - var promise = new Promise(function (resolve, reject) { - try { - zTreeTools.reAsyncChildNodes(parentNode, reloadType, isSilent, function () { - resolve(parentNode); - }); - } catch (e) { - reject(e); - } - }); - return promise; - }, - reAsyncChildNodes: function (parentNode, reloadType, isSilent, callback) { - if (!this.setting.async.enable) return; - var isRoot = !parentNode; - if (isRoot) { - parentNode = data.getRoot(setting); - } - if (reloadType == "refresh") { - var children = data.nodeChildren(setting, parentNode); - for (var i = 0, l = children ? children.length : 0; i < l; i++) { - data.removeNodeCache(setting, children[i]); - } - data.removeSelectedNode(setting); - data.nodeChildren(setting, parentNode, []); - if (isRoot) { - this.setting.treeObj.empty(); - } else { - var ulObj = $$(parentNode, consts.id.UL, setting); - ulObj.empty(); - } - } - view.asyncNode(this.setting, isRoot ? null : parentNode, !!isSilent, callback); - }, - refresh: function () { - this.setting.treeObj.empty(); - var root = data.getRoot(setting), - nodes = data.nodeChildren(setting, root); - data.initRoot(setting); - data.nodeChildren(setting, root, nodes); - data.initCache(setting); - view.createNodes(setting, 0, data.nodeChildren(setting, root), null, -1); - }, - removeChildNodes: function (node) { - if (!node) return null; - var nodes = data.nodeChildren(setting, node); - view.removeChildNodes(setting, node); - return nodes ? nodes : null; - }, - removeNode: function (node, callbackFlag) { - if (!node) return; - callbackFlag = !!callbackFlag; - if (callbackFlag && tools.apply(setting.callback.beforeRemove, [setting.treeId, node], true) == false) return; - view.removeNode(setting, node); - if (callbackFlag) { - this.setting.treeObj.trigger(consts.event.REMOVE, [setting.treeId, node]); - } - }, - selectNode: function (node, addFlag, isSilent) { - if (!node) return; - if (tools.uCanDo(setting)) { - addFlag = setting.view.selectedMulti && addFlag; - if (node.parentTId) { - view.expandCollapseParentNode(setting, node.getParentNode(), true, false, showNodeFocus); - } else if (!isSilent) { - try { - $$(node, setting).focus().blur(); - } catch (e) { - } - } - view.selectNode(setting, node, addFlag); - } - - function showNodeFocus() { - if (isSilent) { - return; - } - var a = $$(node, setting).get(0); - view.scrollIntoView(setting, a); - } - }, - transformTozTreeNodes: function (simpleNodes) { - return data.transformTozTreeFormat(setting, simpleNodes); - }, - transformToArray: function (nodes) { - return data.transformToArrayFormat(setting, nodes); - }, - updateNode: function (node, checkTypeFlag) { - if (!node) return; - var nObj = $$(node, setting); - if (nObj.get(0) && tools.uCanDo(setting)) { - view.setNodeName(setting, node); - view.setNodeTarget(setting, node); - view.setNodeUrl(setting, node); - view.setNodeLineIcos(setting, node); - view.setNodeFontCss(setting, node); - } - } - }; - root.treeTools = zTreeTools; - data.setZTreeTools(setting, zTreeTools); - var children = data.nodeChildren(setting, root); - if (children && children.length > 0) { - view.createNodes(setting, 0, children, null, -1); - } else if (setting.async.enable && setting.async.url && setting.async.url !== '') { - view.asyncNode(setting); - } - return zTreeTools; - } - }; - - var zt = $.fn.zTree, - $$ = tools.$, - consts = zt.consts; -})(jQuery); -/* - * JQuery zTree excheck v3.5.40 - * http://treejs.cn/ - * - * Copyright (c) 2010 Hunter.z - * - * Licensed same as jquery - MIT License - * http://www.opensource.org/licenses/mit-license.php - * - * email: hunter.z@263.net - * Date: 2019-01-18 - */ -(function ($) { - //default consts of excheck - var _consts = { - event: { - CHECK: "ztree_check" - }, - id: { - CHECK: "_check" - }, - checkbox: { - STYLE: "checkbox", - DEFAULT: "chk", - DISABLED: "disable", - FALSE: "false", - TRUE: "true", - FULL: "full", - PART: "part", - FOCUS: "focus" - }, - radio: { - STYLE: "radio", - TYPE_ALL: "all", - TYPE_LEVEL: "level" - } - }, - //default setting of excheck - _setting = { - check: { - enable: false, - autoCheckTrigger: false, - chkStyle: _consts.checkbox.STYLE, - nocheckInherit: false, - chkDisabledInherit: false, - radioType: _consts.radio.TYPE_LEVEL, - chkboxType: { - "Y": "ps", - "N": "ps" - } - }, - data: { - key: { - checked: "checked" - } - }, - callback: { - beforeCheck: null, - onCheck: null - } - }, - //default root of excheck - _initRoot = function (setting) { - var r = data.getRoot(setting); - r.radioCheckedList = []; - }, - //default cache of excheck - _initCache = function (treeId) { - }, - //default bind event of excheck - _bindEvent = function (setting) { - var o = setting.treeObj, - c = consts.event; - o.bind(c.CHECK, function (event, srcEvent, treeId, node) { - event.srcEvent = srcEvent; - tools.apply(setting.callback.onCheck, [event, treeId, node]); - }); - }, - _unbindEvent = function (setting) { - var o = setting.treeObj, - c = consts.event; - o.unbind(c.CHECK); - }, - //default event proxy of excheck - _eventProxy = function (e) { - var target = e.target, - setting = data.getSetting(e.data.treeId), - tId = "", node = null, - nodeEventType = "", treeEventType = "", - nodeEventCallback = null, treeEventCallback = null; - - if (tools.eqs(e.type, "mouseover")) { - if (setting.check.enable && tools.eqs(target.tagName, "span") && target.getAttribute("treeNode" + consts.id.CHECK) !== null) { - tId = tools.getNodeMainDom(target).id; - nodeEventType = "mouseoverCheck"; - } - } else if (tools.eqs(e.type, "mouseout")) { - if (setting.check.enable && tools.eqs(target.tagName, "span") && target.getAttribute("treeNode" + consts.id.CHECK) !== null) { - tId = tools.getNodeMainDom(target).id; - nodeEventType = "mouseoutCheck"; - } - } else if (tools.eqs(e.type, "click")) { - if (setting.check.enable && tools.eqs(target.tagName, "span") && target.getAttribute("treeNode" + consts.id.CHECK) !== null) { - tId = tools.getNodeMainDom(target).id; - nodeEventType = "checkNode"; - } - } - if (tId.length > 0) { - node = data.getNodeCache(setting, tId); - switch (nodeEventType) { - case "checkNode" : - nodeEventCallback = _handler.onCheckNode; - break; - case "mouseoverCheck" : - nodeEventCallback = _handler.onMouseoverCheck; - break; - case "mouseoutCheck" : - nodeEventCallback = _handler.onMouseoutCheck; - break; - } - } - var proxyResult = { - stop: nodeEventType === "checkNode", - node: node, - nodeEventType: nodeEventType, - nodeEventCallback: nodeEventCallback, - treeEventType: treeEventType, - treeEventCallback: treeEventCallback - }; - return proxyResult - }, - //default init node of excheck - _initNode = function (setting, level, n, parentNode, isFirstNode, isLastNode, openFlag) { - if (!n) return; - var checked = data.nodeChecked(setting, n); - n.checkedOld = checked; - if (typeof n.nocheck == "string") n.nocheck = tools.eqs(n.nocheck, "true"); - n.nocheck = !!n.nocheck || (setting.check.nocheckInherit && parentNode && !!parentNode.nocheck); - if (typeof n.chkDisabled == "string") n.chkDisabled = tools.eqs(n.chkDisabled, "true"); - n.chkDisabled = !!n.chkDisabled || (setting.check.chkDisabledInherit && parentNode && !!parentNode.chkDisabled); - if (typeof n.halfCheck == "string") n.halfCheck = tools.eqs(n.halfCheck, "true"); - n.halfCheck = !!n.halfCheck; - n.check_Child_State = -1; - n.check_Focus = false; - n.getCheckStatus = function () { - return data.getCheckStatus(setting, n); - }; - - if (setting.check.chkStyle == consts.radio.STYLE && setting.check.radioType == consts.radio.TYPE_ALL && checked) { - var r = data.getRoot(setting); - r.radioCheckedList.push(n); - } - }, - //add dom for check - _beforeA = function (setting, node, html) { - if (setting.check.enable) { - data.makeChkFlag(setting, node); - html.push(""); - } - }, - //update zTreeObj, add method of check - _zTreeTools = function (setting, zTreeTools) { - zTreeTools.checkNode = function (node, checked, checkTypeFlag, callbackFlag) { - var nodeChecked = data.nodeChecked(setting, node); - if (node.chkDisabled === true) return; - if (checked !== true && checked !== false) { - checked = !nodeChecked; - } - callbackFlag = !!callbackFlag; - - if (nodeChecked === checked && !checkTypeFlag) { - return; - } else if (callbackFlag && tools.apply(this.setting.callback.beforeCheck, [this.setting.treeId, node], true) == false) { - return; - } - if (tools.uCanDo(this.setting) && this.setting.check.enable && node.nocheck !== true) { - data.nodeChecked(setting, node, checked); - var checkObj = $$(node, consts.id.CHECK, this.setting); - if (checkTypeFlag || this.setting.check.chkStyle === consts.radio.STYLE) view.checkNodeRelation(this.setting, node); - view.setChkClass(this.setting, checkObj, node); - view.repairParentChkClassWithSelf(this.setting, node); - if (callbackFlag) { - this.setting.treeObj.trigger(consts.event.CHECK, [null, this.setting.treeId, node]); - } - } - } - - zTreeTools.checkAllNodes = function (checked) { - view.repairAllChk(this.setting, !!checked); - } - - zTreeTools.getCheckedNodes = function (checked) { - var checked = (checked !== false); - var children = data.nodeChildren(setting, data.getRoot(this.setting)); - return data.getTreeCheckedNodes(this.setting, children, checked); - } - - zTreeTools.getChangeCheckedNodes = function () { - var children = data.nodeChildren(setting, data.getRoot(this.setting)); - return data.getTreeChangeCheckedNodes(this.setting, children); - } - - zTreeTools.setChkDisabled = function (node, disabled, inheritParent, inheritChildren) { - disabled = !!disabled; - inheritParent = !!inheritParent; - inheritChildren = !!inheritChildren; - view.repairSonChkDisabled(this.setting, node, disabled, inheritChildren); - view.repairParentChkDisabled(this.setting, node.getParentNode(), disabled, inheritParent); - } - - var _updateNode = zTreeTools.updateNode; - zTreeTools.updateNode = function (node, checkTypeFlag) { - if (_updateNode) _updateNode.apply(zTreeTools, arguments); - if (!node || !this.setting.check.enable) return; - var nObj = $$(node, this.setting); - if (nObj.get(0) && tools.uCanDo(this.setting)) { - var checkObj = $$(node, consts.id.CHECK, this.setting); - if (checkTypeFlag == true || this.setting.check.chkStyle === consts.radio.STYLE) view.checkNodeRelation(this.setting, node); - view.setChkClass(this.setting, checkObj, node); - view.repairParentChkClassWithSelf(this.setting, node); - } - } - }, - //method of operate data - _data = { - getRadioCheckedList: function (setting) { - var checkedList = data.getRoot(setting).radioCheckedList; - for (var i = 0, j = checkedList.length; i < j; i++) { - if (!data.getNodeCache(setting, checkedList[i].tId)) { - checkedList.splice(i, 1); - i--; - j--; - } - } - return checkedList; - }, - getCheckStatus: function (setting, node) { - if (!setting.check.enable || node.nocheck || node.chkDisabled) return null; - var checked = data.nodeChecked(setting, node), - r = { - checked: checked, - half: node.halfCheck ? node.halfCheck : (setting.check.chkStyle == consts.radio.STYLE ? (node.check_Child_State === 2) : (checked ? (node.check_Child_State > -1 && node.check_Child_State < 2) : (node.check_Child_State > 0))) - }; - return r; - }, - getTreeCheckedNodes: function (setting, nodes, checked, results) { - if (!nodes) return []; - var onlyOne = (checked && setting.check.chkStyle == consts.radio.STYLE && setting.check.radioType == consts.radio.TYPE_ALL); - results = !results ? [] : results; - for (var i = 0, l = nodes.length; i < l; i++) { - var node = nodes[i]; - var children = data.nodeChildren(setting, node); - var nodeChecked = data.nodeChecked(setting, node); - if (node.nocheck !== true && node.chkDisabled !== true && nodeChecked == checked) { - results.push(node); - if (onlyOne) { - break; - } - } - data.getTreeCheckedNodes(setting, children, checked, results); - if (onlyOne && results.length > 0) { - break; - } - } - return results; - }, - getTreeChangeCheckedNodes: function (setting, nodes, results) { - if (!nodes) return []; - results = !results ? [] : results; - for (var i = 0, l = nodes.length; i < l; i++) { - var node = nodes[i]; - var children = data.nodeChildren(setting, node); - var nodeChecked = data.nodeChecked(setting, node); - if (node.nocheck !== true && node.chkDisabled !== true && nodeChecked != node.checkedOld) { - results.push(node); - } - data.getTreeChangeCheckedNodes(setting, children, results); - } - return results; - }, - makeChkFlag: function (setting, node) { - if (!node) return; - var chkFlag = -1; - var children = data.nodeChildren(setting, node); - if (children) { - for (var i = 0, l = children.length; i < l; i++) { - var cNode = children[i]; - var nodeChecked = data.nodeChecked(setting, cNode); - var tmp = -1; - if (setting.check.chkStyle == consts.radio.STYLE) { - if (cNode.nocheck === true || cNode.chkDisabled === true) { - tmp = cNode.check_Child_State; - } else if (cNode.halfCheck === true) { - tmp = 2; - } else if (nodeChecked) { - tmp = 2; - } else { - tmp = cNode.check_Child_State > 0 ? 2 : 0; - } - if (tmp == 2) { - chkFlag = 2; - break; - } else if (tmp == 0) { - chkFlag = 0; - } - } else if (setting.check.chkStyle == consts.checkbox.STYLE) { - if (cNode.nocheck === true || cNode.chkDisabled === true) { - tmp = cNode.check_Child_State; - } else if (cNode.halfCheck === true) { - tmp = 1; - } else if (nodeChecked) { - tmp = (cNode.check_Child_State === -1 || cNode.check_Child_State === 2) ? 2 : 1; - } else { - tmp = (cNode.check_Child_State > 0) ? 1 : 0; - } - if (tmp === 1) { - chkFlag = 1; - break; - } else if (tmp === 2 && chkFlag > -1 && i > 0 && tmp !== chkFlag) { - chkFlag = 1; - break; - } else if (chkFlag === 2 && tmp > -1 && tmp < 2) { - chkFlag = 1; - break; - } else if (tmp > -1) { - chkFlag = tmp; - } - } - } - } - node.check_Child_State = chkFlag; - } - }, - //method of event proxy - _event = {}, - //method of event handler - _handler = { - onCheckNode: function (event, node) { - if (node.chkDisabled === true) return false; - var setting = data.getSetting(event.data.treeId); - if (tools.apply(setting.callback.beforeCheck, [setting.treeId, node], true) == false) return true; - var nodeChecked = data.nodeChecked(setting, node); - data.nodeChecked(setting, node, !nodeChecked); - view.checkNodeRelation(setting, node); - var checkObj = $$(node, consts.id.CHECK, setting); - view.setChkClass(setting, checkObj, node); - view.repairParentChkClassWithSelf(setting, node); - setting.treeObj.trigger(consts.event.CHECK, [event, setting.treeId, node]); - return true; - }, - onMouseoverCheck: function (event, node) { - if (node.chkDisabled === true) return false; - var setting = data.getSetting(event.data.treeId), - checkObj = $$(node, consts.id.CHECK, setting); - node.check_Focus = true; - view.setChkClass(setting, checkObj, node); - return true; - }, - onMouseoutCheck: function (event, node) { - if (node.chkDisabled === true) return false; - var setting = data.getSetting(event.data.treeId), - checkObj = $$(node, consts.id.CHECK, setting); - node.check_Focus = false; - view.setChkClass(setting, checkObj, node); - return true; - } - }, - //method of tools for zTree - _tools = {}, - //method of operate ztree dom - _view = { - checkNodeRelation: function (setting, node) { - var pNode, i, l, - r = consts.radio; - var nodeChecked = data.nodeChecked(setting, node); - if (setting.check.chkStyle == r.STYLE) { - var checkedList = data.getRadioCheckedList(setting); - if (nodeChecked) { - if (setting.check.radioType == r.TYPE_ALL) { - for (i = checkedList.length - 1; i >= 0; i--) { - pNode = checkedList[i]; - var pNodeChecked = data.nodeChecked(setting, pNode); - if (pNodeChecked && pNode != node) { - data.nodeChecked(setting, pNode, false); - checkedList.splice(i, 1); - - view.setChkClass(setting, $$(pNode, consts.id.CHECK, setting), pNode); - if (pNode.parentTId != node.parentTId) { - view.repairParentChkClassWithSelf(setting, pNode); - } - } - } - checkedList.push(node); - } else { - var parentNode = (node.parentTId) ? node.getParentNode() : data.getRoot(setting); - var children = data.nodeChildren(setting, parentNode); - for (i = 0, l = children.length; i < l; i++) { - pNode = children[i]; - var pNodeChecked = data.nodeChecked(setting, pNode); - if (pNodeChecked && pNode != node) { - data.nodeChecked(setting, pNode, false); - view.setChkClass(setting, $$(pNode, consts.id.CHECK, setting), pNode); - } - } - } - } else if (setting.check.radioType == r.TYPE_ALL) { - for (i = 0, l = checkedList.length; i < l; i++) { - if (node == checkedList[i]) { - checkedList.splice(i, 1); - break; - } - } - } - - } else { - var children = data.nodeChildren(setting, node); - if (nodeChecked && (!children || children.length == 0 || setting.check.chkboxType.Y.indexOf("s") > -1)) { - view.setSonNodeCheckBox(setting, node, true); - } - if (!nodeChecked && (!children || children.length == 0 || setting.check.chkboxType.N.indexOf("s") > -1)) { - view.setSonNodeCheckBox(setting, node, false); - } - if (nodeChecked && setting.check.chkboxType.Y.indexOf("p") > -1) { - view.setParentNodeCheckBox(setting, node, true); - } - if (!nodeChecked && setting.check.chkboxType.N.indexOf("p") > -1) { - view.setParentNodeCheckBox(setting, node, false); - } - } - }, - makeChkClass: function (setting, node) { - var c = consts.checkbox, r = consts.radio, - fullStyle = ""; - var nodeChecked = data.nodeChecked(setting, node); - if (node.chkDisabled === true) { - fullStyle = c.DISABLED; - } else if (node.halfCheck) { - fullStyle = c.PART; - } else if (setting.check.chkStyle == r.STYLE) { - fullStyle = (node.check_Child_State < 1) ? c.FULL : c.PART; - } else { - fullStyle = nodeChecked ? ((node.check_Child_State === 2 || node.check_Child_State === -1) ? c.FULL : c.PART) : ((node.check_Child_State < 1) ? c.FULL : c.PART); - } - var chkName = setting.check.chkStyle + "_" + (nodeChecked ? c.TRUE : c.FALSE) + "_" + fullStyle; - chkName = (node.check_Focus && node.chkDisabled !== true) ? chkName + "_" + c.FOCUS : chkName; - return consts.className.BUTTON + " " + c.DEFAULT + " " + chkName; - }, - repairAllChk: function (setting, checked) { - if (setting.check.enable && setting.check.chkStyle === consts.checkbox.STYLE) { - var root = data.getRoot(setting); - var children = data.nodeChildren(setting, root); - for (var i = 0, l = children.length; i < l; i++) { - var node = children[i]; - if (node.nocheck !== true && node.chkDisabled !== true) { - data.nodeChecked(setting, node, checked); - } - view.setSonNodeCheckBox(setting, node, checked); - } - } - }, - repairChkClass: function (setting, node) { - if (!node) return; - data.makeChkFlag(setting, node); - if (node.nocheck !== true) { - var checkObj = $$(node, consts.id.CHECK, setting); - view.setChkClass(setting, checkObj, node); - } - }, - repairParentChkClass: function (setting, node) { - if (!node || !node.parentTId) return; - var pNode = node.getParentNode(); - view.repairChkClass(setting, pNode); - view.repairParentChkClass(setting, pNode); - }, - repairParentChkClassWithSelf: function (setting, node) { - if (!node) return; - var children = data.nodeChildren(setting, node); - if (children && children.length > 0) { - view.repairParentChkClass(setting, children[0]); - } else { - view.repairParentChkClass(setting, node); - } - }, - repairSonChkDisabled: function (setting, node, chkDisabled, inherit) { - if (!node) return; - if (node.chkDisabled != chkDisabled) { - node.chkDisabled = chkDisabled; - } - view.repairChkClass(setting, node); - var children = data.nodeChildren(setting, node); - if (children && inherit) { - for (var i = 0, l = children.length; i < l; i++) { - var sNode = children[i]; - view.repairSonChkDisabled(setting, sNode, chkDisabled, inherit); - } - } - }, - repairParentChkDisabled: function (setting, node, chkDisabled, inherit) { - if (!node) return; - if (node.chkDisabled != chkDisabled && inherit) { - node.chkDisabled = chkDisabled; - } - view.repairChkClass(setting, node); - view.repairParentChkDisabled(setting, node.getParentNode(), chkDisabled, inherit); - }, - setChkClass: function (setting, obj, node) { - if (!obj) return; - if (node.nocheck === true) { - obj.hide(); - } else { - obj.show(); - } - obj.attr('class', view.makeChkClass(setting, node)); - }, - setParentNodeCheckBox: function (setting, node, value, srcNode) { - var checkObj = $$(node, consts.id.CHECK, setting); - if (!srcNode) srcNode = node; - data.makeChkFlag(setting, node); - if (node.nocheck !== true && node.chkDisabled !== true) { - data.nodeChecked(setting, node, value); - view.setChkClass(setting, checkObj, node); - if (setting.check.autoCheckTrigger && node != srcNode) { - setting.treeObj.trigger(consts.event.CHECK, [null, setting.treeId, node]); - } - } - if (node.parentTId) { - var pSign = true; - if (!value) { - var pNodes = data.nodeChildren(setting, node.getParentNode()); - for (var i = 0, l = pNodes.length; i < l; i++) { - var pNode = pNodes[i]; - var nodeChecked = data.nodeChecked(setting, pNode); - if ((pNode.nocheck !== true && pNode.chkDisabled !== true && nodeChecked) - || ((pNode.nocheck === true || pNode.chkDisabled === true) && pNode.check_Child_State > 0)) { - pSign = false; - break; - } - } - } - if (pSign) { - view.setParentNodeCheckBox(setting, node.getParentNode(), value, srcNode); - } - } - }, - setSonNodeCheckBox: function (setting, node, value, srcNode) { - if (!node) return; - var checkObj = $$(node, consts.id.CHECK, setting); - if (!srcNode) srcNode = node; - - var hasDisable = false; - var children = data.nodeChildren(setting, node); - if (children) { - for (var i = 0, l = children.length; i < l; i++) { - var sNode = children[i]; - view.setSonNodeCheckBox(setting, sNode, value, srcNode); - if (sNode.chkDisabled === true) hasDisable = true; - } - } - - if (node != data.getRoot(setting) && node.chkDisabled !== true) { - if (hasDisable && node.nocheck !== true) { - data.makeChkFlag(setting, node); - } - if (node.nocheck !== true && node.chkDisabled !== true) { - data.nodeChecked(setting, node, value); - if (!hasDisable) node.check_Child_State = (children && children.length > 0) ? (value ? 2 : 0) : -1; - } else { - node.check_Child_State = -1; - } - view.setChkClass(setting, checkObj, node); - if (setting.check.autoCheckTrigger && node != srcNode && node.nocheck !== true && node.chkDisabled !== true) { - setting.treeObj.trigger(consts.event.CHECK, [null, setting.treeId, node]); - } - } - - } - }, - - _z = { - tools: _tools, - view: _view, - event: _event, - data: _data - }; - $.extend(true, $.fn.zTree.consts, _consts); - $.extend(true, $.fn.zTree._z, _z); - - var zt = $.fn.zTree, - tools = zt._z.tools, - consts = zt.consts, - view = zt._z.view, - data = zt._z.data, - event = zt._z.event, - $$ = tools.$; - - data.nodeChecked = function (setting, node, newChecked) { - if (!node) { - return false; - } - var key = setting.data.key.checked; - if (typeof newChecked !== 'undefined') { - if (typeof newChecked === "string") { - newChecked = tools.eqs(newChecked, "true"); - } - newChecked = !!newChecked; - node[key] = newChecked; - } else if (typeof node[key] == "string"){ - node[key] = tools.eqs(node[key], "true"); - } else { - node[key] = !!node[key]; - } - return node[key]; - }; - - data.exSetting(_setting); - data.addInitBind(_bindEvent); - data.addInitUnBind(_unbindEvent); - data.addInitCache(_initCache); - data.addInitNode(_initNode); - data.addInitProxy(_eventProxy, true); - data.addInitRoot(_initRoot); - data.addBeforeA(_beforeA); - data.addZTreeTools(_zTreeTools); - - var _createNodes = view.createNodes; - view.createNodes = function (setting, level, nodes, parentNode, index) { - if (_createNodes) _createNodes.apply(view, arguments); - if (!nodes) return; - view.repairParentChkClassWithSelf(setting, parentNode); - } - var _removeNode = view.removeNode; - view.removeNode = function (setting, node) { - var parentNode = node.getParentNode(); - if (_removeNode) _removeNode.apply(view, arguments); - if (!node || !parentNode) return; - view.repairChkClass(setting, parentNode); - view.repairParentChkClass(setting, parentNode); - } - - var _appendNodes = view.appendNodes; - view.appendNodes = function (setting, level, nodes, parentNode, index, initFlag, openFlag) { - var html = ""; - if (_appendNodes) { - html = _appendNodes.apply(view, arguments); - } - if (parentNode) { - data.makeChkFlag(setting, parentNode); - } - return html; - } -})(jQuery); -/* - * JQuery zTree exedit v3.5.40 - * http://treejs.cn/ - * - * Copyright (c) 2010 Hunter.z - * - * Licensed same as jquery - MIT License - * http://www.opensource.org/licenses/mit-license.php - * - * email: hunter.z@263.net - * Date: 2019-01-18 - */ -(function ($) { - //default consts of exedit - var _consts = { - event: { - DRAG: "ztree_drag", - DROP: "ztree_drop", - RENAME: "ztree_rename", - DRAGMOVE: "ztree_dragmove" - }, - id: { - EDIT: "_edit", - INPUT: "_input", - REMOVE: "_remove" - }, - move: { - TYPE_INNER: "inner", - TYPE_PREV: "prev", - TYPE_NEXT: "next" - }, - node: { - CURSELECTED_EDIT: "curSelectedNode_Edit", - TMPTARGET_TREE: "tmpTargetzTree", - TMPTARGET_NODE: "tmpTargetNode" - } - }, - //default setting of exedit - _setting = { - edit: { - enable: false, - editNameSelectAll: false, - showRemoveBtn: true, - showRenameBtn: true, - removeTitle: "remove", - renameTitle: "rename", - drag: { - autoExpandTrigger: false, - isCopy: true, - isMove: true, - prev: true, - next: true, - inner: true, - minMoveSize: 5, - borderMax: 10, - borderMin: -5, - maxShowNodeNum: 5, - autoOpenTime: 500 - } - }, - view: { - addHoverDom: null, - removeHoverDom: null - }, - callback: { - beforeDrag: null, - beforeDragOpen: null, - beforeDrop: null, - beforeEditName: null, - beforeRename: null, - onDrag: null, - onDragMove: null, - onDrop: null, - onRename: null - } - }, - //default root of exedit - _initRoot = function (setting) { - var r = data.getRoot(setting), rs = data.getRoots(); - r.curEditNode = null; - r.curEditInput = null; - r.curHoverNode = null; - r.dragFlag = 0; - r.dragNodeShowBefore = []; - r.dragMaskList = new Array(); - rs.showHoverDom = true; - }, - //default cache of exedit - _initCache = function (treeId) { - }, - //default bind event of exedit - _bindEvent = function (setting) { - var o = setting.treeObj; - var c = consts.event; - o.bind(c.RENAME, function (event, treeId, treeNode, isCancel) { - tools.apply(setting.callback.onRename, [event, treeId, treeNode, isCancel]); - }); - - o.bind(c.DRAG, function (event, srcEvent, treeId, treeNodes) { - tools.apply(setting.callback.onDrag, [srcEvent, treeId, treeNodes]); - }); - - o.bind(c.DRAGMOVE, function (event, srcEvent, treeId, treeNodes) { - tools.apply(setting.callback.onDragMove, [srcEvent, treeId, treeNodes]); - }); - - o.bind(c.DROP, function (event, srcEvent, treeId, treeNodes, targetNode, moveType, isCopy) { - tools.apply(setting.callback.onDrop, [srcEvent, treeId, treeNodes, targetNode, moveType, isCopy]); - }); - }, - _unbindEvent = function (setting) { - var o = setting.treeObj; - var c = consts.event; - o.unbind(c.RENAME); - o.unbind(c.DRAG); - o.unbind(c.DRAGMOVE); - o.unbind(c.DROP); - }, - //default event proxy of exedit - _eventProxy = function (e) { - var target = e.target, - setting = data.getSetting(e.data.treeId), - relatedTarget = e.relatedTarget, - tId = "", node = null, - nodeEventType = "", treeEventType = "", - nodeEventCallback = null, treeEventCallback = null, - tmp = null; - - if (tools.eqs(e.type, "mouseover")) { - tmp = tools.getMDom(setting, target, [{tagName: "a", attrName: "treeNode" + consts.id.A}]); - if (tmp) { - tId = tools.getNodeMainDom(tmp).id; - nodeEventType = "hoverOverNode"; - } - } else if (tools.eqs(e.type, "mouseout")) { - tmp = tools.getMDom(setting, relatedTarget, [{tagName: "a", attrName: "treeNode" + consts.id.A}]); - if (!tmp) { - tId = "remove"; - nodeEventType = "hoverOutNode"; - } - } else if (tools.eqs(e.type, "mousedown")) { - tmp = tools.getMDom(setting, target, [{tagName: "a", attrName: "treeNode" + consts.id.A}]); - if (tmp) { - tId = tools.getNodeMainDom(tmp).id; - nodeEventType = "mousedownNode"; - } - } - if (tId.length > 0) { - node = data.getNodeCache(setting, tId); - switch (nodeEventType) { - case "mousedownNode" : - nodeEventCallback = _handler.onMousedownNode; - break; - case "hoverOverNode" : - nodeEventCallback = _handler.onHoverOverNode; - break; - case "hoverOutNode" : - nodeEventCallback = _handler.onHoverOutNode; - break; - } - } - var proxyResult = { - stop: false, - node: node, - nodeEventType: nodeEventType, - nodeEventCallback: nodeEventCallback, - treeEventType: treeEventType, - treeEventCallback: treeEventCallback - }; - return proxyResult - }, - //default init node of exedit - _initNode = function (setting, level, n, parentNode, isFirstNode, isLastNode, openFlag) { - if (!n) return; - n.isHover = false; - n.editNameFlag = false; - }, - //update zTreeObj, add method of edit - _zTreeTools = function (setting, zTreeTools) { - zTreeTools.cancelEditName = function (newName) { - var root = data.getRoot(this.setting); - if (!root.curEditNode) return; - view.cancelCurEditNode(this.setting, newName ? newName : null, true); - } - zTreeTools.copyNode = function (targetNode, node, moveType, isSilent) { - if (!node) return null; - var isParent = data.nodeIsParent(setting, targetNode); - if (targetNode && !isParent && this.setting.data.keep.leaf && moveType === consts.move.TYPE_INNER) return null; - var _this = this, - newNode = tools.clone(node); - if (!targetNode) { - targetNode = null; - moveType = consts.move.TYPE_INNER; - } - if (moveType == consts.move.TYPE_INNER) { - function copyCallback() { - view.addNodes(_this.setting, targetNode, -1, [newNode], isSilent); - } - - if (tools.canAsync(this.setting, targetNode)) { - view.asyncNode(this.setting, targetNode, isSilent, copyCallback); - } else { - copyCallback(); - } - } else { - view.addNodes(this.setting, targetNode.parentNode, -1, [newNode], isSilent); - view.moveNode(this.setting, targetNode, newNode, moveType, false, isSilent); - } - return newNode; - } - zTreeTools.editName = function (node) { - if (!node || !node.tId || node !== data.getNodeCache(this.setting, node.tId)) return; - if (node.parentTId) view.expandCollapseParentNode(this.setting, node.getParentNode(), true); - view.editNode(this.setting, node) - } - zTreeTools.moveNode = function (targetNode, node, moveType, isSilent) { - if (!node) return node; - var isParent = data.nodeIsParent(setting, targetNode); - if (targetNode && !isParent && this.setting.data.keep.leaf && moveType === consts.move.TYPE_INNER) { - return null; - } else if (targetNode && ((node.parentTId == targetNode.tId && moveType == consts.move.TYPE_INNER) || $$(node, this.setting).find("#" + targetNode.tId).length > 0)) { - return null; - } else if (!targetNode) { - targetNode = null; - } - var _this = this; - - function moveCallback() { - view.moveNode(_this.setting, targetNode, node, moveType, false, isSilent); - } - - if (tools.canAsync(this.setting, targetNode) && moveType === consts.move.TYPE_INNER) { - view.asyncNode(this.setting, targetNode, isSilent, moveCallback); - } else { - moveCallback(); - } - return node; - } - zTreeTools.setEditable = function (editable) { - this.setting.edit.enable = editable; - return this.refresh(); - } - }, - //method of operate data - _data = { - setSonNodeLevel: function (setting, parentNode, node) { - if (!node) return; - var children = data.nodeChildren(setting, node); - node.level = (parentNode) ? parentNode.level + 1 : 0; - if (!children) return; - for (var i = 0, l = children.length; i < l; i++) { - if (children[i]) data.setSonNodeLevel(setting, node, children[i]); - } - } - }, - //method of event proxy - _event = {}, - //method of event handler - _handler = { - onHoverOverNode: function (event, node) { - var setting = data.getSetting(event.data.treeId), - root = data.getRoot(setting); - if (root.curHoverNode != node) { - _handler.onHoverOutNode(event); - } - root.curHoverNode = node; - view.addHoverDom(setting, node); - }, - onHoverOutNode: function (event, node) { - var setting = data.getSetting(event.data.treeId), - root = data.getRoot(setting); - if (root.curHoverNode && !data.isSelectedNode(setting, root.curHoverNode)) { - view.removeTreeDom(setting, root.curHoverNode); - root.curHoverNode = null; - } - }, - onMousedownNode: function (eventMouseDown, _node) { - var i, l, - setting = data.getSetting(eventMouseDown.data.treeId), - root = data.getRoot(setting), roots = data.getRoots(); - //right click can't drag & drop - if (eventMouseDown.button == 2 || !setting.edit.enable || (!setting.edit.drag.isCopy && !setting.edit.drag.isMove)) return true; - - //input of edit node name can't drag & drop - var target = eventMouseDown.target, - _nodes = data.getRoot(setting).curSelectedList, - nodes = []; - if (!data.isSelectedNode(setting, _node)) { - nodes = [_node]; - } else { - for (i = 0, l = _nodes.length; i < l; i++) { - if (_nodes[i].editNameFlag && tools.eqs(target.tagName, "input") && target.getAttribute("treeNode" + consts.id.INPUT) !== null) { - return true; - } - nodes.push(_nodes[i]); - if (nodes[0].parentTId !== _nodes[i].parentTId) { - nodes = [_node]; - break; - } - } - } - - view.editNodeBlur = true; - view.cancelCurEditNode(setting); - - var doc = $(setting.treeObj.get(0).ownerDocument), - body = $(setting.treeObj.get(0).ownerDocument.body), curNode, tmpArrow, tmpTarget, - isOtherTree = false, - targetSetting = setting, - sourceSetting = setting, - preNode, nextNode, - preTmpTargetNodeId = null, - preTmpMoveType = null, - tmpTargetNodeId = null, - moveType = consts.move.TYPE_INNER, - mouseDownX = eventMouseDown.clientX, - mouseDownY = eventMouseDown.clientY, - startTime = (new Date()).getTime(); - - if (tools.uCanDo(setting)) { - doc.bind("mousemove", _docMouseMove); - } - - function _docMouseMove(event) { - //avoid start drag after click node - if (root.dragFlag == 0 && Math.abs(mouseDownX - event.clientX) < setting.edit.drag.minMoveSize - && Math.abs(mouseDownY - event.clientY) < setting.edit.drag.minMoveSize) { - return true; - } - var i, l, tmpNode, tmpDom, tmpNodes; - body.css("cursor", "pointer"); - - if (root.dragFlag == 0) { - if (tools.apply(setting.callback.beforeDrag, [setting.treeId, nodes], true) == false) { - _docMouseUp(event); - return true; - } - - for (i = 0, l = nodes.length; i < l; i++) { - if (i == 0) { - root.dragNodeShowBefore = []; - } - tmpNode = nodes[i]; - if (data.nodeIsParent(setting, tmpNode) && tmpNode.open) { - view.expandCollapseNode(setting, tmpNode, !tmpNode.open); - root.dragNodeShowBefore[tmpNode.tId] = true; - } else { - root.dragNodeShowBefore[tmpNode.tId] = false; - } - } - - root.dragFlag = 1; - roots.showHoverDom = false; - tools.showIfameMask(setting, true); - - //sort - var isOrder = true, lastIndex = -1; - if (nodes.length > 1) { - var pNodes = nodes[0].parentTId ? data.nodeChildren(setting, nodes[0].getParentNode()) : data.getNodes(setting); - tmpNodes = []; - for (i = 0, l = pNodes.length; i < l; i++) { - if (root.dragNodeShowBefore[pNodes[i].tId] !== undefined) { - if (isOrder && lastIndex > -1 && (lastIndex + 1) !== i) { - isOrder = false; - } - tmpNodes.push(pNodes[i]); - lastIndex = i; - } - if (nodes.length === tmpNodes.length) { - nodes = tmpNodes; - break; - } - } - } - if (isOrder) { - preNode = nodes[0].getPreNode(); - nextNode = nodes[nodes.length - 1].getNextNode(); - } - - //set node in selected - curNode = $$("
                                                                                                                                                                                                                                                                                                        ", setting); - for (i = 0, l = nodes.length; i < l; i++) { - tmpNode = nodes[i]; - tmpNode.editNameFlag = false; - view.selectNode(setting, tmpNode, i > 0); - view.removeTreeDom(setting, tmpNode); - - if (i > setting.edit.drag.maxShowNodeNum - 1) { - continue; - } - - tmpDom = $$("
                                                                                                                                                                                                                                                                                                      • ", setting); - tmpDom.append($$(tmpNode, consts.id.A, setting).clone()); - tmpDom.css("padding", "0"); - tmpDom.children("#" + tmpNode.tId + consts.id.A).removeClass(consts.node.CURSELECTED); - curNode.append(tmpDom); - if (i == setting.edit.drag.maxShowNodeNum - 1) { - tmpDom = $$("
                                                                                                                                                                                                                                                                                                      • ...
                                                                                                                                                                                                                                                                                                      • ", setting); - curNode.append(tmpDom); - } - } - curNode.attr("id", nodes[0].tId + consts.id.UL + "_tmp"); - curNode.addClass(setting.treeObj.attr("class")); - curNode.appendTo(body); - - tmpArrow = $$("", setting); - tmpArrow.attr("id", "zTreeMove_arrow_tmp"); - tmpArrow.appendTo(body); - - setting.treeObj.trigger(consts.event.DRAG, [event, setting.treeId, nodes]); - } - - if (root.dragFlag == 1) { - if (tmpTarget && tmpArrow.attr("id") == event.target.id && tmpTargetNodeId && (event.clientX + doc.scrollLeft() + 2) > ($("#" + tmpTargetNodeId + consts.id.A, tmpTarget).offset().left)) { - var xT = $("#" + tmpTargetNodeId + consts.id.A, tmpTarget); - event.target = (xT.length > 0) ? xT.get(0) : event.target; - } else if (tmpTarget) { - tmpTarget.removeClass(consts.node.TMPTARGET_TREE); - if (tmpTargetNodeId) $("#" + tmpTargetNodeId + consts.id.A, tmpTarget).removeClass(consts.node.TMPTARGET_NODE + "_" + consts.move.TYPE_PREV) - .removeClass(consts.node.TMPTARGET_NODE + "_" + _consts.move.TYPE_NEXT).removeClass(consts.node.TMPTARGET_NODE + "_" + _consts.move.TYPE_INNER); - } - tmpTarget = null; - tmpTargetNodeId = null; - - //judge drag & drop in multi ztree - isOtherTree = false; - targetSetting = setting; - var settings = data.getSettings(); - for (var s in settings) { - if (settings[s].treeId && settings[s].edit.enable && settings[s].treeId != setting.treeId - && (event.target.id == settings[s].treeId || $(event.target).parents("#" + settings[s].treeId).length > 0)) { - isOtherTree = true; - targetSetting = settings[s]; - } - } - - var docScrollTop = doc.scrollTop(), - docScrollLeft = doc.scrollLeft(), - treeOffset = targetSetting.treeObj.offset(), - scrollHeight = targetSetting.treeObj.get(0).scrollHeight, - scrollWidth = targetSetting.treeObj.get(0).scrollWidth, - dTop = (event.clientY + docScrollTop - treeOffset.top), - dBottom = (targetSetting.treeObj.height() + treeOffset.top - event.clientY - docScrollTop), - dLeft = (event.clientX + docScrollLeft - treeOffset.left), - dRight = (targetSetting.treeObj.width() + treeOffset.left - event.clientX - docScrollLeft), - isTop = (dTop < setting.edit.drag.borderMax && dTop > setting.edit.drag.borderMin), - isBottom = (dBottom < setting.edit.drag.borderMax && dBottom > setting.edit.drag.borderMin), - isLeft = (dLeft < setting.edit.drag.borderMax && dLeft > setting.edit.drag.borderMin), - isRight = (dRight < setting.edit.drag.borderMax && dRight > setting.edit.drag.borderMin), - isTreeInner = dTop > setting.edit.drag.borderMin && dBottom > setting.edit.drag.borderMin && dLeft > setting.edit.drag.borderMin && dRight > setting.edit.drag.borderMin, - isTreeTop = (isTop && targetSetting.treeObj.scrollTop() <= 0), - isTreeBottom = (isBottom && (targetSetting.treeObj.scrollTop() + targetSetting.treeObj.height() + 10) >= scrollHeight), - isTreeLeft = (isLeft && targetSetting.treeObj.scrollLeft() <= 0), - isTreeRight = (isRight && (targetSetting.treeObj.scrollLeft() + targetSetting.treeObj.width() + 10) >= scrollWidth); - - if (event.target && tools.isChildOrSelf(event.target, targetSetting.treeId)) { - //get node
                                                                                                                                                                                                                                                                                                      • dom - var targetObj = event.target; - while (targetObj && targetObj.tagName && !tools.eqs(targetObj.tagName, "li") && targetObj.id != targetSetting.treeId) { - targetObj = targetObj.parentNode; - } - - var canMove = true; - //don't move to self or children of self - for (i = 0, l = nodes.length; i < l; i++) { - tmpNode = nodes[i]; - if (targetObj.id === tmpNode.tId) { - canMove = false; - break; - } else if ($$(tmpNode, setting).find("#" + targetObj.id).length > 0) { - canMove = false; - break; - } - } - if (canMove && event.target && tools.isChildOrSelf(event.target, targetObj.id + consts.id.A)) { - tmpTarget = $(targetObj); - tmpTargetNodeId = targetObj.id; - } - } - - //the mouse must be in zTree - tmpNode = nodes[0]; - if (isTreeInner && tools.isChildOrSelf(event.target, targetSetting.treeId)) { - //judge mouse move in root of ztree - if (!tmpTarget && (event.target.id == targetSetting.treeId || isTreeTop || isTreeBottom || isTreeLeft || isTreeRight) && (isOtherTree || (!isOtherTree && tmpNode.parentTId))) { - tmpTarget = targetSetting.treeObj; - } - //auto scroll top - if (isTop) { - targetSetting.treeObj.scrollTop(targetSetting.treeObj.scrollTop() - 10); - } else if (isBottom) { - targetSetting.treeObj.scrollTop(targetSetting.treeObj.scrollTop() + 10); - } - if (isLeft) { - targetSetting.treeObj.scrollLeft(targetSetting.treeObj.scrollLeft() - 10); - } else if (isRight) { - targetSetting.treeObj.scrollLeft(targetSetting.treeObj.scrollLeft() + 10); - } - //auto scroll left - if (tmpTarget && tmpTarget != targetSetting.treeObj && tmpTarget.offset().left < targetSetting.treeObj.offset().left) { - targetSetting.treeObj.scrollLeft(targetSetting.treeObj.scrollLeft() + tmpTarget.offset().left - targetSetting.treeObj.offset().left); - } - } - - curNode.css({ - "top": (event.clientY + docScrollTop + 3) + "px", - "left": (event.clientX + docScrollLeft + 3) + "px" - }); - - var dX = 0; - var dY = 0; - if (tmpTarget && tmpTarget.attr("id") != targetSetting.treeId) { - var tmpTargetNode = tmpTargetNodeId == null ? null : data.getNodeCache(targetSetting, tmpTargetNodeId), - isCopy = ((event.ctrlKey || event.metaKey) && setting.edit.drag.isMove && setting.edit.drag.isCopy) || (!setting.edit.drag.isMove && setting.edit.drag.isCopy), - isPrev = !!(preNode && tmpTargetNodeId === preNode.tId), - isNext = !!(nextNode && tmpTargetNodeId === nextNode.tId), - isInner = (tmpNode.parentTId && tmpNode.parentTId == tmpTargetNodeId), - canPrev = (isCopy || !isNext) && tools.apply(targetSetting.edit.drag.prev, [targetSetting.treeId, nodes, tmpTargetNode], !!targetSetting.edit.drag.prev), - canNext = (isCopy || !isPrev) && tools.apply(targetSetting.edit.drag.next, [targetSetting.treeId, nodes, tmpTargetNode], !!targetSetting.edit.drag.next), - canInner = (isCopy || !isInner) && !(targetSetting.data.keep.leaf && !data.nodeIsParent(setting, tmpTargetNode)) && tools.apply(targetSetting.edit.drag.inner, [targetSetting.treeId, nodes, tmpTargetNode], !!targetSetting.edit.drag.inner); - - function clearMove() { - tmpTarget = null; - tmpTargetNodeId = ""; - moveType = consts.move.TYPE_INNER; - tmpArrow.css({ - "display": "none" - }); - if (window.zTreeMoveTimer) { - clearTimeout(window.zTreeMoveTimer); - window.zTreeMoveTargetNodeTId = null - } - } - - if (!canPrev && !canNext && !canInner) { - clearMove(); - } else { - var tmpTargetA = $("#" + tmpTargetNodeId + consts.id.A, tmpTarget), - tmpNextA = tmpTargetNode.isLastNode ? null : $("#" + tmpTargetNode.getNextNode().tId + consts.id.A, tmpTarget.next()), - tmpTop = tmpTargetA.offset().top, - tmpLeft = tmpTargetA.offset().left, - prevPercent = canPrev ? (canInner ? 0.25 : (canNext ? 0.5 : 1)) : -1, - nextPercent = canNext ? (canInner ? 0.75 : (canPrev ? 0.5 : 0)) : -1, - dY_percent = (event.clientY + docScrollTop - tmpTop) / tmpTargetA.height(); - - if ((prevPercent == 1 || dY_percent <= prevPercent && dY_percent >= -.2) && canPrev) { - dX = 1 - tmpArrow.width(); - dY = tmpTop - tmpArrow.height() / 2; - moveType = consts.move.TYPE_PREV; - } else if ((nextPercent == 0 || dY_percent >= nextPercent && dY_percent <= 1.2) && canNext) { - dX = 1 - tmpArrow.width(); - dY = (tmpNextA == null || (data.nodeIsParent(setting, tmpTargetNode) && tmpTargetNode.open)) ? (tmpTop + tmpTargetA.height() - tmpArrow.height() / 2) : (tmpNextA.offset().top - tmpArrow.height() / 2); - moveType = consts.move.TYPE_NEXT; - } else if (canInner) { - dX = 5 - tmpArrow.width(); - dY = tmpTop; - moveType = consts.move.TYPE_INNER; - } else { - clearMove(); - } - - if (tmpTarget) { - tmpArrow.css({ - "display": "block", - "top": dY + "px", - "left": (tmpLeft + dX) + "px" - }); - tmpTargetA.addClass(consts.node.TMPTARGET_NODE + "_" + moveType); - - if (preTmpTargetNodeId != tmpTargetNodeId || preTmpMoveType != moveType) { - startTime = (new Date()).getTime(); - } - if (tmpTargetNode && data.nodeIsParent(setting, tmpTargetNode) && moveType == consts.move.TYPE_INNER) { - var startTimer = true; - if (window.zTreeMoveTimer && window.zTreeMoveTargetNodeTId !== tmpTargetNode.tId) { - clearTimeout(window.zTreeMoveTimer); - window.zTreeMoveTargetNodeTId = null; - } else if (window.zTreeMoveTimer && window.zTreeMoveTargetNodeTId === tmpTargetNode.tId) { - startTimer = false; - } - if (startTimer) { - window.zTreeMoveTimer = setTimeout(function () { - if (moveType != consts.move.TYPE_INNER) return; - if (tmpTargetNode && data.nodeIsParent(setting, tmpTargetNode) && !tmpTargetNode.open && (new Date()).getTime() - startTime > targetSetting.edit.drag.autoOpenTime - && tools.apply(targetSetting.callback.beforeDragOpen, [targetSetting.treeId, tmpTargetNode], true)) { - view.switchNode(targetSetting, tmpTargetNode); - if (targetSetting.edit.drag.autoExpandTrigger) { - targetSetting.treeObj.trigger(consts.event.EXPAND, [targetSetting.treeId, tmpTargetNode]); - } - } - }, targetSetting.edit.drag.autoOpenTime + 50); - window.zTreeMoveTargetNodeTId = tmpTargetNode.tId; - } - } - } - } - } else { - moveType = consts.move.TYPE_INNER; - if (tmpTarget && tools.apply(targetSetting.edit.drag.inner, [targetSetting.treeId, nodes, null], !!targetSetting.edit.drag.inner)) { - tmpTarget.addClass(consts.node.TMPTARGET_TREE); - } else { - tmpTarget = null; - } - tmpArrow.css({ - "display": "none" - }); - if (window.zTreeMoveTimer) { - clearTimeout(window.zTreeMoveTimer); - window.zTreeMoveTargetNodeTId = null; - } - } - preTmpTargetNodeId = tmpTargetNodeId; - preTmpMoveType = moveType; - - setting.treeObj.trigger(consts.event.DRAGMOVE, [event, setting.treeId, nodes]); - } - return false; - } - - doc.bind("mouseup", _docMouseUp); - - function _docMouseUp(event) { - if (window.zTreeMoveTimer) { - clearTimeout(window.zTreeMoveTimer); - window.zTreeMoveTargetNodeTId = null; - } - preTmpTargetNodeId = null; - preTmpMoveType = null; - doc.unbind("mousemove", _docMouseMove); - doc.unbind("mouseup", _docMouseUp); - doc.unbind("selectstart", _docSelect); - body.css("cursor", ""); - if (tmpTarget) { - tmpTarget.removeClass(consts.node.TMPTARGET_TREE); - if (tmpTargetNodeId) $("#" + tmpTargetNodeId + consts.id.A, tmpTarget).removeClass(consts.node.TMPTARGET_NODE + "_" + consts.move.TYPE_PREV) - .removeClass(consts.node.TMPTARGET_NODE + "_" + _consts.move.TYPE_NEXT).removeClass(consts.node.TMPTARGET_NODE + "_" + _consts.move.TYPE_INNER); - } - tools.showIfameMask(setting, false); - - roots.showHoverDom = true; - if (root.dragFlag == 0) return; - root.dragFlag = 0; - - var i, l, tmpNode; - for (i = 0, l = nodes.length; i < l; i++) { - tmpNode = nodes[i]; - if (data.nodeIsParent(setting, tmpNode) && root.dragNodeShowBefore[tmpNode.tId] && !tmpNode.open) { - view.expandCollapseNode(setting, tmpNode, !tmpNode.open); - delete root.dragNodeShowBefore[tmpNode.tId]; - } - } - - if (curNode) curNode.remove(); - if (tmpArrow) tmpArrow.remove(); - - var isCopy = ((event.ctrlKey || event.metaKey) && setting.edit.drag.isMove && setting.edit.drag.isCopy) || (!setting.edit.drag.isMove && setting.edit.drag.isCopy); - if (!isCopy && tmpTarget && tmpTargetNodeId && nodes[0].parentTId && tmpTargetNodeId == nodes[0].parentTId && moveType == consts.move.TYPE_INNER) { - tmpTarget = null; - } - if (tmpTarget) { - var dragTargetNode = tmpTargetNodeId == null ? null : data.getNodeCache(targetSetting, tmpTargetNodeId); - if (tools.apply(setting.callback.beforeDrop, [targetSetting.treeId, nodes, dragTargetNode, moveType, isCopy], true) == false) { - view.selectNodes(sourceSetting, nodes); - return; - } - var newNodes = isCopy ? tools.clone(nodes) : nodes; - - function dropCallback() { - if (isOtherTree) { - if (!isCopy) { - for (var i = 0, l = nodes.length; i < l; i++) { - view.removeNode(setting, nodes[i]); - } - } - if (moveType == consts.move.TYPE_INNER) { - view.addNodes(targetSetting, dragTargetNode, -1, newNodes); - } else { - view.addNodes(targetSetting, dragTargetNode.getParentNode(), moveType == consts.move.TYPE_PREV ? dragTargetNode.getIndex() : dragTargetNode.getIndex() + 1, newNodes); - } - } else { - if (isCopy && moveType == consts.move.TYPE_INNER) { - view.addNodes(targetSetting, dragTargetNode, -1, newNodes); - } else if (isCopy) { - view.addNodes(targetSetting, dragTargetNode.getParentNode(), moveType == consts.move.TYPE_PREV ? dragTargetNode.getIndex() : dragTargetNode.getIndex() + 1, newNodes); - } else { - if (moveType != consts.move.TYPE_NEXT) { - for (i = 0, l = newNodes.length; i < l; i++) { - view.moveNode(targetSetting, dragTargetNode, newNodes[i], moveType, false); - } - } else { - for (i = -1, l = newNodes.length - 1; i < l; l--) { - view.moveNode(targetSetting, dragTargetNode, newNodes[l], moveType, false); - } - } - } - } - view.selectNodes(targetSetting, newNodes); - - var a = $$(newNodes[0], setting).get(0); - view.scrollIntoView(setting, a); - - setting.treeObj.trigger(consts.event.DROP, [event, targetSetting.treeId, newNodes, dragTargetNode, moveType, isCopy]); - } - - if (moveType == consts.move.TYPE_INNER && tools.canAsync(targetSetting, dragTargetNode)) { - view.asyncNode(targetSetting, dragTargetNode, false, dropCallback); - } else { - dropCallback(); - } - - } else { - view.selectNodes(sourceSetting, nodes); - setting.treeObj.trigger(consts.event.DROP, [event, setting.treeId, nodes, null, null, null]); - } - } - - doc.bind("selectstart", _docSelect); - - function _docSelect() { - return false; - } - - // 2018-03-30 FireFox has fixed this issue. - //Avoid FireFox's Bug - //If zTree Div CSS set 'overflow', so drag node outside of zTree, and event.target is error. - // if(eventMouseDown.preventDefault) { - // eventMouseDown.preventDefault(); - // } - return true; - } - }, - //method of tools for zTree - _tools = { - getAbs: function (obj) { - var oRect = obj.getBoundingClientRect(), - scrollTop = document.body.scrollTop + document.documentElement.scrollTop, - scrollLeft = document.body.scrollLeft + document.documentElement.scrollLeft; - return [oRect.left + scrollLeft, oRect.top + scrollTop]; - }, - inputFocus: function (inputObj) { - if (inputObj.get(0)) { - inputObj.focus(); - tools.setCursorPosition(inputObj.get(0), inputObj.val().length); - } - }, - inputSelect: function (inputObj) { - if (inputObj.get(0)) { - inputObj.focus(); - inputObj.select(); - } - }, - setCursorPosition: function (obj, pos) { - if (obj.setSelectionRange) { - obj.focus(); - obj.setSelectionRange(pos, pos); - } else if (obj.createTextRange) { - var range = obj.createTextRange(); - range.collapse(true); - range.moveEnd('character', pos); - range.moveStart('character', pos); - range.select(); - } - }, - showIfameMask: function (setting, showSign) { - var root = data.getRoot(setting); - //clear full mask - while (root.dragMaskList.length > 0) { - root.dragMaskList[0].remove(); - root.dragMaskList.shift(); - } - if (showSign) { - //show mask - var iframeList = $$("iframe", setting); - for (var i = 0, l = iframeList.length; i < l; i++) { - var obj = iframeList.get(i), - r = tools.getAbs(obj), - dragMask = $$("
                                                                                                                                                                                                                                                                                                        ", setting); - dragMask.appendTo($$("body", setting)); - root.dragMaskList.push(dragMask); - } - } - } - }, - //method of operate ztree dom - _view = { - addEditBtn: function (setting, node) { - if (node.editNameFlag || $$(node, consts.id.EDIT, setting).length > 0) { - return; - } - if (!tools.apply(setting.edit.showRenameBtn, [setting.treeId, node], setting.edit.showRenameBtn)) { - return; - } - var aObj = $$(node, consts.id.A, setting), - editStr = ""; - aObj.append(editStr); - - $$(node, consts.id.EDIT, setting).bind('click', - function () { - if (!tools.uCanDo(setting) || tools.apply(setting.callback.beforeEditName, [setting.treeId, node], true) == false) return false; - view.editNode(setting, node); - return false; - } - ).show(); - }, - addRemoveBtn: function (setting, node) { - if (node.editNameFlag || $$(node, consts.id.REMOVE, setting).length > 0) { - return; - } - if (!tools.apply(setting.edit.showRemoveBtn, [setting.treeId, node], setting.edit.showRemoveBtn)) { - return; - } - var aObj = $$(node, consts.id.A, setting), - removeStr = ""; - aObj.append(removeStr); - - $$(node, consts.id.REMOVE, setting).bind('click', - function () { - if (!tools.uCanDo(setting) || tools.apply(setting.callback.beforeRemove, [setting.treeId, node], true) == false) return false; - view.removeNode(setting, node); - setting.treeObj.trigger(consts.event.REMOVE, [setting.treeId, node]); - return false; - } - ).bind('mousedown', - function (eventMouseDown) { - return true; - } - ).show(); - }, - addHoverDom: function (setting, node) { - if (data.getRoots().showHoverDom) { - node.isHover = true; - if (setting.edit.enable) { - view.addEditBtn(setting, node); - view.addRemoveBtn(setting, node); - } - tools.apply(setting.view.addHoverDom, [setting.treeId, node]); - } - }, - cancelCurEditNode: function (setting, forceName, isCancel) { - var root = data.getRoot(setting), - node = root.curEditNode; - - if (node) { - var inputObj = root.curEditInput, - newName = forceName ? forceName : (isCancel ? data.nodeName(setting, node) : inputObj.val()); - if (tools.apply(setting.callback.beforeRename, [setting.treeId, node, newName, isCancel], true) === false) { - return false; - } - data.nodeName(setting, node, newName); - var aObj = $$(node, consts.id.A, setting); - aObj.removeClass(consts.node.CURSELECTED_EDIT); - inputObj.unbind(); - view.setNodeName(setting, node); - node.editNameFlag = false; - root.curEditNode = null; - root.curEditInput = null; - view.selectNode(setting, node, false); - setting.treeObj.trigger(consts.event.RENAME, [setting.treeId, node, isCancel]); - } - root.noSelection = true; - return true; - }, - editNode: function (setting, node) { - var root = data.getRoot(setting); - view.editNodeBlur = false; - if (data.isSelectedNode(setting, node) && root.curEditNode == node && node.editNameFlag) { - setTimeout(function () { - tools.inputFocus(root.curEditInput); - }, 0); - return; - } - node.editNameFlag = true; - view.removeTreeDom(setting, node); - view.cancelCurEditNode(setting); - view.selectNode(setting, node, false); - $$(node, consts.id.SPAN, setting).html(""); - var inputObj = $$(node, consts.id.INPUT, setting); - inputObj.attr("value", data.nodeName(setting, node)); - if (setting.edit.editNameSelectAll) { - tools.inputSelect(inputObj); - } else { - tools.inputFocus(inputObj); - } - - inputObj.bind('blur', function (event) { - if (!view.editNodeBlur) { - view.cancelCurEditNode(setting); - } - }).bind('keydown', function (event) { - if (event.keyCode == "13") { - view.editNodeBlur = true; - view.cancelCurEditNode(setting); - } else if (event.keyCode == "27") { - view.cancelCurEditNode(setting, null, true); - } - }).bind('click', function (event) { - return false; - }).bind('dblclick', function (event) { - return false; - }); - - $$(node, consts.id.A, setting).addClass(consts.node.CURSELECTED_EDIT); - root.curEditInput = inputObj; - root.noSelection = false; - root.curEditNode = node; - }, - moveNode: function (setting, targetNode, node, moveType, animateFlag, isSilent) { - var root = data.getRoot(setting); - if (targetNode == node) return; - if (setting.data.keep.leaf && targetNode && !data.nodeIsParent(setting, targetNode) && moveType == consts.move.TYPE_INNER) return; - var oldParentNode = (node.parentTId ? node.getParentNode() : root), - targetNodeIsRoot = (targetNode === null || targetNode == root); - if (targetNodeIsRoot && targetNode === null) targetNode = root; - if (targetNodeIsRoot) moveType = consts.move.TYPE_INNER; - var targetParentNode = (targetNode.parentTId ? targetNode.getParentNode() : root); - - if (moveType != consts.move.TYPE_PREV && moveType != consts.move.TYPE_NEXT) { - moveType = consts.move.TYPE_INNER; - } - - if (moveType == consts.move.TYPE_INNER) { - if (targetNodeIsRoot) { - //parentTId of root node is null - node.parentTId = null; - } else { - if (!data.nodeIsParent(setting, targetNode)) { - data.nodeIsParent(setting, targetNode, true); - targetNode.open = !!targetNode.open; - view.setNodeLineIcos(setting, targetNode); - } - node.parentTId = targetNode.tId; - } - } - - //move node Dom - var targetObj, target_ulObj; - if (targetNodeIsRoot) { - targetObj = setting.treeObj; - target_ulObj = targetObj; - } else { - if (!isSilent && moveType == consts.move.TYPE_INNER) { - view.expandCollapseNode(setting, targetNode, true, false); - } else if (!isSilent) { - view.expandCollapseNode(setting, targetNode.getParentNode(), true, false); - } - targetObj = $$(targetNode, setting); - target_ulObj = $$(targetNode, consts.id.UL, setting); - if (!!targetObj.get(0) && !target_ulObj.get(0)) { - var ulstr = []; - view.makeUlHtml(setting, targetNode, ulstr, ''); - targetObj.append(ulstr.join('')); - } - target_ulObj = $$(targetNode, consts.id.UL, setting); - } - var nodeDom = $$(node, setting); - if (!nodeDom.get(0)) { - nodeDom = view.appendNodes(setting, node.level, [node], null, -1, false, true).join(''); - } else if (!targetObj.get(0)) { - nodeDom.remove(); - } - if (target_ulObj.get(0) && moveType == consts.move.TYPE_INNER) { - target_ulObj.append(nodeDom); - } else if (targetObj.get(0) && moveType == consts.move.TYPE_PREV) { - targetObj.before(nodeDom); - } else if (targetObj.get(0) && moveType == consts.move.TYPE_NEXT) { - targetObj.after(nodeDom); - } - - //repair the data after move - var i, l, - tmpSrcIndex = -1, - tmpTargetIndex = 0, - oldNeighbor = null, - newNeighbor = null, - oldLevel = node.level; - var oldChildren = data.nodeChildren(setting, oldParentNode); - var targetParentChildren = data.nodeChildren(setting, targetParentNode); - var targetChildren = data.nodeChildren(setting, targetNode); - if (node.isFirstNode) { - tmpSrcIndex = 0; - if (oldChildren.length > 1) { - oldNeighbor = oldChildren[1]; - oldNeighbor.isFirstNode = true; - } - } else if (node.isLastNode) { - tmpSrcIndex = oldChildren.length - 1; - oldNeighbor = oldChildren[tmpSrcIndex - 1]; - oldNeighbor.isLastNode = true; - } else { - for (i = 0, l = oldChildren.length; i < l; i++) { - if (oldChildren[i].tId == node.tId) { - tmpSrcIndex = i; - break; - } - } - } - if (tmpSrcIndex >= 0) { - oldChildren.splice(tmpSrcIndex, 1); - } - if (moveType != consts.move.TYPE_INNER) { - for (i = 0, l = targetParentChildren.length; i < l; i++) { - if (targetParentChildren[i].tId == targetNode.tId) tmpTargetIndex = i; - } - } - if (moveType == consts.move.TYPE_INNER) { - if (!targetChildren) { - targetChildren = data.nodeChildren(setting, targetNode, []); - } - if (targetChildren.length > 0) { - newNeighbor = targetChildren[targetChildren.length - 1]; - newNeighbor.isLastNode = false; - } - targetChildren.splice(targetChildren.length, 0, node); - node.isLastNode = true; - node.isFirstNode = (targetChildren.length == 1); - } else if (targetNode.isFirstNode && moveType == consts.move.TYPE_PREV) { - targetParentChildren.splice(tmpTargetIndex, 0, node); - newNeighbor = targetNode; - newNeighbor.isFirstNode = false; - node.parentTId = targetNode.parentTId; - node.isFirstNode = true; - node.isLastNode = false; - - } else if (targetNode.isLastNode && moveType == consts.move.TYPE_NEXT) { - targetParentChildren.splice(tmpTargetIndex + 1, 0, node); - newNeighbor = targetNode; - newNeighbor.isLastNode = false; - node.parentTId = targetNode.parentTId; - node.isFirstNode = false; - node.isLastNode = true; - - } else { - if (moveType == consts.move.TYPE_PREV) { - targetParentChildren.splice(tmpTargetIndex, 0, node); - } else { - targetParentChildren.splice(tmpTargetIndex + 1, 0, node); - } - node.parentTId = targetNode.parentTId; - node.isFirstNode = false; - node.isLastNode = false; - } - data.fixPIdKeyValue(setting, node); - data.setSonNodeLevel(setting, node.getParentNode(), node); - - //repair node what been moved - view.setNodeLineIcos(setting, node); - view.repairNodeLevelClass(setting, node, oldLevel); - - //repair node's old parentNode dom - if (!setting.data.keep.parent && oldChildren.length < 1) { - //old parentNode has no child nodes - data.nodeIsParent(setting, oldParentNode, false); - oldParentNode.open = false; - var tmp_ulObj = $$(oldParentNode, consts.id.UL, setting), - tmp_switchObj = $$(oldParentNode, consts.id.SWITCH, setting), - tmp_icoObj = $$(oldParentNode, consts.id.ICON, setting); - view.replaceSwitchClass(oldParentNode, tmp_switchObj, consts.folder.DOCU); - view.replaceIcoClass(oldParentNode, tmp_icoObj, consts.folder.DOCU); - tmp_ulObj.css("display", "none"); - - } else if (oldNeighbor) { - //old neigbor node - view.setNodeLineIcos(setting, oldNeighbor); - } - - //new neigbor node - if (newNeighbor) { - view.setNodeLineIcos(setting, newNeighbor); - } - - //repair checkbox / radio - if (!!setting.check && setting.check.enable && view.repairChkClass) { - view.repairChkClass(setting, oldParentNode); - view.repairParentChkClassWithSelf(setting, oldParentNode); - if (oldParentNode != node.parent) - view.repairParentChkClassWithSelf(setting, node); - } - - //expand parents after move - if (!isSilent) { - view.expandCollapseParentNode(setting, node.getParentNode(), true, animateFlag); - } - }, - removeEditBtn: function (setting, node) { - $$(node, consts.id.EDIT, setting).unbind().remove(); - }, - removeRemoveBtn: function (setting, node) { - $$(node, consts.id.REMOVE, setting).unbind().remove(); - }, - removeTreeDom: function (setting, node) { - node.isHover = false; - view.removeEditBtn(setting, node); - view.removeRemoveBtn(setting, node); - tools.apply(setting.view.removeHoverDom, [setting.treeId, node]); - }, - repairNodeLevelClass: function (setting, node, oldLevel) { - if (oldLevel === node.level) return; - var liObj = $$(node, setting), - aObj = $$(node, consts.id.A, setting), - ulObj = $$(node, consts.id.UL, setting), - oldClass = consts.className.LEVEL + oldLevel, - newClass = consts.className.LEVEL + node.level; - liObj.removeClass(oldClass); - liObj.addClass(newClass); - aObj.removeClass(oldClass); - aObj.addClass(newClass); - ulObj.removeClass(oldClass); - ulObj.addClass(newClass); - }, - selectNodes: function (setting, nodes) { - for (var i = 0, l = nodes.length; i < l; i++) { - view.selectNode(setting, nodes[i], i > 0); - } - } - }, - - _z = { - tools: _tools, - view: _view, - event: _event, - data: _data - }; - $.extend(true, $.fn.zTree.consts, _consts); - $.extend(true, $.fn.zTree._z, _z); - - var zt = $.fn.zTree, - tools = zt._z.tools, - consts = zt.consts, - view = zt._z.view, - data = zt._z.data, - event = zt._z.event, - $$ = tools.$; - - data.exSetting(_setting); - data.addInitBind(_bindEvent); - data.addInitUnBind(_unbindEvent); - data.addInitCache(_initCache); - data.addInitNode(_initNode); - data.addInitProxy(_eventProxy); - data.addInitRoot(_initRoot); - data.addZTreeTools(_zTreeTools); - - var _cancelPreSelectedNode = view.cancelPreSelectedNode; - view.cancelPreSelectedNode = function (setting, node) { - var list = data.getRoot(setting).curSelectedList; - for (var i = 0, j = list.length; i < j; i++) { - if (!node || node === list[i]) { - view.removeTreeDom(setting, list[i]); - if (node) break; - } - } - if (_cancelPreSelectedNode) _cancelPreSelectedNode.apply(view, arguments); - } - - var _createNodes = view.createNodes; - view.createNodes = function (setting, level, nodes, parentNode, index) { - if (_createNodes) { - _createNodes.apply(view, arguments); - } - if (!nodes) return; - if (view.repairParentChkClassWithSelf) { - view.repairParentChkClassWithSelf(setting, parentNode); - } - } - - var _makeNodeUrl = view.makeNodeUrl; - view.makeNodeUrl = function (setting, node) { - return setting.edit.enable ? null : (_makeNodeUrl.apply(view, arguments)); - } - - var _removeNode = view.removeNode; - view.removeNode = function (setting, node) { - var root = data.getRoot(setting); - if (root.curEditNode === node) root.curEditNode = null; - if (_removeNode) { - _removeNode.apply(view, arguments); - } - } - - var _selectNode = view.selectNode; - view.selectNode = function (setting, node, addFlag) { - var root = data.getRoot(setting); - if (data.isSelectedNode(setting, node) && root.curEditNode == node && node.editNameFlag) { - return false; - } - if (_selectNode) _selectNode.apply(view, arguments); - view.addHoverDom(setting, node); - return true; - } - - var _uCanDo = tools.uCanDo; - tools.uCanDo = function (setting, e) { - var root = data.getRoot(setting); - if (e && (tools.eqs(e.type, "mouseover") || tools.eqs(e.type, "mouseout") || tools.eqs(e.type, "mousedown") || tools.eqs(e.type, "mouseup"))) { - return true; - } - if (root.curEditNode) { - view.editNodeBlur = false; - root.curEditInput.focus(); - } - return (!root.curEditNode) && (_uCanDo ? _uCanDo.apply(view, arguments) : true); - } -})(jQuery); diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/js/jquery.ztree.all.min.js b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/js/jquery.ztree.all.min.js deleted file mode 100644 index b50f265b..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/js/jquery.ztree.all.min.js +++ /dev/null @@ -1,166 +0,0 @@ - -/* - * JQuery zTree core v3.5.40 - * http://treejs.cn/ - * - * Copyright (c) 2010 Hunter.z - * - * Licensed same as jquery - MIT License - * http://www.opensource.org/licenses/mit-license.php - * - * email: hunter.z@263.net - * Date: 2019-01-18 - */ -(function(r){var J,K,L,M,N,O,v,t={},w={},x={},P={treeId:"",treeObj:null,view:{addDiyDom:null,autoCancelSelected:!0,dblClickExpand:!0,expandSpeed:"fast",fontCss:{},nameIsHTML:!1,selectedMulti:!0,showIcon:!0,showLine:!0,showTitle:!0,txtSelectedEnable:!1},data:{key:{isParent:"isParent",children:"children",name:"name",title:"",url:"url",icon:"icon"},simpleData:{enable:!1,idKey:"id",pIdKey:"pId",rootPId:null},keep:{parent:!1,leaf:!1}},async:{enable:!1,contentType:"application/x-www-form-urlencoded",type:"post", -dataType:"text",headers:{},xhrFields:{},url:"",autoParam:[],otherParam:[],dataFilter:null},callback:{beforeAsync:null,beforeClick:null,beforeDblClick:null,beforeRightClick:null,beforeMouseDown:null,beforeMouseUp:null,beforeExpand:null,beforeCollapse:null,beforeRemove:null,onAsyncError:null,onAsyncSuccess:null,onNodeCreated:null,onClick:null,onDblClick:null,onRightClick:null,onMouseDown:null,onMouseUp:null,onExpand:null,onCollapse:null,onRemove:null}},y=[function(a){var b=a.treeObj,c=g.event;b.bind(c.NODECREATED, -function(b,c,i){h.apply(a.callback.onNodeCreated,[b,c,i])});b.bind(c.CLICK,function(b,c,i,e,k){h.apply(a.callback.onClick,[c,i,e,k])});b.bind(c.EXPAND,function(b,c,i){h.apply(a.callback.onExpand,[b,c,i])});b.bind(c.COLLAPSE,function(b,c,i){h.apply(a.callback.onCollapse,[b,c,i])});b.bind(c.ASYNC_SUCCESS,function(b,c,i,e){h.apply(a.callback.onAsyncSuccess,[b,c,i,e])});b.bind(c.ASYNC_ERROR,function(b,c,i,e,k,g){h.apply(a.callback.onAsyncError,[b,c,i,e,k,g])});b.bind(c.REMOVE,function(b,c,i){h.apply(a.callback.onRemove, -[b,c,i])});b.bind(c.SELECTED,function(b,c,i){h.apply(a.callback.onSelected,[c,i])});b.bind(c.UNSELECTED,function(b,c,i){h.apply(a.callback.onUnSelected,[c,i])})}],z=[function(a){var b=g.event;a.treeObj.unbind(b.NODECREATED).unbind(b.CLICK).unbind(b.EXPAND).unbind(b.COLLAPSE).unbind(b.ASYNC_SUCCESS).unbind(b.ASYNC_ERROR).unbind(b.REMOVE).unbind(b.SELECTED).unbind(b.UNSELECTED)}],A=[function(a){var b=e.getCache(a);b||(b={},e.setCache(a,b));b.nodes=[];b.doms=[]}],B=[function(a,b,c,d,f,i){if(c){var m= -e.getRoot(a),k=e.nodeChildren(a,c);c.level=b;c.tId=a.treeId+"_"+ ++m.zId;c.parentTId=d?d.tId:null;c.open=typeof c.open=="string"?h.eqs(c.open,"true"):!!c.open;b=e.nodeIsParent(a,c);h.isArray(k)?(e.nodeIsParent(a,c,!0),c.zAsync=!0):(b=e.nodeIsParent(a,c,b),c.open=b&&!a.async.enable?c.open:!1,c.zAsync=!b);c.isFirstNode=f;c.isLastNode=i;c.getParentNode=function(){return e.getNodeCache(a,c.parentTId)};c.getPreNode=function(){return e.getPreNode(a,c)};c.getNextNode=function(){return e.getNextNode(a,c)}; -c.getIndex=function(){return e.getNodeIndex(a,c)};c.getPath=function(){return e.getNodePath(a,c)};c.isAjaxing=!1;e.fixPIdKeyValue(a,c)}}],u=[function(a){var b=a.target,c=e.getSetting(a.data.treeId),d="",f=null,i="",m="",k=null,j=null,o=null;if(h.eqs(a.type,"mousedown"))m="mousedown";else if(h.eqs(a.type,"mouseup"))m="mouseup";else if(h.eqs(a.type,"contextmenu"))m="contextmenu";else if(h.eqs(a.type,"click"))if(h.eqs(b.tagName,"span")&&b.getAttribute("treeNode"+g.id.SWITCH)!==null)d=h.getNodeMainDom(b).id, -i="switchNode";else{if(o=h.getMDom(c,b,[{tagName:"a",attrName:"treeNode"+g.id.A}]))d=h.getNodeMainDom(o).id,i="clickNode"}else if(h.eqs(a.type,"dblclick")&&(m="dblclick",o=h.getMDom(c,b,[{tagName:"a",attrName:"treeNode"+g.id.A}])))d=h.getNodeMainDom(o).id,i="switchNode";if(m.length>0&&d.length==0&&(o=h.getMDom(c,b,[{tagName:"a",attrName:"treeNode"+g.id.A}])))d=h.getNodeMainDom(o).id;if(d.length>0)switch(f=e.getNodeCache(c,d),i){case "switchNode":e.nodeIsParent(c,f)?h.eqs(a.type,"click")||h.eqs(a.type, -"dblclick")&&h.apply(c.view.dblClickExpand,[c.treeId,f],c.view.dblClickExpand)?k=J:i="":i="";break;case "clickNode":k=K}switch(m){case "mousedown":j=L;break;case "mouseup":j=M;break;case "dblclick":j=N;break;case "contextmenu":j=O}return{stop:!1,node:f,nodeEventType:i,nodeEventCallback:k,treeEventType:m,treeEventCallback:j}}],C=[function(a){var b=e.getRoot(a);b||(b={},e.setRoot(a,b));e.nodeChildren(a,b,[]);b.expandTriggerFlag=!1;b.curSelectedList=[];b.noSelection=!0;b.createdNodes=[];b.zId=0;b._ver= -(new Date).getTime()}],D=[],E=[],F=[],G=[],H=[],e={addNodeCache:function(a,b){e.getCache(a).nodes[e.getNodeCacheId(b.tId)]=b},getNodeCacheId:function(a){return a.substring(a.lastIndexOf("_")+1)},addAfterA:function(a){E.push(a)},addBeforeA:function(a){D.push(a)},addInnerAfterA:function(a){G.push(a)},addInnerBeforeA:function(a){F.push(a)},addInitBind:function(a){y.push(a)},addInitUnBind:function(a){z.push(a)},addInitCache:function(a){A.push(a)},addInitNode:function(a){B.push(a)},addInitProxy:function(a, -b){b?u.splice(0,0,a):u.push(a)},addInitRoot:function(a){C.push(a)},addNodesData:function(a,b,c,d){var f=e.nodeChildren(a,b);f?c>=f.length&&(c=-1):(f=e.nodeChildren(a,b,[]),c=-1);if(f.length>0&&c===0)f[0].isFirstNode=!1,j.setNodeLineIcos(a,f[0]);else if(f.length>0&&c<0)f[f.length-1].isLastNode=!1,j.setNodeLineIcos(a,f[f.length-1]);e.nodeIsParent(a,b,!0);c<0?e.nodeChildren(a,b,f.concat(d)):(a=[c,0].concat(d),f.splice.apply(f,a))},addSelectedNode:function(a,b){var c=e.getRoot(a);e.isSelectedNode(a,b)|| -c.curSelectedList.push(b)},addCreatedNode:function(a,b){(a.callback.onNodeCreated||a.view.addDiyDom)&&e.getRoot(a).createdNodes.push(b)},addZTreeTools:function(a){H.push(a)},exSetting:function(a){r.extend(!0,P,a)},fixPIdKeyValue:function(a,b){a.data.simpleData.enable&&(b[a.data.simpleData.pIdKey]=b.parentTId?b.getParentNode()[a.data.simpleData.idKey]:a.data.simpleData.rootPId)},getAfterA:function(a,b,c){for(var d=0,e=E.length;d-1&&f.push(k);k=e.nodeChildren(a, -k);f=f.concat(e.getNodesByParamFuzzy(a,k,c,d))}return f},getNodesByFilter:function(a,b,c,d,f){if(!b)return d?null:[];for(var i=d?null:[],m=0,k=b.length;m0)},clone:function(a){if(a===null)return null;var b=h.isArray(a)?[]:{},c;for(c in a)b[c]=a[c]instanceof Date?new Date(a[c].getTime()):typeof a[c]==="object"?h.clone(a[c]):a[c];return b},eqs:function(a,b){return a.toLowerCase()===b.toLowerCase()},isArray:function(a){return Object.prototype.toString.apply(a)==="[object Array]"},isElement:function(a){return typeof HTMLElement==="object"?a instanceof HTMLElement:a&&typeof a==="object"&&a!==null&& -a.nodeType===1&&typeof a.nodeName==="string"},$:function(a,b,c){b&&typeof b!="string"&&(c=b,b="");return typeof a=="string"?r(a,c?c.treeObj.get(0).ownerDocument:null):r("#"+a.tId+b,c?c.treeObj:null)},getMDom:function(a,b,c){if(!b)return null;for(;b&&b.id!==a.treeId;){for(var d=0,e=c.length;b.tagName&&d0},uCanDo:function(){return!0}},j={addNodes:function(a,b,c,d,f){var i=e.nodeIsParent(a,b);if(!a.data.keep.leaf||!b||i)if(h.isArray(d)||(d=[d]),a.data.simpleData.enable&&(d=e.transformTozTreeFormat(a,d)),b){var i=l(b,g.id.SWITCH,a),m=l(b,g.id.ICON,a),k=l(b,g.id.UL,a);if(!b.open)j.replaceSwitchClass(b,i,g.folder.CLOSE),j.replaceIcoClass(b,m,g.folder.CLOSE),b.open=!1,k.css({display:"none"});e.addNodesData(a,b,c,d);j.createNodes(a,b.level+ -1,d,b,c);f||j.expandCollapseParentNode(a,b,!0)}else e.addNodesData(a,e.getRoot(a),c,d),j.createNodes(a,0,d,null,c)},appendNodes:function(a,b,c,d,f,i,g){if(!c)return[];var k=[],h=d?d:e.getRoot(a),h=e.nodeChildren(a,h),o,l;if(!h||f>=h.length-c.length)f=-1;for(var s=0,n=c.length;s0&&(l=j.appendNodes(a,b+1,I,p,-1, -i,g&&p.open));g&&(j.makeDOMNodeMainBefore(k,a,p),j.makeDOMNodeLine(k,a,p),e.getBeforeA(a,p,k),j.makeDOMNodeNameBefore(k,a,p),e.getInnerBeforeA(a,p,k),j.makeDOMNodeIcon(k,a,p),e.getInnerAfterA(a,p,k),j.makeDOMNodeNameAfter(k,a,p),e.getAfterA(a,p,k),o&&p.open&&j.makeUlHtml(a,p,k,l.join("")),j.makeDOMNodeMainAfter(k,a,p),e.addCreatedNode(a,p))}return k},appendParentULDom:function(a,b){var c=[],d=l(b,a);!d.get(0)&&b.parentTId&&(j.appendParentULDom(a,b.getParentNode()),d=l(b,a));var f=l(b,g.id.UL,a);f.get(0)&& -f.remove();f=e.nodeChildren(a,b);f=j.appendNodes(a,b.level+1,f,b,-1,!1,!0);j.makeUlHtml(a,b,c,f.join(""));d.append(c.join(""))},asyncNode:function(a,b,c,d){var f,i;f=e.nodeIsParent(a,b);if(b&&!f)return h.apply(d),!1;else if(b&&b.isAjaxing)return!1;else if(h.apply(a.callback.beforeAsync,[a.treeId,b],!0)==!1)return h.apply(d),!1;if(b)b.isAjaxing=!0,l(b,g.id.ICON,a).attr({style:"","class":g.className.BUTTON+" "+g.className.ICO_LOADING});var m={},k=h.apply(a.async.autoParam,[a.treeId,b],a.async.autoParam); -for(f=0,i=k.length;b&&f1&&(o=q[1],q=q[0]);m[o]=b[q]}k=h.apply(a.async.otherParam,[a.treeId,b],a.async.otherParam);if(h.isArray(k))for(f=0,i=k.length;f-1?JSON.stringify(m):m,dataType:a.async.dataType,headers:a.async.headers, -xhrFields:a.async.xhrFields,success:function(i){if(s==e.getRoot(a)._ver){var f=[];try{f=!i||i.length==0?[]:typeof i=="string"?eval("("+i+")"):i}catch(k){f=i}if(b)b.isAjaxing=null,b.zAsync=!0;j.setNodeLineIcos(a,b);f&&f!==""?(f=h.apply(a.async.dataFilter,[a.treeId,b,f],f),j.addNodes(a,b,-1,f?h.clone(f):[],!!c)):j.addNodes(a,b,-1,[],!!c);a.treeObj.trigger(g.event.ASYNC_SUCCESS,[a.treeId,b,i]);h.apply(d)}},error:function(c,d,i){if(s==e.getRoot(a)._ver){if(b)b.isAjaxing=null;j.setNodeLineIcos(a,b);a.treeObj.trigger(g.event.ASYNC_ERROR, -[a.treeId,b,c,d,i])}}});return!0},cancelPreSelectedNode:function(a,b,c){var d=e.getRoot(a).curSelectedList,f,i;for(f=d.length-1;f>=0;f--)if(i=d[f],b===i||!b&&(!c||c!==i))if(l(i,g.id.A,a).removeClass(g.node.CURSELECTED),b){e.removeSelectedNode(a,b);break}else d.splice(f,1),a.treeObj.trigger(g.event.UNSELECTED,[a.treeId,i])},createNodeCallback:function(a){if(a.callback.onNodeCreated||a.view.addDiyDom)for(var b=e.getRoot(a);b.createdNodes.length>0;){var c=b.createdNodes.shift();h.apply(a.view.addDiyDom, -[a.treeId,c]);a.callback.onNodeCreated&&a.treeObj.trigger(g.event.NODECREATED,[a.treeId,c])}},createNodes:function(a,b,c,d,f){if(c&&c.length!=0){var i=e.getRoot(a),m=!d||d.open||!!l(e.nodeChildren(a,d)[0],a).get(0);i.createdNodes=[];var b=j.appendNodes(a,b,c,d,f,!0,m),k,h;d?(d=l(d,g.id.UL,a),d.get(0)&&(k=d)):k=a.treeObj;k&&(f>=0&&(h=k.children()[f]),f>=0&&h?r(h).before(b.join("")):k.append(b.join("")));j.createNodeCallback(a)}},destroy:function(a){a&&(e.initCache(a),e.initRoot(a),n.unbindTree(a), -n.unbindEvent(a),a.treeObj.empty(),delete t[a.treeId])},expandCollapseNode:function(a,b,c,d,f){var i=e.getRoot(a),m;if(b){var k=e.nodeChildren(a,b),q=e.nodeIsParent(a,b);if(i.expandTriggerFlag)m=f,f=function(){m&&m();b.open?a.treeObj.trigger(g.event.EXPAND,[a.treeId,b]):a.treeObj.trigger(g.event.COLLAPSE,[a.treeId,b])},i.expandTriggerFlag=!1;if(!b.open&&q&&(!l(b,g.id.UL,a).get(0)||k&&k.length>0&&!l(k[0],a).get(0)))j.appendParentULDom(a,b),j.createNodeCallback(a);if(b.open==c)h.apply(f,[]);else{var c= -l(b,g.id.UL,a),i=l(b,g.id.SWITCH,a),o=l(b,g.id.ICON,a);q?(b.open=!b.open,b.iconOpen&&b.iconClose&&o.attr("style",j.makeNodeIcoStyle(a,b)),b.open?(j.replaceSwitchClass(b,i,g.folder.OPEN),j.replaceIcoClass(b,o,g.folder.OPEN),d==!1||a.view.expandSpeed==""?(c.show(),h.apply(f,[])):k&&k.length>0?c.slideDown(a.view.expandSpeed,f):(c.show(),h.apply(f,[]))):(j.replaceSwitchClass(b,i,g.folder.CLOSE),j.replaceIcoClass(b,o,g.folder.CLOSE),d==!1||a.view.expandSpeed==""||!(k&&k.length>0)?(c.hide(),h.apply(f,[])): -c.slideUp(a.view.expandSpeed,f))):h.apply(f,[])}}else h.apply(f,[])},expandCollapseParentNode:function(a,b,c,d,e){b&&(b.parentTId?(j.expandCollapseNode(a,b,c,d),b.parentTId&&j.expandCollapseParentNode(a,b.getParentNode(),c,d,e)):j.expandCollapseNode(a,b,c,d,e))},expandCollapseSonNode:function(a,b,c,d,f){var i=e.getRoot(a),i=b?e.nodeChildren(a,b):e.nodeChildren(a,i),g=b?!1:d,k=e.getRoot(a).expandTriggerFlag;e.getRoot(a).expandTriggerFlag=!1;if(i)for(var h=0,l=i.length;h=0;d--)if(b===c[d])return!0;return!1},makeDOMNodeIcon:function(a,b,c){var d=e.nodeName(b,c),d=b.view.nameIsHTML?d:d.replace(/&/g,"&").replace(//g,">");a.push("",d,"")},makeDOMNodeLine:function(a,b,c){a.push("")},makeDOMNodeMainAfter:function(a){a.push("
                                                                                                                                                                                                                                                                                                      • ")},makeDOMNodeMainBefore:function(a,b,c){a.push("
                                                                                                                                                                                                                                                                                                      • ")},makeDOMNodeNameAfter:function(a){a.push("")},makeDOMNodeNameBefore:function(a,b,c){var d= -e.nodeTitle(b,c),f=j.makeNodeUrl(b,c),i=j.makeNodeFontCss(b,c),m=[],k;for(k in i)m.push(k,":",i[k],";");a.push("0?"href='"+f+"'":""," target='",j.makeNodeTarget(c),"' style='",m.join(""),"'");h.apply(b.view.showTitle,[b.treeId,c],b.view.showTitle)&&d&&a.push("title='",d.replace(/'/g,"'").replace(//g,">"),"'");a.push(">")},makeNodeFontCss:function(a, -b){var c=h.apply(a.view.fontCss,[a.treeId,b],a.view.fontCss);return c&&typeof c!="function"?c:{}},makeNodeIcoClass:function(a,b){var c=["ico"];if(!b.isAjaxing){var d=e.nodeIsParent(a,b);c[0]=(b.iconSkin?b.iconSkin+"_":"")+c[0];d?c.push(b.open?g.folder.OPEN:g.folder.CLOSE):c.push(g.folder.DOCU)}return g.className.BUTTON+" "+c.join("_")},makeNodeIcoStyle:function(a,b){var c=[];if(!b.isAjaxing){var d=e.nodeIsParent(a,b)&&b.iconOpen&&b.iconClose?b.open?b.iconOpen:b.iconClose:b[a.data.key.icon];d&&c.push("background:url(", -d,") 0 0 no-repeat;");(a.view.showIcon==!1||!h.apply(a.view.showIcon,[a.treeId,b],!0))&&c.push("width:0px;height:0px;")}return c.join("")},makeNodeLineClass:function(a,b){var c=[];a.view.showLine?b.level==0&&b.isFirstNode&&b.isLastNode?c.push(g.line.ROOT):b.level==0&&b.isFirstNode?c.push(g.line.ROOTS):b.isLastNode?c.push(g.line.BOTTOM):c.push(g.line.CENTER):c.push(g.line.NOLINE);e.nodeIsParent(a,b)?c.push(b.open?g.folder.OPEN:g.folder.CLOSE):c.push(g.folder.DOCU);return j.makeNodeLineClassEx(b)+c.join("_")}, -makeNodeLineClassEx:function(a){return g.className.BUTTON+" "+g.className.LEVEL+a.level+" "+g.className.SWITCH+" "},makeNodeTarget:function(a){return a.target||"_blank"},makeNodeUrl:function(a,b){var c=a.data.key.url;return b[c]?b[c]:null},makeUlHtml:function(a,b,c,d){c.push("
                                                                                                                                                                                                                                                                                                          ");c.push(d);c.push("
                                                                                                                                                                                                                                                                                                        ")},makeUlLineClass:function(a,b){return a.view.showLine&&!b.isLastNode? -g.line.LINE:""},removeChildNodes:function(a,b){if(b){var c=e.nodeChildren(a,b);if(c){for(var d=0,f=c.length;dc.bottom||d.right>c.right||d.left0)c[0].isFirstNode= -!0},setLastNode:function(a,b){var c=e.nodeChildren(a,b);if(c.length>0)c[c.length-1].isLastNode=!0},removeNode:function(a,b){var c=e.getRoot(a),d=b.parentTId?b.getParentNode():c;b.isFirstNode=!1;b.isLastNode=!1;b.getPreNode=function(){return null};b.getNextNode=function(){return null};if(e.getNodeCache(a,b.tId)){l(b,a).remove();e.removeNodeCache(a,b);e.removeSelectedNode(a,b);for(var f=e.nodeChildren(a,d),i=0,h=f.length;i0){var q=f[i-1],i=l(q,g.id.UL,a),h=l(q,g.id.SWITCH,a);k=l(q,g.id.ICON,a);d==c?f.length==1?j.replaceSwitchClass(q,h,g.line.ROOT):(c=l(f[0],g.id.SWITCH,a),j.replaceSwitchClass(f[0],c,g.line.ROOTS),j.replaceSwitchClass(q, -h,g.line.BOTTOM)):j.replaceSwitchClass(q,h,g.line.BOTTOM);i.removeClass(g.line.LINE)}}},replaceIcoClass:function(a,b,c){if(b&&!a.isAjaxing&&(a=b.attr("class"),a!=void 0)){a=a.split("_");switch(c){case g.folder.OPEN:case g.folder.CLOSE:case g.folder.DOCU:a[a.length-1]=c}b.attr("class",a.join("_"))}},replaceSwitchClass:function(a,b,c){if(b){var d=b.attr("class");if(d!=void 0){d=d.split("_");switch(c){case g.line.ROOT:case g.line.ROOTS:case g.line.CENTER:case g.line.BOTTOM:case g.line.NOLINE:d[0]=j.makeNodeLineClassEx(a)+ -c;break;case g.folder.OPEN:case g.folder.CLOSE:case g.folder.DOCU:d[1]=c}b.attr("class",d.join("_"));c!==g.folder.DOCU?b.removeAttr("disabled"):b.attr("disabled","disabled")}}},selectNode:function(a,b,c){c||j.cancelPreSelectedNode(a,null,b);l(b,g.id.A,a).addClass(g.node.CURSELECTED);e.addSelectedNode(a,b);a.treeObj.trigger(g.event.SELECTED,[a.treeId,b])},setNodeFontCss:function(a,b){var c=l(b,g.id.A,a),d=j.makeNodeFontCss(a,b);d&&c.css(d)},setNodeLineIcos:function(a,b){if(b){var c=l(b,g.id.SWITCH, -a),d=l(b,g.id.UL,a),f=l(b,g.id.ICON,a),i=j.makeUlLineClass(a,b);i.length==0?d.removeClass(g.line.LINE):d.addClass(i);c.attr("class",j.makeNodeLineClass(a,b));e.nodeIsParent(a,b)?c.removeAttr("disabled"):c.attr("disabled","disabled");f.removeAttr("style");f.attr("style",j.makeNodeIcoStyle(a,b));f.attr("class",j.makeNodeIcoClass(a,b))}},setNodeName:function(a,b){var c=e.nodeTitle(a,b),d=l(b,g.id.SPAN,a);d.empty();a.view.nameIsHTML?d.html(e.nodeName(a,b)):d.text(e.nodeName(a,b));h.apply(a.view.showTitle, -[a.treeId,b],a.view.showTitle)&&l(b,g.id.A,a).attr("title",!c?"":c)},setNodeTarget:function(a,b){l(b,g.id.A,a).attr("target",j.makeNodeTarget(b))},setNodeUrl:function(a,b){var c=l(b,g.id.A,a),d=j.makeNodeUrl(a,b);d==null||d.length==0?c.removeAttr("href"):c.attr("href",d)},switchNode:function(a,b){b.open||!h.canAsync(a,b)?j.expandCollapseNode(a,b,!b.open):a.async.enable?j.asyncNode(a,b)||j.expandCollapseNode(a,b,!b.open):b&&j.expandCollapseNode(a,b,!b.open)}};r.fn.zTree={consts:{className:{BUTTON:"button", -LEVEL:"level",ICO_LOADING:"ico_loading",SWITCH:"switch",NAME:"node_name"},event:{NODECREATED:"ztree_nodeCreated",CLICK:"ztree_click",EXPAND:"ztree_expand",COLLAPSE:"ztree_collapse",ASYNC_SUCCESS:"ztree_async_success",ASYNC_ERROR:"ztree_async_error",REMOVE:"ztree_remove",SELECTED:"ztree_selected",UNSELECTED:"ztree_unselected"},id:{A:"_a",ICON:"_ico",SPAN:"_span",SWITCH:"_switch",UL:"_ul"},line:{ROOT:"root",ROOTS:"roots",CENTER:"center",BOTTOM:"bottom",NOLINE:"noline",LINE:"line"},folder:{OPEN:"open", -CLOSE:"close",DOCU:"docu"},node:{CURSELECTED:"curSelectedNode"}},_z:{tools:h,view:j,event:n,data:e},getZTreeObj:function(a){return(a=e.getZTreeTools(a))?a:null},destroy:function(a){if(a&&a.length>0)j.destroy(e.getSetting(a));else for(var b in t)j.destroy(t[b])},init:function(a,b,c){var d=h.clone(P);r.extend(!0,d,b);d.treeId=a.attr("id");d.treeObj=a;d.treeObj.empty();t[d.treeId]=d;if(typeof document.body.style.maxHeight==="undefined")d.view.expandSpeed="";e.initRoot(d);a=e.getRoot(d);c=c?h.clone(h.isArray(c)? -c:[c]):[];d.data.simpleData.enable?e.nodeChildren(d,a,e.transformTozTreeFormat(d,c)):e.nodeChildren(d,a,c);e.initCache(d);n.unbindTree(d);n.bindTree(d);n.unbindEvent(d);n.bindEvent(d);var f={setting:d,addNodes:function(a,b,c,f){function g(){j.addNodes(d,a,b,n,f==!0)}a||(a=null);var l=e.nodeIsParent(d,a);if(a&&!l&&d.data.keep.leaf)return null;l=parseInt(b,10);isNaN(l)?(f=!!c,c=b,b=-1):b=l;if(!c)return null;var n=h.clone(h.isArray(c)?c:[c]);h.canAsync(d,a)?j.asyncNode(d,a,f,g):g();return n},cancelSelectedNode:function(a){j.cancelPreSelectedNode(d, -a)},destroy:function(){j.destroy(d)},expandAll:function(a){a=!!a;j.expandCollapseSonNode(d,null,a,!0);return a},expandNode:function(a,b,c,f,g){function n(){var b=l(a,d).get(0);b&&f!==!1&&j.scrollIntoView(d,b)}if(!a||!e.nodeIsParent(d,a))return null;b!==!0&&b!==!1&&(b=!a.open);if((g=!!g)&&b&&h.apply(d.callback.beforeExpand,[d.treeId,a],!0)==!1)return null;else if(g&&!b&&h.apply(d.callback.beforeCollapse,[d.treeId,a],!0)==!1)return null;b&&a.parentTId&&j.expandCollapseParentNode(d,a.getParentNode(), -b,!1);if(b===a.open&&!c)return null;e.getRoot(d).expandTriggerFlag=g;!h.canAsync(d,a)&&c?j.expandCollapseSonNode(d,a,b,!0,n):(a.open=!b,j.switchNode(this.setting,a),n());return b},getNodes:function(){return e.getNodes(d)},getNodeByParam:function(a,b,c){return!a?null:e.getNodeByParam(d,c?e.nodeChildren(d,c):e.getNodes(d),a,b)},getNodeByTId:function(a){return e.getNodeCache(d,a)},getNodesByParam:function(a,b,c){return!a?null:e.getNodesByParam(d,c?e.nodeChildren(d,c):e.getNodes(d),a,b)},getNodesByParamFuzzy:function(a, -b,c){return!a?null:e.getNodesByParamFuzzy(d,c?e.nodeChildren(d,c):e.getNodes(d),a,b)},getNodesByFilter:function(a,b,c,f){b=!!b;return!a||typeof a!="function"?b?null:[]:e.getNodesByFilter(d,c?e.nodeChildren(d,c):e.getNodes(d),a,b,f)},getNodeIndex:function(a){if(!a)return null;for(var b=a.parentTId?a.getParentNode():e.getRoot(d),b=e.nodeChildren(d,b),c=0,f=b.length;c0?j.createNodes(d,0,c,null,-1):d.async.enable&&d.async.url&&d.async.url!==""&&j.asyncNode(d);return f}};var Q=r.fn.zTree,l=h.$,g=Q.consts})(jQuery); - -/* - * JQuery zTree excheck v3.5.40 - * http://treejs.cn/ - * - * Copyright (c) 2010 Hunter.z - * - * Licensed same as jquery - MIT License - * http://www.opensource.org/licenses/mit-license.php - * - * email: hunter.z@263.net - * Date: 2019-01-18 - */ -(function(m){var p,q,r,o={event:{CHECK:"ztree_check"},id:{CHECK:"_check"},checkbox:{STYLE:"checkbox",DEFAULT:"chk",DISABLED:"disable",FALSE:"false",TRUE:"true",FULL:"full",PART:"part",FOCUS:"focus"},radio:{STYLE:"radio",TYPE_ALL:"all",TYPE_LEVEL:"level"}},v={check:{enable:!1,autoCheckTrigger:!1,chkStyle:o.checkbox.STYLE,nocheckInherit:!1,chkDisabledInherit:!1,radioType:o.radio.TYPE_LEVEL,chkboxType:{Y:"ps",N:"ps"}},data:{key:{checked:"checked"}},callback:{beforeCheck:null,onCheck:null}};p=function(c, -a){if(a.chkDisabled===!0)return!1;var b=f.getSetting(c.data.treeId);if(i.apply(b.callback.beforeCheck,[b.treeId,a],!0)==!1)return!0;var d=f.nodeChecked(b,a);f.nodeChecked(b,a,!d);e.checkNodeRelation(b,a);d=n(a,h.id.CHECK,b);e.setChkClass(b,d,a);e.repairParentChkClassWithSelf(b,a);b.treeObj.trigger(h.event.CHECK,[c,b.treeId,a]);return!0};q=function(c,a){if(a.chkDisabled===!0)return!1;var b=f.getSetting(c.data.treeId),d=n(a,h.id.CHECK,b);a.check_Focus=!0;e.setChkClass(b,d,a);return!0};r=function(c, -a){if(a.chkDisabled===!0)return!1;var b=f.getSetting(c.data.treeId),d=n(a,h.id.CHECK,b);a.check_Focus=!1;e.setChkClass(b,d,a);return!0};m.extend(!0,m.fn.zTree.consts,o);m.extend(!0,m.fn.zTree._z,{tools:{},view:{checkNodeRelation:function(c,a){var b,d,j;d=h.radio;b=f.nodeChecked(c,a);if(c.check.chkStyle==d.STYLE){var g=f.getRadioCheckedList(c);if(b)if(c.check.radioType==d.TYPE_ALL){for(d=g.length-1;d>=0;d--){b=g[d];var k=f.nodeChecked(c,b);k&&b!=a&&(f.nodeChecked(c,b,!1),g.splice(d,1),e.setChkClass(c, -n(b,h.id.CHECK,c),b),b.parentTId!=a.parentTId&&e.repairParentChkClassWithSelf(c,b))}g.push(a)}else{g=a.parentTId?a.getParentNode():f.getRoot(c);g=f.nodeChildren(c,g);for(d=0,j=g.length;d-1)&&e.setSonNodeCheckBox(c,a, -!0),!b&&(!g||g.length==0||c.check.chkboxType.N.indexOf("s")>-1)&&e.setSonNodeCheckBox(c,a,!1),b&&c.check.chkboxType.Y.indexOf("p")>-1&&e.setParentNodeCheckBox(c,a,!0),!b&&c.check.chkboxType.N.indexOf("p")>-1&&e.setParentNodeCheckBox(c,a,!1)},makeChkClass:function(c,a){var b=h.checkbox,d=h.radio,j="",g=f.nodeChecked(c,a),j=a.chkDisabled===!0?b.DISABLED:a.halfCheck?b.PART:c.check.chkStyle==d.STYLE?a.check_Child_State<1?b.FULL:b.PART:g?a.check_Child_State===2||a.check_Child_State===-1?b.FULL:b.PART: -a.check_Child_State<1?b.FULL:b.PART,d=c.check.chkStyle+"_"+(g?b.TRUE:b.FALSE)+"_"+j,d=a.check_Focus&&a.chkDisabled!==!0?d+"_"+b.FOCUS:d;return h.className.BUTTON+" "+b.DEFAULT+" "+d},repairAllChk:function(c,a){if(c.check.enable&&c.check.chkStyle===h.checkbox.STYLE)for(var b=f.getRoot(c),b=f.nodeChildren(c,b),d=0,j=b.length;d0?e.repairParentChkClass(c,b[0]):e.repairParentChkClass(c,a)}},repairSonChkDisabled:function(c,a,b,d){if(a){if(a.chkDisabled!=b)a.chkDisabled=b;e.repairChkClass(c,a);if((a=f.nodeChildren(c,a))&&d)for(var j=0,g=a.length;j0){j=!1;break}}j&&e.setParentNodeCheckBox(c,a.getParentNode(),b,d)}},setSonNodeCheckBox:function(c,a,b,d){if(a){var j=n(a,h.id.CHECK,c);d||(d=a);var g=!1,k=f.nodeChildren(c,a);if(k)for(var i=0,l=k.length;i0?b?2:0:-1}else a.check_Child_State=-1;e.setChkClass(c,j,a);c.check.autoCheckTrigger&&a!=d&&a.nocheck!==!0&&a.chkDisabled!==!0&&c.treeObj.trigger(h.event.CHECK,[null,c.treeId,a])}}}},event:{},data:{getRadioCheckedList:function(c){for(var a=f.getRoot(c).radioCheckedList,b=0,d=a.length;b-1&&a.check_Child_State<2:a.check_Child_State>0}},getTreeCheckedNodes:function(c,a,b,d){if(!a)return[];for(var j=b&&c.check.chkStyle==h.radio.STYLE&&c.check.radioType==h.radio.TYPE_ALL,d=!d?[]:d,g=0,e=a.length;g0)break}return d},getTreeChangeCheckedNodes:function(c,a,b){if(!a)return[];for(var b=!b?[]:b,d=0,j=a.length;d0?2:0,l==2){b=2;break}else l==0&&(b=0);else if(c.check.chkStyle==h.checkbox.STYLE)if(l=e.nocheck===!0||e.chkDisabled===!0?e.check_Child_State:e.halfCheck===!0?1:i?e.check_Child_State===-1||e.check_Child_State===2?2:1:e.check_Child_State>0?1:0,l===1){b=1;break}else if(l===2&&b>-1&&j>0&&l!== -b){b=1;break}else if(b===2&&l>-1&&l<2){b=1;break}else l>-1&&(b=l)}a.check_Child_State=b}}}});var m=m.fn.zTree,i=m._z.tools,h=m.consts,e=m._z.view,f=m._z.data,n=i.$;f.nodeChecked=function(c,a,b){if(!a)return!1;c=c.data.key.checked;typeof b!=="undefined"?(typeof b==="string"&&(b=i.eqs(b,"true")),a[c]=!!b):a[c]=typeof a[c]=="string"?i.eqs(a[c],"true"):!!a[c];return a[c]};f.exSetting(v);f.addInitBind(function(c){c.treeObj.bind(h.event.CHECK,function(a,b,d,e){a.srcEvent=b;i.apply(c.callback.onCheck,[a, -d,e])})});f.addInitUnBind(function(c){c.treeObj.unbind(h.event.CHECK)});f.addInitCache(function(){});f.addInitNode(function(c,a,b,d){if(b){a=f.nodeChecked(c,b);b.checkedOld=a;if(typeof b.nocheck=="string")b.nocheck=i.eqs(b.nocheck,"true");b.nocheck=!!b.nocheck||c.check.nocheckInherit&&d&&!!d.nocheck;if(typeof b.chkDisabled=="string")b.chkDisabled=i.eqs(b.chkDisabled,"true");b.chkDisabled=!!b.chkDisabled||c.check.chkDisabledInherit&&d&&!!d.chkDisabled;if(typeof b.halfCheck=="string")b.halfCheck=i.eqs(b.halfCheck, -"true");b.halfCheck=!!b.halfCheck;b.check_Child_State=-1;b.check_Focus=!1;b.getCheckStatus=function(){return f.getCheckStatus(c,b)};c.check.chkStyle==h.radio.STYLE&&c.check.radioType==h.radio.TYPE_ALL&&a&&f.getRoot(c).radioCheckedList.push(b)}});f.addInitProxy(function(c){var a=c.target,b=f.getSetting(c.data.treeId),d="",e=null,g="",k=null;if(i.eqs(c.type,"mouseover")){if(b.check.enable&&i.eqs(a.tagName,"span")&&a.getAttribute("treeNode"+h.id.CHECK)!==null)d=i.getNodeMainDom(a).id,g="mouseoverCheck"}else if(i.eqs(c.type, -"mouseout")){if(b.check.enable&&i.eqs(a.tagName,"span")&&a.getAttribute("treeNode"+h.id.CHECK)!==null)d=i.getNodeMainDom(a).id,g="mouseoutCheck"}else if(i.eqs(c.type,"click")&&b.check.enable&&i.eqs(a.tagName,"span")&&a.getAttribute("treeNode"+h.id.CHECK)!==null)d=i.getNodeMainDom(a).id,g="checkNode";if(d.length>0)switch(e=f.getNodeCache(b,d),g){case "checkNode":k=p;break;case "mouseoverCheck":k=q;break;case "mouseoutCheck":k=r}return{stop:g==="checkNode",node:e,nodeEventType:g,nodeEventCallback:k, -treeEventType:"",treeEventCallback:null}},!0);f.addInitRoot(function(c){f.getRoot(c).radioCheckedList=[]});f.addBeforeA(function(c,a,b){c.check.enable&&(f.makeChkFlag(c,a),b.push(""))});f.addZTreeTools(function(c,a){a.checkNode=function(a,b,g,k){var m=f.nodeChecked(c,a);if(a.chkDisabled!==!0&&(b!==!0&&b!==!1&&(b=!m),k=!!k,(m!==b||g)&&!(k&&i.apply(this.setting.callback.beforeCheck, -[this.setting.treeId,a],!0)==!1)&&i.uCanDo(this.setting)&&this.setting.check.enable&&a.nocheck!==!0))f.nodeChecked(c,a,b),b=n(a,h.id.CHECK,this.setting),(g||this.setting.check.chkStyle===h.radio.STYLE)&&e.checkNodeRelation(this.setting,a),e.setChkClass(this.setting,b,a),e.repairParentChkClassWithSelf(this.setting,a),k&&this.setting.treeObj.trigger(h.event.CHECK,[null,this.setting.treeId,a])};a.checkAllNodes=function(a){e.repairAllChk(this.setting,!!a)};a.getCheckedNodes=function(a){var a=a!==!1,b= -f.nodeChildren(c,f.getRoot(this.setting));return f.getTreeCheckedNodes(this.setting,b,a)};a.getChangeCheckedNodes=function(){var a=f.nodeChildren(c,f.getRoot(this.setting));return f.getTreeChangeCheckedNodes(this.setting,a)};a.setChkDisabled=function(a,b,c,f){b=!!b;c=!!c;e.repairSonChkDisabled(this.setting,a,b,!!f);e.repairParentChkDisabled(this.setting,a.getParentNode(),b,c)};var b=a.updateNode;a.updateNode=function(c,f){b&&b.apply(a,arguments);if(c&&this.setting.check.enable&&n(c,this.setting).get(0)&& -i.uCanDo(this.setting)){var g=n(c,h.id.CHECK,this.setting);(f==!0||this.setting.check.chkStyle===h.radio.STYLE)&&e.checkNodeRelation(this.setting,c);e.setChkClass(this.setting,g,c);e.repairParentChkClassWithSelf(this.setting,c)}}});var s=e.createNodes;e.createNodes=function(c,a,b,d,f){s&&s.apply(e,arguments);b&&e.repairParentChkClassWithSelf(c,d)};var t=e.removeNode;e.removeNode=function(c,a){var b=a.getParentNode();t&&t.apply(e,arguments);a&&b&&(e.repairChkClass(c,b),e.repairParentChkClass(c,b))}; -var u=e.appendNodes;e.appendNodes=function(c,a,b,d,h,g,i){var m="";u&&(m=u.apply(e,arguments));d&&f.makeChkFlag(c,d);return m}})(jQuery); - -/* - * JQuery zTree exedit v3.5.40 - * http://treejs.cn/ - * - * Copyright (c) 2010 Hunter.z - * - * Licensed same as jquery - MIT License - * http://www.opensource.org/licenses/mit-license.php - * - * email: hunter.z@263.net - * Date: 2019-01-18 - */ -(function(B){var I={event:{DRAG:"ztree_drag",DROP:"ztree_drop",RENAME:"ztree_rename",DRAGMOVE:"ztree_dragmove"},id:{EDIT:"_edit",INPUT:"_input",REMOVE:"_remove"},move:{TYPE_INNER:"inner",TYPE_PREV:"prev",TYPE_NEXT:"next"},node:{CURSELECTED_EDIT:"curSelectedNode_Edit",TMPTARGET_TREE:"tmpTargetzTree",TMPTARGET_NODE:"tmpTargetNode"}},v={onHoverOverNode:function(a,b){var c=i.getSetting(a.data.treeId),d=i.getRoot(c);if(d.curHoverNode!=b)v.onHoverOutNode(a);d.curHoverNode=b;e.addHoverDom(c,b)},onHoverOutNode:function(a){var a= -i.getSetting(a.data.treeId),b=i.getRoot(a);if(b.curHoverNode&&!i.isSelectedNode(a,b.curHoverNode))e.removeTreeDom(a,b.curHoverNode),b.curHoverNode=null},onMousedownNode:function(a,b){function c(a){if(m.dragFlag==0&&Math.abs(N-a.clientX)1){var o=n[0].parentTId?i.nodeChildren(f,n[0].getParentNode()):i.getNodes(f);g=[];for(b=0,c=o.length;b-1&&p+1!==b&&(j=!1),g.push(o[b]),p=b),n.length===g.length){n=g;break}}j&&(H=n[0].getPreNode(),Q=n[n.length-1].getNextNode());C=q("
                                                                                                                                                                                                                                                                                                          ", -f);for(b=0,c=n.length;b0),e.removeTreeDom(f,g),b>f.edit.drag.maxShowNodeNum-1||(j=q("
                                                                                                                                                                                                                                                                                                        • ",f),j.append(q(g,d.id.A,f).clone()),j.css("padding","0"),j.children("#"+g.tId+d.id.A).removeClass(d.node.CURSELECTED),C.append(j),b==f.edit.drag.maxShowNodeNum-1&&(j=q("
                                                                                                                                                                                                                                                                                                        • ...
                                                                                                                                                                                                                                                                                                        • ",f),C.append(j)));C.attr("id",n[0].tId+d.id.UL+"_tmp");C.addClass(f.treeObj.attr("class"));C.appendTo(L);u=q("", -f);u.attr("id","zTreeMove_arrow_tmp");u.appendTo(L);f.treeObj.trigger(d.event.DRAG,[a,f.treeId,n])}if(m.dragFlag==1){t&&u.attr("id")==a.target.id&&w&&a.clientX+G.scrollLeft()+2>B("#"+w+d.id.A,t).offset().left?(g=B("#"+w+d.id.A,t),a.target=g.length>0?g.get(0):a.target):t&&(t.removeClass(d.node.TMPTARGET_TREE),w&&B("#"+w+d.id.A,t).removeClass(d.node.TMPTARGET_NODE+"_"+d.move.TYPE_PREV).removeClass(d.node.TMPTARGET_NODE+"_"+I.move.TYPE_NEXT).removeClass(d.node.TMPTARGET_NODE+"_"+I.move.TYPE_INNER)); -w=t=null;J=!1;h=f;g=i.getSettings();for(var z in g)if(g[z].treeId&&g[z].edit.enable&&g[z].treeId!=f.treeId&&(a.target.id==g[z].treeId||B(a.target).parents("#"+g[z].treeId).length>0))J=!0,h=g[z];z=G.scrollTop();j=G.scrollLeft();p=h.treeObj.offset();b=h.treeObj.get(0).scrollHeight;g=h.treeObj.get(0).scrollWidth;c=a.clientY+z-p.top;var E=h.treeObj.height()+p.top-a.clientY-z,r=a.clientX+j-p.left,s=h.treeObj.width()+p.left-a.clientX-j,p=cf.edit.drag.borderMin,o=Ef.edit.drag.borderMin,F=rf.edit.drag.borderMin,v=sf.edit.drag.borderMin,E=c>f.edit.drag.borderMin&&E>f.edit.drag.borderMin&&r>f.edit.drag.borderMin&&s>f.edit.drag.borderMin,r=p&&h.treeObj.scrollTop()<=0,s=o&&h.treeObj.scrollTop()+h.treeObj.height()+10>=b,M=F&&h.treeObj.scrollLeft()<=0,P=v&&h.treeObj.scrollLeft()+h.treeObj.width()+10>=g;if(a.target&&k.isChildOrSelf(a.target,h.treeId)){for(var D=a.target;D&&D.tagName&&!k.eqs(D.tagName,"li")&&D.id!= -h.treeId;)D=D.parentNode;var R=!0;for(b=0,c=n.length;b0){R=!1;break}if(R&&a.target&&k.isChildOrSelf(a.target,D.id+d.id.A))t=B(D),w=D.id}g=n[0];if(E&&k.isChildOrSelf(a.target,h.treeId)){if(!t&&(a.target.id==h.treeId||r||s||M||P)&&(J||!J&&g.parentTId))t=h.treeObj;p?h.treeObj.scrollTop(h.treeObj.scrollTop()-10):o&&h.treeObj.scrollTop(h.treeObj.scrollTop()+10);F?h.treeObj.scrollLeft(h.treeObj.scrollLeft()-10):v&&h.treeObj.scrollLeft(h.treeObj.scrollLeft()+ -10);t&&t!=h.treeObj&&t.offset().left=-0.2)&&g?(j=1-u.width(),b=E-u.height()/2,x=d.move.TYPE_PREV):(M==0||z>=M&&z<=1.2)&&c?(j=1-u.width(),b=v==null||i.nodeIsParent(f,A)&&A.open?E+F.height()-u.height()/2:v.offset().top-u.height()/2,x=d.move.TYPE_NEXT):p?(j=5-u.width(),b=E,x=d.move.TYPE_INNER):o(),t){u.css({display:"block",top:b+"px",left:r+j+"px"});F.addClass(d.node.TMPTARGET_NODE+"_"+x);if(S!=w||T!=x)K=(new Date).getTime();if(A&&i.nodeIsParent(f, -A)&&x==d.move.TYPE_INNER&&(z=!0,window.zTreeMoveTimer&&window.zTreeMoveTargetNodeTId!==A.tId?(clearTimeout(window.zTreeMoveTimer),window.zTreeMoveTargetNodeTId=null):window.zTreeMoveTimer&&window.zTreeMoveTargetNodeTId===A.tId&&(z=!1),z))window.zTreeMoveTimer=setTimeout(function(){x==d.move.TYPE_INNER&&A&&i.nodeIsParent(f,A)&&!A.open&&(new Date).getTime()-K>h.edit.drag.autoOpenTime&&k.apply(h.callback.beforeDragOpen,[h.treeId,A],!0)&&(e.switchNode(h,A),h.edit.drag.autoExpandTrigger&&h.treeObj.trigger(d.event.EXPAND, -[h.treeId,A]))},h.edit.drag.autoOpenTime+50),window.zTreeMoveTargetNodeTId=A.tId}}else if(x=d.move.TYPE_INNER,t&&k.apply(h.edit.drag.inner,[h.treeId,n,null],!!h.edit.drag.inner)?t.addClass(d.node.TMPTARGET_TREE):t=null,u.css({display:"none"}),window.zTreeMoveTimer)clearTimeout(window.zTreeMoveTimer),window.zTreeMoveTargetNodeTId=null;S=w;T=x;f.treeObj.trigger(d.event.DRAGMOVE,[a,f.treeId,n])}return!1}function l(a){if(window.zTreeMoveTimer)clearTimeout(window.zTreeMoveTimer),window.zTreeMoveTargetNodeTId= -null;T=S=null;G.unbind("mousemove",c);G.unbind("mouseup",l);G.unbind("selectstart",g);L.css("cursor","");t&&(t.removeClass(d.node.TMPTARGET_TREE),w&&B("#"+w+d.id.A,t).removeClass(d.node.TMPTARGET_NODE+"_"+d.move.TYPE_PREV).removeClass(d.node.TMPTARGET_NODE+"_"+I.move.TYPE_NEXT).removeClass(d.node.TMPTARGET_NODE+"_"+I.move.TYPE_INNER));k.showIfameMask(f,!1);y.showHoverDom=!0;if(m.dragFlag!=0){m.dragFlag=0;var b,j,o;for(b=0,j=n.length;b0;)c.dragMaskList[0].remove(),c.dragMaskList.shift();if(b)for(var d=q("iframe",a),g=0,e=d.length;g
                                                                                                                                                                                                                                                                                                          ",a);j.appendTo(q("body",a));c.dragMaskList.push(j)}}},view:{addEditBtn:function(a,b){if(!(b.editNameFlag|| -q(b,d.id.EDIT,a).length>0)&&k.apply(a.edit.showRenameBtn,[a.treeId,b],a.edit.showRenameBtn)){var c=q(b,d.id.A,a),l="";c.append(l);q(b,d.id.EDIT,a).bind("click",function(){if(!k.uCanDo(a)||k.apply(a.callback.beforeEditName,[a.treeId,b],!0)==!1)return!1;e.editNode(a,b);return!1}).show()}},addRemoveBtn:function(a, -b){if(!(b.editNameFlag||q(b,d.id.REMOVE,a).length>0)&&k.apply(a.edit.showRemoveBtn,[a.treeId,b],a.edit.showRemoveBtn)){var c=q(b,d.id.A,a),l="";c.append(l);q(b,d.id.REMOVE,a).bind("click",function(){if(!k.uCanDo(a)||k.apply(a.callback.beforeRemove,[a.treeId,b],!0)==!1)return!1;e.removeNode(a,b);a.treeObj.trigger(d.event.REMOVE, -[a.treeId,b]);return!1}).bind("mousedown",function(){return!0}).show()}},addHoverDom:function(a,b){if(i.getRoots().showHoverDom)b.isHover=!0,a.edit.enable&&(e.addEditBtn(a,b),e.addRemoveBtn(a,b)),k.apply(a.view.addHoverDom,[a.treeId,b])},cancelCurEditNode:function(a,b,c){var l=i.getRoot(a),g=l.curEditNode;if(g){var o=l.curEditInput,b=b?b:c?i.nodeName(a,g):o.val();if(k.apply(a.callback.beforeRename,[a.treeId,g,b,c],!0)===!1)return!1;i.nodeName(a,g,b);q(g,d.id.A,a).removeClass(d.node.CURSELECTED_EDIT); -o.unbind();e.setNodeName(a,g);g.editNameFlag=!1;l.curEditNode=null;l.curEditInput=null;e.selectNode(a,g,!1);a.treeObj.trigger(d.event.RENAME,[a.treeId,g,c])}return l.noSelection=!0},editNode:function(a,b){var c=i.getRoot(a);e.editNodeBlur=!1;if(i.isSelectedNode(a,b)&&c.curEditNode==b&&b.editNameFlag)setTimeout(function(){k.inputFocus(c.curEditInput)},0);else{b.editNameFlag=!0;e.removeTreeDom(a,b);e.cancelCurEditNode(a);e.selectNode(a,b,!1);q(b,d.id.SPAN,a).html("");var l=q(b,d.id.INPUT,a);l.attr("value",i.nodeName(a,b));a.edit.editNameSelectAll?k.inputSelect(l):k.inputFocus(l);l.bind("blur",function(){e.editNodeBlur||e.cancelCurEditNode(a)}).bind("keydown",function(b){b.keyCode=="13"?(e.editNodeBlur=!0,e.cancelCurEditNode(a)):b.keyCode=="27"&&e.cancelCurEditNode(a,null,!0)}).bind("click",function(){return!1}).bind("dblclick",function(){return!1});q(b,d.id.A,a).addClass(d.node.CURSELECTED_EDIT);c.curEditInput=l; -c.noSelection=!1;c.curEditNode=b}},moveNode:function(a,b,c,l,g,k){var j=i.getRoot(a);if(b!=c&&(!a.data.keep.leaf||!b||i.nodeIsParent(a,b)||l!=d.move.TYPE_INNER)){var f=c.parentTId?c.getParentNode():j,m=b===null||b==j;m&&b===null&&(b=j);if(m)l=d.move.TYPE_INNER;j=b.parentTId?b.getParentNode():j;if(l!=d.move.TYPE_PREV&&l!=d.move.TYPE_NEXT)l=d.move.TYPE_INNER;if(l==d.move.TYPE_INNER)if(m)c.parentTId=null;else{if(!i.nodeIsParent(a,b))i.nodeIsParent(a,b,!0),b.open=!!b.open,e.setNodeLineIcos(a,b);c.parentTId= -b.tId}var y;m?y=m=a.treeObj:(!k&&l==d.move.TYPE_INNER?e.expandCollapseNode(a,b,!0,!1):k||e.expandCollapseNode(a,b.getParentNode(),!0,!1),m=q(b,a),y=q(b,d.id.UL,a),m.get(0)&&!y.get(0)&&(y=[],e.makeUlHtml(a,b,y,""),m.append(y.join(""))),y=q(b,d.id.UL,a));var r=q(c,a);r.get(0)?m.get(0)||r.remove():r=e.appendNodes(a,c.level,[c],null,-1,!1,!0).join("");y.get(0)&&l==d.move.TYPE_INNER?y.append(r):m.get(0)&&l==d.move.TYPE_PREV?m.before(r):m.get(0)&&l==d.move.TYPE_NEXT&&m.after(r);var s;y=-1;var r=0,n=null, -m=null,B=c.level,v=i.nodeChildren(a,f),C=i.nodeChildren(a,j),u=i.nodeChildren(a,b);if(c.isFirstNode){if(y=0,v.length>1)n=v[1],n.isFirstNode=!0}else if(c.isLastNode)y=v.length-1,n=v[y-1],n.isLastNode=!0;else for(j=0,s=v.length;j=0&&v.splice(y,1);if(l!=d.move.TYPE_INNER)for(j=0,s=C.length;j0)m=u[u.length-1],m.isLastNode=!1;u.splice(u.length,0,c);c.isLastNode=!0;c.isFirstNode= -u.length==1}else b.isFirstNode&&l==d.move.TYPE_PREV?(C.splice(r,0,c),m=b,m.isFirstNode=!1,c.parentTId=b.parentTId,c.isFirstNode=!0,c.isLastNode=!1):b.isLastNode&&l==d.move.TYPE_NEXT?(C.splice(r+1,0,c),m=b,m.isLastNode=!1,c.parentTId=b.parentTId,c.isFirstNode=!1,c.isLastNode=!0):(l==d.move.TYPE_PREV?C.splice(r,0,c):C.splice(r+1,0,c),c.parentTId=b.parentTId,c.isFirstNode=!1,c.isLastNode=!1);i.fixPIdKeyValue(a,c);i.setSonNodeLevel(a,c.getParentNode(),c);e.setNodeLineIcos(a,c);e.repairNodeLevelClass(a, -c,B);!a.data.keep.parent&&v.length<1?(i.nodeIsParent(a,f,!1),f.open=!1,b=q(f,d.id.UL,a),l=q(f,d.id.SWITCH,a),j=q(f,d.id.ICON,a),e.replaceSwitchClass(f,l,d.folder.DOCU),e.replaceIcoClass(f,j,d.folder.DOCU),b.css("display","none")):n&&e.setNodeLineIcos(a,n);m&&e.setNodeLineIcos(a,m);a.check&&a.check.enable&&e.repairChkClass&&(e.repairChkClass(a,f),e.repairParentChkClassWithSelf(a,f),f!=c.parent&&e.repairParentChkClassWithSelf(a,c));k||e.expandCollapseParentNode(a,c.getParentNode(),!0,g)}},removeEditBtn:function(a, -b){q(b,d.id.EDIT,a).unbind().remove()},removeRemoveBtn:function(a,b){q(b,d.id.REMOVE,a).unbind().remove()},removeTreeDom:function(a,b){b.isHover=!1;e.removeEditBtn(a,b);e.removeRemoveBtn(a,b);k.apply(a.view.removeHoverDom,[a.treeId,b])},repairNodeLevelClass:function(a,b,c){if(c!==b.level){var e=q(b,a),g=q(b,d.id.A,a),a=q(b,d.id.UL,a),c=d.className.LEVEL+c,b=d.className.LEVEL+b.level;e.removeClass(c);e.addClass(b);g.removeClass(c);g.addClass(b);a.removeClass(c);a.addClass(b)}},selectNodes:function(a, -b){for(var c=0,d=b.length;c0)}},event:{},data:{setSonNodeLevel:function(a,b,c){if(c){var d=i.nodeChildren(a,c);c.level=b?b.level+1:0;if(d)for(var b=0,g=d.length;b0)switch(o=i.getNodeCache(c,g),j){case "mousedownNode":f=v.onMousedownNode;break;case "hoverOverNode":f=v.onHoverOverNode; -break;case "hoverOutNode":f=v.onHoverOutNode}return{stop:!1,node:o,nodeEventType:j,nodeEventCallback:f,treeEventType:"",treeEventCallback:null}});i.addInitRoot(function(a){var a=i.getRoot(a),b=i.getRoots();a.curEditNode=null;a.curEditInput=null;a.curHoverNode=null;a.dragFlag=0;a.dragNodeShowBefore=[];a.dragMaskList=[];b.showHoverDom=!0});i.addZTreeTools(function(a,b){b.cancelEditName=function(a){i.getRoot(this.setting).curEditNode&&e.cancelCurEditNode(this.setting,a?a:null,!0)};b.copyNode=function(b, -l,g,o){if(!l)return null;var j=i.nodeIsParent(a,b);if(b&&!j&&this.setting.data.keep.leaf&&g===d.move.TYPE_INNER)return null;var f=this,m=k.clone(l);if(!b)b=null,g=d.move.TYPE_INNER;g==d.move.TYPE_INNER?(l=function(){e.addNodes(f.setting,b,-1,[m],o)},k.canAsync(this.setting,b)?e.asyncNode(this.setting,b,o,l):l()):(e.addNodes(this.setting,b.parentNode,-1,[m],o),e.moveNode(this.setting,b,m,g,!1,o));return m};b.editName=function(a){a&&a.tId&&a===i.getNodeCache(this.setting,a.tId)&&(a.parentTId&&e.expandCollapseParentNode(this.setting, -a.getParentNode(),!0),e.editNode(this.setting,a))};b.moveNode=function(b,l,g,o){function j(){e.moveNode(m.setting,b,l,g,!1,o)}if(!l)return l;var f=i.nodeIsParent(a,b);if(b&&!f&&this.setting.data.keep.leaf&&g===d.move.TYPE_INNER)return null;else if(b&&(l.parentTId==b.tId&&g==d.move.TYPE_INNER||q(l,this.setting).find("#"+b.tId).length>0))return null;else b||(b=null);var m=this;k.canAsync(this.setting,b)&&g===d.move.TYPE_INNER?e.asyncNode(this.setting,b,o,j):j();return l};b.setEditable=function(a){this.setting.edit.enable= -a;return this.refresh()}});var N=e.cancelPreSelectedNode;e.cancelPreSelectedNode=function(a,b){for(var c=i.getRoot(a).curSelectedList,d=0,g=c.length;d 0 && tId.length == 0) { - tmp = tools.getMDom(setting, target, [{tagName: "a", attrName: "treeNode" + consts.id.A}]); - if (tmp) { - tId = tools.getNodeMainDom(tmp).id; - } - } - // event to node - if (tId.length > 0) { - node = data.getNodeCache(setting, tId); - switch (nodeEventType) { - case "switchNode" : - var isParent = data.nodeIsParent(setting, node); - if (!isParent) { - nodeEventType = ""; - } else if (tools.eqs(event.type, "click") - || (tools.eqs(event.type, "dblclick") && tools.apply(setting.view.dblClickExpand, [setting.treeId, node], setting.view.dblClickExpand))) { - nodeEventCallback = handler.onSwitchNode; - } else { - nodeEventType = ""; - } - break; - case "clickNode" : - nodeEventCallback = handler.onClickNode; - break; - } - } - // event to zTree - switch (treeEventType) { - case "mousedown" : - treeEventCallback = handler.onZTreeMousedown; - break; - case "mouseup" : - treeEventCallback = handler.onZTreeMouseup; - break; - case "dblclick" : - treeEventCallback = handler.onZTreeDblclick; - break; - case "contextmenu" : - treeEventCallback = handler.onZTreeContextmenu; - break; - } - var proxyResult = { - stop: false, - node: node, - nodeEventType: nodeEventType, - nodeEventCallback: nodeEventCallback, - treeEventType: treeEventType, - treeEventCallback: treeEventCallback - }; - return proxyResult - }, - //default init node of core - _initNode = function (setting, level, n, parentNode, isFirstNode, isLastNode, openFlag) { - if (!n) return; - var r = data.getRoot(setting), - children = data.nodeChildren(setting, n); - n.level = level; - n.tId = setting.treeId + "_" + (++r.zId); - n.parentTId = parentNode ? parentNode.tId : null; - n.open = (typeof n.open == "string") ? tools.eqs(n.open, "true") : !!n.open; - var isParent = data.nodeIsParent(setting, n); - if (tools.isArray(children)) { - data.nodeIsParent(setting, n, true); - n.zAsync = true; - } else { - isParent = data.nodeIsParent(setting, n, isParent); - n.open = (isParent && !setting.async.enable) ? n.open : false; - n.zAsync = !isParent; - } - n.isFirstNode = isFirstNode; - n.isLastNode = isLastNode; - n.getParentNode = function () { - return data.getNodeCache(setting, n.parentTId); - }; - n.getPreNode = function () { - return data.getPreNode(setting, n); - }; - n.getNextNode = function () { - return data.getNextNode(setting, n); - }; - n.getIndex = function () { - return data.getNodeIndex(setting, n); - }; - n.getPath = function () { - return data.getNodePath(setting, n); - }; - n.isAjaxing = false; - data.fixPIdKeyValue(setting, n); - }, - _init = { - bind: [_bindEvent], - unbind: [_unbindEvent], - caches: [_initCache], - nodes: [_initNode], - proxys: [_eventProxy], - roots: [_initRoot], - beforeA: [], - afterA: [], - innerBeforeA: [], - innerAfterA: [], - zTreeTools: [] - }, - //method of operate data - data = { - addNodeCache: function (setting, node) { - data.getCache(setting).nodes[data.getNodeCacheId(node.tId)] = node; - }, - getNodeCacheId: function (tId) { - return tId.substring(tId.lastIndexOf("_") + 1); - }, - addAfterA: function (afterA) { - _init.afterA.push(afterA); - }, - addBeforeA: function (beforeA) { - _init.beforeA.push(beforeA); - }, - addInnerAfterA: function (innerAfterA) { - _init.innerAfterA.push(innerAfterA); - }, - addInnerBeforeA: function (innerBeforeA) { - _init.innerBeforeA.push(innerBeforeA); - }, - addInitBind: function (bindEvent) { - _init.bind.push(bindEvent); - }, - addInitUnBind: function (unbindEvent) { - _init.unbind.push(unbindEvent); - }, - addInitCache: function (initCache) { - _init.caches.push(initCache); - }, - addInitNode: function (initNode) { - _init.nodes.push(initNode); - }, - addInitProxy: function (initProxy, isFirst) { - if (!!isFirst) { - _init.proxys.splice(0, 0, initProxy); - } else { - _init.proxys.push(initProxy); - } - }, - addInitRoot: function (initRoot) { - _init.roots.push(initRoot); - }, - addNodesData: function (setting, parentNode, index, nodes) { - var children = data.nodeChildren(setting, parentNode), params; - if (!children) { - children = data.nodeChildren(setting, parentNode, []); - index = -1; - } else if (index >= children.length) { - index = -1; - } - - if (children.length > 0 && index === 0) { - children[0].isFirstNode = false; - view.setNodeLineIcos(setting, children[0]); - } else if (children.length > 0 && index < 0) { - children[children.length - 1].isLastNode = false; - view.setNodeLineIcos(setting, children[children.length - 1]); - } - data.nodeIsParent(setting, parentNode, true); - - if (index < 0) { - data.nodeChildren(setting, parentNode, children.concat(nodes)); - } else { - params = [index, 0].concat(nodes); - children.splice.apply(children, params); - } - }, - addSelectedNode: function (setting, node) { - var root = data.getRoot(setting); - if (!data.isSelectedNode(setting, node)) { - root.curSelectedList.push(node); - } - }, - addCreatedNode: function (setting, node) { - if (!!setting.callback.onNodeCreated || !!setting.view.addDiyDom) { - var root = data.getRoot(setting); - root.createdNodes.push(node); - } - }, - addZTreeTools: function (zTreeTools) { - _init.zTreeTools.push(zTreeTools); - }, - exSetting: function (s) { - $.extend(true, _setting, s); - }, - fixPIdKeyValue: function (setting, node) { - if (setting.data.simpleData.enable) { - node[setting.data.simpleData.pIdKey] = node.parentTId ? node.getParentNode()[setting.data.simpleData.idKey] : setting.data.simpleData.rootPId; - } - }, - getAfterA: function (setting, node, array) { - for (var i = 0, j = _init.afterA.length; i < j; i++) { - _init.afterA[i].apply(this, arguments); - } - }, - getBeforeA: function (setting, node, array) { - for (var i = 0, j = _init.beforeA.length; i < j; i++) { - _init.beforeA[i].apply(this, arguments); - } - }, - getInnerAfterA: function (setting, node, array) { - for (var i = 0, j = _init.innerAfterA.length; i < j; i++) { - _init.innerAfterA[i].apply(this, arguments); - } - }, - getInnerBeforeA: function (setting, node, array) { - for (var i = 0, j = _init.innerBeforeA.length; i < j; i++) { - _init.innerBeforeA[i].apply(this, arguments); - } - }, - getCache: function (setting) { - return caches[setting.treeId]; - }, - getNodeIndex: function (setting, node) { - if (!node) return null; - var p = node.parentTId ? node.getParentNode() : data.getRoot(setting), - children = data.nodeChildren(setting, p); - for (var i = 0, l = children.length - 1; i <= l; i++) { - if (children[i] === node) { - return i; - } - } - return -1; - }, - getNextNode: function (setting, node) { - if (!node) return null; - var p = node.parentTId ? node.getParentNode() : data.getRoot(setting), - children = data.nodeChildren(setting, p); - for (var i = 0, l = children.length - 1; i <= l; i++) { - if (children[i] === node) { - return (i == l ? null : children[i + 1]); - } - } - return null; - }, - getNodeByParam: function (setting, nodes, key, value) { - if (!nodes || !key) return null; - for (var i = 0, l = nodes.length; i < l; i++) { - var node = nodes[i]; - if (node[key] == value) { - return nodes[i]; - } - var children = data.nodeChildren(setting, node); - var tmp = data.getNodeByParam(setting, children, key, value); - if (tmp) return tmp; - } - return null; - }, - getNodeCache: function (setting, tId) { - if (!tId) return null; - var n = caches[setting.treeId].nodes[data.getNodeCacheId(tId)]; - return n ? n : null; - }, - getNodePath: function (setting, node) { - if (!node) return null; - - var path; - if (node.parentTId) { - path = node.getParentNode().getPath(); - } else { - path = []; - } - - if (path) { - path.push(node); - } - - return path; - }, - getNodes: function (setting) { - return data.nodeChildren(setting, data.getRoot(setting)); - }, - getNodesByParam: function (setting, nodes, key, value) { - if (!nodes || !key) return []; - var result = []; - for (var i = 0, l = nodes.length; i < l; i++) { - var node = nodes[i]; - if (node[key] == value) { - result.push(node); - } - var children = data.nodeChildren(setting, node); - result = result.concat(data.getNodesByParam(setting, children, key, value)); - } - return result; - }, - getNodesByParamFuzzy: function (setting, nodes, key, value) { - if (!nodes || !key) return []; - var result = []; - value = value.toLowerCase(); - for (var i = 0, l = nodes.length; i < l; i++) { - var node = nodes[i]; - if (typeof node[key] == "string" && nodes[i][key].toLowerCase().indexOf(value) > -1) { - result.push(node); - } - var children = data.nodeChildren(setting, node); - result = result.concat(data.getNodesByParamFuzzy(setting, children, key, value)); - } - return result; - }, - getNodesByFilter: function (setting, nodes, filter, isSingle, invokeParam) { - if (!nodes) return (isSingle ? null : []); - var result = isSingle ? null : []; - for (var i = 0, l = nodes.length; i < l; i++) { - var node = nodes[i]; - if (tools.apply(filter, [node, invokeParam], false)) { - if (isSingle) { - return node; - } - result.push(node); - } - var children = data.nodeChildren(setting, node); - var tmpResult = data.getNodesByFilter(setting, children, filter, isSingle, invokeParam); - if (isSingle && !!tmpResult) { - return tmpResult; - } - result = isSingle ? tmpResult : result.concat(tmpResult); - } - return result; - }, - getPreNode: function (setting, node) { - if (!node) return null; - var p = node.parentTId ? node.getParentNode() : data.getRoot(setting), - children = data.nodeChildren(setting, p); - for (var i = 0, l = children.length; i < l; i++) { - if (children[i] === node) { - return (i == 0 ? null : children[i - 1]); - } - } - return null; - }, - getRoot: function (setting) { - return setting ? roots[setting.treeId] : null; - }, - getRoots: function () { - return roots; - }, - getSetting: function (treeId) { - return settings[treeId]; - }, - getSettings: function () { - return settings; - }, - getZTreeTools: function (treeId) { - var r = this.getRoot(this.getSetting(treeId)); - return r ? r.treeTools : null; - }, - initCache: function (setting) { - for (var i = 0, j = _init.caches.length; i < j; i++) { - _init.caches[i].apply(this, arguments); - } - }, - initNode: function (setting, level, node, parentNode, preNode, nextNode) { - for (var i = 0, j = _init.nodes.length; i < j; i++) { - _init.nodes[i].apply(this, arguments); - } - }, - initRoot: function (setting) { - for (var i = 0, j = _init.roots.length; i < j; i++) { - _init.roots[i].apply(this, arguments); - } - }, - isSelectedNode: function (setting, node) { - var root = data.getRoot(setting); - for (var i = 0, j = root.curSelectedList.length; i < j; i++) { - if (node === root.curSelectedList[i]) return true; - } - return false; - }, - nodeChildren: function (setting, node, newChildren) { - if (!node) { - return null; - } - var key = setting.data.key.children; - if (typeof newChildren !== 'undefined') { - node[key] = newChildren; - } - return node[key]; - }, - nodeIsParent: function (setting, node, newIsParent) { - if (!node) { - return false; - } - var key = setting.data.key.isParent; - if (typeof newIsParent !== 'undefined') { - if (typeof newIsParent === "string") { - newIsParent = tools.eqs(newIsParent, "true"); - } - newIsParent = !!newIsParent; - node[key] = newIsParent; - } else if (typeof node[key] == "string"){ - node[key] = tools.eqs(node[key], "true"); - } else { - node[key] = !!node[key]; - } - return node[key]; - }, - nodeName: function (setting, node, newName) { - var key = setting.data.key.name; - if (typeof newName !== 'undefined') { - node[key] = newName; - } - return "" + node[key]; - }, - nodeTitle: function (setting, node) { - var t = setting.data.key.title === "" ? setting.data.key.name : setting.data.key.title; - return "" + node[t]; - }, - removeNodeCache: function (setting, node) { - var children = data.nodeChildren(setting, node); - if (children) { - for (var i = 0, l = children.length; i < l; i++) { - data.removeNodeCache(setting, children[i]); - } - } - data.getCache(setting).nodes[data.getNodeCacheId(node.tId)] = null; - }, - removeSelectedNode: function (setting, node) { - var root = data.getRoot(setting); - for (var i = 0, j = root.curSelectedList.length; i < j; i++) { - if (node === root.curSelectedList[i] || !data.getNodeCache(setting, root.curSelectedList[i].tId)) { - root.curSelectedList.splice(i, 1); - setting.treeObj.trigger(consts.event.UNSELECTED, [setting.treeId, node]); - i--; - j--; - } - } - }, - setCache: function (setting, cache) { - caches[setting.treeId] = cache; - }, - setRoot: function (setting, root) { - roots[setting.treeId] = root; - }, - setZTreeTools: function (setting, zTreeTools) { - for (var i = 0, j = _init.zTreeTools.length; i < j; i++) { - _init.zTreeTools[i].apply(this, arguments); - } - }, - transformToArrayFormat: function (setting, nodes) { - if (!nodes) return []; - var r = []; - if (tools.isArray(nodes)) { - for (var i = 0, l = nodes.length; i < l; i++) { - var node = nodes[i]; - _do(node); - } - } else { - _do(nodes); - } - return r; - - function _do(_node) { - r.push(_node); - var children = data.nodeChildren(setting, _node); - if (children) { - r = r.concat(data.transformToArrayFormat(setting, children)); - } - } - }, - transformTozTreeFormat: function (setting, sNodes) { - var i, l, - key = setting.data.simpleData.idKey, - parentKey = setting.data.simpleData.pIdKey; - if (!key || key == "" || !sNodes) return []; - - if (tools.isArray(sNodes)) { - var r = []; - var tmpMap = {}; - for (i = 0, l = sNodes.length; i < l; i++) { - tmpMap[sNodes[i][key]] = sNodes[i]; - } - for (i = 0, l = sNodes.length; i < l; i++) { - var p = tmpMap[sNodes[i][parentKey]]; - if (p && sNodes[i][key] != sNodes[i][parentKey]) { - var children = data.nodeChildren(setting, p); - if (!children) { - children = data.nodeChildren(setting, p, []); - } - children.push(sNodes[i]); - } else { - r.push(sNodes[i]); - } - } - return r; - } else { - return [sNodes]; - } - } - }, - //method of event proxy - event = { - bindEvent: function (setting) { - for (var i = 0, j = _init.bind.length; i < j; i++) { - _init.bind[i].apply(this, arguments); - } - }, - unbindEvent: function (setting) { - for (var i = 0, j = _init.unbind.length; i < j; i++) { - _init.unbind[i].apply(this, arguments); - } - }, - bindTree: function (setting) { - var eventParam = { - treeId: setting.treeId - }, - o = setting.treeObj; - if (!setting.view.txtSelectedEnable) { - // for can't select text - o.bind('selectstart', handler.onSelectStart).css({ - "-moz-user-select": "-moz-none" - }); - } - o.bind('click', eventParam, event.proxy); - o.bind('dblclick', eventParam, event.proxy); - o.bind('mouseover', eventParam, event.proxy); - o.bind('mouseout', eventParam, event.proxy); - o.bind('mousedown', eventParam, event.proxy); - o.bind('mouseup', eventParam, event.proxy); - o.bind('contextmenu', eventParam, event.proxy); - }, - unbindTree: function (setting) { - var o = setting.treeObj; - o.unbind('selectstart', handler.onSelectStart) - .unbind('click', event.proxy) - .unbind('dblclick', event.proxy) - .unbind('mouseover', event.proxy) - .unbind('mouseout', event.proxy) - .unbind('mousedown', event.proxy) - .unbind('mouseup', event.proxy) - .unbind('contextmenu', event.proxy); - }, - doProxy: function (e) { - var results = []; - for (var i = 0, j = _init.proxys.length; i < j; i++) { - var proxyResult = _init.proxys[i].apply(this, arguments); - results.push(proxyResult); - if (proxyResult.stop) { - break; - } - } - return results; - }, - proxy: function (e) { - var setting = data.getSetting(e.data.treeId); - if (!tools.uCanDo(setting, e)) return true; - var results = event.doProxy(e), - r = true, x = false; - for (var i = 0, l = results.length; i < l; i++) { - var proxyResult = results[i]; - if (proxyResult.nodeEventCallback) { - x = true; - r = proxyResult.nodeEventCallback.apply(proxyResult, [e, proxyResult.node]) && r; - } - if (proxyResult.treeEventCallback) { - x = true; - r = proxyResult.treeEventCallback.apply(proxyResult, [e, proxyResult.node]) && r; - } - } - return r; - } - }, - //method of event handler - handler = { - onSwitchNode: function (event, node) { - var setting = data.getSetting(event.data.treeId); - if (node.open) { - if (tools.apply(setting.callback.beforeCollapse, [setting.treeId, node], true) == false) return true; - data.getRoot(setting).expandTriggerFlag = true; - view.switchNode(setting, node); - } else { - if (tools.apply(setting.callback.beforeExpand, [setting.treeId, node], true) == false) return true; - data.getRoot(setting).expandTriggerFlag = true; - view.switchNode(setting, node); - } - return true; - }, - onClickNode: function (event, node) { - var setting = data.getSetting(event.data.treeId), - clickFlag = ((setting.view.autoCancelSelected && (event.ctrlKey || event.metaKey)) && data.isSelectedNode(setting, node)) ? 0 : (setting.view.autoCancelSelected && (event.ctrlKey || event.metaKey) && setting.view.selectedMulti) ? 2 : 1; - if (tools.apply(setting.callback.beforeClick, [setting.treeId, node, clickFlag], true) == false) return true; - if (clickFlag === 0) { - view.cancelPreSelectedNode(setting, node); - } else { - view.selectNode(setting, node, clickFlag === 2); - } - setting.treeObj.trigger(consts.event.CLICK, [event, setting.treeId, node, clickFlag]); - return true; - }, - onZTreeMousedown: function (event, node) { - var setting = data.getSetting(event.data.treeId); - if (tools.apply(setting.callback.beforeMouseDown, [setting.treeId, node], true)) { - tools.apply(setting.callback.onMouseDown, [event, setting.treeId, node]); - } - return true; - }, - onZTreeMouseup: function (event, node) { - var setting = data.getSetting(event.data.treeId); - if (tools.apply(setting.callback.beforeMouseUp, [setting.treeId, node], true)) { - tools.apply(setting.callback.onMouseUp, [event, setting.treeId, node]); - } - return true; - }, - onZTreeDblclick: function (event, node) { - var setting = data.getSetting(event.data.treeId); - if (tools.apply(setting.callback.beforeDblClick, [setting.treeId, node], true)) { - tools.apply(setting.callback.onDblClick, [event, setting.treeId, node]); - } - return true; - }, - onZTreeContextmenu: function (event, node) { - var setting = data.getSetting(event.data.treeId); - if (tools.apply(setting.callback.beforeRightClick, [setting.treeId, node], true)) { - tools.apply(setting.callback.onRightClick, [event, setting.treeId, node]); - } - return (typeof setting.callback.onRightClick) != "function"; - }, - onSelectStart: function (e) { - var n = e.originalEvent.srcElement.nodeName.toLowerCase(); - return (n === "input" || n === "textarea"); - } - }, - //method of tools for zTree - tools = { - apply: function (fun, param, defaultValue) { - if ((typeof fun) == "function") { - return fun.apply(zt, param ? param : []); - } - return defaultValue; - }, - canAsync: function (setting, node) { - var children = data.nodeChildren(setting, node); - var isParent = data.nodeIsParent(setting, node); - return (setting.async.enable && node && isParent && !(node.zAsync || (children && children.length > 0))); - }, - clone: function (obj) { - if (obj === null) return null; - var o = tools.isArray(obj) ? [] : {}; - for (var i in obj) { - o[i] = (obj[i] instanceof Date) ? new Date(obj[i].getTime()) : (typeof obj[i] === "object" ? tools.clone(obj[i]) : obj[i]); - } - return o; - }, - eqs: function (str1, str2) { - return str1.toLowerCase() === str2.toLowerCase(); - }, - isArray: function (arr) { - return Object.prototype.toString.apply(arr) === "[object Array]"; - }, - isElement: function (o) { - return ( - typeof HTMLElement === "object" ? o instanceof HTMLElement : //DOM2 - o && typeof o === "object" && o !== null && o.nodeType === 1 && typeof o.nodeName === "string" - ); - }, - $: function (node, exp, setting) { - if (!!exp && typeof exp != "string") { - setting = exp; - exp = ""; - } - if (typeof node == "string") { - return $(node, setting ? setting.treeObj.get(0).ownerDocument : null); - } else { - return $("#" + node.tId + exp, setting ? setting.treeObj : null); - } - }, - getMDom: function (setting, curDom, targetExpr) { - if (!curDom) return null; - while (curDom && curDom.id !== setting.treeId) { - for (var i = 0, l = targetExpr.length; curDom.tagName && i < l; i++) { - if (tools.eqs(curDom.tagName, targetExpr[i].tagName) && curDom.getAttribute(targetExpr[i].attrName) !== null) { - return curDom; - } - } - curDom = curDom.parentNode; - } - return null; - }, - getNodeMainDom: function (target) { - return ($(target).parent("li").get(0) || $(target).parentsUntil("li").parent().get(0)); - }, - isChildOrSelf: function (dom, parentId) { - return ($(dom).closest("#" + parentId).length > 0); - }, - uCanDo: function (setting, e) { - return true; - } - }, - //method of operate ztree dom - view = { - addNodes: function (setting, parentNode, index, newNodes, isSilent) { - var isParent = data.nodeIsParent(setting, parentNode); - if (setting.data.keep.leaf && parentNode && !isParent) { - return; - } - if (!tools.isArray(newNodes)) { - newNodes = [newNodes]; - } - if (setting.data.simpleData.enable) { - newNodes = data.transformTozTreeFormat(setting, newNodes); - } - if (parentNode) { - var target_switchObj = $$(parentNode, consts.id.SWITCH, setting), - target_icoObj = $$(parentNode, consts.id.ICON, setting), - target_ulObj = $$(parentNode, consts.id.UL, setting); - - if (!parentNode.open) { - view.replaceSwitchClass(parentNode, target_switchObj, consts.folder.CLOSE); - view.replaceIcoClass(parentNode, target_icoObj, consts.folder.CLOSE); - parentNode.open = false; - target_ulObj.css({ - "display": "none" - }); - } - - data.addNodesData(setting, parentNode, index, newNodes); - view.createNodes(setting, parentNode.level + 1, newNodes, parentNode, index); - if (!isSilent) { - view.expandCollapseParentNode(setting, parentNode, true); - } - } else { - data.addNodesData(setting, data.getRoot(setting), index, newNodes); - view.createNodes(setting, 0, newNodes, null, index); - } - }, - appendNodes: function (setting, level, nodes, parentNode, index, initFlag, openFlag) { - if (!nodes) return []; - var html = []; - - var tmpPNode = (parentNode) ? parentNode : data.getRoot(setting), - tmpPChild = data.nodeChildren(setting, tmpPNode), - isFirstNode, isLastNode; - - if (!tmpPChild || index >= tmpPChild.length - nodes.length) { - index = -1; - } - - for (var i = 0, l = nodes.length; i < l; i++) { - var node = nodes[i]; - if (initFlag) { - isFirstNode = ((index === 0 || tmpPChild.length == nodes.length) && (i == 0)); - isLastNode = (index < 0 && i == (nodes.length - 1)); - data.initNode(setting, level, node, parentNode, isFirstNode, isLastNode, openFlag); - data.addNodeCache(setting, node); - } - var isParent = data.nodeIsParent(setting, node); - - var childHtml = []; - var children = data.nodeChildren(setting, node); - if (children && children.length > 0) { - //make child html first, because checkType - childHtml = view.appendNodes(setting, level + 1, children, node, -1, initFlag, openFlag && node.open); - } - if (openFlag) { - view.makeDOMNodeMainBefore(html, setting, node); - view.makeDOMNodeLine(html, setting, node); - data.getBeforeA(setting, node, html); - view.makeDOMNodeNameBefore(html, setting, node); - data.getInnerBeforeA(setting, node, html); - view.makeDOMNodeIcon(html, setting, node); - data.getInnerAfterA(setting, node, html); - view.makeDOMNodeNameAfter(html, setting, node); - data.getAfterA(setting, node, html); - if (isParent && node.open) { - view.makeUlHtml(setting, node, html, childHtml.join('')); - } - view.makeDOMNodeMainAfter(html, setting, node); - data.addCreatedNode(setting, node); - } - } - return html; - }, - appendParentULDom: function (setting, node) { - var html = [], - nObj = $$(node, setting); - if (!nObj.get(0) && !!node.parentTId) { - view.appendParentULDom(setting, node.getParentNode()); - nObj = $$(node, setting); - } - var ulObj = $$(node, consts.id.UL, setting); - if (ulObj.get(0)) { - ulObj.remove(); - } - var children = data.nodeChildren(setting, node), - childHtml = view.appendNodes(setting, node.level + 1, children, node, -1, false, true); - view.makeUlHtml(setting, node, html, childHtml.join('')); - nObj.append(html.join('')); - }, - asyncNode: function (setting, node, isSilent, callback) { - var i, l; - var isParent = data.nodeIsParent(setting, node); - if (node && !isParent) { - tools.apply(callback); - return false; - } else if (node && node.isAjaxing) { - return false; - } else if (tools.apply(setting.callback.beforeAsync, [setting.treeId, node], true) == false) { - tools.apply(callback); - return false; - } - if (node) { - node.isAjaxing = true; - var icoObj = $$(node, consts.id.ICON, setting); - icoObj.attr({"style": "", "class": consts.className.BUTTON + " " + consts.className.ICO_LOADING}); - } - - var tmpParam = {}; - var autoParam = tools.apply(setting.async.autoParam, [setting.treeId, node], setting.async.autoParam); - for (i = 0, l = autoParam.length; node && i < l; i++) { - var pKey = autoParam[i].split("="), spKey = pKey; - if (pKey.length > 1) { - spKey = pKey[1]; - pKey = pKey[0]; - } - tmpParam[spKey] = node[pKey]; - } - var otherParam = tools.apply(setting.async.otherParam, [setting.treeId, node], setting.async.otherParam); - if (tools.isArray(otherParam)) { - for (i = 0, l = otherParam.length; i < l; i += 2) { - tmpParam[otherParam[i]] = otherParam[i + 1]; - } - } else { - for (var p in otherParam) { - tmpParam[p] = otherParam[p]; - } - } - - var _tmpV = data.getRoot(setting)._ver; - $.ajax({ - contentType: setting.async.contentType, - cache: false, - type: setting.async.type, - url: tools.apply(setting.async.url, [setting.treeId, node], setting.async.url), - data: setting.async.contentType.indexOf('application/json') > -1 ? JSON.stringify(tmpParam) : tmpParam, - dataType: setting.async.dataType, - headers: setting.async.headers, - xhrFields: setting.async.xhrFields, - success: function (msg) { - if (_tmpV != data.getRoot(setting)._ver) { - return; - } - var newNodes = []; - try { - if (!msg || msg.length == 0) { - newNodes = []; - } else if (typeof msg == "string") { - newNodes = eval("(" + msg + ")"); - } else { - newNodes = msg; - } - } catch (err) { - newNodes = msg; - } - - if (node) { - node.isAjaxing = null; - node.zAsync = true; - } - view.setNodeLineIcos(setting, node); - if (newNodes && newNodes !== "") { - newNodes = tools.apply(setting.async.dataFilter, [setting.treeId, node, newNodes], newNodes); - view.addNodes(setting, node, -1, !!newNodes ? tools.clone(newNodes) : [], !!isSilent); - } else { - view.addNodes(setting, node, -1, [], !!isSilent); - } - setting.treeObj.trigger(consts.event.ASYNC_SUCCESS, [setting.treeId, node, msg]); - tools.apply(callback); - }, - error: function (XMLHttpRequest, textStatus, errorThrown) { - if (_tmpV != data.getRoot(setting)._ver) { - return; - } - if (node) node.isAjaxing = null; - view.setNodeLineIcos(setting, node); - setting.treeObj.trigger(consts.event.ASYNC_ERROR, [setting.treeId, node, XMLHttpRequest, textStatus, errorThrown]); - } - }); - return true; - }, - cancelPreSelectedNode: function (setting, node, excludeNode) { - var list = data.getRoot(setting).curSelectedList, - i, n; - for (i = list.length - 1; i >= 0; i--) { - n = list[i]; - if (node === n || (!node && (!excludeNode || excludeNode !== n))) { - $$(n, consts.id.A, setting).removeClass(consts.node.CURSELECTED); - if (node) { - data.removeSelectedNode(setting, node); - break; - } else { - list.splice(i, 1); - setting.treeObj.trigger(consts.event.UNSELECTED, [setting.treeId, n]); - } - } - } - }, - createNodeCallback: function (setting) { - if (!!setting.callback.onNodeCreated || !!setting.view.addDiyDom) { - var root = data.getRoot(setting); - while (root.createdNodes.length > 0) { - var node = root.createdNodes.shift(); - tools.apply(setting.view.addDiyDom, [setting.treeId, node]); - if (!!setting.callback.onNodeCreated) { - setting.treeObj.trigger(consts.event.NODECREATED, [setting.treeId, node]); - } - } - } - }, - createNodes: function (setting, level, nodes, parentNode, index) { - if (!nodes || nodes.length == 0) return; - var root = data.getRoot(setting), - openFlag = !parentNode || parentNode.open || !!$$(data.nodeChildren(setting, parentNode)[0], setting).get(0); - root.createdNodes = []; - var zTreeHtml = view.appendNodes(setting, level, nodes, parentNode, index, true, openFlag), - parentObj, nextObj; - - if (!parentNode) { - parentObj = setting.treeObj; - //setting.treeObj.append(zTreeHtml.join('')); - } else { - var ulObj = $$(parentNode, consts.id.UL, setting); - if (ulObj.get(0)) { - parentObj = ulObj; - //ulObj.append(zTreeHtml.join('')); - } - } - if (parentObj) { - if (index >= 0) { - nextObj = parentObj.children()[index]; - } - if (index >= 0 && nextObj) { - $(nextObj).before(zTreeHtml.join('')); - } else { - parentObj.append(zTreeHtml.join('')); - } - } - - view.createNodeCallback(setting); - }, - destroy: function (setting) { - if (!setting) return; - data.initCache(setting); - data.initRoot(setting); - event.unbindTree(setting); - event.unbindEvent(setting); - setting.treeObj.empty(); - delete settings[setting.treeId]; - }, - expandCollapseNode: function (setting, node, expandFlag, animateFlag, callback) { - var root = data.getRoot(setting); - var tmpCb, _callback; - if (!node) { - tools.apply(callback, []); - return; - } - var children = data.nodeChildren(setting, node); - var isParent = data.nodeIsParent(setting, node); - if (root.expandTriggerFlag) { - _callback = callback; - tmpCb = function () { - if (_callback) _callback(); - if (node.open) { - setting.treeObj.trigger(consts.event.EXPAND, [setting.treeId, node]); - } else { - setting.treeObj.trigger(consts.event.COLLAPSE, [setting.treeId, node]); - } - }; - callback = tmpCb; - root.expandTriggerFlag = false; - } - if (!node.open && isParent && ((!$$(node, consts.id.UL, setting).get(0)) || (children && children.length > 0 && !$$(children[0], setting).get(0)))) { - view.appendParentULDom(setting, node); - view.createNodeCallback(setting); - } - if (node.open == expandFlag) { - tools.apply(callback, []); - return; - } - var ulObj = $$(node, consts.id.UL, setting), - switchObj = $$(node, consts.id.SWITCH, setting), - icoObj = $$(node, consts.id.ICON, setting); - - if (isParent) { - node.open = !node.open; - if (node.iconOpen && node.iconClose) { - icoObj.attr("style", view.makeNodeIcoStyle(setting, node)); - } - - if (node.open) { - view.replaceSwitchClass(node, switchObj, consts.folder.OPEN); - view.replaceIcoClass(node, icoObj, consts.folder.OPEN); - if (animateFlag == false || setting.view.expandSpeed == "") { - ulObj.show(); - tools.apply(callback, []); - } else { - if (children && children.length > 0) { - ulObj.slideDown(setting.view.expandSpeed, callback); - } else { - ulObj.show(); - tools.apply(callback, []); - } - } - } else { - view.replaceSwitchClass(node, switchObj, consts.folder.CLOSE); - view.replaceIcoClass(node, icoObj, consts.folder.CLOSE); - if (animateFlag == false || setting.view.expandSpeed == "" || !(children && children.length > 0)) { - ulObj.hide(); - tools.apply(callback, []); - } else { - ulObj.slideUp(setting.view.expandSpeed, callback); - } - } - } else { - tools.apply(callback, []); - } - }, - expandCollapseParentNode: function (setting, node, expandFlag, animateFlag, callback) { - if (!node) return; - if (!node.parentTId) { - view.expandCollapseNode(setting, node, expandFlag, animateFlag, callback); - return; - } else { - view.expandCollapseNode(setting, node, expandFlag, animateFlag); - } - if (node.parentTId) { - view.expandCollapseParentNode(setting, node.getParentNode(), expandFlag, animateFlag, callback); - } - }, - expandCollapseSonNode: function (setting, node, expandFlag, animateFlag, callback) { - var root = data.getRoot(setting), - treeNodes = (node) ? data.nodeChildren(setting, node) : data.nodeChildren(setting, root), - selfAnimateSign = (node) ? false : animateFlag, - expandTriggerFlag = data.getRoot(setting).expandTriggerFlag; - data.getRoot(setting).expandTriggerFlag = false; - if (treeNodes) { - for (var i = 0, l = treeNodes.length; i < l; i++) { - if (treeNodes[i]) view.expandCollapseSonNode(setting, treeNodes[i], expandFlag, selfAnimateSign); - } - } - data.getRoot(setting).expandTriggerFlag = expandTriggerFlag; - view.expandCollapseNode(setting, node, expandFlag, animateFlag, callback); - }, - isSelectedNode: function (setting, node) { - if (!node) { - return false; - } - var list = data.getRoot(setting).curSelectedList, - i; - for (i = list.length - 1; i >= 0; i--) { - if (node === list[i]) { - return true; - } - } - return false; - }, - makeDOMNodeIcon: function (html, setting, node) { - var nameStr = data.nodeName(setting, node), - name = setting.view.nameIsHTML ? nameStr : nameStr.replace(/&/g, '&').replace(//g, '>'); - html.push("", name, ""); - }, - makeDOMNodeLine: function (html, setting, node) { - html.push(""); - }, - makeDOMNodeMainAfter: function (html, setting, node) { - html.push(""); - }, - makeDOMNodeMainBefore: function (html, setting, node) { - html.push("
                                                                                                                                                                                                                                                                                                        • "); - }, - makeDOMNodeNameAfter: function (html, setting, node) { - html.push(""); - }, - makeDOMNodeNameBefore: function (html, setting, node) { - var title = data.nodeTitle(setting, node), - url = view.makeNodeUrl(setting, node), - fontcss = view.makeNodeFontCss(setting, node), - fontStyle = []; - for (var f in fontcss) { - fontStyle.push(f, ":", fontcss[f], ";"); - } - html.push(" 0) ? "href='" + url + "'" : ""), " target='", view.makeNodeTarget(node), "' style='", fontStyle.join(''), - "'"); - if (tools.apply(setting.view.showTitle, [setting.treeId, node], setting.view.showTitle) && title) { - html.push("title='", title.replace(/'/g, "'").replace(//g, '>'), "'"); - } - html.push(">"); - }, - makeNodeFontCss: function (setting, node) { - var fontCss = tools.apply(setting.view.fontCss, [setting.treeId, node], setting.view.fontCss); - return (fontCss && ((typeof fontCss) != "function")) ? fontCss : {}; - }, - makeNodeIcoClass: function (setting, node) { - var icoCss = ["ico"]; - if (!node.isAjaxing) { - var isParent = data.nodeIsParent(setting, node); - icoCss[0] = (node.iconSkin ? node.iconSkin + "_" : "") + icoCss[0]; - if (isParent) { - icoCss.push(node.open ? consts.folder.OPEN : consts.folder.CLOSE); - } else { - icoCss.push(consts.folder.DOCU); - } - } - return consts.className.BUTTON + " " + icoCss.join('_'); - }, - makeNodeIcoStyle: function (setting, node) { - var icoStyle = []; - if (!node.isAjaxing) { - var isParent = data.nodeIsParent(setting, node); - var icon = (isParent && node.iconOpen && node.iconClose) ? (node.open ? node.iconOpen : node.iconClose) : node[setting.data.key.icon]; - if (icon) icoStyle.push("background:url(", icon, ") 0 0 no-repeat;"); - if (setting.view.showIcon == false || !tools.apply(setting.view.showIcon, [setting.treeId, node], true)) { - icoStyle.push("width:0px;height:0px;"); - } - } - return icoStyle.join(''); - }, - makeNodeLineClass: function (setting, node) { - var lineClass = []; - if (setting.view.showLine) { - if (node.level == 0 && node.isFirstNode && node.isLastNode) { - lineClass.push(consts.line.ROOT); - } else if (node.level == 0 && node.isFirstNode) { - lineClass.push(consts.line.ROOTS); - } else if (node.isLastNode) { - lineClass.push(consts.line.BOTTOM); - } else { - lineClass.push(consts.line.CENTER); - } - } else { - lineClass.push(consts.line.NOLINE); - } - if (data.nodeIsParent(setting, node)) { - lineClass.push(node.open ? consts.folder.OPEN : consts.folder.CLOSE); - } else { - lineClass.push(consts.folder.DOCU); - } - return view.makeNodeLineClassEx(node) + lineClass.join('_'); - }, - makeNodeLineClassEx: function (node) { - return consts.className.BUTTON + " " + consts.className.LEVEL + node.level + " " + consts.className.SWITCH + " "; - }, - makeNodeTarget: function (node) { - return (node.target || "_blank"); - }, - makeNodeUrl: function (setting, node) { - var urlKey = setting.data.key.url; - return node[urlKey] ? node[urlKey] : null; - }, - makeUlHtml: function (setting, node, html, content) { - html.push("
                                                                                                                                                                                                                                                                                                            "); - html.push(content); - html.push("
                                                                                                                                                                                                                                                                                                          "); - }, - makeUlLineClass: function (setting, node) { - return ((setting.view.showLine && !node.isLastNode) ? consts.line.LINE : ""); - }, - removeChildNodes: function (setting, node) { - if (!node) return; - var nodes = data.nodeChildren(setting, node); - if (!nodes) return; - - for (var i = 0, l = nodes.length; i < l; i++) { - data.removeNodeCache(setting, nodes[i]); - } - data.removeSelectedNode(setting); - delete node[setting.data.key.children]; - - if (!setting.data.keep.parent) { - data.nodeIsParent(setting, node, false); - node.open = false; - var tmp_switchObj = $$(node, consts.id.SWITCH, setting), - tmp_icoObj = $$(node, consts.id.ICON, setting); - view.replaceSwitchClass(node, tmp_switchObj, consts.folder.DOCU); - view.replaceIcoClass(node, tmp_icoObj, consts.folder.DOCU); - $$(node, consts.id.UL, setting).remove(); - } else { - $$(node, consts.id.UL, setting).empty(); - } - }, - scrollIntoView: function (setting, dom) { - if (!dom) { - return; - } - // support IE 7 - if (typeof Element === 'undefined') { - var contRect = setting.treeObj.get(0).getBoundingClientRect(), - findMeRect = dom.getBoundingClientRect(); - if (findMeRect.top < contRect.top || findMeRect.bottom > contRect.bottom - || findMeRect.right > contRect.right || findMeRect.left < contRect.left) { - dom.scrollIntoView(); - } - return; - } - // CC-BY jocki84@googlemail.com, https://gist.github.com/jocki84/6ffafd003387179a988e - if (!Element.prototype.scrollIntoViewIfNeeded) { - Element.prototype.scrollIntoViewIfNeeded = function (centerIfNeeded) { - "use strict"; - - function makeRange(start, length) { - return {"start": start, "length": length, "end": start + length}; - } - - function coverRange(inner, outer) { - if ( - false === centerIfNeeded || - (outer.start < inner.end && inner.start < outer.end) - ) { - return Math.max( - inner.end - outer.length, - Math.min(outer.start, inner.start) - ); - } - return (inner.start + inner.end - outer.length) / 2; - } - - function makePoint(x, y) { - return { - "x": x, - "y": y, - "translate": function translate(dX, dY) { - return makePoint(x + dX, y + dY); - } - }; - } - - function absolute(elem, pt) { - while (elem) { - pt = pt.translate(elem.offsetLeft, elem.offsetTop); - elem = elem.offsetParent; - } - return pt; - } - - var target = absolute(this, makePoint(0, 0)), - extent = makePoint(this.offsetWidth, this.offsetHeight), - elem = this.parentNode, - origin; - - while (elem instanceof HTMLElement) { - // Apply desired scroll amount. - origin = absolute(elem, makePoint(elem.clientLeft, elem.clientTop)); - elem.scrollLeft = coverRange( - makeRange(target.x - origin.x, extent.x), - makeRange(elem.scrollLeft, elem.clientWidth) - ); - elem.scrollTop = coverRange( - makeRange(target.y - origin.y, extent.y), - makeRange(elem.scrollTop, elem.clientHeight) - ); - - // Determine actual scroll amount by reading back scroll properties. - target = target.translate(-elem.scrollLeft, -elem.scrollTop); - elem = elem.parentNode; - } - }; - } - dom.scrollIntoViewIfNeeded(); - }, - setFirstNode: function (setting, parentNode) { - var children = data.nodeChildren(setting, parentNode); - if (children.length > 0) { - children[0].isFirstNode = true; - } - }, - setLastNode: function (setting, parentNode) { - var children = data.nodeChildren(setting, parentNode); - if (children.length > 0) { - children[children.length - 1].isLastNode = true; - } - }, - removeNode: function (setting, node) { - var root = data.getRoot(setting), - parentNode = (node.parentTId) ? node.getParentNode() : root; - - node.isFirstNode = false; - node.isLastNode = false; - node.getPreNode = function () { - return null; - }; - node.getNextNode = function () { - return null; - }; - - if (!data.getNodeCache(setting, node.tId)) { - return; - } - - $$(node, setting).remove(); - data.removeNodeCache(setting, node); - data.removeSelectedNode(setting, node); - - var children = data.nodeChildren(setting, parentNode); - for (var i = 0, l = children.length; i < l; i++) { - if (children[i].tId == node.tId) { - children.splice(i, 1); - break; - } - } - view.setFirstNode(setting, parentNode); - view.setLastNode(setting, parentNode); - - var tmp_ulObj, tmp_switchObj, tmp_icoObj, - childLength = children.length; - - //repair nodes old parent - if (!setting.data.keep.parent && childLength == 0) { - //old parentNode has no child nodes - data.nodeIsParent(setting, parentNode, false); - parentNode.open = false; - delete parentNode[setting.data.key.children]; - tmp_ulObj = $$(parentNode, consts.id.UL, setting); - tmp_switchObj = $$(parentNode, consts.id.SWITCH, setting); - tmp_icoObj = $$(parentNode, consts.id.ICON, setting); - view.replaceSwitchClass(parentNode, tmp_switchObj, consts.folder.DOCU); - view.replaceIcoClass(parentNode, tmp_icoObj, consts.folder.DOCU); - tmp_ulObj.css("display", "none"); - - } else if (setting.view.showLine && childLength > 0) { - //old parentNode has child nodes - var newLast = children[childLength - 1]; - tmp_ulObj = $$(newLast, consts.id.UL, setting); - tmp_switchObj = $$(newLast, consts.id.SWITCH, setting); - tmp_icoObj = $$(newLast, consts.id.ICON, setting); - if (parentNode == root) { - if (children.length == 1) { - //node was root, and ztree has only one root after move node - view.replaceSwitchClass(newLast, tmp_switchObj, consts.line.ROOT); - } else { - var tmp_first_switchObj = $$(children[0], consts.id.SWITCH, setting); - view.replaceSwitchClass(children[0], tmp_first_switchObj, consts.line.ROOTS); - view.replaceSwitchClass(newLast, tmp_switchObj, consts.line.BOTTOM); - } - } else { - view.replaceSwitchClass(newLast, tmp_switchObj, consts.line.BOTTOM); - } - tmp_ulObj.removeClass(consts.line.LINE); - } - }, - replaceIcoClass: function (node, obj, newName) { - if (!obj || node.isAjaxing) return; - var tmpName = obj.attr("class"); - if (tmpName == undefined) return; - var tmpList = tmpName.split("_"); - switch (newName) { - case consts.folder.OPEN: - case consts.folder.CLOSE: - case consts.folder.DOCU: - tmpList[tmpList.length - 1] = newName; - break; - } - obj.attr("class", tmpList.join("_")); - }, - replaceSwitchClass: function (node, obj, newName) { - if (!obj) return; - var tmpName = obj.attr("class"); - if (tmpName == undefined) return; - var tmpList = tmpName.split("_"); - switch (newName) { - case consts.line.ROOT: - case consts.line.ROOTS: - case consts.line.CENTER: - case consts.line.BOTTOM: - case consts.line.NOLINE: - tmpList[0] = view.makeNodeLineClassEx(node) + newName; - break; - case consts.folder.OPEN: - case consts.folder.CLOSE: - case consts.folder.DOCU: - tmpList[1] = newName; - break; - } - obj.attr("class", tmpList.join("_")); - if (newName !== consts.folder.DOCU) { - obj.removeAttr("disabled"); - } else { - obj.attr("disabled", "disabled"); - } - }, - selectNode: function (setting, node, addFlag) { - if (!addFlag) { - view.cancelPreSelectedNode(setting, null, node); - } - $$(node, consts.id.A, setting).addClass(consts.node.CURSELECTED); - data.addSelectedNode(setting, node); - setting.treeObj.trigger(consts.event.SELECTED, [setting.treeId, node]); - }, - setNodeFontCss: function (setting, treeNode) { - var aObj = $$(treeNode, consts.id.A, setting), - fontCss = view.makeNodeFontCss(setting, treeNode); - if (fontCss) { - aObj.css(fontCss); - } - }, - setNodeLineIcos: function (setting, node) { - if (!node) return; - var switchObj = $$(node, consts.id.SWITCH, setting), - ulObj = $$(node, consts.id.UL, setting), - icoObj = $$(node, consts.id.ICON, setting), - ulLine = view.makeUlLineClass(setting, node); - if (ulLine.length == 0) { - ulObj.removeClass(consts.line.LINE); - } else { - ulObj.addClass(ulLine); - } - switchObj.attr("class", view.makeNodeLineClass(setting, node)); - if (data.nodeIsParent(setting, node)) { - switchObj.removeAttr("disabled"); - } else { - switchObj.attr("disabled", "disabled"); - } - icoObj.removeAttr("style"); - icoObj.attr("style", view.makeNodeIcoStyle(setting, node)); - icoObj.attr("class", view.makeNodeIcoClass(setting, node)); - }, - setNodeName: function (setting, node) { - var title = data.nodeTitle(setting, node), - nObj = $$(node, consts.id.SPAN, setting); - nObj.empty(); - if (setting.view.nameIsHTML) { - nObj.html(data.nodeName(setting, node)); - } else { - nObj.text(data.nodeName(setting, node)); - } - if (tools.apply(setting.view.showTitle, [setting.treeId, node], setting.view.showTitle)) { - var aObj = $$(node, consts.id.A, setting); - aObj.attr("title", !title ? "" : title); - } - }, - setNodeTarget: function (setting, node) { - var aObj = $$(node, consts.id.A, setting); - aObj.attr("target", view.makeNodeTarget(node)); - }, - setNodeUrl: function (setting, node) { - var aObj = $$(node, consts.id.A, setting), - url = view.makeNodeUrl(setting, node); - if (url == null || url.length == 0) { - aObj.removeAttr("href"); - } else { - aObj.attr("href", url); - } - }, - switchNode: function (setting, node) { - if (node.open || !tools.canAsync(setting, node)) { - view.expandCollapseNode(setting, node, !node.open); - } else if (setting.async.enable) { - if (!view.asyncNode(setting, node)) { - view.expandCollapseNode(setting, node, !node.open); - return; - } - } else if (node) { - view.expandCollapseNode(setting, node, !node.open); - } - } - }; - // zTree defind - $.fn.zTree = { - consts: _consts, - _z: { - tools: tools, - view: view, - event: event, - data: data - }, - getZTreeObj: function (treeId) { - var o = data.getZTreeTools(treeId); - return o ? o : null; - }, - destroy: function (treeId) { - if (!!treeId && treeId.length > 0) { - view.destroy(data.getSetting(treeId)); - } else { - for (var s in settings) { - view.destroy(settings[s]); - } - } - }, - init: function (obj, zSetting, zNodes) { - var setting = tools.clone(_setting); - $.extend(true, setting, zSetting); - setting.treeId = obj.attr("id"); - setting.treeObj = obj; - setting.treeObj.empty(); - settings[setting.treeId] = setting; - //For some older browser,(e.g., ie6) - if (typeof document.body.style.maxHeight === "undefined") { - setting.view.expandSpeed = ""; - } - data.initRoot(setting); - var root = data.getRoot(setting); - zNodes = zNodes ? tools.clone(tools.isArray(zNodes) ? zNodes : [zNodes]) : []; - if (setting.data.simpleData.enable) { - data.nodeChildren(setting, root, data.transformTozTreeFormat(setting, zNodes)); - } else { - data.nodeChildren(setting, root, zNodes); - } - - data.initCache(setting); - event.unbindTree(setting); - event.bindTree(setting); - event.unbindEvent(setting); - event.bindEvent(setting); - - var zTreeTools = { - setting: setting, - addNodes: function (parentNode, index, newNodes, isSilent) { - if (!parentNode) parentNode = null; - var isParent = data.nodeIsParent(setting, parentNode); - if (parentNode && !isParent && setting.data.keep.leaf) return null; - - var i = parseInt(index, 10); - if (isNaN(i)) { - isSilent = !!newNodes; - newNodes = index; - index = -1; - } else { - index = i; - } - if (!newNodes) return null; - - - var xNewNodes = tools.clone(tools.isArray(newNodes) ? newNodes : [newNodes]); - - function addCallback() { - view.addNodes(setting, parentNode, index, xNewNodes, (isSilent == true)); - } - - if (tools.canAsync(setting, parentNode)) { - view.asyncNode(setting, parentNode, isSilent, addCallback); - } else { - addCallback(); - } - return xNewNodes; - }, - cancelSelectedNode: function (node) { - view.cancelPreSelectedNode(setting, node); - }, - destroy: function () { - view.destroy(setting); - }, - expandAll: function (expandFlag) { - expandFlag = !!expandFlag; - view.expandCollapseSonNode(setting, null, expandFlag, true); - return expandFlag; - }, - expandNode: function (node, expandFlag, sonSign, focus, callbackFlag) { - if (!node || !data.nodeIsParent(setting, node)) return null; - if (expandFlag !== true && expandFlag !== false) { - expandFlag = !node.open; - } - callbackFlag = !!callbackFlag; - - if (callbackFlag && expandFlag && (tools.apply(setting.callback.beforeExpand, [setting.treeId, node], true) == false)) { - return null; - } else if (callbackFlag && !expandFlag && (tools.apply(setting.callback.beforeCollapse, [setting.treeId, node], true) == false)) { - return null; - } - if (expandFlag && node.parentTId) { - view.expandCollapseParentNode(setting, node.getParentNode(), expandFlag, false); - } - if (expandFlag === node.open && !sonSign) { - return null; - } - - data.getRoot(setting).expandTriggerFlag = callbackFlag; - if (!tools.canAsync(setting, node) && sonSign) { - view.expandCollapseSonNode(setting, node, expandFlag, true, showNodeFocus); - } else { - node.open = !expandFlag; - view.switchNode(this.setting, node); - showNodeFocus(); - } - return expandFlag; - - function showNodeFocus() { - var a = $$(node, setting).get(0); - if (a && focus !== false) { - view.scrollIntoView(setting, a); - } - } - }, - getNodes: function () { - return data.getNodes(setting); - }, - getNodeByParam: function (key, value, parentNode) { - if (!key) return null; - return data.getNodeByParam(setting, parentNode ? data.nodeChildren(setting, parentNode) : data.getNodes(setting), key, value); - }, - getNodeByTId: function (tId) { - return data.getNodeCache(setting, tId); - }, - getNodesByParam: function (key, value, parentNode) { - if (!key) return null; - return data.getNodesByParam(setting, parentNode ? data.nodeChildren(setting, parentNode) : data.getNodes(setting), key, value); - }, - getNodesByParamFuzzy: function (key, value, parentNode) { - if (!key) return null; - return data.getNodesByParamFuzzy(setting, parentNode ? data.nodeChildren(setting, parentNode) : data.getNodes(setting), key, value); - }, - getNodesByFilter: function (filter, isSingle, parentNode, invokeParam) { - isSingle = !!isSingle; - if (!filter || (typeof filter != "function")) return (isSingle ? null : []); - return data.getNodesByFilter(setting, parentNode ? data.nodeChildren(setting, parentNode) : data.getNodes(setting), filter, isSingle, invokeParam); - }, - getNodeIndex: function (node) { - if (!node) return null; - var parentNode = (node.parentTId) ? node.getParentNode() : data.getRoot(setting); - var children = data.nodeChildren(setting, parentNode); - for (var i = 0, l = children.length; i < l; i++) { - if (children[i] == node) return i; - } - return -1; - }, - getSelectedNodes: function () { - var r = [], list = data.getRoot(setting).curSelectedList; - for (var i = 0, l = list.length; i < l; i++) { - r.push(list[i]); - } - return r; - }, - isSelectedNode: function (node) { - return data.isSelectedNode(setting, node); - }, - reAsyncChildNodesPromise: function (parentNode, reloadType, isSilent) { - var promise = new Promise(function (resolve, reject) { - try { - zTreeTools.reAsyncChildNodes(parentNode, reloadType, isSilent, function () { - resolve(parentNode); - }); - } catch (e) { - reject(e); - } - }); - return promise; - }, - reAsyncChildNodes: function (parentNode, reloadType, isSilent, callback) { - if (!this.setting.async.enable) return; - var isRoot = !parentNode; - if (isRoot) { - parentNode = data.getRoot(setting); - } - if (reloadType == "refresh") { - var children = data.nodeChildren(setting, parentNode); - for (var i = 0, l = children ? children.length : 0; i < l; i++) { - data.removeNodeCache(setting, children[i]); - } - data.removeSelectedNode(setting); - data.nodeChildren(setting, parentNode, []); - if (isRoot) { - this.setting.treeObj.empty(); - } else { - var ulObj = $$(parentNode, consts.id.UL, setting); - ulObj.empty(); - } - } - view.asyncNode(this.setting, isRoot ? null : parentNode, !!isSilent, callback); - }, - refresh: function () { - this.setting.treeObj.empty(); - var root = data.getRoot(setting), - nodes = data.nodeChildren(setting, root); - data.initRoot(setting); - data.nodeChildren(setting, root, nodes); - data.initCache(setting); - view.createNodes(setting, 0, data.nodeChildren(setting, root), null, -1); - }, - removeChildNodes: function (node) { - if (!node) return null; - var nodes = data.nodeChildren(setting, node); - view.removeChildNodes(setting, node); - return nodes ? nodes : null; - }, - removeNode: function (node, callbackFlag) { - if (!node) return; - callbackFlag = !!callbackFlag; - if (callbackFlag && tools.apply(setting.callback.beforeRemove, [setting.treeId, node], true) == false) return; - view.removeNode(setting, node); - if (callbackFlag) { - this.setting.treeObj.trigger(consts.event.REMOVE, [setting.treeId, node]); - } - }, - selectNode: function (node, addFlag, isSilent) { - if (!node) return; - if (tools.uCanDo(setting)) { - addFlag = setting.view.selectedMulti && addFlag; - if (node.parentTId) { - view.expandCollapseParentNode(setting, node.getParentNode(), true, false, showNodeFocus); - } else if (!isSilent) { - try { - $$(node, setting).focus().blur(); - } catch (e) { - } - } - view.selectNode(setting, node, addFlag); - } - - function showNodeFocus() { - if (isSilent) { - return; - } - var a = $$(node, setting).get(0); - view.scrollIntoView(setting, a); - } - }, - transformTozTreeNodes: function (simpleNodes) { - return data.transformTozTreeFormat(setting, simpleNodes); - }, - transformToArray: function (nodes) { - return data.transformToArrayFormat(setting, nodes); - }, - updateNode: function (node, checkTypeFlag) { - if (!node) return; - var nObj = $$(node, setting); - if (nObj.get(0) && tools.uCanDo(setting)) { - view.setNodeName(setting, node); - view.setNodeTarget(setting, node); - view.setNodeUrl(setting, node); - view.setNodeLineIcos(setting, node); - view.setNodeFontCss(setting, node); - } - } - }; - root.treeTools = zTreeTools; - data.setZTreeTools(setting, zTreeTools); - var children = data.nodeChildren(setting, root); - if (children && children.length > 0) { - view.createNodes(setting, 0, children, null, -1); - } else if (setting.async.enable && setting.async.url && setting.async.url !== '') { - view.asyncNode(setting); - } - return zTreeTools; - } - }; - - var zt = $.fn.zTree, - $$ = tools.$, - consts = zt.consts; -})(jQuery); \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/js/jquery.ztree.core.min.js b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/js/jquery.ztree.core.min.js deleted file mode 100644 index 0b01dc88..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/js/jquery.ztree.core.min.js +++ /dev/null @@ -1,75 +0,0 @@ -/* - * JQuery zTree core v3.5.40 - * http://treejs.cn/ - * - * Copyright (c) 2010 Hunter.z - * - * Licensed same as jquery - MIT License - * http://www.opensource.org/licenses/mit-license.php - * - * email: hunter.z@263.net - * Date: 2019-01-18 - */ -(function(r){var J,K,L,M,N,O,v,t={},w={},x={},P={treeId:"",treeObj:null,view:{addDiyDom:null,autoCancelSelected:!0,dblClickExpand:!0,expandSpeed:"fast",fontCss:{},nameIsHTML:!1,selectedMulti:!0,showIcon:!0,showLine:!0,showTitle:!0,txtSelectedEnable:!1},data:{key:{isParent:"isParent",children:"children",name:"name",title:"",url:"url",icon:"icon"},simpleData:{enable:!1,idKey:"id",pIdKey:"pId",rootPId:null},keep:{parent:!1,leaf:!1}},async:{enable:!1,contentType:"application/x-www-form-urlencoded",type:"post", -dataType:"text",headers:{},xhrFields:{},url:"",autoParam:[],otherParam:[],dataFilter:null},callback:{beforeAsync:null,beforeClick:null,beforeDblClick:null,beforeRightClick:null,beforeMouseDown:null,beforeMouseUp:null,beforeExpand:null,beforeCollapse:null,beforeRemove:null,onAsyncError:null,onAsyncSuccess:null,onNodeCreated:null,onClick:null,onDblClick:null,onRightClick:null,onMouseDown:null,onMouseUp:null,onExpand:null,onCollapse:null,onRemove:null}},y=[function(a){var b=a.treeObj,c=g.event;b.bind(c.NODECREATED, -function(b,c,i){h.apply(a.callback.onNodeCreated,[b,c,i])});b.bind(c.CLICK,function(b,c,i,e,k){h.apply(a.callback.onClick,[c,i,e,k])});b.bind(c.EXPAND,function(b,c,i){h.apply(a.callback.onExpand,[b,c,i])});b.bind(c.COLLAPSE,function(b,c,i){h.apply(a.callback.onCollapse,[b,c,i])});b.bind(c.ASYNC_SUCCESS,function(b,c,i,e){h.apply(a.callback.onAsyncSuccess,[b,c,i,e])});b.bind(c.ASYNC_ERROR,function(b,c,i,e,k,g){h.apply(a.callback.onAsyncError,[b,c,i,e,k,g])});b.bind(c.REMOVE,function(b,c,i){h.apply(a.callback.onRemove, -[b,c,i])});b.bind(c.SELECTED,function(b,c,i){h.apply(a.callback.onSelected,[c,i])});b.bind(c.UNSELECTED,function(b,c,i){h.apply(a.callback.onUnSelected,[c,i])})}],z=[function(a){var b=g.event;a.treeObj.unbind(b.NODECREATED).unbind(b.CLICK).unbind(b.EXPAND).unbind(b.COLLAPSE).unbind(b.ASYNC_SUCCESS).unbind(b.ASYNC_ERROR).unbind(b.REMOVE).unbind(b.SELECTED).unbind(b.UNSELECTED)}],A=[function(a){var b=e.getCache(a);b||(b={},e.setCache(a,b));b.nodes=[];b.doms=[]}],B=[function(a,b,c,d,f,i){if(c){var m= -e.getRoot(a),k=e.nodeChildren(a,c);c.level=b;c.tId=a.treeId+"_"+ ++m.zId;c.parentTId=d?d.tId:null;c.open=typeof c.open=="string"?h.eqs(c.open,"true"):!!c.open;b=e.nodeIsParent(a,c);h.isArray(k)?(e.nodeIsParent(a,c,!0),c.zAsync=!0):(b=e.nodeIsParent(a,c,b),c.open=b&&!a.async.enable?c.open:!1,c.zAsync=!b);c.isFirstNode=f;c.isLastNode=i;c.getParentNode=function(){return e.getNodeCache(a,c.parentTId)};c.getPreNode=function(){return e.getPreNode(a,c)};c.getNextNode=function(){return e.getNextNode(a,c)}; -c.getIndex=function(){return e.getNodeIndex(a,c)};c.getPath=function(){return e.getNodePath(a,c)};c.isAjaxing=!1;e.fixPIdKeyValue(a,c)}}],u=[function(a){var b=a.target,c=e.getSetting(a.data.treeId),d="",f=null,i="",m="",k=null,j=null,o=null;if(h.eqs(a.type,"mousedown"))m="mousedown";else if(h.eqs(a.type,"mouseup"))m="mouseup";else if(h.eqs(a.type,"contextmenu"))m="contextmenu";else if(h.eqs(a.type,"click"))if(h.eqs(b.tagName,"span")&&b.getAttribute("treeNode"+g.id.SWITCH)!==null)d=h.getNodeMainDom(b).id, -i="switchNode";else{if(o=h.getMDom(c,b,[{tagName:"a",attrName:"treeNode"+g.id.A}]))d=h.getNodeMainDom(o).id,i="clickNode"}else if(h.eqs(a.type,"dblclick")&&(m="dblclick",o=h.getMDom(c,b,[{tagName:"a",attrName:"treeNode"+g.id.A}])))d=h.getNodeMainDom(o).id,i="switchNode";if(m.length>0&&d.length==0&&(o=h.getMDom(c,b,[{tagName:"a",attrName:"treeNode"+g.id.A}])))d=h.getNodeMainDom(o).id;if(d.length>0)switch(f=e.getNodeCache(c,d),i){case "switchNode":e.nodeIsParent(c,f)?h.eqs(a.type,"click")||h.eqs(a.type, -"dblclick")&&h.apply(c.view.dblClickExpand,[c.treeId,f],c.view.dblClickExpand)?k=J:i="":i="";break;case "clickNode":k=K}switch(m){case "mousedown":j=L;break;case "mouseup":j=M;break;case "dblclick":j=N;break;case "contextmenu":j=O}return{stop:!1,node:f,nodeEventType:i,nodeEventCallback:k,treeEventType:m,treeEventCallback:j}}],C=[function(a){var b=e.getRoot(a);b||(b={},e.setRoot(a,b));e.nodeChildren(a,b,[]);b.expandTriggerFlag=!1;b.curSelectedList=[];b.noSelection=!0;b.createdNodes=[];b.zId=0;b._ver= -(new Date).getTime()}],D=[],E=[],F=[],G=[],H=[],e={addNodeCache:function(a,b){e.getCache(a).nodes[e.getNodeCacheId(b.tId)]=b},getNodeCacheId:function(a){return a.substring(a.lastIndexOf("_")+1)},addAfterA:function(a){E.push(a)},addBeforeA:function(a){D.push(a)},addInnerAfterA:function(a){G.push(a)},addInnerBeforeA:function(a){F.push(a)},addInitBind:function(a){y.push(a)},addInitUnBind:function(a){z.push(a)},addInitCache:function(a){A.push(a)},addInitNode:function(a){B.push(a)},addInitProxy:function(a, -b){b?u.splice(0,0,a):u.push(a)},addInitRoot:function(a){C.push(a)},addNodesData:function(a,b,c,d){var f=e.nodeChildren(a,b);f?c>=f.length&&(c=-1):(f=e.nodeChildren(a,b,[]),c=-1);if(f.length>0&&c===0)f[0].isFirstNode=!1,j.setNodeLineIcos(a,f[0]);else if(f.length>0&&c<0)f[f.length-1].isLastNode=!1,j.setNodeLineIcos(a,f[f.length-1]);e.nodeIsParent(a,b,!0);c<0?e.nodeChildren(a,b,f.concat(d)):(a=[c,0].concat(d),f.splice.apply(f,a))},addSelectedNode:function(a,b){var c=e.getRoot(a);e.isSelectedNode(a,b)|| -c.curSelectedList.push(b)},addCreatedNode:function(a,b){(a.callback.onNodeCreated||a.view.addDiyDom)&&e.getRoot(a).createdNodes.push(b)},addZTreeTools:function(a){H.push(a)},exSetting:function(a){r.extend(!0,P,a)},fixPIdKeyValue:function(a,b){a.data.simpleData.enable&&(b[a.data.simpleData.pIdKey]=b.parentTId?b.getParentNode()[a.data.simpleData.idKey]:a.data.simpleData.rootPId)},getAfterA:function(a,b,c){for(var d=0,e=E.length;d-1&&f.push(k);k=e.nodeChildren(a, -k);f=f.concat(e.getNodesByParamFuzzy(a,k,c,d))}return f},getNodesByFilter:function(a,b,c,d,f){if(!b)return d?null:[];for(var i=d?null:[],m=0,k=b.length;m0)},clone:function(a){if(a===null)return null;var b=h.isArray(a)?[]:{},c;for(c in a)b[c]=a[c]instanceof Date?new Date(a[c].getTime()):typeof a[c]==="object"?h.clone(a[c]):a[c];return b},eqs:function(a,b){return a.toLowerCase()===b.toLowerCase()},isArray:function(a){return Object.prototype.toString.apply(a)==="[object Array]"},isElement:function(a){return typeof HTMLElement==="object"?a instanceof HTMLElement:a&&typeof a==="object"&&a!==null&& -a.nodeType===1&&typeof a.nodeName==="string"},$:function(a,b,c){b&&typeof b!="string"&&(c=b,b="");return typeof a=="string"?r(a,c?c.treeObj.get(0).ownerDocument:null):r("#"+a.tId+b,c?c.treeObj:null)},getMDom:function(a,b,c){if(!b)return null;for(;b&&b.id!==a.treeId;){for(var d=0,e=c.length;b.tagName&&d0},uCanDo:function(){return!0}},j={addNodes:function(a,b,c,d,f){var i=e.nodeIsParent(a,b);if(!a.data.keep.leaf||!b||i)if(h.isArray(d)||(d=[d]),a.data.simpleData.enable&&(d=e.transformTozTreeFormat(a,d)),b){var i=l(b,g.id.SWITCH,a),m=l(b,g.id.ICON,a),k=l(b,g.id.UL,a);if(!b.open)j.replaceSwitchClass(b,i,g.folder.CLOSE),j.replaceIcoClass(b,m,g.folder.CLOSE),b.open=!1,k.css({display:"none"});e.addNodesData(a,b,c,d);j.createNodes(a,b.level+ -1,d,b,c);f||j.expandCollapseParentNode(a,b,!0)}else e.addNodesData(a,e.getRoot(a),c,d),j.createNodes(a,0,d,null,c)},appendNodes:function(a,b,c,d,f,i,g){if(!c)return[];var k=[],h=d?d:e.getRoot(a),h=e.nodeChildren(a,h),o,l;if(!h||f>=h.length-c.length)f=-1;for(var s=0,n=c.length;s0&&(l=j.appendNodes(a,b+1,I,p,-1, -i,g&&p.open));g&&(j.makeDOMNodeMainBefore(k,a,p),j.makeDOMNodeLine(k,a,p),e.getBeforeA(a,p,k),j.makeDOMNodeNameBefore(k,a,p),e.getInnerBeforeA(a,p,k),j.makeDOMNodeIcon(k,a,p),e.getInnerAfterA(a,p,k),j.makeDOMNodeNameAfter(k,a,p),e.getAfterA(a,p,k),o&&p.open&&j.makeUlHtml(a,p,k,l.join("")),j.makeDOMNodeMainAfter(k,a,p),e.addCreatedNode(a,p))}return k},appendParentULDom:function(a,b){var c=[],d=l(b,a);!d.get(0)&&b.parentTId&&(j.appendParentULDom(a,b.getParentNode()),d=l(b,a));var f=l(b,g.id.UL,a);f.get(0)&& -f.remove();f=e.nodeChildren(a,b);f=j.appendNodes(a,b.level+1,f,b,-1,!1,!0);j.makeUlHtml(a,b,c,f.join(""));d.append(c.join(""))},asyncNode:function(a,b,c,d){var f,i;f=e.nodeIsParent(a,b);if(b&&!f)return h.apply(d),!1;else if(b&&b.isAjaxing)return!1;else if(h.apply(a.callback.beforeAsync,[a.treeId,b],!0)==!1)return h.apply(d),!1;if(b)b.isAjaxing=!0,l(b,g.id.ICON,a).attr({style:"","class":g.className.BUTTON+" "+g.className.ICO_LOADING});var m={},k=h.apply(a.async.autoParam,[a.treeId,b],a.async.autoParam); -for(f=0,i=k.length;b&&f1&&(o=q[1],q=q[0]);m[o]=b[q]}k=h.apply(a.async.otherParam,[a.treeId,b],a.async.otherParam);if(h.isArray(k))for(f=0,i=k.length;f-1?JSON.stringify(m):m,dataType:a.async.dataType,headers:a.async.headers, -xhrFields:a.async.xhrFields,success:function(i){if(s==e.getRoot(a)._ver){var f=[];try{f=!i||i.length==0?[]:typeof i=="string"?eval("("+i+")"):i}catch(k){f=i}if(b)b.isAjaxing=null,b.zAsync=!0;j.setNodeLineIcos(a,b);f&&f!==""?(f=h.apply(a.async.dataFilter,[a.treeId,b,f],f),j.addNodes(a,b,-1,f?h.clone(f):[],!!c)):j.addNodes(a,b,-1,[],!!c);a.treeObj.trigger(g.event.ASYNC_SUCCESS,[a.treeId,b,i]);h.apply(d)}},error:function(c,d,i){if(s==e.getRoot(a)._ver){if(b)b.isAjaxing=null;j.setNodeLineIcos(a,b);a.treeObj.trigger(g.event.ASYNC_ERROR, -[a.treeId,b,c,d,i])}}});return!0},cancelPreSelectedNode:function(a,b,c){var d=e.getRoot(a).curSelectedList,f,i;for(f=d.length-1;f>=0;f--)if(i=d[f],b===i||!b&&(!c||c!==i))if(l(i,g.id.A,a).removeClass(g.node.CURSELECTED),b){e.removeSelectedNode(a,b);break}else d.splice(f,1),a.treeObj.trigger(g.event.UNSELECTED,[a.treeId,i])},createNodeCallback:function(a){if(a.callback.onNodeCreated||a.view.addDiyDom)for(var b=e.getRoot(a);b.createdNodes.length>0;){var c=b.createdNodes.shift();h.apply(a.view.addDiyDom, -[a.treeId,c]);a.callback.onNodeCreated&&a.treeObj.trigger(g.event.NODECREATED,[a.treeId,c])}},createNodes:function(a,b,c,d,f){if(c&&c.length!=0){var i=e.getRoot(a),m=!d||d.open||!!l(e.nodeChildren(a,d)[0],a).get(0);i.createdNodes=[];var b=j.appendNodes(a,b,c,d,f,!0,m),k,h;d?(d=l(d,g.id.UL,a),d.get(0)&&(k=d)):k=a.treeObj;k&&(f>=0&&(h=k.children()[f]),f>=0&&h?r(h).before(b.join("")):k.append(b.join("")));j.createNodeCallback(a)}},destroy:function(a){a&&(e.initCache(a),e.initRoot(a),n.unbindTree(a), -n.unbindEvent(a),a.treeObj.empty(),delete t[a.treeId])},expandCollapseNode:function(a,b,c,d,f){var i=e.getRoot(a),m;if(b){var k=e.nodeChildren(a,b),q=e.nodeIsParent(a,b);if(i.expandTriggerFlag)m=f,f=function(){m&&m();b.open?a.treeObj.trigger(g.event.EXPAND,[a.treeId,b]):a.treeObj.trigger(g.event.COLLAPSE,[a.treeId,b])},i.expandTriggerFlag=!1;if(!b.open&&q&&(!l(b,g.id.UL,a).get(0)||k&&k.length>0&&!l(k[0],a).get(0)))j.appendParentULDom(a,b),j.createNodeCallback(a);if(b.open==c)h.apply(f,[]);else{var c= -l(b,g.id.UL,a),i=l(b,g.id.SWITCH,a),o=l(b,g.id.ICON,a);q?(b.open=!b.open,b.iconOpen&&b.iconClose&&o.attr("style",j.makeNodeIcoStyle(a,b)),b.open?(j.replaceSwitchClass(b,i,g.folder.OPEN),j.replaceIcoClass(b,o,g.folder.OPEN),d==!1||a.view.expandSpeed==""?(c.show(),h.apply(f,[])):k&&k.length>0?c.slideDown(a.view.expandSpeed,f):(c.show(),h.apply(f,[]))):(j.replaceSwitchClass(b,i,g.folder.CLOSE),j.replaceIcoClass(b,o,g.folder.CLOSE),d==!1||a.view.expandSpeed==""||!(k&&k.length>0)?(c.hide(),h.apply(f,[])): -c.slideUp(a.view.expandSpeed,f))):h.apply(f,[])}}else h.apply(f,[])},expandCollapseParentNode:function(a,b,c,d,e){b&&(b.parentTId?(j.expandCollapseNode(a,b,c,d),b.parentTId&&j.expandCollapseParentNode(a,b.getParentNode(),c,d,e)):j.expandCollapseNode(a,b,c,d,e))},expandCollapseSonNode:function(a,b,c,d,f){var i=e.getRoot(a),i=b?e.nodeChildren(a,b):e.nodeChildren(a,i),g=b?!1:d,k=e.getRoot(a).expandTriggerFlag;e.getRoot(a).expandTriggerFlag=!1;if(i)for(var h=0,l=i.length;h=0;d--)if(b===c[d])return!0;return!1},makeDOMNodeIcon:function(a,b,c){var d=e.nodeName(b,c),d=b.view.nameIsHTML?d:d.replace(/&/g,"&").replace(//g,">");a.push("",d,"")},makeDOMNodeLine:function(a,b,c){a.push("")},makeDOMNodeMainAfter:function(a){a.push("
                                                                                                                                                                                                                                                                                                        • ")},makeDOMNodeMainBefore:function(a,b,c){a.push("
                                                                                                                                                                                                                                                                                                        • ")},makeDOMNodeNameAfter:function(a){a.push("")},makeDOMNodeNameBefore:function(a,b,c){var d= -e.nodeTitle(b,c),f=j.makeNodeUrl(b,c),i=j.makeNodeFontCss(b,c),m=[],k;for(k in i)m.push(k,":",i[k],";");a.push("0?"href='"+f+"'":""," target='",j.makeNodeTarget(c),"' style='",m.join(""),"'");h.apply(b.view.showTitle,[b.treeId,c],b.view.showTitle)&&d&&a.push("title='",d.replace(/'/g,"'").replace(//g,">"),"'");a.push(">")},makeNodeFontCss:function(a, -b){var c=h.apply(a.view.fontCss,[a.treeId,b],a.view.fontCss);return c&&typeof c!="function"?c:{}},makeNodeIcoClass:function(a,b){var c=["ico"];if(!b.isAjaxing){var d=e.nodeIsParent(a,b);c[0]=(b.iconSkin?b.iconSkin+"_":"")+c[0];d?c.push(b.open?g.folder.OPEN:g.folder.CLOSE):c.push(g.folder.DOCU)}return g.className.BUTTON+" "+c.join("_")},makeNodeIcoStyle:function(a,b){var c=[];if(!b.isAjaxing){var d=e.nodeIsParent(a,b)&&b.iconOpen&&b.iconClose?b.open?b.iconOpen:b.iconClose:b[a.data.key.icon];d&&c.push("background:url(", -d,") 0 0 no-repeat;");(a.view.showIcon==!1||!h.apply(a.view.showIcon,[a.treeId,b],!0))&&c.push("width:0px;height:0px;")}return c.join("")},makeNodeLineClass:function(a,b){var c=[];a.view.showLine?b.level==0&&b.isFirstNode&&b.isLastNode?c.push(g.line.ROOT):b.level==0&&b.isFirstNode?c.push(g.line.ROOTS):b.isLastNode?c.push(g.line.BOTTOM):c.push(g.line.CENTER):c.push(g.line.NOLINE);e.nodeIsParent(a,b)?c.push(b.open?g.folder.OPEN:g.folder.CLOSE):c.push(g.folder.DOCU);return j.makeNodeLineClassEx(b)+c.join("_")}, -makeNodeLineClassEx:function(a){return g.className.BUTTON+" "+g.className.LEVEL+a.level+" "+g.className.SWITCH+" "},makeNodeTarget:function(a){return a.target||"_blank"},makeNodeUrl:function(a,b){var c=a.data.key.url;return b[c]?b[c]:null},makeUlHtml:function(a,b,c,d){c.push("
                                                                                                                                                                                                                                                                                                            ");c.push(d);c.push("
                                                                                                                                                                                                                                                                                                          ")},makeUlLineClass:function(a,b){return a.view.showLine&&!b.isLastNode? -g.line.LINE:""},removeChildNodes:function(a,b){if(b){var c=e.nodeChildren(a,b);if(c){for(var d=0,f=c.length;dc.bottom||d.right>c.right||d.left0)c[0].isFirstNode= -!0},setLastNode:function(a,b){var c=e.nodeChildren(a,b);if(c.length>0)c[c.length-1].isLastNode=!0},removeNode:function(a,b){var c=e.getRoot(a),d=b.parentTId?b.getParentNode():c;b.isFirstNode=!1;b.isLastNode=!1;b.getPreNode=function(){return null};b.getNextNode=function(){return null};if(e.getNodeCache(a,b.tId)){l(b,a).remove();e.removeNodeCache(a,b);e.removeSelectedNode(a,b);for(var f=e.nodeChildren(a,d),i=0,h=f.length;i0){var q=f[i-1],i=l(q,g.id.UL,a),h=l(q,g.id.SWITCH,a);k=l(q,g.id.ICON,a);d==c?f.length==1?j.replaceSwitchClass(q,h,g.line.ROOT):(c=l(f[0],g.id.SWITCH,a),j.replaceSwitchClass(f[0],c,g.line.ROOTS),j.replaceSwitchClass(q, -h,g.line.BOTTOM)):j.replaceSwitchClass(q,h,g.line.BOTTOM);i.removeClass(g.line.LINE)}}},replaceIcoClass:function(a,b,c){if(b&&!a.isAjaxing&&(a=b.attr("class"),a!=void 0)){a=a.split("_");switch(c){case g.folder.OPEN:case g.folder.CLOSE:case g.folder.DOCU:a[a.length-1]=c}b.attr("class",a.join("_"))}},replaceSwitchClass:function(a,b,c){if(b){var d=b.attr("class");if(d!=void 0){d=d.split("_");switch(c){case g.line.ROOT:case g.line.ROOTS:case g.line.CENTER:case g.line.BOTTOM:case g.line.NOLINE:d[0]=j.makeNodeLineClassEx(a)+ -c;break;case g.folder.OPEN:case g.folder.CLOSE:case g.folder.DOCU:d[1]=c}b.attr("class",d.join("_"));c!==g.folder.DOCU?b.removeAttr("disabled"):b.attr("disabled","disabled")}}},selectNode:function(a,b,c){c||j.cancelPreSelectedNode(a,null,b);l(b,g.id.A,a).addClass(g.node.CURSELECTED);e.addSelectedNode(a,b);a.treeObj.trigger(g.event.SELECTED,[a.treeId,b])},setNodeFontCss:function(a,b){var c=l(b,g.id.A,a),d=j.makeNodeFontCss(a,b);d&&c.css(d)},setNodeLineIcos:function(a,b){if(b){var c=l(b,g.id.SWITCH, -a),d=l(b,g.id.UL,a),f=l(b,g.id.ICON,a),i=j.makeUlLineClass(a,b);i.length==0?d.removeClass(g.line.LINE):d.addClass(i);c.attr("class",j.makeNodeLineClass(a,b));e.nodeIsParent(a,b)?c.removeAttr("disabled"):c.attr("disabled","disabled");f.removeAttr("style");f.attr("style",j.makeNodeIcoStyle(a,b));f.attr("class",j.makeNodeIcoClass(a,b))}},setNodeName:function(a,b){var c=e.nodeTitle(a,b),d=l(b,g.id.SPAN,a);d.empty();a.view.nameIsHTML?d.html(e.nodeName(a,b)):d.text(e.nodeName(a,b));h.apply(a.view.showTitle, -[a.treeId,b],a.view.showTitle)&&l(b,g.id.A,a).attr("title",!c?"":c)},setNodeTarget:function(a,b){l(b,g.id.A,a).attr("target",j.makeNodeTarget(b))},setNodeUrl:function(a,b){var c=l(b,g.id.A,a),d=j.makeNodeUrl(a,b);d==null||d.length==0?c.removeAttr("href"):c.attr("href",d)},switchNode:function(a,b){b.open||!h.canAsync(a,b)?j.expandCollapseNode(a,b,!b.open):a.async.enable?j.asyncNode(a,b)||j.expandCollapseNode(a,b,!b.open):b&&j.expandCollapseNode(a,b,!b.open)}};r.fn.zTree={consts:{className:{BUTTON:"button", -LEVEL:"level",ICO_LOADING:"ico_loading",SWITCH:"switch",NAME:"node_name"},event:{NODECREATED:"ztree_nodeCreated",CLICK:"ztree_click",EXPAND:"ztree_expand",COLLAPSE:"ztree_collapse",ASYNC_SUCCESS:"ztree_async_success",ASYNC_ERROR:"ztree_async_error",REMOVE:"ztree_remove",SELECTED:"ztree_selected",UNSELECTED:"ztree_unselected"},id:{A:"_a",ICON:"_ico",SPAN:"_span",SWITCH:"_switch",UL:"_ul"},line:{ROOT:"root",ROOTS:"roots",CENTER:"center",BOTTOM:"bottom",NOLINE:"noline",LINE:"line"},folder:{OPEN:"open", -CLOSE:"close",DOCU:"docu"},node:{CURSELECTED:"curSelectedNode"}},_z:{tools:h,view:j,event:n,data:e},getZTreeObj:function(a){return(a=e.getZTreeTools(a))?a:null},destroy:function(a){if(a&&a.length>0)j.destroy(e.getSetting(a));else for(var b in t)j.destroy(t[b])},init:function(a,b,c){var d=h.clone(P);r.extend(!0,d,b);d.treeId=a.attr("id");d.treeObj=a;d.treeObj.empty();t[d.treeId]=d;if(typeof document.body.style.maxHeight==="undefined")d.view.expandSpeed="";e.initRoot(d);a=e.getRoot(d);c=c?h.clone(h.isArray(c)? -c:[c]):[];d.data.simpleData.enable?e.nodeChildren(d,a,e.transformTozTreeFormat(d,c)):e.nodeChildren(d,a,c);e.initCache(d);n.unbindTree(d);n.bindTree(d);n.unbindEvent(d);n.bindEvent(d);var f={setting:d,addNodes:function(a,b,c,f){function g(){j.addNodes(d,a,b,n,f==!0)}a||(a=null);var l=e.nodeIsParent(d,a);if(a&&!l&&d.data.keep.leaf)return null;l=parseInt(b,10);isNaN(l)?(f=!!c,c=b,b=-1):b=l;if(!c)return null;var n=h.clone(h.isArray(c)?c:[c]);h.canAsync(d,a)?j.asyncNode(d,a,f,g):g();return n},cancelSelectedNode:function(a){j.cancelPreSelectedNode(d, -a)},destroy:function(){j.destroy(d)},expandAll:function(a){a=!!a;j.expandCollapseSonNode(d,null,a,!0);return a},expandNode:function(a,b,c,f,g){function n(){var b=l(a,d).get(0);b&&f!==!1&&j.scrollIntoView(d,b)}if(!a||!e.nodeIsParent(d,a))return null;b!==!0&&b!==!1&&(b=!a.open);if((g=!!g)&&b&&h.apply(d.callback.beforeExpand,[d.treeId,a],!0)==!1)return null;else if(g&&!b&&h.apply(d.callback.beforeCollapse,[d.treeId,a],!0)==!1)return null;b&&a.parentTId&&j.expandCollapseParentNode(d,a.getParentNode(), -b,!1);if(b===a.open&&!c)return null;e.getRoot(d).expandTriggerFlag=g;!h.canAsync(d,a)&&c?j.expandCollapseSonNode(d,a,b,!0,n):(a.open=!b,j.switchNode(this.setting,a),n());return b},getNodes:function(){return e.getNodes(d)},getNodeByParam:function(a,b,c){return!a?null:e.getNodeByParam(d,c?e.nodeChildren(d,c):e.getNodes(d),a,b)},getNodeByTId:function(a){return e.getNodeCache(d,a)},getNodesByParam:function(a,b,c){return!a?null:e.getNodesByParam(d,c?e.nodeChildren(d,c):e.getNodes(d),a,b)},getNodesByParamFuzzy:function(a, -b,c){return!a?null:e.getNodesByParamFuzzy(d,c?e.nodeChildren(d,c):e.getNodes(d),a,b)},getNodesByFilter:function(a,b,c,f){b=!!b;return!a||typeof a!="function"?b?null:[]:e.getNodesByFilter(d,c?e.nodeChildren(d,c):e.getNodes(d),a,b,f)},getNodeIndex:function(a){if(!a)return null;for(var b=a.parentTId?a.getParentNode():e.getRoot(d),b=e.nodeChildren(d,b),c=0,f=b.length;c0?j.createNodes(d,0,c,null,-1):d.async.enable&&d.async.url&&d.async.url!==""&&j.asyncNode(d);return f}};var Q=r.fn.zTree,l=h.$,g=Q.consts})(jQuery); diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/js/jquery.ztree.excheck.js b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/js/jquery.ztree.excheck.js deleted file mode 100644 index c4cfff66..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/js/jquery.ztree.excheck.js +++ /dev/null @@ -1,651 +0,0 @@ -/* - * JQuery zTree excheck v3.5.40 - * http://treejs.cn/ - * - * Copyright (c) 2010 Hunter.z - * - * Licensed same as jquery - MIT License - * http://www.opensource.org/licenses/mit-license.php - * - * email: hunter.z@263.net - * Date: 2019-01-18 - */ -(function ($) { - //default consts of excheck - var _consts = { - event: { - CHECK: "ztree_check" - }, - id: { - CHECK: "_check" - }, - checkbox: { - STYLE: "checkbox", - DEFAULT: "chk", - DISABLED: "disable", - FALSE: "false", - TRUE: "true", - FULL: "full", - PART: "part", - FOCUS: "focus" - }, - radio: { - STYLE: "radio", - TYPE_ALL: "all", - TYPE_LEVEL: "level" - } - }, - //default setting of excheck - _setting = { - check: { - enable: false, - autoCheckTrigger: false, - chkStyle: _consts.checkbox.STYLE, - nocheckInherit: false, - chkDisabledInherit: false, - radioType: _consts.radio.TYPE_LEVEL, - chkboxType: { - "Y": "ps", - "N": "ps" - } - }, - data: { - key: { - checked: "checked" - } - }, - callback: { - beforeCheck: null, - onCheck: null - } - }, - //default root of excheck - _initRoot = function (setting) { - var r = data.getRoot(setting); - r.radioCheckedList = []; - }, - //default cache of excheck - _initCache = function (treeId) { - }, - //default bind event of excheck - _bindEvent = function (setting) { - var o = setting.treeObj, - c = consts.event; - o.bind(c.CHECK, function (event, srcEvent, treeId, node) { - event.srcEvent = srcEvent; - tools.apply(setting.callback.onCheck, [event, treeId, node]); - }); - }, - _unbindEvent = function (setting) { - var o = setting.treeObj, - c = consts.event; - o.unbind(c.CHECK); - }, - //default event proxy of excheck - _eventProxy = function (e) { - var target = e.target, - setting = data.getSetting(e.data.treeId), - tId = "", node = null, - nodeEventType = "", treeEventType = "", - nodeEventCallback = null, treeEventCallback = null; - - if (tools.eqs(e.type, "mouseover")) { - if (setting.check.enable && tools.eqs(target.tagName, "span") && target.getAttribute("treeNode" + consts.id.CHECK) !== null) { - tId = tools.getNodeMainDom(target).id; - nodeEventType = "mouseoverCheck"; - } - } else if (tools.eqs(e.type, "mouseout")) { - if (setting.check.enable && tools.eqs(target.tagName, "span") && target.getAttribute("treeNode" + consts.id.CHECK) !== null) { - tId = tools.getNodeMainDom(target).id; - nodeEventType = "mouseoutCheck"; - } - } else if (tools.eqs(e.type, "click")) { - if (setting.check.enable && tools.eqs(target.tagName, "span") && target.getAttribute("treeNode" + consts.id.CHECK) !== null) { - tId = tools.getNodeMainDom(target).id; - nodeEventType = "checkNode"; - } - } - if (tId.length > 0) { - node = data.getNodeCache(setting, tId); - switch (nodeEventType) { - case "checkNode" : - nodeEventCallback = _handler.onCheckNode; - break; - case "mouseoverCheck" : - nodeEventCallback = _handler.onMouseoverCheck; - break; - case "mouseoutCheck" : - nodeEventCallback = _handler.onMouseoutCheck; - break; - } - } - var proxyResult = { - stop: nodeEventType === "checkNode", - node: node, - nodeEventType: nodeEventType, - nodeEventCallback: nodeEventCallback, - treeEventType: treeEventType, - treeEventCallback: treeEventCallback - }; - return proxyResult - }, - //default init node of excheck - _initNode = function (setting, level, n, parentNode, isFirstNode, isLastNode, openFlag) { - if (!n) return; - var checked = data.nodeChecked(setting, n); - n.checkedOld = checked; - if (typeof n.nocheck == "string") n.nocheck = tools.eqs(n.nocheck, "true"); - n.nocheck = !!n.nocheck || (setting.check.nocheckInherit && parentNode && !!parentNode.nocheck); - if (typeof n.chkDisabled == "string") n.chkDisabled = tools.eqs(n.chkDisabled, "true"); - n.chkDisabled = !!n.chkDisabled || (setting.check.chkDisabledInherit && parentNode && !!parentNode.chkDisabled); - if (typeof n.halfCheck == "string") n.halfCheck = tools.eqs(n.halfCheck, "true"); - n.halfCheck = !!n.halfCheck; - n.check_Child_State = -1; - n.check_Focus = false; - n.getCheckStatus = function () { - return data.getCheckStatus(setting, n); - }; - - if (setting.check.chkStyle == consts.radio.STYLE && setting.check.radioType == consts.radio.TYPE_ALL && checked) { - var r = data.getRoot(setting); - r.radioCheckedList.push(n); - } - }, - //add dom for check - _beforeA = function (setting, node, html) { - if (setting.check.enable) { - data.makeChkFlag(setting, node); - html.push(""); - } - }, - //update zTreeObj, add method of check - _zTreeTools = function (setting, zTreeTools) { - zTreeTools.checkNode = function (node, checked, checkTypeFlag, callbackFlag) { - var nodeChecked = data.nodeChecked(setting, node); - if (node.chkDisabled === true) return; - if (checked !== true && checked !== false) { - checked = !nodeChecked; - } - callbackFlag = !!callbackFlag; - - if (nodeChecked === checked && !checkTypeFlag) { - return; - } else if (callbackFlag && tools.apply(this.setting.callback.beforeCheck, [this.setting.treeId, node], true) == false) { - return; - } - if (tools.uCanDo(this.setting) && this.setting.check.enable && node.nocheck !== true) { - data.nodeChecked(setting, node, checked); - var checkObj = $$(node, consts.id.CHECK, this.setting); - if (checkTypeFlag || this.setting.check.chkStyle === consts.radio.STYLE) view.checkNodeRelation(this.setting, node); - view.setChkClass(this.setting, checkObj, node); - view.repairParentChkClassWithSelf(this.setting, node); - if (callbackFlag) { - this.setting.treeObj.trigger(consts.event.CHECK, [null, this.setting.treeId, node]); - } - } - } - - zTreeTools.checkAllNodes = function (checked) { - view.repairAllChk(this.setting, !!checked); - } - - zTreeTools.getCheckedNodes = function (checked) { - var checked = (checked !== false); - var children = data.nodeChildren(setting, data.getRoot(this.setting)); - return data.getTreeCheckedNodes(this.setting, children, checked); - } - - zTreeTools.getChangeCheckedNodes = function () { - var children = data.nodeChildren(setting, data.getRoot(this.setting)); - return data.getTreeChangeCheckedNodes(this.setting, children); - } - - zTreeTools.setChkDisabled = function (node, disabled, inheritParent, inheritChildren) { - disabled = !!disabled; - inheritParent = !!inheritParent; - inheritChildren = !!inheritChildren; - view.repairSonChkDisabled(this.setting, node, disabled, inheritChildren); - view.repairParentChkDisabled(this.setting, node.getParentNode(), disabled, inheritParent); - } - - var _updateNode = zTreeTools.updateNode; - zTreeTools.updateNode = function (node, checkTypeFlag) { - if (_updateNode) _updateNode.apply(zTreeTools, arguments); - if (!node || !this.setting.check.enable) return; - var nObj = $$(node, this.setting); - if (nObj.get(0) && tools.uCanDo(this.setting)) { - var checkObj = $$(node, consts.id.CHECK, this.setting); - if (checkTypeFlag == true || this.setting.check.chkStyle === consts.radio.STYLE) view.checkNodeRelation(this.setting, node); - view.setChkClass(this.setting, checkObj, node); - view.repairParentChkClassWithSelf(this.setting, node); - } - } - }, - //method of operate data - _data = { - getRadioCheckedList: function (setting) { - var checkedList = data.getRoot(setting).radioCheckedList; - for (var i = 0, j = checkedList.length; i < j; i++) { - if (!data.getNodeCache(setting, checkedList[i].tId)) { - checkedList.splice(i, 1); - i--; - j--; - } - } - return checkedList; - }, - getCheckStatus: function (setting, node) { - if (!setting.check.enable || node.nocheck || node.chkDisabled) return null; - var checked = data.nodeChecked(setting, node), - r = { - checked: checked, - half: node.halfCheck ? node.halfCheck : (setting.check.chkStyle == consts.radio.STYLE ? (node.check_Child_State === 2) : (checked ? (node.check_Child_State > -1 && node.check_Child_State < 2) : (node.check_Child_State > 0))) - }; - return r; - }, - getTreeCheckedNodes: function (setting, nodes, checked, results) { - if (!nodes) return []; - var onlyOne = (checked && setting.check.chkStyle == consts.radio.STYLE && setting.check.radioType == consts.radio.TYPE_ALL); - results = !results ? [] : results; - for (var i = 0, l = nodes.length; i < l; i++) { - var node = nodes[i]; - var children = data.nodeChildren(setting, node); - var nodeChecked = data.nodeChecked(setting, node); - if (node.nocheck !== true && node.chkDisabled !== true && nodeChecked == checked) { - results.push(node); - if (onlyOne) { - break; - } - } - data.getTreeCheckedNodes(setting, children, checked, results); - if (onlyOne && results.length > 0) { - break; - } - } - return results; - }, - getTreeChangeCheckedNodes: function (setting, nodes, results) { - if (!nodes) return []; - results = !results ? [] : results; - for (var i = 0, l = nodes.length; i < l; i++) { - var node = nodes[i]; - var children = data.nodeChildren(setting, node); - var nodeChecked = data.nodeChecked(setting, node); - if (node.nocheck !== true && node.chkDisabled !== true && nodeChecked != node.checkedOld) { - results.push(node); - } - data.getTreeChangeCheckedNodes(setting, children, results); - } - return results; - }, - makeChkFlag: function (setting, node) { - if (!node) return; - var chkFlag = -1; - var children = data.nodeChildren(setting, node); - if (children) { - for (var i = 0, l = children.length; i < l; i++) { - var cNode = children[i]; - var nodeChecked = data.nodeChecked(setting, cNode); - var tmp = -1; - if (setting.check.chkStyle == consts.radio.STYLE) { - if (cNode.nocheck === true || cNode.chkDisabled === true) { - tmp = cNode.check_Child_State; - } else if (cNode.halfCheck === true) { - tmp = 2; - } else if (nodeChecked) { - tmp = 2; - } else { - tmp = cNode.check_Child_State > 0 ? 2 : 0; - } - if (tmp == 2) { - chkFlag = 2; - break; - } else if (tmp == 0) { - chkFlag = 0; - } - } else if (setting.check.chkStyle == consts.checkbox.STYLE) { - if (cNode.nocheck === true || cNode.chkDisabled === true) { - tmp = cNode.check_Child_State; - } else if (cNode.halfCheck === true) { - tmp = 1; - } else if (nodeChecked) { - tmp = (cNode.check_Child_State === -1 || cNode.check_Child_State === 2) ? 2 : 1; - } else { - tmp = (cNode.check_Child_State > 0) ? 1 : 0; - } - if (tmp === 1) { - chkFlag = 1; - break; - } else if (tmp === 2 && chkFlag > -1 && i > 0 && tmp !== chkFlag) { - chkFlag = 1; - break; - } else if (chkFlag === 2 && tmp > -1 && tmp < 2) { - chkFlag = 1; - break; - } else if (tmp > -1) { - chkFlag = tmp; - } - } - } - } - node.check_Child_State = chkFlag; - } - }, - //method of event proxy - _event = {}, - //method of event handler - _handler = { - onCheckNode: function (event, node) { - if (node.chkDisabled === true) return false; - var setting = data.getSetting(event.data.treeId); - if (tools.apply(setting.callback.beforeCheck, [setting.treeId, node], true) == false) return true; - var nodeChecked = data.nodeChecked(setting, node); - data.nodeChecked(setting, node, !nodeChecked); - view.checkNodeRelation(setting, node); - var checkObj = $$(node, consts.id.CHECK, setting); - view.setChkClass(setting, checkObj, node); - view.repairParentChkClassWithSelf(setting, node); - setting.treeObj.trigger(consts.event.CHECK, [event, setting.treeId, node]); - return true; - }, - onMouseoverCheck: function (event, node) { - if (node.chkDisabled === true) return false; - var setting = data.getSetting(event.data.treeId), - checkObj = $$(node, consts.id.CHECK, setting); - node.check_Focus = true; - view.setChkClass(setting, checkObj, node); - return true; - }, - onMouseoutCheck: function (event, node) { - if (node.chkDisabled === true) return false; - var setting = data.getSetting(event.data.treeId), - checkObj = $$(node, consts.id.CHECK, setting); - node.check_Focus = false; - view.setChkClass(setting, checkObj, node); - return true; - } - }, - //method of tools for zTree - _tools = {}, - //method of operate ztree dom - _view = { - checkNodeRelation: function (setting, node) { - var pNode, i, l, - r = consts.radio; - var nodeChecked = data.nodeChecked(setting, node); - if (setting.check.chkStyle == r.STYLE) { - var checkedList = data.getRadioCheckedList(setting); - if (nodeChecked) { - if (setting.check.radioType == r.TYPE_ALL) { - for (i = checkedList.length - 1; i >= 0; i--) { - pNode = checkedList[i]; - var pNodeChecked = data.nodeChecked(setting, pNode); - if (pNodeChecked && pNode != node) { - data.nodeChecked(setting, pNode, false); - checkedList.splice(i, 1); - - view.setChkClass(setting, $$(pNode, consts.id.CHECK, setting), pNode); - if (pNode.parentTId != node.parentTId) { - view.repairParentChkClassWithSelf(setting, pNode); - } - } - } - checkedList.push(node); - } else { - var parentNode = (node.parentTId) ? node.getParentNode() : data.getRoot(setting); - var children = data.nodeChildren(setting, parentNode); - for (i = 0, l = children.length; i < l; i++) { - pNode = children[i]; - var pNodeChecked = data.nodeChecked(setting, pNode); - if (pNodeChecked && pNode != node) { - data.nodeChecked(setting, pNode, false); - view.setChkClass(setting, $$(pNode, consts.id.CHECK, setting), pNode); - } - } - } - } else if (setting.check.radioType == r.TYPE_ALL) { - for (i = 0, l = checkedList.length; i < l; i++) { - if (node == checkedList[i]) { - checkedList.splice(i, 1); - break; - } - } - } - - } else { - var children = data.nodeChildren(setting, node); - if (nodeChecked && (!children || children.length == 0 || setting.check.chkboxType.Y.indexOf("s") > -1)) { - view.setSonNodeCheckBox(setting, node, true); - } - if (!nodeChecked && (!children || children.length == 0 || setting.check.chkboxType.N.indexOf("s") > -1)) { - view.setSonNodeCheckBox(setting, node, false); - } - if (nodeChecked && setting.check.chkboxType.Y.indexOf("p") > -1) { - view.setParentNodeCheckBox(setting, node, true); - } - if (!nodeChecked && setting.check.chkboxType.N.indexOf("p") > -1) { - view.setParentNodeCheckBox(setting, node, false); - } - } - }, - makeChkClass: function (setting, node) { - var c = consts.checkbox, r = consts.radio, - fullStyle = ""; - var nodeChecked = data.nodeChecked(setting, node); - if (node.chkDisabled === true) { - fullStyle = c.DISABLED; - } else if (node.halfCheck) { - fullStyle = c.PART; - } else if (setting.check.chkStyle == r.STYLE) { - fullStyle = (node.check_Child_State < 1) ? c.FULL : c.PART; - } else { - fullStyle = nodeChecked ? ((node.check_Child_State === 2 || node.check_Child_State === -1) ? c.FULL : c.PART) : ((node.check_Child_State < 1) ? c.FULL : c.PART); - } - var chkName = setting.check.chkStyle + "_" + (nodeChecked ? c.TRUE : c.FALSE) + "_" + fullStyle; - chkName = (node.check_Focus && node.chkDisabled !== true) ? chkName + "_" + c.FOCUS : chkName; - return consts.className.BUTTON + " " + c.DEFAULT + " " + chkName; - }, - repairAllChk: function (setting, checked) { - if (setting.check.enable && setting.check.chkStyle === consts.checkbox.STYLE) { - var root = data.getRoot(setting); - var children = data.nodeChildren(setting, root); - for (var i = 0, l = children.length; i < l; i++) { - var node = children[i]; - if (node.nocheck !== true && node.chkDisabled !== true) { - data.nodeChecked(setting, node, checked); - } - view.setSonNodeCheckBox(setting, node, checked); - } - } - }, - repairChkClass: function (setting, node) { - if (!node) return; - data.makeChkFlag(setting, node); - if (node.nocheck !== true) { - var checkObj = $$(node, consts.id.CHECK, setting); - view.setChkClass(setting, checkObj, node); - } - }, - repairParentChkClass: function (setting, node) { - if (!node || !node.parentTId) return; - var pNode = node.getParentNode(); - view.repairChkClass(setting, pNode); - view.repairParentChkClass(setting, pNode); - }, - repairParentChkClassWithSelf: function (setting, node) { - if (!node) return; - var children = data.nodeChildren(setting, node); - if (children && children.length > 0) { - view.repairParentChkClass(setting, children[0]); - } else { - view.repairParentChkClass(setting, node); - } - }, - repairSonChkDisabled: function (setting, node, chkDisabled, inherit) { - if (!node) return; - if (node.chkDisabled != chkDisabled) { - node.chkDisabled = chkDisabled; - } - view.repairChkClass(setting, node); - var children = data.nodeChildren(setting, node); - if (children && inherit) { - for (var i = 0, l = children.length; i < l; i++) { - var sNode = children[i]; - view.repairSonChkDisabled(setting, sNode, chkDisabled, inherit); - } - } - }, - repairParentChkDisabled: function (setting, node, chkDisabled, inherit) { - if (!node) return; - if (node.chkDisabled != chkDisabled && inherit) { - node.chkDisabled = chkDisabled; - } - view.repairChkClass(setting, node); - view.repairParentChkDisabled(setting, node.getParentNode(), chkDisabled, inherit); - }, - setChkClass: function (setting, obj, node) { - if (!obj) return; - if (node.nocheck === true) { - obj.hide(); - } else { - obj.show(); - } - obj.attr('class', view.makeChkClass(setting, node)); - }, - setParentNodeCheckBox: function (setting, node, value, srcNode) { - var checkObj = $$(node, consts.id.CHECK, setting); - if (!srcNode) srcNode = node; - data.makeChkFlag(setting, node); - if (node.nocheck !== true && node.chkDisabled !== true) { - data.nodeChecked(setting, node, value); - view.setChkClass(setting, checkObj, node); - if (setting.check.autoCheckTrigger && node != srcNode) { - setting.treeObj.trigger(consts.event.CHECK, [null, setting.treeId, node]); - } - } - if (node.parentTId) { - var pSign = true; - if (!value) { - var pNodes = data.nodeChildren(setting, node.getParentNode()); - for (var i = 0, l = pNodes.length; i < l; i++) { - var pNode = pNodes[i]; - var nodeChecked = data.nodeChecked(setting, pNode); - if ((pNode.nocheck !== true && pNode.chkDisabled !== true && nodeChecked) - || ((pNode.nocheck === true || pNode.chkDisabled === true) && pNode.check_Child_State > 0)) { - pSign = false; - break; - } - } - } - if (pSign) { - view.setParentNodeCheckBox(setting, node.getParentNode(), value, srcNode); - } - } - }, - setSonNodeCheckBox: function (setting, node, value, srcNode) { - if (!node) return; - var checkObj = $$(node, consts.id.CHECK, setting); - if (!srcNode) srcNode = node; - - var hasDisable = false; - var children = data.nodeChildren(setting, node); - if (children) { - for (var i = 0, l = children.length; i < l; i++) { - var sNode = children[i]; - view.setSonNodeCheckBox(setting, sNode, value, srcNode); - if (sNode.chkDisabled === true) hasDisable = true; - } - } - - if (node != data.getRoot(setting) && node.chkDisabled !== true) { - if (hasDisable && node.nocheck !== true) { - data.makeChkFlag(setting, node); - } - if (node.nocheck !== true && node.chkDisabled !== true) { - data.nodeChecked(setting, node, value); - if (!hasDisable) node.check_Child_State = (children && children.length > 0) ? (value ? 2 : 0) : -1; - } else { - node.check_Child_State = -1; - } - view.setChkClass(setting, checkObj, node); - if (setting.check.autoCheckTrigger && node != srcNode && node.nocheck !== true && node.chkDisabled !== true) { - setting.treeObj.trigger(consts.event.CHECK, [null, setting.treeId, node]); - } - } - - } - }, - - _z = { - tools: _tools, - view: _view, - event: _event, - data: _data - }; - $.extend(true, $.fn.zTree.consts, _consts); - $.extend(true, $.fn.zTree._z, _z); - - var zt = $.fn.zTree, - tools = zt._z.tools, - consts = zt.consts, - view = zt._z.view, - data = zt._z.data, - event = zt._z.event, - $$ = tools.$; - - data.nodeChecked = function (setting, node, newChecked) { - if (!node) { - return false; - } - var key = setting.data.key.checked; - if (typeof newChecked !== 'undefined') { - if (typeof newChecked === "string") { - newChecked = tools.eqs(newChecked, "true"); - } - newChecked = !!newChecked; - node[key] = newChecked; - } else if (typeof node[key] == "string"){ - node[key] = tools.eqs(node[key], "true"); - } else { - node[key] = !!node[key]; - } - return node[key]; - }; - - data.exSetting(_setting); - data.addInitBind(_bindEvent); - data.addInitUnBind(_unbindEvent); - data.addInitCache(_initCache); - data.addInitNode(_initNode); - data.addInitProxy(_eventProxy, true); - data.addInitRoot(_initRoot); - data.addBeforeA(_beforeA); - data.addZTreeTools(_zTreeTools); - - var _createNodes = view.createNodes; - view.createNodes = function (setting, level, nodes, parentNode, index) { - if (_createNodes) _createNodes.apply(view, arguments); - if (!nodes) return; - view.repairParentChkClassWithSelf(setting, parentNode); - } - var _removeNode = view.removeNode; - view.removeNode = function (setting, node) { - var parentNode = node.getParentNode(); - if (_removeNode) _removeNode.apply(view, arguments); - if (!node || !parentNode) return; - view.repairChkClass(setting, parentNode); - view.repairParentChkClass(setting, parentNode); - } - - var _appendNodes = view.appendNodes; - view.appendNodes = function (setting, level, nodes, parentNode, index, initFlag, openFlag) { - var html = ""; - if (_appendNodes) { - html = _appendNodes.apply(view, arguments); - } - if (parentNode) { - data.makeChkFlag(setting, parentNode); - } - return html; - } -})(jQuery); \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/js/jquery.ztree.excheck.min.js b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/js/jquery.ztree.excheck.min.js deleted file mode 100644 index 9089c774..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/js/jquery.ztree.excheck.min.js +++ /dev/null @@ -1,34 +0,0 @@ -/* - * JQuery zTree excheck v3.5.40 - * http://treejs.cn/ - * - * Copyright (c) 2010 Hunter.z - * - * Licensed same as jquery - MIT License - * http://www.opensource.org/licenses/mit-license.php - * - * email: hunter.z@263.net - * Date: 2019-01-18 - */ -(function(m){var p,q,r,o={event:{CHECK:"ztree_check"},id:{CHECK:"_check"},checkbox:{STYLE:"checkbox",DEFAULT:"chk",DISABLED:"disable",FALSE:"false",TRUE:"true",FULL:"full",PART:"part",FOCUS:"focus"},radio:{STYLE:"radio",TYPE_ALL:"all",TYPE_LEVEL:"level"}},v={check:{enable:!1,autoCheckTrigger:!1,chkStyle:o.checkbox.STYLE,nocheckInherit:!1,chkDisabledInherit:!1,radioType:o.radio.TYPE_LEVEL,chkboxType:{Y:"ps",N:"ps"}},data:{key:{checked:"checked"}},callback:{beforeCheck:null,onCheck:null}};p=function(c, -a){if(a.chkDisabled===!0)return!1;var b=f.getSetting(c.data.treeId);if(i.apply(b.callback.beforeCheck,[b.treeId,a],!0)==!1)return!0;var d=f.nodeChecked(b,a);f.nodeChecked(b,a,!d);e.checkNodeRelation(b,a);d=n(a,h.id.CHECK,b);e.setChkClass(b,d,a);e.repairParentChkClassWithSelf(b,a);b.treeObj.trigger(h.event.CHECK,[c,b.treeId,a]);return!0};q=function(c,a){if(a.chkDisabled===!0)return!1;var b=f.getSetting(c.data.treeId),d=n(a,h.id.CHECK,b);a.check_Focus=!0;e.setChkClass(b,d,a);return!0};r=function(c, -a){if(a.chkDisabled===!0)return!1;var b=f.getSetting(c.data.treeId),d=n(a,h.id.CHECK,b);a.check_Focus=!1;e.setChkClass(b,d,a);return!0};m.extend(!0,m.fn.zTree.consts,o);m.extend(!0,m.fn.zTree._z,{tools:{},view:{checkNodeRelation:function(c,a){var b,d,j;d=h.radio;b=f.nodeChecked(c,a);if(c.check.chkStyle==d.STYLE){var g=f.getRadioCheckedList(c);if(b)if(c.check.radioType==d.TYPE_ALL){for(d=g.length-1;d>=0;d--){b=g[d];var k=f.nodeChecked(c,b);k&&b!=a&&(f.nodeChecked(c,b,!1),g.splice(d,1),e.setChkClass(c, -n(b,h.id.CHECK,c),b),b.parentTId!=a.parentTId&&e.repairParentChkClassWithSelf(c,b))}g.push(a)}else{g=a.parentTId?a.getParentNode():f.getRoot(c);g=f.nodeChildren(c,g);for(d=0,j=g.length;d-1)&&e.setSonNodeCheckBox(c,a, -!0),!b&&(!g||g.length==0||c.check.chkboxType.N.indexOf("s")>-1)&&e.setSonNodeCheckBox(c,a,!1),b&&c.check.chkboxType.Y.indexOf("p")>-1&&e.setParentNodeCheckBox(c,a,!0),!b&&c.check.chkboxType.N.indexOf("p")>-1&&e.setParentNodeCheckBox(c,a,!1)},makeChkClass:function(c,a){var b=h.checkbox,d=h.radio,j="",g=f.nodeChecked(c,a),j=a.chkDisabled===!0?b.DISABLED:a.halfCheck?b.PART:c.check.chkStyle==d.STYLE?a.check_Child_State<1?b.FULL:b.PART:g?a.check_Child_State===2||a.check_Child_State===-1?b.FULL:b.PART: -a.check_Child_State<1?b.FULL:b.PART,d=c.check.chkStyle+"_"+(g?b.TRUE:b.FALSE)+"_"+j,d=a.check_Focus&&a.chkDisabled!==!0?d+"_"+b.FOCUS:d;return h.className.BUTTON+" "+b.DEFAULT+" "+d},repairAllChk:function(c,a){if(c.check.enable&&c.check.chkStyle===h.checkbox.STYLE)for(var b=f.getRoot(c),b=f.nodeChildren(c,b),d=0,j=b.length;d0?e.repairParentChkClass(c,b[0]):e.repairParentChkClass(c,a)}},repairSonChkDisabled:function(c,a,b,d){if(a){if(a.chkDisabled!=b)a.chkDisabled=b;e.repairChkClass(c,a);if((a=f.nodeChildren(c,a))&&d)for(var j=0,g=a.length;j0){j=!1;break}}j&&e.setParentNodeCheckBox(c,a.getParentNode(),b,d)}},setSonNodeCheckBox:function(c,a,b,d){if(a){var j=n(a,h.id.CHECK,c);d||(d=a);var g=!1,k=f.nodeChildren(c,a);if(k)for(var i=0,l=k.length;i0?b?2:0:-1}else a.check_Child_State=-1;e.setChkClass(c,j,a);c.check.autoCheckTrigger&&a!=d&&a.nocheck!==!0&&a.chkDisabled!==!0&&c.treeObj.trigger(h.event.CHECK,[null,c.treeId,a])}}}},event:{},data:{getRadioCheckedList:function(c){for(var a=f.getRoot(c).radioCheckedList,b=0,d=a.length;b-1&&a.check_Child_State<2:a.check_Child_State>0}},getTreeCheckedNodes:function(c,a,b,d){if(!a)return[];for(var j=b&&c.check.chkStyle==h.radio.STYLE&&c.check.radioType==h.radio.TYPE_ALL,d=!d?[]:d,g=0,e=a.length;g0)break}return d},getTreeChangeCheckedNodes:function(c,a,b){if(!a)return[];for(var b=!b?[]:b,d=0,j=a.length;d0?2:0,l==2){b=2;break}else l==0&&(b=0);else if(c.check.chkStyle==h.checkbox.STYLE)if(l=e.nocheck===!0||e.chkDisabled===!0?e.check_Child_State:e.halfCheck===!0?1:i?e.check_Child_State===-1||e.check_Child_State===2?2:1:e.check_Child_State>0?1:0,l===1){b=1;break}else if(l===2&&b>-1&&j>0&&l!== -b){b=1;break}else if(b===2&&l>-1&&l<2){b=1;break}else l>-1&&(b=l)}a.check_Child_State=b}}}});var m=m.fn.zTree,i=m._z.tools,h=m.consts,e=m._z.view,f=m._z.data,n=i.$;f.nodeChecked=function(c,a,b){if(!a)return!1;c=c.data.key.checked;typeof b!=="undefined"?(typeof b==="string"&&(b=i.eqs(b,"true")),a[c]=!!b):a[c]=typeof a[c]=="string"?i.eqs(a[c],"true"):!!a[c];return a[c]};f.exSetting(v);f.addInitBind(function(c){c.treeObj.bind(h.event.CHECK,function(a,b,d,e){a.srcEvent=b;i.apply(c.callback.onCheck,[a, -d,e])})});f.addInitUnBind(function(c){c.treeObj.unbind(h.event.CHECK)});f.addInitCache(function(){});f.addInitNode(function(c,a,b,d){if(b){a=f.nodeChecked(c,b);b.checkedOld=a;if(typeof b.nocheck=="string")b.nocheck=i.eqs(b.nocheck,"true");b.nocheck=!!b.nocheck||c.check.nocheckInherit&&d&&!!d.nocheck;if(typeof b.chkDisabled=="string")b.chkDisabled=i.eqs(b.chkDisabled,"true");b.chkDisabled=!!b.chkDisabled||c.check.chkDisabledInherit&&d&&!!d.chkDisabled;if(typeof b.halfCheck=="string")b.halfCheck=i.eqs(b.halfCheck, -"true");b.halfCheck=!!b.halfCheck;b.check_Child_State=-1;b.check_Focus=!1;b.getCheckStatus=function(){return f.getCheckStatus(c,b)};c.check.chkStyle==h.radio.STYLE&&c.check.radioType==h.radio.TYPE_ALL&&a&&f.getRoot(c).radioCheckedList.push(b)}});f.addInitProxy(function(c){var a=c.target,b=f.getSetting(c.data.treeId),d="",e=null,g="",k=null;if(i.eqs(c.type,"mouseover")){if(b.check.enable&&i.eqs(a.tagName,"span")&&a.getAttribute("treeNode"+h.id.CHECK)!==null)d=i.getNodeMainDom(a).id,g="mouseoverCheck"}else if(i.eqs(c.type, -"mouseout")){if(b.check.enable&&i.eqs(a.tagName,"span")&&a.getAttribute("treeNode"+h.id.CHECK)!==null)d=i.getNodeMainDom(a).id,g="mouseoutCheck"}else if(i.eqs(c.type,"click")&&b.check.enable&&i.eqs(a.tagName,"span")&&a.getAttribute("treeNode"+h.id.CHECK)!==null)d=i.getNodeMainDom(a).id,g="checkNode";if(d.length>0)switch(e=f.getNodeCache(b,d),g){case "checkNode":k=p;break;case "mouseoverCheck":k=q;break;case "mouseoutCheck":k=r}return{stop:g==="checkNode",node:e,nodeEventType:g,nodeEventCallback:k, -treeEventType:"",treeEventCallback:null}},!0);f.addInitRoot(function(c){f.getRoot(c).radioCheckedList=[]});f.addBeforeA(function(c,a,b){c.check.enable&&(f.makeChkFlag(c,a),b.push(""))});f.addZTreeTools(function(c,a){a.checkNode=function(a,b,g,k){var m=f.nodeChecked(c,a);if(a.chkDisabled!==!0&&(b!==!0&&b!==!1&&(b=!m),k=!!k,(m!==b||g)&&!(k&&i.apply(this.setting.callback.beforeCheck, -[this.setting.treeId,a],!0)==!1)&&i.uCanDo(this.setting)&&this.setting.check.enable&&a.nocheck!==!0))f.nodeChecked(c,a,b),b=n(a,h.id.CHECK,this.setting),(g||this.setting.check.chkStyle===h.radio.STYLE)&&e.checkNodeRelation(this.setting,a),e.setChkClass(this.setting,b,a),e.repairParentChkClassWithSelf(this.setting,a),k&&this.setting.treeObj.trigger(h.event.CHECK,[null,this.setting.treeId,a])};a.checkAllNodes=function(a){e.repairAllChk(this.setting,!!a)};a.getCheckedNodes=function(a){var a=a!==!1,b= -f.nodeChildren(c,f.getRoot(this.setting));return f.getTreeCheckedNodes(this.setting,b,a)};a.getChangeCheckedNodes=function(){var a=f.nodeChildren(c,f.getRoot(this.setting));return f.getTreeChangeCheckedNodes(this.setting,a)};a.setChkDisabled=function(a,b,c,f){b=!!b;c=!!c;e.repairSonChkDisabled(this.setting,a,b,!!f);e.repairParentChkDisabled(this.setting,a.getParentNode(),b,c)};var b=a.updateNode;a.updateNode=function(c,f){b&&b.apply(a,arguments);if(c&&this.setting.check.enable&&n(c,this.setting).get(0)&& -i.uCanDo(this.setting)){var g=n(c,h.id.CHECK,this.setting);(f==!0||this.setting.check.chkStyle===h.radio.STYLE)&&e.checkNodeRelation(this.setting,c);e.setChkClass(this.setting,g,c);e.repairParentChkClassWithSelf(this.setting,c)}}});var s=e.createNodes;e.createNodes=function(c,a,b,d,f){s&&s.apply(e,arguments);b&&e.repairParentChkClassWithSelf(c,d)};var t=e.removeNode;e.removeNode=function(c,a){var b=a.getParentNode();t&&t.apply(e,arguments);a&&b&&(e.repairChkClass(c,b),e.repairParentChkClass(c,b))}; -var u=e.appendNodes;e.appendNodes=function(c,a,b,d,h,g,i){var m="";u&&(m=u.apply(e,arguments));d&&f.makeChkFlag(c,d);return m}})(jQuery); diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/js/jquery.ztree.exedit.js b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/js/jquery.ztree.exedit.js deleted file mode 100644 index 57358d86..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/js/jquery.ztree.exedit.js +++ /dev/null @@ -1,1203 +0,0 @@ -/* - * JQuery zTree exedit v3.5.40 - * http://treejs.cn/ - * - * Copyright (c) 2010 Hunter.z - * - * Licensed same as jquery - MIT License - * http://www.opensource.org/licenses/mit-license.php - * - * email: hunter.z@263.net - * Date: 2019-01-18 - */ -(function ($) { - //default consts of exedit - var _consts = { - event: { - DRAG: "ztree_drag", - DROP: "ztree_drop", - RENAME: "ztree_rename", - DRAGMOVE: "ztree_dragmove" - }, - id: { - EDIT: "_edit", - INPUT: "_input", - REMOVE: "_remove" - }, - move: { - TYPE_INNER: "inner", - TYPE_PREV: "prev", - TYPE_NEXT: "next" - }, - node: { - CURSELECTED_EDIT: "curSelectedNode_Edit", - TMPTARGET_TREE: "tmpTargetzTree", - TMPTARGET_NODE: "tmpTargetNode" - } - }, - //default setting of exedit - _setting = { - edit: { - enable: false, - editNameSelectAll: false, - showRemoveBtn: true, - showRenameBtn: true, - removeTitle: "remove", - renameTitle: "rename", - drag: { - autoExpandTrigger: false, - isCopy: true, - isMove: true, - prev: true, - next: true, - inner: true, - minMoveSize: 5, - borderMax: 10, - borderMin: -5, - maxShowNodeNum: 5, - autoOpenTime: 500 - } - }, - view: { - addHoverDom: null, - removeHoverDom: null - }, - callback: { - beforeDrag: null, - beforeDragOpen: null, - beforeDrop: null, - beforeEditName: null, - beforeRename: null, - onDrag: null, - onDragMove: null, - onDrop: null, - onRename: null - } - }, - //default root of exedit - _initRoot = function (setting) { - var r = data.getRoot(setting), rs = data.getRoots(); - r.curEditNode = null; - r.curEditInput = null; - r.curHoverNode = null; - r.dragFlag = 0; - r.dragNodeShowBefore = []; - r.dragMaskList = new Array(); - rs.showHoverDom = true; - }, - //default cache of exedit - _initCache = function (treeId) { - }, - //default bind event of exedit - _bindEvent = function (setting) { - var o = setting.treeObj; - var c = consts.event; - o.bind(c.RENAME, function (event, treeId, treeNode, isCancel) { - tools.apply(setting.callback.onRename, [event, treeId, treeNode, isCancel]); - }); - - o.bind(c.DRAG, function (event, srcEvent, treeId, treeNodes) { - tools.apply(setting.callback.onDrag, [srcEvent, treeId, treeNodes]); - }); - - o.bind(c.DRAGMOVE, function (event, srcEvent, treeId, treeNodes) { - tools.apply(setting.callback.onDragMove, [srcEvent, treeId, treeNodes]); - }); - - o.bind(c.DROP, function (event, srcEvent, treeId, treeNodes, targetNode, moveType, isCopy) { - tools.apply(setting.callback.onDrop, [srcEvent, treeId, treeNodes, targetNode, moveType, isCopy]); - }); - }, - _unbindEvent = function (setting) { - var o = setting.treeObj; - var c = consts.event; - o.unbind(c.RENAME); - o.unbind(c.DRAG); - o.unbind(c.DRAGMOVE); - o.unbind(c.DROP); - }, - //default event proxy of exedit - _eventProxy = function (e) { - var target = e.target, - setting = data.getSetting(e.data.treeId), - relatedTarget = e.relatedTarget, - tId = "", node = null, - nodeEventType = "", treeEventType = "", - nodeEventCallback = null, treeEventCallback = null, - tmp = null; - - if (tools.eqs(e.type, "mouseover")) { - tmp = tools.getMDom(setting, target, [{tagName: "a", attrName: "treeNode" + consts.id.A}]); - if (tmp) { - tId = tools.getNodeMainDom(tmp).id; - nodeEventType = "hoverOverNode"; - } - } else if (tools.eqs(e.type, "mouseout")) { - tmp = tools.getMDom(setting, relatedTarget, [{tagName: "a", attrName: "treeNode" + consts.id.A}]); - if (!tmp) { - tId = "remove"; - nodeEventType = "hoverOutNode"; - } - } else if (tools.eqs(e.type, "mousedown")) { - tmp = tools.getMDom(setting, target, [{tagName: "a", attrName: "treeNode" + consts.id.A}]); - if (tmp) { - tId = tools.getNodeMainDom(tmp).id; - nodeEventType = "mousedownNode"; - } - } - if (tId.length > 0) { - node = data.getNodeCache(setting, tId); - switch (nodeEventType) { - case "mousedownNode" : - nodeEventCallback = _handler.onMousedownNode; - break; - case "hoverOverNode" : - nodeEventCallback = _handler.onHoverOverNode; - break; - case "hoverOutNode" : - nodeEventCallback = _handler.onHoverOutNode; - break; - } - } - var proxyResult = { - stop: false, - node: node, - nodeEventType: nodeEventType, - nodeEventCallback: nodeEventCallback, - treeEventType: treeEventType, - treeEventCallback: treeEventCallback - }; - return proxyResult - }, - //default init node of exedit - _initNode = function (setting, level, n, parentNode, isFirstNode, isLastNode, openFlag) { - if (!n) return; - n.isHover = false; - n.editNameFlag = false; - }, - //update zTreeObj, add method of edit - _zTreeTools = function (setting, zTreeTools) { - zTreeTools.cancelEditName = function (newName) { - var root = data.getRoot(this.setting); - if (!root.curEditNode) return; - view.cancelCurEditNode(this.setting, newName ? newName : null, true); - } - zTreeTools.copyNode = function (targetNode, node, moveType, isSilent) { - if (!node) return null; - var isParent = data.nodeIsParent(setting, targetNode); - if (targetNode && !isParent && this.setting.data.keep.leaf && moveType === consts.move.TYPE_INNER) return null; - var _this = this, - newNode = tools.clone(node); - if (!targetNode) { - targetNode = null; - moveType = consts.move.TYPE_INNER; - } - if (moveType == consts.move.TYPE_INNER) { - function copyCallback() { - view.addNodes(_this.setting, targetNode, -1, [newNode], isSilent); - } - - if (tools.canAsync(this.setting, targetNode)) { - view.asyncNode(this.setting, targetNode, isSilent, copyCallback); - } else { - copyCallback(); - } - } else { - view.addNodes(this.setting, targetNode.parentNode, -1, [newNode], isSilent); - view.moveNode(this.setting, targetNode, newNode, moveType, false, isSilent); - } - return newNode; - } - zTreeTools.editName = function (node) { - if (!node || !node.tId || node !== data.getNodeCache(this.setting, node.tId)) return; - if (node.parentTId) view.expandCollapseParentNode(this.setting, node.getParentNode(), true); - view.editNode(this.setting, node) - } - zTreeTools.moveNode = function (targetNode, node, moveType, isSilent) { - if (!node) return node; - var isParent = data.nodeIsParent(setting, targetNode); - if (targetNode && !isParent && this.setting.data.keep.leaf && moveType === consts.move.TYPE_INNER) { - return null; - } else if (targetNode && ((node.parentTId == targetNode.tId && moveType == consts.move.TYPE_INNER) || $$(node, this.setting).find("#" + targetNode.tId).length > 0)) { - return null; - } else if (!targetNode) { - targetNode = null; - } - var _this = this; - - function moveCallback() { - view.moveNode(_this.setting, targetNode, node, moveType, false, isSilent); - } - - if (tools.canAsync(this.setting, targetNode) && moveType === consts.move.TYPE_INNER) { - view.asyncNode(this.setting, targetNode, isSilent, moveCallback); - } else { - moveCallback(); - } - return node; - } - zTreeTools.setEditable = function (editable) { - this.setting.edit.enable = editable; - return this.refresh(); - } - }, - //method of operate data - _data = { - setSonNodeLevel: function (setting, parentNode, node) { - if (!node) return; - var children = data.nodeChildren(setting, node); - node.level = (parentNode) ? parentNode.level + 1 : 0; - if (!children) return; - for (var i = 0, l = children.length; i < l; i++) { - if (children[i]) data.setSonNodeLevel(setting, node, children[i]); - } - } - }, - //method of event proxy - _event = {}, - //method of event handler - _handler = { - onHoverOverNode: function (event, node) { - var setting = data.getSetting(event.data.treeId), - root = data.getRoot(setting); - if (root.curHoverNode != node) { - _handler.onHoverOutNode(event); - } - root.curHoverNode = node; - view.addHoverDom(setting, node); - }, - onHoverOutNode: function (event, node) { - var setting = data.getSetting(event.data.treeId), - root = data.getRoot(setting); - if (root.curHoverNode && !data.isSelectedNode(setting, root.curHoverNode)) { - view.removeTreeDom(setting, root.curHoverNode); - root.curHoverNode = null; - } - }, - onMousedownNode: function (eventMouseDown, _node) { - var i, l, - setting = data.getSetting(eventMouseDown.data.treeId), - root = data.getRoot(setting), roots = data.getRoots(); - //right click can't drag & drop - if (eventMouseDown.button == 2 || !setting.edit.enable || (!setting.edit.drag.isCopy && !setting.edit.drag.isMove)) return true; - - //input of edit node name can't drag & drop - var target = eventMouseDown.target, - _nodes = data.getRoot(setting).curSelectedList, - nodes = []; - if (!data.isSelectedNode(setting, _node)) { - nodes = [_node]; - } else { - for (i = 0, l = _nodes.length; i < l; i++) { - if (_nodes[i].editNameFlag && tools.eqs(target.tagName, "input") && target.getAttribute("treeNode" + consts.id.INPUT) !== null) { - return true; - } - nodes.push(_nodes[i]); - if (nodes[0].parentTId !== _nodes[i].parentTId) { - nodes = [_node]; - break; - } - } - } - - view.editNodeBlur = true; - view.cancelCurEditNode(setting); - - var doc = $(setting.treeObj.get(0).ownerDocument), - body = $(setting.treeObj.get(0).ownerDocument.body), curNode, tmpArrow, tmpTarget, - isOtherTree = false, - targetSetting = setting, - sourceSetting = setting, - preNode, nextNode, - preTmpTargetNodeId = null, - preTmpMoveType = null, - tmpTargetNodeId = null, - moveType = consts.move.TYPE_INNER, - mouseDownX = eventMouseDown.clientX, - mouseDownY = eventMouseDown.clientY, - startTime = (new Date()).getTime(); - - if (tools.uCanDo(setting)) { - doc.bind("mousemove", _docMouseMove); - } - - function _docMouseMove(event) { - //avoid start drag after click node - if (root.dragFlag == 0 && Math.abs(mouseDownX - event.clientX) < setting.edit.drag.minMoveSize - && Math.abs(mouseDownY - event.clientY) < setting.edit.drag.minMoveSize) { - return true; - } - var i, l, tmpNode, tmpDom, tmpNodes; - body.css("cursor", "pointer"); - - if (root.dragFlag == 0) { - if (tools.apply(setting.callback.beforeDrag, [setting.treeId, nodes], true) == false) { - _docMouseUp(event); - return true; - } - - for (i = 0, l = nodes.length; i < l; i++) { - if (i == 0) { - root.dragNodeShowBefore = []; - } - tmpNode = nodes[i]; - if (data.nodeIsParent(setting, tmpNode) && tmpNode.open) { - view.expandCollapseNode(setting, tmpNode, !tmpNode.open); - root.dragNodeShowBefore[tmpNode.tId] = true; - } else { - root.dragNodeShowBefore[tmpNode.tId] = false; - } - } - - root.dragFlag = 1; - roots.showHoverDom = false; - tools.showIfameMask(setting, true); - - //sort - var isOrder = true, lastIndex = -1; - if (nodes.length > 1) { - var pNodes = nodes[0].parentTId ? data.nodeChildren(setting, nodes[0].getParentNode()) : data.getNodes(setting); - tmpNodes = []; - for (i = 0, l = pNodes.length; i < l; i++) { - if (root.dragNodeShowBefore[pNodes[i].tId] !== undefined) { - if (isOrder && lastIndex > -1 && (lastIndex + 1) !== i) { - isOrder = false; - } - tmpNodes.push(pNodes[i]); - lastIndex = i; - } - if (nodes.length === tmpNodes.length) { - nodes = tmpNodes; - break; - } - } - } - if (isOrder) { - preNode = nodes[0].getPreNode(); - nextNode = nodes[nodes.length - 1].getNextNode(); - } - - //set node in selected - curNode = $$("
                                                                                                                                                                                                                                                                                                            ", setting); - for (i = 0, l = nodes.length; i < l; i++) { - tmpNode = nodes[i]; - tmpNode.editNameFlag = false; - view.selectNode(setting, tmpNode, i > 0); - view.removeTreeDom(setting, tmpNode); - - if (i > setting.edit.drag.maxShowNodeNum - 1) { - continue; - } - - tmpDom = $$("
                                                                                                                                                                                                                                                                                                          • ", setting); - tmpDom.append($$(tmpNode, consts.id.A, setting).clone()); - tmpDom.css("padding", "0"); - tmpDom.children("#" + tmpNode.tId + consts.id.A).removeClass(consts.node.CURSELECTED); - curNode.append(tmpDom); - if (i == setting.edit.drag.maxShowNodeNum - 1) { - tmpDom = $$("
                                                                                                                                                                                                                                                                                                          • ...
                                                                                                                                                                                                                                                                                                          • ", setting); - curNode.append(tmpDom); - } - } - curNode.attr("id", nodes[0].tId + consts.id.UL + "_tmp"); - curNode.addClass(setting.treeObj.attr("class")); - curNode.appendTo(body); - - tmpArrow = $$("", setting); - tmpArrow.attr("id", "zTreeMove_arrow_tmp"); - tmpArrow.appendTo(body); - - setting.treeObj.trigger(consts.event.DRAG, [event, setting.treeId, nodes]); - } - - if (root.dragFlag == 1) { - if (tmpTarget && tmpArrow.attr("id") == event.target.id && tmpTargetNodeId && (event.clientX + doc.scrollLeft() + 2) > ($("#" + tmpTargetNodeId + consts.id.A, tmpTarget).offset().left)) { - var xT = $("#" + tmpTargetNodeId + consts.id.A, tmpTarget); - event.target = (xT.length > 0) ? xT.get(0) : event.target; - } else if (tmpTarget) { - tmpTarget.removeClass(consts.node.TMPTARGET_TREE); - if (tmpTargetNodeId) $("#" + tmpTargetNodeId + consts.id.A, tmpTarget).removeClass(consts.node.TMPTARGET_NODE + "_" + consts.move.TYPE_PREV) - .removeClass(consts.node.TMPTARGET_NODE + "_" + _consts.move.TYPE_NEXT).removeClass(consts.node.TMPTARGET_NODE + "_" + _consts.move.TYPE_INNER); - } - tmpTarget = null; - tmpTargetNodeId = null; - - //judge drag & drop in multi ztree - isOtherTree = false; - targetSetting = setting; - var settings = data.getSettings(); - for (var s in settings) { - if (settings[s].treeId && settings[s].edit.enable && settings[s].treeId != setting.treeId - && (event.target.id == settings[s].treeId || $(event.target).parents("#" + settings[s].treeId).length > 0)) { - isOtherTree = true; - targetSetting = settings[s]; - } - } - - var docScrollTop = doc.scrollTop(), - docScrollLeft = doc.scrollLeft(), - treeOffset = targetSetting.treeObj.offset(), - scrollHeight = targetSetting.treeObj.get(0).scrollHeight, - scrollWidth = targetSetting.treeObj.get(0).scrollWidth, - dTop = (event.clientY + docScrollTop - treeOffset.top), - dBottom = (targetSetting.treeObj.height() + treeOffset.top - event.clientY - docScrollTop), - dLeft = (event.clientX + docScrollLeft - treeOffset.left), - dRight = (targetSetting.treeObj.width() + treeOffset.left - event.clientX - docScrollLeft), - isTop = (dTop < setting.edit.drag.borderMax && dTop > setting.edit.drag.borderMin), - isBottom = (dBottom < setting.edit.drag.borderMax && dBottom > setting.edit.drag.borderMin), - isLeft = (dLeft < setting.edit.drag.borderMax && dLeft > setting.edit.drag.borderMin), - isRight = (dRight < setting.edit.drag.borderMax && dRight > setting.edit.drag.borderMin), - isTreeInner = dTop > setting.edit.drag.borderMin && dBottom > setting.edit.drag.borderMin && dLeft > setting.edit.drag.borderMin && dRight > setting.edit.drag.borderMin, - isTreeTop = (isTop && targetSetting.treeObj.scrollTop() <= 0), - isTreeBottom = (isBottom && (targetSetting.treeObj.scrollTop() + targetSetting.treeObj.height() + 10) >= scrollHeight), - isTreeLeft = (isLeft && targetSetting.treeObj.scrollLeft() <= 0), - isTreeRight = (isRight && (targetSetting.treeObj.scrollLeft() + targetSetting.treeObj.width() + 10) >= scrollWidth); - - if (event.target && tools.isChildOrSelf(event.target, targetSetting.treeId)) { - //get node
                                                                                                                                                                                                                                                                                                          • dom - var targetObj = event.target; - while (targetObj && targetObj.tagName && !tools.eqs(targetObj.tagName, "li") && targetObj.id != targetSetting.treeId) { - targetObj = targetObj.parentNode; - } - - var canMove = true; - //don't move to self or children of self - for (i = 0, l = nodes.length; i < l; i++) { - tmpNode = nodes[i]; - if (targetObj.id === tmpNode.tId) { - canMove = false; - break; - } else if ($$(tmpNode, setting).find("#" + targetObj.id).length > 0) { - canMove = false; - break; - } - } - if (canMove && event.target && tools.isChildOrSelf(event.target, targetObj.id + consts.id.A)) { - tmpTarget = $(targetObj); - tmpTargetNodeId = targetObj.id; - } - } - - //the mouse must be in zTree - tmpNode = nodes[0]; - if (isTreeInner && tools.isChildOrSelf(event.target, targetSetting.treeId)) { - //judge mouse move in root of ztree - if (!tmpTarget && (event.target.id == targetSetting.treeId || isTreeTop || isTreeBottom || isTreeLeft || isTreeRight) && (isOtherTree || (!isOtherTree && tmpNode.parentTId))) { - tmpTarget = targetSetting.treeObj; - } - //auto scroll top - if (isTop) { - targetSetting.treeObj.scrollTop(targetSetting.treeObj.scrollTop() - 10); - } else if (isBottom) { - targetSetting.treeObj.scrollTop(targetSetting.treeObj.scrollTop() + 10); - } - if (isLeft) { - targetSetting.treeObj.scrollLeft(targetSetting.treeObj.scrollLeft() - 10); - } else if (isRight) { - targetSetting.treeObj.scrollLeft(targetSetting.treeObj.scrollLeft() + 10); - } - //auto scroll left - if (tmpTarget && tmpTarget != targetSetting.treeObj && tmpTarget.offset().left < targetSetting.treeObj.offset().left) { - targetSetting.treeObj.scrollLeft(targetSetting.treeObj.scrollLeft() + tmpTarget.offset().left - targetSetting.treeObj.offset().left); - } - } - - curNode.css({ - "top": (event.clientY + docScrollTop + 3) + "px", - "left": (event.clientX + docScrollLeft + 3) + "px" - }); - - var dX = 0; - var dY = 0; - if (tmpTarget && tmpTarget.attr("id") != targetSetting.treeId) { - var tmpTargetNode = tmpTargetNodeId == null ? null : data.getNodeCache(targetSetting, tmpTargetNodeId), - isCopy = ((event.ctrlKey || event.metaKey) && setting.edit.drag.isMove && setting.edit.drag.isCopy) || (!setting.edit.drag.isMove && setting.edit.drag.isCopy), - isPrev = !!(preNode && tmpTargetNodeId === preNode.tId), - isNext = !!(nextNode && tmpTargetNodeId === nextNode.tId), - isInner = (tmpNode.parentTId && tmpNode.parentTId == tmpTargetNodeId), - canPrev = (isCopy || !isNext) && tools.apply(targetSetting.edit.drag.prev, [targetSetting.treeId, nodes, tmpTargetNode], !!targetSetting.edit.drag.prev), - canNext = (isCopy || !isPrev) && tools.apply(targetSetting.edit.drag.next, [targetSetting.treeId, nodes, tmpTargetNode], !!targetSetting.edit.drag.next), - canInner = (isCopy || !isInner) && !(targetSetting.data.keep.leaf && !data.nodeIsParent(setting, tmpTargetNode)) && tools.apply(targetSetting.edit.drag.inner, [targetSetting.treeId, nodes, tmpTargetNode], !!targetSetting.edit.drag.inner); - - function clearMove() { - tmpTarget = null; - tmpTargetNodeId = ""; - moveType = consts.move.TYPE_INNER; - tmpArrow.css({ - "display": "none" - }); - if (window.zTreeMoveTimer) { - clearTimeout(window.zTreeMoveTimer); - window.zTreeMoveTargetNodeTId = null - } - } - - if (!canPrev && !canNext && !canInner) { - clearMove(); - } else { - var tmpTargetA = $("#" + tmpTargetNodeId + consts.id.A, tmpTarget), - tmpNextA = tmpTargetNode.isLastNode ? null : $("#" + tmpTargetNode.getNextNode().tId + consts.id.A, tmpTarget.next()), - tmpTop = tmpTargetA.offset().top, - tmpLeft = tmpTargetA.offset().left, - prevPercent = canPrev ? (canInner ? 0.25 : (canNext ? 0.5 : 1)) : -1, - nextPercent = canNext ? (canInner ? 0.75 : (canPrev ? 0.5 : 0)) : -1, - dY_percent = (event.clientY + docScrollTop - tmpTop) / tmpTargetA.height(); - - if ((prevPercent == 1 || dY_percent <= prevPercent && dY_percent >= -.2) && canPrev) { - dX = 1 - tmpArrow.width(); - dY = tmpTop - tmpArrow.height() / 2; - moveType = consts.move.TYPE_PREV; - } else if ((nextPercent == 0 || dY_percent >= nextPercent && dY_percent <= 1.2) && canNext) { - dX = 1 - tmpArrow.width(); - dY = (tmpNextA == null || (data.nodeIsParent(setting, tmpTargetNode) && tmpTargetNode.open)) ? (tmpTop + tmpTargetA.height() - tmpArrow.height() / 2) : (tmpNextA.offset().top - tmpArrow.height() / 2); - moveType = consts.move.TYPE_NEXT; - } else if (canInner) { - dX = 5 - tmpArrow.width(); - dY = tmpTop; - moveType = consts.move.TYPE_INNER; - } else { - clearMove(); - } - - if (tmpTarget) { - tmpArrow.css({ - "display": "block", - "top": dY + "px", - "left": (tmpLeft + dX) + "px" - }); - tmpTargetA.addClass(consts.node.TMPTARGET_NODE + "_" + moveType); - - if (preTmpTargetNodeId != tmpTargetNodeId || preTmpMoveType != moveType) { - startTime = (new Date()).getTime(); - } - if (tmpTargetNode && data.nodeIsParent(setting, tmpTargetNode) && moveType == consts.move.TYPE_INNER) { - var startTimer = true; - if (window.zTreeMoveTimer && window.zTreeMoveTargetNodeTId !== tmpTargetNode.tId) { - clearTimeout(window.zTreeMoveTimer); - window.zTreeMoveTargetNodeTId = null; - } else if (window.zTreeMoveTimer && window.zTreeMoveTargetNodeTId === tmpTargetNode.tId) { - startTimer = false; - } - if (startTimer) { - window.zTreeMoveTimer = setTimeout(function () { - if (moveType != consts.move.TYPE_INNER) return; - if (tmpTargetNode && data.nodeIsParent(setting, tmpTargetNode) && !tmpTargetNode.open && (new Date()).getTime() - startTime > targetSetting.edit.drag.autoOpenTime - && tools.apply(targetSetting.callback.beforeDragOpen, [targetSetting.treeId, tmpTargetNode], true)) { - view.switchNode(targetSetting, tmpTargetNode); - if (targetSetting.edit.drag.autoExpandTrigger) { - targetSetting.treeObj.trigger(consts.event.EXPAND, [targetSetting.treeId, tmpTargetNode]); - } - } - }, targetSetting.edit.drag.autoOpenTime + 50); - window.zTreeMoveTargetNodeTId = tmpTargetNode.tId; - } - } - } - } - } else { - moveType = consts.move.TYPE_INNER; - if (tmpTarget && tools.apply(targetSetting.edit.drag.inner, [targetSetting.treeId, nodes, null], !!targetSetting.edit.drag.inner)) { - tmpTarget.addClass(consts.node.TMPTARGET_TREE); - } else { - tmpTarget = null; - } - tmpArrow.css({ - "display": "none" - }); - if (window.zTreeMoveTimer) { - clearTimeout(window.zTreeMoveTimer); - window.zTreeMoveTargetNodeTId = null; - } - } - preTmpTargetNodeId = tmpTargetNodeId; - preTmpMoveType = moveType; - - setting.treeObj.trigger(consts.event.DRAGMOVE, [event, setting.treeId, nodes]); - } - return false; - } - - doc.bind("mouseup", _docMouseUp); - - function _docMouseUp(event) { - if (window.zTreeMoveTimer) { - clearTimeout(window.zTreeMoveTimer); - window.zTreeMoveTargetNodeTId = null; - } - preTmpTargetNodeId = null; - preTmpMoveType = null; - doc.unbind("mousemove", _docMouseMove); - doc.unbind("mouseup", _docMouseUp); - doc.unbind("selectstart", _docSelect); - body.css("cursor", ""); - if (tmpTarget) { - tmpTarget.removeClass(consts.node.TMPTARGET_TREE); - if (tmpTargetNodeId) $("#" + tmpTargetNodeId + consts.id.A, tmpTarget).removeClass(consts.node.TMPTARGET_NODE + "_" + consts.move.TYPE_PREV) - .removeClass(consts.node.TMPTARGET_NODE + "_" + _consts.move.TYPE_NEXT).removeClass(consts.node.TMPTARGET_NODE + "_" + _consts.move.TYPE_INNER); - } - tools.showIfameMask(setting, false); - - roots.showHoverDom = true; - if (root.dragFlag == 0) return; - root.dragFlag = 0; - - var i, l, tmpNode; - for (i = 0, l = nodes.length; i < l; i++) { - tmpNode = nodes[i]; - if (data.nodeIsParent(setting, tmpNode) && root.dragNodeShowBefore[tmpNode.tId] && !tmpNode.open) { - view.expandCollapseNode(setting, tmpNode, !tmpNode.open); - delete root.dragNodeShowBefore[tmpNode.tId]; - } - } - - if (curNode) curNode.remove(); - if (tmpArrow) tmpArrow.remove(); - - var isCopy = ((event.ctrlKey || event.metaKey) && setting.edit.drag.isMove && setting.edit.drag.isCopy) || (!setting.edit.drag.isMove && setting.edit.drag.isCopy); - if (!isCopy && tmpTarget && tmpTargetNodeId && nodes[0].parentTId && tmpTargetNodeId == nodes[0].parentTId && moveType == consts.move.TYPE_INNER) { - tmpTarget = null; - } - if (tmpTarget) { - var dragTargetNode = tmpTargetNodeId == null ? null : data.getNodeCache(targetSetting, tmpTargetNodeId); - if (tools.apply(setting.callback.beforeDrop, [targetSetting.treeId, nodes, dragTargetNode, moveType, isCopy], true) == false) { - view.selectNodes(sourceSetting, nodes); - return; - } - var newNodes = isCopy ? tools.clone(nodes) : nodes; - - function dropCallback() { - if (isOtherTree) { - if (!isCopy) { - for (var i = 0, l = nodes.length; i < l; i++) { - view.removeNode(setting, nodes[i]); - } - } - if (moveType == consts.move.TYPE_INNER) { - view.addNodes(targetSetting, dragTargetNode, -1, newNodes); - } else { - view.addNodes(targetSetting, dragTargetNode.getParentNode(), moveType == consts.move.TYPE_PREV ? dragTargetNode.getIndex() : dragTargetNode.getIndex() + 1, newNodes); - } - } else { - if (isCopy && moveType == consts.move.TYPE_INNER) { - view.addNodes(targetSetting, dragTargetNode, -1, newNodes); - } else if (isCopy) { - view.addNodes(targetSetting, dragTargetNode.getParentNode(), moveType == consts.move.TYPE_PREV ? dragTargetNode.getIndex() : dragTargetNode.getIndex() + 1, newNodes); - } else { - if (moveType != consts.move.TYPE_NEXT) { - for (i = 0, l = newNodes.length; i < l; i++) { - view.moveNode(targetSetting, dragTargetNode, newNodes[i], moveType, false); - } - } else { - for (i = -1, l = newNodes.length - 1; i < l; l--) { - view.moveNode(targetSetting, dragTargetNode, newNodes[l], moveType, false); - } - } - } - } - view.selectNodes(targetSetting, newNodes); - - var a = $$(newNodes[0], setting).get(0); - view.scrollIntoView(setting, a); - - setting.treeObj.trigger(consts.event.DROP, [event, targetSetting.treeId, newNodes, dragTargetNode, moveType, isCopy]); - } - - if (moveType == consts.move.TYPE_INNER && tools.canAsync(targetSetting, dragTargetNode)) { - view.asyncNode(targetSetting, dragTargetNode, false, dropCallback); - } else { - dropCallback(); - } - - } else { - view.selectNodes(sourceSetting, nodes); - setting.treeObj.trigger(consts.event.DROP, [event, setting.treeId, nodes, null, null, null]); - } - } - - doc.bind("selectstart", _docSelect); - - function _docSelect() { - return false; - } - - // 2018-03-30 FireFox has fixed this issue. - //Avoid FireFox's Bug - //If zTree Div CSS set 'overflow', so drag node outside of zTree, and event.target is error. - // if(eventMouseDown.preventDefault) { - // eventMouseDown.preventDefault(); - // } - return true; - } - }, - //method of tools for zTree - _tools = { - getAbs: function (obj) { - var oRect = obj.getBoundingClientRect(), - scrollTop = document.body.scrollTop + document.documentElement.scrollTop, - scrollLeft = document.body.scrollLeft + document.documentElement.scrollLeft; - return [oRect.left + scrollLeft, oRect.top + scrollTop]; - }, - inputFocus: function (inputObj) { - if (inputObj.get(0)) { - inputObj.focus(); - tools.setCursorPosition(inputObj.get(0), inputObj.val().length); - } - }, - inputSelect: function (inputObj) { - if (inputObj.get(0)) { - inputObj.focus(); - inputObj.select(); - } - }, - setCursorPosition: function (obj, pos) { - if (obj.setSelectionRange) { - obj.focus(); - obj.setSelectionRange(pos, pos); - } else if (obj.createTextRange) { - var range = obj.createTextRange(); - range.collapse(true); - range.moveEnd('character', pos); - range.moveStart('character', pos); - range.select(); - } - }, - showIfameMask: function (setting, showSign) { - var root = data.getRoot(setting); - //clear full mask - while (root.dragMaskList.length > 0) { - root.dragMaskList[0].remove(); - root.dragMaskList.shift(); - } - if (showSign) { - //show mask - var iframeList = $$("iframe", setting); - for (var i = 0, l = iframeList.length; i < l; i++) { - var obj = iframeList.get(i), - r = tools.getAbs(obj), - dragMask = $$("
                                                                                                                                                                                                                                                                                                            ", setting); - dragMask.appendTo($$("body", setting)); - root.dragMaskList.push(dragMask); - } - } - } - }, - //method of operate ztree dom - _view = { - addEditBtn: function (setting, node) { - if (node.editNameFlag || $$(node, consts.id.EDIT, setting).length > 0) { - return; - } - if (!tools.apply(setting.edit.showRenameBtn, [setting.treeId, node], setting.edit.showRenameBtn)) { - return; - } - var aObj = $$(node, consts.id.A, setting), - editStr = ""; - aObj.append(editStr); - - $$(node, consts.id.EDIT, setting).bind('click', - function () { - if (!tools.uCanDo(setting) || tools.apply(setting.callback.beforeEditName, [setting.treeId, node], true) == false) return false; - view.editNode(setting, node); - return false; - } - ).show(); - }, - addRemoveBtn: function (setting, node) { - if (node.editNameFlag || $$(node, consts.id.REMOVE, setting).length > 0) { - return; - } - if (!tools.apply(setting.edit.showRemoveBtn, [setting.treeId, node], setting.edit.showRemoveBtn)) { - return; - } - var aObj = $$(node, consts.id.A, setting), - removeStr = ""; - aObj.append(removeStr); - - $$(node, consts.id.REMOVE, setting).bind('click', - function () { - if (!tools.uCanDo(setting) || tools.apply(setting.callback.beforeRemove, [setting.treeId, node], true) == false) return false; - view.removeNode(setting, node); - setting.treeObj.trigger(consts.event.REMOVE, [setting.treeId, node]); - return false; - } - ).bind('mousedown', - function (eventMouseDown) { - return true; - } - ).show(); - }, - addHoverDom: function (setting, node) { - if (data.getRoots().showHoverDom) { - node.isHover = true; - if (setting.edit.enable) { - view.addEditBtn(setting, node); - view.addRemoveBtn(setting, node); - } - tools.apply(setting.view.addHoverDom, [setting.treeId, node]); - } - }, - cancelCurEditNode: function (setting, forceName, isCancel) { - var root = data.getRoot(setting), - node = root.curEditNode; - - if (node) { - var inputObj = root.curEditInput, - newName = forceName ? forceName : (isCancel ? data.nodeName(setting, node) : inputObj.val()); - if (tools.apply(setting.callback.beforeRename, [setting.treeId, node, newName, isCancel], true) === false) { - return false; - } - data.nodeName(setting, node, newName); - var aObj = $$(node, consts.id.A, setting); - aObj.removeClass(consts.node.CURSELECTED_EDIT); - inputObj.unbind(); - view.setNodeName(setting, node); - node.editNameFlag = false; - root.curEditNode = null; - root.curEditInput = null; - view.selectNode(setting, node, false); - setting.treeObj.trigger(consts.event.RENAME, [setting.treeId, node, isCancel]); - } - root.noSelection = true; - return true; - }, - editNode: function (setting, node) { - var root = data.getRoot(setting); - view.editNodeBlur = false; - if (data.isSelectedNode(setting, node) && root.curEditNode == node && node.editNameFlag) { - setTimeout(function () { - tools.inputFocus(root.curEditInput); - }, 0); - return; - } - node.editNameFlag = true; - view.removeTreeDom(setting, node); - view.cancelCurEditNode(setting); - view.selectNode(setting, node, false); - $$(node, consts.id.SPAN, setting).html(""); - var inputObj = $$(node, consts.id.INPUT, setting); - inputObj.attr("value", data.nodeName(setting, node)); - if (setting.edit.editNameSelectAll) { - tools.inputSelect(inputObj); - } else { - tools.inputFocus(inputObj); - } - - inputObj.bind('blur', function (event) { - if (!view.editNodeBlur) { - view.cancelCurEditNode(setting); - } - }).bind('keydown', function (event) { - if (event.keyCode == "13") { - view.editNodeBlur = true; - view.cancelCurEditNode(setting); - } else if (event.keyCode == "27") { - view.cancelCurEditNode(setting, null, true); - } - }).bind('click', function (event) { - return false; - }).bind('dblclick', function (event) { - return false; - }); - - $$(node, consts.id.A, setting).addClass(consts.node.CURSELECTED_EDIT); - root.curEditInput = inputObj; - root.noSelection = false; - root.curEditNode = node; - }, - moveNode: function (setting, targetNode, node, moveType, animateFlag, isSilent) { - var root = data.getRoot(setting); - if (targetNode == node) return; - if (setting.data.keep.leaf && targetNode && !data.nodeIsParent(setting, targetNode) && moveType == consts.move.TYPE_INNER) return; - var oldParentNode = (node.parentTId ? node.getParentNode() : root), - targetNodeIsRoot = (targetNode === null || targetNode == root); - if (targetNodeIsRoot && targetNode === null) targetNode = root; - if (targetNodeIsRoot) moveType = consts.move.TYPE_INNER; - var targetParentNode = (targetNode.parentTId ? targetNode.getParentNode() : root); - - if (moveType != consts.move.TYPE_PREV && moveType != consts.move.TYPE_NEXT) { - moveType = consts.move.TYPE_INNER; - } - - if (moveType == consts.move.TYPE_INNER) { - if (targetNodeIsRoot) { - //parentTId of root node is null - node.parentTId = null; - } else { - if (!data.nodeIsParent(setting, targetNode)) { - data.nodeIsParent(setting, targetNode, true); - targetNode.open = !!targetNode.open; - view.setNodeLineIcos(setting, targetNode); - } - node.parentTId = targetNode.tId; - } - } - - //move node Dom - var targetObj, target_ulObj; - if (targetNodeIsRoot) { - targetObj = setting.treeObj; - target_ulObj = targetObj; - } else { - if (!isSilent && moveType == consts.move.TYPE_INNER) { - view.expandCollapseNode(setting, targetNode, true, false); - } else if (!isSilent) { - view.expandCollapseNode(setting, targetNode.getParentNode(), true, false); - } - targetObj = $$(targetNode, setting); - target_ulObj = $$(targetNode, consts.id.UL, setting); - if (!!targetObj.get(0) && !target_ulObj.get(0)) { - var ulstr = []; - view.makeUlHtml(setting, targetNode, ulstr, ''); - targetObj.append(ulstr.join('')); - } - target_ulObj = $$(targetNode, consts.id.UL, setting); - } - var nodeDom = $$(node, setting); - if (!nodeDom.get(0)) { - nodeDom = view.appendNodes(setting, node.level, [node], null, -1, false, true).join(''); - } else if (!targetObj.get(0)) { - nodeDom.remove(); - } - if (target_ulObj.get(0) && moveType == consts.move.TYPE_INNER) { - target_ulObj.append(nodeDom); - } else if (targetObj.get(0) && moveType == consts.move.TYPE_PREV) { - targetObj.before(nodeDom); - } else if (targetObj.get(0) && moveType == consts.move.TYPE_NEXT) { - targetObj.after(nodeDom); - } - - //repair the data after move - var i, l, - tmpSrcIndex = -1, - tmpTargetIndex = 0, - oldNeighbor = null, - newNeighbor = null, - oldLevel = node.level; - var oldChildren = data.nodeChildren(setting, oldParentNode); - var targetParentChildren = data.nodeChildren(setting, targetParentNode); - var targetChildren = data.nodeChildren(setting, targetNode); - if (node.isFirstNode) { - tmpSrcIndex = 0; - if (oldChildren.length > 1) { - oldNeighbor = oldChildren[1]; - oldNeighbor.isFirstNode = true; - } - } else if (node.isLastNode) { - tmpSrcIndex = oldChildren.length - 1; - oldNeighbor = oldChildren[tmpSrcIndex - 1]; - oldNeighbor.isLastNode = true; - } else { - for (i = 0, l = oldChildren.length; i < l; i++) { - if (oldChildren[i].tId == node.tId) { - tmpSrcIndex = i; - break; - } - } - } - if (tmpSrcIndex >= 0) { - oldChildren.splice(tmpSrcIndex, 1); - } - if (moveType != consts.move.TYPE_INNER) { - for (i = 0, l = targetParentChildren.length; i < l; i++) { - if (targetParentChildren[i].tId == targetNode.tId) tmpTargetIndex = i; - } - } - if (moveType == consts.move.TYPE_INNER) { - if (!targetChildren) { - targetChildren = data.nodeChildren(setting, targetNode, []); - } - if (targetChildren.length > 0) { - newNeighbor = targetChildren[targetChildren.length - 1]; - newNeighbor.isLastNode = false; - } - targetChildren.splice(targetChildren.length, 0, node); - node.isLastNode = true; - node.isFirstNode = (targetChildren.length == 1); - } else if (targetNode.isFirstNode && moveType == consts.move.TYPE_PREV) { - targetParentChildren.splice(tmpTargetIndex, 0, node); - newNeighbor = targetNode; - newNeighbor.isFirstNode = false; - node.parentTId = targetNode.parentTId; - node.isFirstNode = true; - node.isLastNode = false; - - } else if (targetNode.isLastNode && moveType == consts.move.TYPE_NEXT) { - targetParentChildren.splice(tmpTargetIndex + 1, 0, node); - newNeighbor = targetNode; - newNeighbor.isLastNode = false; - node.parentTId = targetNode.parentTId; - node.isFirstNode = false; - node.isLastNode = true; - - } else { - if (moveType == consts.move.TYPE_PREV) { - targetParentChildren.splice(tmpTargetIndex, 0, node); - } else { - targetParentChildren.splice(tmpTargetIndex + 1, 0, node); - } - node.parentTId = targetNode.parentTId; - node.isFirstNode = false; - node.isLastNode = false; - } - data.fixPIdKeyValue(setting, node); - data.setSonNodeLevel(setting, node.getParentNode(), node); - - //repair node what been moved - view.setNodeLineIcos(setting, node); - view.repairNodeLevelClass(setting, node, oldLevel); - - //repair node's old parentNode dom - if (!setting.data.keep.parent && oldChildren.length < 1) { - //old parentNode has no child nodes - data.nodeIsParent(setting, oldParentNode, false); - oldParentNode.open = false; - var tmp_ulObj = $$(oldParentNode, consts.id.UL, setting), - tmp_switchObj = $$(oldParentNode, consts.id.SWITCH, setting), - tmp_icoObj = $$(oldParentNode, consts.id.ICON, setting); - view.replaceSwitchClass(oldParentNode, tmp_switchObj, consts.folder.DOCU); - view.replaceIcoClass(oldParentNode, tmp_icoObj, consts.folder.DOCU); - tmp_ulObj.css("display", "none"); - - } else if (oldNeighbor) { - //old neigbor node - view.setNodeLineIcos(setting, oldNeighbor); - } - - //new neigbor node - if (newNeighbor) { - view.setNodeLineIcos(setting, newNeighbor); - } - - //repair checkbox / radio - if (!!setting.check && setting.check.enable && view.repairChkClass) { - view.repairChkClass(setting, oldParentNode); - view.repairParentChkClassWithSelf(setting, oldParentNode); - if (oldParentNode != node.parent) - view.repairParentChkClassWithSelf(setting, node); - } - - //expand parents after move - if (!isSilent) { - view.expandCollapseParentNode(setting, node.getParentNode(), true, animateFlag); - } - }, - removeEditBtn: function (setting, node) { - $$(node, consts.id.EDIT, setting).unbind().remove(); - }, - removeRemoveBtn: function (setting, node) { - $$(node, consts.id.REMOVE, setting).unbind().remove(); - }, - removeTreeDom: function (setting, node) { - node.isHover = false; - view.removeEditBtn(setting, node); - view.removeRemoveBtn(setting, node); - tools.apply(setting.view.removeHoverDom, [setting.treeId, node]); - }, - repairNodeLevelClass: function (setting, node, oldLevel) { - if (oldLevel === node.level) return; - var liObj = $$(node, setting), - aObj = $$(node, consts.id.A, setting), - ulObj = $$(node, consts.id.UL, setting), - oldClass = consts.className.LEVEL + oldLevel, - newClass = consts.className.LEVEL + node.level; - liObj.removeClass(oldClass); - liObj.addClass(newClass); - aObj.removeClass(oldClass); - aObj.addClass(newClass); - ulObj.removeClass(oldClass); - ulObj.addClass(newClass); - }, - selectNodes: function (setting, nodes) { - for (var i = 0, l = nodes.length; i < l; i++) { - view.selectNode(setting, nodes[i], i > 0); - } - } - }, - - _z = { - tools: _tools, - view: _view, - event: _event, - data: _data - }; - $.extend(true, $.fn.zTree.consts, _consts); - $.extend(true, $.fn.zTree._z, _z); - - var zt = $.fn.zTree, - tools = zt._z.tools, - consts = zt.consts, - view = zt._z.view, - data = zt._z.data, - event = zt._z.event, - $$ = tools.$; - - data.exSetting(_setting); - data.addInitBind(_bindEvent); - data.addInitUnBind(_unbindEvent); - data.addInitCache(_initCache); - data.addInitNode(_initNode); - data.addInitProxy(_eventProxy); - data.addInitRoot(_initRoot); - data.addZTreeTools(_zTreeTools); - - var _cancelPreSelectedNode = view.cancelPreSelectedNode; - view.cancelPreSelectedNode = function (setting, node) { - var list = data.getRoot(setting).curSelectedList; - for (var i = 0, j = list.length; i < j; i++) { - if (!node || node === list[i]) { - view.removeTreeDom(setting, list[i]); - if (node) break; - } - } - if (_cancelPreSelectedNode) _cancelPreSelectedNode.apply(view, arguments); - } - - var _createNodes = view.createNodes; - view.createNodes = function (setting, level, nodes, parentNode, index) { - if (_createNodes) { - _createNodes.apply(view, arguments); - } - if (!nodes) return; - if (view.repairParentChkClassWithSelf) { - view.repairParentChkClassWithSelf(setting, parentNode); - } - } - - var _makeNodeUrl = view.makeNodeUrl; - view.makeNodeUrl = function (setting, node) { - return setting.edit.enable ? null : (_makeNodeUrl.apply(view, arguments)); - } - - var _removeNode = view.removeNode; - view.removeNode = function (setting, node) { - var root = data.getRoot(setting); - if (root.curEditNode === node) root.curEditNode = null; - if (_removeNode) { - _removeNode.apply(view, arguments); - } - } - - var _selectNode = view.selectNode; - view.selectNode = function (setting, node, addFlag) { - var root = data.getRoot(setting); - if (data.isSelectedNode(setting, node) && root.curEditNode == node && node.editNameFlag) { - return false; - } - if (_selectNode) _selectNode.apply(view, arguments); - view.addHoverDom(setting, node); - return true; - } - - var _uCanDo = tools.uCanDo; - tools.uCanDo = function (setting, e) { - var root = data.getRoot(setting); - if (e && (tools.eqs(e.type, "mouseover") || tools.eqs(e.type, "mouseout") || tools.eqs(e.type, "mousedown") || tools.eqs(e.type, "mouseup"))) { - return true; - } - if (root.curEditNode) { - view.editNodeBlur = false; - root.curEditInput.focus(); - } - return (!root.curEditNode) && (_uCanDo ? _uCanDo.apply(view, arguments) : true); - } -})(jQuery); \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/js/jquery.ztree.exedit.min.js b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/js/jquery.ztree.exedit.min.js deleted file mode 100644 index cd9b2684..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/js/jquery.ztree.exedit.min.js +++ /dev/null @@ -1,53 +0,0 @@ -/* - * JQuery zTree exedit v3.5.40 - * http://treejs.cn/ - * - * Copyright (c) 2010 Hunter.z - * - * Licensed same as jquery - MIT License - * http://www.opensource.org/licenses/mit-license.php - * - * email: hunter.z@263.net - * Date: 2019-01-18 - */ -(function(B){var I={event:{DRAG:"ztree_drag",DROP:"ztree_drop",RENAME:"ztree_rename",DRAGMOVE:"ztree_dragmove"},id:{EDIT:"_edit",INPUT:"_input",REMOVE:"_remove"},move:{TYPE_INNER:"inner",TYPE_PREV:"prev",TYPE_NEXT:"next"},node:{CURSELECTED_EDIT:"curSelectedNode_Edit",TMPTARGET_TREE:"tmpTargetzTree",TMPTARGET_NODE:"tmpTargetNode"}},v={onHoverOverNode:function(a,b){var c=i.getSetting(a.data.treeId),d=i.getRoot(c);if(d.curHoverNode!=b)v.onHoverOutNode(a);d.curHoverNode=b;e.addHoverDom(c,b)},onHoverOutNode:function(a){var a= -i.getSetting(a.data.treeId),b=i.getRoot(a);if(b.curHoverNode&&!i.isSelectedNode(a,b.curHoverNode))e.removeTreeDom(a,b.curHoverNode),b.curHoverNode=null},onMousedownNode:function(a,b){function c(a){if(m.dragFlag==0&&Math.abs(N-a.clientX)1){var o=n[0].parentTId?i.nodeChildren(f,n[0].getParentNode()):i.getNodes(f);g=[];for(b=0,c=o.length;b-1&&p+1!==b&&(j=!1),g.push(o[b]),p=b),n.length===g.length){n=g;break}}j&&(H=n[0].getPreNode(),Q=n[n.length-1].getNextNode());C=q("
                                                                                                                                                                                                                                                                                                              ", -f);for(b=0,c=n.length;b0),e.removeTreeDom(f,g),b>f.edit.drag.maxShowNodeNum-1||(j=q("
                                                                                                                                                                                                                                                                                                            • ",f),j.append(q(g,d.id.A,f).clone()),j.css("padding","0"),j.children("#"+g.tId+d.id.A).removeClass(d.node.CURSELECTED),C.append(j),b==f.edit.drag.maxShowNodeNum-1&&(j=q("
                                                                                                                                                                                                                                                                                                            • ...
                                                                                                                                                                                                                                                                                                            • ",f),C.append(j)));C.attr("id",n[0].tId+d.id.UL+"_tmp");C.addClass(f.treeObj.attr("class"));C.appendTo(L);u=q("", -f);u.attr("id","zTreeMove_arrow_tmp");u.appendTo(L);f.treeObj.trigger(d.event.DRAG,[a,f.treeId,n])}if(m.dragFlag==1){t&&u.attr("id")==a.target.id&&w&&a.clientX+G.scrollLeft()+2>B("#"+w+d.id.A,t).offset().left?(g=B("#"+w+d.id.A,t),a.target=g.length>0?g.get(0):a.target):t&&(t.removeClass(d.node.TMPTARGET_TREE),w&&B("#"+w+d.id.A,t).removeClass(d.node.TMPTARGET_NODE+"_"+d.move.TYPE_PREV).removeClass(d.node.TMPTARGET_NODE+"_"+I.move.TYPE_NEXT).removeClass(d.node.TMPTARGET_NODE+"_"+I.move.TYPE_INNER)); -w=t=null;J=!1;h=f;g=i.getSettings();for(var z in g)if(g[z].treeId&&g[z].edit.enable&&g[z].treeId!=f.treeId&&(a.target.id==g[z].treeId||B(a.target).parents("#"+g[z].treeId).length>0))J=!0,h=g[z];z=G.scrollTop();j=G.scrollLeft();p=h.treeObj.offset();b=h.treeObj.get(0).scrollHeight;g=h.treeObj.get(0).scrollWidth;c=a.clientY+z-p.top;var E=h.treeObj.height()+p.top-a.clientY-z,r=a.clientX+j-p.left,s=h.treeObj.width()+p.left-a.clientX-j,p=cf.edit.drag.borderMin,o=Ef.edit.drag.borderMin,F=rf.edit.drag.borderMin,v=sf.edit.drag.borderMin,E=c>f.edit.drag.borderMin&&E>f.edit.drag.borderMin&&r>f.edit.drag.borderMin&&s>f.edit.drag.borderMin,r=p&&h.treeObj.scrollTop()<=0,s=o&&h.treeObj.scrollTop()+h.treeObj.height()+10>=b,M=F&&h.treeObj.scrollLeft()<=0,P=v&&h.treeObj.scrollLeft()+h.treeObj.width()+10>=g;if(a.target&&k.isChildOrSelf(a.target,h.treeId)){for(var D=a.target;D&&D.tagName&&!k.eqs(D.tagName,"li")&&D.id!= -h.treeId;)D=D.parentNode;var R=!0;for(b=0,c=n.length;b0){R=!1;break}if(R&&a.target&&k.isChildOrSelf(a.target,D.id+d.id.A))t=B(D),w=D.id}g=n[0];if(E&&k.isChildOrSelf(a.target,h.treeId)){if(!t&&(a.target.id==h.treeId||r||s||M||P)&&(J||!J&&g.parentTId))t=h.treeObj;p?h.treeObj.scrollTop(h.treeObj.scrollTop()-10):o&&h.treeObj.scrollTop(h.treeObj.scrollTop()+10);F?h.treeObj.scrollLeft(h.treeObj.scrollLeft()-10):v&&h.treeObj.scrollLeft(h.treeObj.scrollLeft()+ -10);t&&t!=h.treeObj&&t.offset().left=-0.2)&&g?(j=1-u.width(),b=E-u.height()/2,x=d.move.TYPE_PREV):(M==0||z>=M&&z<=1.2)&&c?(j=1-u.width(),b=v==null||i.nodeIsParent(f,A)&&A.open?E+F.height()-u.height()/2:v.offset().top-u.height()/2,x=d.move.TYPE_NEXT):p?(j=5-u.width(),b=E,x=d.move.TYPE_INNER):o(),t){u.css({display:"block",top:b+"px",left:r+j+"px"});F.addClass(d.node.TMPTARGET_NODE+"_"+x);if(S!=w||T!=x)K=(new Date).getTime();if(A&&i.nodeIsParent(f, -A)&&x==d.move.TYPE_INNER&&(z=!0,window.zTreeMoveTimer&&window.zTreeMoveTargetNodeTId!==A.tId?(clearTimeout(window.zTreeMoveTimer),window.zTreeMoveTargetNodeTId=null):window.zTreeMoveTimer&&window.zTreeMoveTargetNodeTId===A.tId&&(z=!1),z))window.zTreeMoveTimer=setTimeout(function(){x==d.move.TYPE_INNER&&A&&i.nodeIsParent(f,A)&&!A.open&&(new Date).getTime()-K>h.edit.drag.autoOpenTime&&k.apply(h.callback.beforeDragOpen,[h.treeId,A],!0)&&(e.switchNode(h,A),h.edit.drag.autoExpandTrigger&&h.treeObj.trigger(d.event.EXPAND, -[h.treeId,A]))},h.edit.drag.autoOpenTime+50),window.zTreeMoveTargetNodeTId=A.tId}}else if(x=d.move.TYPE_INNER,t&&k.apply(h.edit.drag.inner,[h.treeId,n,null],!!h.edit.drag.inner)?t.addClass(d.node.TMPTARGET_TREE):t=null,u.css({display:"none"}),window.zTreeMoveTimer)clearTimeout(window.zTreeMoveTimer),window.zTreeMoveTargetNodeTId=null;S=w;T=x;f.treeObj.trigger(d.event.DRAGMOVE,[a,f.treeId,n])}return!1}function l(a){if(window.zTreeMoveTimer)clearTimeout(window.zTreeMoveTimer),window.zTreeMoveTargetNodeTId= -null;T=S=null;G.unbind("mousemove",c);G.unbind("mouseup",l);G.unbind("selectstart",g);L.css("cursor","");t&&(t.removeClass(d.node.TMPTARGET_TREE),w&&B("#"+w+d.id.A,t).removeClass(d.node.TMPTARGET_NODE+"_"+d.move.TYPE_PREV).removeClass(d.node.TMPTARGET_NODE+"_"+I.move.TYPE_NEXT).removeClass(d.node.TMPTARGET_NODE+"_"+I.move.TYPE_INNER));k.showIfameMask(f,!1);y.showHoverDom=!0;if(m.dragFlag!=0){m.dragFlag=0;var b,j,o;for(b=0,j=n.length;b0;)c.dragMaskList[0].remove(),c.dragMaskList.shift();if(b)for(var d=q("iframe",a),g=0,e=d.length;g",a);j.appendTo(q("body",a));c.dragMaskList.push(j)}}},view:{addEditBtn:function(a,b){if(!(b.editNameFlag|| -q(b,d.id.EDIT,a).length>0)&&k.apply(a.edit.showRenameBtn,[a.treeId,b],a.edit.showRenameBtn)){var c=q(b,d.id.A,a),l="";c.append(l);q(b,d.id.EDIT,a).bind("click",function(){if(!k.uCanDo(a)||k.apply(a.callback.beforeEditName,[a.treeId,b],!0)==!1)return!1;e.editNode(a,b);return!1}).show()}},addRemoveBtn:function(a, -b){if(!(b.editNameFlag||q(b,d.id.REMOVE,a).length>0)&&k.apply(a.edit.showRemoveBtn,[a.treeId,b],a.edit.showRemoveBtn)){var c=q(b,d.id.A,a),l="";c.append(l);q(b,d.id.REMOVE,a).bind("click",function(){if(!k.uCanDo(a)||k.apply(a.callback.beforeRemove,[a.treeId,b],!0)==!1)return!1;e.removeNode(a,b);a.treeObj.trigger(d.event.REMOVE, -[a.treeId,b]);return!1}).bind("mousedown",function(){return!0}).show()}},addHoverDom:function(a,b){if(i.getRoots().showHoverDom)b.isHover=!0,a.edit.enable&&(e.addEditBtn(a,b),e.addRemoveBtn(a,b)),k.apply(a.view.addHoverDom,[a.treeId,b])},cancelCurEditNode:function(a,b,c){var l=i.getRoot(a),g=l.curEditNode;if(g){var o=l.curEditInput,b=b?b:c?i.nodeName(a,g):o.val();if(k.apply(a.callback.beforeRename,[a.treeId,g,b,c],!0)===!1)return!1;i.nodeName(a,g,b);q(g,d.id.A,a).removeClass(d.node.CURSELECTED_EDIT); -o.unbind();e.setNodeName(a,g);g.editNameFlag=!1;l.curEditNode=null;l.curEditInput=null;e.selectNode(a,g,!1);a.treeObj.trigger(d.event.RENAME,[a.treeId,g,c])}return l.noSelection=!0},editNode:function(a,b){var c=i.getRoot(a);e.editNodeBlur=!1;if(i.isSelectedNode(a,b)&&c.curEditNode==b&&b.editNameFlag)setTimeout(function(){k.inputFocus(c.curEditInput)},0);else{b.editNameFlag=!0;e.removeTreeDom(a,b);e.cancelCurEditNode(a);e.selectNode(a,b,!1);q(b,d.id.SPAN,a).html("");var l=q(b,d.id.INPUT,a);l.attr("value",i.nodeName(a,b));a.edit.editNameSelectAll?k.inputSelect(l):k.inputFocus(l);l.bind("blur",function(){e.editNodeBlur||e.cancelCurEditNode(a)}).bind("keydown",function(b){b.keyCode=="13"?(e.editNodeBlur=!0,e.cancelCurEditNode(a)):b.keyCode=="27"&&e.cancelCurEditNode(a,null,!0)}).bind("click",function(){return!1}).bind("dblclick",function(){return!1});q(b,d.id.A,a).addClass(d.node.CURSELECTED_EDIT);c.curEditInput=l; -c.noSelection=!1;c.curEditNode=b}},moveNode:function(a,b,c,l,g,k){var j=i.getRoot(a);if(b!=c&&(!a.data.keep.leaf||!b||i.nodeIsParent(a,b)||l!=d.move.TYPE_INNER)){var f=c.parentTId?c.getParentNode():j,m=b===null||b==j;m&&b===null&&(b=j);if(m)l=d.move.TYPE_INNER;j=b.parentTId?b.getParentNode():j;if(l!=d.move.TYPE_PREV&&l!=d.move.TYPE_NEXT)l=d.move.TYPE_INNER;if(l==d.move.TYPE_INNER)if(m)c.parentTId=null;else{if(!i.nodeIsParent(a,b))i.nodeIsParent(a,b,!0),b.open=!!b.open,e.setNodeLineIcos(a,b);c.parentTId= -b.tId}var y;m?y=m=a.treeObj:(!k&&l==d.move.TYPE_INNER?e.expandCollapseNode(a,b,!0,!1):k||e.expandCollapseNode(a,b.getParentNode(),!0,!1),m=q(b,a),y=q(b,d.id.UL,a),m.get(0)&&!y.get(0)&&(y=[],e.makeUlHtml(a,b,y,""),m.append(y.join(""))),y=q(b,d.id.UL,a));var r=q(c,a);r.get(0)?m.get(0)||r.remove():r=e.appendNodes(a,c.level,[c],null,-1,!1,!0).join("");y.get(0)&&l==d.move.TYPE_INNER?y.append(r):m.get(0)&&l==d.move.TYPE_PREV?m.before(r):m.get(0)&&l==d.move.TYPE_NEXT&&m.after(r);var s;y=-1;var r=0,n=null, -m=null,B=c.level,v=i.nodeChildren(a,f),C=i.nodeChildren(a,j),u=i.nodeChildren(a,b);if(c.isFirstNode){if(y=0,v.length>1)n=v[1],n.isFirstNode=!0}else if(c.isLastNode)y=v.length-1,n=v[y-1],n.isLastNode=!0;else for(j=0,s=v.length;j=0&&v.splice(y,1);if(l!=d.move.TYPE_INNER)for(j=0,s=C.length;j0)m=u[u.length-1],m.isLastNode=!1;u.splice(u.length,0,c);c.isLastNode=!0;c.isFirstNode= -u.length==1}else b.isFirstNode&&l==d.move.TYPE_PREV?(C.splice(r,0,c),m=b,m.isFirstNode=!1,c.parentTId=b.parentTId,c.isFirstNode=!0,c.isLastNode=!1):b.isLastNode&&l==d.move.TYPE_NEXT?(C.splice(r+1,0,c),m=b,m.isLastNode=!1,c.parentTId=b.parentTId,c.isFirstNode=!1,c.isLastNode=!0):(l==d.move.TYPE_PREV?C.splice(r,0,c):C.splice(r+1,0,c),c.parentTId=b.parentTId,c.isFirstNode=!1,c.isLastNode=!1);i.fixPIdKeyValue(a,c);i.setSonNodeLevel(a,c.getParentNode(),c);e.setNodeLineIcos(a,c);e.repairNodeLevelClass(a, -c,B);!a.data.keep.parent&&v.length<1?(i.nodeIsParent(a,f,!1),f.open=!1,b=q(f,d.id.UL,a),l=q(f,d.id.SWITCH,a),j=q(f,d.id.ICON,a),e.replaceSwitchClass(f,l,d.folder.DOCU),e.replaceIcoClass(f,j,d.folder.DOCU),b.css("display","none")):n&&e.setNodeLineIcos(a,n);m&&e.setNodeLineIcos(a,m);a.check&&a.check.enable&&e.repairChkClass&&(e.repairChkClass(a,f),e.repairParentChkClassWithSelf(a,f),f!=c.parent&&e.repairParentChkClassWithSelf(a,c));k||e.expandCollapseParentNode(a,c.getParentNode(),!0,g)}},removeEditBtn:function(a, -b){q(b,d.id.EDIT,a).unbind().remove()},removeRemoveBtn:function(a,b){q(b,d.id.REMOVE,a).unbind().remove()},removeTreeDom:function(a,b){b.isHover=!1;e.removeEditBtn(a,b);e.removeRemoveBtn(a,b);k.apply(a.view.removeHoverDom,[a.treeId,b])},repairNodeLevelClass:function(a,b,c){if(c!==b.level){var e=q(b,a),g=q(b,d.id.A,a),a=q(b,d.id.UL,a),c=d.className.LEVEL+c,b=d.className.LEVEL+b.level;e.removeClass(c);e.addClass(b);g.removeClass(c);g.addClass(b);a.removeClass(c);a.addClass(b)}},selectNodes:function(a, -b){for(var c=0,d=b.length;c0)}},event:{},data:{setSonNodeLevel:function(a,b,c){if(c){var d=i.nodeChildren(a,c);c.level=b?b.level+1:0;if(d)for(var b=0,g=d.length;b0)switch(o=i.getNodeCache(c,g),j){case "mousedownNode":f=v.onMousedownNode;break;case "hoverOverNode":f=v.onHoverOverNode; -break;case "hoverOutNode":f=v.onHoverOutNode}return{stop:!1,node:o,nodeEventType:j,nodeEventCallback:f,treeEventType:"",treeEventCallback:null}});i.addInitRoot(function(a){var a=i.getRoot(a),b=i.getRoots();a.curEditNode=null;a.curEditInput=null;a.curHoverNode=null;a.dragFlag=0;a.dragNodeShowBefore=[];a.dragMaskList=[];b.showHoverDom=!0});i.addZTreeTools(function(a,b){b.cancelEditName=function(a){i.getRoot(this.setting).curEditNode&&e.cancelCurEditNode(this.setting,a?a:null,!0)};b.copyNode=function(b, -l,g,o){if(!l)return null;var j=i.nodeIsParent(a,b);if(b&&!j&&this.setting.data.keep.leaf&&g===d.move.TYPE_INNER)return null;var f=this,m=k.clone(l);if(!b)b=null,g=d.move.TYPE_INNER;g==d.move.TYPE_INNER?(l=function(){e.addNodes(f.setting,b,-1,[m],o)},k.canAsync(this.setting,b)?e.asyncNode(this.setting,b,o,l):l()):(e.addNodes(this.setting,b.parentNode,-1,[m],o),e.moveNode(this.setting,b,m,g,!1,o));return m};b.editName=function(a){a&&a.tId&&a===i.getNodeCache(this.setting,a.tId)&&(a.parentTId&&e.expandCollapseParentNode(this.setting, -a.getParentNode(),!0),e.editNode(this.setting,a))};b.moveNode=function(b,l,g,o){function j(){e.moveNode(m.setting,b,l,g,!1,o)}if(!l)return l;var f=i.nodeIsParent(a,b);if(b&&!f&&this.setting.data.keep.leaf&&g===d.move.TYPE_INNER)return null;else if(b&&(l.parentTId==b.tId&&g==d.move.TYPE_INNER||q(l,this.setting).find("#"+b.tId).length>0))return null;else b||(b=null);var m=this;k.canAsync(this.setting,b)&&g===d.move.TYPE_INNER?e.asyncNode(this.setting,b,o,j):j();return l};b.setEditable=function(a){this.setting.edit.enable= -a;return this.refresh()}});var N=e.cancelPreSelectedNode;e.cancelPreSelectedNode=function(a,b){for(var c=i.getRoot(a).curSelectedList,d=0,g=c.length;d"); - }, - showNode: function (setting, node, options) { - data.isHidden(setting, node, false); - data.initShowForExCheck(setting, node); - $$(node, setting).show(); - }, - showNodes: function (setting, nodes, options) { - if (!nodes || nodes.length == 0) { - return; - } - var pList = {}, i, j; - for (i = 0, j = nodes.length; i < j; i++) { - var n = nodes[i]; - if (!pList[n.parentTId]) { - var pn = n.getParentNode(); - pList[n.parentTId] = (pn === null) ? data.getRoot(setting) : n.getParentNode(); - } - view.showNode(setting, n, options); - } - for (var tId in pList) { - var children = data.nodeChildren(setting, pList[tId]); - view.setFirstNodeForShow(setting, children); - view.setLastNodeForShow(setting, children); - } - }, - hideNode: function (setting, node, options) { - data.isHidden(setting, node, true); - node.isFirstNode = false; - node.isLastNode = false; - data.initHideForExCheck(setting, node); - view.cancelPreSelectedNode(setting, node); - $$(node, setting).hide(); - }, - hideNodes: function (setting, nodes, options) { - if (!nodes || nodes.length == 0) { - return; - } - var pList = {}, i, j; - for (i = 0, j = nodes.length; i < j; i++) { - var n = nodes[i]; - if ((n.isFirstNode || n.isLastNode) && !pList[n.parentTId]) { - var pn = n.getParentNode(); - pList[n.parentTId] = (pn === null) ? data.getRoot(setting) : n.getParentNode(); - } - view.hideNode(setting, n, options); - } - for (var tId in pList) { - var children = data.nodeChildren(setting, pList[tId]); - view.setFirstNodeForHide(setting, children); - view.setLastNodeForHide(setting, children); - } - }, - setFirstNode: function (setting, parentNode) { - var children = data.nodeChildren(setting, parentNode); - var isHidden = data.isHidden(setting, children[0], false); - if (children.length > 0 && !isHidden) { - children[0].isFirstNode = true; - } else if (children.length > 0) { - view.setFirstNodeForHide(setting, children); - } - }, - setLastNode: function (setting, parentNode) { - var children = data.nodeChildren(setting, parentNode); - var isHidden = data.isHidden(setting, children[0]); - if (children.length > 0 && !isHidden) { - children[children.length - 1].isLastNode = true; - } else if (children.length > 0) { - view.setLastNodeForHide(setting, children); - } - }, - setFirstNodeForHide: function (setting, nodes) { - var n, i, j; - for (i = 0, j = nodes.length; i < j; i++) { - n = nodes[i]; - if (n.isFirstNode) { - break; - } - var isHidden = data.isHidden(setting, n); - if (!isHidden && !n.isFirstNode) { - n.isFirstNode = true; - view.setNodeLineIcos(setting, n); - break; - } else { - n = null; - } - } - return n; - }, - setFirstNodeForShow: function (setting, nodes) { - var n, i, j, first, old; - for (i = 0, j = nodes.length; i < j; i++) { - n = nodes[i]; - var isHidden = data.isHidden(setting, n); - if (!first && !isHidden && n.isFirstNode) { - first = n; - break; - } else if (!first && !isHidden && !n.isFirstNode) { - n.isFirstNode = true; - first = n; - view.setNodeLineIcos(setting, n); - } else if (first && n.isFirstNode) { - n.isFirstNode = false; - old = n; - view.setNodeLineIcos(setting, n); - break; - } else { - n = null; - } - } - return {"new": first, "old": old}; - }, - setLastNodeForHide: function (setting, nodes) { - var n, i; - for (i = nodes.length - 1; i >= 0; i--) { - n = nodes[i]; - if (n.isLastNode) { - break; - } - var isHidden = data.isHidden(setting, n); - if (!isHidden && !n.isLastNode) { - n.isLastNode = true; - view.setNodeLineIcos(setting, n); - break; - } else { - n = null; - } - } - return n; - }, - setLastNodeForShow: function (setting, nodes) { - var n, i, j, last, old; - for (i = nodes.length - 1; i >= 0; i--) { - n = nodes[i]; - var isHidden = data.isHidden(setting, n); - if (!last && !isHidden && n.isLastNode) { - last = n; - break; - } else if (!last && !isHidden && !n.isLastNode) { - n.isLastNode = true; - last = n; - view.setNodeLineIcos(setting, n); - } else if (last && n.isLastNode) { - n.isLastNode = false; - old = n; - view.setNodeLineIcos(setting, n); - break; - } else { - n = null; - } - } - return {"new": last, "old": old}; - } - }, - - _z = { - view: _view, - data: _data - }; - $.extend(true, $.fn.zTree._z, _z); - - var zt = $.fn.zTree, - tools = zt._z.tools, - consts = zt.consts, - view = zt._z.view, - data = zt._z.data, - event = zt._z.event, - $$ = tools.$; - - data.isHidden = function (setting, node, newIsHidden) { - if (!node) { - return false; - } - var key = setting.data.key.isHidden; - if (typeof newIsHidden !== 'undefined') { - if (typeof newIsHidden === "string") { - newIsHidden = tools.eqs(newIsHidden, "true"); - } - newIsHidden = !!newIsHidden; - node[key] = newIsHidden; - } else if (typeof node[key] == "string"){ - node[key] = tools.eqs(node[key], "true"); - } else { - node[key] = !!node[key]; - } - return node[key]; - }; - - data.exSetting(_setting); - data.addInitNode(_initNode); - data.addBeforeA(_beforeA); - data.addZTreeTools(_zTreeTools); - -// Override method in core - var _dInitNode = data.initNode; - data.initNode = function (setting, level, node, parentNode, isFirstNode, isLastNode, openFlag) { - var tmpPNode = (parentNode) ? parentNode : data.getRoot(setting), - children = tmpPNode[setting.data.key.children]; - data.tmpHideFirstNode = view.setFirstNodeForHide(setting, children); - data.tmpHideLastNode = view.setLastNodeForHide(setting, children); - if (openFlag) { - view.setNodeLineIcos(setting, data.tmpHideFirstNode); - view.setNodeLineIcos(setting, data.tmpHideLastNode); - } - isFirstNode = (data.tmpHideFirstNode === node); - isLastNode = (data.tmpHideLastNode === node); - if (_dInitNode) _dInitNode.apply(data, arguments); - if (openFlag && isLastNode) { - view.clearOldLastNode(setting, node, openFlag); - } - }; - - var _makeChkFlag = data.makeChkFlag; - if (!!_makeChkFlag) { - data.makeChkFlag = function (setting, node) { - if (!!node && !!data.isHidden(setting, node)) { - return; - } - _makeChkFlag.apply(data, arguments); - } - } - - var _getTreeCheckedNodes = data.getTreeCheckedNodes; - if (!!_getTreeCheckedNodes) { - data.getTreeCheckedNodes = function (setting, nodes, checked, results) { - if (!!nodes && nodes.length > 0) { - var p = nodes[0].getParentNode(); - if (!!p && !!data.isHidden(setting, p)) { - return []; - } - } - return _getTreeCheckedNodes.apply(data, arguments); - } - } - - var _getTreeChangeCheckedNodes = data.getTreeChangeCheckedNodes; - if (!!_getTreeChangeCheckedNodes) { - data.getTreeChangeCheckedNodes = function (setting, nodes, results) { - if (!!nodes && nodes.length > 0) { - var p = nodes[0].getParentNode(); - if (!!p && !!data.isHidden(setting, p)) { - return []; - } - } - return _getTreeChangeCheckedNodes.apply(data, arguments); - } - } - - var _expandCollapseSonNode = view.expandCollapseSonNode; - if (!!_expandCollapseSonNode) { - view.expandCollapseSonNode = function (setting, node, expandFlag, animateFlag, callback) { - if (!!node && !!data.isHidden(setting, node)) { - return; - } - _expandCollapseSonNode.apply(view, arguments); - } - } - - var _setSonNodeCheckBox = view.setSonNodeCheckBox; - if (!!_setSonNodeCheckBox) { - view.setSonNodeCheckBox = function (setting, node, value, srcNode) { - if (!!node && !!data.isHidden(setting, node)) { - return; - } - _setSonNodeCheckBox.apply(view, arguments); - } - } - - var _repairParentChkClassWithSelf = view.repairParentChkClassWithSelf; - if (!!_repairParentChkClassWithSelf) { - view.repairParentChkClassWithSelf = function (setting, node) { - if (!!node && !!data.isHidden(setting, node)) { - return; - } - _repairParentChkClassWithSelf.apply(view, arguments); - } - } -})(jQuery); \ No newline at end of file diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/js/jquery.ztree.exhide.min.js b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/js/jquery.ztree.exhide.min.js deleted file mode 100644 index 85125efc..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/js/jquery.ztree.exhide.min.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - * JQuery zTree exHideNodes v3.5.40 - * http://treejs.cn/ - * - * Copyright (c) 2010 Hunter.z - * - * Licensed same as jquery - MIT License - * http://www.opensource.org/licenses/mit-license.php - * - * email: hunter.z@263.net - * Date: 2019-01-18 - */ -(function(j){j.extend(!0,j.fn.zTree._z,{view:{clearOldFirstNode:function(c,a){for(var b=a.getNextNode();b;){if(b.isFirstNode){b.isFirstNode=!1;e.setNodeLineIcos(c,b);break}if(b.isLastNode)break;b=b.getNextNode()}},clearOldLastNode:function(c,a,b){for(a=a.getPreNode();a;){if(a.isLastNode){a.isLastNode=!1;b&&e.setNodeLineIcos(c,a);break}if(a.isFirstNode)break;a=a.getPreNode()}},makeDOMNodeMainBefore:function(c,a,b){a=d.isHidden(a,b);c.push("
                                                                                                                                                                                                                                                                                                            • ")},showNode:function(c,a){d.isHidden(c,a,!1);d.initShowForExCheck(c,a);k(a,c).show()},showNodes:function(c,a,b){if(a&&a.length!=0){var f={},g,i;for(g=0,i=a.length;g0&&!f?b[0].isFirstNode=!0:b.length>0&&e.setFirstNodeForHide(c,b)},setLastNode:function(c,a){var b=d.nodeChildren(c,a),f=d.isHidden(c,b[0]);b.length>0&&!f?b[b.length-1].isLastNode=!0:b.length>0&&e.setLastNodeForHide(c,b)},setFirstNodeForHide:function(c,a){var b,f,g;for(f=0,g=a.length;f=0;f--){b=a[f];if(b.isLastNode)break;if(!d.isHidden(c,b)&&!b.isLastNode){b.isLastNode=!0;e.setNodeLineIcos(c,b);break}else b=null}return b},setLastNodeForShow:function(c, -a){var b,f,g,i;for(f=a.length-1;f>=0;f--){b=a[f];var h=d.isHidden(c,b);if(!g&&!h&&b.isLastNode){g=b;break}else if(!g&&!h&&!b.isLastNode)b.isLastNode=!0,g=b,e.setNodeLineIcos(c,b);else if(g&&b.isLastNode){b.isLastNode=!1;i=b;e.setNodeLineIcos(c,b);break}}return{"new":g,old:i}}},data:{initHideForExCheck:function(c,a){if(d.isHidden(c,a)&&c.check&&c.check.enable){if(typeof a._nocheck=="undefined")a._nocheck=!!a.nocheck,a.nocheck=!0;a.check_Child_State=-1;e.repairParentChkClassWithSelf&&e.repairParentChkClassWithSelf(c, -a)}},initShowForExCheck:function(c,a){if(!d.isHidden(c,a)&&c.check&&c.check.enable){if(typeof a._nocheck!="undefined")a.nocheck=a._nocheck,delete a._nocheck;if(e.setChkClass){var b=k(a,m.id.CHECK,c);e.setChkClass(c,b,a)}e.repairParentChkClassWithSelf&&e.repairParentChkClassWithSelf(c,a)}}}});var j=j.fn.zTree,l=j._z.tools,m=j.consts,e=j._z.view,d=j._z.data,k=l.$;d.isHidden=function(c,a,b){if(!a)return!1;c=c.data.key.isHidden;typeof b!=="undefined"?(typeof b==="string"&&(b=l.eqs(b,"true")),a[c]=!!b): -a[c]=typeof a[c]=="string"?l.eqs(a[c],"true"):!!a[c];return a[c]};d.exSetting({data:{key:{isHidden:"isHidden"}}});d.addInitNode(function(c,a,b){a=d.isHidden(c,b);d.isHidden(c,b,a);d.initHideForExCheck(c,b)});d.addBeforeA(function(){});d.addZTreeTools(function(c,a){a.showNodes=function(a,b){e.showNodes(c,a,b)};a.showNode=function(a,b){a&&e.showNodes(c,[a],b)};a.hideNodes=function(a,b){e.hideNodes(c,a,b)};a.hideNode=function(a,b){a&&e.hideNodes(c,[a],b)};var b=a.checkNode;if(b)a.checkNode=function(f, -e,i,h){(!f||!d.isHidden(c,f))&&b.apply(a,arguments)}});var n=d.initNode;d.initNode=function(c,a,b,f,g,i,h){var j=(f?f:d.getRoot(c))[c.data.key.children];d.tmpHideFirstNode=e.setFirstNodeForHide(c,j);d.tmpHideLastNode=e.setLastNodeForHide(c,j);h&&(e.setNodeLineIcos(c,d.tmpHideFirstNode),e.setNodeLineIcos(c,d.tmpHideLastNode));g=d.tmpHideFirstNode===b;i=d.tmpHideLastNode===b;n&&n.apply(d,arguments);h&&i&&e.clearOldLastNode(c,b,h)};var o=d.makeChkFlag;if(o)d.makeChkFlag=function(c,a){(!a||!d.isHidden(c, -a))&&o.apply(d,arguments)};var p=d.getTreeCheckedNodes;if(p)d.getTreeCheckedNodes=function(c,a,b,f){if(a&&a.length>0){var e=a[0].getParentNode();if(e&&d.isHidden(c,e))return[]}return p.apply(d,arguments)};var q=d.getTreeChangeCheckedNodes;if(q)d.getTreeChangeCheckedNodes=function(c,a,b){if(a&&a.length>0){var e=a[0].getParentNode();if(e&&d.isHidden(c,e))return[]}return q.apply(d,arguments)};var r=e.expandCollapseSonNode;if(r)e.expandCollapseSonNode=function(c,a,b,f,g){(!a||!d.isHidden(c,a))&&r.apply(e, -arguments)};var s=e.setSonNodeCheckBox;if(s)e.setSonNodeCheckBox=function(c,a,b,f){(!a||!d.isHidden(c,a))&&s.apply(e,arguments)};var t=e.repairParentChkClassWithSelf;if(t)e.repairParentChkClassWithSelf=function(c,a){(!a||!d.isHidden(c,a))&&t.apply(e,arguments)}})(jQuery); diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/log v3.x.txt b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/log v3.x.txt deleted file mode 100644 index bdba3e57..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/log v3.x.txt +++ /dev/null @@ -1,319 +0,0 @@ -=ZTree v3.x (JQuery Tree插件) 更新日志= - -为了更好的优化及扩展zTree, 因此决定升级为v3.x,并且对之前的v2.x不兼容,会有很多结构上的修改,对此深感无奈与抱歉,请大家谅解。 - - -具体修改内容可参考: - - * [http://www.treejs.cn/v3/api.php zTree v3.x API 文档] - - * [http://www.treejs.cn/v3/demo.php#_101 zTree v3.x Demo 演示] - - * [http://www.treejs.cn/v3/faq.php#_101 zTree v3.x 常见问题] - - - -*2019.01.18* v3.5.40 - * [修改] fuzzySearch.js Thanks @yigger - -*2019.01.17* v3.5.39 - * [修改] data.nodeChecked & data.isHidden & data.nodeIsParent 的 返回值规范为 boolean Thanks @xinhochen & @田biubiu & @FelixFly - -*2019.01.08* v3.5.38 - * [修改] data.nodeChecked & data.isHidden 的 返回值规范为 boolean Thanks @xinhochen - -*2018.12.10* v3.5.37 - * [修改] fuzzySearch.js & Demo Thanks @SadWood & @JerryWang24 - -*2018.08.21* v3.5.37 - * [修改] 替换 scrollIntoViewIfNeeded 方法 Thanks @jocki84 - * [修改] 部分 API 文字错误 - -*2018.06.26* v3.5.36 - * [增加] setting.async.headers & setting.async.xhrFields - -*2018.04.24* v3.5.35 - * [增加] Demo:模糊搜索(Fuzzy Search) Thanks @bigablecat - -*2018.03.30* v3.5.35 - * [修改] 关闭拖拽方法内的 eventMouseDown.preventDefault(); 避免影响 zTree 外部的事件 Thanks @heyusysu - -*2018.02.12* v3.5.34 - * [修改] nodeChecked 方法内的错误 Thanks @勇哥 - -*2018.01.30* v3.5.33 - * [修改] nodeIsParent 方法内的错误 Thanks @netmou - -*2018.01.06* v3.5.32 - * [修改] setting.async.autoParam / otherParam 支持 function - * [修改] isParent / isHidden 允许自定义属性名称 setting.data.key.isParent / isHidden - -*2017.12.28* v3.5.31 - * [修改] 初始化节点数据的规则,支持 treeNode { name: "Node2", children: []}, 情况下自动设置为 isParent = true - -*2017.11.11* v3.5.30 - * [修改] scrollIntoViewIfNeeded 方法对 IE7 的兼容 - -*2017.06.23* v3.5.29 - * [修改] 拖拽操作后 body.css("cursor", "auto"); 修改为 body.css("cursor", "");(感谢 Jim) - -*2017.06.19* v3.5.29 - * [增加] reAsyncChildNodesPromise(parentNode, reloadType, isSilent) 方法支持 ES6 Promise - * [修改] reAsyncChildNodes 方法增加 callback 参数 - -*2017.01.20* v3.5.28 - * [修改] scrollIntoViewIfNeeded 方法对 IE8 的兼容 - -*2016.12.27* v3.5.27 - * [修改] addNodes 方法设置 index 参数后,导致 treeNode.isLastNode 错误 - -*2016.11.03* v3.5.26 - * [修改] 使用 scrollIntoViewIfNeeded 替代 scrollIntoView,兼容各种浏览器 - -*2016.09.27* v3.5.25 - * [修改] ajax 异步加载支持 contentType = 'application/json' - -*2016.06.06* v3.5.24 - * [修改] selectNode 方法中 某些情况下,isSilent 参数无效 - * [修改] 数据中 id = 'length'时, 导致 transformTozTreeFormat() 方法异常 - -*2016.04.08* v3.5.23 - * [修改] expandCollapseNode 方法被 gulp 压缩后,在 IE8 上会导致溢出 - -*2016.04.06* v3.5.23 - * [修改] 替换 arguments.callee 避免 'use strict' 严格模式下报错 - -*2016.04.01* v3.5.23 - * [修改] selectNode 方法 增加 isSilent 参数,可以禁止 选中节点时,自动滚动到视图 - -*2016.03.01* v3.5.22 - * [修改] metro Demo 的样式错误 - * [修改] 增加 的 padding 后, 导致 setting.edit.drag.inner 无效 - -*2016.02.17* v3.5.21 - * [修改] zTree js 文件名 (为了便于发布到 https://cdnjs.com/) - -*2016.01.20* v3.5.20 - * [修改] checkAllNodes() 方法不处理 (chkDisabled = true) 的父节点的子节点的 bug - -*2015.12.04* v3.5.19.3 - * [修改] 为避免定位节点时抢焦点, 使用 scrollIntoView 方法替换之前的 focus 方法(对于IE6等旧浏览器仍然使用 focus方法) - -*2015.11.15* v3.5.19.2 - * [增加] 给节点名称的 span 标签增加 class,便于用户设置 css - -*2015.10.26* v3.5.19.1 - * [修改] addNodes 新方法 导致 拖拽节点时报错 - * [增加] treeNode.getIndex 方法,可以快速获取 节点在 子节点中的位置 - * [增加] treeNode.getPath 方法,可以快速获取 节点的所有父节点 - -*2015.10.22* v3.5.19 - * [修改] addNodes 方法支持直接添加新节点到任意位置 addNodes(parentNode, index, newNodes, isSilent) - * [修改] selectstart 事件未解绑导致的内存泄漏 - -*2015.08.26* v3.5.18 - * [修改] onSelected/onUnSelected 回调参数,由 (event, treeId, node) 修改为 (treeId, node);另外 删除 已选择的节点时,也会触发 onUnSelected 回调 - * [增加] Allow nodes to specify their own icon using an 'icon' property of the 'setting.data.key' - * [增加] metro 风格 demo - * [增加] awesome 风格 demo - * [增加] 回调 onSelected / onUnSelected - -*2015.02.15* v3.5.17 - * [修改] excheck 扩展中 removeClass 与 jQueryUI 1.9 冲突的问题,目前放弃 removeClass 方法 - * [修改] 优化 exhide 扩展包初始化效率,避免数据多时 ie8 假死的 bug(感谢:https://github.com/sarxos) - * [修改] 若干 Demo & API 的小错误 - * [修改] 异步加载 低版本 IE 缓存严重的问题 - * [修改] 在 onRename 回调中使用 updateNode 方法无效的问题 - -*2014.03.09* v3.5.16 - * [增加] onDragMove 回调,便于控制 zTree 节点与其他 DOM 的拖拽操作。(感谢 yumi301) - * [增加] 针对 Mac 系统 Cmd 键的支持, Cmd 键 + 左键 也可以多选节点 - - * [修改] 使用 destory 方法销毁树以后,依然可以从 getZTreeObj 方法中获取到 zTree 对象的 bug。 - * [修改] onCheck 回调的 event,恢复为 zTree 自身的 event 事件,同时利用 srcEvent 传递原始 event 对象。(感谢 yumi301) - * [修改] 拖拽多个节点时,超出 maxShowNodeNum 设置个数的节点会失去 被选择状态的 bug - * [修改] excheck & exedit 扩展包的 zTree 方法中 setting 数据错误导致 checkNode、updateNode 等方法操作 radio 失效的 bug - * [修改] 不加载 exedit 扩展包时,使用 removeNode 方法无法触发 beforeRemove 和 onRemove 回调的 bug - -*2013.10.19* v3.5.15 - * [增加] setting.view.txtSelectedEnable 属性,满足部分项目中客户对于可以选择节点文本信息的强烈欲望。 - - * [修改] exhide 扩展包导致操作子节点后 isLastNode 属性异常 的bug - * [修改] 使用 cancelEditName 方法时,beforeRename & onRename 的 isCancel 始终为 false 的bug - * [修改] 编辑状态, beforeRename 回调 return false 时,提示信息导致 input 失去焦点后, 当树再次得到焦点时,让 input 自动获取焦点 - * [修改] 判断拖拽到节点的 标签中自定义的无 id 组件判断错误的bug - * [修改] async_edit.html demo 中 添加按钮 显示的 bug - * [修改] 当没有开启异步加载模式下,对于没有子节点的父节点,即使设置 open=true 在初始化时也不会设置为展开状态的bug (对于异步加载模式下依然会强行设置为折叠状态) - -*2013.06.28* v3.5.14 - * [修改] 拖拽节点时 iframe 遮罩异常的bug - * [修改] 清空子节点后重新添加子节点无法显示的bug - -*2013.06.02* v3.5.13 - - * [增加] beforeRename & onRename 增加 isCancel 参数,可以监控用户 ESC 取消编辑的事件 - - * [修改] 初始化时 radioType="all", 父节点未展开 且 子节点有被勾选,点击其他 radio 时,不会取消勾选该子节点的bug - * [修改] 多棵树拖拽时,拖拽无效后会导致目标书已选择的节点清空的 bug。 - * [修改] 多棵树拖拽时,会触发 addHoverDom 的bug。 - * [修改] 多棵树拖拽时,由于 beforeDrog 或 prev / inner / next 返回 false 后未触发原始节点的 addHoverDom 的bug - * [修改] 异步加载时,对于未加载子节点的父节点使用 expandNode 方法时, sonSign 设置为 true后,导致异步加载的节点无法正常显示的bug - * [修改] 一次性加载全部数据,如果父节点 A 未展开,但下一级的父节点 A1 设置了 open=true 的时候,使用 expandAll 方法导致 A1 的下一级父节点出现重复的 bug - * [修改] 增加对 iframe 的支持,可以只在主页面加载 zTree 的 js,在 iframe 内创建树 [https://github.com/zTree/zTree_v3/issues/7 Issue Info] - * [修改] 引入 exhide 扩展包 导致页面上同时加载多棵树时,根节点 的 连接线图标出现异常 的 bug [http://tieba.baidu.com/p/2277416574] - * [修改] excheck & exedit 扩展包中事件代理获取节点 tId 的方法,保证适当修改 DOM 结构也能得到 tId - -*2013.03.11* v3.5.12 - * [修改] 由于 jquery 1.9 中移除 event.srcElement 导致的 js 报错的bug。 - * [修改] 在异步加载模式下,使用 moveNode 方法,且 moveType != "inner" 时,也会导致 targetNode 自动加载子节点的 bug - * [修改] 对已经显示的节点(nocheck=true)使用 showNodes 或 showNode 方法后,导致勾选框出现的bug。 - * [修改] 对已经隐藏的节点(nocheck=false)使用 hideNodes 或 hideNode 方法后,导致勾选框消失的bug。 - * [修改] getNodesByParamFuzzy 支持 大小写模糊。 - * [修改] className 结构,提取 _consts.className.BUTTON / LEVEL / ICO_LOADING / SWITCH,便于快速修改 css 冲突。 - 例如:与 WordPress 产生冲突后,直接修改 core 中的 "button" 和 "level" 即可。 Issue: https://github.com/zTree/zTree_v3/issues/2 - -*2013.01.28* v3.5.02 - * [增加] setting.check.chkDisabledInherit 属性,用于设置 chkDisabled 在初始化时子节点是否可以继承父节点的 chkDisabled 属性 - * [删除] 内部 noSel 方法,使用 selectstart事件 和 "-moz-user-select"样式 处理禁止 节点文字被选择的功能 - * [修改] 不兼容 jQuery 1.9 的bug - * [修改] onDrop 的触发规则,保证异步加载模式下,可以在延迟加载结束后触发,避免 onDrop 中被拖拽的节点是已经更新后的数据。 - * [修改] setChkDisabled 方法,增加 inheritParent, inheritChildren 参数设置是否让父子节点继承 disabled - * [修改] 异步加载时 拼接参数的方法,由 string 修改为 json 对象 - * [修正] 1-2-3 3级节点时,如果 2级节点 全部设置为 nocheck 或 chkDisabled后,勾选3级节点时,1级节点的半勾选状态错误的 bug - * [修改] Demo: checkbox_nocheck.html & checkbox_chkDisabled.html; - * [修改] Demo: edit_super.html,增加 showRenameBtn & showRemoveBtn 的演示 - * [修改] Demo: asyncForAll, 将 post 修改为 get;为了避免由于 IE10 的 bug 造成的客户端 以及 服务端崩溃 - IE10 ajax Post 无法提交参数的bug (http://bugs.jquery.com/ticket/12790) - -*2012.12.21* v3.5.01 - * [优化] clone 方法 - * [修正] 对于初始化无 children 属性的父节点进行 reAsyncChildNodes 操作时出错的 bug - * [修正] beforeRename 回调中使用 cancelEditName 方法后,再 return false 导致无法重新进行编辑的 bug - * [修正] exedit 扩展包让 setting.data.key.url 失效的 bug - * [修正] setting.check.autoCheckTrigger 设置为 true 时,onCheck 回调缺少 event 参数的 bug - * [修正] singlepath.html Demo 中的 bug - -*2012.11.20* v3.5 - * [优化] 原先的 clone 方法 (特别感谢:愚人码头) - * [修改] 隐藏父节点后,使用 expandAll 方法导致 父节点展开的 bug - * [修改] 使用 jQuery v1.7 以上时,设置 zTree 容器 ul 隐藏(visibility: hidden;)后, 调用 selectNode 导致 IE 浏览器报错 Can't move focus 的 bug - * [修改] 正在异步加载时,执行 destory 或 init 方法后,异步加载的节点影响新树的 bug - * [修改] 方法 reAsyncChildNodes 在 refresh 的时候未清空内部 cache 导致内存泄露 的 bug - * [修改] 批量节点拖拽到其他父节点内(inner)时,导致顺序反转 的 bug - * [修改] 对于 使用 html格式的 节点无法触发 双击事件 的 bug - * [修改] onCheck 回调中的 event ,保证与触发事件中的 event 一致 - * [修改] 异步加载时,在 onNodeCreated 中执行 selectNode 后,导致节点折叠的 bug - * [修改] API 中 dataFilter 的参数名称 childNodes -> responseData - * [修改] API 中 iconSkin 的 举例内容 - * [修改] API 中 chkDisabled 的说明 - * [修改] Demo 中 index.html 内的 loadReady 重复绑定问题 - -*2012.09.03* v3.4 - * [增加] Demo —— OutLook 样式的左侧菜单 - * [增加] 清空 zTree 的方法 $.fn.zTree.destory(treeId) & zTree.destory() - - * [修改] core核心文件内 _eventProxy 方法中获取 tId 的方法,提高 DOM 的灵活性 - * [修改] 初始化时 多层父节点的 checkbox 半选状态计算错误的 bug - * [修改] 同时选中父、子节点后,利用 getSelectedNodes 获取选中节点并利用 removeNode 删除时报错的 bug - * [修改] treeNode.chkDisabled / nocheck 属性,支持字符串格式的 "false"/"true" - * [修改] 异步加载模式下无法利用 server 返回 xml 并且 在 dataFilter 中继续处理的 bug - * [修改] title 只允许设置为 string 类型值的问题。 修正后允许设置为 number 类型的值 - * [修改] zId 计数规则 & Cache 保存,减少 IE9 的 bug 造成的内存泄漏 - * [修改] API 页面搜索功能导致 IE 崩溃的 bug - -*2012.07.16* v3.3 - * [增加] 扩展库 exhide -- 节点隐藏功能 - - * [修改] getNodesByFilter 方法,添加 invokeParam 自定义参数 - * [修改] 拖拽中测试代码未删除,导致出现黄颜色的 iframe 遮罩层的 bug - * [修改] 延迟加载方法 对于使用 expandAll 进行全部展开时,导致 onNodeCreated 回调 和 addDiyDom 方法触发过早的 bug - * [修改] 使用 moveNode 移动尚未生成 DOM 的节点时,视图会出现异常的 bug - * [修改] 删除节点后,相关节点的 isFirstNode 属性未重置的 bug - * [修改] getPreNode(),getNextNode() 方法在对于特殊情况时计算错误的 bug - * [修改] 设置 title 之后,如果重新将 title 内容设置为空后,会导致无法更新 title 的 bug - * [修改] 针对 setting.check.chkStyle=="radio" && setting.check.radioType=="all" 的情况时,getTreeCheckedNodes方法优化,找到一个结果就 break - * [修改] zTreeObj.getCheckedNodes(false) 在 radioType = "all" 时计算错误的 bug - * [修改] 完善 API 中 beforeDrop / onDrop 的关于 treeId 的说明 - -*2012.05.13* v3.2 - * [增加] setting.data.key.url 允许修改 treeNode.url 属性 - * [增加] getNodesByFilter(filter, isSingle) 方法 - * [增加] "与其他 DOM 拖拽互动" 的 Demo (http://www.treejs.cn/v3/demo.php#_511) - * [增加] "异步加载模式下全部展开" 的 Demo (http://www.treejs.cn/v3/demo.php#_512) - - * [修改] 代码结构,将 addNodes、removeNode、removeChildNodes 方法 和 beforeRemove、onRemove 回调 转移到 core 内 - * [修改] IE7的环境下无子节点的父节点反复展开出现多余空行的 bug - * [修改] 异步加载时,如果出现网络异常等,会导致 图标显示错误的 bug - * [修改] dataFilter中 return null 导致异常 的 bug - * [修改] removeChildNodes 方法清空子节点后,无法正常添加节点的 bug - * [修改] moveNode 后节点中的自定义元素的事件丢失的 bug - * [修改] moveNode 方法中设置 isSilent = true 时,如果移动到已展开的 父节点后,出现异常的 bug - * [修改] onClick/onDrag/onDrop 回调中 event 不是原始 event 的 bug - * [修改] onDrop 回调中 当拖拽无效时,无法获得 treeNodes 的 bug - * [修改] onDrop 无法判断拖拽是 移动还是复制的问题 - * [修改] 未开启异步加载模式时,拖拽节点到子节点为空的父节点内时 出现异常 的 bug - * [修改] 拖拽过程中,反复在 父节点图标上划动时,会出现停顿的 bug - (需要css 结构—— button -> span.button) - - * [修改] 拖拽操作时箭头 与 targetNode 背景之间的细节现实问题,便于用户拖拽时更容易区分 prev、next 和 inner 操作 - * [修改] 拖拽操作时IE6/7 下 在 节点 右侧 10px 内会导致 targetNode = root 的 bug - * [修改] 编辑模式下 默认的编辑按钮、删除按钮点击后,如果相应的 before 回调 return false 时会触发 onClick 回调的 bug - -*2012.02.14* v3.1 - * [增加] ajax 的参数 setting.async.contentType ,让提交参数适用于 json 数据提交 (主要适用于 .Net 的开发)。 - * [增加] setting.edit.editNameSelectAll, 用于设定编辑节点名称时初次显示 input 后 text 内容为全选 - * [修改] 异步加载 规则,不再仅仅依靠父节点的子节点数来判定,增加内部属性 zAsync,保证默认状态下父节点及时无子节点也只能异步加载一次,除非使用 reAsyncChildNodes 方法强行控制异步加载。 - * [修改] 放大浏览器后导致 界面出现多余连接线的bug (需要更新:icon 图标和 css ) - * [修改] 在编辑状态,如果节点名超过编辑框宽度,左右键在框内不起作用的bug(IE 6 7 8 出现) - CSS 中 filter:alpha(opacity=80) 造成的,应该是 ie 的 bug,需要更新 css 文件 - * [修改] title 设置后,如果属性不存在,则默认为 title 为空,便于数据容错和用户灵活使用 - * [修改] editName 方法如果针对尚未展开的 父节点,会导致该父节点自动展开的 bug - * [修改] title 中存在标签时导致 title 显示异常的bug(例如:蓝色字22%"'``) - -*2012.01.10* v3.0 - * [增加] setting.check.autoCheckTrigger 默认值 false,可以设置联动选中时是否触发事件回调函数 - * [增加] setting.callback.beforeEditName 回调函数,以保证用户可以捕获点击编辑按钮的事件 - * [增加] treeNode.chkDisabled 属性,显示 checkbox 但是用户无法修改 checkbox 状态,并且该 checkbox 会影响父节点的 checkbox 的半选状态 - * [增加] setting.check.nocheckInherit 属性,用户设置子节点继承 nocheck 属性,用于批量初始化节点,不适用于已经显示的节点 - * [增加] setting.edit.drag.autoExpandTrigger 默认值 false,可以设置自动展开、折叠操作时是否触发事件回调函数 - * [增加] setting.view.nameIsHTML 默认值 false,允许用户对 name 设置 DOM 对象 - * [增加] treeNode.click 属性的说明文档 - * [增加] treeObj.setChkDisabled 方法用于设置 checkbox / radio disabled 状态 - * [增加] treeNode.halfCheck 属性,用于强制设定节点的半选状态 - - * [修改] 异步加载 & 编辑功能 共存时,拖拽节点 或 增加节点 导致 ie 上报错的 bug (apply 方法引起) - * [修改] zTreeStyle 样式冲突 - * [修改] setting.data.key.title 默认值设置为 "",初始化时自动赋值为 setting.data.key.name 这样可避免希望 title 与 name 一致的用户反复设置参数 - * [修改] 点击叶子节点的连接线会触发 expand 事件的 bug - * [修改] IE 下 点击叶子节点连线会出现虚线框的 bug - * [修改] updateNode 导致 checkbox 半选状态错误的 bug - * [修改] checkNode 方法实现 toggle 操作, 取消 expandAll 方法的 toggle 操作 - * [修改] zTree 内鼠标移动会抢页面上 input 内的焦点的 bug - * [修改] beforeRename / onRename 的触发方式——即使名称内容未改变也会触发,便于用户配合 beforeEditName 捕获编辑状态的结束,赋予用户更多调整规则的权利 - * [修改] 与 easyUI 共存时无法拖拽的bug - * [修改] beforeRename 在 Firefox 下如果利用 alert,会触发两次的 bug - * [修改] checkNode/expandNode/removeNode 方法,默认不触发回调函数,恢复 v2.6 的默认状态,同时增加 callbackFlag 参数,设置为 true 时,可以触发回调函数 - * [修改] IE9下“根据参数查找节点”的Demo 报错:行14 重新声明常量属性(Demo 自身的问题,定义了history变量) - * [修改] 初始化 zTree 时 onNodeCreated 事件回调函数中无法 用 getZTreeObj 获取 zTree 对象的 bug - * [修改] setting.edit.drag.prev / next / inner 参数,增加被拖拽的节点集合 - * [修改] 异步加载模式下,otherParam 使用Array数组会出错的 bug。例如: ["id", "1", "name", "test"] - * [修改] FireFox 下多棵树拖拽异常的 bug - * [修改] exedit 中调用 excheck库的方法时没有进行容错处理,导致如果只加入 exedit 而没有 excheck的时候,会出现 js 错误 - * [修改] 显示 checkbox 的 zTree 在编辑模式下,移动节点不会更新父节点半选状态的 bug - * [修改] treeNode.childs --> children; treeObject.removeChilds --> removeChildNodes; setting.data.key.childs --> children(英文不好惹的祸!抱歉了!) - * [修改] onRemove 回调中得到的 treeNode 还可以查找 preNode、nextNode 的bug。 修正后,getPreNode 和 getNextNode 都返回 null; 为了便于查找父节点,getParentNode 仍保留 - * [修改] 简单数据模式下,如果 id 与 pId 的值相同会导致该节点无法正常加载的 bug - * [修改] 移动或删除中间节点会导致最后一个节点连接线图标变小的 bug - -*2011.09.05* v3.0 beta - * [修改] zTree 的 js 代码架构全面修改,并且拆分 - * [修改] zTree 的 css 样式全面修改,对浏览器可以更好地兼容,同时解决了以前1个像素差的问题 - * [优化] 采用延迟加载技术,一次性加载大数据量的节点性能飞速提升 - * [增加] 支持多节点同时选中、拖拽 - * [增加] checkNode、checkAllNodes 等多种方法 - * [增加] IE6 自动取消动画展开、折叠的功能 - * [修正] 异步加载 & 编辑模式 能够更完美的共存 - * [修正] setting 配置更加合理,并且增加了若干项配置参数 - * [修正] treeNode 节点数据的属性更加合理,并且增加了一些方法 - * [修正] 拖拽操作更加灵活方便,更容易制定自己的规则 - * [修正] 其他若干修改,详细对比请参考 url:[http://www.treejs.cn/v3/faq.php#_101 zTree v3.0 常见问题] diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/package.json b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/package.json deleted file mode 100644 index dd281e53..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/package.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "zTree_v3", - "description": "zTree is a multi-functional 'tree plug-ins.' based on jQuery. The main advantages of zTree includes excellent performance, flexible configuration, and the combination of multiple functions.", - "version": "3.5.40", - "homepage": "http://www.treejs.cn/v3/main.php", - "author": "zTree (https://github.com/zTree)", - "repository": "zTree/zTree", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - }, - "keywords": [ - "tree", - "jquery", - "plug-in", - "plugin", - "ztree", - "html", - "node" - ] -} diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/zTree.v3.jquery.json b/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/zTree.v3.jquery.json deleted file mode 100644 index b00fd446..00000000 --- a/maxkey-web-mgt-static/src/main/resources/static/jquery/zTree-v3.5.40/zTree.v3.jquery.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "zTree.v3", - "title": "zTree.v3", - "description": "jquery tree plugin", - "keywords": [ - "tree", - "ui" - ], - "version": "3.5.40", - "author": { - "name": "Zhang QiGang", - "email":"hunter.z@263.net", - "url": "https://github.com/zTree/zTree_v3" - }, - "maintainers": [ - { - "name": "Zhang QiGang", - "email":"hunter.z@263.net", - "url": "http://www.ztree.me/" - } - ], - "licenses": [ - { - "type": "MIT", - "url": "http://www.ztree.me/v3/main.php#_license" - } - ], - "bugs": "https://github.com/zTree/zTree_v3/issues", - "homepage": "http://www.ztree.me/", - "demo": "http://www.ztree.me/v3/demo.php", - "docs": "http://www.ztree.me/v3/api.php", - "dependencies": { - "jquery": ">=1.4.4" - } -} diff --git a/maxkey-web-mgt/src/main/resources/templates/views/layout/common.cssjs.ftl b/maxkey-web-mgt/src/main/resources/templates/views/layout/common.cssjs.ftl deleted file mode 100644 index 2d9f8387..00000000 --- a/maxkey-web-mgt/src/main/resources/templates/views/layout/common.cssjs.ftl +++ /dev/null @@ -1,55 +0,0 @@ - - - - <#-- jquery base --> - - - <#-- bootstrap-4.4.1 --> - - - <#-- font-awesome-4.7.0 --> - - <#-- metadata --> - - <#--bootstrap-table-1.16.0--> - - - - <#-- zTreev 3.5--> - - - - <#-- artDialog-5.0.4 --> - - - - <#-- datetimepicker-2.5.20 --> - - - - <#-- form --> - - <#-- blockUI --> - - <#-- serializeObject --> - - - <#-- metisMenu-v3.0.4 --> - - - - - <#-- multiple-select-1.5.2 --> - - - - <#-- platform common script --> - - - - - - <#-- if browser is not msie 6.0,follow styles over ie 6.0 style --> - - - \ No newline at end of file diff --git a/maxkey-web-maxkey-static/build.gradle b/maxkey-webs/maxkey-web-maxkey-static/build.gradle similarity index 100% rename from maxkey-web-maxkey-static/build.gradle rename to maxkey-webs/maxkey-web-maxkey-static/build.gradle diff --git a/maxkey-web-maxkey-static/src/main/resources/static/css/base.css b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/css/base.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/css/base.css rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/css/base.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/css/menu.css b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/css/menu.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/css/menu.css rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/css/menu.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/css/menu_default.css b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/css/menu_default.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/css/menu_default.css rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/css/menu_default.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/css/menu_minty.css b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/css/menu_minty.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/css/menu_minty.css rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/css/menu_minty.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/css/menu_pulse.css b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/css/menu_pulse.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/css/menu_pulse.css rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/css/menu_pulse.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/checkbox.png b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/checkbox.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/checkbox.png rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/checkbox.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/favicon.ico b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/favicon.ico similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/favicon.ico rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/favicon.ico diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/grid.png b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/grid.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/grid.png rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/grid.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/grid_sel.png b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/grid_sel.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/grid_sel.png rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/grid_sel.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/list.png b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/list.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/list.png rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/list.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/list_sel.png b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/list_sel.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/list_sel.png rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/list_sel.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/loading_img.gif b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/loading_img.gif similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/loading_img.gif rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/loading_img.gif diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/logo.jpg b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/logo.jpg similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/logo.jpg rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/logo.jpg diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/progress_bar.gif b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/progress_bar.gif similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/progress_bar.gif rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/progress_bar.gif diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/social/LICENSE b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/LICENSE similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/social/LICENSE rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/LICENSE diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/social/README.md b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/README.md similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/social/README.md rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/README.md diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/social/alipay.png b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/alipay.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/social/alipay.png rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/alipay.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/social/aliyun.png b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/aliyun.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/social/aliyun.png rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/aliyun.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/social/amazon.png b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/amazon.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/social/amazon.png rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/amazon.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/social/baidu.png b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/baidu.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/social/baidu.png rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/baidu.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/social/coding.png b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/coding.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/social/coding.png rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/coding.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/social/csdn.png b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/csdn.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/social/csdn.png rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/csdn.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/social/dingtalk.png b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/dingtalk.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/social/dingtalk.png rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/dingtalk.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/social/douyin.png b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/douyin.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/social/douyin.png rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/douyin.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/social/eleme.png b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/eleme.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/social/eleme.png rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/eleme.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/social/facebook.png b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/facebook.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/social/facebook.png rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/facebook.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/social/feishu.png b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/feishu.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/social/feishu.png rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/feishu.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/social/gitee.png b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/gitee.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/social/gitee.png rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/gitee.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/social/github.png b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/github.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/social/github.png rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/github.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/social/gitlab.png b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/gitlab.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/social/gitlab.png rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/gitlab.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/social/google.png b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/google.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/social/google.png rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/google.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/social/huawei.png b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/huawei.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/social/huawei.png rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/huawei.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/social/jd.png b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/jd.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/social/jd.png rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/jd.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/social/kujiale.png b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/kujiale.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/social/kujiale.png rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/kujiale.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/social/linkedin.png b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/linkedin.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/social/linkedin.png rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/linkedin.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/social/meituan.png b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/meituan.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/social/meituan.png rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/meituan.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/social/mi.png b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/mi.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/social/mi.png rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/mi.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/social/microsoft.png b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/microsoft.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/social/microsoft.png rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/microsoft.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/social/oschina.png b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/oschina.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/social/oschina.png rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/oschina.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/social/pinterest.png b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/pinterest.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/social/pinterest.png rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/pinterest.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/social/qq.png b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/qq.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/social/qq.png rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/qq.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/social/renren.png b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/renren.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/social/renren.png rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/renren.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/social/stack_overflow.png b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/stack_overflow.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/social/stack_overflow.png rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/stack_overflow.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/social/taobao.png b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/taobao.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/social/taobao.png rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/taobao.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/social/teambition.png b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/teambition.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/social/teambition.png rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/teambition.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/social/tencentCloud.png b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/tencentCloud.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/social/tencentCloud.png rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/tencentCloud.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/social/toutiao.png b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/toutiao.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/social/toutiao.png rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/toutiao.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/social/twitter.png b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/twitter.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/social/twitter.png rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/twitter.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/social/wechat-enterprise.svg b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/wechat-enterprise.svg similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/social/wechat-enterprise.svg rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/wechat-enterprise.svg diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/social/wechat.png b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/wechat.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/social/wechat.png rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/wechat.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/social/wechat_enterprise.png b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/wechat_enterprise.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/social/wechat_enterprise.png rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/wechat_enterprise.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/social/wechat_mp.png b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/wechat_mp.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/social/wechat_mp.png rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/wechat_mp.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/social/wechat_open.png b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/wechat_open.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/social/wechat_open.png rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/wechat_open.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/social/weibo.png b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/weibo.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/social/weibo.png rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/weibo.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/social/welink.png b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/welink.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/social/welink.png rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/welink.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/social/xmly.png b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/xmly.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/social/xmly.png rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/social/xmly.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/images/uploadimage.jpg b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/uploadimage.jpg similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/images/uploadimage.jpg rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/images/uploadimage.jpg diff --git a/maxkey-web-maxkey-static/src/main/resources/static/trusts/connsec.cer b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/trusts/connsec.cer similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/trusts/connsec.cer rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/trusts/connsec.cer diff --git a/maxkey-web-maxkey-static/src/main/resources/static/trusts/jwk.jwks b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/trusts/jwk.jwks similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/trusts/jwk.jwks rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/trusts/jwk.jwks diff --git a/maxkey-web-maxkey-static/src/main/resources/static/trusts/jwk.xml b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/trusts/jwk.xml similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/trusts/jwk.xml rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/trusts/jwk.xml diff --git a/maxkey-web-maxkey-static/src/main/resources/static/trusts/openid-configuration b/maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/trusts/openid-configuration similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/trusts/openid-configuration rename to maxkey-webs/maxkey-web-maxkey-static/src/main/resources/static/trusts/openid-configuration diff --git a/maxkey-web-maxkey/build.gradle b/maxkey-webs/maxkey-web-maxkey/build.gradle similarity index 90% rename from maxkey-web-maxkey/build.gradle rename to maxkey-webs/maxkey-web-maxkey/build.gradle index c646b4e6..79430a0f 100644 --- a/maxkey-web-maxkey/build.gradle +++ b/maxkey-webs/maxkey-web-maxkey/build.gradle @@ -22,5 +22,7 @@ dependencies { implementation project(":maxkey-protocols:maxkey-protocol-saml-2.0") implementation project(":maxkey-protocols:maxkey-protocol-jwt") - implementation project(":maxkey-web-maxkey-static") + implementation project(":maxkey-webs:maxkey-web-static") + implementation project(":maxkey-webs::maxkey-web-maxkey-static") + } diff --git a/maxkey-web-maxkey/config/build_docker.gradle b/maxkey-webs/maxkey-web-maxkey/config/build_docker.gradle similarity index 100% rename from maxkey-web-maxkey/config/build_docker.gradle rename to maxkey-webs/maxkey-web-maxkey/config/build_docker.gradle diff --git a/maxkey-web-maxkey/config/build_jar.gradle b/maxkey-webs/maxkey-web-maxkey/config/build_jar.gradle similarity index 100% rename from maxkey-web-maxkey/config/build_jar.gradle rename to maxkey-webs/maxkey-web-maxkey/config/build_jar.gradle diff --git a/maxkey-web-maxkey/config/build_standard.gradle b/maxkey-webs/maxkey-web-maxkey/config/build_standard.gradle similarity index 100% rename from maxkey-web-maxkey/config/build_standard.gradle rename to maxkey-webs/maxkey-web-maxkey/config/build_standard.gradle diff --git a/maxkey-web-maxkey/maxkeyserver.keystore b/maxkey-webs/maxkey-web-maxkey/maxkeyserver.keystore similarity index 100% rename from maxkey-web-maxkey/maxkeyserver.keystore rename to maxkey-webs/maxkey-web-maxkey/maxkeyserver.keystore diff --git a/maxkey-web-maxkey/src/main/java/META-INF/MANIFEST.MF b/maxkey-webs/maxkey-web-maxkey/src/main/java/META-INF/MANIFEST.MF similarity index 100% rename from maxkey-web-maxkey/src/main/java/META-INF/MANIFEST.MF rename to maxkey-webs/maxkey-web-maxkey/src/main/java/META-INF/MANIFEST.MF diff --git a/maxkey-web-maxkey/src/main/java/org/maxkey/MaxKeyApplication.java b/maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/MaxKeyApplication.java similarity index 100% rename from maxkey-web-maxkey/src/main/java/org/maxkey/MaxKeyApplication.java rename to maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/MaxKeyApplication.java diff --git a/maxkey-web-maxkey/src/main/java/org/maxkey/MaxKeyConfig.java b/maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/MaxKeyConfig.java similarity index 100% rename from maxkey-web-maxkey/src/main/java/org/maxkey/MaxKeyConfig.java rename to maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/MaxKeyConfig.java diff --git a/maxkey-web-maxkey/src/main/java/org/maxkey/MaxKeyMvcConfig.java b/maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/MaxKeyMvcConfig.java similarity index 100% rename from maxkey-web-maxkey/src/main/java/org/maxkey/MaxKeyMvcConfig.java rename to maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/MaxKeyMvcConfig.java diff --git a/maxkey-web-maxkey/src/main/java/org/maxkey/web/contorller/AppListController.java b/maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/web/contorller/AppListController.java similarity index 100% rename from maxkey-web-maxkey/src/main/java/org/maxkey/web/contorller/AppListController.java rename to maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/web/contorller/AppListController.java diff --git a/maxkey-web-maxkey/src/main/java/org/maxkey/web/contorller/ForgotPasswordContorller.java b/maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/web/contorller/ForgotPasswordContorller.java similarity index 100% rename from maxkey-web-maxkey/src/main/java/org/maxkey/web/contorller/ForgotPasswordContorller.java rename to maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/web/contorller/ForgotPasswordContorller.java diff --git a/maxkey-web-maxkey/src/main/java/org/maxkey/web/contorller/OneTimePasswordController.java b/maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/web/contorller/OneTimePasswordController.java similarity index 100% rename from maxkey-web-maxkey/src/main/java/org/maxkey/web/contorller/OneTimePasswordController.java rename to maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/web/contorller/OneTimePasswordController.java diff --git a/maxkey-web-maxkey/src/main/java/org/maxkey/web/contorller/ProfileController.java b/maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/web/contorller/ProfileController.java similarity index 100% rename from maxkey-web-maxkey/src/main/java/org/maxkey/web/contorller/ProfileController.java rename to maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/web/contorller/ProfileController.java diff --git a/maxkey-web-maxkey/src/main/java/org/maxkey/web/contorller/RegistrationController.java b/maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/web/contorller/RegistrationController.java similarity index 100% rename from maxkey-web-maxkey/src/main/java/org/maxkey/web/contorller/RegistrationController.java rename to maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/web/contorller/RegistrationController.java diff --git a/maxkey-web-maxkey/src/main/java/org/maxkey/web/contorller/SafeController.java b/maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/web/contorller/SafeController.java similarity index 100% rename from maxkey-web-maxkey/src/main/java/org/maxkey/web/contorller/SafeController.java rename to maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/web/contorller/SafeController.java diff --git a/maxkey-web-maxkey/src/main/java/org/maxkey/web/contorller/SocialSignOnListController.java b/maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/web/contorller/SocialSignOnListController.java similarity index 100% rename from maxkey-web-maxkey/src/main/java/org/maxkey/web/contorller/SocialSignOnListController.java rename to maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/web/contorller/SocialSignOnListController.java diff --git a/maxkey-web-maxkey/src/main/java/org/maxkey/web/endpoint/IndexEndpoint.java b/maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/web/endpoint/IndexEndpoint.java similarity index 100% rename from maxkey-web-maxkey/src/main/java/org/maxkey/web/endpoint/IndexEndpoint.java rename to maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/web/endpoint/IndexEndpoint.java diff --git a/maxkey-web-maxkey/src/main/java/org/maxkey/web/endpoint/LoginEndpoint.java b/maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/web/endpoint/LoginEndpoint.java similarity index 100% rename from maxkey-web-maxkey/src/main/java/org/maxkey/web/endpoint/LoginEndpoint.java rename to maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/web/endpoint/LoginEndpoint.java diff --git a/maxkey-web-maxkey/src/main/java/org/maxkey/web/endpoint/LogoutEndpoint.java b/maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/web/endpoint/LogoutEndpoint.java similarity index 100% rename from maxkey-web-maxkey/src/main/java/org/maxkey/web/endpoint/LogoutEndpoint.java rename to maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/web/endpoint/LogoutEndpoint.java diff --git a/maxkey-web-maxkey/src/main/java/org/maxkey/web/filter/SingleSignOnFilter.java b/maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/web/filter/SingleSignOnFilter.java similarity index 100% rename from maxkey-web-maxkey/src/main/java/org/maxkey/web/filter/SingleSignOnFilter.java rename to maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/web/filter/SingleSignOnFilter.java diff --git a/maxkey-web-maxkey/src/main/java/org/maxkey/web/historys/contorller/HistoryLoginAppsController.java b/maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/web/historys/contorller/HistoryLoginAppsController.java similarity index 100% rename from maxkey-web-maxkey/src/main/java/org/maxkey/web/historys/contorller/HistoryLoginAppsController.java rename to maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/web/historys/contorller/HistoryLoginAppsController.java diff --git a/maxkey-web-maxkey/src/main/java/org/maxkey/web/historys/contorller/HistoryLoginController.java b/maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/web/historys/contorller/HistoryLoginController.java similarity index 100% rename from maxkey-web-maxkey/src/main/java/org/maxkey/web/historys/contorller/HistoryLoginController.java rename to maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/web/historys/contorller/HistoryLoginController.java diff --git a/maxkey-web-maxkey/src/main/java/org/maxkey/web/historys/contorller/HistorySystemLogsController.java b/maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/web/historys/contorller/HistorySystemLogsController.java similarity index 100% rename from maxkey-web-maxkey/src/main/java/org/maxkey/web/historys/contorller/HistorySystemLogsController.java rename to maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/web/historys/contorller/HistorySystemLogsController.java diff --git a/maxkey-web-maxkey/src/main/java/org/maxkey/web/historys/contorller/package-info.java b/maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/web/historys/contorller/package-info.java similarity index 100% rename from maxkey-web-maxkey/src/main/java/org/maxkey/web/historys/contorller/package-info.java rename to maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/web/historys/contorller/package-info.java diff --git a/maxkey-web-maxkey/src/main/java/org/maxkey/web/interceptor/HistoryLoginAppAdapter.java b/maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/web/interceptor/HistoryLoginAppAdapter.java similarity index 100% rename from maxkey-web-maxkey/src/main/java/org/maxkey/web/interceptor/HistoryLoginAppAdapter.java rename to maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/web/interceptor/HistoryLoginAppAdapter.java diff --git a/maxkey-web-maxkey/src/main/java/org/maxkey/web/interceptor/HistoryLogsAdapter.java b/maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/web/interceptor/HistoryLogsAdapter.java similarity index 100% rename from maxkey-web-maxkey/src/main/java/org/maxkey/web/interceptor/HistoryLogsAdapter.java rename to maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/web/interceptor/HistoryLogsAdapter.java diff --git a/maxkey-web-maxkey/src/main/java/org/maxkey/web/interceptor/PermissionAdapter.java b/maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/web/interceptor/PermissionAdapter.java similarity index 100% rename from maxkey-web-maxkey/src/main/java/org/maxkey/web/interceptor/PermissionAdapter.java rename to maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/web/interceptor/PermissionAdapter.java diff --git a/maxkey-web-maxkey/src/main/java/org/maxkey/web/interceptor/PreLoginAppAdapter.java b/maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/web/interceptor/PreLoginAppAdapter.java similarity index 100% rename from maxkey-web-maxkey/src/main/java/org/maxkey/web/interceptor/PreLoginAppAdapter.java rename to maxkey-webs/maxkey-web-maxkey/src/main/java/org/maxkey/web/interceptor/PreLoginAppAdapter.java diff --git a/maxkey-web-maxkey/src/main/resources/META-INF/spring.factories b/maxkey-webs/maxkey-web-maxkey/src/main/resources/META-INF/spring.factories similarity index 100% rename from maxkey-web-maxkey/src/main/resources/META-INF/spring.factories rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/META-INF/spring.factories diff --git a/maxkey-web-maxkey/src/main/resources/application-http.properties b/maxkey-webs/maxkey-web-maxkey/src/main/resources/application-http.properties similarity index 100% rename from maxkey-web-maxkey/src/main/resources/application-http.properties rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/application-http.properties diff --git a/maxkey-web-maxkey/src/main/resources/application-https.properties b/maxkey-webs/maxkey-web-maxkey/src/main/resources/application-https.properties similarity index 100% rename from maxkey-web-maxkey/src/main/resources/application-https.properties rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/application-https.properties diff --git a/maxkey-web-maxkey/src/main/resources/application.properties b/maxkey-webs/maxkey-web-maxkey/src/main/resources/application.properties similarity index 100% rename from maxkey-web-maxkey/src/main/resources/application.properties rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/application.properties diff --git a/maxkey-web-maxkey/src/main/resources/config/adfs-signing.crt b/maxkey-webs/maxkey-web-maxkey/src/main/resources/config/adfs-signing.crt similarity index 100% rename from maxkey-web-maxkey/src/main/resources/config/adfs-signing.crt rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/config/adfs-signing.crt diff --git a/maxkey-web-maxkey/src/main/resources/config/keystore.jwks b/maxkey-webs/maxkey-web-maxkey/src/main/resources/config/keystore.jwks similarity index 100% rename from maxkey-web-maxkey/src/main/resources/config/keystore.jwks rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/config/keystore.jwks diff --git a/maxkey-web-maxkey/src/main/resources/config/samlClientKeystore.jks b/maxkey-webs/maxkey-web-maxkey/src/main/resources/config/samlClientKeystore.jks similarity index 100% rename from maxkey-web-maxkey/src/main/resources/config/samlClientKeystore.jks rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/config/samlClientKeystore.jks diff --git a/maxkey-web-maxkey/src/main/resources/config/samlServerKeystore.jks b/maxkey-webs/maxkey-web-maxkey/src/main/resources/config/samlServerKeystore.jks similarity index 100% rename from maxkey-web-maxkey/src/main/resources/config/samlServerKeystore.jks rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/config/samlServerKeystore.jks diff --git a/maxkey-web-maxkey/src/main/resources/log4j2.xml b/maxkey-webs/maxkey-web-maxkey/src/main/resources/log4j2.xml similarity index 100% rename from maxkey-web-maxkey/src/main/resources/log4j2.xml rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/log4j2.xml diff --git a/maxkey-web-maxkey/src/main/resources/maxkeyserver.keystore b/maxkey-webs/maxkey-web-maxkey/src/main/resources/maxkeyserver.keystore similarity index 100% rename from maxkey-web-maxkey/src/main/resources/maxkeyserver.keystore rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/maxkeyserver.keystore diff --git a/maxkey-web-maxkey/src/main/resources/messages/message.properties b/maxkey-webs/maxkey-web-maxkey/src/main/resources/messages/message.properties similarity index 100% rename from maxkey-web-maxkey/src/main/resources/messages/message.properties rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/messages/message.properties diff --git a/maxkey-web-maxkey/src/main/resources/messages/message_en.properties b/maxkey-webs/maxkey-web-maxkey/src/main/resources/messages/message_en.properties similarity index 100% rename from maxkey-web-maxkey/src/main/resources/messages/message_en.properties rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/messages/message_en.properties diff --git a/maxkey-web-maxkey/src/main/resources/messages/message_zh_CN.properties b/maxkey-webs/maxkey-web-maxkey/src/main/resources/messages/message_zh_CN.properties similarity index 100% rename from maxkey-web-maxkey/src/main/resources/messages/message_zh_CN.properties rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/messages/message_zh_CN.properties diff --git a/maxkey-web-maxkey/src/main/resources/templates/add-html-body-content.vm b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/add-html-body-content.vm similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/add-html-body-content.vm rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/add-html-body-content.vm diff --git a/maxkey-web-maxkey/src/main/resources/templates/add-html-head-content.vm b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/add-html-head-content.vm similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/add-html-head-content.vm rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/add-html-head-content.vm diff --git a/maxkey-web-maxkey/src/main/resources/templates/readme.txt b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/readme.txt similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/readme.txt rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/readme.txt diff --git a/maxkey-web-maxkey/src/main/resources/templates/saml1-post-binding.vm b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/saml1-post-binding.vm similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/saml1-post-binding.vm rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/saml1-post-binding.vm diff --git a/maxkey-web-maxkey/src/main/resources/templates/saml2-post-artifact-binding.vm b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/saml2-post-artifact-binding.vm similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/saml2-post-artifact-binding.vm rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/saml2-post-artifact-binding.vm diff --git a/maxkey-web-maxkey/src/main/resources/templates/saml2-post-binding.vm b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/saml2-post-binding.vm similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/saml2-post-binding.vm rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/saml2-post-binding.vm diff --git a/maxkey-web-maxkey/src/main/resources/templates/saml2-post-simplesign-binding.vm b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/saml2-post-simplesign-binding.vm similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/saml2-post-simplesign-binding.vm rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/saml2-post-simplesign-binding.vm diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/authorize/app_password_protected.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/authorize/app_password_protected.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/authorize/app_password_protected.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/authorize/app_password_protected.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/authorize/authorize_common.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/authorize/authorize_common.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/authorize/authorize_common.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/authorize/authorize_common.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/authorize/cas_sso_submint.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/authorize/cas_sso_submint.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/authorize/cas_sso_submint.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/authorize/cas_sso_submint.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/authorize/formbased_163email_sso_submint.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/authorize/formbased_163email_sso_submint.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/authorize/formbased_163email_sso_submint.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/authorize/formbased_163email_sso_submint.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/authorize/formbased_redirect_post_submint.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/authorize/formbased_redirect_post_submint.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/authorize/formbased_redirect_post_submint.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/authorize/formbased_redirect_post_submint.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/authorize/formbased_redirect_submint.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/authorize/formbased_redirect_submint.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/authorize/formbased_redirect_submint.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/authorize/formbased_redirect_submint.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/authorize/formbased_sso_submint.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/authorize/formbased_sso_submint.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/authorize/formbased_sso_submint.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/authorize/formbased_sso_submint.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/authorize/formbased_wy_youdao_sso_submint.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/authorize/formbased_wy_youdao_sso_submint.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/authorize/formbased_wy_youdao_sso_submint.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/authorize/formbased_wy_youdao_sso_submint.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/authorize/init_sso_credential.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/authorize/init_sso_credential.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/authorize/init_sso_credential.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/authorize/init_sso_credential.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/authorize/jwt_sso_submint.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/authorize/jwt_sso_submint.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/authorize/jwt_sso_submint.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/authorize/jwt_sso_submint.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/authorize/oauth_access_confirmation.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/authorize/oauth_access_confirmation.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/authorize/oauth_access_confirmation.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/authorize/oauth_access_confirmation.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/authorize/oracle_ebs_sso_redirect.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/authorize/oracle_ebs_sso_redirect.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/authorize/oracle_ebs_sso_redirect.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/authorize/oracle_ebs_sso_redirect.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/authorize/redirect_sso_submit.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/authorize/redirect_sso_submit.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/authorize/redirect_sso_submit.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/authorize/redirect_sso_submit.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/authorize/tokenbased_sso_submint.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/authorize/tokenbased_sso_submint.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/authorize/tokenbased_sso_submint.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/authorize/tokenbased_sso_submint.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/exception/400.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/exception/400.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/exception/400.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/exception/400.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/exception/404.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/exception/404.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/exception/404.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/exception/404.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/exception/500.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/exception/500.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/exception/500.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/exception/500.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/exception/501.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/exception/501.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/exception/501.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/exception/501.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/exception/503.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/exception/503.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/exception/503.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/exception/503.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/exception/accessdeny.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/exception/accessdeny.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/exception/accessdeny.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/exception/accessdeny.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/forgotpassword/findpwd.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/forgotpassword/findpwd.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/forgotpassword/findpwd.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/forgotpassword/findpwd.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/forgotpassword/pwdreseted.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/forgotpassword/pwdreseted.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/forgotpassword/pwdreseted.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/forgotpassword/pwdreseted.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/forgotpassword/resetpwd.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/forgotpassword/resetpwd.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/forgotpassword/resetpwd.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/forgotpassword/resetpwd.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/historys/loginAppsList.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/historys/loginAppsList.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/historys/loginAppsList.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/historys/loginAppsList.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/historys/loginList.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/historys/loginList.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/historys/loginList.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/historys/loginList.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/historys/systemLogsList.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/historys/systemLogsList.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/historys/systemLogsList.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/historys/systemLogsList.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/index.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/index.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/index.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/index.ftl diff --git a/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/layout/common.cssjs.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/layout/common.cssjs.ftl new file mode 100644 index 00000000..9ea4522c --- /dev/null +++ b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/layout/common.cssjs.ftl @@ -0,0 +1,52 @@ + + + + <#-- jquery base --> + + + <#-- bootstrap-4.4.1 --> + + + + <#-- font-awesome-4.7.0 --> + + <#-- metadata --> + + <#--bootstrap-table-1.16.0--> + + + + <#-- zTreev 3.5--> + + + + <#-- artDialog-5.0.4 --> + + + + <#-- datetimepicker-2.5.20 --> + + + + <#-- multiple-select-1.5.2 --> + + + + <#-- form --> + + <#-- blockUI --> + + <#-- serializeObject --> + + <#-- validation --> + + <#-- platform common script --> + + + + + <#-- if browser is not msie 6.0,follow styles over ie 6.0 style --> + + + + \ No newline at end of file diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/layout/footer.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/layout/footer.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/layout/footer.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/layout/footer.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/layout/header.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/layout/header.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/layout/header.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/layout/header.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/layout/main.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/layout/main.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/layout/main.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/layout/main.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/layout/nav_primary.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/layout/nav_primary.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/layout/nav_primary.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/layout/nav_primary.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/layout/nav_second.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/layout/nav_second.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/layout/nav_second.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/layout/nav_second.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/layout/nologintop.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/layout/nologintop.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/layout/nologintop.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/layout/nologintop.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/layout/top.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/layout/top.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/layout/top.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/layout/top.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/loggedout.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/loggedout.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/loggedout.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/loggedout.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/login.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/login.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/login.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/login.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/loginmobile.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/loginmobile.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/loginmobile.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/loginmobile.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/loginnormal.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/loginnormal.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/loginnormal.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/loginnormal.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/logintfa.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/logintfa.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/logintfa.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/logintfa.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/main/appConfigList.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/main/appConfigList.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/main/appConfigList.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/main/appConfigList.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/main/appList.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/main/appList.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/main/appList.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/main/appList.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/main/appUserConfig.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/main/appUserConfig.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/main/appUserConfig.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/main/appUserConfig.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/notices.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/notices.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/notices.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/notices.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/passwordExpired.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/passwordExpired.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/passwordExpired.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/passwordExpired.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/passwordInitial.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/passwordInitial.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/passwordInitial.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/passwordInitial.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/profile/myProfile.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/profile/myProfile.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/profile/myProfile.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/profile/myProfile.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/registration/activated.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/registration/activated.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/registration/activated.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/registration/activated.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/registration/initPassword.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/registration/initPassword.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/registration/initPassword.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/registration/initPassword.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/registration/register.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/registration/register.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/registration/register.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/registration/register.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/registration/registered.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/registration/registered.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/registration/registered.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/registration/registered.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/safe/changeAppLoginPasswod.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/safe/changeAppLoginPasswod.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/safe/changeAppLoginPasswod.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/safe/changeAppLoginPasswod.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/safe/changePassword.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/safe/changePassword.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/safe/changePassword.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/safe/changePassword.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/safe/setting.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/safe/setting.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/safe/setting.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/safe/setting.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/safe/timeBased.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/safe/timeBased.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/safe/timeBased.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/safe/timeBased.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/social/socialSignOnProvider.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/social/socialSignOnProvider.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/social/socialSignOnProvider.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/social/socialSignOnProvider.ftl diff --git a/maxkey-web-maxkey/src/main/resources/templates/views/timeout.ftl b/maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/timeout.ftl similarity index 100% rename from maxkey-web-maxkey/src/main/resources/templates/views/timeout.ftl rename to maxkey-webs/maxkey-web-maxkey/src/main/resources/templates/views/timeout.ftl diff --git a/maxkey-web-maxkey/src/main/webapp/WEB-INF/maxkey-servlet.xml b/maxkey-webs/maxkey-web-maxkey/src/main/webapp/WEB-INF/maxkey-servlet.xml similarity index 100% rename from maxkey-web-maxkey/src/main/webapp/WEB-INF/maxkey-servlet.xml rename to maxkey-webs/maxkey-web-maxkey/src/main/webapp/WEB-INF/maxkey-servlet.xml diff --git a/maxkey-web-maxkey/src/main/webapp/WEB-INF/web.backup.xml b/maxkey-webs/maxkey-web-maxkey/src/main/webapp/WEB-INF/web.backup.xml similarity index 100% rename from maxkey-web-maxkey/src/main/webapp/WEB-INF/web.backup.xml rename to maxkey-webs/maxkey-web-maxkey/src/main/webapp/WEB-INF/web.backup.xml diff --git a/maxkey-web-maxkey/src/main/webapp/WEB-INF/web.xml b/maxkey-webs/maxkey-web-maxkey/src/main/webapp/WEB-INF/web.xml similarity index 100% rename from maxkey-web-maxkey/src/main/webapp/WEB-INF/web.xml rename to maxkey-webs/maxkey-web-maxkey/src/main/webapp/WEB-INF/web.xml diff --git a/maxkey-web-maxkey/src/test/java/org/maxkey/web/authentication/kerberos/KerberosPrincipal.java b/maxkey-webs/maxkey-web-maxkey/src/test/java/org/maxkey/web/authentication/kerberos/KerberosPrincipal.java similarity index 100% rename from maxkey-web-maxkey/src/test/java/org/maxkey/web/authentication/kerberos/KerberosPrincipal.java rename to maxkey-webs/maxkey-web-maxkey/src/test/java/org/maxkey/web/authentication/kerberos/KerberosPrincipal.java diff --git a/maxkey-web-mgt-static/build.gradle b/maxkey-webs/maxkey-web-mgt-static/build.gradle similarity index 100% rename from maxkey-web-mgt-static/build.gradle rename to maxkey-webs/maxkey-web-mgt-static/build.gradle diff --git a/maxkey-web-mgt-static/src/main/resources/static/css/base.css b/maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/css/base.css similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/css/base.css rename to maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/css/base.css diff --git a/maxkey-web-mgt-static/src/main/resources/static/css/menu.css b/maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/css/menu.css similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/css/menu.css rename to maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/css/menu.css diff --git a/maxkey-web-mgt-static/src/main/resources/static/images/cert.png b/maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/images/cert.png similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/images/cert.png rename to maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/images/cert.png diff --git a/maxkey-web-mgt-static/src/main/resources/static/images/checkbox.png b/maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/images/checkbox.png similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/images/checkbox.png rename to maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/images/checkbox.png diff --git a/maxkey-web-mgt-static/src/main/resources/static/images/exit.jpg b/maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/images/exit.jpg similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/images/exit.jpg rename to maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/images/exit.jpg diff --git a/maxkey-web-mgt-static/src/main/resources/static/images/exit1.jpg b/maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/images/exit1.jpg similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/images/exit1.jpg rename to maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/images/exit1.jpg diff --git a/maxkey-web-mgt-static/src/main/resources/static/images/exit2.jpg b/maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/images/exit2.jpg similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/images/exit2.jpg rename to maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/images/exit2.jpg diff --git a/maxkey-web-mgt-static/src/main/resources/static/images/exit4.png b/maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/images/exit4.png similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/images/exit4.png rename to maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/images/exit4.png diff --git a/maxkey-web-mgt-static/src/main/resources/static/images/favicon.ico b/maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/images/favicon.ico similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/images/favicon.ico rename to maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/images/favicon.ico diff --git a/maxkey-web-mgt-static/src/main/resources/static/images/grid.png b/maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/images/grid.png similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/images/grid.png rename to maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/images/grid.png diff --git a/maxkey-web-mgt-static/src/main/resources/static/images/loading_img.gif b/maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/images/loading_img.gif similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/images/loading_img.gif rename to maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/images/loading_img.gif diff --git a/maxkey-web-mgt-static/src/main/resources/static/images/logo.jpg b/maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/images/logo.jpg similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/images/logo.jpg rename to maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/images/logo.jpg diff --git a/maxkey-web-mgt-static/src/main/resources/static/images/menu-left.png b/maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/images/menu-left.png similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/images/menu-left.png rename to maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/images/menu-left.png diff --git a/maxkey-web-mgt-static/src/main/resources/static/images/menu.png b/maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/images/menu.png similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/images/menu.png rename to maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/images/menu.png diff --git a/maxkey-web-mgt-static/src/main/resources/static/images/side-nav.png b/maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/images/side-nav.png similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/images/side-nav.png rename to maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/images/side-nav.png diff --git a/maxkey-web-mgt-static/src/main/resources/static/images/social/facebook.png b/maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/images/social/facebook.png similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/images/social/facebook.png rename to maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/images/social/facebook.png diff --git a/maxkey-web-mgt-static/src/main/resources/static/images/social/google.png b/maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/images/social/google.png similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/images/social/google.png rename to maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/images/social/google.png diff --git a/maxkey-web-mgt-static/src/main/resources/static/images/social/live.png b/maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/images/social/live.png similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/images/social/live.png rename to maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/images/social/live.png diff --git a/maxkey-web-mgt-static/src/main/resources/static/images/social/qq.png b/maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/images/social/qq.png similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/images/social/qq.png rename to maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/images/social/qq.png diff --git a/maxkey-web-mgt-static/src/main/resources/static/images/social/sinaweibo.png b/maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/images/social/sinaweibo.png similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/images/social/sinaweibo.png rename to maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/images/social/sinaweibo.png diff --git a/maxkey-web-mgt-static/src/main/resources/static/images/uploadimage.jpg b/maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/images/uploadimage.jpg similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/images/uploadimage.jpg rename to maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/images/uploadimage.jpg diff --git a/maxkey-web-mgt-static/src/main/resources/static/template/excel/Orgs_Import_Template.xlsx b/maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/template/excel/Orgs_Import_Template.xlsx similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/template/excel/Orgs_Import_Template.xlsx rename to maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/template/excel/Orgs_Import_Template.xlsx diff --git a/maxkey-web-mgt-static/src/main/resources/static/template/excel/Users_Import_Template.xlsx b/maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/template/excel/Users_Import_Template.xlsx similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/template/excel/Users_Import_Template.xlsx rename to maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/template/excel/Users_Import_Template.xlsx diff --git a/maxkey-web-mgt-static/src/main/resources/static/trusts/connsec.cer b/maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/trusts/connsec.cer similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/trusts/connsec.cer rename to maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/trusts/connsec.cer diff --git a/maxkey-web-mgt-static/src/main/resources/static/trusts/jwk.jwks b/maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/trusts/jwk.jwks similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/trusts/jwk.jwks rename to maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/trusts/jwk.jwks diff --git a/maxkey-web-mgt-static/src/main/resources/static/trusts/jwk.xml b/maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/trusts/jwk.xml similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/trusts/jwk.xml rename to maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/trusts/jwk.xml diff --git a/maxkey-web-mgt-static/src/main/resources/static/trusts/openid-configuration b/maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/trusts/openid-configuration similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/trusts/openid-configuration rename to maxkey-webs/maxkey-web-mgt-static/src/main/resources/static/trusts/openid-configuration diff --git a/maxkey-web-mgt/build.gradle b/maxkey-webs/maxkey-web-mgt/build.gradle similarity index 90% rename from maxkey-web-mgt/build.gradle rename to maxkey-webs/maxkey-web-mgt/build.gradle index 76b1dde0..d003432f 100644 --- a/maxkey-web-mgt/build.gradle +++ b/maxkey-webs/maxkey-web-mgt/build.gradle @@ -24,7 +24,7 @@ dependencies { implementation project(":maxkey-identitys:maxkey-synchronizers-workweixin") implementation project(":maxkey-identitys:maxkey-synchronizers-dingding") - implementation project(":maxkey-web-mgt-static") - + implementation project(":maxkey-webs:maxkey-web-static") + implementation project(":maxkey-webs:maxkey-web-mgt-static") } \ No newline at end of file diff --git a/maxkey-web-mgt/config/build_docker.gradle b/maxkey-webs/maxkey-web-mgt/config/build_docker.gradle similarity index 100% rename from maxkey-web-mgt/config/build_docker.gradle rename to maxkey-webs/maxkey-web-mgt/config/build_docker.gradle diff --git a/maxkey-web-mgt/config/build_jar.gradle b/maxkey-webs/maxkey-web-mgt/config/build_jar.gradle similarity index 100% rename from maxkey-web-mgt/config/build_jar.gradle rename to maxkey-webs/maxkey-web-mgt/config/build_jar.gradle diff --git a/maxkey-web-mgt/config/build_standard.gradle b/maxkey-webs/maxkey-web-mgt/config/build_standard.gradle similarity index 100% rename from maxkey-web-mgt/config/build_standard.gradle rename to maxkey-webs/maxkey-web-mgt/config/build_standard.gradle diff --git a/maxkey-web-mgt/src/main/java/META-INF/MANIFEST.MF b/maxkey-webs/maxkey-web-mgt/src/main/java/META-INF/MANIFEST.MF similarity index 100% rename from maxkey-web-mgt/src/main/java/META-INF/MANIFEST.MF rename to maxkey-webs/maxkey-web-mgt/src/main/java/META-INF/MANIFEST.MF diff --git a/maxkey-web-mgt/src/main/java/org/maxkey/MaxKeyMgtApplication.java b/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/MaxKeyMgtApplication.java similarity index 100% rename from maxkey-web-mgt/src/main/java/org/maxkey/MaxKeyMgtApplication.java rename to maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/MaxKeyMgtApplication.java diff --git a/maxkey-web-mgt/src/main/java/org/maxkey/MaxKeyMgtConfig.java b/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/MaxKeyMgtConfig.java similarity index 100% rename from maxkey-web-mgt/src/main/java/org/maxkey/MaxKeyMgtConfig.java rename to maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/MaxKeyMgtConfig.java diff --git a/maxkey-web-mgt/src/main/java/org/maxkey/MaxKeyMgtMvcConfig.java b/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/MaxKeyMgtMvcConfig.java similarity index 100% rename from maxkey-web-mgt/src/main/java/org/maxkey/MaxKeyMgtMvcConfig.java rename to maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/MaxKeyMgtMvcConfig.java diff --git a/maxkey-web-mgt/src/main/java/org/maxkey/jobs/DynamicGroupsJob.java b/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/jobs/DynamicGroupsJob.java similarity index 100% rename from maxkey-web-mgt/src/main/java/org/maxkey/jobs/DynamicGroupsJob.java rename to maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/jobs/DynamicGroupsJob.java diff --git a/maxkey-web-mgt/src/main/java/org/maxkey/jobs/DynamicRolesJob.java b/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/jobs/DynamicRolesJob.java similarity index 100% rename from maxkey-web-mgt/src/main/java/org/maxkey/jobs/DynamicRolesJob.java rename to maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/jobs/DynamicRolesJob.java diff --git a/maxkey-web-mgt/src/main/java/org/maxkey/web/api/endpoint/RestTimeBasedOtpController.java b/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/api/endpoint/RestTimeBasedOtpController.java similarity index 100% rename from maxkey-web-mgt/src/main/java/org/maxkey/web/api/endpoint/RestTimeBasedOtpController.java rename to maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/api/endpoint/RestTimeBasedOtpController.java diff --git a/maxkey-web-mgt/src/main/java/org/maxkey/web/apps/contorller/AdaptersController.java b/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/apps/contorller/AdaptersController.java similarity index 100% rename from maxkey-web-mgt/src/main/java/org/maxkey/web/apps/contorller/AdaptersController.java rename to maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/apps/contorller/AdaptersController.java diff --git a/maxkey-web-mgt/src/main/java/org/maxkey/web/apps/contorller/ApplicationsController.java b/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/apps/contorller/ApplicationsController.java similarity index 100% rename from maxkey-web-mgt/src/main/java/org/maxkey/web/apps/contorller/ApplicationsController.java rename to maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/apps/contorller/ApplicationsController.java diff --git a/maxkey-web-mgt/src/main/java/org/maxkey/web/apps/contorller/BaseAppContorller.java b/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/apps/contorller/BaseAppContorller.java similarity index 100% rename from maxkey-web-mgt/src/main/java/org/maxkey/web/apps/contorller/BaseAppContorller.java rename to maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/apps/contorller/BaseAppContorller.java diff --git a/maxkey-web-mgt/src/main/java/org/maxkey/web/apps/contorller/BasicDetailsController.java b/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/apps/contorller/BasicDetailsController.java similarity index 100% rename from maxkey-web-mgt/src/main/java/org/maxkey/web/apps/contorller/BasicDetailsController.java rename to maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/apps/contorller/BasicDetailsController.java diff --git a/maxkey-web-mgt/src/main/java/org/maxkey/web/apps/contorller/CasDetailsController.java b/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/apps/contorller/CasDetailsController.java similarity index 100% rename from maxkey-web-mgt/src/main/java/org/maxkey/web/apps/contorller/CasDetailsController.java rename to maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/apps/contorller/CasDetailsController.java diff --git a/maxkey-web-mgt/src/main/java/org/maxkey/web/apps/contorller/ExtendApiDetailsController.java b/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/apps/contorller/ExtendApiDetailsController.java similarity index 100% rename from maxkey-web-mgt/src/main/java/org/maxkey/web/apps/contorller/ExtendApiDetailsController.java rename to maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/apps/contorller/ExtendApiDetailsController.java diff --git a/maxkey-web-mgt/src/main/java/org/maxkey/web/apps/contorller/FormBasedDetailsController.java b/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/apps/contorller/FormBasedDetailsController.java similarity index 100% rename from maxkey-web-mgt/src/main/java/org/maxkey/web/apps/contorller/FormBasedDetailsController.java rename to maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/apps/contorller/FormBasedDetailsController.java diff --git a/maxkey-web-mgt/src/main/java/org/maxkey/web/apps/contorller/JwtDetailsController.java b/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/apps/contorller/JwtDetailsController.java similarity index 100% rename from maxkey-web-mgt/src/main/java/org/maxkey/web/apps/contorller/JwtDetailsController.java rename to maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/apps/contorller/JwtDetailsController.java diff --git a/maxkey-web-mgt/src/main/java/org/maxkey/web/apps/contorller/OAuth20DetailsController.java b/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/apps/contorller/OAuth20DetailsController.java similarity index 100% rename from maxkey-web-mgt/src/main/java/org/maxkey/web/apps/contorller/OAuth20DetailsController.java rename to maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/apps/contorller/OAuth20DetailsController.java diff --git a/maxkey-web-mgt/src/main/java/org/maxkey/web/apps/contorller/SAML20DetailsController.java b/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/apps/contorller/SAML20DetailsController.java similarity index 100% rename from maxkey-web-mgt/src/main/java/org/maxkey/web/apps/contorller/SAML20DetailsController.java rename to maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/apps/contorller/SAML20DetailsController.java diff --git a/maxkey-web-mgt/src/main/java/org/maxkey/web/apps/contorller/TokenBasedDetailsController.java b/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/apps/contorller/TokenBasedDetailsController.java similarity index 100% rename from maxkey-web-mgt/src/main/java/org/maxkey/web/apps/contorller/TokenBasedDetailsController.java rename to maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/apps/contorller/TokenBasedDetailsController.java diff --git a/maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/AccountsController.java b/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/AccountsController.java similarity index 100% rename from maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/AccountsController.java rename to maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/AccountsController.java diff --git a/maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/GroupMemberController.java b/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/GroupMemberController.java similarity index 100% rename from maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/GroupMemberController.java rename to maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/GroupMemberController.java diff --git a/maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/GroupPrivilegesController.java b/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/GroupPrivilegesController.java similarity index 100% rename from maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/GroupPrivilegesController.java rename to maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/GroupPrivilegesController.java diff --git a/maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/GroupsController.java b/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/GroupsController.java similarity index 100% rename from maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/GroupsController.java rename to maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/GroupsController.java diff --git a/maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/NoticesController.java b/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/NoticesController.java similarity index 100% rename from maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/NoticesController.java rename to maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/NoticesController.java diff --git a/maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/OrganizationsController.java b/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/OrganizationsController.java similarity index 100% rename from maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/OrganizationsController.java rename to maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/OrganizationsController.java diff --git a/maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/PasswordPolicyController.java b/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/PasswordPolicyController.java similarity index 100% rename from maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/PasswordPolicyController.java rename to maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/PasswordPolicyController.java diff --git a/maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/PermissionsController.java b/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/PermissionsController.java similarity index 100% rename from maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/PermissionsController.java rename to maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/PermissionsController.java diff --git a/maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/ResourcesController.java b/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/ResourcesController.java similarity index 100% rename from maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/ResourcesController.java rename to maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/ResourcesController.java diff --git a/maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/RoleMemberController.java b/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/RoleMemberController.java similarity index 100% rename from maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/RoleMemberController.java rename to maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/RoleMemberController.java diff --git a/maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/RolesController.java b/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/RolesController.java similarity index 100% rename from maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/RolesController.java rename to maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/RolesController.java diff --git a/maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/SynchronizersController.java b/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/SynchronizersController.java similarity index 100% rename from maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/SynchronizersController.java rename to maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/SynchronizersController.java diff --git a/maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/UserAdjointController.java b/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/UserAdjointController.java similarity index 100% rename from maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/UserAdjointController.java rename to maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/UserAdjointController.java diff --git a/maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/UserInfoController.java b/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/UserInfoController.java similarity index 100% rename from maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/UserInfoController.java rename to maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/contorller/UserInfoController.java diff --git a/maxkey-web-mgt/src/main/java/org/maxkey/web/endpoint/IndexEndpoint.java b/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/endpoint/IndexEndpoint.java similarity index 100% rename from maxkey-web-mgt/src/main/java/org/maxkey/web/endpoint/IndexEndpoint.java rename to maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/endpoint/IndexEndpoint.java diff --git a/maxkey-web-mgt/src/main/java/org/maxkey/web/endpoint/LoginEndpoint.java b/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/endpoint/LoginEndpoint.java similarity index 100% rename from maxkey-web-mgt/src/main/java/org/maxkey/web/endpoint/LoginEndpoint.java rename to maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/endpoint/LoginEndpoint.java diff --git a/maxkey-web-mgt/src/main/java/org/maxkey/web/endpoint/LogoutEndpoint.java b/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/endpoint/LogoutEndpoint.java similarity index 100% rename from maxkey-web-mgt/src/main/java/org/maxkey/web/endpoint/LogoutEndpoint.java rename to maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/endpoint/LogoutEndpoint.java diff --git a/maxkey-web-mgt/src/main/java/org/maxkey/web/historys/contorller/ConnectorHistoryController.java b/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/historys/contorller/ConnectorHistoryController.java similarity index 100% rename from maxkey-web-mgt/src/main/java/org/maxkey/web/historys/contorller/ConnectorHistoryController.java rename to maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/historys/contorller/ConnectorHistoryController.java diff --git a/maxkey-web-mgt/src/main/java/org/maxkey/web/historys/contorller/LoginAppsHistoryController.java b/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/historys/contorller/LoginAppsHistoryController.java similarity index 100% rename from maxkey-web-mgt/src/main/java/org/maxkey/web/historys/contorller/LoginAppsHistoryController.java rename to maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/historys/contorller/LoginAppsHistoryController.java diff --git a/maxkey-web-mgt/src/main/java/org/maxkey/web/historys/contorller/LoginHistoryController.java b/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/historys/contorller/LoginHistoryController.java similarity index 100% rename from maxkey-web-mgt/src/main/java/org/maxkey/web/historys/contorller/LoginHistoryController.java rename to maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/historys/contorller/LoginHistoryController.java diff --git a/maxkey-web-mgt/src/main/java/org/maxkey/web/historys/contorller/SynchronizerHistoryController.java b/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/historys/contorller/SynchronizerHistoryController.java similarity index 100% rename from maxkey-web-mgt/src/main/java/org/maxkey/web/historys/contorller/SynchronizerHistoryController.java rename to maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/historys/contorller/SynchronizerHistoryController.java diff --git a/maxkey-web-mgt/src/main/java/org/maxkey/web/historys/contorller/SystemLogsController.java b/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/historys/contorller/SystemLogsController.java similarity index 100% rename from maxkey-web-mgt/src/main/java/org/maxkey/web/historys/contorller/SystemLogsController.java rename to maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/historys/contorller/SystemLogsController.java diff --git a/maxkey-web-mgt/src/main/java/org/maxkey/web/historys/contorller/package-info.java b/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/historys/contorller/package-info.java similarity index 100% rename from maxkey-web-mgt/src/main/java/org/maxkey/web/historys/contorller/package-info.java rename to maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/historys/contorller/package-info.java diff --git a/maxkey-web-mgt/src/main/java/org/maxkey/web/interceptor/HistoryLogsAdapter.java b/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/interceptor/HistoryLogsAdapter.java similarity index 100% rename from maxkey-web-mgt/src/main/java/org/maxkey/web/interceptor/HistoryLogsAdapter.java rename to maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/interceptor/HistoryLogsAdapter.java diff --git a/maxkey-web-mgt/src/main/java/org/maxkey/web/interceptor/Oauth20ApiPermissionAdapter.java b/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/interceptor/Oauth20ApiPermissionAdapter.java similarity index 100% rename from maxkey-web-mgt/src/main/java/org/maxkey/web/interceptor/Oauth20ApiPermissionAdapter.java rename to maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/interceptor/Oauth20ApiPermissionAdapter.java diff --git a/maxkey-web-mgt/src/main/java/org/maxkey/web/interceptor/PermissionAdapter.java b/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/interceptor/PermissionAdapter.java similarity index 100% rename from maxkey-web-mgt/src/main/java/org/maxkey/web/interceptor/PermissionAdapter.java rename to maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/interceptor/PermissionAdapter.java diff --git a/maxkey-web-mgt/src/main/java/org/maxkey/web/interceptor/RestApiPermissionAdapter.java b/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/interceptor/RestApiPermissionAdapter.java similarity index 100% rename from maxkey-web-mgt/src/main/java/org/maxkey/web/interceptor/RestApiPermissionAdapter.java rename to maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/web/interceptor/RestApiPermissionAdapter.java diff --git a/maxkey-web-mgt/src/main/resources/META-INF/spring.factories b/maxkey-webs/maxkey-web-mgt/src/main/resources/META-INF/spring.factories similarity index 100% rename from maxkey-web-mgt/src/main/resources/META-INF/spring.factories rename to maxkey-webs/maxkey-web-mgt/src/main/resources/META-INF/spring.factories diff --git a/maxkey-web-mgt/src/main/resources/application.properties b/maxkey-webs/maxkey-web-mgt/src/main/resources/application.properties similarity index 100% rename from maxkey-web-mgt/src/main/resources/application.properties rename to maxkey-webs/maxkey-web-mgt/src/main/resources/application.properties diff --git a/maxkey-web-mgt/src/main/resources/config/keystore.jwks b/maxkey-webs/maxkey-web-mgt/src/main/resources/config/keystore.jwks similarity index 100% rename from maxkey-web-mgt/src/main/resources/config/keystore.jwks rename to maxkey-webs/maxkey-web-mgt/src/main/resources/config/keystore.jwks diff --git a/maxkey-web-mgt/src/main/resources/config/samlClientKeystore.jks b/maxkey-webs/maxkey-web-mgt/src/main/resources/config/samlClientKeystore.jks similarity index 100% rename from maxkey-web-mgt/src/main/resources/config/samlClientKeystore.jks rename to maxkey-webs/maxkey-web-mgt/src/main/resources/config/samlClientKeystore.jks diff --git a/maxkey-web-mgt/src/main/resources/config/samlServerKeystore.jks b/maxkey-webs/maxkey-web-mgt/src/main/resources/config/samlServerKeystore.jks similarity index 100% rename from maxkey-web-mgt/src/main/resources/config/samlServerKeystore.jks rename to maxkey-webs/maxkey-web-mgt/src/main/resources/config/samlServerKeystore.jks diff --git a/maxkey-web-mgt/src/main/resources/log4j2.xml b/maxkey-webs/maxkey-web-mgt/src/main/resources/log4j2.xml similarity index 100% rename from maxkey-web-mgt/src/main/resources/log4j2.xml rename to maxkey-webs/maxkey-web-mgt/src/main/resources/log4j2.xml diff --git a/maxkey-web-mgt/src/main/resources/messages/message.properties b/maxkey-webs/maxkey-web-mgt/src/main/resources/messages/message.properties similarity index 100% rename from maxkey-web-mgt/src/main/resources/messages/message.properties rename to maxkey-webs/maxkey-web-mgt/src/main/resources/messages/message.properties diff --git a/maxkey-web-mgt/src/main/resources/messages/message_en.properties b/maxkey-webs/maxkey-web-mgt/src/main/resources/messages/message_en.properties similarity index 100% rename from maxkey-web-mgt/src/main/resources/messages/message_en.properties rename to maxkey-webs/maxkey-web-mgt/src/main/resources/messages/message_en.properties diff --git a/maxkey-web-mgt/src/main/resources/messages/message_zh_CN.properties b/maxkey-webs/maxkey-web-mgt/src/main/resources/messages/message_zh_CN.properties similarity index 100% rename from maxkey-web-mgt/src/main/resources/messages/message_zh_CN.properties rename to maxkey-webs/maxkey-web-mgt/src/main/resources/messages/message_zh_CN.properties diff --git a/maxkey-web-mgt/src/main/resources/spring/maxkey-mgt.xml b/maxkey-webs/maxkey-web-mgt/src/main/resources/spring/maxkey-mgt.xml similarity index 100% rename from maxkey-web-mgt/src/main/resources/spring/maxkey-mgt.xml rename to maxkey-webs/maxkey-web-mgt/src/main/resources/spring/maxkey-mgt.xml diff --git a/maxkey-web-mgt/src/main/resources/templates/views/accounts/appAccountsAdd.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/accounts/appAccountsAdd.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/accounts/appAccountsAdd.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/accounts/appAccountsAdd.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/accounts/appAccountsList.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/accounts/appAccountsList.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/accounts/appAccountsList.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/accounts/appAccountsList.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/apps/adapters/adapterAdd.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/adapters/adapterAdd.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/apps/adapters/adapterAdd.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/adapters/adapterAdd.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/apps/adapters/adapterUpdate.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/adapters/adapterUpdate.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/apps/adapters/adapterUpdate.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/adapters/adapterUpdate.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/apps/adapters/adaptersList.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/adapters/adaptersList.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/apps/adapters/adaptersList.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/adapters/adaptersList.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/apps/adapters/selectAdaptersList.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/adapters/selectAdaptersList.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/apps/adapters/selectAdaptersList.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/adapters/selectAdaptersList.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/apps/appAddCommon.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/appAddCommon.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/apps/appAddCommon.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/appAddCommon.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/apps/appCommonHead.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/appCommonHead.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/apps/appCommonHead.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/appCommonHead.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/apps/appUpdateCommon.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/appUpdateCommon.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/apps/appUpdateCommon.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/appUpdateCommon.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/apps/appsExtendAttr.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/appsExtendAttr.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/apps/appsExtendAttr.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/appsExtendAttr.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/apps/appsList.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/appsList.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/apps/appsList.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/appsList.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/apps/basic/appAdd.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/basic/appAdd.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/apps/basic/appAdd.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/basic/appAdd.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/apps/basic/appUpdate.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/basic/appUpdate.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/apps/basic/appUpdate.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/basic/appUpdate.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/apps/cas/appAdd.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/cas/appAdd.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/apps/cas/appAdd.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/cas/appAdd.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/apps/cas/appUpdate.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/cas/appUpdate.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/apps/cas/appUpdate.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/cas/appUpdate.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/apps/extendapi/appAdd.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/extendapi/appAdd.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/apps/extendapi/appAdd.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/extendapi/appAdd.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/apps/extendapi/appUpdate.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/extendapi/appUpdate.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/apps/extendapi/appUpdate.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/extendapi/appUpdate.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/apps/formbased/appAdd.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/formbased/appAdd.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/apps/formbased/appAdd.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/formbased/appAdd.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/apps/formbased/appUpdate.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/formbased/appUpdate.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/apps/formbased/appUpdate.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/formbased/appUpdate.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/apps/jwt/appAdd.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/jwt/appAdd.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/apps/jwt/appAdd.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/jwt/appAdd.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/apps/jwt/appUpdate.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/jwt/appUpdate.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/apps/jwt/appUpdate.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/jwt/appUpdate.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/apps/oauth20/appAdd.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/oauth20/appAdd.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/apps/oauth20/appAdd.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/oauth20/appAdd.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/apps/oauth20/appUpdate.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/oauth20/appUpdate.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/apps/oauth20/appUpdate.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/oauth20/appUpdate.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/apps/saml20/appAdd.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/saml20/appAdd.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/apps/saml20/appAdd.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/saml20/appAdd.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/apps/saml20/appUpdate.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/saml20/appUpdate.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/apps/saml20/appUpdate.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/saml20/appUpdate.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/apps/selectAppsList.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/selectAppsList.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/apps/selectAppsList.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/selectAppsList.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/apps/tokenbased/appAdd.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/tokenbased/appAdd.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/apps/tokenbased/appAdd.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/tokenbased/appAdd.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/apps/tokenbased/appUpdate.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/tokenbased/appUpdate.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/apps/tokenbased/appUpdate.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/tokenbased/appUpdate.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/apps/userPropertys.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/userPropertys.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/apps/userPropertys.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/apps/userPropertys.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/config/passwordpolicy/passwordpolicy.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/config/passwordpolicy/passwordpolicy.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/config/passwordpolicy/passwordpolicy.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/config/passwordpolicy/passwordpolicy.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/exception/400.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/exception/400.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/exception/400.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/exception/400.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/exception/404.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/exception/404.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/exception/404.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/exception/404.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/exception/500.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/exception/500.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/exception/500.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/exception/500.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/exception/501.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/exception/501.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/exception/501.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/exception/501.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/exception/503.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/exception/503.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/exception/503.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/exception/503.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/exception/accessdeny.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/exception/accessdeny.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/exception/accessdeny.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/exception/accessdeny.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/groupapp/addGroupAppsList.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/groupapp/addGroupAppsList.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/groupapp/addGroupAppsList.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/groupapp/addGroupAppsList.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/groupapp/groupAppsList.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/groupapp/groupAppsList.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/groupapp/groupAppsList.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/groupapp/groupAppsList.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/groups/groupAdd.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/groups/groupAdd.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/groups/groupAdd.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/groups/groupAdd.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/groups/groupUpdate.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/groups/groupUpdate.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/groups/groupUpdate.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/groups/groupUpdate.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/groups/groupsList.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/groups/groupsList.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/groups/groupsList.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/groups/groupsList.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/groups/selectGroupsList.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/groups/selectGroupsList.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/groups/selectGroupsList.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/groups/selectGroupsList.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/groupuser/addGroupUsersList.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/groupuser/addGroupUsersList.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/groupuser/addGroupUsersList.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/groupuser/addGroupUsersList.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/groupuser/groupUsersList.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/groupuser/groupUsersList.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/groupuser/groupUsersList.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/groupuser/groupUsersList.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/historys/connectorHistoryList.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/historys/connectorHistoryList.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/historys/connectorHistoryList.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/historys/connectorHistoryList.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/historys/loginAppsHistoryList.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/historys/loginAppsHistoryList.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/historys/loginAppsHistoryList.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/historys/loginAppsHistoryList.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/historys/loginHistoryList.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/historys/loginHistoryList.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/historys/loginHistoryList.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/historys/loginHistoryList.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/historys/synchronizerHistoryList.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/historys/synchronizerHistoryList.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/historys/synchronizerHistoryList.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/historys/synchronizerHistoryList.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/historys/systemLogsList.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/historys/systemLogsList.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/historys/systemLogsList.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/historys/systemLogsList.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/index.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/index.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/index.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/index.ftl diff --git a/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/layout/common.cssjs.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/layout/common.cssjs.ftl new file mode 100644 index 00000000..cb07dd8b --- /dev/null +++ b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/layout/common.cssjs.ftl @@ -0,0 +1,55 @@ + + + + <#-- jquery base --> + + + <#-- bootstrap-4.4.1 --> + + + <#-- font-awesome-4.7.0 --> + + <#-- metadata --> + + <#--bootstrap-table-1.16.0--> + + + + <#-- zTreev 3.5--> + + + + <#-- artDialog-5.0.4 --> + + + + <#-- datetimepicker-2.5.20 --> + + + + <#-- form --> + + <#-- blockUI --> + + <#-- serializeObject --> + + + <#-- metisMenu-v3.0.4 --> + + + + + <#-- multiple-select-1.5.2 --> + + + + <#-- platform common script --> + + + + + + <#-- if browser is not msie 6.0,follow styles over ie 6.0 style --> + + + \ No newline at end of file diff --git a/maxkey-web-mgt/src/main/resources/templates/views/layout/footer.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/layout/footer.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/layout/footer.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/layout/footer.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/layout/header.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/layout/header.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/layout/header.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/layout/header.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/layout/main.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/layout/main.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/layout/main.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/layout/main.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/layout/nologintop.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/layout/nologintop.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/layout/nologintop.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/layout/nologintop.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/layout/sidenav.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/layout/sidenav.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/layout/sidenav.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/layout/sidenav.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/layout/top.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/layout/top.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/layout/top.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/layout/top.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/loggedout.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/loggedout.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/loggedout.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/loggedout.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/login.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/login.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/login.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/login.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/main.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/main.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/main.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/main.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/notices/noticeAdd.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/notices/noticeAdd.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/notices/noticeAdd.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/notices/noticeAdd.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/notices/noticeUpdate.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/notices/noticeUpdate.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/notices/noticeUpdate.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/notices/noticeUpdate.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/notices/noticesList.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/notices/noticesList.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/notices/noticesList.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/notices/noticesList.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/orgs/orgsAdd.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/orgs/orgsAdd.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/orgs/orgsAdd.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/orgs/orgsAdd.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/orgs/orgsImport.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/orgs/orgsImport.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/orgs/orgsImport.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/orgs/orgsImport.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/orgs/orgsList.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/orgs/orgsList.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/orgs/orgsList.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/orgs/orgsList.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/orgs/orgsSelect.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/orgs/orgsSelect.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/orgs/orgsSelect.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/orgs/orgsSelect.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/orgs/orgsUpdate.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/orgs/orgsUpdate.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/orgs/orgsUpdate.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/orgs/orgsUpdate.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/permissions/permissionsList.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/permissions/permissionsList.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/permissions/permissionsList.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/permissions/permissionsList.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/resources/resourceAdd.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/resources/resourceAdd.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/resources/resourceAdd.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/resources/resourceAdd.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/resources/resourceUpdate.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/resources/resourceUpdate.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/resources/resourceUpdate.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/resources/resourceUpdate.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/resources/resourcesList.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/resources/resourcesList.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/resources/resourcesList.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/resources/resourcesList.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/resources/selectResourcesList.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/resources/selectResourcesList.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/resources/selectResourcesList.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/resources/selectResourcesList.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/roles/roleAdd.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/roles/roleAdd.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/roles/roleAdd.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/roles/roleAdd.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/roles/roleUpdate.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/roles/roleUpdate.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/roles/roleUpdate.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/roles/roleUpdate.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/roles/rolesList.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/roles/rolesList.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/roles/rolesList.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/roles/rolesList.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/roles/selectRolesList.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/roles/selectRolesList.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/roles/selectRolesList.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/roles/selectRolesList.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/roleusers/addRoleUsersList.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/roleusers/addRoleUsersList.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/roleusers/addRoleUsersList.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/roleusers/addRoleUsersList.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/roleusers/roleUsersList.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/roleusers/roleUsersList.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/roleusers/roleUsersList.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/roleusers/roleUsersList.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/synchronizers/synchronizerUpdate.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/synchronizers/synchronizerUpdate.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/synchronizers/synchronizerUpdate.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/synchronizers/synchronizerUpdate.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/synchronizers/synchronizersList.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/synchronizers/synchronizersList.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/synchronizers/synchronizersList.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/synchronizers/synchronizersList.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/timeout.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/timeout.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/timeout.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/timeout.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/userinfo/changePassword.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/userinfo/changePassword.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/userinfo/changePassword.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/userinfo/changePassword.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/userinfo/userAdd.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/userinfo/userAdd.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/userinfo/userAdd.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/userinfo/userAdd.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/userinfo/userInfoAdjointAdd.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/userinfo/userInfoAdjointAdd.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/userinfo/userInfoAdjointAdd.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/userinfo/userInfoAdjointAdd.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/userinfo/userInfoAdjointUpdate.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/userinfo/userInfoAdjointUpdate.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/userinfo/userInfoAdjointUpdate.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/userinfo/userInfoAdjointUpdate.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/userinfo/userUpdate.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/userinfo/userUpdate.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/userinfo/userUpdate.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/userinfo/userUpdate.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/userinfo/userinfoAdjointList.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/userinfo/userinfoAdjointList.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/userinfo/userinfoAdjointList.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/userinfo/userinfoAdjointList.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/userinfo/userinfoSelect.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/userinfo/userinfoSelect.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/userinfo/userinfoSelect.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/userinfo/userinfoSelect.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/userinfo/usersImport.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/userinfo/usersImport.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/userinfo/usersImport.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/userinfo/usersImport.ftl diff --git a/maxkey-web-mgt/src/main/resources/templates/views/userinfo/usersList.ftl b/maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/userinfo/usersList.ftl similarity index 100% rename from maxkey-web-mgt/src/main/resources/templates/views/userinfo/usersList.ftl rename to maxkey-webs/maxkey-web-mgt/src/main/resources/templates/views/userinfo/usersList.ftl diff --git a/maxkey-web-mgt/src/main/webapp/WEB-INF/maxkey-mgt-servlet.xml b/maxkey-webs/maxkey-web-mgt/src/main/webapp/WEB-INF/maxkey-mgt-servlet.xml similarity index 100% rename from maxkey-web-mgt/src/main/webapp/WEB-INF/maxkey-mgt-servlet.xml rename to maxkey-webs/maxkey-web-mgt/src/main/webapp/WEB-INF/maxkey-mgt-servlet.xml diff --git a/maxkey-web-mgt/src/main/webapp/WEB-INF/web.backup.xml b/maxkey-webs/maxkey-web-mgt/src/main/webapp/WEB-INF/web.backup.xml similarity index 100% rename from maxkey-web-mgt/src/main/webapp/WEB-INF/web.backup.xml rename to maxkey-webs/maxkey-web-mgt/src/main/webapp/WEB-INF/web.backup.xml diff --git a/maxkey-web-mgt/src/main/webapp/WEB-INF/web.xml b/maxkey-webs/maxkey-web-mgt/src/main/webapp/WEB-INF/web.xml similarity index 100% rename from maxkey-web-mgt/src/main/webapp/WEB-INF/web.xml rename to maxkey-webs/maxkey-web-mgt/src/main/webapp/WEB-INF/web.xml diff --git a/maxkey-webs/maxkey-web-static/build.gradle b/maxkey-webs/maxkey-web-static/build.gradle new file mode 100644 index 00000000..e00f1ff1 --- /dev/null +++ b/maxkey-webs/maxkey-web-static/build.gradle @@ -0,0 +1,8 @@ +description = "maxkey-web-static" + +//add support for Java +apply plugin: 'java' + +dependencies { + +} \ No newline at end of file diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/README.md b/maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/README.md similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/README.md rename to maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/README.md diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/artDialog.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/artDialog.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/artDialog.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/artDialog.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/artDialog.plugins.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/artDialog.plugins.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/artDialog.plugins.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/artDialog.plugins.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/index.html.txt b/maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/index.html.txt similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/index.html.txt rename to maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/index.html.txt diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/jquery.artDialog.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/jquery.artDialog.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/jquery.artDialog.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/jquery.artDialog.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/license.txt b/maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/license.txt similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/license.txt rename to maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/license.txt diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/aero.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/aero.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/aero.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/aero.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/aero/aero_s.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/aero/aero_s.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/aero/aero_s.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/aero/aero_s.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/aero/aero_s2.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/aero/aero_s2.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/aero/aero_s2.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/aero/aero_s2.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/black.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/black.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/black.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/black.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/black/bg.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/black/bg.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/black/bg.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/black/bg.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/black/bg2.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/black/bg2.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/black/bg2.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/black/bg2.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/black/bg_css3.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/black/bg_css3.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/black/bg_css3.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/black/bg_css3.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/black/bg_css3_2.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/black/bg_css3_2.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/black/bg_css3_2.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/black/bg_css3_2.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/blue.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/blue.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/blue.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/blue.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/blue/bg.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/blue/bg.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/blue/bg.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/blue/bg.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/blue/bg2.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/blue/bg2.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/blue/bg2.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/blue/bg2.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/blue/bg_css3.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/blue/bg_css3.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/blue/bg_css3.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/blue/bg_css3.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/blue/bg_css3_2.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/blue/bg_css3_2.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/blue/bg_css3_2.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/blue/bg_css3_2.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/chrome.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/chrome.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/chrome.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/chrome.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/chrome/border.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/chrome/border.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/chrome/border.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/chrome/border.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/chrome/chrome_s.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/chrome/chrome_s.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/chrome/chrome_s.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/chrome/chrome_s.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/default.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/default.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/default.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/default.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/green.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/green.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/green.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/green.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/green/bg.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/green/bg.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/green/bg.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/green/bg.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/green/bg2.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/green/bg2.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/green/bg2.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/green/bg2.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/green/bg_css3.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/green/bg_css3.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/green/bg_css3.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/green/bg_css3.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/green/bg_css3_2.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/green/bg_css3_2.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/green/bg_css3_2.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/green/bg_css3_2.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/green/color_bg.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/green/color_bg.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/green/color_bg.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/green/color_bg.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/idialog.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/idialog.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/idialog.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/idialog.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/idialog/idialog_s.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/idialog/idialog_s.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/idialog/idialog_s.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/idialog/idialog_s.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/idialog/idialog_s2.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/idialog/idialog_s2.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/idialog/idialog_s2.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/idialog/idialog_s2.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/loading.gif b/maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/loading.gif similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/loading.gif rename to maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/loading.gif diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/opera.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/opera.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/opera.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/opera.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/opera/s1.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/opera/s1.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/opera/s1.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/opera/s1.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/opera/s2.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/opera/s2.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/opera/s2.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/opera/s2.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/platform.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/platform.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/platform.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/platform.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/simple.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/simple.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/simple.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/simple.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/twitter.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/twitter.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/skins/twitter.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/skins/twitter.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/source/artDialog.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/source/artDialog.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/source/artDialog.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/source/artDialog.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/source/artDialog.plugins.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/source/artDialog.plugins.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/source/artDialog.plugins.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/source/artDialog.plugins.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/source/jquery.artDialog.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/source/jquery.artDialog.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/artDialog-5.0.4/source/jquery.artDialog.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/artDialog-5.0.4/source/jquery.artDialog.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-grid.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-grid.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-grid.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-grid.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-grid.css.map b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-grid.css.map similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-grid.css.map rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-grid.css.map diff --git a/maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-grid.min.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-grid.min.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-grid.min.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-grid.min.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-grid.min.css.map b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-grid.min.css.map similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-grid.min.css.map rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-grid.min.css.map diff --git a/maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-reboot.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-reboot.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-reboot.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-reboot.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-reboot.css.map b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-reboot.css.map similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-reboot.css.map rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-reboot.css.map diff --git a/maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-reboot.min.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-reboot.min.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-reboot.min.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-reboot.min.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-reboot.min.css.map b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-reboot.min.css.map similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-reboot.min.css.map rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap-reboot.min.css.map diff --git a/maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap.css.map b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap.css.map similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap.css.map rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap.css.map diff --git a/maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap.min.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap.min.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap.min.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap.min.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap.min.css.map b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap.min.css.map similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap.min.css.map rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/bootstrap.min.css.map diff --git a/maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap-grid.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap-grid.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap-grid.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap-grid.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap-grid.css.map b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap-grid.css.map similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap-grid.css.map rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap-grid.css.map diff --git a/maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap-grid.min.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap-grid.min.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap-grid.min.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap-grid.min.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap-grid.min.css.map b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap-grid.min.css.map similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap-grid.min.css.map rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap-grid.min.css.map diff --git a/maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap-reboot.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap-reboot.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap-reboot.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap-reboot.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap-reboot.css.map b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap-reboot.css.map similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap-reboot.css.map rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap-reboot.css.map diff --git a/maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap-reboot.min.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap-reboot.min.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap-reboot.min.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap-reboot.min.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap-reboot.min.css.map b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap-reboot.min.css.map similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap-reboot.min.css.map rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap-reboot.min.css.map diff --git a/maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap.css.map b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap.css.map similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap.css.map rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap.css.map diff --git a/maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap.min.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap.min.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap.min.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap.min.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap.min.css.map b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap.min.css.map similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap.min.css.map rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/default/bootstrap.min.css.map diff --git a/maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/minty/_bootswatch.scss b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/minty/_bootswatch.scss similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/minty/_bootswatch.scss rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/minty/_bootswatch.scss diff --git a/maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/minty/_variables.scss b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/minty/_variables.scss similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/minty/_variables.scss rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/minty/_variables.scss diff --git a/maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/minty/bootstrap.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/minty/bootstrap.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/minty/bootstrap.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/minty/bootstrap.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/minty/bootstrap.min.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/minty/bootstrap.min.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/minty/bootstrap.min.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/minty/bootstrap.min.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/pulse/_bootswatch.scss b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/pulse/_bootswatch.scss similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/pulse/_bootswatch.scss rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/pulse/_bootswatch.scss diff --git a/maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/pulse/_variables.scss b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/pulse/_variables.scss similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/pulse/_variables.scss rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/pulse/_variables.scss diff --git a/maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/pulse/bootstrap.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/pulse/bootstrap.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/pulse/bootstrap.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/pulse/bootstrap.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/pulse/bootstrap.min.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/pulse/bootstrap.min.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/css/pulse/bootstrap.min.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/css/pulse/bootstrap.min.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/js/bootstrap.bundle.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/js/bootstrap.bundle.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/js/bootstrap.bundle.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/js/bootstrap.bundle.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/js/bootstrap.bundle.js.map b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/js/bootstrap.bundle.js.map similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/js/bootstrap.bundle.js.map rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/js/bootstrap.bundle.js.map diff --git a/maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/js/bootstrap.bundle.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/js/bootstrap.bundle.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/js/bootstrap.bundle.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/js/bootstrap.bundle.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/js/bootstrap.bundle.min.js.map b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/js/bootstrap.bundle.min.js.map similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/js/bootstrap.bundle.min.js.map rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/js/bootstrap.bundle.min.js.map diff --git a/maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/js/bootstrap.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/js/bootstrap.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/js/bootstrap.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/js/bootstrap.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/js/bootstrap.js.map b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/js/bootstrap.js.map similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/js/bootstrap.js.map rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/js/bootstrap.js.map diff --git a/maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/js/bootstrap.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/js/bootstrap.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/js/bootstrap.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/js/bootstrap.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/js/bootstrap.min.js.map b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/js/bootstrap.min.js.map similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/bootstrap-4.4.1/js/bootstrap.min.js.map rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-4.4.1/js/bootstrap.min.js.map diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/bootstrap-table-locale-all.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/bootstrap-table-locale-all.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/bootstrap-table-locale-all.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/bootstrap-table-locale-all.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/bootstrap-table-locale-all.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/bootstrap-table-locale-all.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/bootstrap-table-locale-all.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/bootstrap-table-locale-all.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/bootstrap-table-vue.esm.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/bootstrap-table-vue.esm.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/bootstrap-table-vue.esm.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/bootstrap-table-vue.esm.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/bootstrap-table-vue.esm.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/bootstrap-table-vue.esm.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/bootstrap-table-vue.esm.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/bootstrap-table-vue.esm.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/bootstrap-table-vue.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/bootstrap-table-vue.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/bootstrap-table-vue.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/bootstrap-table-vue.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/bootstrap-table-vue.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/bootstrap-table-vue.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/bootstrap-table-vue.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/bootstrap-table-vue.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/bootstrap-table.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/bootstrap-table.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/bootstrap-table.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/bootstrap-table.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/bootstrap-table.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/bootstrap-table.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/bootstrap-table.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/bootstrap-table.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/bootstrap-table.min.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/bootstrap-table.min.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/bootstrap-table.min.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/bootstrap-table.min.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/bootstrap-table.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/bootstrap-table.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/bootstrap-table.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/bootstrap-table.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/accent-neutralise/bootstrap-table-accent-neutralise.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/accent-neutralise/bootstrap-table-accent-neutralise.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/accent-neutralise/bootstrap-table-accent-neutralise.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/accent-neutralise/bootstrap-table-accent-neutralise.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/accent-neutralise/bootstrap-table-accent-neutralise.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/accent-neutralise/bootstrap-table-accent-neutralise.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/accent-neutralise/bootstrap-table-accent-neutralise.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/accent-neutralise/bootstrap-table-accent-neutralise.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/addrbar/bootstrap-table-addrbar.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/addrbar/bootstrap-table-addrbar.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/addrbar/bootstrap-table-addrbar.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/addrbar/bootstrap-table-addrbar.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/addrbar/bootstrap-table-addrbar.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/addrbar/bootstrap-table-addrbar.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/addrbar/bootstrap-table-addrbar.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/addrbar/bootstrap-table-addrbar.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/auto-refresh/bootstrap-table-auto-refresh.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/auto-refresh/bootstrap-table-auto-refresh.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/auto-refresh/bootstrap-table-auto-refresh.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/auto-refresh/bootstrap-table-auto-refresh.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/auto-refresh/bootstrap-table-auto-refresh.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/auto-refresh/bootstrap-table-auto-refresh.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/auto-refresh/bootstrap-table-auto-refresh.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/auto-refresh/bootstrap-table-auto-refresh.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/cell-input/bootstrap-table-cell-input.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/cell-input/bootstrap-table-cell-input.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/cell-input/bootstrap-table-cell-input.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/cell-input/bootstrap-table-cell-input.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/cell-input/bootstrap-table-cell-input.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/cell-input/bootstrap-table-cell-input.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/cell-input/bootstrap-table-cell-input.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/cell-input/bootstrap-table-cell-input.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/cell-input/bootstrap-table-cell-input.min.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/cell-input/bootstrap-table-cell-input.min.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/cell-input/bootstrap-table-cell-input.min.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/cell-input/bootstrap-table-cell-input.min.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/cell-input/bootstrap-table-cell-input.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/cell-input/bootstrap-table-cell-input.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/cell-input/bootstrap-table-cell-input.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/cell-input/bootstrap-table-cell-input.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/cookie/bootstrap-table-cookie.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/cookie/bootstrap-table-cookie.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/cookie/bootstrap-table-cookie.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/cookie/bootstrap-table-cookie.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/cookie/bootstrap-table-cookie.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/cookie/bootstrap-table-cookie.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/cookie/bootstrap-table-cookie.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/cookie/bootstrap-table-cookie.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/copy-rows/bootstrap-table-copy-rows.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/copy-rows/bootstrap-table-copy-rows.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/copy-rows/bootstrap-table-copy-rows.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/copy-rows/bootstrap-table-copy-rows.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/copy-rows/bootstrap-table-copy-rows.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/copy-rows/bootstrap-table-copy-rows.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/copy-rows/bootstrap-table-copy-rows.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/copy-rows/bootstrap-table-copy-rows.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/defer-url/bootstrap-table-defer-url.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/defer-url/bootstrap-table-defer-url.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/defer-url/bootstrap-table-defer-url.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/defer-url/bootstrap-table-defer-url.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/defer-url/bootstrap-table-defer-url.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/defer-url/bootstrap-table-defer-url.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/defer-url/bootstrap-table-defer-url.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/defer-url/bootstrap-table-defer-url.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/editable/bootstrap-table-editable.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/editable/bootstrap-table-editable.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/editable/bootstrap-table-editable.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/editable/bootstrap-table-editable.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/editable/bootstrap-table-editable.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/editable/bootstrap-table-editable.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/editable/bootstrap-table-editable.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/editable/bootstrap-table-editable.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/export/bootstrap-table-export.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/export/bootstrap-table-export.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/export/bootstrap-table-export.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/export/bootstrap-table-export.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/export/bootstrap-table-export.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/export/bootstrap-table-export.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/export/bootstrap-table-export.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/export/bootstrap-table-export.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/filter-control/bootstrap-table-filter-control.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/filter-control/bootstrap-table-filter-control.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/filter-control/bootstrap-table-filter-control.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/filter-control/bootstrap-table-filter-control.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/filter-control/bootstrap-table-filter-control.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/filter-control/bootstrap-table-filter-control.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/filter-control/bootstrap-table-filter-control.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/filter-control/bootstrap-table-filter-control.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/filter-control/bootstrap-table-filter-control.min.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/filter-control/bootstrap-table-filter-control.min.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/filter-control/bootstrap-table-filter-control.min.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/filter-control/bootstrap-table-filter-control.min.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/filter-control/bootstrap-table-filter-control.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/filter-control/bootstrap-table-filter-control.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/filter-control/bootstrap-table-filter-control.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/filter-control/bootstrap-table-filter-control.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/fixed-columns/bootstrap-table-fixed-columns.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/fixed-columns/bootstrap-table-fixed-columns.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/fixed-columns/bootstrap-table-fixed-columns.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/fixed-columns/bootstrap-table-fixed-columns.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/fixed-columns/bootstrap-table-fixed-columns.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/fixed-columns/bootstrap-table-fixed-columns.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/fixed-columns/bootstrap-table-fixed-columns.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/fixed-columns/bootstrap-table-fixed-columns.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/fixed-columns/bootstrap-table-fixed-columns.min.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/fixed-columns/bootstrap-table-fixed-columns.min.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/fixed-columns/bootstrap-table-fixed-columns.min.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/fixed-columns/bootstrap-table-fixed-columns.min.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/fixed-columns/bootstrap-table-fixed-columns.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/fixed-columns/bootstrap-table-fixed-columns.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/fixed-columns/bootstrap-table-fixed-columns.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/fixed-columns/bootstrap-table-fixed-columns.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/group-by-v2/bootstrap-table-group-by.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/group-by-v2/bootstrap-table-group-by.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/group-by-v2/bootstrap-table-group-by.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/group-by-v2/bootstrap-table-group-by.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/group-by-v2/bootstrap-table-group-by.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/group-by-v2/bootstrap-table-group-by.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/group-by-v2/bootstrap-table-group-by.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/group-by-v2/bootstrap-table-group-by.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/group-by-v2/bootstrap-table-group-by.min.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/group-by-v2/bootstrap-table-group-by.min.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/group-by-v2/bootstrap-table-group-by.min.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/group-by-v2/bootstrap-table-group-by.min.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/group-by-v2/bootstrap-table-group-by.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/group-by-v2/bootstrap-table-group-by.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/group-by-v2/bootstrap-table-group-by.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/group-by-v2/bootstrap-table-group-by.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/i18n-enhance/bootstrap-table-i18n-enhance.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/i18n-enhance/bootstrap-table-i18n-enhance.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/i18n-enhance/bootstrap-table-i18n-enhance.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/i18n-enhance/bootstrap-table-i18n-enhance.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/i18n-enhance/bootstrap-table-i18n-enhance.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/i18n-enhance/bootstrap-table-i18n-enhance.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/i18n-enhance/bootstrap-table-i18n-enhance.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/i18n-enhance/bootstrap-table-i18n-enhance.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/key-events/bootstrap-table-key-events.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/key-events/bootstrap-table-key-events.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/key-events/bootstrap-table-key-events.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/key-events/bootstrap-table-key-events.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/key-events/bootstrap-table-key-events.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/key-events/bootstrap-table-key-events.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/key-events/bootstrap-table-key-events.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/key-events/bootstrap-table-key-events.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/mobile/bootstrap-table-mobile.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/mobile/bootstrap-table-mobile.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/mobile/bootstrap-table-mobile.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/mobile/bootstrap-table-mobile.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/mobile/bootstrap-table-mobile.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/mobile/bootstrap-table-mobile.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/mobile/bootstrap-table-mobile.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/mobile/bootstrap-table-mobile.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/multiple-sort/bootstrap-table-multiple-sort.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/multiple-sort/bootstrap-table-multiple-sort.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/multiple-sort/bootstrap-table-multiple-sort.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/multiple-sort/bootstrap-table-multiple-sort.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/multiple-sort/bootstrap-table-multiple-sort.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/multiple-sort/bootstrap-table-multiple-sort.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/multiple-sort/bootstrap-table-multiple-sort.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/multiple-sort/bootstrap-table-multiple-sort.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/page-jump-to/bootstrap-table-page-jump-to.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/page-jump-to/bootstrap-table-page-jump-to.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/page-jump-to/bootstrap-table-page-jump-to.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/page-jump-to/bootstrap-table-page-jump-to.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/page-jump-to/bootstrap-table-page-jump-to.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/page-jump-to/bootstrap-table-page-jump-to.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/page-jump-to/bootstrap-table-page-jump-to.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/page-jump-to/bootstrap-table-page-jump-to.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/page-jump-to/bootstrap-table-page-jump-to.min.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/page-jump-to/bootstrap-table-page-jump-to.min.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/page-jump-to/bootstrap-table-page-jump-to.min.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/page-jump-to/bootstrap-table-page-jump-to.min.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/page-jump-to/bootstrap-table-page-jump-to.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/page-jump-to/bootstrap-table-page-jump-to.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/page-jump-to/bootstrap-table-page-jump-to.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/page-jump-to/bootstrap-table-page-jump-to.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/pipeline/bootstrap-table-pipeline.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/pipeline/bootstrap-table-pipeline.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/pipeline/bootstrap-table-pipeline.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/pipeline/bootstrap-table-pipeline.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/pipeline/bootstrap-table-pipeline.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/pipeline/bootstrap-table-pipeline.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/pipeline/bootstrap-table-pipeline.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/pipeline/bootstrap-table-pipeline.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/print/bootstrap-table-print.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/print/bootstrap-table-print.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/print/bootstrap-table-print.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/print/bootstrap-table-print.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/print/bootstrap-table-print.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/print/bootstrap-table-print.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/print/bootstrap-table-print.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/print/bootstrap-table-print.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/reorder-columns/bootstrap-table-reorder-columns.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/reorder-columns/bootstrap-table-reorder-columns.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/reorder-columns/bootstrap-table-reorder-columns.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/reorder-columns/bootstrap-table-reorder-columns.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/reorder-columns/bootstrap-table-reorder-columns.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/reorder-columns/bootstrap-table-reorder-columns.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/reorder-columns/bootstrap-table-reorder-columns.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/reorder-columns/bootstrap-table-reorder-columns.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/reorder-rows/bootstrap-table-reorder-rows.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/reorder-rows/bootstrap-table-reorder-rows.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/reorder-rows/bootstrap-table-reorder-rows.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/reorder-rows/bootstrap-table-reorder-rows.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/reorder-rows/bootstrap-table-reorder-rows.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/reorder-rows/bootstrap-table-reorder-rows.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/reorder-rows/bootstrap-table-reorder-rows.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/reorder-rows/bootstrap-table-reorder-rows.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/reorder-rows/bootstrap-table-reorder-rows.min.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/reorder-rows/bootstrap-table-reorder-rows.min.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/reorder-rows/bootstrap-table-reorder-rows.min.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/reorder-rows/bootstrap-table-reorder-rows.min.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/reorder-rows/bootstrap-table-reorder-rows.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/reorder-rows/bootstrap-table-reorder-rows.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/reorder-rows/bootstrap-table-reorder-rows.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/reorder-rows/bootstrap-table-reorder-rows.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/resizable/bootstrap-table-resizable.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/resizable/bootstrap-table-resizable.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/resizable/bootstrap-table-resizable.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/resizable/bootstrap-table-resizable.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/resizable/bootstrap-table-resizable.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/resizable/bootstrap-table-resizable.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/resizable/bootstrap-table-resizable.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/resizable/bootstrap-table-resizable.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/sticky-header/bootstrap-table-sticky-header.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/sticky-header/bootstrap-table-sticky-header.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/sticky-header/bootstrap-table-sticky-header.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/sticky-header/bootstrap-table-sticky-header.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/sticky-header/bootstrap-table-sticky-header.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/sticky-header/bootstrap-table-sticky-header.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/sticky-header/bootstrap-table-sticky-header.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/sticky-header/bootstrap-table-sticky-header.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/sticky-header/bootstrap-table-sticky-header.min.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/sticky-header/bootstrap-table-sticky-header.min.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/sticky-header/bootstrap-table-sticky-header.min.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/sticky-header/bootstrap-table-sticky-header.min.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/sticky-header/bootstrap-table-sticky-header.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/sticky-header/bootstrap-table-sticky-header.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/sticky-header/bootstrap-table-sticky-header.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/sticky-header/bootstrap-table-sticky-header.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/toolbar/bootstrap-table-toolbar.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/toolbar/bootstrap-table-toolbar.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/toolbar/bootstrap-table-toolbar.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/toolbar/bootstrap-table-toolbar.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/toolbar/bootstrap-table-toolbar.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/toolbar/bootstrap-table-toolbar.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/toolbar/bootstrap-table-toolbar.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/toolbar/bootstrap-table-toolbar.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/treegrid/bootstrap-table-treegrid.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/treegrid/bootstrap-table-treegrid.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/treegrid/bootstrap-table-treegrid.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/treegrid/bootstrap-table-treegrid.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/treegrid/bootstrap-table-treegrid.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/treegrid/bootstrap-table-treegrid.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/extensions/treegrid/bootstrap-table-treegrid.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/extensions/treegrid/bootstrap-table-treegrid.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-af-ZA.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-af-ZA.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-af-ZA.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-af-ZA.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-af-ZA.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-af-ZA.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-af-ZA.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-af-ZA.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-ar-SA.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-ar-SA.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-ar-SA.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-ar-SA.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-ar-SA.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-ar-SA.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-ar-SA.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-ar-SA.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-ca-ES.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-ca-ES.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-ca-ES.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-ca-ES.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-ca-ES.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-ca-ES.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-ca-ES.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-ca-ES.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-cs-CZ.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-cs-CZ.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-cs-CZ.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-cs-CZ.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-cs-CZ.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-cs-CZ.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-cs-CZ.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-cs-CZ.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-da-DK.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-da-DK.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-da-DK.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-da-DK.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-da-DK.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-da-DK.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-da-DK.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-da-DK.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-de-DE.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-de-DE.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-de-DE.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-de-DE.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-de-DE.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-de-DE.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-de-DE.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-de-DE.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-el-GR.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-el-GR.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-el-GR.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-el-GR.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-el-GR.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-el-GR.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-el-GR.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-el-GR.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-en-US.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-en-US.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-en-US.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-en-US.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-en-US.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-en-US.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-en-US.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-en-US.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-es-AR.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-es-AR.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-es-AR.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-es-AR.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-es-AR.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-es-AR.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-es-AR.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-es-AR.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-es-CL.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-es-CL.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-es-CL.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-es-CL.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-es-CL.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-es-CL.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-es-CL.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-es-CL.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-es-CR.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-es-CR.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-es-CR.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-es-CR.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-es-CR.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-es-CR.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-es-CR.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-es-CR.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-es-ES.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-es-ES.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-es-ES.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-es-ES.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-es-ES.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-es-ES.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-es-ES.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-es-ES.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-es-MX.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-es-MX.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-es-MX.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-es-MX.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-es-MX.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-es-MX.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-es-MX.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-es-MX.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-es-NI.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-es-NI.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-es-NI.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-es-NI.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-es-NI.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-es-NI.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-es-NI.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-es-NI.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-es-SP.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-es-SP.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-es-SP.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-es-SP.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-es-SP.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-es-SP.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-es-SP.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-es-SP.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-et-EE.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-et-EE.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-et-EE.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-et-EE.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-et-EE.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-et-EE.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-et-EE.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-et-EE.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-eu-EU.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-eu-EU.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-eu-EU.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-eu-EU.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-eu-EU.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-eu-EU.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-eu-EU.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-eu-EU.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-fa-IR.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-fa-IR.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-fa-IR.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-fa-IR.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-fa-IR.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-fa-IR.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-fa-IR.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-fa-IR.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-fi-FI.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-fi-FI.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-fi-FI.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-fi-FI.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-fi-FI.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-fi-FI.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-fi-FI.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-fi-FI.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-fr-BE.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-fr-BE.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-fr-BE.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-fr-BE.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-fr-BE.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-fr-BE.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-fr-BE.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-fr-BE.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-fr-CH.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-fr-CH.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-fr-CH.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-fr-CH.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-fr-CH.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-fr-CH.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-fr-CH.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-fr-CH.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-fr-FR.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-fr-FR.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-fr-FR.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-fr-FR.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-fr-FR.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-fr-FR.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-fr-FR.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-fr-FR.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-fr-LU.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-fr-LU.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-fr-LU.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-fr-LU.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-fr-LU.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-fr-LU.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-fr-LU.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-fr-LU.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-he-IL.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-he-IL.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-he-IL.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-he-IL.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-he-IL.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-he-IL.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-he-IL.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-he-IL.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-hr-HR.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-hr-HR.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-hr-HR.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-hr-HR.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-hr-HR.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-hr-HR.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-hr-HR.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-hr-HR.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-hu-HU.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-hu-HU.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-hu-HU.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-hu-HU.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-hu-HU.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-hu-HU.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-hu-HU.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-hu-HU.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-id-ID.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-id-ID.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-id-ID.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-id-ID.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-id-ID.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-id-ID.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-id-ID.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-id-ID.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-it-IT.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-it-IT.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-it-IT.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-it-IT.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-it-IT.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-it-IT.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-it-IT.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-it-IT.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-ja-JP.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-ja-JP.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-ja-JP.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-ja-JP.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-ja-JP.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-ja-JP.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-ja-JP.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-ja-JP.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-ka-GE.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-ka-GE.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-ka-GE.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-ka-GE.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-ka-GE.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-ka-GE.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-ka-GE.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-ka-GE.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-ko-KR.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-ko-KR.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-ko-KR.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-ko-KR.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-ko-KR.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-ko-KR.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-ko-KR.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-ko-KR.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-ms-MY.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-ms-MY.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-ms-MY.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-ms-MY.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-ms-MY.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-ms-MY.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-ms-MY.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-ms-MY.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-nb-NO.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-nb-NO.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-nb-NO.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-nb-NO.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-nb-NO.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-nb-NO.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-nb-NO.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-nb-NO.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-nl-BE.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-nl-BE.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-nl-BE.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-nl-BE.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-nl-BE.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-nl-BE.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-nl-BE.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-nl-BE.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-nl-NL.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-nl-NL.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-nl-NL.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-nl-NL.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-nl-NL.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-nl-NL.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-nl-NL.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-nl-NL.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-pl-PL.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-pl-PL.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-pl-PL.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-pl-PL.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-pl-PL.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-pl-PL.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-pl-PL.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-pl-PL.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-pt-BR.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-pt-BR.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-pt-BR.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-pt-BR.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-pt-BR.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-pt-BR.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-pt-BR.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-pt-BR.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-pt-PT.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-pt-PT.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-pt-PT.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-pt-PT.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-pt-PT.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-pt-PT.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-pt-PT.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-pt-PT.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-ro-RO.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-ro-RO.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-ro-RO.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-ro-RO.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-ro-RO.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-ro-RO.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-ro-RO.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-ro-RO.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-ru-RU.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-ru-RU.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-ru-RU.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-ru-RU.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-ru-RU.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-ru-RU.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-ru-RU.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-ru-RU.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-sk-SK.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-sk-SK.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-sk-SK.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-sk-SK.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-sk-SK.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-sk-SK.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-sk-SK.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-sk-SK.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-sr-Cyrl-RS.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-sr-Cyrl-RS.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-sr-Cyrl-RS.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-sr-Cyrl-RS.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-sr-Cyrl-RS.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-sr-Cyrl-RS.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-sr-Cyrl-RS.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-sr-Cyrl-RS.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-sr-Latn-RS.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-sr-Latn-RS.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-sr-Latn-RS.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-sr-Latn-RS.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-sr-Latn-RS.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-sr-Latn-RS.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-sr-Latn-RS.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-sr-Latn-RS.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-sv-SE.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-sv-SE.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-sv-SE.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-sv-SE.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-sv-SE.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-sv-SE.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-sv-SE.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-sv-SE.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-th-TH.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-th-TH.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-th-TH.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-th-TH.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-th-TH.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-th-TH.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-th-TH.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-th-TH.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-tr-TR.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-tr-TR.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-tr-TR.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-tr-TR.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-tr-TR.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-tr-TR.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-tr-TR.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-tr-TR.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-uk-UA.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-uk-UA.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-uk-UA.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-uk-UA.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-uk-UA.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-uk-UA.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-uk-UA.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-uk-UA.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-ur-PK.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-ur-PK.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-ur-PK.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-ur-PK.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-ur-PK.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-ur-PK.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-ur-PK.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-ur-PK.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-uz-Latn-UZ.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-uz-Latn-UZ.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-uz-Latn-UZ.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-uz-Latn-UZ.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-uz-Latn-UZ.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-uz-Latn-UZ.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-uz-Latn-UZ.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-uz-Latn-UZ.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-vi-VN.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-vi-VN.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-vi-VN.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-vi-VN.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-vi-VN.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-vi-VN.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-vi-VN.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-vi-VN.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-zh-CN.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-zh-CN.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-zh-CN.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-zh-CN.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-zh-CN.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-zh-CN.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-zh-CN.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-zh-CN.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-zh-TW.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-zh-TW.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-zh-TW.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-zh-TW.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-zh-TW.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-zh-TW.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/locale/bootstrap-table-zh-TW.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/locale/bootstrap-table-zh-TW.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/themes/bulma/bootstrap-table-bulma.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/themes/bulma/bootstrap-table-bulma.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/themes/bulma/bootstrap-table-bulma.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/themes/bulma/bootstrap-table-bulma.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/themes/bulma/bootstrap-table-bulma.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/themes/bulma/bootstrap-table-bulma.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/themes/bulma/bootstrap-table-bulma.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/themes/bulma/bootstrap-table-bulma.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/themes/bulma/bootstrap-table-bulma.min.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/themes/bulma/bootstrap-table-bulma.min.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/themes/bulma/bootstrap-table-bulma.min.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/themes/bulma/bootstrap-table-bulma.min.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/themes/bulma/bootstrap-table-bulma.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/themes/bulma/bootstrap-table-bulma.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/themes/bulma/bootstrap-table-bulma.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/themes/bulma/bootstrap-table-bulma.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/themes/foundation/bootstrap-table-foundation.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/themes/foundation/bootstrap-table-foundation.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/themes/foundation/bootstrap-table-foundation.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/themes/foundation/bootstrap-table-foundation.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/themes/foundation/bootstrap-table-foundation.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/themes/foundation/bootstrap-table-foundation.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/themes/foundation/bootstrap-table-foundation.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/themes/foundation/bootstrap-table-foundation.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/themes/foundation/bootstrap-table-foundation.min.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/themes/foundation/bootstrap-table-foundation.min.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/themes/foundation/bootstrap-table-foundation.min.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/themes/foundation/bootstrap-table-foundation.min.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/themes/foundation/bootstrap-table-foundation.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/themes/foundation/bootstrap-table-foundation.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/themes/foundation/bootstrap-table-foundation.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/themes/foundation/bootstrap-table-foundation.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/themes/materialize/bootstrap-table-materialize.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/themes/materialize/bootstrap-table-materialize.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/themes/materialize/bootstrap-table-materialize.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/themes/materialize/bootstrap-table-materialize.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/themes/materialize/bootstrap-table-materialize.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/themes/materialize/bootstrap-table-materialize.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/themes/materialize/bootstrap-table-materialize.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/themes/materialize/bootstrap-table-materialize.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/themes/materialize/bootstrap-table-materialize.min.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/themes/materialize/bootstrap-table-materialize.min.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/themes/materialize/bootstrap-table-materialize.min.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/themes/materialize/bootstrap-table-materialize.min.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/themes/materialize/bootstrap-table-materialize.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/themes/materialize/bootstrap-table-materialize.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/themes/materialize/bootstrap-table-materialize.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/themes/materialize/bootstrap-table-materialize.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/themes/semantic/bootstrap-table-semantic.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/themes/semantic/bootstrap-table-semantic.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/themes/semantic/bootstrap-table-semantic.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/themes/semantic/bootstrap-table-semantic.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/themes/semantic/bootstrap-table-semantic.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/themes/semantic/bootstrap-table-semantic.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/themes/semantic/bootstrap-table-semantic.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/themes/semantic/bootstrap-table-semantic.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/themes/semantic/bootstrap-table-semantic.min.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/themes/semantic/bootstrap-table-semantic.min.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/themes/semantic/bootstrap-table-semantic.min.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/themes/semantic/bootstrap-table-semantic.min.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/themes/semantic/bootstrap-table-semantic.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/themes/semantic/bootstrap-table-semantic.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/bootstrap-table-v1.16.0/themes/semantic/bootstrap-table-semantic.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/bootstrap-table-v1.16.0/themes/semantic/bootstrap-table-semantic.min.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/LICENSE.md b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/LICENSE.md similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/LICENSE.md rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/LICENSE.md diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/README.md b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/README.md similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/README.md rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/README.md diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/ckeditor.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/ckeditor.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/ckeditor.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/ckeditor.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/ckeditor.js.map b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/ckeditor.js.map similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/ckeditor.js.map rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/ckeditor.js.map diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/af.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/af.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/af.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/af.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/ar.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/ar.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/ar.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/ar.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/ast.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/ast.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/ast.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/ast.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/az.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/az.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/az.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/az.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/bg.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/bg.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/bg.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/bg.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/ca.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/ca.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/ca.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/ca.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/cs.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/cs.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/cs.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/cs.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/da.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/da.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/da.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/da.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/de-ch.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/de-ch.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/de-ch.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/de-ch.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/de.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/de.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/de.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/de.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/el.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/el.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/el.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/el.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/en-au.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/en-au.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/en-au.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/en-au.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/en-gb.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/en-gb.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/en-gb.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/en-gb.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/en.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/en.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/en.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/en.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/eo.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/eo.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/eo.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/eo.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/es.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/es.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/es.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/es.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/et.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/et.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/et.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/et.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/eu.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/eu.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/eu.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/eu.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/fa.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/fa.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/fa.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/fa.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/fi.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/fi.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/fi.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/fi.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/fr.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/fr.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/fr.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/fr.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/gl.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/gl.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/gl.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/gl.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/gu.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/gu.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/gu.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/gu.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/he.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/he.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/he.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/he.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/hi.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/hi.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/hi.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/hi.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/hr.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/hr.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/hr.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/hr.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/hu.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/hu.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/hu.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/hu.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/id.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/id.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/id.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/id.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/it.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/it.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/it.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/it.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/ja.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/ja.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/ja.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/ja.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/km.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/km.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/km.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/km.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/kn.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/kn.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/kn.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/kn.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/ko.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/ko.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/ko.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/ko.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/ku.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/ku.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/ku.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/ku.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/lt.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/lt.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/lt.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/lt.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/lv.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/lv.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/lv.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/lv.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/nb.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/nb.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/nb.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/nb.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/ne.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/ne.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/ne.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/ne.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/nl.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/nl.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/nl.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/nl.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/no.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/no.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/no.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/no.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/oc.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/oc.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/oc.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/oc.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/pl.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/pl.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/pl.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/pl.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/pt-br.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/pt-br.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/pt-br.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/pt-br.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/pt.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/pt.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/pt.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/pt.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/ro.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/ro.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/ro.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/ro.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/ru.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/ru.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/ru.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/ru.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/si.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/si.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/si.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/si.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/sk.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/sk.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/sk.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/sk.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/sl.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/sl.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/sl.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/sl.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/sq.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/sq.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/sq.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/sq.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/sr-latn.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/sr-latn.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/sr-latn.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/sr-latn.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/sr.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/sr.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/sr.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/sr.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/sv.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/sv.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/sv.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/sv.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/th.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/th.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/th.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/th.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/tk.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/tk.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/tk.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/tk.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/tr.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/tr.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/tr.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/tr.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/tt.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/tt.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/tt.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/tt.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/ug.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/ug.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/ug.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/ug.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/uk.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/uk.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/uk.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/uk.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/vi.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/vi.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/vi.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/vi.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/zh.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/zh.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/build/translations/zh.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/build/translations/zh.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/package.json b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/package.json similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/package.json rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/package.json diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/sample/index.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/sample/index.html similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/sample/index.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/sample/index.html diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/sample/styles.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/sample/styles.css similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/sample/styles.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/sample/styles.css diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/src/ckeditor.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/src/ckeditor.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/src/ckeditor.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/src/ckeditor.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/ckeditor5/webpack.config.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/webpack.config.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/ckeditor5/webpack.config.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/ckeditor5/webpack.config.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/.gitignore b/maxkey-webs/maxkey-web-static/src/main/resources/static/datetimepicker-2.5.20/.gitignore similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/.gitignore rename to maxkey-webs/maxkey-web-static/src/main/resources/static/datetimepicker-2.5.20/.gitignore diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/.travis.yml b/maxkey-webs/maxkey-web-static/src/main/resources/static/datetimepicker-2.5.20/.travis.yml similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/.travis.yml rename to maxkey-webs/maxkey-web-static/src/main/resources/static/datetimepicker-2.5.20/.travis.yml diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/MIT-LICENSE.txt b/maxkey-webs/maxkey-web-static/src/main/resources/static/datetimepicker-2.5.20/MIT-LICENSE.txt similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/MIT-LICENSE.txt rename to maxkey-webs/maxkey-web-static/src/main/resources/static/datetimepicker-2.5.20/MIT-LICENSE.txt diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/README.md b/maxkey-webs/maxkey-web-static/src/main/resources/static/datetimepicker-2.5.20/README.md similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/README.md rename to maxkey-webs/maxkey-web-static/src/main/resources/static/datetimepicker-2.5.20/README.md diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/bower.json b/maxkey-webs/maxkey-web-static/src/main/resources/static/datetimepicker-2.5.20/bower.json similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/bower.json rename to maxkey-webs/maxkey-web-static/src/main/resources/static/datetimepicker-2.5.20/bower.json diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/build/jquery.datetimepicker.full.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/datetimepicker-2.5.20/build/jquery.datetimepicker.full.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/build/jquery.datetimepicker.full.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/datetimepicker-2.5.20/build/jquery.datetimepicker.full.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/build/jquery.datetimepicker.full.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/datetimepicker-2.5.20/build/jquery.datetimepicker.full.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/build/jquery.datetimepicker.full.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/datetimepicker-2.5.20/build/jquery.datetimepicker.full.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/build/jquery.datetimepicker.min.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/datetimepicker-2.5.20/build/jquery.datetimepicker.min.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/build/jquery.datetimepicker.min.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/datetimepicker-2.5.20/build/jquery.datetimepicker.min.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/build/jquery.datetimepicker.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/datetimepicker-2.5.20/build/jquery.datetimepicker.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/build/jquery.datetimepicker.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/datetimepicker-2.5.20/build/jquery.datetimepicker.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/datetimepicker.jquery.json b/maxkey-webs/maxkey-web-static/src/main/resources/static/datetimepicker-2.5.20/datetimepicker.jquery.json similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/datetimepicker.jquery.json rename to maxkey-webs/maxkey-web-static/src/main/resources/static/datetimepicker-2.5.20/datetimepicker.jquery.json diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/doc.tpl b/maxkey-webs/maxkey-web-static/src/main/resources/static/datetimepicker-2.5.20/doc.tpl similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/doc.tpl rename to maxkey-webs/maxkey-web-static/src/main/resources/static/datetimepicker-2.5.20/doc.tpl diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/index.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/datetimepicker-2.5.20/index.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/index.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/datetimepicker-2.5.20/index.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/jquery.datetimepicker.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/datetimepicker-2.5.20/jquery.datetimepicker.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/jquery.datetimepicker.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/datetimepicker-2.5.20/jquery.datetimepicker.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/jquery.datetimepicker.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/datetimepicker-2.5.20/jquery.datetimepicker.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/jquery.datetimepicker.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/datetimepicker-2.5.20/jquery.datetimepicker.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/karma.conf.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/datetimepicker-2.5.20/karma.conf.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/karma.conf.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/datetimepicker-2.5.20/karma.conf.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/package.json b/maxkey-webs/maxkey-web-static/src/main/resources/static/datetimepicker-2.5.20/package.json similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/package.json rename to maxkey-webs/maxkey-web-static/src/main/resources/static/datetimepicker-2.5.20/package.json diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/screen/1.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/datetimepicker-2.5.20/screen/1.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/screen/1.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/datetimepicker-2.5.20/screen/1.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/screen/2.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/datetimepicker-2.5.20/screen/2.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/screen/2.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/datetimepicker-2.5.20/screen/2.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/screen/3.1.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/datetimepicker-2.5.20/screen/3.1.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/screen/3.1.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/datetimepicker-2.5.20/screen/3.1.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/screen/3.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/datetimepicker-2.5.20/screen/3.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/screen/3.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/datetimepicker-2.5.20/screen/3.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/screen/4.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/datetimepicker-2.5.20/screen/4.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/screen/4.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/datetimepicker-2.5.20/screen/4.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/screen/5.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/datetimepicker-2.5.20/screen/5.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/screen/5.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/datetimepicker-2.5.20/screen/5.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/screen/6.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/datetimepicker-2.5.20/screen/6.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/datetimepicker-2.5.20/screen/6.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/datetimepicker-2.5.20/screen/6.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/encrypt/base64.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/encrypt/base64.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/encrypt/base64.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/encrypt/base64.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/encrypt/jquery.md5.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/encrypt/jquery.md5.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/encrypt/jquery.md5.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/encrypt/jquery.md5.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/encrypt/jsbn.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/encrypt/jsbn.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/encrypt/jsbn.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/encrypt/jsbn.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/encrypt/prng4.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/encrypt/prng4.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/encrypt/prng4.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/encrypt/prng4.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/encrypt/rng.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/encrypt/rng.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/encrypt/rng.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/encrypt/rng.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/encrypt/rsa.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/encrypt/rsa.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/encrypt/rsa.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/encrypt/rsa.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/HELP-US-OUT.txt b/maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/HELP-US-OUT.txt similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/HELP-US-OUT.txt rename to maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/HELP-US-OUT.txt diff --git a/maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/css/font-awesome.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/css/font-awesome.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/css/font-awesome.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/css/font-awesome.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/css/font-awesome.min.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/css/font-awesome.min.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/css/font-awesome.min.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/css/font-awesome.min.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/fonts/FontAwesome.otf b/maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/fonts/FontAwesome.otf similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/fonts/FontAwesome.otf rename to maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/fonts/FontAwesome.otf diff --git a/maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/fonts/fontawesome-webfont.eot b/maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/fonts/fontawesome-webfont.eot similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/fonts/fontawesome-webfont.eot rename to maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/fonts/fontawesome-webfont.eot diff --git a/maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/fonts/fontawesome-webfont.svg b/maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/fonts/fontawesome-webfont.svg similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/fonts/fontawesome-webfont.svg rename to maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/fonts/fontawesome-webfont.svg diff --git a/maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/fonts/fontawesome-webfont.ttf b/maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/fonts/fontawesome-webfont.ttf similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/fonts/fontawesome-webfont.ttf rename to maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/fonts/fontawesome-webfont.ttf diff --git a/maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/fonts/fontawesome-webfont.woff b/maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/fonts/fontawesome-webfont.woff similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/fonts/fontawesome-webfont.woff rename to maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/fonts/fontawesome-webfont.woff diff --git a/maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/fonts/fontawesome-webfont.woff2 b/maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/fonts/fontawesome-webfont.woff2 similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/fonts/fontawesome-webfont.woff2 rename to maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/fonts/fontawesome-webfont.woff2 diff --git a/maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/less/animated.less b/maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/less/animated.less similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/less/animated.less rename to maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/less/animated.less diff --git a/maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/less/bordered-pulled.less b/maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/less/bordered-pulled.less similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/less/bordered-pulled.less rename to maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/less/bordered-pulled.less diff --git a/maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/less/core.less b/maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/less/core.less similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/less/core.less rename to maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/less/core.less diff --git a/maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/less/fixed-width.less b/maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/less/fixed-width.less similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/less/fixed-width.less rename to maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/less/fixed-width.less diff --git a/maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/less/font-awesome.less b/maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/less/font-awesome.less similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/less/font-awesome.less rename to maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/less/font-awesome.less diff --git a/maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/less/icons.less b/maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/less/icons.less similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/less/icons.less rename to maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/less/icons.less diff --git a/maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/less/larger.less b/maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/less/larger.less similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/less/larger.less rename to maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/less/larger.less diff --git a/maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/less/list.less b/maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/less/list.less similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/less/list.less rename to maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/less/list.less diff --git a/maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/less/mixins.less b/maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/less/mixins.less similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/less/mixins.less rename to maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/less/mixins.less diff --git a/maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/less/path.less b/maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/less/path.less similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/less/path.less rename to maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/less/path.less diff --git a/maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/less/rotated-flipped.less b/maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/less/rotated-flipped.less similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/less/rotated-flipped.less rename to maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/less/rotated-flipped.less diff --git a/maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/less/screen-reader.less b/maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/less/screen-reader.less similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/less/screen-reader.less rename to maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/less/screen-reader.less diff --git a/maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/less/stacked.less b/maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/less/stacked.less similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/less/stacked.less rename to maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/less/stacked.less diff --git a/maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/less/variables.less b/maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/less/variables.less similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/less/variables.less rename to maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/less/variables.less diff --git a/maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/scss/_animated.scss b/maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/scss/_animated.scss similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/scss/_animated.scss rename to maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/scss/_animated.scss diff --git a/maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/scss/_bordered-pulled.scss b/maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/scss/_bordered-pulled.scss similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/scss/_bordered-pulled.scss rename to maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/scss/_bordered-pulled.scss diff --git a/maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/scss/_core.scss b/maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/scss/_core.scss similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/scss/_core.scss rename to maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/scss/_core.scss diff --git a/maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/scss/_fixed-width.scss b/maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/scss/_fixed-width.scss similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/scss/_fixed-width.scss rename to maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/scss/_fixed-width.scss diff --git a/maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/scss/_icons.scss b/maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/scss/_icons.scss similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/scss/_icons.scss rename to maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/scss/_icons.scss diff --git a/maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/scss/_larger.scss b/maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/scss/_larger.scss similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/scss/_larger.scss rename to maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/scss/_larger.scss diff --git a/maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/scss/_list.scss b/maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/scss/_list.scss similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/scss/_list.scss rename to maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/scss/_list.scss diff --git a/maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/scss/_mixins.scss b/maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/scss/_mixins.scss similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/scss/_mixins.scss rename to maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/scss/_mixins.scss diff --git a/maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/scss/_path.scss b/maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/scss/_path.scss similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/scss/_path.scss rename to maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/scss/_path.scss diff --git a/maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/scss/_rotated-flipped.scss b/maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/scss/_rotated-flipped.scss similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/scss/_rotated-flipped.scss rename to maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/scss/_rotated-flipped.scss diff --git a/maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/scss/_screen-reader.scss b/maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/scss/_screen-reader.scss similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/scss/_screen-reader.scss rename to maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/scss/_screen-reader.scss diff --git a/maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/scss/_stacked.scss b/maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/scss/_stacked.scss similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/scss/_stacked.scss rename to maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/scss/_stacked.scss diff --git a/maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/scss/_variables.scss b/maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/scss/_variables.scss similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/scss/_variables.scss rename to maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/scss/_variables.scss diff --git a/maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/scss/font-awesome.scss b/maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/scss/font-awesome.scss similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/font-awesome-4.7.0/scss/font-awesome.scss rename to maxkey-webs/maxkey-web-static/src/main/resources/static/font-awesome-4.7.0/scss/font-awesome.scss diff --git a/maxkey-web-mgt-static/src/main/resources/static/js/chart.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/javascript/chart.min.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/js/chart.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/javascript/chart.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/jquery-3.5.0.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/javascript/jquery-3.5.0.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/jquery-3.5.0.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/javascript/jquery-3.5.0.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/jquery-3.5.0.min.map b/maxkey-webs/maxkey-web-static/src/main/resources/static/javascript/jquery-3.5.0.min.map similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/jquery-3.5.0.min.map rename to maxkey-webs/maxkey-web-static/src/main/resources/static/javascript/jquery-3.5.0.min.map diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/jquery.blockUI.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/javascript/jquery.blockUI.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/jquery.blockUI.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/javascript/jquery.blockUI.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/jquery.cookie.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/javascript/jquery.cookie.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/jquery.cookie.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/javascript/jquery.cookie.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/jquery.form.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/javascript/jquery.form.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/jquery/jquery.form.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/javascript/jquery.form.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/jquery.metadata.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/javascript/jquery.metadata.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/jquery.metadata.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/javascript/jquery.metadata.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/jquery.rest.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/javascript/jquery.rest.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/jquery/jquery.rest.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/javascript/jquery.rest.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/jquery.serialize-object.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/javascript/jquery.serialize-object.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/jquery.serialize-object.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/javascript/jquery.serialize-object.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/jsonformatter.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/javascript/jsonformatter.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/jsonformatter.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/javascript/jsonformatter.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/locale/common.en.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/javascript/locale/common.en.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/locale/common.en.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/javascript/locale/common.en.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/locale/common.en_US.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/javascript/locale/common.en_US.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/locale/common.en_US.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/javascript/locale/common.en_US.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/locale/common.zh.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/javascript/locale/common.zh.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/locale/common.zh.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/javascript/locale/common.zh.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/platform.common.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/javascript/platform.common.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/jquery/platform.common.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/javascript/platform.common.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/popper.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/javascript/popper.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/popper.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/javascript/popper.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/popper.min.js.map b/maxkey-webs/maxkey-web-static/src/main/resources/static/javascript/popper.min.js.map similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/popper.min.js.map rename to maxkey-webs/maxkey-web-static/src/main/resources/static/javascript/popper.min.js.map diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/metisMenu-v3.0.6/cjs/index.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/metisMenu-v3.0.6/cjs/index.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/jquery/metisMenu-v3.0.6/cjs/index.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/metisMenu-v3.0.6/cjs/index.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/metisMenu-v3.0.6/css/mm-vertical.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/metisMenu-v3.0.6/css/mm-vertical.css similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/jquery/metisMenu-v3.0.6/css/mm-vertical.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/metisMenu-v3.0.6/css/mm-vertical.css diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/metisMenu-v3.0.6/metisMenu.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/metisMenu-v3.0.6/metisMenu.css similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/jquery/metisMenu-v3.0.6/metisMenu.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/metisMenu-v3.0.6/metisMenu.css diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/metisMenu-v3.0.6/metisMenu.css.map b/maxkey-webs/maxkey-web-static/src/main/resources/static/metisMenu-v3.0.6/metisMenu.css.map similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/jquery/metisMenu-v3.0.6/metisMenu.css.map rename to maxkey-webs/maxkey-web-static/src/main/resources/static/metisMenu-v3.0.6/metisMenu.css.map diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/metisMenu-v3.0.6/metisMenu.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/metisMenu-v3.0.6/metisMenu.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/jquery/metisMenu-v3.0.6/metisMenu.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/metisMenu-v3.0.6/metisMenu.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/metisMenu-v3.0.6/metisMenu.js.map b/maxkey-webs/maxkey-web-static/src/main/resources/static/metisMenu-v3.0.6/metisMenu.js.map similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/jquery/metisMenu-v3.0.6/metisMenu.js.map rename to maxkey-webs/maxkey-web-static/src/main/resources/static/metisMenu-v3.0.6/metisMenu.js.map diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/metisMenu-v3.0.6/metisMenu.min.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/metisMenu-v3.0.6/metisMenu.min.css similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/jquery/metisMenu-v3.0.6/metisMenu.min.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/metisMenu-v3.0.6/metisMenu.min.css diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/metisMenu-v3.0.6/metisMenu.min.css.map b/maxkey-webs/maxkey-web-static/src/main/resources/static/metisMenu-v3.0.6/metisMenu.min.css.map similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/jquery/metisMenu-v3.0.6/metisMenu.min.css.map rename to maxkey-webs/maxkey-web-static/src/main/resources/static/metisMenu-v3.0.6/metisMenu.min.css.map diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/metisMenu-v3.0.6/metisMenu.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/metisMenu-v3.0.6/metisMenu.min.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/jquery/metisMenu-v3.0.6/metisMenu.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/metisMenu-v3.0.6/metisMenu.min.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/metisMenu-v3.0.6/metisMenu.min.js.map b/maxkey-webs/maxkey-web-static/src/main/resources/static/metisMenu-v3.0.6/metisMenu.min.js.map similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/jquery/metisMenu-v3.0.6/metisMenu.min.js.map rename to maxkey-webs/maxkey-web-static/src/main/resources/static/metisMenu-v3.0.6/metisMenu.min.js.map diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/metisMenu-v3.0.6/modules/index.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/metisMenu-v3.0.6/modules/index.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/jquery/metisMenu-v3.0.6/modules/index.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/metisMenu-v3.0.6/modules/index.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/locale/multiple-select-en-US.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/locale/multiple-select-en-US.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/locale/multiple-select-en-US.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/locale/multiple-select-en-US.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/locale/multiple-select-en-US.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/locale/multiple-select-en-US.min.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/locale/multiple-select-en-US.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/locale/multiple-select-en-US.min.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/locale/multiple-select-en.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/locale/multiple-select-en.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/locale/multiple-select-en.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/locale/multiple-select-en.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/locale/multiple-select-es-ES.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/locale/multiple-select-es-ES.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/locale/multiple-select-es-ES.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/locale/multiple-select-es-ES.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/locale/multiple-select-es-ES.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/locale/multiple-select-es-ES.min.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/locale/multiple-select-es-ES.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/locale/multiple-select-es-ES.min.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/locale/multiple-select-it-IT.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/locale/multiple-select-it-IT.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/locale/multiple-select-it-IT.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/locale/multiple-select-it-IT.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/locale/multiple-select-it-IT.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/locale/multiple-select-it-IT.min.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/locale/multiple-select-it-IT.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/locale/multiple-select-it-IT.min.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/locale/multiple-select-zh-CN.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/locale/multiple-select-zh-CN.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/locale/multiple-select-zh-CN.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/locale/multiple-select-zh-CN.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/locale/multiple-select-zh-CN.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/locale/multiple-select-zh-CN.min.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/locale/multiple-select-zh-CN.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/locale/multiple-select-zh-CN.min.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/locale/multiple-select-zh-TW.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/locale/multiple-select-zh-TW.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/locale/multiple-select-zh-TW.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/locale/multiple-select-zh-TW.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/locale/multiple-select-zh-TW.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/locale/multiple-select-zh-TW.min.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/locale/multiple-select-zh-TW.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/locale/multiple-select-zh-TW.min.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/locale/multiple-select-zh.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/locale/multiple-select-zh.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/locale/multiple-select-zh.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/locale/multiple-select-zh.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/multiple-select-es.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/multiple-select-es.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/multiple-select-es.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/multiple-select-es.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/multiple-select-es.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/multiple-select-es.min.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/multiple-select-es.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/multiple-select-es.min.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/multiple-select-locale-all.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/multiple-select-locale-all.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/multiple-select-locale-all.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/multiple-select-locale-all.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/multiple-select-locale-all.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/multiple-select-locale-all.min.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/multiple-select-locale-all.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/multiple-select-locale-all.min.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/multiple-select-vue-es.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/multiple-select-vue-es.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/multiple-select-vue-es.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/multiple-select-vue-es.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/multiple-select-vue-es.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/multiple-select-vue-es.min.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/multiple-select-vue-es.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/multiple-select-vue-es.min.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/multiple-select-vue.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/multiple-select-vue.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/multiple-select-vue.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/multiple-select-vue.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/multiple-select-vue.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/multiple-select-vue.min.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/multiple-select-vue.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/multiple-select-vue.min.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/multiple-select.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/multiple-select.css similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/multiple-select.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/multiple-select.css diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/multiple-select.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/multiple-select.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/multiple-select.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/multiple-select.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/multiple-select.min.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/multiple-select.min.css similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/multiple-select.min.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/multiple-select.min.css diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/multiple-select.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/multiple-select.min.js similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/multiple-select.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/multiple-select.min.js diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/themes/bootstrap.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/themes/bootstrap.css similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/themes/bootstrap.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/themes/bootstrap.css diff --git a/maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/themes/bootstrap.min.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/themes/bootstrap.min.css similarity index 100% rename from maxkey-web-mgt-static/src/main/resources/static/jquery/multiple-select-1.5.2/themes/bootstrap.min.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/multiple-select-1.5.2/themes/bootstrap.min.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/passwordStrength/demo.htm b/maxkey-webs/maxkey-web-static/src/main/resources/static/passwordStrength/demo.htm similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/passwordStrength/demo.htm rename to maxkey-webs/maxkey-web-static/src/main/resources/static/passwordStrength/demo.htm diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/passwordStrength/images/progressfiveimg.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/passwordStrength/images/progressfiveimg.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/passwordStrength/images/progressfiveimg.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/passwordStrength/images/progressfiveimg.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/passwordStrength/images/progresstenimg.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/passwordStrength/images/progresstenimg.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/passwordStrength/images/progresstenimg.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/passwordStrength/images/progresstenimg.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/passwordStrength/images/progresstree.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/passwordStrength/images/progresstree.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/passwordStrength/images/progresstree.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/passwordStrength/images/progresstree.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/passwordStrength/passwordStrength.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/passwordStrength/passwordStrength.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/passwordStrength/passwordStrength.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/passwordStrength/passwordStrength.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/passwordStrength/passwordStrength.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/passwordStrength/passwordStrength.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/passwordStrength/passwordStrength.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/passwordStrength/passwordStrength.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/selecter-3.2.3/README.md b/maxkey-webs/maxkey-web-static/src/main/resources/static/selecter-3.2.3/README.md similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/selecter-3.2.3/README.md rename to maxkey-webs/maxkey-web-static/src/main/resources/static/selecter-3.2.3/README.md diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/selecter-3.2.3/fs-selecter-arrow.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/selecter-3.2.3/fs-selecter-arrow.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/selecter-3.2.3/fs-selecter-arrow.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/selecter-3.2.3/fs-selecter-arrow.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/selecter-3.2.3/jquery.fs.selecter.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/selecter-3.2.3/jquery.fs.selecter.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/selecter-3.2.3/jquery.fs.selecter.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/selecter-3.2.3/jquery.fs.selecter.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/selecter-3.2.3/jquery.fs.selecter.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/selecter-3.2.3/jquery.fs.selecter.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/selecter-3.2.3/jquery.fs.selecter.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/selecter-3.2.3/jquery.fs.selecter.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/selecter-3.2.3/jquery.fs.selecter.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/selecter-3.2.3/jquery.fs.selecter.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/selecter-3.2.3/jquery.fs.selecter.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/selecter-3.2.3/jquery.fs.selecter.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/selecter-3.2.3/new 4.txt b/maxkey-webs/maxkey-web-static/src/main/resources/static/selecter-3.2.3/new 4.txt similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/selecter-3.2.3/new 4.txt rename to maxkey-webs/maxkey-web-static/src/main/resources/static/selecter-3.2.3/new 4.txt diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/selecter-3.2.3/selecter .htm b/maxkey-webs/maxkey-web-static/src/main/resources/static/selecter-3.2.3/selecter .htm similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/selecter-3.2.3/selecter .htm rename to maxkey-webs/maxkey-web-static/src/main/resources/static/selecter-3.2.3/selecter .htm diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/selecter-3.2.3/selecter-all.htm b/maxkey-webs/maxkey-web-static/src/main/resources/static/selecter-3.2.3/selecter-all.htm similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/selecter-3.2.3/selecter-all.htm rename to maxkey-webs/maxkey-web-static/src/main/resources/static/selecter-3.2.3/selecter-all.htm diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/.gitattributes b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/.gitattributes similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/.gitattributes rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/.gitattributes diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/.gitignore b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/.gitignore similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/.gitignore rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/.gitignore diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/README.md b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/README.md similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/README.md rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/README.md diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/API_cn.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/API_cn.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/API_cn.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/API_cn.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/API_en.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/API_en.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/API_en.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/API_en.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/api.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/apiCss/api.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/api.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/apiCss/api.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/common.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/apiCss/common.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/common.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/apiCss/common.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/common_ie6.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/apiCss/common_ie6.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/common_ie6.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/apiCss/common_ie6.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/img/apiMenu.gif b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/apiCss/img/apiMenu.gif similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/img/apiMenu.gif rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/apiCss/img/apiMenu.gif diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/img/apiMenu.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/apiCss/img/apiMenu.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/img/apiMenu.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/apiCss/img/apiMenu.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/img/background.jpg b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/apiCss/img/background.jpg similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/img/background.jpg rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/apiCss/img/background.jpg diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/img/chinese.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/apiCss/img/chinese.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/img/chinese.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/apiCss/img/chinese.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/img/close.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/apiCss/img/close.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/img/close.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/apiCss/img/close.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/img/contact-bg.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/apiCss/img/contact-bg.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/img/contact-bg.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/apiCss/img/contact-bg.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/img/english.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/apiCss/img/english.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/img/english.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/apiCss/img/english.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/img/header-bg.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/apiCss/img/header-bg.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/img/header-bg.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/apiCss/img/header-bg.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/img/lightbulb.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/apiCss/img/lightbulb.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/img/lightbulb.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/apiCss/img/lightbulb.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/img/overlay_arrow.gif b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/apiCss/img/overlay_arrow.gif similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/img/overlay_arrow.gif rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/apiCss/img/overlay_arrow.gif diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/img/overlay_arrow.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/apiCss/img/overlay_arrow.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/img/overlay_arrow.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/apiCss/img/overlay_arrow.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/img/overlay_bg.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/apiCss/img/overlay_bg.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/img/overlay_bg.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/apiCss/img/overlay_bg.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/img/overlay_close_IE6.gif b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/apiCss/img/overlay_close_IE6.gif similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/img/overlay_close_IE6.gif rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/apiCss/img/overlay_close_IE6.gif diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/img/zTreeStandard.gif b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/apiCss/img/zTreeStandard.gif similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/img/zTreeStandard.gif rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/apiCss/img/zTreeStandard.gif diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/img/zTreeStandard.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/apiCss/img/zTreeStandard.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/img/zTreeStandard.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/apiCss/img/zTreeStandard.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/jquery-1.6.2.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/apiCss/jquery-1.6.2.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/jquery-1.6.2.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/apiCss/jquery-1.6.2.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/jquery.ztree.core.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/apiCss/jquery.ztree.core.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/jquery.ztree.core.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/apiCss/jquery.ztree.core.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/zTreeStyleForApi.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/apiCss/zTreeStyleForApi.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/apiCss/zTreeStyleForApi.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/apiCss/zTreeStyleForApi.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/fn.zTree._z.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/fn.zTree._z.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/fn.zTree._z.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/fn.zTree._z.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/fn.zTree.destroy.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/fn.zTree.destroy.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/fn.zTree.destroy.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/fn.zTree.destroy.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/fn.zTree.getZTreeObj.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/fn.zTree.getZTreeObj.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/fn.zTree.getZTreeObj.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/fn.zTree.getZTreeObj.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/fn.zTree.init.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/fn.zTree.init.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/fn.zTree.init.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/fn.zTree.init.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.autoParam.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.async.autoParam.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.autoParam.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.async.autoParam.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.contentType.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.async.contentType.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.contentType.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.async.contentType.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.dataFilter.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.async.dataFilter.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.dataFilter.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.async.dataFilter.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.dataType.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.async.dataType.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.dataType.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.async.dataType.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.enable.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.async.enable.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.enable.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.async.enable.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.headers.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.async.headers.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.headers.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.async.headers.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.otherParam.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.async.otherParam.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.otherParam.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.async.otherParam.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.type.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.async.type.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.type.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.async.type.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.url.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.async.url.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.url.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.async.url.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.xhrFields.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.async.xhrFields.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.async.xhrFields.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.async.xhrFields.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeAsync.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.beforeAsync.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeAsync.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.beforeAsync.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeCheck.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.beforeCheck.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeCheck.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.beforeCheck.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeClick.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.beforeClick.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeClick.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.beforeClick.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeCollapse.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.beforeCollapse.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeCollapse.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.beforeCollapse.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeDblClick.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.beforeDblClick.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeDblClick.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.beforeDblClick.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeDrag.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.beforeDrag.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeDrag.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.beforeDrag.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeDragOpen.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.beforeDragOpen.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeDragOpen.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.beforeDragOpen.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeDrop.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.beforeDrop.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeDrop.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.beforeDrop.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeEditName.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.beforeEditName.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeEditName.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.beforeEditName.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeExpand.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.beforeExpand.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeExpand.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.beforeExpand.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeMouseDown.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.beforeMouseDown.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeMouseDown.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.beforeMouseDown.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeMouseUp.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.beforeMouseUp.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeMouseUp.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.beforeMouseUp.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeRemove.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.beforeRemove.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeRemove.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.beforeRemove.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeRename.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.beforeRename.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeRename.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.beforeRename.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeRightClick.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.beforeRightClick.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.beforeRightClick.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.beforeRightClick.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onAsyncError.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.onAsyncError.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onAsyncError.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.onAsyncError.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onAsyncSuccess.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.onAsyncSuccess.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onAsyncSuccess.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.onAsyncSuccess.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onCheck.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.onCheck.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onCheck.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.onCheck.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onClick.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.onClick.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onClick.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.onClick.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onCollapse.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.onCollapse.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onCollapse.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.onCollapse.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onDblClick.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.onDblClick.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onDblClick.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.onDblClick.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onDrag.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.onDrag.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onDrag.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.onDrag.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onDragMove.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.onDragMove.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onDragMove.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.onDragMove.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onDrop.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.onDrop.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onDrop.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.onDrop.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onExpand.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.onExpand.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onExpand.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.onExpand.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onMouseDown.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.onMouseDown.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onMouseDown.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.onMouseDown.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onMouseUp.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.onMouseUp.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onMouseUp.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.onMouseUp.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onNodeCreated.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.onNodeCreated.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onNodeCreated.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.onNodeCreated.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onRemove.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.onRemove.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onRemove.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.onRemove.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onRename.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.onRename.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onRename.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.onRename.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onRightClick.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.onRightClick.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.callback.onRightClick.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.callback.onRightClick.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.check.autoCheckTrigger.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.check.autoCheckTrigger.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.check.autoCheckTrigger.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.check.autoCheckTrigger.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.check.chkDisabledInherit.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.check.chkDisabledInherit.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.check.chkDisabledInherit.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.check.chkDisabledInherit.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.check.chkStyle.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.check.chkStyle.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.check.chkStyle.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.check.chkStyle.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.check.chkboxType.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.check.chkboxType.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.check.chkboxType.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.check.chkboxType.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.check.enable.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.check.enable.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.check.enable.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.check.enable.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.check.nocheckInherit.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.check.nocheckInherit.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.check.nocheckInherit.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.check.nocheckInherit.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.check.radioType.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.check.radioType.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.check.radioType.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.check.radioType.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.keep.leaf.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.data.keep.leaf.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.keep.leaf.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.data.keep.leaf.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.keep.parent.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.data.keep.parent.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.keep.parent.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.data.keep.parent.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.key.checked.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.data.key.checked.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.key.checked.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.data.key.checked.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.key.children.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.data.key.children.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.key.children.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.data.key.children.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.key.isHidden.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.data.key.isHidden.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.key.isHidden.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.data.key.isHidden.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.key.isParent.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.data.key.isParent.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.key.isParent.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.data.key.isParent.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.key.name.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.data.key.name.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.key.name.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.data.key.name.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.key.title.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.data.key.title.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.key.title.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.data.key.title.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.key.url.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.data.key.url.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.key.url.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.data.key.url.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.simpleData.enable.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.data.simpleData.enable.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.simpleData.enable.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.data.simpleData.enable.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.simpleData.idKey.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.data.simpleData.idKey.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.simpleData.idKey.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.data.simpleData.idKey.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.simpleData.pIdKey.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.data.simpleData.pIdKey.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.simpleData.pIdKey.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.data.simpleData.pIdKey.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.simpleData.rootPId.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.data.simpleData.rootPId.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.data.simpleData.rootPId.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.data.simpleData.rootPId.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.autoExpandTrigger.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.edit.drag.autoExpandTrigger.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.autoExpandTrigger.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.edit.drag.autoExpandTrigger.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.autoOpenTime.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.edit.drag.autoOpenTime.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.autoOpenTime.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.edit.drag.autoOpenTime.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.borderMax.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.edit.drag.borderMax.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.borderMax.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.edit.drag.borderMax.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.borderMin.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.edit.drag.borderMin.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.borderMin.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.edit.drag.borderMin.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.inner.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.edit.drag.inner.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.inner.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.edit.drag.inner.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.isCopy.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.edit.drag.isCopy.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.isCopy.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.edit.drag.isCopy.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.isMove.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.edit.drag.isMove.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.isMove.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.edit.drag.isMove.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.maxShowNodeNum.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.edit.drag.maxShowNodeNum.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.maxShowNodeNum.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.edit.drag.maxShowNodeNum.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.minMoveSize.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.edit.drag.minMoveSize.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.minMoveSize.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.edit.drag.minMoveSize.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.next.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.edit.drag.next.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.next.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.edit.drag.next.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.prev.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.edit.drag.prev.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.drag.prev.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.edit.drag.prev.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.editNameSelectAll.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.edit.editNameSelectAll.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.editNameSelectAll.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.edit.editNameSelectAll.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.enable.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.edit.enable.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.enable.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.edit.enable.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.removeTitle.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.edit.removeTitle.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.removeTitle.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.edit.removeTitle.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.renameTitle.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.edit.renameTitle.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.renameTitle.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.edit.renameTitle.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.showRemoveBtn.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.edit.showRemoveBtn.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.showRemoveBtn.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.edit.showRemoveBtn.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.showRenameBtn.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.edit.showRenameBtn.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.edit.showRenameBtn.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.edit.showRenameBtn.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.treeId.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.treeId.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.treeId.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.treeId.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.treeObj.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.treeObj.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.treeObj.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.treeObj.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.addDiyDom.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.view.addDiyDom.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.addDiyDom.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.view.addDiyDom.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.addHoverDom.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.view.addHoverDom.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.addHoverDom.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.view.addHoverDom.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.autoCancelSelected.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.view.autoCancelSelected.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.autoCancelSelected.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.view.autoCancelSelected.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.dblClickExpand.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.view.dblClickExpand.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.dblClickExpand.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.view.dblClickExpand.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.expandSpeed.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.view.expandSpeed.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.expandSpeed.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.view.expandSpeed.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.fontCss.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.view.fontCss.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.fontCss.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.view.fontCss.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.nameIsHTML.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.view.nameIsHTML.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.nameIsHTML.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.view.nameIsHTML.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.removeHoverDom.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.view.removeHoverDom.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.removeHoverDom.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.view.removeHoverDom.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.selectedMulti.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.view.selectedMulti.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.selectedMulti.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.view.selectedMulti.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.showIcon.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.view.showIcon.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.showIcon.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.view.showIcon.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.showLine.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.view.showLine.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.showLine.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.view.showLine.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.showTitle.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.view.showTitle.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.showTitle.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.view.showTitle.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.txtSelectedEnable.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.view.txtSelectedEnable.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/setting.view.txtSelectedEnable.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/setting.view.txtSelectedEnable.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.check_Child_State.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.check_Child_State.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.check_Child_State.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.check_Child_State.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.check_Focus.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.check_Focus.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.check_Focus.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.check_Focus.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.checked.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.checked.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.checked.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.checked.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.checkedOld.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.checkedOld.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.checkedOld.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.checkedOld.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.children.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.children.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.children.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.children.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.chkDisabled.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.chkDisabled.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.chkDisabled.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.chkDisabled.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.click.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.click.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.click.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.click.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.diy.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.diy.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.diy.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.diy.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.editNameFlag.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.editNameFlag.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.editNameFlag.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.editNameFlag.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.getCheckStatus.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.getCheckStatus.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.getCheckStatus.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.getCheckStatus.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.getIndex.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.getIndex.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.getIndex.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.getIndex.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.getNextNode.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.getNextNode.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.getNextNode.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.getNextNode.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.getParentNode.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.getParentNode.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.getParentNode.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.getParentNode.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.getPath.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.getPath.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.getPath.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.getPath.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.getPreNode.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.getPreNode.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.getPreNode.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.getPreNode.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.halfCheck.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.halfCheck.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.halfCheck.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.halfCheck.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.icon.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.icon.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.icon.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.icon.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.iconClose.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.iconClose.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.iconClose.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.iconClose.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.iconOpen.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.iconOpen.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.iconOpen.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.iconOpen.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.iconSkin.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.iconSkin.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.iconSkin.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.iconSkin.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.isAjaxing.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.isAjaxing.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.isAjaxing.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.isAjaxing.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.isFirstNode.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.isFirstNode.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.isFirstNode.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.isFirstNode.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.isHidden.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.isHidden.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.isHidden.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.isHidden.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.isHover.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.isHover.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.isHover.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.isHover.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.isLastNode.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.isLastNode.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.isLastNode.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.isLastNode.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.isParent.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.isParent.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.isParent.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.isParent.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.level.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.level.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.level.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.level.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.name.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.name.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.name.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.name.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.nocheck.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.nocheck.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.nocheck.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.nocheck.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.open.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.open.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.open.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.open.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.parentTId.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.parentTId.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.parentTId.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.parentTId.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.tId.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.tId.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.tId.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.tId.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.target.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.target.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.target.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.target.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.url.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.url.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.url.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.url.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.zAsync.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.zAsync.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/treeNode.zAsync.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/treeNode.zAsync.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.addNodes.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.addNodes.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.addNodes.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.addNodes.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.cancelEditName.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.cancelEditName.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.cancelEditName.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.cancelEditName.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.cancelSelectedNode.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.cancelSelectedNode.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.cancelSelectedNode.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.cancelSelectedNode.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.checkAllNodes.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.checkAllNodes.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.checkAllNodes.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.checkAllNodes.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.checkNode.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.checkNode.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.checkNode.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.checkNode.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.copyNode.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.copyNode.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.copyNode.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.copyNode.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.destroy.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.destroy.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.destroy.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.destroy.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.editName.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.editName.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.editName.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.editName.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.expandAll.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.expandAll.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.expandAll.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.expandAll.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.expandNode.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.expandNode.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.expandNode.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.expandNode.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getChangeCheckedNodes.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.getChangeCheckedNodes.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getChangeCheckedNodes.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.getChangeCheckedNodes.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getCheckedNodes.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.getCheckedNodes.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getCheckedNodes.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.getCheckedNodes.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getNodeByParam.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.getNodeByParam.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getNodeByParam.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.getNodeByParam.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getNodeByTId.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.getNodeByTId.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getNodeByTId.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.getNodeByTId.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getNodeIndex.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.getNodeIndex.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getNodeIndex.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.getNodeIndex.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getNodes.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.getNodes.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getNodes.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.getNodes.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getNodesByFilter.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.getNodesByFilter.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getNodesByFilter.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.getNodesByFilter.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getNodesByParam.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.getNodesByParam.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getNodesByParam.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.getNodesByParam.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getNodesByParamFuzzy.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.getNodesByParamFuzzy.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getNodesByParamFuzzy.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.getNodesByParamFuzzy.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getSelectedNodes.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.getSelectedNodes.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.getSelectedNodes.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.getSelectedNodes.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.hideNode.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.hideNode.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.hideNode.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.hideNode.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.hideNodes.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.hideNodes.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.hideNodes.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.hideNodes.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.moveNode.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.moveNode.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.moveNode.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.moveNode.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.reAsyncChildNodes.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.reAsyncChildNodes.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.reAsyncChildNodes.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.reAsyncChildNodes.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.reAsyncChildNodesPromise.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.reAsyncChildNodesPromise.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.reAsyncChildNodesPromise.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.reAsyncChildNodesPromise.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.refresh.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.refresh.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.refresh.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.refresh.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.removeChildNodes.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.removeChildNodes.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.removeChildNodes.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.removeChildNodes.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.removeNode.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.removeNode.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.removeNode.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.removeNode.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.selectNode.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.selectNode.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.selectNode.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.selectNode.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.setChkDisabled.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.setChkDisabled.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.setChkDisabled.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.setChkDisabled.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.setEditable.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.setEditable.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.setEditable.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.setEditable.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.setting.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.setting.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.setting.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.setting.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.showNode.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.showNode.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.showNode.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.showNode.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.showNodes.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.showNodes.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.showNodes.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.showNodes.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.transformToArray.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.transformToArray.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.transformToArray.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.transformToArray.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.transformTozTreeNodes.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.transformTozTreeNodes.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.transformTozTreeNodes.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.transformTozTreeNodes.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.updateNode.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.updateNode.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/cn/zTreeObj.updateNode.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/cn/zTreeObj.updateNode.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/fn.zTree._z.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/fn.zTree._z.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/fn.zTree._z.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/fn.zTree._z.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/fn.zTree.destroy.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/fn.zTree.destroy.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/fn.zTree.destroy.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/fn.zTree.destroy.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/fn.zTree.getZTreeObj.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/fn.zTree.getZTreeObj.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/fn.zTree.getZTreeObj.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/fn.zTree.getZTreeObj.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/fn.zTree.init.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/fn.zTree.init.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/fn.zTree.init.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/fn.zTree.init.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.autoParam.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.async.autoParam.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.autoParam.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.async.autoParam.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.contentType.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.async.contentType.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.contentType.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.async.contentType.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.dataFilter.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.async.dataFilter.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.dataFilter.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.async.dataFilter.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.dataType.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.async.dataType.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.dataType.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.async.dataType.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.enable.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.async.enable.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.enable.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.async.enable.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.headers.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.async.headers.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.headers.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.async.headers.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.otherParam.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.async.otherParam.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.otherParam.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.async.otherParam.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.type.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.async.type.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.type.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.async.type.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.url.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.async.url.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.url.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.async.url.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.xhrFields.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.async.xhrFields.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.async.xhrFields.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.async.xhrFields.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeAsync.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.beforeAsync.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeAsync.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.beforeAsync.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeCheck.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.beforeCheck.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeCheck.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.beforeCheck.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeClick.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.beforeClick.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeClick.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.beforeClick.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeCollapse.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.beforeCollapse.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeCollapse.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.beforeCollapse.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeDblClick.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.beforeDblClick.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeDblClick.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.beforeDblClick.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeDrag.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.beforeDrag.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeDrag.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.beforeDrag.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeDragOpen.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.beforeDragOpen.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeDragOpen.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.beforeDragOpen.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeDrop.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.beforeDrop.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeDrop.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.beforeDrop.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeEditName.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.beforeEditName.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeEditName.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.beforeEditName.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeExpand.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.beforeExpand.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeExpand.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.beforeExpand.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeMouseDown.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.beforeMouseDown.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeMouseDown.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.beforeMouseDown.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeMouseUp.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.beforeMouseUp.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeMouseUp.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.beforeMouseUp.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeRemove.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.beforeRemove.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeRemove.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.beforeRemove.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeRename.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.beforeRename.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeRename.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.beforeRename.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeRightClick.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.beforeRightClick.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.beforeRightClick.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.beforeRightClick.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onAsyncError.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.onAsyncError.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onAsyncError.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.onAsyncError.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onAsyncSuccess.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.onAsyncSuccess.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onAsyncSuccess.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.onAsyncSuccess.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onCheck.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.onCheck.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onCheck.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.onCheck.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onClick.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.onClick.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onClick.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.onClick.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onCollapse.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.onCollapse.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onCollapse.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.onCollapse.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onDblClick.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.onDblClick.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onDblClick.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.onDblClick.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onDrag.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.onDrag.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onDrag.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.onDrag.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onDragMove.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.onDragMove.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onDragMove.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.onDragMove.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onDrop.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.onDrop.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onDrop.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.onDrop.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onExpand.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.onExpand.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onExpand.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.onExpand.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onMouseDown.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.onMouseDown.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onMouseDown.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.onMouseDown.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onMouseUp.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.onMouseUp.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onMouseUp.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.onMouseUp.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onNodeCreated.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.onNodeCreated.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onNodeCreated.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.onNodeCreated.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onRemove.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.onRemove.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onRemove.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.onRemove.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onRename.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.onRename.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onRename.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.onRename.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onRightClick.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.onRightClick.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.callback.onRightClick.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.callback.onRightClick.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.check.autoCheckTrigger.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.check.autoCheckTrigger.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.check.autoCheckTrigger.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.check.autoCheckTrigger.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.check.chkDisabledInherit.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.check.chkDisabledInherit.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.check.chkDisabledInherit.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.check.chkDisabledInherit.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.check.chkStyle.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.check.chkStyle.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.check.chkStyle.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.check.chkStyle.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.check.chkboxType.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.check.chkboxType.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.check.chkboxType.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.check.chkboxType.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.check.enable.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.check.enable.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.check.enable.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.check.enable.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.check.nocheckInherit.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.check.nocheckInherit.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.check.nocheckInherit.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.check.nocheckInherit.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.check.radioType.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.check.radioType.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.check.radioType.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.check.radioType.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.keep.leaf.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.data.keep.leaf.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.keep.leaf.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.data.keep.leaf.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.keep.parent.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.data.keep.parent.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.keep.parent.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.data.keep.parent.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.key.checked.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.data.key.checked.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.key.checked.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.data.key.checked.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.key.children.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.data.key.children.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.key.children.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.data.key.children.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.key.isHidden.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.data.key.isHidden.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.key.isHidden.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.data.key.isHidden.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.key.isParent.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.data.key.isParent.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.key.isParent.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.data.key.isParent.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.key.name.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.data.key.name.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.key.name.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.data.key.name.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.key.title.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.data.key.title.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.key.title.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.data.key.title.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.key.url.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.data.key.url.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.key.url.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.data.key.url.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.simpleData.enable.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.data.simpleData.enable.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.simpleData.enable.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.data.simpleData.enable.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.simpleData.idKey.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.data.simpleData.idKey.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.simpleData.idKey.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.data.simpleData.idKey.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.simpleData.pIdKey.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.data.simpleData.pIdKey.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.simpleData.pIdKey.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.data.simpleData.pIdKey.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.simpleData.rootPId.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.data.simpleData.rootPId.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.data.simpleData.rootPId.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.data.simpleData.rootPId.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.autoExpandTrigger.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.edit.drag.autoExpandTrigger.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.autoExpandTrigger.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.edit.drag.autoExpandTrigger.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.autoOpenTime.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.edit.drag.autoOpenTime.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.autoOpenTime.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.edit.drag.autoOpenTime.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.borderMax.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.edit.drag.borderMax.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.borderMax.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.edit.drag.borderMax.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.borderMin.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.edit.drag.borderMin.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.borderMin.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.edit.drag.borderMin.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.inner.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.edit.drag.inner.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.inner.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.edit.drag.inner.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.isCopy.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.edit.drag.isCopy.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.isCopy.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.edit.drag.isCopy.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.isMove.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.edit.drag.isMove.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.isMove.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.edit.drag.isMove.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.maxShowNodeNum.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.edit.drag.maxShowNodeNum.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.maxShowNodeNum.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.edit.drag.maxShowNodeNum.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.minMoveSize.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.edit.drag.minMoveSize.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.minMoveSize.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.edit.drag.minMoveSize.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.next.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.edit.drag.next.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.next.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.edit.drag.next.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.prev.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.edit.drag.prev.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.drag.prev.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.edit.drag.prev.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.editNameSelectAll.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.edit.editNameSelectAll.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.editNameSelectAll.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.edit.editNameSelectAll.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.enable.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.edit.enable.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.enable.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.edit.enable.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.removeTitle.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.edit.removeTitle.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.removeTitle.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.edit.removeTitle.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.renameTitle.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.edit.renameTitle.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.renameTitle.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.edit.renameTitle.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.showRemoveBtn.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.edit.showRemoveBtn.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.showRemoveBtn.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.edit.showRemoveBtn.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.showRenameBtn.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.edit.showRenameBtn.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.edit.showRenameBtn.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.edit.showRenameBtn.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.treeId.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.treeId.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.treeId.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.treeId.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.treeObj.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.treeObj.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.treeObj.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.treeObj.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.addDiyDom.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.view.addDiyDom.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.addDiyDom.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.view.addDiyDom.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.addHoverDom.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.view.addHoverDom.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.addHoverDom.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.view.addHoverDom.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.autoCancelSelected.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.view.autoCancelSelected.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.autoCancelSelected.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.view.autoCancelSelected.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.dblClickExpand.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.view.dblClickExpand.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.dblClickExpand.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.view.dblClickExpand.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.expandSpeed.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.view.expandSpeed.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.expandSpeed.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.view.expandSpeed.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.fontCss.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.view.fontCss.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.fontCss.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.view.fontCss.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.nameIsHTML.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.view.nameIsHTML.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.nameIsHTML.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.view.nameIsHTML.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.removeHoverDom.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.view.removeHoverDom.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.removeHoverDom.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.view.removeHoverDom.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.selectedMulti.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.view.selectedMulti.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.selectedMulti.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.view.selectedMulti.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.showIcon.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.view.showIcon.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.showIcon.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.view.showIcon.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.showLine.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.view.showLine.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.showLine.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.view.showLine.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.showTitle.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.view.showTitle.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.showTitle.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.view.showTitle.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.txtSelectedEnable.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.view.txtSelectedEnable.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/setting.view.txtSelectedEnable.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/setting.view.txtSelectedEnable.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.check_Child_State.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.check_Child_State.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.check_Child_State.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.check_Child_State.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.check_Focus.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.check_Focus.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.check_Focus.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.check_Focus.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.checked.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.checked.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.checked.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.checked.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.checkedOld.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.checkedOld.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.checkedOld.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.checkedOld.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.children.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.children.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.children.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.children.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.chkDisabled.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.chkDisabled.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.chkDisabled.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.chkDisabled.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.click.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.click.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.click.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.click.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.diy.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.diy.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.diy.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.diy.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.editNameFlag.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.editNameFlag.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.editNameFlag.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.editNameFlag.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.getCheckStatus.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.getCheckStatus.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.getCheckStatus.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.getCheckStatus.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.getIndex.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.getIndex.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.getIndex.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.getIndex.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.getNextNode.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.getNextNode.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.getNextNode.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.getNextNode.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.getParentNode.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.getParentNode.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.getParentNode.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.getParentNode.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.getPath.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.getPath.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.getPath.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.getPath.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.getPreNode.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.getPreNode.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.getPreNode.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.getPreNode.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.halfCheck.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.halfCheck.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.halfCheck.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.halfCheck.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.icon.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.icon.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.icon.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.icon.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.iconClose.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.iconClose.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.iconClose.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.iconClose.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.iconOpen.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.iconOpen.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.iconOpen.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.iconOpen.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.iconSkin.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.iconSkin.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.iconSkin.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.iconSkin.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.isAjaxing.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.isAjaxing.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.isAjaxing.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.isAjaxing.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.isFirstNode.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.isFirstNode.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.isFirstNode.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.isFirstNode.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.isHidden.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.isHidden.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.isHidden.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.isHidden.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.isHover.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.isHover.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.isHover.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.isHover.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.isLastNode.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.isLastNode.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.isLastNode.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.isLastNode.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.isParent.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.isParent.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.isParent.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.isParent.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.level.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.level.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.level.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.level.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.name.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.name.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.name.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.name.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.nocheck.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.nocheck.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.nocheck.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.nocheck.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.open.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.open.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.open.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.open.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.parentTId.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.parentTId.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.parentTId.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.parentTId.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.tId.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.tId.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.tId.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.tId.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.target.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.target.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.target.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.target.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.url.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.url.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.url.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.url.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.zAsync.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.zAsync.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/treeNode.zAsync.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/treeNode.zAsync.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.addNodes.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.addNodes.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.addNodes.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.addNodes.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.cancelEditName.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.cancelEditName.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.cancelEditName.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.cancelEditName.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.cancelSelectedNode.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.cancelSelectedNode.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.cancelSelectedNode.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.cancelSelectedNode.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.checkAllNodes.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.checkAllNodes.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.checkAllNodes.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.checkAllNodes.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.checkNode.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.checkNode.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.checkNode.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.checkNode.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.copyNode.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.copyNode.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.copyNode.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.copyNode.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.destroy.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.destroy.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.destroy.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.destroy.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.editName.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.editName.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.editName.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.editName.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.expandAll.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.expandAll.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.expandAll.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.expandAll.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.expandNode.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.expandNode.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.expandNode.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.expandNode.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getChangeCheckedNodes.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.getChangeCheckedNodes.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getChangeCheckedNodes.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.getChangeCheckedNodes.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getCheckedNodes.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.getCheckedNodes.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getCheckedNodes.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.getCheckedNodes.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getNodeByParam.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.getNodeByParam.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getNodeByParam.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.getNodeByParam.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getNodeByTId.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.getNodeByTId.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getNodeByTId.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.getNodeByTId.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getNodeIndex.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.getNodeIndex.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getNodeIndex.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.getNodeIndex.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getNodes.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.getNodes.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getNodes.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.getNodes.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getNodesByFilter.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.getNodesByFilter.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getNodesByFilter.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.getNodesByFilter.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getNodesByParam.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.getNodesByParam.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getNodesByParam.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.getNodesByParam.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getNodesByParamFuzzy.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.getNodesByParamFuzzy.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getNodesByParamFuzzy.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.getNodesByParamFuzzy.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getSelectedNodes.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.getSelectedNodes.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.getSelectedNodes.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.getSelectedNodes.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.hideNode.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.hideNode.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.hideNode.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.hideNode.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.hideNodes.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.hideNodes.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.hideNodes.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.hideNodes.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.moveNode.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.moveNode.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.moveNode.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.moveNode.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.reAsyncChildNodes.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.reAsyncChildNodes.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.reAsyncChildNodes.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.reAsyncChildNodes.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.reAsyncChildNodesPromise.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.reAsyncChildNodesPromise.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.reAsyncChildNodesPromise.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.reAsyncChildNodesPromise.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.refresh.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.refresh.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.refresh.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.refresh.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.removeChildNodes.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.removeChildNodes.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.removeChildNodes.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.removeChildNodes.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.removeNode.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.removeNode.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.removeNode.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.removeNode.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.selectNode.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.selectNode.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.selectNode.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.selectNode.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.setChkDisabled.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.setChkDisabled.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.setChkDisabled.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.setChkDisabled.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.setEditable.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.setEditable.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.setEditable.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.setEditable.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.setting.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.setting.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.setting.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.setting.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.showNode.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.showNode.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.showNode.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.showNode.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.showNodes.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.showNodes.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.showNodes.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.showNodes.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.transformToArray.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.transformToArray.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.transformToArray.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.transformToArray.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.transformTozTreeNodes.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.transformTozTreeNodes.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.transformTozTreeNodes.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.transformTozTreeNodes.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.updateNode.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.updateNode.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/api/en/zTreeObj.updateNode.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/api/en/zTreeObj.updateNode.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/awesomeStyle/awesome.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/awesomeStyle/awesome.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/awesomeStyle/awesome.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/awesomeStyle/awesome.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/awesomeStyle/awesome.less b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/awesomeStyle/awesome.less similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/awesomeStyle/awesome.less rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/awesomeStyle/awesome.less diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/awesomeStyle/fa.less b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/awesomeStyle/fa.less similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/awesomeStyle/fa.less rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/awesomeStyle/fa.less diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/awesomeStyle/img/loading.gif b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/awesomeStyle/img/loading.gif similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/awesomeStyle/img/loading.gif rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/awesomeStyle/img/loading.gif diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/demo.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/demo.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/demo.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/demo.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/metroStyle/img/line_conn.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/metroStyle/img/line_conn.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/metroStyle/img/line_conn.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/metroStyle/img/line_conn.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/metroStyle/img/loading.gif b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/metroStyle/img/loading.gif similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/metroStyle/img/loading.gif rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/metroStyle/img/loading.gif diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/metroStyle/img/metro.gif b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/metroStyle/img/metro.gif similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/metroStyle/img/metro.gif rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/metroStyle/img/metro.gif diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/metroStyle/img/metro.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/metroStyle/img/metro.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/metroStyle/img/metro.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/metroStyle/img/metro.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/metroStyle/metroStyle.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/metroStyle/metroStyle.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/metroStyle/metroStyle.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/metroStyle/metroStyle.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/1_close.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/zTreeStyle/img/diy/1_close.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/1_close.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/zTreeStyle/img/diy/1_close.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/1_open.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/zTreeStyle/img/diy/1_open.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/1_open.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/zTreeStyle/img/diy/1_open.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/2.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/zTreeStyle/img/diy/2.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/2.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/zTreeStyle/img/diy/2.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/3.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/zTreeStyle/img/diy/3.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/3.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/zTreeStyle/img/diy/3.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/4.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/zTreeStyle/img/diy/4.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/4.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/zTreeStyle/img/diy/4.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/5.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/zTreeStyle/img/diy/5.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/5.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/zTreeStyle/img/diy/5.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/6.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/zTreeStyle/img/diy/6.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/6.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/zTreeStyle/img/diy/6.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/7.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/zTreeStyle/img/diy/7.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/7.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/zTreeStyle/img/diy/7.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/8.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/zTreeStyle/img/diy/8.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/8.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/zTreeStyle/img/diy/8.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/9.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/zTreeStyle/img/diy/9.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/diy/9.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/zTreeStyle/img/diy/9.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/line_conn.gif b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/zTreeStyle/img/line_conn.gif similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/line_conn.gif rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/zTreeStyle/img/line_conn.gif diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/loading.gif b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/zTreeStyle/img/loading.gif similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/loading.gif rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/zTreeStyle/img/loading.gif diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/zTreeStandard.gif b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/zTreeStyle/img/zTreeStandard.gif similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/zTreeStandard.gif rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/zTreeStyle/img/zTreeStandard.gif diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/zTreeStandard.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/zTreeStyle/img/zTreeStandard.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/img/zTreeStandard.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/zTreeStyle/img/zTreeStandard.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/zTreeStyle.css b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/zTreeStyle/zTreeStyle.css similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/css/zTreeStyle/zTreeStyle.css rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/css/zTreeStyle/zTreeStyle.css diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/asyncData/getNodes.php b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/asyncData/getNodes.php similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/asyncData/getNodes.php rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/asyncData/getNodes.php diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/asyncData/getNodesForBigData.php b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/asyncData/getNodesForBigData.php similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/asyncData/getNodesForBigData.php rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/asyncData/getNodesForBigData.php diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/bigdata/common.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/bigdata/common.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/bigdata/common.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/bigdata/common.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/bigdata/diy_async.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/bigdata/diy_async.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/bigdata/diy_async.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/bigdata/diy_async.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/bigdata/page.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/bigdata/page.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/bigdata/page.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/bigdata/page.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/async.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/core/async.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/async.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/core/async.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/async_fun.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/core/async_fun.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/async_fun.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/core/async_fun.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/click.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/core/click.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/click.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/core/click.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/custom_font.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/core/custom_font.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/custom_font.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/core/custom_font.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/custom_icon.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/core/custom_icon.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/custom_icon.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/core/custom_icon.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/custom_iconSkin.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/core/custom_iconSkin.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/custom_iconSkin.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/core/custom_iconSkin.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/expand.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/core/expand.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/expand.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/core/expand.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/noicon.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/core/noicon.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/noicon.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/core/noicon.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/noline.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/core/noline.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/noline.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/core/noline.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/otherMouse.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/core/otherMouse.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/otherMouse.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/core/otherMouse.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/searchNodes.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/core/searchNodes.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/searchNodes.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/core/searchNodes.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/simpleData.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/core/simpleData.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/simpleData.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/core/simpleData.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/standardData.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/core/standardData.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/standardData.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/core/standardData.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/update_fun.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/core/update_fun.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/update_fun.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/core/update_fun.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/url.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/core/url.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/core/url.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/core/url.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/checkbox.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/excheck/checkbox.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/checkbox.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/excheck/checkbox.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/checkbox_chkDisabled.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/excheck/checkbox_chkDisabled.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/checkbox_chkDisabled.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/excheck/checkbox_chkDisabled.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/checkbox_count.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/excheck/checkbox_count.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/checkbox_count.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/excheck/checkbox_count.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/checkbox_fun.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/excheck/checkbox_fun.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/checkbox_fun.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/excheck/checkbox_fun.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/checkbox_halfCheck.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/excheck/checkbox_halfCheck.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/checkbox_halfCheck.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/excheck/checkbox_halfCheck.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/checkbox_nocheck.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/excheck/checkbox_nocheck.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/checkbox_nocheck.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/excheck/checkbox_nocheck.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/radio.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/excheck/radio.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/radio.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/excheck/radio.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/radio_chkDisabled.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/excheck/radio_chkDisabled.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/radio_chkDisabled.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/excheck/radio_chkDisabled.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/radio_fun.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/excheck/radio_fun.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/radio_fun.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/excheck/radio_fun.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/radio_halfCheck.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/excheck/radio_halfCheck.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/radio_halfCheck.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/excheck/radio_halfCheck.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/radio_nocheck.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/excheck/radio_nocheck.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/excheck/radio_nocheck.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/excheck/radio_nocheck.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exedit/async_edit.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/exedit/async_edit.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exedit/async_edit.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/exedit/async_edit.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exedit/drag.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/exedit/drag.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exedit/drag.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/exedit/drag.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exedit/drag_fun.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/exedit/drag_fun.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exedit/drag_fun.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/exedit/drag_fun.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exedit/drag_super.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/exedit/drag_super.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exedit/drag_super.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/exedit/drag_super.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exedit/edit.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/exedit/edit.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exedit/edit.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/exedit/edit.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exedit/edit_fun.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/exedit/edit_fun.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exedit/edit_fun.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/exedit/edit_fun.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exedit/edit_super.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/exedit/edit_super.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exedit/edit_super.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/exedit/edit_super.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exedit/multiTree.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/exedit/multiTree.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exedit/multiTree.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/exedit/multiTree.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exhide/checkbox.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/exhide/checkbox.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exhide/checkbox.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/exhide/checkbox.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exhide/common.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/exhide/common.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exhide/common.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/exhide/common.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exhide/radio.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/exhide/radio.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/exhide/radio.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/exhide/radio.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/index.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/index.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/index.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/index.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/asyncForAll.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/super/asyncForAll.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/asyncForAll.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/super/asyncForAll.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/awesome.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/super/awesome.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/awesome.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/super/awesome.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/checkbox_radio.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/super/checkbox_radio.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/checkbox_radio.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/super/checkbox_radio.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/diydom.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/super/diydom.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/diydom.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/super/diydom.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/dragWithOther.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/super/dragWithOther.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/dragWithOther.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/super/dragWithOther.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/fuzzySearch.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/super/fuzzySearch.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/fuzzySearch.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/super/fuzzySearch.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/left_menu.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/super/left_menu.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/left_menu.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/super/left_menu.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/left_menuForOutLook.gif b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/super/left_menuForOutLook.gif similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/left_menuForOutLook.gif rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/super/left_menuForOutLook.gif diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/left_menuForOutLook.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/super/left_menuForOutLook.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/left_menuForOutLook.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/super/left_menuForOutLook.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/left_menuForOutLook.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/super/left_menuForOutLook.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/left_menuForOutLook.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/super/left_menuForOutLook.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/metro.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/super/metro.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/metro.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/super/metro.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/oneclick.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/super/oneclick.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/oneclick.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/super/oneclick.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/oneroot.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/super/oneroot.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/oneroot.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/super/oneroot.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/rightClickMenu.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/super/rightClickMenu.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/rightClickMenu.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/super/rightClickMenu.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/select_menu.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/super/select_menu.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/select_menu.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/super/select_menu.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/select_menu_checkbox.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/super/select_menu_checkbox.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/select_menu_checkbox.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/super/select_menu_checkbox.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/select_menu_radio.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/super/select_menu_radio.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/select_menu_radio.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/super/select_menu_radio.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/singlepath.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/super/singlepath.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/cn/super/singlepath.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/cn/super/singlepath.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/asyncData/getNodes.php b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/asyncData/getNodes.php similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/asyncData/getNodes.php rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/asyncData/getNodes.php diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/asyncData/getNodesForBigData.php b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/asyncData/getNodesForBigData.php similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/asyncData/getNodesForBigData.php rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/asyncData/getNodesForBigData.php diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/bigdata/common.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/bigdata/common.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/bigdata/common.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/bigdata/common.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/bigdata/diy_async.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/bigdata/diy_async.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/bigdata/diy_async.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/bigdata/diy_async.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/bigdata/page.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/bigdata/page.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/bigdata/page.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/bigdata/page.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/async.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/core/async.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/async.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/core/async.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/async_fun.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/core/async_fun.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/async_fun.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/core/async_fun.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/click.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/core/click.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/click.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/core/click.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/custom_font.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/core/custom_font.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/custom_font.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/core/custom_font.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/custom_icon.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/core/custom_icon.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/custom_icon.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/core/custom_icon.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/custom_iconSkin.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/core/custom_iconSkin.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/custom_iconSkin.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/core/custom_iconSkin.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/expand.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/core/expand.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/expand.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/core/expand.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/noicon.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/core/noicon.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/noicon.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/core/noicon.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/noline.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/core/noline.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/noline.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/core/noline.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/otherMouse.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/core/otherMouse.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/otherMouse.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/core/otherMouse.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/searchNodes.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/core/searchNodes.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/searchNodes.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/core/searchNodes.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/simpleData.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/core/simpleData.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/simpleData.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/core/simpleData.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/standardData.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/core/standardData.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/standardData.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/core/standardData.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/update_fun.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/core/update_fun.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/update_fun.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/core/update_fun.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/url.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/core/url.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/core/url.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/core/url.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/checkbox.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/excheck/checkbox.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/checkbox.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/excheck/checkbox.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/checkbox_chkDisabled.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/excheck/checkbox_chkDisabled.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/checkbox_chkDisabled.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/excheck/checkbox_chkDisabled.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/checkbox_count.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/excheck/checkbox_count.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/checkbox_count.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/excheck/checkbox_count.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/checkbox_fun.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/excheck/checkbox_fun.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/checkbox_fun.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/excheck/checkbox_fun.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/checkbox_halfCheck.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/excheck/checkbox_halfCheck.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/checkbox_halfCheck.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/excheck/checkbox_halfCheck.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/checkbox_nocheck.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/excheck/checkbox_nocheck.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/checkbox_nocheck.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/excheck/checkbox_nocheck.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/radio.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/excheck/radio.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/radio.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/excheck/radio.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/radio_chkDisabled.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/excheck/radio_chkDisabled.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/radio_chkDisabled.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/excheck/radio_chkDisabled.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/radio_fun.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/excheck/radio_fun.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/radio_fun.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/excheck/radio_fun.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/radio_halfCheck.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/excheck/radio_halfCheck.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/radio_halfCheck.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/excheck/radio_halfCheck.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/radio_nocheck.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/excheck/radio_nocheck.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/excheck/radio_nocheck.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/excheck/radio_nocheck.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exedit/async_edit.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/exedit/async_edit.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exedit/async_edit.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/exedit/async_edit.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exedit/drag.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/exedit/drag.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exedit/drag.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/exedit/drag.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exedit/drag_fun.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/exedit/drag_fun.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exedit/drag_fun.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/exedit/drag_fun.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exedit/drag_super.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/exedit/drag_super.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exedit/drag_super.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/exedit/drag_super.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exedit/edit.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/exedit/edit.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exedit/edit.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/exedit/edit.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exedit/edit_fun.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/exedit/edit_fun.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exedit/edit_fun.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/exedit/edit_fun.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exedit/edit_super.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/exedit/edit_super.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exedit/edit_super.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/exedit/edit_super.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exedit/multiTree.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/exedit/multiTree.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exedit/multiTree.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/exedit/multiTree.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exhide/checkbox.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/exhide/checkbox.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exhide/checkbox.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/exhide/checkbox.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exhide/common.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/exhide/common.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exhide/common.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/exhide/common.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exhide/radio.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/exhide/radio.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/exhide/radio.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/exhide/radio.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/fuzzySearch/fuzzySearch.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/fuzzySearch/fuzzySearch.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/fuzzySearch/fuzzySearch.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/fuzzySearch/fuzzySearch.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/index.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/index.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/index.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/index.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/asyncForAll.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/super/asyncForAll.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/asyncForAll.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/super/asyncForAll.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/awesome.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/super/awesome.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/awesome.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/super/awesome.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/checkbox_radio.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/super/checkbox_radio.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/checkbox_radio.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/super/checkbox_radio.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/diydom.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/super/diydom.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/diydom.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/super/diydom.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/dragWithOther.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/super/dragWithOther.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/dragWithOther.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/super/dragWithOther.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/fuzzySearch.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/super/fuzzySearch.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/fuzzySearch.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/super/fuzzySearch.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/left_menu.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/super/left_menu.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/left_menu.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/super/left_menu.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/left_menuForOutLook.gif b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/super/left_menuForOutLook.gif similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/left_menuForOutLook.gif rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/super/left_menuForOutLook.gif diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/left_menuForOutLook.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/super/left_menuForOutLook.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/left_menuForOutLook.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/super/left_menuForOutLook.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/left_menuForOutLook.png b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/super/left_menuForOutLook.png similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/left_menuForOutLook.png rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/super/left_menuForOutLook.png diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/metro.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/super/metro.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/metro.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/super/metro.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/oneclick.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/super/oneclick.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/oneclick.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/super/oneclick.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/oneroot.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/super/oneroot.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/oneroot.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/super/oneroot.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/rightClickMenu.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/super/rightClickMenu.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/rightClickMenu.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/super/rightClickMenu.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/select_menu.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/super/select_menu.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/select_menu.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/super/select_menu.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/select_menu_checkbox.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/super/select_menu_checkbox.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/select_menu_checkbox.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/super/select_menu_checkbox.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/select_menu_radio.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/super/select_menu_radio.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/select_menu_radio.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/super/select_menu_radio.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/singlepath.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/super/singlepath.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/singlepath.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/super/singlepath.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/ztree.html b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/super/ztree.html similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/en/super/ztree.html rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/en/super/ztree.html diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/js/fuzzysearch.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/js/fuzzysearch.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/demo/js/fuzzysearch.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/demo/js/fuzzysearch.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/passwordStrength/jquery-1.4.4.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/js/jquery-1.4.4.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/passwordStrength/jquery-1.4.4.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/js/jquery-1.4.4.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/js/jquery.ztree.all.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/js/jquery.ztree.all.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/js/jquery.ztree.all.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/js/jquery.ztree.all.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/js/jquery.ztree.all.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/js/jquery.ztree.all.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/js/jquery.ztree.all.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/js/jquery.ztree.all.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/js/jquery.ztree.core.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/js/jquery.ztree.core.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/js/jquery.ztree.core.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/js/jquery.ztree.core.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/js/jquery.ztree.core.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/js/jquery.ztree.core.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/js/jquery.ztree.core.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/js/jquery.ztree.core.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/js/jquery.ztree.excheck.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/js/jquery.ztree.excheck.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/js/jquery.ztree.excheck.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/js/jquery.ztree.excheck.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/js/jquery.ztree.excheck.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/js/jquery.ztree.excheck.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/js/jquery.ztree.excheck.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/js/jquery.ztree.excheck.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/js/jquery.ztree.exedit.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/js/jquery.ztree.exedit.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/js/jquery.ztree.exedit.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/js/jquery.ztree.exedit.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/js/jquery.ztree.exedit.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/js/jquery.ztree.exedit.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/js/jquery.ztree.exedit.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/js/jquery.ztree.exedit.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/js/jquery.ztree.exhide.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/js/jquery.ztree.exhide.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/js/jquery.ztree.exhide.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/js/jquery.ztree.exhide.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/js/jquery.ztree.exhide.min.js b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/js/jquery.ztree.exhide.min.js similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/js/jquery.ztree.exhide.min.js rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/js/jquery.ztree.exhide.min.js diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/log v3.x.txt b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/log v3.x.txt similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/log v3.x.txt rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/log v3.x.txt diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/package.json b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/package.json similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/package.json rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/package.json diff --git a/maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/zTree.v3.jquery.json b/maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/zTree.v3.jquery.json similarity index 100% rename from maxkey-web-maxkey-static/src/main/resources/static/jquery/zTree-v3.5.40/zTree.v3.jquery.json rename to maxkey-webs/maxkey-web-static/src/main/resources/static/zTree-v3.5.40/zTree.v3.jquery.json diff --git a/settings.gradle b/settings.gradle index 90a04c9d..d234aa94 100644 --- a/settings.gradle +++ b/settings.gradle @@ -7,6 +7,7 @@ rootProject.name = 'MaxKey' include 'maxkey-common' include 'maxkey-core' include 'maxkey-persistence' + //include 'maxkey-authentications' include 'maxkey-authentications:maxkey-authentication-core' include 'maxkey-authentications:maxkey-authentication-captcha' @@ -35,11 +36,11 @@ include 'maxkey-protocols:maxkey-protocol-extendapi' //include 'maxkey-webs' +//static +include 'maxkey-webs:maxkey-web-static' //maxkey -include 'maxkey-web-maxkey' -include 'maxkey-web-maxkey-static' - -//management -//maxkey-mgt -include 'maxkey-web-mgt' -include 'maxkey-web-mgt-static' +include 'maxkey-webs:maxkey-web-maxkey' +include 'maxkey-webs:maxkey-web-maxkey-static' +//maxkey-mgt management +include 'maxkey-webs:maxkey-web-mgt' +include 'maxkey-webs:maxkey-web-mgt-static'